示例#1
0
    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();
    }
示例#2
0
    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);
        }
    }
示例#3
0
    void HandleNPCDestroyed(Message message)
    {
        NPCDestroyedMessage mess = message as NPCDestroyedMessage;

        if (alertedNPCs.Contains(mess.NPC))
        {
            alertedNPCs.Remove(mess.NPC);
        }
    }
示例#4
0
	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 ();
	}