Пример #1
0
CityList Emperor::Impl::findTroubleCities() {
  CityList ret;
  for (auto &item : relations) {
    CityPtr city = empire->findCity(item.first);
    Relation &relation = item.second;

    if (!city.isValid()) {
      Logger::warning("!!! city not availaible " + item.first);
      continue;
    }

    bool emperorAngry = relation.value() < minimumFavour4wrathGenerate;
    if (emperorAngry) {
      relation.wrathPoint += math::clamp(maxWrathPointValue - relation.value(),
                                         0, maxWrathPointValue);
      if (relation.soldiers.sent == 0)
        ret.push_back(city);
    } else {
      relation.wrathPoint = 0;
    }
  }

  return ret;
}