26class EconomyTradeableComponent {
30 ::ll::TypedStorage<8, 8, ::ActorUniqueID> mLastTradingPlayer;
31 ::ll::TypedStorage<4, 4, int> mUpdateMerchantTimer;
32 ::ll::TypedStorage<1, 1, bool> mAddRecipeOnUpdate;
33 ::ll::TypedStorage<4, 4, int> mRiches;
34 ::ll::TypedStorage<8, 8, ::Actor&> mOwner;
35 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::MerchantRecipeList>> mOffers;
36 ::ll::TypedStorage<8, 32, ::std::string> mDisplayName;
37 ::ll::TypedStorage<8, 32, ::std::string> mGeneratedTablePath;
38 ::ll::TypedStorage<1, 1, bool> mConvertedFromVillagerV1;
39 ::ll::TypedStorage<4, 4, int> mDiscountDegradationTimeStamp;
44 EconomyTradeableComponent& operator=(EconomyTradeableComponent
const&);
45 EconomyTradeableComponent(EconomyTradeableComponent
const&);
46 EconomyTradeableComponent();
51 MCAPI
explicit EconomyTradeableComponent(
::Actor& owner);
53 MCAPI
void _calculateDemandPrices(
56 int nearbyCuredDiscount,
57 int heroEffectAmplifier,
58 bool hasHeroOfTheVillage,
62 MCAPI
bool _generateTrades();
64 MCAPI ::TradeTable* _getTradeTable();
66 MCAPI
void _setMaxTradeTier(
int tradeTier);
68 MCAPI
void _setTradeTier(
int tradeTier);
72 MCAPI
bool canLevelUp()
const;
74 MCAPI ::UpdateTradePacket createDataPacket(::ContainerID containerID);
78 MCAPI ::IntRange getCurrentCuredDiscount()
const;
80 MCFOLD ::std::string
const& getDisplayName()
const;
84 MCAPI ::MerchantRecipeList* getOffers();
86 MCFOLD
int getRiches()
const;
88 MCAPI uint getTradeExpForCurrentLevel()
const;
91 MCAPI ::std::vector<uint> getTradeExpRequirements()
const;
94 MCAPI uint getTradeTier()
const;
97 MCAPI
void handleHaggleAudioCue(
bool canPlayValidHaggleSound);
100 MCAPI
bool hasSupplyRemaining()
const;
102 MCFOLD
void initFromDefinition();
104 MCAPI ::std::string
const& loadDisplayName();
108 MCAPI
void matchExpAndTier();
110 MCAPI
void newServerAiStep();
112 MCAPI
void notifyTrade(
int recipeIndex,
int numTrades);
116 MCAPI
void reloadComponent();
118 MCAPI
void resupplyTrades();
120 MCAPI
void setCurrentTradeExp(
int currentTradeExp);
126 MCAPI
void setNearbyCuredDiscount(
int discount);
130 MCFOLD
void setRiches(
int riches);
132 MCAPI
bool shouldConvertTrades()
const;
134 MCAPI
bool shouldPersistTrades()
const;
136 MCAPI
bool showTradeScreen();
138 MCAPI
void tickDiscountDegradationTimer(
::Tick currentTick);
140 MCAPI
void tryIncrementCuredDiscount();
142 MCAPI
void tryIncrementNearbyCuredDiscount();
146 MCAPI ~EconomyTradeableComponent();
152 MCAPI
static bool isUseNewTradeScreen(
::Actor const& owner);
158 MCAPI
void* $ctor(
::Actor& owner);