示例#1
0
        protected override void OnPluginEnabled()
        {
            if (IsWired)
            {
                return;
            }

            BotMain.OnStart             += bot => Start();
            BotMain.OnStop              += bot => Stop();
            BotMain.OnShutdownRequested += (sender, args) => Stop();

            GameEvents.OnGameJoined   += (sender, args) => RecordStat(() => Current.Games.Joined++);
            GameEvents.OnGameLeft     += (sender, args) => RecordStat(() => Current.Games.Left++);
            GameEvents.OnPlayerDied   += (sender, args) => RecordStat(() => Current.Player.Deaths++);
            GameEvents.OnWorldChanged += (sender, args) => SeenActorAnnIds.Clear();

            ItemEvents.OnItemDropped  += item => RecordItemStats(Current.Dropped, item);
            ItemEvents.OnItemPickedUp += item => RecordItemStats(Current.PickedUp, item);
            ItemEvents.OnItemSalvaged += item => RecordItemStats(Current.Salvaged, item);
            ItemEvents.OnItemStashed  += item => RecordItemStats(Current.Stashed, item);
            ItemEvents.OnItemSold     += item => RecordItemStats(Current.Sold, item);

            // For the stats on the Main UI
            ItemEvents.OnItemPickedUp += item =>
            {
                if (item.IsGold || item.IsGem)
                {
                    return;
                }
                GameEvents.FireItemLooted(item.AcdId);
            };

            ItemEvents.OnItemSalvaged += item => GameEvents.FireItemSalvaged(item.AcdId);
            ItemEvents.OnItemStashed  += item => GameEvents.FireItemStashed(item.AcdId);
            ItemEvents.OnItemSold     += item => GameEvents.FireItemSold(item.AcdId);

            IsWired = true;
        }
示例#2
0
        private void RecordActorStats(TrinityActor actor)
        {
            if (!IsRunning)
            {
                return;
            }

            if (SeenActorAnnIds.Contains(actor.AnnId))
            {
                return;
            }

            SeenActorAnnIds.Add(actor.AnnId);

            if (actor.IsUnit && actor.IsHostile)
            {
                if (actor.IsElite)
                {
                    Current.Actors.Elites++;
                }

                if (actor.IsBoss)
                {
                    Current.Actors.Bosses++;
                }
            }

            if (actor.ShrineType != ShrineTypes.None)
            {
                Current.Actors.Shrines++;
            }

            if (actor.IsTreasureGoblin)
            {
                Current.Actors.Goblins++;
            }
        }