Add ReconProvincesQuest generation (#5896)

* Add ReconProvincesQuest generation

- Add reconProvincesQuests to QuestCreationUtils
- Creates quests requiring reconnaissance of 3-6 provinces
- Update test expectations for changed random sequence

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* Fix DivineCommandTest expected affectedProvinceIds

The random sequence changed with the addition of reconProvincesQuests,
causing the quest generation to produce different quests.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
2026-02-06 11:25:56 -08:00
committed by GitHub
co-authored by Claude Opus 4.5
parent f4902727a5
commit b656ba4518
2 changed files with 25 additions and 2 deletions
@@ -51,6 +51,7 @@ import net.eagle0.eagle.model.state.quest.{
ImproveInfrastructureQuest,
MobilizeProvincesQuest,
Quest,
ReconProvincesQuest,
ReleaseAllPrisonersQuest,
ReleasePrisonerQuest,
RescueImprisonedLeaderQuest,
@@ -154,7 +155,8 @@ object QuestCreationUtils {
QuestCreatorFrom(startBlizzardQuests),
QuestCreatorFrom(startEpidemicQuests),
sendSuppliesQuests,
restProvinceQuests
restProvinceQuests,
reconProvincesQuests
)
) {
case (questCreator, fr) =>
@@ -1006,4 +1008,25 @@ object QuestCreationUtils {
}
}
}
private def reconProvincesQuests(
@unused province: ProvinceT,
@unused allProvinces: Vector[ProvinceT],
@unused factions: Vector[FactionT],
@unused battalions: Vector[BattalionT],
functionalRandom: FunctionalRandom
): RandomState[Vector[Quest]] = {
val minProvinces = 3
val maxProvinces = 6
functionalRandom.nextIntInclusive(minProvinces, maxProvinces).map { targetCount =>
Vector(
ReconProvincesQuest(
componentCount = targetCount,
componentsFulfilled = 0,
targetProvinceCount = targetCount
)
)
}
}
}
@@ -330,7 +330,7 @@ class DivineCommandTest extends AnyFlatSpec with Matchers with BeforeAndAfterEac
details = Divined,
targetFactionIds = Vector(actingFactionId),
llm = Llm.Id("387 divine province 93 uh 12"),
affectedProvinceIds = Vector(),
affectedProvinceIds = Vector(provinceId),
affectedHeroIds = Vector(12),
deferred = false
),