JoinFight() 공개 메소드

public JoinFight ( AbstractFight fight, FightTeam team ) : void
fight AbstractFight
team FightTeam
리턴 void
예제 #1
0
        /// <summary>
        /// 
        /// </summary>
        /// <param name="fighter"></param>
        /// <param name="team"></param>
        public void JoinFight(AbstractFighter fighter, FightTeam team)
        {
            if (team.FreePlace == null)
                return;

            if (!fighter.IsDisconnected)
            {
                if(fighter.Type == EntityTypeEnum.TYPE_CHARACTER)
                    OnCharacterJoin(fighter as CharacterEntity, team);

                fighter.JoinFight(this, team);
                Dispatch(WorldMessage.GAME_MAP_INFORMATIONS(OperatorEnum.OPERATOR_ADD, fighter));
            }

            if (fighter.MapId == Map.Id)
                SendFightJoinInfos(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;
        }