コード例 #1
0
 public DefaultChallenge(int id, IFight fight)
 {
     Id     = id;
     Bonus  = 0;
     Fight  = fight;
     Status = ChallengeStatusEnum.RUNNING;
 }
コード例 #2
0
ファイル: FightTestBase.cs プロジェクト: ChezTech/EQBattle
        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);
        }
コード例 #3
0
ファイル: BlitzkriegChallenge.cs プロジェクト: Mixi59/Stump
 void OnTurnStarted(IFight fight, FightActor fighter)
 {
     if (fighter == Target)
     {
         UpdateStatus(ChallengeStatusEnum.FAILED);
     }
 }
コード例 #4
0
ファイル: SummonedBomb.cs プロジェクト: Mixi59/Stump
 void OnTurnStarted(IFight fight, FightActor player)
 {
     if (IsFighterTurn())
     {
         PassTurn();
     }
 }
コード例 #5
0
 public FightPath(FightActor fighter, IFight fight, Path path)
     : base(fight.Map, path.GetPath())
 {
     Fight   = fight;
     Fighter = fighter;
     AdjustPath();
 }
コード例 #6
0
ファイル: ContextFightHandler.cs プロジェクト: Mixi59/Stump
 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())));
 }
コード例 #7
0
ファイル: AtomsManager.cs プロジェクト: Mixi59/Stump
 private static void OnFightCreated(IFight fight)
 {
     if (fight is FightPvM)
     {
         fight.GeneratingResults += OnGeneratingResults;
     }
 }
コード例 #8
0
ファイル: NomadChallenge.cs プロジェクト: Mixi59/Stump
        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;
        }
コード例 #9
0
ファイル: TimeLine.cs プロジェクト: Mixi59/Stump
 public TimeLine(IFight fight)
 {
     Fight       = fight;
     Fighters    = new List <FightActor>();
     RoundNumber = 1;
     NewRound    = true;
 }
コード例 #10
0
ファイル: SpellUseChallenge.cs プロジェクト: Mixi59/Stump
        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;
            }
        }
コード例 #11
0
 void OnTurnStarted(IFight fight, FightActor fighter)
 {
     if (fighter is CharacterFighter)
     {
         Target = Fight.GetRandomFighter <MonsterFighter>();
     }
 }
コード例 #12
0
ファイル: FightTestBase.cs プロジェクト: ChezTech/EQBattle
        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);
        }
コード例 #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;
        }
コード例 #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;
        }
コード例 #15
0
ファイル: ElementaryChallenge.cs プロジェクト: Mixi59/Stump
        public ElementaryChallenge(int id, IFight fight)
            : base(id, fight)
        {
            BonusMin = 30;
            BonusMax = 50;

            m_element = EffectSchoolEnum.Unknown;
        }
コード例 #16
0
ファイル: StatueChallenge.cs プロジェクト: Mixi59/Stump
        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;
        }
コード例 #17
0
        public TwoForThePriceOfOneChallenge(int id, IFight fight)
            : base(id, fight)
        {
            BonusMin = 60;
            BonusMax = 60;

            m_kills = 0;
        }
コード例 #18
0
ファイル: FightFactoryImpl.cs プロジェクト: perl-easj/OOProg
        public void AddStrategy(Affinity aff, FightTactic tactics, IFight fightStrat)
        {
            if (!_strategies.ContainsKey(tactics))
            {
                _strategies[tactics] = new Dictionary <Affinity, IFight>();
            }

            _strategies[tactics][aff] = fightStrat;
        }
コード例 #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;
            }
        }
コード例 #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;
            }
        }
コード例 #21
0
ファイル: BarbaricChallenge.cs プロジェクト: Mixi59/Stump
        private void OnTurnStopped(IFight fight, FightActor fighter)
        {
            if (fighter is CharacterFighter && !WeaponAttack)
            {
                UpdateStatus(ChallengeStatusEnum.FAILED, fighter);
            }

            WeaponAttack = false;
        }
コード例 #22
0
ファイル: MystiqueChallenge.cs プロジェクト: Mixi59/Stump
        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;
            }
        }
コード例 #23
0
ファイル: DuelChallenge.cs プロジェクト: Mixi59/Stump
        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;
            }
        }
コード例 #24
0
ファイル: AIFighter.cs プロジェクト: Mixi59/Stump
        protected virtual void OnTurnStarted(IFight fight, FightActor currentfighter)
        {
            if (!IsFighterTurn())
            {
                return;
            }

            PlayIA();
        }
コード例 #25
0
ファイル: FightTestBase.cs プロジェクト: ChezTech/EQBattle
        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);
        }
コード例 #26
0
        protected override void OnTurnStarted(IFight fight, FightActor currentfighter)
        {
            if (IsControlled())
            {
                return;
            }

            base.OnTurnStarted(fight, currentfighter);
        }
コード例 #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;
            }
        }
コード例 #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);
        }
コード例 #29
0
ファイル: FightTestBase.cs プロジェクト: ChezTech/EQBattle
        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}");
        }
コード例 #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;
        }