Exemplo n.º 1
0
	// 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;
	}
Exemplo n.º 2
0
	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;
	}
Exemplo n.º 4
0
	// 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;
	}
Exemplo n.º 5
0
	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;
	}