// 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; }
private GameObject GetUntriggeredButtonFromTree(SoulTree targetTree) { List<GameObject> treeButtons = targetTree.TreeButtons; GameObject targetButton = null; foreach (GameObject buttonObj in treeButtons) { Button buttonScript = buttonObj.GetComponent<Button>(); if (!buttonScript.IsTargettedForTriggering && !buttonScript.IsTriggered) { buttonScript.IsTargettedForTriggering = true; targetButton = buttonObj; return targetButton; } } return targetButton; }
public CollectorAnswerHelpCallState(NPCStateMachine stateMachine, SoulTree targetTree, CollectorStateMachine callerStateMachine) : base(stateMachine) { this.targetTree = targetTree; this.callerStateMachine = callerStateMachine; }
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; }
// If I'm a player, the moment I step off my button, cancel the help calls of everyone that came to help me public bool CheckIfPlayerIsTriggeringTheTree(SoulTree targetTree) { if (callerStateMachine) { CollectorDriver playerDriver = this.callerStateMachine.NPC as CollectorDriver; foreach (GameObject buttonObj in targetTree.TreeButtons) { Button buttonScript = buttonObj.GetComponent<Button>(); if (buttonScript.IsTriggered && buttonScript.CollectorCurrentlyOnTheButton == playerDriver) return true; } } return false; }
public CollectorCallForHelpState(NPCStateMachine stateMachine, SoulTree targetTree) : base(stateMachine) { this.targetTree = targetTree; }