void OnDestroy ()
{
// Unregister for all messages that were previously registered for
MessageCenter.Instance.UnregisterListener (MessageType.PlayerGrabbedNPCs, grabbedListener);
MessageCenter.Instance.UnregisterListener (MessageType.NPCEaten, eatenListener);
MessageCenter.Instance.UnregisterListener (MessageType.PlayerReleasedNPCs, releasedListener);
MessageCenter.Instance.UnregisterListener (MessageType.TrapEntered, trapEnterListener);
MessageCenter.Instance.UnregisterListener (MessageType.TrapReleased, trapReleaseListener);
MessageCenter.Instance.UnregisterListener (MessageType.LureRadiusEntered, lureEnterListener);
MessageCenter.Instance.UnregisterListener (MessageType.LureReleased, lureReleaseListener);
MessageCenter.Instance.UnregisterListener (MessageType.AbilityPlaced, abilityPlacedListener);
MessageCenter.Instance.UnregisterListener (MessageType.NewMarkedBounty, markedBountyListener);
if (alertTexture != null) {
Destroy (alertTexture.gameObject);
}
if (panicTexture != null) {
Destroy (panicTexture.gameObject);
}
if (scaredTexture != null)
Destroy (scaredTexture.gameObject);
if (lureTexture != null)
Destroy (lureTexture.gameObject);
if (marked)
{
MessageCenter.Instance.Broadcast (new MarkedBountyDestroyedMessage());
}
NPCDestroyedMessage message = new NPCDestroyedMessage (gameObject, false);
MessageCenter.Instance.Broadcast (message);
NPCOnDestroy ();
}