示例#1
0
        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();
            }
        }