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); }
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); } }
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); } }