From e4fec846e434091bfe00b8b5ddc9bf4eda036913 Mon Sep 17 00:00:00 2001 From: TheSaminator Date: Mon, 4 Jul 2022 16:29:31 -0400 Subject: [PATCH] Add proper fleet names --- .../starshipfights/campaign/cluster_gen.kt | 2 + .../starshipfights/campaign/cluster_test.kt | 5 ++- .../starshipfights/data/space/fleet_names.kt | 41 +++++++++++++++++++ .../{campaign => data/space}/star_names.kt | 2 +- 4 files changed, 47 insertions(+), 3 deletions(-) create mode 100644 src/jvmMain/kotlin/net/starshipfights/data/space/fleet_names.kt rename src/jvmMain/kotlin/net/starshipfights/{campaign => data/space}/star_names.kt (99%) diff --git a/src/jvmMain/kotlin/net/starshipfights/campaign/cluster_gen.kt b/src/jvmMain/kotlin/net/starshipfights/campaign/cluster_gen.kt index 483fcc7..0a617c3 100644 --- a/src/jvmMain/kotlin/net/starshipfights/campaign/cluster_gen.kt +++ b/src/jvmMain/kotlin/net/starshipfights/campaign/cluster_gen.kt @@ -4,6 +4,8 @@ import kotlinx.coroutines.* import kotlinx.coroutines.flow.* import net.starshipfights.data.Id import net.starshipfights.data.invoke +import net.starshipfights.data.space.randomStarName +import net.starshipfights.data.space.toRomanNumerals import net.starshipfights.game.* import net.starshipfights.game.ai.mean import net.starshipfights.game.ai.random diff --git a/src/jvmMain/kotlin/net/starshipfights/campaign/cluster_test.kt b/src/jvmMain/kotlin/net/starshipfights/campaign/cluster_test.kt index b6f1104..84d4778 100644 --- a/src/jvmMain/kotlin/net/starshipfights/campaign/cluster_test.kt +++ b/src/jvmMain/kotlin/net/starshipfights/campaign/cluster_test.kt @@ -4,6 +4,7 @@ import net.starshipfights.data.Id import net.starshipfights.data.admiralty.AdmiralNameFlavor import net.starshipfights.data.admiralty.AdmiralNames import net.starshipfights.data.invoke +import net.starshipfights.data.space.genFleetName import net.starshipfights.game.AdmiralRank import net.starshipfights.game.FactionFlavor import kotlin.random.Random @@ -20,11 +21,11 @@ fun StarClusterView.testPostProcess(): StarClusterView { val (systemId, system) = systemWithId val numOfFleets = (0..2).random() + (0..2).random() + 1 - val fleets = (1..numOfFleets).associate { i -> + val fleets = (1..numOfFleets).associate { _ -> val admiralIsFemale = flavor == FactionFlavor.FELINAE_FELICES || Random.nextBoolean() Id() to FleetPresence( - name = "Test Fleet $i", + name = flavor.genFleetName(), owner = flavor, ships = emptyMap(), admiralName = AdmiralNames.randomName(AdmiralNameFlavor.forFactionFlavor(flavor).random(), admiralIsFemale), diff --git a/src/jvmMain/kotlin/net/starshipfights/data/space/fleet_names.kt b/src/jvmMain/kotlin/net/starshipfights/data/space/fleet_names.kt new file mode 100644 index 0000000..101a52b --- /dev/null +++ b/src/jvmMain/kotlin/net/starshipfights/data/space/fleet_names.kt @@ -0,0 +1,41 @@ +package net.starshipfights.data.space + +import net.starshipfights.game.FactionFlavor + +fun Int.toOrdinal(): String { + return if ((this / 10) % 10 == 1) + "${this}th" + else when (this % 10) { + 1 -> "${this}st" + 2 -> "${this}nd" + 3 -> "${this}rd" + else -> "${this}th" + } +} + +private fun rangedOrdinal(max: Int, min: Int = 1) = (min..max).random().toOrdinal() +private fun rangedRomanNumeral(max: Int, min: Int = 1) = (min..max).random().toRomanNumerals() + +fun FactionFlavor.genFleetName(): String = when (this) { + FactionFlavor.MECHYRDIA -> "${rangedOrdinal(999, 100)} Expediciós Flót" + FactionFlavor.TYLA -> "${(100..399).random()}a Kasaklas Safasra" + FactionFlavor.OLYMPIA -> "${rangedRomanNumeral(399, 50)} Classis Belligerens Astronautica" + FactionFlavor.TEXANDRIA -> "${(50..199).random()}te Wehrsflotte" + FactionFlavor.NDRC -> "${(100..699).random()}e Sterrenvloot" + FactionFlavor.CCC -> "${rangedRomanNumeral(299, 50)} Classis Comitans" + FactionFlavor.MJOLNIR_ENERGY -> "${(100..699).random()}e Stjarnnafloti" + FactionFlavor.MASRA_DRAETSEN -> "${rangedOrdinal(4999, 500)} Conquest Armada" + FactionFlavor.AEDON_CULTISTS -> "${rangedOrdinal(1999, 200)} Defilement Armada" + FactionFlavor.FERTHLON_EXILES -> "${rangedOrdinal(399, 50)} Revolutionary Remnant Fleet" + FactionFlavor.RES_NOSTRA -> "${rangedRomanNumeral(299, 10)} Classis Nostra" + FactionFlavor.CORSAIRS -> "${rangedRomanNumeral(299, 10)} Nauticum Piratarum" + FactionFlavor.FELINAE_FELICES -> "${rangedRomanNumeral(299, 10)} Grex Felinarum" + FactionFlavor.ISARNAREYKK -> "${rangedOrdinal(2999, 300)} Reykksflott" + FactionFlavor.SWARTAREYKK -> "${rangedOrdinal(1999, 200)} Reykksflott" + FactionFlavor.THEUDAREYKK -> "${rangedOrdinal(1999, 200)} Reyalis Flott" + FactionFlavor.STAHLAREYKK -> "${rangedOrdinal(1999, 200)} Fulksflott" + FactionFlavor.LYUDAREYKK -> "${rangedOrdinal(1999, 200)} Vaerflott" + FactionFlavor.NEUIA_FULKREYKK -> "${rangedOrdinal(499, 20)} Fulkreyksk Kriygsflott" + FactionFlavor.CORVUS_CLUSTER_VESTIGIUM -> "${rangedOrdinal(499, 20)} Expeditionary Fleet" + FactionFlavor.COLEMAN_SF_BASE_VESTIGIUM -> "${rangedOrdinal(499, 20)} Exploratory Fleet" +} diff --git a/src/jvmMain/kotlin/net/starshipfights/campaign/star_names.kt b/src/jvmMain/kotlin/net/starshipfights/data/space/star_names.kt similarity index 99% rename from src/jvmMain/kotlin/net/starshipfights/campaign/star_names.kt rename to src/jvmMain/kotlin/net/starshipfights/data/space/star_names.kt index f4897a4..2f360ac 100644 --- a/src/jvmMain/kotlin/net/starshipfights/campaign/star_names.kt +++ b/src/jvmMain/kotlin/net/starshipfights/data/space/star_names.kt @@ -1,4 +1,4 @@ -package net.starshipfights.campaign +package net.starshipfights.data.space import net.starshipfights.data.admiralty.LatinAdjective import net.starshipfights.data.admiralty.LatinNoun -- 2.25.1