public void MakePlayerMoveToDestination(Vector3 targetPosition) { float currentBelief = BeliefController.Instance.CurrentBeliefAmount; float maxBelief = BeliefController.Instance.MaxBeliefAmount; float beliefRatio = currentBelief / maxBelief; float mappedClickWeight = ExtensionFunctions.Map(beliefRatio, 0, 1, minPlayerClickWeight, 1); float maxModifierWeight = mappedClickWeight; PlayerMovementInterestModifier maxModifier = null; foreach (PlayerMovementInterestModifier playerMovementInterestModifier in _playerMovementInterestModifiers) { if (playerMovementInterestModifier.CanModifierAffect(maxModifierWeight)) { maxModifierWeight = playerMovementInterestModifier.InterestModifierWeight; maxModifier = playerMovementInterestModifier; } } if (!maxModifier) { playerMovement.MovePlayerToPosition(targetPosition); } else { playerMovement.MovePlayerToPosition(maxModifier.GetTargetPosition()); maxModifier.SetModifierUsed(); } }