public static void DeleteEntries(MegaSpawner megaSpawner) { for (int i = 0; i < megaSpawner.OverrideSpawnedEntries.Count; i++) { object o = megaSpawner.OverrideSpawnedEntries[i]; MC.DeleteObject(o); if (megaSpawner.OverrideRespawnEntryList.Count == megaSpawner.OverrideSpawnedEntries.Count) { megaSpawner.OverrideRespawnEntryList[i] = ""; } } megaSpawner.OverrideSpawnedEntries.Clear(); megaSpawner.OverrideLastMovedList.Clear(); }
public static void AddToRespawnEntries(MegaSpawner megaSpawner, object o) { bool success = false; for (int i = 0; i < megaSpawner.OverrideRespawnEntryList.Count; i++) { int randomDespawnTime = Utility.Random(megaSpawner.OverrideMinDespawn, megaSpawner.OverrideMaxDespawn - megaSpawner.OverrideMinDespawn); if (megaSpawner.OverrideRespawnEntryList[i] is string) { object respawnEntry = o; if (o is Item) { respawnEntry = (Item)o; } else if (o is Mobile) { respawnEntry = (Mobile)o; } if ((string)megaSpawner.OverrideRespawnEntryList[i] == "" && ((int)megaSpawner.OverrideRespawnTimeList[i] <= MegaSpawner.tickOffset || megaSpawner.OverrideGroupSpawn)) { success = true; megaSpawner.OverrideRespawnEntryList[i] = respawnEntry; megaSpawner.OverrideDespawnTimeList[i] = randomDespawnTime; break; } } } if (!success) { MC.DeleteObject(o); } }
public static void TickDespawn(MegaSpawner megaSpawner, int delay) { for (int i = 0; i < megaSpawner.OverrideDespawnTimeList.Count; i++) { if (megaSpawner.OverrideRespawnEntryList[i] is Item || megaSpawner.OverrideRespawnEntryList[i] is Mobile) { int despawnTime = (int)megaSpawner.OverrideDespawnTimeList[i]; if (megaSpawner.OverrideDespawnGroup) { despawnTime = (int)megaSpawner.OverrideDespawnTimeList[0]; } if (despawnTime > 0) { megaSpawner.OverrideDespawnTimeList[i] = (int)megaSpawner.OverrideDespawnTimeList[i] - delay; } else { object o = megaSpawner.OverrideRespawnEntryList[i]; if (o is BaseCreature) { BaseCreature bc = (BaseCreature)o; if (bc.FocusMob != null) { return; } } MC.DeleteObject(o); } } } }