SetCell() 공개 메소드

public SetCell ( FightCell cell ) : FightActionResultEnum
cell FightCell
리턴 FightActionResultEnum
예제 #1
0
        /// <summary>
        /// 
        /// </summary>
        /// <param name="fighter"></param>
        /// <param name="cellId"></param>
        public void FighterPlacementChange(AbstractFighter fighter, int cellId)
        {
            AddMessage(() =>
            {
                if (State != FightStateEnum.STATE_PLACEMENT)
                {
                    fighter.Dispatch(WorldMessage.BASIC_NO_OPERATION());
                    return;
                }

                var cell = GetCell(cellId);
                if (cell != null)
                {
                    if (cell.CanWalk)
                    {
                        fighter.SetCell(cell);
                        Dispatch(WorldMessage.FIGHT_COORDINATE_INFORMATIONS(fighter));
                    }
                }
            });
        }
예제 #2
0
        /// <summary>
        /// 
        /// </summary>
        /// <param name="fighter"></param>
        /// <param name="team"></param>
        /// <param name="cellId"></param>
        public FightActionResultEnum SummonFighter(AbstractFighter fighter, FightTeam team, int cellId)
        {
            fighter.JoinFight(this, team);
            fighter.TurnReady = true;

            var result = fighter.SetCell(GetCell(cellId));
            if (result != FightActionResultEnum.RESULT_NOTHING)
                return result;

            var message = new StringBuilder("+");
            fighter.SerializeAs_GameMapInformations(OperatorEnum.OPERATOR_ADD, message);

            if (fighter.Invocator != null)
                Dispatch(WorldMessage.GAME_ACTION(fighter.StaticInvocation ? EffectEnum.InvocationStatic : EffectEnum.Invocation, fighter.Invocator.Id, message.ToString()));
            else
                Dispatch("GM|" + message.ToString());

            switch(State)
            {
                case FightStateEnum.STATE_PLACEMENT:
                    // implicit turnready after start fighting
                    break;

                case FightStateEnum.STATE_FIGHTING:
                    fighter.TurnReady = true;
                    TurnProcessor.SummonFighter(fighter);
                    Dispatch(WorldMessage.FIGHT_TURN_LIST(TurnProcessor.FighterOrder));
                    break;
            }

            return result;
        }