public static void HandleGameRolePlayPlayerFightRequestMessage(WorldClient client, GameRolePlayPlayerFightRequestMessage message) { var target = client.Character.Map.GetActor <Character>((int)message.targetId); if (target == null) { return; } if (message.friendly) { var reason = client.Character.CanRequestFight(target); if (reason != FighterRefusedReasonEnum.FIGHTER_ACCEPTED) { SendChallengeFightJoinRefusedMessage(client, client.Character, reason); } else { var fightRequest = new FightRequest(client.Character, target); fightRequest.Open(); } } else // agression { var reason = client.Character.CanAgress(target); if (reason != FighterRefusedReasonEnum.FIGHTER_ACCEPTED) { SendChallengeFightJoinRefusedMessage(client, client.Character, reason); } else { foreach (var character in target.Map.GetAllCharacters().Where(x => x != target && x != client.Character)) { ContextRoleplayHandler.SendGameRolePlayAggressionMessage(character.Client, client.Character, target); } //<b>%1</b> agresse <b>%2</b> var fight = FightManager.Instance.CreateAgressionFight(target.Map, client.Character.AlignmentSide, target.AlignmentSide); fight.ChallengersTeam.AddFighter(client.Character.CreateFighter(fight.ChallengersTeam)); fight.DefendersTeam.AddFighter(target.CreateFighter(fight.DefendersTeam)); fight.StartPlacement(); } } }
public static void HandleGameRolePlayPlayerFightRequestMessage(WorldClient client, GameRolePlayPlayerFightRequestMessage message) { Character actor = client.Character.Map.GetActor <Character>((int)message.targetId); if (actor != null) { if (message.friendly) { FighterRefusedReasonEnum fighterRefusedReasonEnum = client.Character.CanRequestFight(actor); if (fighterRefusedReasonEnum != FighterRefusedReasonEnum.FIGHTER_ACCEPTED) { ContextHandler.SendChallengeFightJoinRefusedMessage(client, client.Character, fighterRefusedReasonEnum); } else { FightRequest fightRequest = new FightRequest(client.Character, actor); client.Character.OpenRequestBox(fightRequest); actor.OpenRequestBox(fightRequest); fightRequest.Open(); } } else { FighterRefusedReasonEnum fighterRefusedReasonEnum = client.Character.CanAgress(actor); if (fighterRefusedReasonEnum != FighterRefusedReasonEnum.FIGHTER_ACCEPTED) { ContextHandler.SendChallengeFightJoinRefusedMessage(client, client.Character, fighterRefusedReasonEnum); } else { Fight fight = Singleton <FightManager> .Instance.CreateAgressionFight(actor.Map, client.Character.AlignmentSide, actor.AlignmentSide); fight.RedTeam.AddFighter(client.Character.CreateFighter(fight.RedTeam)); fight.BlueTeam.AddFighter(actor.CreateFighter(fight.BlueTeam)); fight.StartPlacement(); } } } }