mirror of
https://github.com/devZoGok/PlanetFleet.git
synced 2026-08-26 19:43:29 +00:00
using a generic number of resource types
ability to order to collect resources from buyers
This commit is contained in:
+25
-29
@@ -22,9 +22,10 @@ namespace battleship{
|
||||
cpuPlayer(cpuPl),
|
||||
spawnPointId(sp),
|
||||
name("pl"),
|
||||
refineds(30000),
|
||||
trader(new Trader())
|
||||
{
|
||||
resources[0] = 30000;
|
||||
|
||||
colorMaterial = new Material(Root::getSingleton()->getLibPath() + "texture");
|
||||
colorMaterial->addBoolUniform("lightingEnabled", true);
|
||||
colorMaterial->addBoolUniform("texturingEnabled", false);
|
||||
@@ -56,8 +57,14 @@ namespace battleship{
|
||||
|
||||
for(ResourceDeposit *rd : resourceDeposits)
|
||||
rd->update();
|
||||
|
||||
updateTradeOffers();
|
||||
}
|
||||
|
||||
void Player::updateTradeOffers(){
|
||||
|
||||
}
|
||||
|
||||
int Player::getOrderLineId(Order::TYPE type, Vector3 startPos, Vector3 endPos){
|
||||
Vector3 color;
|
||||
|
||||
@@ -186,48 +193,37 @@ namespace battleship{
|
||||
return ucUnits;
|
||||
}
|
||||
|
||||
void Player::addTechnology(int techId){
|
||||
technologies.push_back(techId);
|
||||
}
|
||||
void Player::updateTradedResource(Player *player, ResourceType type, int amount, bool selfDistributed, bool increased){
|
||||
for(pair<Player*, vector<TradedResource>> pair : tradedResources)
|
||||
if(pair.first == player){
|
||||
TradedResource &tr = pair.second[(int)type];
|
||||
|
||||
int Player::getResource(ResourceType type){
|
||||
switch(type){
|
||||
case ResourceType::REFINEDS:
|
||||
return refineds;
|
||||
case ResourceType::WEALTH:
|
||||
return wealth;
|
||||
case ResourceType::RESEARCH:
|
||||
return research;
|
||||
}
|
||||
}
|
||||
if(selfDistributed) (increased ? tr.taken : tr.given) += amount;
|
||||
else (increased ? tr.received : tr.hadTaken) += amount;
|
||||
|
||||
void Player::updateResource(ResourceType type, int ammount, bool add){
|
||||
switch(type){
|
||||
case ResourceType::REFINEDS:
|
||||
refineds = (add ? refineds + ammount : ammount);
|
||||
break;
|
||||
case ResourceType::WEALTH:
|
||||
wealth = (add ? wealth + ammount : ammount);
|
||||
break;
|
||||
case ResourceType::RESEARCH:
|
||||
research = (add ? research + ammount : ammount);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void Player::initTradeOffersVec(){
|
||||
void Player::initTradingVecs(){
|
||||
vector<Player*> players = Game::getSingleton()->getPlayers();
|
||||
|
||||
for(Player *pl : players){
|
||||
if(this == pl) continue;
|
||||
|
||||
if(team == pl->getTeam())
|
||||
if(team == pl->getTeam()){
|
||||
tradeOffers.push_back(make_pair(pl, vector<TradeOffer*>{}));
|
||||
tradedResources.push_back(make_pair(pl, vector<TradedResource>{
|
||||
TradedResource(ResourceType::REFINEDS),
|
||||
TradedResource(ResourceType::WEALTH),
|
||||
TradedResource(ResourceType::RESEARCH)
|
||||
}));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void Player::addTradeOffer(Player *player, TradeOffer *offer){
|
||||
if(tradeOffers.empty()) initTradeOffersVec();
|
||||
if(tradeOffers.empty()) initTradingVecs();
|
||||
|
||||
for(pair<Player*, vector<TradeOffer*>> &offers : tradeOffers)
|
||||
if(offers.first == player)
|
||||
|
||||
Reference in New Issue
Block a user