コード例 #1
0
        /// <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]);
        }
コード例 #2
0
        /// <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);
        }
コード例 #3
0
        /// <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}!");
        }
コード例 #4
0
        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));
        }
コード例 #5
0
        /// 设置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}");
            //}
        }
コード例 #6
0
 /// <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));
 }