void OnDestroy() { // Unregister for all messages that were previously registered for MessageCenter.Instance.UnregisterListener(MessageType.PlayerGrabbedNPCs, grabbedListener); 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); if (alertTexture != null) { Destroy(alertTexture.gameObject); } if (panicTexture != null) { Destroy(panicTexture.gameObject); } if (scaredTexture != null) { Destroy(scaredTexture.gameObject); } NPCDestroyedMessage message = new NPCDestroyedMessage(gameObject, false); MessageCenter.Instance.Broadcast(message); NPCOnDestroy(); }
void NPCDestroyListener(Message message) { NPCDestroyedMessage npcMessage = message as NPCDestroyedMessage; GameObject NPC = npcMessage.NPC; if (lastSpawnTime <= Time.time - spawnTime && NPC.GetComponent <EnemyAIController>() == null) { lastSpawnTime = Time.time; } if (pathAIList.Contains(NPC)) { pathAIList.Remove(NPC); } else if (stationaryAIList.Contains(NPC)) { stationaryAIList.Remove(NPC); } else if (wanderAIList.Contains(NPC)) { wanderAIList.Remove(NPC); } else if (enemyAIList.Contains(NPC)) { enemyAIList.Remove(NPC); } }
void HandleNPCDestroyed(Message message) { NPCDestroyedMessage mess = message as NPCDestroyedMessage; if (alertedNPCs.Contains(mess.NPC)) { alertedNPCs.Remove(mess.NPC); } }
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 (); }