mirror of
https://github.com/mod-playerbots/mod-playerbots
synced 2025-11-29 15:58:20 +08:00
[Initialization] Fix random bot gear quality
This commit is contained in:
@@ -96,8 +96,8 @@ bool PlayerbotAIConfig::Initialize()
|
|||||||
tellWhenAvoidAoe = sConfigMgr->GetOption<bool>("AiPlayerbot.TellWhenAvoidAoe", true);
|
tellWhenAvoidAoe = sConfigMgr->GetOption<bool>("AiPlayerbot.TellWhenAvoidAoe", true);
|
||||||
|
|
||||||
randomGearLoweringChance = sConfigMgr->GetOption<float>("AiPlayerbot.RandomGearLoweringChance", 0.0f);
|
randomGearLoweringChance = sConfigMgr->GetOption<float>("AiPlayerbot.RandomGearLoweringChance", 0.0f);
|
||||||
randomGearQualityLimit = sConfigMgr->GetOption<int32>("AiPlayerbot.AutoGearQualityLimit", 3);
|
randomGearQualityLimit = sConfigMgr->GetOption<int32>("AiPlayerbot.RandomGearQualityLimit", 3);
|
||||||
randomGearScoreLimit = sConfigMgr->GetOption<int32>("AiPlayerbot.AutoGearScoreLimit", 0);
|
randomGearScoreLimit = sConfigMgr->GetOption<int32>("AiPlayerbot.RandomGearScoreLimit", 0);
|
||||||
|
|
||||||
randomBotMaxLevelChance = sConfigMgr->GetOption<float>("AiPlayerbot.RandomBotMaxLevelChance", 0.15f);
|
randomBotMaxLevelChance = sConfigMgr->GetOption<float>("AiPlayerbot.RandomBotMaxLevelChance", 0.15f);
|
||||||
randomBotRpgChance = sConfigMgr->GetOption<float>("AiPlayerbot.RandomBotRpgChance", 0.20f);
|
randomBotRpgChance = sConfigMgr->GetOption<float>("AiPlayerbot.RandomBotRpgChance", 0.20f);
|
||||||
|
|||||||
@@ -151,7 +151,7 @@ void PlayerbotFactory::Prepare()
|
|||||||
{
|
{
|
||||||
uint32 gs = sPlayerbotAIConfig->randomGearScoreLimit == 0 ? 0 :
|
uint32 gs = sPlayerbotAIConfig->randomGearScoreLimit == 0 ? 0 :
|
||||||
PlayerbotFactory::CalcMixedGearScore(sPlayerbotAIConfig->randomGearScoreLimit, sPlayerbotAIConfig->randomGearQualityLimit);
|
PlayerbotFactory::CalcMixedGearScore(sPlayerbotAIConfig->randomGearScoreLimit, sPlayerbotAIConfig->randomGearQualityLimit);
|
||||||
itemQuality = sPlayerbotAIConfig->randomGearScoreLimit;
|
itemQuality = sPlayerbotAIConfig->randomGearQualityLimit;
|
||||||
gearScoreLimit = gs;
|
gearScoreLimit = gs;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -3827,7 +3827,7 @@ float PlayerbotFactory::CalculateItemScore(uint32 item_id, Player* bot)
|
|||||||
// todo: remove duplicate code
|
// todo: remove duplicate code
|
||||||
if (cls == CLASS_HUNTER) {
|
if (cls == CLASS_HUNTER) {
|
||||||
// AGILITY only
|
// AGILITY only
|
||||||
score += agility * 2.5 + attack_power + armor_penetration * 2 + rangeDps * 5 + hit * 2.5 + crit * 2 + haste * 2.5 + intellect;
|
score += agility * 2.5 + attack_power + armor_penetration * 2 + rangeDps * 5 + hit * 2 + crit * 2 + haste * 2 + intellect;
|
||||||
} else if (cls == CLASS_WARLOCK ||
|
} else if (cls == CLASS_WARLOCK ||
|
||||||
cls == CLASS_MAGE ||
|
cls == CLASS_MAGE ||
|
||||||
(cls == CLASS_PRIEST && tab == 2) || // shadow
|
(cls == CLASS_PRIEST && tab == 2) || // shadow
|
||||||
@@ -3836,7 +3836,7 @@ float PlayerbotFactory::CalculateItemScore(uint32 item_id, Player* bot)
|
|||||||
) {
|
) {
|
||||||
// SPELL DPS
|
// SPELL DPS
|
||||||
score += intellect * 0.5 + spirit * 0.5 + spell_power + spell_penetration
|
score += intellect * 0.5 + spirit * 0.5 + spell_power + spell_penetration
|
||||||
+ hit * 1.2 + crit * 0.7 + haste * 1 + rangeDps;
|
+ hit * 1 + crit * 0.7 + haste * 1 + rangeDps;
|
||||||
} else if ((cls == CLASS_PALADIN && tab == 0) || // holy
|
} else if ((cls == CLASS_PALADIN && tab == 0) || // holy
|
||||||
(cls == CLASS_PRIEST && tab != 2) || // discipline / holy
|
(cls == CLASS_PRIEST && tab != 2) || // discipline / holy
|
||||||
(cls == CLASS_SHAMAN && tab == 2) || // heal
|
(cls == CLASS_SHAMAN && tab == 2) || // heal
|
||||||
@@ -3846,7 +3846,7 @@ float PlayerbotFactory::CalculateItemScore(uint32 item_id, Player* bot)
|
|||||||
score += intellect * 0.5 + spirit * 0.5 + spell_power + mana_regeneration * 0.5 + crit * 0.5 + haste * 1 + rangeDps;
|
score += intellect * 0.5 + spirit * 0.5 + spell_power + mana_regeneration * 0.5 + crit * 0.5 + haste * 1 + rangeDps;
|
||||||
} else if (cls == CLASS_ROGUE || (cls == CLASS_DRUID && tab == 2 && !PlayerbotAI::IsTank(bot))) {
|
} else if (cls == CLASS_ROGUE || (cls == CLASS_DRUID && tab == 2 && !PlayerbotAI::IsTank(bot))) {
|
||||||
// AGILITY mainly (STRENGTH also)
|
// AGILITY mainly (STRENGTH also)
|
||||||
score += agility * 2 + strength + attack_power + armor_penetration * 1 + meleeDps * 5 + hit * 2 + crit * 1.5 + haste * 1.5 + expertise * 2.5;
|
score += agility * 2 + strength + attack_power + armor_penetration * 1 + meleeDps * 5 + hit * 1.5 + crit * 1.5 + haste * 1.5 + expertise * 2.5;
|
||||||
} else if ((cls == CLASS_PALADIN && tab == 2) || // retribution
|
} else if ((cls == CLASS_PALADIN && tab == 2) || // retribution
|
||||||
(cls == CLASS_WARRIOR && tab != 2) || // arm / fury
|
(cls == CLASS_WARRIOR && tab != 2) || // arm / fury
|
||||||
(cls == CLASS_DEATH_KNIGHT && tab != 0) // ice / unholy
|
(cls == CLASS_DEATH_KNIGHT && tab != 0) // ice / unholy
|
||||||
@@ -3856,20 +3856,20 @@ float PlayerbotFactory::CalculateItemScore(uint32 item_id, Player* bot)
|
|||||||
} else if ((cls == CLASS_SHAMAN && tab == 1)) { // enhancement
|
} else if ((cls == CLASS_SHAMAN && tab == 1)) { // enhancement
|
||||||
// STRENGTH mainly (AGILITY, INTELLECT also)
|
// STRENGTH mainly (AGILITY, INTELLECT also)
|
||||||
score += strength * 1 + agility * 1.5 + intellect * 1.5 + attack_power + spell_power * 1.5 + armor_penetration * 0.5 + meleeDps * 5
|
score += strength * 1 + agility * 1.5 + intellect * 1.5 + attack_power + spell_power * 1.5 + armor_penetration * 0.5 + meleeDps * 5
|
||||||
+ hit * 2 + crit * 1.5 + haste * 1.5 + expertise * 2;
|
+ hit * 1.5 + crit * 1.5 + haste * 1.5 + expertise * 2;
|
||||||
} else if ((cls == CLASS_WARRIOR && tab == 2) ||
|
} else if ((cls == CLASS_WARRIOR && tab == 2) ||
|
||||||
(cls == CLASS_PALADIN && tab == 1)) {
|
(cls == CLASS_PALADIN && tab == 1)) {
|
||||||
// TANK WITH SHIELD
|
// TANK WITH SHIELD
|
||||||
score += strength * 1 + agility * 2 + attack_power * 0.2
|
score += strength * 1 + agility * 2 + attack_power * 0.2
|
||||||
+ defense * 2.5 + parry * 2 + dodge * 2 + resilience * 2 + block * 2 + armor * 0.3 + stamina * 3
|
+ defense * 2.5 + parry * 2 + dodge * 2 + resilience * 2 + block * 2 + armor * 0.3 + stamina * 3
|
||||||
+ hit * 1 + crit * 0.2 + haste * 0.5 + expertise * 3;
|
+ hit * 0.5 + crit * 0.2 + haste * 0.5 + expertise * 3;
|
||||||
} else if (cls == CLASS_DEATH_KNIGHT && tab == 0){
|
} else if (cls == CLASS_DEATH_KNIGHT && tab == 0){
|
||||||
// BLOOD DK TANK
|
// BLOOD DK TANK
|
||||||
score += strength * 1 + agility * 2 + attack_power * 0.2
|
score += strength * 1 + agility * 2 + attack_power * 0.2
|
||||||
+ defense * 3.5 + parry * 2 + dodge * 2 + resilience * 2 + armor * 0.3 + stamina * 2.5
|
+ defense * 3.5 + parry * 2 + dodge * 2 + resilience * 2 + armor * 0.3 + stamina * 2.5
|
||||||
+ hit * 2 + crit * 0.5 + haste * 0.5 + expertise * 3.5;
|
+ hit * 0.5 + crit * 0.5 + haste * 0.5 + expertise * 3.5;
|
||||||
} else {
|
} else {
|
||||||
// BEAR DRUID TANK (AND FERAL DRUID...?)
|
// BEAR DRUID TANK
|
||||||
score += agility * 1.5 + strength * 1 + attack_power * 0.5 + armor_penetration * 0.5 + meleeDps * 2
|
score += agility * 1.5 + strength * 1 + attack_power * 0.5 + armor_penetration * 0.5 + meleeDps * 2
|
||||||
+ defense * 0.25 + dodge * 0.25 + armor * 0.3 + stamina * 1.5
|
+ defense * 0.25 + dodge * 0.25 + armor * 0.3 + stamina * 1.5
|
||||||
+ hit * 1 + crit * 1 + haste * 0.5 + expertise * 3;
|
+ hit * 1 + crit * 1 + haste * 0.5 + expertise * 3;
|
||||||
@@ -4249,7 +4249,7 @@ float PlayerbotFactory::CalculateEnchantScore(uint32 enchant_id, Player* bot)
|
|||||||
// todo: remove duplicate code
|
// todo: remove duplicate code
|
||||||
if (cls == CLASS_HUNTER) {
|
if (cls == CLASS_HUNTER) {
|
||||||
// AGILITY only
|
// AGILITY only
|
||||||
score += agility * 2.5 + attack_power + armor_penetration * 2 + dps * 5 + hit * 2.5 + crit * 2 + haste * 2.5 + intellect;
|
score += agility * 2.5 + attack_power + armor_penetration * 2 + dps * 5 + hit * 2 + crit * 2 + haste * 2.5 + intellect;
|
||||||
} else if (cls == CLASS_WARLOCK ||
|
} else if (cls == CLASS_WARLOCK ||
|
||||||
cls == CLASS_MAGE ||
|
cls == CLASS_MAGE ||
|
||||||
(cls == CLASS_PRIEST && tab == 2) || // shadow
|
(cls == CLASS_PRIEST && tab == 2) || // shadow
|
||||||
@@ -4258,7 +4258,7 @@ float PlayerbotFactory::CalculateEnchantScore(uint32 enchant_id, Player* bot)
|
|||||||
) {
|
) {
|
||||||
// SPELL DPS
|
// SPELL DPS
|
||||||
score += intellect * 0.5 + spirit * 0.5 + spell_power + spell_penetration
|
score += intellect * 0.5 + spirit * 0.5 + spell_power + spell_penetration
|
||||||
+ hit * 1.2 + crit * 0.7 + haste * 1;
|
+ hit * 1 + crit * 0.7 + haste * 1;
|
||||||
} else if ((cls == CLASS_PALADIN && tab == 0) || // holy
|
} else if ((cls == CLASS_PALADIN && tab == 0) || // holy
|
||||||
(cls == CLASS_PRIEST && tab != 2) || // discipline / holy
|
(cls == CLASS_PRIEST && tab != 2) || // discipline / holy
|
||||||
(cls == CLASS_SHAMAN && tab == 2) || // heal
|
(cls == CLASS_SHAMAN && tab == 2) || // heal
|
||||||
@@ -4268,7 +4268,7 @@ float PlayerbotFactory::CalculateEnchantScore(uint32 enchant_id, Player* bot)
|
|||||||
score += intellect * 0.5 + spirit * 0.5 + spell_power + mana_regeneration * 0.5 + crit * 0.5 + haste * 1;
|
score += intellect * 0.5 + spirit * 0.5 + spell_power + mana_regeneration * 0.5 + crit * 0.5 + haste * 1;
|
||||||
} else if (cls == CLASS_ROGUE || (cls == CLASS_DRUID && tab == 2 && !PlayerbotAI::IsTank(bot))) {
|
} else if (cls == CLASS_ROGUE || (cls == CLASS_DRUID && tab == 2 && !PlayerbotAI::IsTank(bot))) {
|
||||||
// AGILITY mainly (STRENGTH also)
|
// AGILITY mainly (STRENGTH also)
|
||||||
score += agility * 2 + strength + attack_power + armor_penetration * 1 + dps * 5 + hit * 2 + crit * 1.5 + haste * 1.5 + expertise * 2.5;
|
score += agility * 2 + strength + attack_power + armor_penetration * 1 + dps * 5 + hit * 1.5 + crit * 1.5 + haste * 1.5 + expertise * 2.5;
|
||||||
} else if ((cls == CLASS_PALADIN && tab == 2) || // retribution
|
} else if ((cls == CLASS_PALADIN && tab == 2) || // retribution
|
||||||
(cls == CLASS_WARRIOR && tab != 2) || // arm / fury
|
(cls == CLASS_WARRIOR && tab != 2) || // arm / fury
|
||||||
(cls == CLASS_DEATH_KNIGHT && tab != 0) // ice / unholy
|
(cls == CLASS_DEATH_KNIGHT && tab != 0) // ice / unholy
|
||||||
@@ -4278,20 +4278,20 @@ float PlayerbotFactory::CalculateEnchantScore(uint32 enchant_id, Player* bot)
|
|||||||
} else if ((cls == CLASS_SHAMAN && tab == 1)) { // enhancement
|
} else if ((cls == CLASS_SHAMAN && tab == 1)) { // enhancement
|
||||||
// STRENGTH mainly (AGILITY, INTELLECT also)
|
// STRENGTH mainly (AGILITY, INTELLECT also)
|
||||||
score += strength * 1 + agility * 1.5 + intellect * 1.5 + attack_power + spell_power * 1.5 + armor_penetration * 0.5 + dps * 5
|
score += strength * 1 + agility * 1.5 + intellect * 1.5 + attack_power + spell_power * 1.5 + armor_penetration * 0.5 + dps * 5
|
||||||
+ hit * 2 + crit * 1.5 + haste * 1.5 + expertise * 2;
|
+ hit * 1.5 + crit * 1.5 + haste * 1.5 + expertise * 2;
|
||||||
} else if ((cls == CLASS_WARRIOR && tab == 2) ||
|
} else if ((cls == CLASS_WARRIOR && tab == 2) ||
|
||||||
(cls == CLASS_PALADIN && tab == 1)) {
|
(cls == CLASS_PALADIN && tab == 1)) {
|
||||||
// TANK WITH SHIELD
|
// TANK WITH SHIELD
|
||||||
score += strength * 1 + agility * 2 + attack_power * 0.2
|
score += strength * 1 + agility * 2 + attack_power * 0.2
|
||||||
+ defense * 2.5 + parry * 2 + dodge * 2 + resilience * 2 + block * 2 + armor * 0.3 + stamina * 3
|
+ defense * 2.5 + parry * 2 + dodge * 2 + resilience * 2 + block * 2 + armor * 0.3 + stamina * 3
|
||||||
+ hit * 1 + crit * 0.2 + haste * 0.5 + expertise * 3;
|
+ hit * 0.5 + crit * 0.2 + haste * 0.5 + expertise * 3;
|
||||||
} else if (cls == CLASS_DEATH_KNIGHT && tab == 0){
|
} else if (cls == CLASS_DEATH_KNIGHT && tab == 0){
|
||||||
// BLOOD DK TANK
|
// BLOOD DK TANK
|
||||||
score += strength * 1 + agility * 2 + attack_power * 0.2
|
score += strength * 1 + agility * 2 + attack_power * 0.2
|
||||||
+ defense * 3.5 + parry * 2 + dodge * 2 + resilience * 2 + armor * 0.3 + stamina * 2.5
|
+ defense * 3.5 + parry * 2 + dodge * 2 + resilience * 2 + armor * 0.3 + stamina * 2.5
|
||||||
+ hit * 2 + crit * 0.5 + haste * 0.5 + expertise * 3.5;
|
+ hit * 0.5 + crit * 0.5 + haste * 0.5 + expertise * 3.5;
|
||||||
} else {
|
} else {
|
||||||
// BEAR DRUID TANK (AND FERAL DRUID...?)
|
// BEAR DRUID TANK
|
||||||
score += agility * 1.5 + strength * 1 + attack_power * 0.5 + armor_penetration * 0.5 + dps * 2
|
score += agility * 1.5 + strength * 1 + attack_power * 0.5 + armor_penetration * 0.5 + dps * 2
|
||||||
+ defense * 0.25 + dodge * 0.25 + armor * 0.3 + stamina * 1.5
|
+ defense * 0.25 + dodge * 0.25 + armor * 0.3 + stamina * 1.5
|
||||||
+ hit * 1 + crit * 1 + haste * 0.5 + expertise * 3;
|
+ hit * 1 + crit * 1 + haste * 0.5 + expertise * 3;
|
||||||
@@ -4529,7 +4529,7 @@ float PlayerbotFactory::CalculateSpellScore(uint32 spell_id, Player* bot, uint32
|
|||||||
// todo: remove duplicate code
|
// todo: remove duplicate code
|
||||||
if (cls == CLASS_HUNTER) {
|
if (cls == CLASS_HUNTER) {
|
||||||
// AGILITY only
|
// AGILITY only
|
||||||
score += agility * 2.5 + attack_power + armor_penetration * 2 + rangeDps * 5 + hit * 2.5 + crit * 2 + haste * 2.5 + intellect;
|
score += agility * 2.5 + attack_power + armor_penetration * 2 + rangeDps * 5 + hit * 2 + crit * 2 + haste * 2.5 + intellect;
|
||||||
} else if (cls == CLASS_WARLOCK ||
|
} else if (cls == CLASS_WARLOCK ||
|
||||||
cls == CLASS_MAGE ||
|
cls == CLASS_MAGE ||
|
||||||
(cls == CLASS_PRIEST && tab == 2) || // shadow
|
(cls == CLASS_PRIEST && tab == 2) || // shadow
|
||||||
@@ -4538,7 +4538,7 @@ float PlayerbotFactory::CalculateSpellScore(uint32 spell_id, Player* bot, uint32
|
|||||||
) {
|
) {
|
||||||
// SPELL DPS
|
// SPELL DPS
|
||||||
score += intellect * 0.5 + spirit * 0.5 + spell_power + spell_penetration
|
score += intellect * 0.5 + spirit * 0.5 + spell_power + spell_penetration
|
||||||
+ hit * 1.2 + crit * 0.7 + haste * 1 + rangeDps;
|
+ hit * 1 + crit * 0.7 + haste * 1 + rangeDps;
|
||||||
} else if ((cls == CLASS_PALADIN && tab == 0) || // holy
|
} else if ((cls == CLASS_PALADIN && tab == 0) || // holy
|
||||||
(cls == CLASS_PRIEST && tab != 2) || // discipline / holy
|
(cls == CLASS_PRIEST && tab != 2) || // discipline / holy
|
||||||
(cls == CLASS_SHAMAN && tab == 2) || // heal
|
(cls == CLASS_SHAMAN && tab == 2) || // heal
|
||||||
@@ -4548,7 +4548,7 @@ float PlayerbotFactory::CalculateSpellScore(uint32 spell_id, Player* bot, uint32
|
|||||||
score += intellect * 0.5 + spirit * 0.5 + spell_power + mana_regeneration * 0.5 + crit * 0.5 + haste * 1 + rangeDps;
|
score += intellect * 0.5 + spirit * 0.5 + spell_power + mana_regeneration * 0.5 + crit * 0.5 + haste * 1 + rangeDps;
|
||||||
} else if (cls == CLASS_ROGUE || (cls == CLASS_DRUID && tab == 2 && !PlayerbotAI::IsTank(bot))) {
|
} else if (cls == CLASS_ROGUE || (cls == CLASS_DRUID && tab == 2 && !PlayerbotAI::IsTank(bot))) {
|
||||||
// AGILITY mainly (STRENGTH also)
|
// AGILITY mainly (STRENGTH also)
|
||||||
score += agility * 2 + strength + attack_power + armor_penetration * 1 + meleeDps * 5 + hit * 2 + crit * 1.5 + haste * 1.5 + expertise * 2.5;
|
score += agility * 2 + strength + attack_power + armor_penetration * 1 + meleeDps * 5 + hit * 1.5 + crit * 1.5 + haste * 1.5 + expertise * 2.5;
|
||||||
} else if ((cls == CLASS_PALADIN && tab == 2) || // retribution
|
} else if ((cls == CLASS_PALADIN && tab == 2) || // retribution
|
||||||
(cls == CLASS_WARRIOR && tab != 2) || // arm / fury
|
(cls == CLASS_WARRIOR && tab != 2) || // arm / fury
|
||||||
(cls == CLASS_DEATH_KNIGHT && tab != 0) // ice / unholy
|
(cls == CLASS_DEATH_KNIGHT && tab != 0) // ice / unholy
|
||||||
@@ -4558,20 +4558,20 @@ float PlayerbotFactory::CalculateSpellScore(uint32 spell_id, Player* bot, uint32
|
|||||||
} else if ((cls == CLASS_SHAMAN && tab == 1)) { // enhancement
|
} else if ((cls == CLASS_SHAMAN && tab == 1)) { // enhancement
|
||||||
// STRENGTH mainly (AGILITY, INTELLECT also)
|
// STRENGTH mainly (AGILITY, INTELLECT also)
|
||||||
score += strength * 1 + agility * 1.5 + intellect * 1.5 + attack_power + spell_power * 1.5 + armor_penetration * 0.5 + meleeDps * 5
|
score += strength * 1 + agility * 1.5 + intellect * 1.5 + attack_power + spell_power * 1.5 + armor_penetration * 0.5 + meleeDps * 5
|
||||||
+ hit * 2 + crit * 1.5 + haste * 1.5 + expertise * 2;
|
+ hit * 1.5 + crit * 1.5 + haste * 1.5 + expertise * 2;
|
||||||
} else if ((cls == CLASS_WARRIOR && tab == 2) ||
|
} else if ((cls == CLASS_WARRIOR && tab == 2) ||
|
||||||
(cls == CLASS_PALADIN && tab == 1)) {
|
(cls == CLASS_PALADIN && tab == 1)) {
|
||||||
// TANK WITH SHIELD
|
// TANK WITH SHIELD
|
||||||
score += strength * 1 + agility * 2 + attack_power * 0.2
|
score += strength * 1 + agility * 2 + attack_power * 0.2
|
||||||
+ defense * 2.5 + parry * 2 + dodge * 2 + resilience * 2 + block * 2 + armor * 0.3 + stamina * 3
|
+ defense * 2.5 + parry * 2 + dodge * 2 + resilience * 2 + block * 2 + armor * 0.3 + stamina * 3
|
||||||
+ hit * 1 + crit * 0.2 + haste * 0.5 + expertise * 3;
|
+ hit * 0.5 + crit * 0.2 + haste * 0.5 + expertise * 3;
|
||||||
} else if (cls == CLASS_DEATH_KNIGHT && tab == 0){
|
} else if (cls == CLASS_DEATH_KNIGHT && tab == 0){
|
||||||
// BLOOD DK TANK
|
// BLOOD DK TANK
|
||||||
score += strength * 1 + agility * 2 + attack_power * 0.2
|
score += strength * 1 + agility * 2 + attack_power * 0.2
|
||||||
+ defense * 3.5 + parry * 2 + dodge * 2 + resilience * 2 + armor * 0.3 + stamina * 2.5
|
+ defense * 3.5 + parry * 2 + dodge * 2 + resilience * 2 + armor * 0.3 + stamina * 2.5
|
||||||
+ hit * 2 + crit * 0.5 + haste * 0.5 + expertise * 3.5;
|
+ hit * 0.5 + crit * 0.5 + haste * 0.5 + expertise * 3.5;
|
||||||
} else {
|
} else {
|
||||||
// BEAR DRUID TANK (AND FERAL DRUID...?)
|
// BEAR DRUID TANK
|
||||||
score += agility * 1.5 + strength * 1 + attack_power * 0.5 + armor_penetration * 0.5 + meleeDps * 2
|
score += agility * 1.5 + strength * 1 + attack_power * 0.5 + armor_penetration * 0.5 + meleeDps * 2
|
||||||
+ defense * 0.25 + dodge * 0.25 + armor * 0.3 + stamina * 1.5
|
+ defense * 0.25 + dodge * 0.25 + armor * 0.3 + stamina * 1.5
|
||||||
+ hit * 1 + crit * 1 + haste * 0.5 + expertise * 3;
|
+ hit * 1 + crit * 1 + haste * 0.5 + expertise * 3;
|
||||||
|
|||||||
Reference in New Issue
Block a user