public void DisposeCreature(int creatureId, bool disposeFromUI = true, bool playDeadAnimation = false) { FDCreature creature = GetCreature(creatureId); if (creature != null) { for (int i = 0; i < this.Friends.Count; i++) { if (this.Friends[i].CreatureId == creatureId) { this.Friends.RemoveAt(i); break; } } for (int i = 0; i < this.Enemies.Count; i++) { if (this.Enemies[i].CreatureId == creatureId) { this.Enemies.RemoveAt(i); break; } } for (int i = 0; i < this.Npcs.Count; i++) { if (this.Npcs[i].CreatureId == creatureId) { this.Npcs.RemoveAt(i); break; } } if (disposeFromUI) { if (playDeadAnimation) { CreatureDeadPack dead = new CreatureDeadPack(creatureId); gameCallback.OnHandlePack(dead); } else { CreatureDisposePack pack = new CreatureDisposePack(creatureId); gameCallback.OnHandlePack(pack); } } } else { creature = GetDeadCreature(creatureId); if (creature != null) { this.Deads.Remove(creature); } } }
private static ActivityBase BuildCreatureDeadActivity(CreatureDeadPack pack) { if (pack == null) { throw new ArgumentNullException("CreatureDeadPack"); } CreatureDeadActivity activity = new CreatureDeadActivity(pack.CreatureIds); return(activity); }