/* * Copyright (C) 2016+ AzerothCore , released under GNU GPL v2 license, you may redistribute it and/or modify it under version 2 of the License, or (at your option), any later version. */ #ifndef _PLAYERBOT_BUDGETVALUES_H #define _PLAYERBOT_BUDGETVALUES_H #include "NamedObjectContext.h" #include "Value.h" class PlayerbotAI; enum class NeedMoneyFor : uint32 { none = 0, repair = 1, ammo = 2, spells = 3, travel = 4, consumables = 5, gear = 6, guild = 7, tradeskill = 8, anything = 9 }; class MaxGearRepairCostValue : public Uint32CalculatedValue { public: MaxGearRepairCostValue(PlayerbotAI* botAI) : Uint32CalculatedValue(botAI,"max repair cost", 60) { } uint32 Calculate() override; }; class RepairCostValue : public Uint32CalculatedValue { public: RepairCostValue(PlayerbotAI* botAI) : Uint32CalculatedValue(botAI, "repair cost", 60) { } uint32 Calculate() override; }; class TrainCostValue : public Uint32CalculatedValue { public: TrainCostValue(PlayerbotAI* botAI) : Uint32CalculatedValue(botAI, "train cost", 60) { } uint32 Calculate() override; }; class MoneyNeededForValue : public Uint32CalculatedValue, public Qualified { public: MoneyNeededForValue(PlayerbotAI* botAI) : Uint32CalculatedValue(botAI, "money needed for",60) { } uint32 Calculate() override; }; class TotalMoneyNeededForValue : public Uint32CalculatedValue, public Qualified { public: TotalMoneyNeededForValue(PlayerbotAI* botAI) : Uint32CalculatedValue(botAI, "total money needed for", 60) { } uint32 Calculate() override; private: std::vector saveMoneyFor = { NeedMoneyFor::guild,NeedMoneyFor::repair,NeedMoneyFor::ammo, NeedMoneyFor::spells, NeedMoneyFor::travel }; }; class FreeMoneyForValue : public Uint32CalculatedValue, public Qualified { public: FreeMoneyForValue(PlayerbotAI* botAI) : Uint32CalculatedValue(botAI, "free money for") { } uint32 Calculate() override; }; class ShouldGetMoneyValue : public BoolCalculatedValue { public: ShouldGetMoneyValue(PlayerbotAI* botAI) : BoolCalculatedValue(botAI, "should get money",2) { } bool Calculate() override; }; #endif