コード例 #1
0
        public uint CalculateRageRegen(ref UnitStructs.CalcDamageInfo damageinfo, bool isCrit, Unit victim, bool asPlayer)
        {
            uint rageToRegen = 0;

            if (asPlayer)
            {
                bool  isMain = damageinfo.attackType == AttackTypes.BASE_ATTACK;
                float speed  = ((Player)this).BaseAttackTime;
                if (!isMain)
                {
                    Item offHand = ((Player)this).Inventory.Backpack.GetItem((byte)InventorySlots.SLOT_OFFHAND);
                    if (offHand != null)
                    {
                        speed = offHand.Template.WeaponSpeed;
                    }
                }
                rageToRegen = (uint)(((15 * damageinfo.damage) / (4 * FormulaData.RageConversionValue(this.Level))) + (((isMain ? 3.5 : 1.75) * (isCrit ? 2 : 1)) / 2));
            }
            else
            {
                rageToRegen = (uint)(2.5 * (damageinfo.damage / FormulaData.RageConversionValue(victim.Level)));
            }
            return(rageToRegen < 1 ? 1 : rageToRegen);
        }