コード例 #1
0
 public float GetDamageMultiplier()
 {
     if (attributeConverter != null && (Object)base.worker != (Object)null)
     {
         AttributeConverterInstance converter = base.worker.GetComponent <AttributeConverters>().GetConverter(attributeConverter.Id);
         return(Mathf.Max(1f + converter.Evaluate(), 0.1f));
     }
     return(1f);
 }
    public float GetMovementSpeedMultiplier(Navigator navigator)
    {
        float num = 1f;

        if (movementSpeed != null)
        {
            num += movementSpeed.Evaluate();
        }
        return(Mathf.Max(0.1f, num));
    }
コード例 #3
0
        /// <summary>
        /// Adds experience to the Duplicant.
        /// </summary>
        /// <param name="id">The attribute ID to gain experience.</param>
        /// <param name="time">The time spent training the attribute.</param>
        /// <param name="multiplier">The experience multiplier.</param>
        /// <returns>true if the Duplicant leveled up, or false otherwise.</returns>
        public bool AddExperience(string id, float time, float multiplier)
        {
            bool result = false;

            if (id != null && attrLevels.TryGetValue(id, out AttributeLevel attrLevel))
            {
                float effectiveTime = time * multiplier;
                if (trainingSpeed != null)
                {
                    effectiveTime += effectiveTime * trainingSpeed.Evaluate();
                }
                result = attrLevel.AddExperience(levels, effectiveTime);
                attrLevel.Apply(levels);
            }
            return(result);
        }