public JoinFight ( |
||
fight | ||
team | ||
리턴 | void |
/// <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); }
/// <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; }