Преглед изворни кода

Fix Neutral Creatures Weekly Growth

Made it so neutral creatures could not be picked as "Flavour of the Week".
It is checking neutral creatures hometown to do so.

Fixes #3046.
Ewilhan пре 6 година
родитељ
комит
ec4797d856
1 измењених фајлова са 6 додато и 2 уклоњено
  1. 6 2
      server/CGameHandler.cpp

+ 6 - 2
server/CGameHandler.cpp

@@ -1673,8 +1673,12 @@ void CGameHandler::newTurn()
 				if (monthType < 25)
 				if (monthType < 25)
 				{
 				{
 					n.specialWeek = NewTurn::BONUS_GROWTH; //+5
 					n.specialWeek = NewTurn::BONUS_GROWTH; //+5
-					std::pair<int, CreatureID> newMonster(54, VLC->creh->pickRandomMonster(getRandomGenerator()));
-					//TODO do not pick neutrals
+					std::pair<int, CreatureID> newMonster(54, CreatureID());
+					do
+					{
+						newMonster.second = VLC->creh->pickRandomMonster(getRandomGenerator());
+					} while (VLC->creh->creatures[newMonster.second] &&
+						VLC->townh->factions[VLC->creh->creatures[newMonster.second]->faction]->town == nullptr); // find first non neutral creature
 					n.creatureid = newMonster.second;
 					n.creatureid = newMonster.second;
 				}
 				}
 			}
 			}