浏览代码

Town, mines and garrison now use GENERATE_RESOURCE bonus for income

Ivan Savenko 5 月之前
父节点
当前提交
31786c8135
共有 2 个文件被更改,包括 14 次插入2 次删除
  1. 5 1
      lib/mapObjects/CGTownInstance.cpp
  2. 9 1
      lib/mapObjects/MiscObjects.cpp

+ 5 - 1
lib/mapObjects/CGTownInstance.cpp

@@ -206,7 +206,11 @@ int CGTownInstance::getDwellingBonus(const std::vector<CreatureID>& creatureIds,
 
 TResources CGTownInstance::dailyIncome() const
 {
-	TResources ret;
+	ResourceSet ret;
+
+	for (GameResID k : GameResID::ALL_RESOURCES())
+		ret[k] += valOfBonuses(BonusType::GENERATE_RESOURCE, BonusSubtypeID(k));
+
 	for(const auto & p : getTown()->buildings)
 	{
 		BuildingID buildingUpgrade;

+ 9 - 1
lib/mapObjects/MiscObjects.cpp

@@ -142,6 +142,10 @@ std::vector<CreatureID> CGMine::providedCreatures() const
 ResourceSet CGMine::dailyIncome() const
 {
 	ResourceSet result;
+
+	for (GameResID k : GameResID::ALL_RESOURCES())
+		result[k] += valOfBonuses(BonusType::GENERATE_RESOURCE, BonusSubtypeID(k));
+
 	result[producedResource] += defaultResProduction();
 
 	const auto & playerSettings = cb->getPlayerSettings(getOwner());
@@ -867,7 +871,11 @@ const IOwnableObject * CGGarrison::asOwnable() const
 
 ResourceSet CGGarrison::dailyIncome() const
 {
-	return {};
+	ResourceSet result;
+	for (GameResID k : GameResID::ALL_RESOURCES())
+		result[k] += valOfBonuses(BonusType::GENERATE_RESOURCE, BonusSubtypeID(k));
+
+	return result;
 }
 
 std::vector<CreatureID> CGGarrison::providedCreatures() const