From: TheSaminator Date: Thu, 10 Feb 2022 13:11:38 +0000 (-0500) Subject: Fix ship name generation X-Git-Url: https://gitweb.starshipfights.net/?a=commitdiff_plain;h=12744f88cd02512a002260c80805dcb362087222;p=starship-fights Fix ship name generation --- 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 + ) + } } }