aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Spells/SpellEffects.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/game/Spells/SpellEffects.cpp')
-rw-r--r--src/server/game/Spells/SpellEffects.cpp37
1 files changed, 33 insertions, 4 deletions
diff --git a/src/server/game/Spells/SpellEffects.cpp b/src/server/game/Spells/SpellEffects.cpp
index 4a1061b6425..34743342da6 100644
--- a/src/server/game/Spells/SpellEffects.cpp
+++ b/src/server/game/Spells/SpellEffects.cpp
@@ -4183,12 +4183,41 @@ void Spell::EffectSkinning(SpellEffIndex /*effIndex*/)
creature->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_SKINNABLE);
creature->SetFlag(OBJECT_DYNAMIC_FLAGS, UNIT_DYNFLAG_LOOTABLE);
- int32 reqValue = targetLevel < 10 ? 0 : targetLevel < 20 ? (targetLevel-10)*10 : targetLevel*5;
+ if (skill == SKILL_SKINNING)
+ {
+ int32 reqValue;
+ if (targetLevel <= 10)
+ reqValue = 1;
+ else if (targetLevel < 20)
+ reqValue = (targetLevel - 10) * 10;
+ else if (targetLevel <= 73)
+ reqValue = targetLevel * 5;
+ else if (targetLevel < 80)
+ reqValue = targetLevel * 10 - 365;
+ else if (targetLevel <= 84)
+ reqValue = targetLevel * 5 + 35;
+ else if (targetLevel <= 87)
+ reqValue = targetLevel * 15 - 805;
+ else if (targetLevel <= 92)
+ reqValue = (targetLevel - 62) * 20;
+ else if (targetLevel <= 104)
+ reqValue = targetLevel * 5 + 175;
+ else if (targetLevel <= 107)
+ reqValue = targetLevel * 15 - 905;
+ else if (targetLevel <= 112)
+ reqValue = (targetLevel - 72) * 20;
+ else if (targetLevel <= 122)
+ reqValue = (targetLevel - 32) * 10;
+ else
+ reqValue = 900;
- int32 skillValue = m_caster->ToPlayer()->GetPureSkillValue(skill);
+ // TODO: Specialize skillid for each expansion
+ // new db field?
+ // tied to one of existing expansion fields in creature_template?
- // Double chances for elites
- m_caster->ToPlayer()->UpdateGatherSkill(skill, skillValue, reqValue, creature->isElite() ? 2 : 1);
+ // Double chances for elites
+ m_caster->ToPlayer()->UpdateGatherSkill(skill, damage, reqValue, creature->isElite() ? 2 : 1);
+ }
}
void Spell::EffectCharge(SpellEffIndex /*effIndex*/)