Files
PlanetFleet/tradeButton.cpp
T
devZoGok 38d1bba585 Added in-game tooltips
More tooltip parameters
2026-08-08 16:46:12 +03:00

72 lines
2.0 KiB
C++

#include "tradeButton.h"
#include "activeGameState.h"
#include "player.h"
#include <quad.h>
#include <node.h>
#include <text.h>
#include <stateManager.h>
namespace battleship{
using namespace std;
using namespace vb01;
using namespace gameBase;
TradeButton::TradeButton(Vector3 pos, Vector2 size, string name, int trigger, string imagePath, Type t, int am) :
UnitButton(pos, size, name, GameManager::getSingleton()->getPath() + "Fonts/batang.ttf", trigger, imagePath),
type(t),
amount(am)
{}
void TradeButton::onClick(){
ActiveGameState *activeState = (ActiveGameState*)(GameManager::getSingleton()->getStateManager()->getAppStateByType((int)AppStateType::ACTIVE_STATE));
Player *player = activeState->getPlayer();
int resType;
bool buy;
editResourceTradeData(resType, buy);
player->getTrader()->trade(player, resType, amount, buy);
}
void TradeButton::update(){
PfButtonBase::update();
Text *descText = tooltip->getBackground()->getNode()->getChild(0)->getText(0);
if(tooltipInitDesc == L"") tooltipInitDesc = descText->getText();
wstring entry = tooltipInitDesc;
entry.replace(entry.find_first_of(L"_"), 1, to_wstring(amount));
int rt;
bool b;
editResourceTradeData(rt, b);
ActiveGameState *activeState = (ActiveGameState*)(GameManager::getSingleton()->getStateManager()->getAppStateByType((int)AppStateType::ACTIVE_STATE));
entry.replace(entry.find_last_of(L"_"), 1, to_wstring(activeState->getPlayer()->getTrader()->getResourceRate(rt)));
descText->setText(entry);
}
void TradeButton::editResourceTradeData(int &resType, bool &buy){
switch(type){
case Type::BUY_REFINEDS:
resType = (int)ResourceType::REFINEDS;
buy = true;
break;
case Type::SELL_REFINEDS:
resType = (int)ResourceType::REFINEDS;
buy = false;
break;
case Type::BUY_RESEARCH:
resType = (int)ResourceType::RESEARCH;
buy = true;
break;
case Type::SELL_RESEARCH:
resType = (int)ResourceType::RESEARCH;
buy = false;
break;
}
}
}