AutoBoss.BossEvents.StartMinionSpawns C# (CSharp) Method

StartMinionSpawns() public static method

public static StartMinionSpawns ( IEnumerable types ) : void
types IEnumerable
return void
        public static void StartMinionSpawns(IEnumerable<int> types)
        {
            var minionCounts = new Dictionary<string, int>();

            foreach (var minion in types)
            {
                var npc = TShock.Utils.GetNPCById(minion);

                if (!minionCounts.ContainsKey(npc.name))
                    minionCounts.Add(npc.name, 1);
                else
                    minionCounts[npc.name]++;

                foreach (var region in AutoBoss.ActiveArenas)
                {
                    var arenaX = region.Area.X + (region.Area.Width/2);
                    var arenaY = region.Area.Y + (region.Area.Height/2);

                    TSPlayer.Server.SpawnNPC(minion, npc.name, 1, arenaX, arenaY, 50, 20);
                }
            }
            if (!AutoBoss.config.AnnounceMinions) return;

            var broadcast =
                minionCounts.Select(kvp => string.Format("{0}x {1}", kvp.Value*AutoBoss.ActiveArenas.Count,
                    kvp.Key)).ToList();

            TShock.Utils.Broadcast("Minions selected: " + string.Join(", ", broadcast), Color.Crimson);
        }

Usage Example

Example #1
0
        private void MinionTimerElapsed(object sender, ElapsedEventArgs e)
        {
            if (!AutoBoss.Tools.bossesToggled)
            {
                _minionTicks = 0;
                return;
            }
            if (!_bossActive)
            {
                _minionTicks = 0;
                return;
            }

            _minionTicks++;
            if (_minionTicks != minionTime)
            {
                return;
            }

            switch (_ticker.type)
            {
            case BattleType.Day:
                if (AutoBoss.config.MinionToggles[BattleType.Day])
                {
                    BossEvents.StartMinionSpawns(BossEvents.SelectMinions(BattleType.Day));
                }
                break;

            case BattleType.Special:
                if (AutoBoss.config.MinionToggles[BattleType.Special])
                {
                    BossEvents.StartMinionSpawns(BossEvents.SelectMinions(BattleType.Special));
                }
                break;

            case BattleType.Night:
                if (AutoBoss.config.MinionToggles[BattleType.Night])
                {
                    BossEvents.StartMinionSpawns(BossEvents.SelectMinions(BattleType.Night));
                }
                break;
            }
            _minionTicks = 0;
        }