From b7b334af9929abbdd7acfd5cf4546f13947acf21 Mon Sep 17 00:00:00 2001 From: Yunfan Li Date: Tue, 5 Mar 2024 00:11:53 +0800 Subject: [PATCH] PremadeSpecGlyph config (unimplemented) --- .github/workflows/core-build.yml | 8 ++++++-- src/PlayerbotAIConfig.cpp | 10 ++++++++++ src/PlayerbotAIConfig.h | 2 ++ src/strategy/actions/LfgActions.cpp | 2 +- src/strategy/actions/LootRollAction.cpp | 2 +- .../priest/ShadowPriestStrategyActionNodeFactory.h | 10 ++++++++++ 6 files changed, 30 insertions(+), 4 deletions(-) diff --git a/.github/workflows/core-build.yml b/.github/workflows/core-build.yml index 8bf52f1ff..38855d351 100644 --- a/.github/workflows/core-build.yml +++ b/.github/workflows/core-build.yml @@ -1,6 +1,6 @@ # This starter workflow is for a CMake project running on multiple platforms. There is a different starter workflow if you just want a single platform. # See: https://github.com/actions/starter-workflows/blob/main/ci/cmake-single-platform.yml -name: CMake on multiple platforms +name: ubuntu-build on: push: @@ -24,7 +24,11 @@ jobs: c_compiler: gcc cpp_compiler: g++ build_type: Release - + - os: ubuntu-latest + c_compiler: gcc + cpp_compiler: g++ + build_type: Release + runs-on: ${{ matrix.os }} name: ${{ matrix.os }}-${{ matrix.cpp_compiler }} diff --git a/src/PlayerbotAIConfig.cpp b/src/PlayerbotAIConfig.cpp index e3b0f2bd8..bbcb44fea 100644 --- a/src/PlayerbotAIConfig.cpp +++ b/src/PlayerbotAIConfig.cpp @@ -172,6 +172,16 @@ bool PlayerbotAIConfig::Initialize() std::ostringstream os; os << "AiPlayerbot.PremadeSpecName." << cls << "." << spec; premadeSpecName[cls][spec] = sConfigMgr->GetOption(os.str().c_str(), "", false); + os.str(""); + os.clear(); + os << "AiPlayerbot.PremadeSpecGlyph." << cls << "." << spec; + premadeSpecGlyph[cls][spec] = sConfigMgr->GetOption(os.str().c_str(), "", false); + std::vector splitSpecGlyph = split(premadeSpecGlyph[cls][spec], ','); + for (std::string &split : splitSpecGlyph) { + if (split.size() != 0) { + parsedSpecGlyph[cls][spec].push_back(atoi(split.c_str())); + } + } for (uint32 level = 0; level < MAX_LEVEL; ++level) { std::ostringstream os; os << "AiPlayerbot.PremadeSpecLink." << cls << "." << spec << "." << level; diff --git a/src/PlayerbotAIConfig.h b/src/PlayerbotAIConfig.h index 2dc450d75..29199c9e4 100644 --- a/src/PlayerbotAIConfig.h +++ b/src/PlayerbotAIConfig.h @@ -97,6 +97,8 @@ class PlayerbotAIConfig // ClassSpecs classSpecs[MAX_CLASSES]; std::string premadeSpecName[MAX_CLASSES][MAX_SPECNO]; + std::string premadeSpecGlyph[MAX_CLASSES][MAX_SPECNO]; + std::vector parsedSpecGlyph[MAX_CLASSES][MAX_SPECNO]; std::string premadeSpecLink[MAX_CLASSES][MAX_SPECNO][MAX_LEVEL]; std::vector> parsedSpecLinkOrder[MAX_CLASSES][MAX_SPECNO][MAX_LEVEL]; uint32 randomClassSpecProb[MAX_CLASSES][MAX_SPECNO]; diff --git a/src/strategy/actions/LfgActions.cpp b/src/strategy/actions/LfgActions.cpp index 86f9cd473..99802ddff 100644 --- a/src/strategy/actions/LfgActions.cpp +++ b/src/strategy/actions/LfgActions.cpp @@ -33,7 +33,7 @@ uint32 LfgJoinAction::GetRoles() case CLASS_DRUID: if (spec == 2) return PLAYER_ROLE_HEALER; - else if (spec == 1 && bot->getLevel() >= 20) + else if (spec == 1) return (PLAYER_ROLE_TANK | PLAYER_ROLE_DAMAGE); else return PLAYER_ROLE_DAMAGE; diff --git a/src/strategy/actions/LootRollAction.cpp b/src/strategy/actions/LootRollAction.cpp index d549b3da0..9f5db411c 100644 --- a/src/strategy/actions/LootRollAction.cpp +++ b/src/strategy/actions/LootRollAction.cpp @@ -36,7 +36,7 @@ bool LootRollAction::Execute(Event event) { case ITEM_CLASS_WEAPON: case ITEM_CLASS_ARMOR: - if (usage == ITEM_USAGE_EQUIP || usage == ITEM_USAGE_REPLACE) { + if (usage == ITEM_USAGE_EQUIP || usage == ITEM_USAGE_REPLACE || usage == ITEM_USAGE_BAD_EQUIP) { vote = NEED; } else if (usage != ITEM_USAGE_NONE) { diff --git a/src/strategy/priest/ShadowPriestStrategyActionNodeFactory.h b/src/strategy/priest/ShadowPriestStrategyActionNodeFactory.h index acbc517eb..49bc26a39 100644 --- a/src/strategy/priest/ShadowPriestStrategyActionNodeFactory.h +++ b/src/strategy/priest/ShadowPriestStrategyActionNodeFactory.h @@ -18,6 +18,7 @@ class ShadowPriestStrategyActionNodeFactory : public NamedObjectFactory