Beispiel #1
0
        static bool GetValueCore(out int point, out int percent, EnumBoostType boostType, ISkillTarget owner, params int[] buffIds)
        {
            point   = 0;
            percent = 0;
            IBoostBuff boost = null;

            switch (boostType)
            {
            case EnumBoostType.AmpValue:
                if (owner.TryGetAmpValue(ref boost, buffIds))
                {
                    point   = boost.Point;
                    percent = boost.Percent;
                }
                break;

            case EnumBoostType.EaseValue:
                if (owner.TryGetEaseValue(ref boost, buffIds))
                {
                    point   = boost.Point;
                    percent = boost.Percent;
                }
                break;
            }
            return(point != 0 || percent != 0);
        }
Beispiel #2
0
        static bool GetValueCore(out int point, out int percent, int inPoint, int inPercent, EnumBoostType boostType, ISkillTarget owner, params int[] buffIds)
        {
            point   = inPoint;
            percent = inPercent;
            IBoostBuff boost = null;

            switch (boostType)
            {
            case EnumBoostType.AmpValue:
                if (owner.TryGetAmpValue(ref boost, buffIds))
                {
                    if (point != 0)
                    {
                        point = Convert.ToInt32(inPoint + boost.Point + inPoint * boost.AsPercent);
                    }
                    if (percent != 0)
                    {
                        percent = Convert.ToInt32(inPercent + boost.Point + inPercent * boost.AsPercent);
                    }
                }
                break;

            case EnumBoostType.EaseValue:
                if (owner.TryGetEaseValue(ref boost, buffIds))
                {
                    if (point != 0)
                    {
                        point = Convert.ToInt32(inPoint + boost.Point + inPoint * boost.AsPercent);
                    }
                    if (percent != 0)
                    {
                        percent = Convert.ToInt32(inPercent + boost.Point + inPercent * boost.AsPercent);
                    }
                }
                break;
            }
            return(point != inPoint || percent != inPercent);
        }