Example #1
0
        public override void Process()
        {
            base.Process();

            if (Dead || SEnvir.Now < SlaveTime)
            {
                return;
            }

            SlaveTime = SEnvir.Now.AddSeconds(30);

            for (int i = MinionList.Count - 1; i >= 0; i--)
            {
                MonsterObject mob = MinionList[i];
                if (mob.CurrentMap == CurrentMap && Functions.InRange(CurrentLocation, mob.CurrentLocation, 10))
                {
                    continue;
                }

                mob.EXPOwner = null;
                mob.Die();
                mob.Despawn();
            }


            SpawnMinions(5 - MinionList.Count, 0, Target);
        }
Example #2
0
        public override void Process()
        {
            base.Process();

            if (Dead)
            {
                return;
            }

            if (!SubSpawned && CurrentHP < Stats[Stat.Health] / 4)
            {
                SubSpawned = true;
                SpawnSub();
            }

            if (SEnvir.Now >= SlaveTime)
            {
                SlaveTime = SEnvir.Now.AddSeconds(60);

                for (int i = MinionList.Count - 1; i >= 0; i--)
                {
                    MonsterObject mob = MinionList[i];
                    if (mob.CurrentMap == CurrentMap && Functions.InRange(CurrentLocation, mob.CurrentLocation, 30))
                    {
                        continue;
                    }

                    mob.EXPOwner = null;
                    mob.Die();
                    mob.Despawn();
                }


                Broadcast(new S.ObjectShow {
                    ObjectID = ObjectID, Direction = Direction, Location = CurrentLocation
                });

                SpawnMinions(10 - MinionList.Count, 0, Target);
            }
        }
Example #3
0
        public override void Process()
        {
            base.Process();

            if (Dead)
            {
                return;
            }

            if (SEnvir.Now > PuriTime)
            {
                PuriTime = SEnvir.Now.AddSeconds(20);

                foreach (MapObject ob in GetTargets(CurrentMap, CurrentLocation, Config.MaxViewRange))
                {
                    Purify(ob);
                }
            }

            if (SEnvir.Now >= SlaveTime)
            {
                SlaveTime = SEnvir.Now.AddSeconds(45);

                for (int i = MinionList.Count - 1; i >= 0; i--)
                {
                    MonsterObject mob = MinionList[i];
                    if (mob.CurrentMap == CurrentMap && Functions.InRange(CurrentLocation, mob.CurrentLocation, 10))
                    {
                        continue;
                    }

                    mob.EXPOwner = null;
                    mob.Die();
                    mob.Despawn();
                }


                SpawnMinions(5 - MinionList.Count, 0, Target);
            }
        }