diff options
author | _manuel_ <none@none> | 2010-01-27 14:56:14 -0300 |
---|---|---|
committer | _manuel_ <none@none> | 2010-01-27 14:56:14 -0300 |
commit | 3e73c5cc777faed2cbfb7784526721ebe0e913a7 (patch) | |
tree | cf30480b6765ce2f3b2b9d9c385a24e9dd7b932e /src | |
parent | 6c63596be0b3b599b5c11f0f5a53a90abc550cb6 (diff) |
Implemented fix for Spirit Wolf (feral spirit talent). By Gyullo
--HG--
branch : trunk
Diffstat (limited to 'src')
-rw-r--r-- | src/game/Pet.cpp | 23 |
1 files changed, 21 insertions, 2 deletions
diff --git a/src/game/Pet.cpp b/src/game/Pet.cpp index b5a42b2101f..dd201a7a064 100644 --- a/src/game/Pet.cpp +++ b/src/game/Pet.cpp @@ -886,7 +886,7 @@ bool Guardian::InitStatsForLevel(uint8 petlevel) if (GetEntry() == 29264) { float apbonus=0.35f; - + // Glyph of Feral Spirit if (AuraEffect *aurEff = m_owner->GetAuraEffect(63271, 0)) apbonus += aurEff->GetAmount() / 100.0f; @@ -976,6 +976,25 @@ bool Guardian::InitStatsForLevel(uint8 petlevel) SetBaseWeaponDamage(BASE_ATTACK, MAXDAMAGE, float(petlevel / 2)); break; } + case 29264: // Feral Spirit + { + if (!pInfo) + SetCreateHealth(30*petlevel); + + float dmg_multiplier = 0.3f; + if (HasAura(63271)) // Glyph of Feral Spirit + dmg_multiplier = 0.6f; + + + SetBonusDamage(int32(m_owner->GetTotalAttackPowerValue(BASE_ATTACK) * dmg_multiplier)); + + SetBaseWeaponDamage(BASE_ATTACK, MINDAMAGE,float((petlevel * 4 - petlevel) + (m_owner->GetTotalAttackPowerValue(BASE_ATTACK) * dmg_multiplier))); + SetBaseWeaponDamage(BASE_ATTACK, MAXDAMAGE,float((petlevel * 4 + petlevel) + (m_owner->GetTotalAttackPowerValue(BASE_ATTACK) * dmg_multiplier))); + + SetModifierValue(UNIT_MOD_ARMOR, BASE_VALUE, float(m_owner->GetArmor()) * 0.35f); // Bonus Armor (35% of player armor) + SetModifierValue(UNIT_MOD_STAT_STAMINA, BASE_VALUE,float(m_owner->GetStat(STAT_STAMINA)) * 0.3f); // Bonus Stamina (30% of player stamina) + break; + } case 31216: // Mirror Image { SetBonusDamage(int32(m_owner->SpellBaseDamageBonus(SPELL_SCHOOL_MASK_FROST) * 0.33f)); @@ -1260,7 +1279,7 @@ void Pet::_SaveAuras() CharacterDatabase.PExecute("INSERT INTO pet_aura (guid,caster_guid,spell,effect_mask,recalculate_mask,stackcount,amount0,amount1,amount2,base_amount0,base_amount1,base_amount2,maxduration,remaintime,remaincharges) " "VALUES ('%u', '" UI64FMTD "', '%u', '%u', '%u', '%u', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%u')", - m_charmInfo->GetPetNumber(), itr->second->GetCasterGUID(), itr->second->GetId(), effMask, recalculateMask, + m_charmInfo->GetPetNumber(), itr->second->GetCasterGUID(), itr->second->GetId(), effMask, recalculateMask, itr->second->GetStackAmount(), damage[0], damage[1], damage[2], baseDamage[0], baseDamage[1], baseDamage[2], itr->second->GetMaxDuration(), itr->second->GetDuration(),itr->second->GetCharges()); } |