Esempio n. 1
0
        public void ChangeMastery(TransformationDefinition definition, float change)
        {
            PlayerTransformation playerTransformation = AcquiredTransformations[definition];
            float maxMastery = playerTransformation.Definition.GetMaxMastery(this);

            if (playerTransformation.CurrentMastery >= maxMastery)
            {
                return;
            }

            if (playerTransformation.CurrentMastery + change > maxMastery)
            {
                change = maxMastery - playerTransformation.CurrentMastery;
            }

            if (Trait != null)
            {
                Trait.OnPlayerMasteryGained(this, ref change, playerTransformation.CurrentMastery);
            }

            playerTransformation.ChangeMastery(this, change);
            definition.OnPlayerMasteryChanged(this, change, playerTransformation.CurrentMastery);
        }