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)); }
/// <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); }