Jump to content

Sarjuuk

Members
  • Posts

    99
  • Joined

  • Last visited

  • Donations

    0.00 GBP 

Posts posted by Sarjuuk

  1. the real thing...

    What bug does the patch fix? What features does the patch add?

    limits energy-conversion of Ferocious Bite to max 30 points

    For which repository revision was the patch created?

    master @ b9d2db3a3737ec795b34fb755851c0c65afd5999

    Is there a thread in the bug report section or at lighthouse?

    none..

    Who has been writing this patch?

    ah well ... dunno

    Patch

    [Download]

  2. had some spare time ;)

    updated to: master @ b9d2db3a3737ec795b34fb755851c0c65afd5999

    fixed an issue in mask generation by shiftig. ... I still wonder how the hell it worked initially.

    /E: small fix

    - reset a missplaced break, preventing most cirtical strikes in melee >_>

    - added IconID-Check to prevent Rip to benefit from Rend and Tears +crit

  3. Finishing move that causes damage per combo point and converts each extra point of energy (up to a maximum of 30 extra energy) into X additional damage

    So no, you can't just simply remove the energy reset. Check how much is left and set it to abs(current energy - 30). You'd need to modify the damage-Formula too

  4. Energy should regenerate independent from the current form you're in (much like Mana).

    With each rank of this talent you're allowed to keep 20*rank of it.

    This was changed to prohibit Powershifting. Now you'd end up with roughly the same energy after a powershift, even with maxed Furor.

    What you patch does, is to give 20*rank energy to the user after each shift, independent of what he had, when leaving Cat. So.. noooo, not a good way ;)

    This is an old fix of mine. Maybe it gives an idea how it should work (even if its done in an unacceptable way^^)

    http://spezies0815.datearea.de/index.php?s=diff&n=Furor.diff

  5. Hmm, i don't see how this could work out, especially in the case of Deathknights.

    In this case, i'd need to add up to four stackable Auras to his target (one for each possible disease), and i don't know, from where to pull them off.

    Mind you, the spells i posted in the original post get applied to the caster, when equiping the coresponding Glyph. Spells, like the one you posted, exist one for each Glyph and sadly are just ScriptEffects.

    What i could try, is to solve this with already existent variables, like Charges. But i'd expect visual side-effects like a number on the Debuff-Icon in this case.

  6. What bug does the patch fix? What features does the patch add?

    • * Adds a counter to the SpellAura-Object. This is used to fix four Glyphes, that extend the duration of one or more specific Auras by a set amount, if hit by a special spell.
      * Implements those four Glyphs of..:

    1. * Scourge Strike* Shred* Starfire* Backstab

    For which repository revision was the patch created?

    r8630

    Is there a thread in the bug report section or at lighthouse?

    found none

    Who has been writing this patch?

    Sarjuuk

    Patch

    DELETE FROM `spell_proc_event` WHERE `entry` IN (54845, 54815, 56800, 58642);
    INSERT INTO `spell_proc_event` VALUES
    (54845, 0, 7, 4, 0, 0, 196608, 0, 0, 100, 0), -- Starfire extends Moonfire
    (54815, 0, 7, 32768, 0, 0, 69904, 0, 0, 100, 0), -- Shred extends Rip
    (56800, 0, 8, 8388612, 0, 0, 69904, 0, 0, 100, 0), -- Backstab extends Rupture
    (58642, 0, 15, 0, 134217728, 0, 69904, 0, 0, 100, 0); -- Scourge Strike extends Diseases

    diff --git a/src/game/SpellAuras.cpp b/src/game/SpellAuras.cpp
    index 27d2e74..5b0d396 100644
    --- a/src/game/SpellAuras.cpp
    +++ b/src/game/SpellAuras.cpp
    @@ -383,6 +383,8 @@ m_isRemovedOnShapeLost(true), m_in_use(0), m_deleted(false)
    
        m_applyTime = time(NULL);
    
    +    m_durationExtends = 3;                                  // Aura Duration may be extended by up to three times
    +
        int32 damage;
        if(!caster)
        {
    diff --git a/src/game/SpellAuras.h b/src/game/SpellAuras.h
    index 3973382..28ac91c 100644
    --- a/src/game/SpellAuras.h
    +++ b/src/game/SpellAuras.h
    @@ -234,7 +234,7 @@ class MANGOS_DLL_SPEC Aura
            void SetAuraDuration(int32 duration) { m_duration = duration; }
            time_t GetAuraApplyTime() { return m_applyTime; }
    
    -        SpellModifier *getAuraSpellMod() {return m_spellmod; }
    +        SpellModifier *getAuraSpellMod() { return m_spellmod; }
    
            uint64 const& GetCasterGUID() const { return m_caster_guid; }
            Unit* GetCaster() const;
    @@ -277,11 +277,14 @@ class MANGOS_DLL_SPEC Aura
            void SetAura(bool remove) { m_target->SetVisibleAura(m_auraSlot, remove ? 0 : GetId()); }
            void SendAuraUpdate(bool remove);
    
    -        int8 GetStackAmount() {return m_stackAmount;}
    +        int8 GetStackAmount() { return m_stackAmount; }
            void SetStackAmount(uint8 num);
            bool modStackAmount(int32 num); // return true if last charge dropped
            void RefreshAura();
    
    +        int8 GetDurationExtends() { return m_durationExtends; }
    +        void UpdateDurationExtends() { m_durationExtends -= m_durationExtends ? 1 : 0; }
    +
            bool IsPositive() { return m_positive; }
            void SetNegative() { m_positive = false; }
            void SetPositive() { m_positive = true; }
    @@ -293,8 +296,8 @@ class MANGOS_DLL_SPEC Aura
            bool IsPersistent() const { return m_isPersistent; }
            bool IsDeathPersistent() const { return m_isDeathPersist; }
            bool IsRemovedOnShapeLost() const { return m_isRemovedOnShapeLost; }
    -        bool IsInUse() const { return m_in_use;}
    -        bool IsDeleted() const { return m_deleted;}
    +        bool IsInUse() const { return m_in_use; }
    +        bool IsDeleted() const { return m_deleted; }
    
            void SetInUse(bool state)
            {
    @@ -312,8 +315,8 @@ class MANGOS_DLL_SPEC Aura
            void _AddAura();
            bool _RemoveAura();
    
    -        bool IsSingleTarget() {return m_isSingleTargetAura;}
    -        void SetIsSingleTarget(bool val) { m_isSingleTargetAura = val;}
    +        bool IsSingleTarget() { return m_isSingleTargetAura; }
    +        void SetIsSingleTarget(bool val) { m_isSingleTargetAura = val; }
    
            void SetRemoveMode(AuraRemoveMode mode) { m_removeMode = mode; }
    
    @@ -369,6 +372,7 @@ class MANGOS_DLL_SPEC Aura
            uint8 m_auraLevel;                                  // Aura level (store caster level for correct show level dep amount)
            uint8 m_procCharges;                                // Aura charges (0 for infinite)
            uint8 m_stackAmount;                                // Aura stack amount
    +        uint8 m_durationExtends;                            // Remaining Aura extends
    
            bool m_positive:1;
            bool m_permanent:1;
    diff --git a/src/game/SpellEffects.cpp b/src/game/SpellEffects.cpp
    index b803a90..07444ee 100644
    --- a/src/game/SpellEffects.cpp
    +++ b/src/game/SpellEffects.cpp
    @@ -4820,12 +4820,40 @@ void Spell::EffectScriptEffect(uint32 effIndex)
    {
        // TODO: we must implement hunter pet summon at login there (spell 6962)
    
    +    uint64 targetFlags1 = UI64LIT(0x0);                     // SpellFamilyFlags for Aura that is to be extended
    +    uint16 targetFlags2 = UI64LIT(0x0);
    +
        switch(m_spellInfo->SpellFamilyName)
        {
            case SPELLFAMILY_GENERIC:
            {
                switch(m_spellInfo->Id)
                {
    +                // Glyph of Starfire : Starfire extends Moonfire
    +                case 54846:
    +                {
    +                    targetFlags1 = UI64LIT(0x00000002);
    +                    break;
    +                }
    +                // Glyph of Shred : Shred extends Rip
    +                case 63974:
    +                {
    +                    targetFlags1 = UI64LIT(0x00800000);
    +                    break;
    +                }
    +                // Glyph of Backstab : Backstab extends Rupture
    +                case 63975:
    +                {
    +                    targetFlags1 = UI64LIT(0x00100000);
    +                    break;
    +                }
    +                // Glyph of Scourge Strike : Scourge Strike extends Diseases
    +                case 69961:
    +                {
    +                    targetFlags1 = UI64LIT(0x0600080000000000);
    +                    targetFlags2 = UI64LIT(0x0052);
    +                    break;
    +                }
                    // PX-238 Winter Wondervolt TRAP
                    case 26275:
                    {
    @@ -5505,6 +5533,37 @@ void Spell::EffectScriptEffect(uint32 effIndex)
            }
        }
    
    +    // Extend remaining Aura duration
    +    if((targetFlags1 || targetFlags2) && unitTarget)
    +    {
    +        Unit::AuraMap const& auras = unitTarget->GetAuras();
    +        for(Unit::AuraMap::const_iterator itr = auras.begin(); itr != auras.end(); ++itr)
    +        {
    +            // Only extend expected Auras (SpellFamily is checked through CasterGUID)
    +            if(targetFlags1 && !(itr->second->GetSpellProto()->SpellFamilyFlags & targetFlags1))
    +                continue;
    +
    +            if(targetFlags2 && !(itr->second->GetSpellProto()->SpellFamilyFlags2 & targetFlags2))
    +                continue;
    +
    +            // Aura must be owned by Caster
    +            if(itr->second->GetCaster()->GetGUID() != m_caster->GetGUID())
    +                continue;
    +
    +            // Aura must not be extended more than three times
    +            if(!itr->second->GetDurationExtends())
    +                continue;
    +
    +            // Decremet remaining extends and prolong Aura
    +            itr->second->UpdateDurationExtends();
    +
    +            // Use fixed amount [3000ms], if one of the corresponding Spells is cast directly.. (read: would cause crash otherwise)
    +            int addtime = m_triggeredByAuraSpell ? (m_triggeredByAuraSpell->EffectBasePoints[0] + 1) * 1000 : 3000;
    +            itr->second->SetAuraDuration(itr->second->GetAuraDuration() + addtime);
    +            itr->second->SendAuraUpdate(false);
    +        }
    +    }
    +
        // normal DB scripted effect
        if(!unitTarget)
            return;
    diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp
    index 868905b..9332967 100644
    --- a/src/game/Unit.cpp
    +++ b/src/game/Unit.cpp
    @@ -5025,6 +5025,12 @@ bool Unit::HandleDummyAuraProc(Unit *pVictim, uint32 damage, Aura* triggeredByAu
                        }
                        return true;
                    }
    +                // Glyph of Scourge Strike ScriptEffect-Proc
    +                case 58642:
    +                {
    +                    triggered_spell_id = 69961;
    +                    break;
    +                }
                }
                break;
            }
    @@ -5542,6 +5548,18 @@ bool Unit::HandleDummyAuraProc(Unit *pVictim, uint32 damage, Aura* triggeredByAu
                        triggered_spell_id = 32747;
                        break;
                    }
    +                // Glyph of Shred ScriptEffect-Proc
    +                case 54815:
    +                {
    +                    triggered_spell_id = 63974;
    +                    break;
    +                }
    +                // Glyph of Starfire ScriptEffect-Proc
    +                case 54845:
    +                {
    +                    triggered_spell_id = 54846;
    +                    break;
    +                }
                }
                // Eclipse
                if (dummySpell->SpellIconID == 2856)
    @@ -5614,6 +5632,12 @@ bool Unit::HandleDummyAuraProc(Unit *pVictim, uint32 damage, Aura* triggeredByAu
                        triggered_spell_id = 32747;
                        break;
                    }
    +                // Glyph of Backstab ScriptEffect-Proc
    +                case 56800:
    +                {
    +                    triggered_spell_id = 63975;
    +                    break;
    +                }
                }
                // Cut to the Chase
                if (dummySpell->SpellIconID == 2909)
    

    Notes

    The Flag for the Deathknight Diseases is composed from these four spells. You may yell at me, if i forgot one ;)

    Name:         FamilyFlags 3 FamilyFlags 1+2
    Blood Plague: 0x02          0x0200080000000000
    Frost Fever:  0x02          0x0400080000000000
    Crypt Fever:  0x10          0x0
    Ebon Plague:  0x40          0x0000080000000000

    Currently it is possible to push the current duration beyond the initial duration. Eg. backstabbing, right after applying Rupture. It would be nice, if someone could confirm or deny, whether this is official behavior.

    Thank You

    /e: Behavior confirmed. It is possible, to put an aura over its initial duration. I even have Screenshots to prove it, if needed ;)

  7. Well.. if multiple Auras with MECHANIC_BLEED are on the target and one runs out, AURA_STATE_MECHANIC_BLEED is turned off.. regardless of the still active auras.

    so

            // Mechanic bleed aura state
           if(GetAllSpellMechanicMask(m_spellProto) & (1 << MECHANIC_BLEED))
               m_target->ModifyAuraState(AURA_STATE_MECHANIC_BLEED, false);

    should be more like

        // Mechanic bleed aura state
       if(GetAllSpellMechanicMask(m_spellProto) & (1 << MECHANIC_BLEED))
       {
           bool found = false;
           Unit::AuraList const& mPerDmg = m_target->GetAurasByType(SPELL_AURA_PERIODIC_DAMAGE);
           for(Unit::AuraList::const_iterator i = mPerDmg.begin(); i != mPerDmg.end(); ++i)
           {
               if(GetAllSpellMechanicMask((*i)->m_spellProto) & (1 << MECHANIC_BLEED))
               {
                   found = true;
                   break;
               }
           }
           if(!found)
               m_target->ModifyAuraState(AURA_STATE_MECHANIC_BLEED, false);
       }

  8. Updated to:

    master @ b9d2db3a3737ec795b34fb755851c0c65afd5999

    Features:

    - Corrected Base Paw Damage to 54.8 dps

    - Reviewed AP-Gain from Level for Druids (and removed double benefit in Feral Forms)

    - Implemented Spell:16972 and Ranks eff:1

    Author:

    vdpqtc, Sarjuuk

    Patch:

    diff --git a/src/game/StatSystem.cpp b/src/game/StatSystem.cpp
    index 32dc01b..ea6b291 100644
    --- a/src/game/StatSystem.cpp
    +++ b/src/game/StatSystem.cpp
    @@ -289,7 +289,8 @@ void Player::UpdateAttackPowerAndDamage(bool ranged )
                case CLASS_DRUID:
                {
                    //Check if Predatory Strikes is skilled
    -                float mLevelMult = 0.0;
    +                float mLevelMult = 0.0f;
    +                float mBonusWeaponAtt = 0.0f;
                    switch(m_form)
                    {
                        case FORM_CAT:
    @@ -301,9 +302,12 @@ void Player::UpdateAttackPowerAndDamage(bool ranged )
                            for(Unit::AuraList::const_iterator itr = mDummy.begin(); itr != mDummy.end(); ++itr)
                            {
                                // Predatory Strikes (effect 0)
    -                            if ((*itr)->GetEffIndex()==0 && (*itr)->GetSpellProto()->SpellIconID == 1563)
    +                            if ((*itr)->GetSpellProto()->SpellIconID == 1563 && (*itr)->GetEffIndex() == 0 && IsInFeralForm())
    +                                mLevelMult = getLevel() * (*itr)->GetModifier()->m_amount / 100.0f;
    +                            // Predatory Strikes (effect 1)
    +                            else if ((*itr)->GetSpellProto()->SpellIconID == 1563 && (*itr)->GetEffIndex() == 1)
                                {
    -                                mLevelMult = (*itr)->GetModifier()->m_amount / 100.0f;
    +                                mBonusWeaponAtt = (*itr)->GetModifier()->m_amount * m_baseFeralAP / 100.0f;
                                    break;
                                }
                            }
    @@ -315,12 +319,12 @@ void Player::UpdateAttackPowerAndDamage(bool ranged )
                    switch(m_form)
                    {
                        case FORM_CAT:
    -                        val2 = getLevel()*(mLevelMult+2.0f) + GetStat(STAT_STRENGTH)*2.0f + GetStat(STAT_AGILITY) - 20.0f + m_baseFeralAP; break;
    +                        val2 = GetStat(STAT_STRENGTH)*2.0f + GetStat(STAT_AGILITY) - 20.0f + mLevelMult + m_baseFeralAP + mBonusWeaponAtt; break;
                        case FORM_BEAR:
                        case FORM_DIREBEAR:
    -                        val2 = getLevel()*(mLevelMult+3.0f) + GetStat(STAT_STRENGTH)*2.0f - 20.0f + m_baseFeralAP; break;
    +                        val2 = GetStat(STAT_STRENGTH)*2.0f - 20.0f + mLevelMult + m_baseFeralAP + mBonusWeaponAtt; break;
                        case FORM_MOONKIN:
    -                        val2 = getLevel()*(mLevelMult+1.5f) + GetStat(STAT_STRENGTH)*2.0f - 20.0f + m_baseFeralAP; break;
    +                        val2 = GetStat(STAT_STRENGTH)*2.0f - 20.0f + m_baseFeralAP + mBonusWeaponAtt; break;
                        default:
                            val2 = GetStat(STAT_STRENGTH)*2.0f - 20.0f; break;
                    }
    @@ -424,8 +428,8 @@ void Player::CalculateMinMaxDamage(WeaponAttackType attType, bool normalized, fl
            uint32 lvl = getLevel();
            if ( lvl > 60 ) lvl = 60;
    
    -        weapon_mindamage = lvl*0.85*att_speed;
    -        weapon_maxdamage = lvl*1.25*att_speed;
    +        weapon_mindamage = lvl*0.714*att_speed;
    +        weapon_maxdamage = lvl*1.114*att_speed;
        }
        else if(!IsUseEquipedWeapon(attType==BASE_ATTACK))      //check if player not in form but still can't use weapon (broken/etc)
        {
    

  9. the comments i've found would suggest, that an increased consume would increase the chance to become pygmified.

    Sooo...

    What about getting the stack-count of this size-buff (ID:53805) and roll it against a rand(0, 10). You'd get the Pygm!-Buff definitly with the tenth stack and with a median of 6 or 7 stacks of the size-buff.

    eg:

    if(stackcount <= rand(0, 10))
       spell_id = 53805;                    // You feel a little smaller buff.
    else
       spell_id = 53806;                    // 10min Pygmified buff.

    wowwiki: "At 10 stacks you are transformed into a voodoo gnome"

    wowhead: "This is the buff u get from drinking 6 - 10 Pygmy Oils in a row"

  10. Sorry, but I didn't get this part very well :confused:. The feral combat "spell" adds additional attack power based on the equiped weapon's DPS. And although the spell is related to the feral damage, I'm don't see why we should limit the base damage based on the bonus calculation rule. Am I missing anything :confused:? Does anyone has any info regarding the feral base damage?

    The Spell itself is not used.

    There is a point (in dps) where Feral base dps stops scaling with level and starts scaling with weapon-dps more or less seamlessly. As Feral base-damage was implemented the spell didn't exist yet and it was an awful guesswork to figure out, how much it should be. (Maybe i'll find the old thread. Feral damage was roughly halved in the process .. doesn't matter)

    So, basically i just used this spell to back my argumentation up, how much base damage a feral druid should have^^

    In my opinion, at lvl 60 it..

    should be: 54.81 dps

    currently is: 63.00 dps

  11. What bug does the patch fix?

    Druid Nuker Tier5 4pc: will now increase the total damage of Starfire, not only the base damage like before.

    For which repository revision was the patch created?

    mangos-0.12 @ bb035e6d9d3f7bf2c0a134dfa550434a37c1429c

    Is there a thread in the bug report section or at lighthouse?

    nope

    Who has been writing this patch?

    Sarjuuk

    Description

    Essentially, I just moved the calculation from Spell::EffectSchoolDMG() to Unit::SpellDamageBonus() under // .. taken pct: scripted. (:

    Patch

    diff --git a/src/game/SpellEffects.cpp b/src/game/SpellEffects.cpp
    index 8b7e1ca..c1252b9 100644
    --- a/src/game/SpellEffects.cpp
    +++ b/src/game/SpellEffects.cpp
    @@ -420,34 +420,10 @@ void Spell::EffectSchoolDMG(uint32 effect_idx)
                    // Starfire
                    else if ( m_spellInfo->SpellFamilyFlags & UI64LIT(0x0004))
                    {
    -                    Unit::AuraList const& m_OverrideClassScript = m_caster->GetAurasByType(SPELL_AURA_OVERRIDE_CLASS_SCRIPTS);
    -                    for(Unit::AuraList::const_iterator i = m_OverrideClassScript.begin(); i != m_OverrideClassScript.end(); ++i)
    -                    {
    -                        // Starfire Bonus (caster)
    -                        switch((*i)->GetModifier()->m_miscvalue)
    -                        {
    -                            case 5481:                      // Nordrassil Regalia - bonus
    -                            {
    -                                Unit::AuraList const& m_periodicDamageAuras = unitTarget->GetAurasByType(SPELL_AURA_PERIODIC_DAMAGE);
    -                                for(Unit::AuraList::const_iterator itr = m_periodicDamageAuras.begin(); itr != m_periodicDamageAuras.end(); ++itr)
    -                                {
    -                                    // Moonfire or Insect Swarm (target debuff from any casters)
    -                                    if ( (*itr)->GetSpellProto()->SpellFamilyFlags & UI64LIT(0x00200002))
    -                                    {
    -                                        int32 mod = (*i)->GetModifier()->m_amount;
    -                                        damage += damage*mod/100;
    -                                        break;
    -                                    }
    -                                }
    -                                break;
    -                            }
    -                            case 5148:                      //Improved Starfire - Ivory Idol of the Moongoddes Aura
    -                            {
    -                                damage += (*i)->GetModifier()->m_amount;
    -                                break;
    -                            }
    -                        }
    -                    }
    +                    //Improved Starfire - Ivory Idol of the Moongoddes Aura
    +                    Aura* aur = m_caster->GetAura(34292,0);
    +                    if (aur)
    +                        damage += aur->GetModifier()->m_amount;
                    }
                    //Mangle Bonus for the initial damage of Lacerate and Rake
                    if ((m_spellInfo->SpellFamilyFlags==UI64LIT(0x0000000000001000) && m_spellInfo->SpellIconID==494) ||
    diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp
    index e1badd4..76a6a1a 100644
    --- a/src/game/Unit.cpp
    +++ b/src/game/Unit.cpp
    @@ -7507,10 +7507,30 @@ uint32 Unit::SpellDamageBonus(Unit *pVictim, SpellEntry const *spellProto, uint3
        {
            switch((*i)->GetModifier()->m_miscvalue)
            {
    -            //Molten Fury
    -            case 4920: case 4919:
    -                if(pVictim->HasAuraState(AURA_STATE_HEALTHLESS_20_PERCENT))
    -                    TakenTotalMod *= (100.0f+(*i)->GetModifier()->m_amount)/100.0f; break;
    +            // Molten Fury
    +            case 4920:
    +            case 4919:
    +                if (pVictim->HasAuraState(AURA_STATE_HEALTHLESS_20_PERCENT))
    +                    TakenTotalMod *= (100.0f+(*i)->GetModifier()->m_amount) / 100.0f;
    +                break;
    +            // Nordrassil Regalia - Bonus
    +            case 5481:
    +            {
    +                if (!spellProto->SpellFamilyFlags & UI64LIT(0x0004) || spellProto->SpellFamilyName != SPELLFAMILY_DRUID)
    +                    break;
    +                
    +                Unit::AuraList const& m_periodicDamageAuras = pVictim->GetAurasByType(SPELL_AURA_PERIODIC_DAMAGE);
    +                for(Unit::AuraList::const_iterator itr = m_periodicDamageAuras.begin(); itr != m_periodicDamageAuras.end(); ++itr)
    +                {
    +                    // Moonfire or Insect Swarm (target debuff from any casters)
    +                    if ((*itr)->GetSpellProto()->SpellFamilyFlags & UI64LIT(0x00200002))
    +                    {
    +                       TakenTotalMod *= (100.0f+(*i)->GetModifier()->m_amount)/100.0f;
    +                        break;
    +                    }
    +                }
    +                break;
    +            }
            }
        }
    
    

  12. nice idea, definitely better than my first;)

    /e:

    ok, nitpicking first :D

    uint16 mBonusWeaponAtt = 0.0;

    considering, you want a float in the end, i'd suggest to initialize it as one :>

    +//                  case FORM_MOONKIN:

    Sorry, no can do!

    While its true, that Moonkin Form doesn't gain AP from Effect0 any longer (and thankfully doesn't need to) Feral Attack power on Weapons still include Moonkin Form. And while its perfectly senseless to use, Effect1 of this talent will affect the AP gained from weapons.. even if its a Moonkin...

    and last: coding style *cough*

    Now the sad and serious stuff:

    1) Currently, any form gains double benefit from Attackpower per level. To check this, simply strip you druid of any armor and use a form of some kind. The Attackpower-Tooltip will read something like this (combine the numbers)

    for example Cat: [str*2+Agi-20+Lvl*2] + [Lvl*2]

    as the Bonus is added through the respective Form passives it doesn't have to be hardcoded. So i threw it out

    2) BasepawDamage is unfortunately too high too. :(

    (lvl*0.85*att_speed + lvl*1.25*att_speed) / 2 => 63 dps

    It should be 54.81dps as hinted by this spell and like it's already correctly implemented in ItemPrototype.h -> getFeralBonus()

    3) Moonkins don't gain AP per Level any more. This was changed in 3.0.2 but was still in the code up to now.

    Patch: see below

  13. I think this work now in different way:

    So not applied this part.

    Duh.. Why am i always overlooking such things ><

    I only replace stacking check to spellicon for more cleary show problematic values (for planned fix)

    Finally getting rid of this SpellIcon-Check-Monstrosity? ;)

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. Privacy Policy Terms of Use