コード例 #1
0
    public float GetAbilityValue(int casterLevel, BattleProperty casterProperty, BattleProperty targetProperty)
    {
        float abilityValue = baseValue + baseValueGrow * casterLevel;

        // additionSourceValue 附加值
        if (m_AdditionSourceValues.Count > 0)
        {
            for (int i = 0; i < m_AdditionSourceValues.Count; i++)
            {
                AdditionSourceValue    data = m_AdditionSourceValues[i];
                AbilityValueSourceType abilityValueSourceType = data.abilityValueSourceType;
                int sourceValueCoefficient             = data.sourceValueCoefficient;
                int sourceValueCoefficientGrow         = data.sourceValueCoefficientGrow;
                int limitBasicValue                    = data.limitBasicValue;
                int limitBasicVlimitBasicValueGrowalue = data.limitBasicValueGrow;

                float coefficient         = sourceValueCoefficient * 0.0001f + casterLevel * sourceValueCoefficientGrow * 0.0001f;
                int   additionSourceValue = GetAdditionSourceValueFuncMap[abilityValueSourceType](casterProperty, targetProperty);
                float addition            = additionSourceValue * coefficient;

                abilityValue += addition;
            }
        }
        return(abilityValue);
    }
コード例 #2
0
    public void AddAdditionValueParams(AbilityValueSourceType abilityValueSourceType, int sourceValueCoefficient, int sourceValueCoefficientGrow, int limitBasicValue, int limitBasicValueGrow)
    {
        AdditionSourceValue additionSourceValue = new AdditionSourceValue(abilityValueSourceType,
                                                                          sourceValueCoefficient, sourceValueCoefficientGrow, limitBasicValue, limitBasicValueGrow);

        m_AdditionSourceValues.Add(additionSourceValue);
    }