Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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));
            }
        }
Ejemplo n.º 3
0
 public static void SendGameFightSynchronizeMessage(WorldClient client, IFight fight)
 {
     client.Send(new GameFightSynchronizeMessage(
                     fight.GetAllFighters().Select(entry => entry.GetGameFightFighterInformations(client))));
 }