mirror of
https://github.com/vcmi/vcmi.git
synced 2025-11-25 22:42:04 +02:00
calculate income
This commit is contained in:
@@ -760,6 +760,8 @@ void CGameHandler::onNewTurn()
|
||||
continue;
|
||||
|
||||
assert(elem.first.isValidPlayer());//illegal player number!
|
||||
|
||||
auto playerSettings = gameState()->scenarioOps->getIthPlayersSettings(elem.first);
|
||||
|
||||
std::pair<PlayerColor, si32> playerGold(elem.first, elem.second.resources[EGameResID::GOLD]);
|
||||
hadGold.insert(playerGold);
|
||||
@@ -773,8 +775,8 @@ void CGameHandler::onNewTurn()
|
||||
{
|
||||
for (GameResID k = GameResID::WOOD; k < GameResID::COUNT; k++)
|
||||
{
|
||||
n.res[elem.first][k] += elem.second.valOfBonuses(BonusType::RESOURCES_CONSTANT_BOOST, BonusSubtypeID(k));
|
||||
n.res[elem.first][k] += elem.second.valOfBonuses(BonusType::RESOURCES_TOWN_MULTIPLYING_BOOST, BonusSubtypeID(k)) * elem.second.towns.size();
|
||||
n.res[elem.first][k] += elem.second.valOfBonuses(BonusType::RESOURCES_CONSTANT_BOOST, BonusSubtypeID(k)) * playerSettings.handicap.percentIncome / 100;
|
||||
n.res[elem.first][k] += elem.second.valOfBonuses(BonusType::RESOURCES_TOWN_MULTIPLYING_BOOST, BonusSubtypeID(k)) * elem.second.towns.size() * playerSettings.handicap.percentIncome / 100;
|
||||
}
|
||||
|
||||
if(newWeek) //weekly crystal generation if 1 or more crystal dragons in any hero army or town garrison
|
||||
@@ -806,7 +808,7 @@ void CGameHandler::onNewTurn()
|
||||
}
|
||||
}
|
||||
if(hasCrystalGenCreature)
|
||||
n.res[elem.first][EGameResID::CRYSTAL] += 3;
|
||||
n.res[elem.first][EGameResID::CRYSTAL] += 3 * playerSettings.handicap.percentIncome / 100;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -828,7 +830,7 @@ void CGameHandler::onNewTurn()
|
||||
{
|
||||
for (GameResID k = GameResID::WOOD; k < GameResID::COUNT; k++)
|
||||
{
|
||||
n.res[elem.first][k] += h->valOfBonuses(BonusType::GENERATE_RESOURCE, BonusSubtypeID(k));
|
||||
n.res[elem.first][k] += h->valOfBonuses(BonusType::GENERATE_RESOURCE, BonusSubtypeID(k)) * playerSettings.handicap.percentIncome / 100;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1428,10 +1430,8 @@ void CGameHandler::giveResource(PlayerColor player, GameResID which, int val) //
|
||||
{
|
||||
if (!val) return; //don't waste time on empty call
|
||||
|
||||
auto * playerSettings = gs->scenarioOps->getPlayersSettings(player);
|
||||
|
||||
TResources resources;
|
||||
resources[which] = val * playerSettings->handicap.percentIncome / 100;
|
||||
resources[which] = val;
|
||||
giveResources(player, resources);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user