Example #1
0
    protected void HandleNPCPanickedMessage(Message message)
    {
        NPCPanickedOffMapMessage mess = message as NPCPanickedOffMapMessage;

        notoriety += 30.0f;

        if (notoriety > notorietyMax)
        {
            MessageCenter.Instance.Broadcast(new NotorietyMaxedMessage(mess.PanickedPosition));
            notoriety = notorietyMax;
            axemanCount++;
        }
    }
Example #2
0
    //-----------------------
    // Trigger Methods
    //-----------------------

    protected virtual void OnTriggerExit2D(Collider2D other)
    {
        if (other.tag == "Player")
        {
            playerInRange = false;
        }
        if (other.tag == "Border")
        {
            if (panicked)
            {
                NPCPanickedOffMapMessage message = new NPCPanickedOffMapMessage(panickedPos);
                MessageCenter.Instance.Broadcast(message);
                destroyNPC();
            }
            enteredMap = true;
            ignoreBorder(false, other);
        }
    }
Example #3
0
	protected virtual void panic ()
	{
		alertTexture.renderer.enabled = false;
		panicTexture.renderer.enabled = true;
		scaredTexture.renderer.enabled = false;
		lureTexture.renderer.enabled = false;

		scared = false;

		AudioClip scream = null;
		// Get skin type to know which NPC sounds to play
		if (this.SkinType.Equals (NPCSkinType.Bopper))
		{
			scream = (AudioClip)bopperPanicSounds[Random.Range (0, bopperPanicSounds.Length)];
		}
		else if (this.SkinType.Equals (NPCSkinType.Hippie))
		{
			scream = (AudioClip)hippiePanicSounds[Random.Range (0, hippiePanicSounds.Length)];
		}
		else if (this.SkinType.Equals (NPCSkinType.Hottie))
		{
			scream = (AudioClip)hottiePanicSounds[Random.Range (0, hottiePanicSounds.Length)];
		}
		else if (this.SkinType.Equals (NPCSkinType.MowerMan))
		{
			scream = (AudioClip)mowerPanicSounds[Random.Range (0, mowerPanicSounds.Length)];
		}
		else if (this.SkinType.Equals (NPCSkinType.OldMan))
		{
		scream = (AudioClip)oldmanPanicSounds[Random.Range (0, oldmanPanicSounds.Length)];
		}
		
		audio.PlayOneShot (scream, 1.0f);

		speed = 1.5f;
		alerted = false;
		panicked = true;
		panickedPos = gameObject.transform.position;
		//panicTime = Time.time;
		//timePanicked = panicCooldownSeconds;
		GameObject player = getPlayer ();
		if( player != null )
			moveDir = transform.position - getPlayer ().transform.position;
		broadcastAlertLevelChanged (AlertLevelType.Panic);

		if (player.GetComponent<PossessableTree>().AxeMan != null)
		{
			scaredByAxeman = true;
		}

		if (GameObject.Find("AIGenerator").GetComponent<AIGenerator>().isMaze && !scaredByAxeman)
		{
			NPCPanickedOffMapMessage message = new NPCPanickedOffMapMessage (panickedPos);
			MessageCenter.Instance.Broadcast (message);
		}
	}
Example #4
0
	//-----------------------
	// Trigger Methods
	//-----------------------

	protected virtual void OnTriggerExit2D (Collider2D other)
	{
		if (other.tag == "Player") 
		{
			playerInRange = false;
		}
		if (other.tag == "Border") 
		{
			if (panicked && !scaredByAxeman) 
			{
				NPCPanickedOffMapMessage message = new NPCPanickedOffMapMessage (panickedPos);
				MessageCenter.Instance.Broadcast (message);
				destroyNPC ();
			}
			enteredMap = true;
			ignoreBorder (false, other);
		}
		if (other.tag.Equals ("PossessorTrigger")) 
		{
			alertLevel = previousAlertLevel;
			decrementAlertLevel ();
		}
	}