Skip to content

Commit

Permalink
-Items: Bots now dont calculate power for relics which cant use (#289)
Browse files Browse the repository at this point in the history
* -Items: Bots now dont calculate power for relics which cant use

* -Optimized code
  • Loading branch information
kadeshar authored Aug 18, 2023
1 parent cb2848b commit d2b607a
Showing 1 changed file with 24 additions and 3 deletions.
27 changes: 24 additions & 3 deletions playerbot/RandomItemMgr.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1521,14 +1521,34 @@ uint32 RandomItemMgr::CalculateStatWeight(uint8 playerclass, uint8 spec, ItemPro
#else
bool noCaster = (Classes)playerclass == CLASS_WARRIOR || (Classes)playerclass == CLASS_ROGUE || (Classes)playerclass == CLASS_HUNTER || spec == 30 || spec == 32 || spec == 21 || spec == 6;
bool hasMana = !((Classes)playerclass == CLASS_WARRIOR || (Classes)playerclass == CLASS_ROGUE);

if (!proto->IsWeapon() && (proto->SubClass == ITEM_SUBCLASS_ARMOR_LIBRAM || proto->SubClass == ITEM_SUBCLASS_ARMOR_IDOL || proto->SubClass == ITEM_SUBCLASS_ARMOR_TOTEM))
return (uint32)(proto->Quality + proto->ItemLevel);

if ((Classes)playerclass == CLASS_HUNTER && proto->SubClass == ITEM_SUBCLASS_WEAPON_THROWN)
return (uint32)proto->ItemLevel;
#endif

//check relicts
if (proto->InventoryType == INVTYPE_RELIC)
{
if (playerclass == CLASS_PALADIN && proto->SubClass != ITEM_SUBCLASS_ARMOR_LIBRAM)
return 0;

if (playerclass == CLASS_DRUID && proto->SubClass != ITEM_SUBCLASS_ARMOR_IDOL)
return 0;

if (playerclass == CLASS_SHAMAN && proto->SubClass != ITEM_SUBCLASS_ARMOR_TOTEM)
return 0;

if (playerclass == CLASS_WARRIOR
|| playerclass == CLASS_HUNTER
|| playerclass == CLASS_ROGUE
|| playerclass == CLASS_PRIEST
|| playerclass == CLASS_MAGE
|| playerclass == CLASS_WARLOCK)
return 0;

return proto->Quality + proto->ItemLevel;
}

bool isWhitelist = false;
// whitelist
if (std::find(sPlayerbotAIConfig.randomGearWhitelist.begin(), sPlayerbotAIConfig.randomGearWhitelist.end(), proto->ItemId) != sPlayerbotAIConfig.randomGearWhitelist.end())
Expand Down Expand Up @@ -2133,6 +2153,7 @@ uint32 RandomItemMgr::CalculateStatWeight(uint8 playerclass, uint8 spec, ItemPro
if (!isWhitelist && !playerAttacker)
return 0;
}


itSpec = (ItemSpecType)specType;

Expand Down

0 comments on commit d2b607a

Please sign in to comment.