/// <summary> /// Gets the value of an AdditionalProperty the entity has. /// </summary> /// <typeparam name="T">The type of property to get.</typeparam> /// <param name="property">The AdditionalProperty to get the value for.</param> /// <returns>The value corresponding to the property passed in. If no value was found, returns the default value of type T.</returns> public T GetAdditionalProperty <T>(AdditionalProperty property) { if (HasAdditionalProperty(property) == false) { return(default(T)); } return((T)AdditionalProperties[property]); }
/// <summary> /// Removes an AdditionalProperty from the entity /// </summary> /// <param name="property">The AdditionalProperty to remove.</param> public void RemoveAdditionalProperty(AdditionalProperty property) { if (HasAdditionalProperty(property) == true) { Debug.Log($"Removed the {property} property on {Entity.Name}!"); } AdditionalProperties.Remove(property); }
/// <summary> /// Adds an AdditionalProperty to the entity. /// If it already has the property, it replaces its value with the new value. /// </summary> /// <param name="property">The AdditionalProperty to add.</param> /// <param name="value">An object of the value corresponding to the AdditionalProperty.</param> public void AddAdditionalProperty(AdditionalProperty property, object value) { //Remove if the entity already has it if (HasAdditionalProperty(property) == true) { RemoveAdditionalProperty(property); } AdditionalProperties.Add(property, value); Debug.Log($"Added the {property} property to {Entity.Name} with a value of {value}!"); }
public void AdditionalProperty_ValidInput_ReturnsValidProperties() { const string token = "%TestToken%"; const string value = "Property value"; var property = new AdditionalProperty(token, value); var actualToken = property.Token; var actualValue = property.Value; Assert.That(actualToken, Is.EqualTo(token)); Assert.That(actualValue, Is.EqualTo(value)); }
/// 设置ModifierInfo /// </summary> /// <param name="nameCN">中文名</param> /// <param name="namePY">拼音</param> /// <param name="modifier">要配置的buff</param> /// <param name="IntValue">整数字符串</param> public static void setModifierInfo(ModifierInfo modifier, string nameCN, string namePY, FormationPosition formationPosition) { // 设置为战斗后移除 modifier.flags = ModifierFlags.RemoveAfterCombat; // 设置鼠标移上去时的描述 LanguageData mLanguageData = modifier.GetLanguageData(); mLanguageData.SetText("Name", nameCN); mLanguageData.SetText("Desc", nameCN + "施展中"); mLanguageData.ID = "martial-" + namePY; //foreach (KeyValuePair<string, string> kv in mLanguageData.Map) //{ // FormationMod.logger.Log($"LanguageData key:{kv.Key}value:{kv.Value}"); //} List <AdditionalProperty> mProperties = modifier.Properties; // 清楚旧的属性 mProperties.Clear(); for (int i = 0; i < formationPosition.Buffs.Count; i++) { PositionBuff Buffs = formationPosition.Buffs[i]; // 添加属性为参数值 VariableValue variableValue = new VariableValue(); variableValue.Type = VariableValueType.Value; variableValue.value = Buffs.Value; // 新的属性 AdditionalProperty newAdditionalProperty = new AdditionalProperty(); newAdditionalProperty.IsFactor = true; //newAdditionalProperty.IsFactor = false; newAdditionalProperty.effectType = PropertyEffectType.Add; newAdditionalProperty.property = Buffs.BuffType; newAdditionalProperty.Value = variableValue; // 添加属性 mProperties.Add(newAdditionalProperty); } //foreach (AdditionalProperty additionalProperty in mProperties) //{ // FormationMod.logger.Log($"additionalProperty IsFactor:{additionalProperty.IsFactor}|effectType:{additionalProperty.effectType}|property:{additionalProperty.property}"); // FormationMod.logger.Log($"additionalProperty VariableValueType: { additionalProperty.Value.Type}|value: { additionalProperty.Value.value}"); //} }
/// <summary> /// Checks if the entity has an AdditionalProperty. /// </summary> /// <param name="property">The AdditionalProperty to check.</param> /// <returns>true if the entity has the AdditionalProperty, otherwise false</returns> public bool HasAdditionalProperty(AdditionalProperty property) { return(AdditionalProperties.ContainsKey(property)); }