// Callee methods public void ReceiveTreeHelpCall(SoulTree targetTree, CollectorStateMachine callerStateMachine) { Debug.Log (this.NPC.name + " Callee: Got a help call!"); this.hasReceivedHelpCall = true; this.targetTree = targetTree; this.callerStateMachine = callerStateMachine; }
public static bool GuardsInFleeRange(NPCStateMachine npcStateMachine, CollectorStateMachine.FleeRangeType range) // Range should be "default" for default flee range or "emergency" for emergency flee range { GameObject thisNPC = npcStateMachine.NPC.Instance; float fleeRange = CollectorStateMachine.FLEE_RANGE; // Default flee range List<NPCDriver> guardsInSight = FindGuardsInSight(npcStateMachine); // Get emergency range based on inputted string if (range == CollectorStateMachine.FleeRangeType.Emergency) { fleeRange = CollectorStateMachine.EMERGENCY_FLEE_RANGE; } foreach (NPCDriver guard in guardsInSight) { if (NPCStateHelper.GetShortestPathDistance(thisNPC, guard.Instance) <= fleeRange) { return true; } } return false; }
public CollectorAnswerHelpCallState(NPCStateMachine stateMachine, SoulTree targetTree, CollectorStateMachine callerStateMachine) : base(stateMachine) { this.targetTree = targetTree; this.callerStateMachine = callerStateMachine; }
// Methods for helping players with trees public SoulTree GetTreeWithPlayersOnThem() { Button[] allButtons = GameManager.AllButtons; SoulTree treeWithPlayer = null; foreach (Button button in allButtons) { SoulTree treeForButton = button.GetSoulTreeForCurrentButton(); if (button.IsTriggered // Button is currently triggered && !button.CollectorCurrentlyOnTheButton.ControlledByAI // A player is stepping on the button && treeForButton.CheckIfTreeHasMultipleButtons() // The tree has multiple buttons && treeForButton.IsFull // The tree is full && !treeForButton.CheckIfTreeIsCompletelyTargettedOrTriggered()) // The tree has untriggered/targetted buttons { treeWithPlayer = treeForButton; this.callerStateMachine = button.CollectorCurrentlyOnTheButton.StateMachine as CollectorStateMachine; } } return treeWithPlayer; }
public void CancelTreeHelpCall() { Debug.Log (this.NPC.name + " Callee: Cancel my help call!"); this.hasReceivedHelpCall = false; this.hasReceivedPlayerHelpCall = false; this.targetTree = null; this.callerStateMachine = null; }