tech researching

This commit is contained in:
devZoGok
2024-02-25 17:21:22 +02:00
parent 43ccac92d4
commit b9f01da844
2 changed files with 21 additions and 9 deletions
+16 -5
View File
@@ -18,13 +18,24 @@ namespace battleship{
if(!isComplete()) return;
if(health > .3 * maxHealth && player->getRefineds() >= researchCost && canGenerateResearch()){
if(researchQueue.empty() && health > .3 * maxHealth && player->getRefineds() >= researchCost && canUpdateResearch()){
player->addResearch(generationSpeed);
player->subtractRefineds(researchCost);
lastGenTime = getTime();
lastUpdateTime = getTime();
}
else if(!researchQueue.empty()){
int techCost = Game::getSingleton()->getTechnology(researchQueue[0]).cost;
int playerResearch = player->getResearch();
if(techCost > playerResearch && canUpdateResearch()){
researchStatus += (int)((float)playerResearch / techCost);
lastUpdateTime = getTime();
}
else if(researchStatus >= 100 || techCost <= playerResearch){
player->addTechnology(researchQueue[0]);
researchQueue.erase(researchQueue.begin());
researchStatus = 0;
}
}
}
void ResearchStruct::researchTechnology(int techId){
}
}
+5 -4
View File
@@ -8,13 +8,14 @@ namespace battleship{
public:
ResearchStruct(Player*, int, vb01::Vector3, vb01::Quaternion, int = 0, Unit::State = Unit::State::STAND_GROUND);
void update();
inline void appendToQueue(int tid){researchQueue.push_back(tid);}
private:
vb01::s64 lastGenTime = 0;
int researchCost, generationRate, generationSpeed;
vb01::s64 lastUpdateTime = 0;
int researchCost, generationRate, generationSpeed, researchStatus = 0;
std::vector<int> researchQueue;
bool canGenerateResearch(){return vb01::getTime() - lastGenTime > generationRate;}
bool canUpdateResearch(){return vb01::getTime() - lastGenTime > generationRate;}
void generateResearch();
void researchTechnology(int);
};
}