public void SetLevel(string attribute_id, int level) { AttributeLevel attributeLevel = GetAttributeLevel(attribute_id); if (attributeLevel != null) { attributeLevel.SetLevel(level); attributeLevel.Apply(this); } }
public void SetExperience(string attribute_id, float experience) { AttributeLevel attributeLevel = GetAttributeLevel(attribute_id); if (attributeLevel != null) { attributeLevel.SetExperience(experience); attributeLevel.Apply(this); } }
protected override void OnPrefabInit() { foreach (AttributeInstance attribute in this.GetAttributes()) { if (attribute.Attribute.IsTrainable) { AttributeLevel attributeLevel = new AttributeLevel(attribute); levels.Add(attributeLevel); attributeLevel.Apply(this); } } }
public bool AddExperience(string attribute_id, float time_spent, float multiplier) { AttributeLevel attributeLevel = GetAttributeLevel(attribute_id); if (attributeLevel == null) { Debug.LogWarning(attribute_id + " has no level."); return(false); } time_spent *= multiplier; AttributeConverterInstance attributeConverterInstance = Db.Get().AttributeConverters.TrainingSpeed.Lookup(this); if (attributeConverterInstance != null) { float num = attributeConverterInstance.Evaluate(); time_spent += time_spent * num; } bool result = attributeLevel.AddExperience(this, time_spent); attributeLevel.Apply(this); return(result); }