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); }
void OnTriggerExit(Collider col) { CollectorDriver collectorDriver = col.GetComponent<CollectorDriver>(); if(collectorDriver) { isTriggered = false; collectorCurrentlyOnTheButton = null; } }
void OnTriggerStay(Collider col) { CollectorDriver collectorDriver = col.GetComponent<CollectorDriver>(); if(collectorDriver) { isTriggered = true; collectorCurrentlyOnTheButton = collectorDriver; } }
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; }
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--; } }