From 12744f88cd02512a002260c80805dcb362087222 Mon Sep 17 00:00:00 2001 From: TheSaminator Date: Thu, 10 Feb 2022 08:11:38 -0500 Subject: [PATCH] Fix ship name generation --- .../kotlin/starshipfights/game/ship_names.kt | 3 ++- .../starshipfights/data/admiralty/admirals.kt | 18 ++++++++++-------- 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/src/commonMain/kotlin/starshipfights/game/ship_names.kt b/src/commonMain/kotlin/starshipfights/game/ship_names.kt index 6632bfc..dc4c7e0 100644 --- a/src/commonMain/kotlin/starshipfights/game/ship_names.kt +++ b/src/commonMain/kotlin/starshipfights/game/ship_names.kt @@ -4,7 +4,8 @@ import kotlin.random.Random fun newShipName(faction: Faction, shipWeightClass: ShipWeightClass, existingNames: MutableSet, random: Random = Random) = generateSequence { ShipNames.nameShip(faction, shipWeightClass, random) -}.dropWhile { it in existingNames }.first().also { existingNames.add(it) } +}.take(20).dropWhile { it in existingNames }.firstOrNull()?.also { existingNames.add(it) } + object ShipNames { private val mechyrdianFrigateNames1 = listOf( diff --git a/src/jvmMain/kotlin/starshipfights/data/admiralty/admirals.kt b/src/jvmMain/kotlin/starshipfights/data/admiralty/admirals.kt index f7c605f..56595d6 100644 --- a/src/jvmMain/kotlin/starshipfights/data/admiralty/admirals.kt +++ b/src/jvmMain/kotlin/starshipfights/data/admiralty/admirals.kt @@ -106,13 +106,15 @@ fun generateFleet(admiral: Admiral): List = ShipWeightClass.value } .let { shipTypes -> val shipNames = mutableSetOf() - shipTypes.map { - ShipInDrydock( - id = Id(), - name = newShipName(it.faction, it.weightClass, shipNames), - shipType = it, - status = DrydockStatus.Ready, - owningAdmiral = admiral.id - ) + shipTypes.mapNotNull { st -> + newShipName(st.faction, st.weightClass, shipNames)?.let { name -> + ShipInDrydock( + id = Id(), + name = name, + shipType = st, + status = DrydockStatus.Ready, + owningAdmiral = admiral.id + ) + } } } -- 2.25.1