public sealed override PhaseList advance(UserAction userAction, IGame game) { return(advance(game)); }
/// <summary> /// process this Phase given the current state of the game and possible userActions and return following phases. /// </summary> /// <param name="userAction">userAction feeded, null if there is no useraction</param> /// <param name="game">the game status</param> /// <returns>The following phases this phase leads</returns> public abstract PhaseList advance(UserAction userAction, IGame game);
public override sealed PhaseList handleUserAction(UserAction userAction, IGame game) { return(timeOutAdvance(game)); }
/// <summary> /// It figures out the type of userAction and calls corresponding methods. /// Those methods will return null as default value, which means to do nothing. /// </summary> /// <param name="userAction">userAction to be handled, cannot be null</param> /// <param name="game"></param> /// <returns>the following phased produced</returns> public override sealed PhaseList handleUserAction(UserAction userAction, IGame game) { return(userAction.processedBy(this, game)); }
/// <summary> /// Hanlde user action happened in this phase /// </summary> /// <param name="userAction"></param> /// <param name="game"></param> /// <returns></returns> public abstract PhaseList handleUserAction(UserAction userAction, IGame game);