Example #1
0
    public static void CmdEjectSoul(CollectorDriver collector, int numberOfSoulsEjected)
    {
        collector.DropSoul(numberOfSoulsEjected);
		collector.MovementDriver.RecalculateSpeedBasedOnSoulConsumption();
		collector.isDroppingSoul = true;	//Triggers sound effect
        GameObject.FindGameObjectWithTag("GameController").SendMessage("SoulEjected",numberOfSoulsEjected);
    }
Example #2
0
	void OnTriggerExit(Collider col)
	{
		CollectorDriver collectorDriver = col.GetComponent<CollectorDriver>();
		if(collectorDriver)
		{
			isTriggered = false;
			collectorCurrentlyOnTheButton = null;
		}
	}
Example #3
0
	void OnTriggerStay(Collider col)
	{
		CollectorDriver collectorDriver = col.GetComponent<CollectorDriver>();
		if(collectorDriver)
		{
			isTriggered = true;
			collectorCurrentlyOnTheButton = collectorDriver;
		}
	}
Example #4
0
	public static void CmdConsumeSoul(CollectorDriver collector, GameObject soul)
	{
		Vector3 collectorPos = collector.Instance.transform.position;
			
		soul.GetComponent<Soul>().IsConsumed(collectorPos);
		collector.AddSoul();
		collector.MovementDriver.RecalculateSpeedBasedOnSoulConsumption();
		collector.isCollectingSoul = true;	//Triggers sound effect
		GameObject.FindGameObjectWithTag("GameController").SendMessage("SoulConsumed");
    }
	public override void Entry()
	{
		// Add state on to stack
		this.stateMachine.PushStateOnStack(this);
		
		Debug.Log (this.stateMachine.NPC.name + ": Emergency Flee State Entry");
		this.guardsInSight = CollectorStateHelper.FindGuardsInSight(this.stateMachine);
		List<NPCDriver> guardsInFleeRange = CollectorStateHelper.FindGuardsInFleeRange(this.stateMachine);
		this.stateMachine.NPC.MovementDriver.ChangePathToFlee(CollectorStateMachine.FLEE_RANGE, guardsInFleeRange);
		this.collectorDriver = this.stateMachine.NPC as CollectorDriver;
	}
Example #6
0
    public static void CmdConsumeSoul(CollectorDriver collector)
    {
		Soul closestSoul = null;
		Vector3 collectorPos = collector.Instance.transform.position;
		Collider[] collisions = collector.CollisionArray;
		
		for (int i = 0; i < collector.CollisionArray.Length; ++i)
		{
			Soul soul = collisions[i].GetComponent<Soul>();
			if (soul && Mathf.Abs((collectorPos - collisions[i].transform.position).magnitude) <= GameManager.COLLISION_RANGE)
			{
				closestSoul = soul;
			}
		}

        if (closestSoul)
		{
            CmdConsumeSoul(collector, closestSoul.gameObject);
        }
    }
	// Caller methods
	public void NotifyCallerOfHelpArrival(CollectorDriver collectorDriver)
	{
		collectorsArrivedForHelp.Add(collectorDriver);
		Debug.Log (this.NPC.name + " collectorsArrivedForHelp count: " + collectorsArrivedForHelp.Count);
	}
	public void NotifyPlayerOfHelp(CollectorDriver collector) {
		this.collectorNPCsComingToHelp.Add (collector);
		this.hasCancelledHelpCallsAsPlayer = false;

		Debug.Log (collector.name + ": Player, I'm coming to help!");
		// Sound effect
		AudioClip onMyWayClip = Resources.Load("On_My_Way", typeof(AudioClip)) as AudioClip;
		this.NPC.audioSource.clip = onMyWayClip;
		this.NPC.audioSource.Play();
	}
	public static void DropSouls(CollectorDriver collectorDriver, int numSoulsToDrop)
	{
		delayInDroppingSoulsTimer -= Time.deltaTime;
		while (numSoulsToDrop > 0 && delayInDroppingSoulsTimer <= 0) {
			collectorDriver.DropSoul(1);
			delayInDroppingSoulsTimer = DELAY_IN_DROPPING_SOULS;
			numSoulsToDrop--;
		}
	}