public static ReadyChecker RequestCheck(IFight fight, Action success, Action <CharacterFighter[]> fail) { var checker = new ReadyChecker(fight, fight.GetAllFighters <CharacterFighter>(entry => !entry.HasLeft()).ToList()); checker.Success += chk => success(); checker.Timeout += (chk, laggers) => fail(laggers); checker.Start(); return(checker); }
private static void OnGeneratingResults(IFight fight) { if (fight.Draw || fight.Winners.TeamType != TeamTypeEnum.TEAM_TYPE_PLAYER) { return; } var monsters = fight.GetAllFighters <MonsterFighter>(entry => entry.IsDead()).ToList(); var players = fight.GetAllFighters <CharacterFighter>().ToList(); var atoms = m_records.Where(x => monsters.Any(y => y.Monster.Template.Id == x.MonsterId)).Sum(x => x.Amount) / players.Count; if (atoms <= 0) { return; } foreach (var player in players) { player.Loot.AddItem(new DroppedItem(AtomItemTemplateId, (uint)atoms)); } }
public static void SendGameFightSynchronizeMessage(WorldClient client, IFight fight) { client.Send(new GameFightSynchronizeMessage( fight.GetAllFighters().Select(entry => entry.GetGameFightFighterInformations(client)))); }