Esempio n. 1
0
 public DefaultChallenge(int id, IFight fight)
 {
     Id     = id;
     Bonus  = 0;
     Fight  = fight;
     Status = ChallengeStatusEnum.RUNNING;
 }
Esempio n. 2
0
        protected static void VerifyFighterDuration(IFight fight, string name, TimeSpan fightDuration, TimeSpan fighterDuration)
        {
            Fighter fighter = fight.Fighters.FirstOrDefault(x => x.Character.Name == name);

            Assert.AreEqual(fightDuration, fighter.OffensiveStatistics.Duration.FightDuration);
            Assert.AreEqual(fighterDuration, fighter.OffensiveStatistics.Duration.FighterDuration);
        }
Esempio n. 3
0
 void OnTurnStarted(IFight fight, FightActor fighter)
 {
     if (fighter == Target)
     {
         UpdateStatus(ChallengeStatusEnum.FAILED);
     }
 }
Esempio n. 4
0
 void OnTurnStarted(IFight fight, FightActor player)
 {
     if (IsFighterTurn())
     {
         PassTurn();
     }
 }
Esempio n. 5
0
 public FightPath(FightActor fighter, IFight fight, Path path)
     : base(fight.Map, path.GetPath())
 {
     Fight   = fight;
     Fighter = fighter;
     AdjustPath();
 }
Esempio n. 6
0
 public static void SendGameFightSpectateMessage(IPacketReceiver client, IFight fight)
 {
     client.Send(new GameFightSpectateMessage(
                     fight.GetBuffs().Select(entry => entry.GetFightDispellableEffectExtendedInformations()),
                     fight.GetTriggers().Select(entry => entry.GetHiddenGameActionMark()),
                     fight.TimeLine.RoundNumber, !fight.IsStarted ? 0 : fight.StartTime.GetUnixTimeStamp(), fight.ActiveIdols.Select(x => x.GetNetworkIdol())));
 }
Esempio n. 7
0
 private static void OnFightCreated(IFight fight)
 {
     if (fight is FightPvM)
     {
         fight.GeneratingResults += OnGeneratingResults;
     }
 }
Esempio n. 8
0
        private void OnTurnStopped(IFight fight, FightActor fighter)
        {
            if (fighter.IsDead())
            {
                return;
            }

            if (!(fighter is CharacterFighter))
            {
                return;
            }

            if (Id == (int)ChallengeEnum.NOMADE && fighter.MP <= 0)
            {
                return;
            }

            if (Id == (int)ChallengeEnum.PÉTULANT && fighter.AP <= 0)
            {
                return;
            }

            UpdateStatus(ChallengeStatusEnum.FAILED);
            Fight.BeforeTurnStopped -= OnTurnStopped;
        }
Esempio n. 9
0
 public TimeLine(IFight fight)
 {
     Fight       = fight;
     Fighters    = new List <FightActor>();
     RoundNumber = 1;
     NewRound    = true;
 }
Esempio n. 10
0
        public SpellUseChallenge(int id, IFight fight)
            : base(id, fight)
        {
            if (id == (int)ChallengeEnum.CASINO_ROYAL)
            {
                BonusMin = 30;
                BonusMax = 30;
            }
            else
            {
                BonusMin = 10;
                BonusMax = 20;
            }

            switch ((ChallengeEnum)Id)
            {
            case ChallengeEnum.JARDINIER:
                m_spell = (int)SpellIdEnum.CAWOTTE_367;
                break;

            case ChallengeEnum.FOSSOYEUR:
                m_spell = (int)SpellIdEnum.INVOCATION_DE_CHAFERFU;
                break;

            case ChallengeEnum.CASINO_ROYAL:
                m_spell = (int)SpellIdEnum.ROULETTE;
                break;

            case ChallengeEnum.ARAKNOPHILE:
                m_spell = (int)SpellIdEnum.INVOCATION_D_ARAKNE_370;
                break;
            }
        }
Esempio n. 11
0
 void OnTurnStarted(IFight fight, FightActor fighter)
 {
     if (fighter is CharacterFighter)
     {
         Target = Fight.GetRandomFighter <MonsterFighter>();
     }
 }
Esempio n. 12
0
        private static Fighter GetFighter(string name, IFight iFight, bool isPet)
        {
            var fighter = iFight.Fighters.FirstOrDefault(x => x.Character.Name == name && x.Character.IsPet == isPet);

            Assert.IsNotNull(fighter, $"Fighter doesn't exist - {name}");
            return(fighter);
        }
Esempio n. 13
0
        void OnBeforeTurnStopped(IFight fight, FightActor fighter)
        {
            if (fighter is SummonedFighter && m_kills > 1)
            {
                UpdateStatus(ChallengeStatusEnum.FAILED, fighter);
            }

            if (!(fighter is CharacterFighter))
            {
                m_kills = 0;
                return;
            }

            if (m_kills == 0)
            {
                return;
            }

            if (m_kills != 2)
            {
                UpdateStatus(ChallengeStatusEnum.FAILED, fighter);
            }

            m_kills = 0;
        }
Esempio n. 14
0
        public SexChallenge(int id, IFight fight)
            : base(id, fight)
        {
            BonusMin = 35;
            BonusMax = 35;

            m_sexType = id == (int)ChallengeEnum.NI_PIOUTES_NI_SOUMISES ? SexTypeEnum.SEX_FEMALE : SexTypeEnum.SEX_MALE;
        }
