Inheritance: MonoBehaviour
Exemple #1
0
        public void Ignore_Group_Buff_Emote_Shared_With_Self_Buff_Lands_On_Self()
        {
            var spells = new FakeSpellParser();
            var buffs  = new BuffTracker(spells);

            buffs.AddSpell(new SpellInfo {
                Name = "Group Guardian of the Forest I", Target = (int)SpellTarget.Caster_Group, LandSelf = "The power of the forest surges through your muscles.", LandOthers = " channels the power of the forest."
            });
            buffs.AddSpell(new SpellInfo {
                Name = "Guardian of the Forest I", Target = (int)SpellTarget.Self, LandSelf = "The power of the forest surges through your muscles.", LandOthers = " channels the power of the forest."
            });

            buffs.HandleEvent(new LogCastingEvent()
            {
                Spell = "Guardian of the Forest X", Source = PLAYER, Timestamp = DateTime.UtcNow
            });
            buffs.HandleEvent(new LogRawEvent()
            {
                Text = "The power of the forest surges through your muscles.", Timestamp = DateTime.UtcNow, Player = PLAYER
            });

            var list = buffs.Get(PLAYER, DateTime.Today, DateTime.UtcNow.AddSeconds(1)).ToList();

            Assert.Single(list);
            Assert.Equal("Guardian of the Forest X", list[0].Name);
        }
    public void AddBuff(StatType statToBuff, int valToBuff, int turnsToBuff)
    {
        BuffTracker newBuff = new BuffTracker();

        newBuff.turnsRemaining = turnsToBuff;
        newBuff.impact         = valToBuff;

        switch (statToBuff)
        {
        case StatType.Range:
            rangeBuff.Add(newBuff);
            break;

        case StatType.Movement:
            movementBuff.Add(newBuff);
            remainingMovement = remainingMovement + newBuff.impact;
            break;

        case StatType.Attack:
            damageBuff.Add(newBuff);
            break;

        case StatType.Health:
            healthBuff.Add(newBuff);
            break;

        case StatType.Poison:
            poisonBuff.Add(newBuff);
            break;

        case StatType.Stun:
            stunBuff.Add(newBuff);
            break;
        }
    }
Exemple #3
0
        /// <summary>
        /// Perform timing tests on all trackers.
        /// </summary>
        public static void TimeTrackers(LogReader file, SpellParser spells)
        {
            var parser = new LogParser();

            parser.Player = LogOpenEvent.GetPlayerFromFileName(file.Path);

            // load raw log lines once
            var events = new List <LogEvent>();

            while (true)
            {
                var s = file.ReadLine();
                if (s == null)
                {
                    break;
                }
                var e = parser.ParseLine(s);
                if (e != null)
                {
                    events.Add(e);
                }
            }
            ;
            Console.Error.WriteLine("Loaded {0} events", events.Count);

            // timer trackers
            var trackers = new List <Action <LogEvent> >();
            var chars    = new CharTracker(spells);

            trackers.Add(chars.HandleEvent);
            var fights = new FightTracker(spells, chars);

            trackers.Add(fights.HandleEvent);
            var buffs = new BuffTracker(spells);

            trackers.Add(buffs.HandleEvent);
            var loot = new LootTracker();

            trackers.Add(loot.HandleEvent);

            // time individual trackers
            foreach (var t in trackers)
            {
                var ptimer = Stopwatch.StartNew();
                var pcount = 0;
                foreach (var e in events)
                {
                    t.Invoke(e);
                }
                Console.Error.WriteLine("{0,-20} {1,10} in {2}", t.Method.DeclaringType.Name, pcount, ptimer.Elapsed);
            }

            Console.WriteLine("***");
        }
Exemple #4
0
 public void OnInit()
 {
     Init = delegate { };
     AbilityDatabase.Setup();
     AddonMenus.Setup();
     StealthPrediction.Setup();
     HideNames.Setup();
     ActiveSkills.Setup();
     ObjectTracker.Setup();
     MenuEvents.Setup();
     DebugHelper.Setup();
     BuffTracker.Setup();
     Game.OnPreUpdate += Game_OnPreUpdate;
     DelayAction(Init.Invoke, 0.5f);
 }
Exemple #5
0
 public void OnUnload()
 {
     Console.WriteLine("Unload Common Started");
     Init = null;
     AbilityDatabase.Unload();
     AddonMenus.Unload();
     StealthPrediction.Unload();
     HideNames.Unload();
     ActiveSkills.Unload();
     ObjectTracker.Unload();
     MenuEvents.Unload();
     DebugHelper.Unload();
     BuffTracker.Unload();
     Game.OnPreUpdate -= Game_OnPreUpdate;
     Console.WriteLine("Unload Common Ended");
 }
Exemple #6
0
        public void Ignore_Self_Buff_Lands_On_Caster()
        {
            var spells = new FakeSpellParser();
            var buffs  = new BuffTracker(spells);

            buffs.AddSpell(new SpellInfo {
                Name = "Superfly TNT", LandSelf = "You should be in the front seat.", Target = (int)SpellTarget.Self
            });

            // self buffs are handled by the casting event so the emote must be ignored to prevent double counting
            buffs.HandleEvent(new LogRawEvent()
            {
                Text = "You should be in the front seat.", Timestamp = DateTime.UtcNow, Player = PLAYER
            });

            var list = buffs.Get(PLAYER, DateTime.Today, DateTime.UtcNow.AddSeconds(1)).ToList();

            Assert.Empty(list);
        }
Exemple #7
0
        public void Self_Spell_Casting()
        {
            var spells = new FakeSpellParser();
            var buffs  = new BuffTracker(spells);

            buffs.AddSpell(new SpellInfo {
                Name = "Guns of the Navarone I", Target = (int)SpellTarget.Self
            });

            // we only registered the first rank -- make sure it accepts any rank
            buffs.HandleEvent(new LogCastingEvent()
            {
                Spell = "Guns of the Navarone XV", Source = "Tokiel", Timestamp = DateTime.UtcNow
            });

            var list = buffs.Get("Tokiel", DateTime.Today, DateTime.UtcNow.AddSeconds(1)).ToList();

            Assert.Single(list);
            Assert.Equal("Guns of the Navarone XV", list[0].Name);
        }
Exemple #8
0
        public void Group_Buff_Lands_On_Caster_From_Bystanders_Log()
        {
            var spells = new FakeSpellParser();
            var buffs  = new BuffTracker(spells);

            buffs.AddSpell(new SpellInfo {
                Name = "Illusions of Grandeur I", LandOthers = " is consumed by Illusions of Grandeur.", Target = (int)SpellTarget.Caster_Group
            });

            buffs.HandleEvent(new LogCastingEvent()
            {
                Spell = "Illusions of Grandeur I", Source = "Fourier", Timestamp = DateTime.UtcNow
            });
            buffs.HandleEvent(new LogRawEvent()
            {
                Text = "Fourier is consumed by Illusions of Grandeur.", Player = PLAYER, Timestamp = DateTime.UtcNow
            });

            var list = buffs.Get("Fourier", DateTime.Today, DateTime.UtcNow.AddSeconds(1)).ToList();

            Assert.Single(list);
            Assert.Equal("Illusions of Grandeur", list[0].Name);
        }