Esempio n. 15
0
        public ElementaryChallenge(int id, IFight fight)
            : base(id, fight)
        {
            BonusMin = 30;
            BonusMax = 50;

            m_element = EffectSchoolEnum.Unknown;
        }
Esempio n. 16
0
        protected override void OnWinnersDetermined(IFight fight, FightTeam winners, FightTeam losers, bool draw)
        {
            OnTurnStopped(fight, fight.FighterPlaying);

            base.OnWinnersDetermined(fight, winners, losers, draw);

            Fight.TurnStopped -= OnTurnStopped;
        }
Esempio n. 17
0
        public TwoForThePriceOfOneChallenge(int id, IFight fight)
            : base(id, fight)
        {
            BonusMin = 60;
            BonusMax = 60;

            m_kills = 0;
        }
Esempio n. 18
0
        public void AddStrategy(Affinity aff, FightTactic tactics, IFight fightStrat)
        {
            if (!_strategies.ContainsKey(tactics))
            {
                _strategies[tactics] = new Dictionary <Affinity, IFight>();
            }

            _strategies[tactics][aff] = fightStrat;
        }
Esempio n. 19
0
        protected override void OnWinnersDetermined(IFight fight, FightTeam winners, FightTeam losers, bool draw)
        {
            base.OnWinnersDetermined(fight, winners, losers, draw);

            foreach (var fighter in m_monsters)
            {
                fighter.Dead -= OnDead;
            }
        }
Esempio n. 20
0
        protected override void OnWinnersDetermined(IFight fight, FightTeam winners, FightTeam losers, bool draw)
        {
            base.OnWinnersDetermined(fight, winners, losers, draw);

            foreach (var fighter in Fight.GetAllFighters <MonsterFighter>())
            {
                fighter.FightPointsVariation -= OnFightPointsVariation;
            }
        }
Esempio n. 21
0
        private void OnTurnStopped(IFight fight, FightActor fighter)
        {
            if (fighter is CharacterFighter && !WeaponAttack)
            {
                UpdateStatus(ChallengeStatusEnum.FAILED, fighter);
            }

            WeaponAttack = false;
        }
Esempio n. 22
0
        protected override void OnWinnersDetermined(IFight fight, FightTeam winners, FightTeam losers, bool draw)
        {
            base.OnWinnersDetermined(fight, winners, losers, draw);

            foreach (var fighter in Fight.GetAllFighters <CharacterFighter>())
            {
                fighter.WeaponUsed -= OnWeaponUsed;
            }
        }
Esempio n. 23
0
        protected override void OnWinnersDetermined(IFight fight, FightTeam winners, FightTeam losers, bool draw)
        {
            base.OnWinnersDetermined(fight, winners, losers, draw);

            foreach (var fighter in Fight.GetAllFighters <MonsterFighter>())
            {
                fighter.DamageInflicted -= OnDamageInflicted;
            }
        }
Esempio n. 24
0
        protected virtual void OnTurnStarted(IFight fight, FightActor currentfighter)
        {
            if (!IsFighterTurn())
            {
                return;
            }

            PlayIA();
        }
Esempio n. 25
0
        protected Fighter VerifyFighterStatistics(string name, IFight iFight, int offHit, int offHeal, int offMisses, int offKills, int defHit, int defHeal, int defMisses, int defKills, bool isPet = false)
        {
            var fighter = GetFighter(name, iFight, isPet);

            VerifyFightStats(fighter.OffensiveStatistics, fighter.Character.Name, offHit, offHeal, offMisses, offKills);
            VerifyFightStats(fighter.DefensiveStatistics, fighter.Character.Name, defHit, defHeal, defMisses, defKills);

            return(fighter);
        }
Esempio n. 26
0
        protected override void OnTurnStarted(IFight fight, FightActor currentfighter)
        {
            if (IsControlled())
            {
                return;
            }

            base.OnTurnStarted(fight, currentfighter);
        }
Esempio n. 27
0
        protected override void OnWinnersDetermined(IFight fight, FightTeam winners, FightTeam losers, bool draw)
        {
            base.OnWinnersDetermined(fight, winners, losers, draw);

            foreach (var fighter in Fight.GetAllFighters <MonsterFighter>())
            {
                fighter.Stats[PlayerFields.Range].Modified -= OnRangeModified;
            }
        }
Esempio n. 28
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);
        }
Esempio n. 29
0
        protected void VerifyFightStatistics(string fightMob, IFight fight, int hit, int heal, int misses, int kills)
        {
            Assert.IsNotNull(fight, $"Fight doesn't exist - {fightMob}");

            var stats = fight.Statistics;

            Assert.AreEqual(hit, stats.Hit.Total, $"Offensive hit - {fight.PrimaryMob.Name}");
            Assert.AreEqual(heal, stats.Heal.Total, $"Offensive heal - {fight.PrimaryMob.Name}");
            Assert.AreEqual(misses, stats.Miss.Count, $"Offensive misses - {fight.PrimaryMob.Name}");
            Assert.AreEqual(kills, stats.Kill.Count, $"Offensive kills - {fight.PrimaryMob.Name}");
        }
Esempio n. 30
0
        protected override void OnWinnersDetermined(IFight fight, FightTeam winners, FightTeam losers, bool draw)
        {
            base.OnWinnersDetermined(fight, winners, losers, draw);

            foreach (var fighter in Fight.GetAllFighters <MonsterFighter>())
            {
                fighter.Dead -= OnDead;
            }

            Fight.BeforeTurnStopped -= OnBeforeTurnStopped;
        }