From: TheSaminator Date: Tue, 5 Jul 2022 15:57:35 +0000 (-0400) Subject: Stop shortening generate to "gen" in function names X-Git-Url: https://gitweb.starshipfights.net/?a=commitdiff_plain;h=414de37c77e8d72f20f9ac93a771a37ff7143768;p=starship-fights Stop shortening generate to "gen" in function names --- diff --git a/src/commonMain/kotlin/net/starshipfights/game/ai/ai_optimization.kt b/src/commonMain/kotlin/net/starshipfights/game/ai/ai_optimization.kt index 4ef45bb..7b1229c 100644 --- a/src/commonMain/kotlin/net/starshipfights/game/ai/ai_optimization.kt +++ b/src/commonMain/kotlin/net/starshipfights/game/ai/ai_optimization.kt @@ -35,7 +35,7 @@ val allInstincts = listOf( navOptimality, ) -fun genInstinctCandidates(count: Int): Set { +fun generateInstinctCandidates(count: Int): Set { return Random.nextOrthonormalBasis(allInstincts.size).take(count).map { vector -> Instincts.fromValues((allInstincts zip vector.values).associate { (key, value) -> key.key to key.denormalize(value) diff --git a/src/jvmMain/kotlin/net/starshipfights/campaign/cluster_fleets.kt b/src/jvmMain/kotlin/net/starshipfights/campaign/cluster_fleets.kt index 85cf934..9af7fa3 100644 --- a/src/jvmMain/kotlin/net/starshipfights/campaign/cluster_fleets.kt +++ b/src/jvmMain/kotlin/net/starshipfights/campaign/cluster_fleets.kt @@ -36,7 +36,7 @@ val FactionFlavor.shipSource: Faction FactionFlavor.COLEMAN_SF_BASE_VESTIGIUM -> Faction.VESTIGIUM } -fun genNPCFleet(owner: FactionFlavor, rank: AdmiralRank): Map, Ship> { +fun generateNPCFleet(owner: FactionFlavor, rank: AdmiralRank): Map, Ship> { val battleSize = BattleSize.values().filter { rank >= it.minRank }.associateWith { 100.0 / it.numPoints }.weightedRandom() val possibleShips = ShipType.values().filter { it.faction == owner.shipSource && it.weightClass.tier <= battleSize.maxTier } diff --git a/src/jvmMain/kotlin/net/starshipfights/campaign/cluster_gen.kt b/src/jvmMain/kotlin/net/starshipfights/campaign/cluster_gen.kt index 0a617c3..a3a1fbc 100644 --- a/src/jvmMain/kotlin/net/starshipfights/campaign/cluster_gen.kt +++ b/src/jvmMain/kotlin/net/starshipfights/campaign/cluster_gen.kt @@ -19,9 +19,9 @@ class ClusterGenerator(val settings: ClusterGenerationSettings) { suspend fun generateCluster(): StarClusterView { return withTimeoutOrNull(10_000L) { val positionsAsync = async { - val rp = fixPositions(genPositions().take(settings.size.maxStars).toList()) + val rp = fixPositions(generatePositions().take(settings.size.maxStars).toList()) val p = indexPositions(rp) - p to fixWarpLanes(p, genWarpLanes(p)) + p to fixWarpLanes(p, generateWarpLanes(p)) } val starSystemsAsync = async { @@ -52,7 +52,7 @@ class ClusterGenerator(val settings: ClusterGenerationSettings) { } ?: generateCluster() } - private fun genPositions() = flow { + private fun generatePositions() = flow { val initial = Vec2(0.0, 0.0) val samples = mutableSetOf(initial) emit(initial) @@ -103,7 +103,7 @@ class ClusterGenerator(val settings: ClusterGenerationSettings) { return polarVector(r, theta) } - private suspend fun genWarpLanes(positions: Map, Vec2>): Set { + private suspend fun generateWarpLanes(positions: Map, Vec2>): Set { val allSystems = positions.keys val maxDistance = positions.values.maxOf { it.magnitude } / settings.size.maxHyperlaneDistanceFactor @@ -245,7 +245,7 @@ class ClusterGenerator(val settings: ClusterGenerationSettings) { val starVec2 = Vec2(0.0, 0.0) usedPositions += starVec2 - val starType = genStarType() + val starType = randomStarType() val starSize = starType.sizeRange.random() val star = UnnamedCelestialObject.Star( position = Position(starVec2), @@ -266,7 +266,7 @@ class ClusterGenerator(val settings: ClusterGenerationSettings) { usedPositions += starAPos usedPositions += starBPos - val starAType = genStarType() + val starAType = randomStarType() val starASize = starAType.sizeRange.random() val starA = UnnamedCelestialObject.Star( position = Position(starAPos), @@ -275,7 +275,7 @@ class ClusterGenerator(val settings: ClusterGenerationSettings) { type = starAType, ) - val starBType = genStarType() + val starBType = randomStarType() val starBSize = starBType.sizeRange.random() val starB = UnnamedCelestialObject.Star( position = Position(starBPos), @@ -334,7 +334,7 @@ class ClusterGenerator(val settings: ClusterGenerationSettings) { private fun rotationSpeed() = (0.125..0.625).random() * (if ((1..7).random() == 1) -1 else 1) - private fun genStarType() = (StarType.values().toSet() - StarType.X).random() + private fun randomStarType() = (StarType.values().toSet() - StarType.X).random() private suspend fun corruptStarSystem(starSystem: UnplacedStarSystem) = starSystem.copy(bodies = starSystem.bodies.map { obj -> throttle() diff --git a/src/jvmMain/kotlin/net/starshipfights/campaign/cluster_test.kt b/src/jvmMain/kotlin/net/starshipfights/campaign/cluster_test.kt index 5eb7bcb..78b8c39 100644 --- a/src/jvmMain/kotlin/net/starshipfights/campaign/cluster_test.kt +++ b/src/jvmMain/kotlin/net/starshipfights/campaign/cluster_test.kt @@ -4,7 +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.data.space.generateFleetName import net.starshipfights.game.AdmiralRank import net.starshipfights.game.FactionFlavor import kotlin.random.Random @@ -27,10 +27,10 @@ fun StarClusterView.testPostProcess(): StarClusterView { val fleets = (1..numOfFleets).associate { _ -> val admiralRank = AdmiralRank.values().random() val admiralIsFemale = flavor == FactionFlavor.FELINAE_FELICES || Random.nextBoolean() - val admiralFleet = genNPCFleet(flavor, admiralRank) + val admiralFleet = generateNPCFleet(flavor, admiralRank) Id() to FleetPresence( - name = flavor.genFleetName(), + name = flavor.generateFleetName(), owner = flavor, ships = admiralFleet, admiralName = AdmiralNames.randomName(AdmiralNameFlavor.forFactionFlavor(flavor).random(), admiralIsFemale), diff --git a/src/jvmMain/kotlin/net/starshipfights/data/admiralty/admirals.kt b/src/jvmMain/kotlin/net/starshipfights/data/admiralty/admirals.kt index 90f1965..e5806f4 100644 --- a/src/jvmMain/kotlin/net/starshipfights/data/admiralty/admirals.kt +++ b/src/jvmMain/kotlin/net/starshipfights/data/admiralty/admirals.kt @@ -45,15 +45,15 @@ data class Admiral( }) } -fun genAIName(faction: Faction, isFemale: Boolean) = AdmiralNames.randomName(AdmiralNameFlavor.forFaction(faction).random(), isFemale) +fun generateAIName(faction: Faction, isFemale: Boolean) = AdmiralNames.randomName(AdmiralNameFlavor.forFaction(faction).random(), isFemale) -fun genAI(faction: Faction, forBattleSize: BattleSize): Admiral { +fun generateAIAdmiral(faction: Faction, forBattleSize: BattleSize): Admiral { val isFemale = Random.nextBoolean() return Admiral( id = Id("advanced_robotical_admiral"), owningUser = Id("fake_player_actually_an_AI"), - name = genAIName(faction, isFemale), + name = generateAIName(faction, isFemale), isFemale = isFemale, faction = faction, acumen = AdmiralRank.values().first { diff --git a/src/jvmMain/kotlin/net/starshipfights/data/space/fleet_names.kt b/src/jvmMain/kotlin/net/starshipfights/data/space/fleet_names.kt index 3b81d90..fb6d769 100644 --- a/src/jvmMain/kotlin/net/starshipfights/data/space/fleet_names.kt +++ b/src/jvmMain/kotlin/net/starshipfights/data/space/fleet_names.kt @@ -16,7 +16,7 @@ fun Int.toOrdinal(): String { 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) { +fun FactionFlavor.generateFleetName(): String = when (this) { FactionFlavor.MECHYRDIA -> "${(100..999).random()}il Expediciós Flót" FactionFlavor.TYLA -> "${(100..399).random()}a Kasaklas Safasra" FactionFlavor.OLYMPIA -> "${rangedRomanNumeral(399, 50)} Classis Belligerens Astronautica" diff --git a/src/jvmMain/kotlin/net/starshipfights/data/space/star_clusters.kt b/src/jvmMain/kotlin/net/starshipfights/data/space/star_clusters.kt index 124f3b4..f9bd290 100644 --- a/src/jvmMain/kotlin/net/starshipfights/data/space/star_clusters.kt +++ b/src/jvmMain/kotlin/net/starshipfights/data/space/star_clusters.kt @@ -10,9 +10,11 @@ import net.starshipfights.campaign.* import net.starshipfights.data.DataDocument import net.starshipfights.data.DocumentTable import net.starshipfights.data.Id +import net.starshipfights.data.admiralty.Admiral import net.starshipfights.data.invoke import net.starshipfights.game.FactionFlavor import net.starshipfights.game.Position +import net.starshipfights.game.Ship import org.litote.kmongo.eq @Serializable @@ -106,28 +108,26 @@ suspend fun createCluster(clusterView: StarClusterView): Id { launch { ClusterStarSystem.put(clusterSystem) } launch { - for ((bodyId, body) in system.bodies) - launch { - ClusterCelestialObject.put( - ClusterCelestialObject( - id = bodyId.reinterpret(), - starSystemId = clusterSystem.id, - celestialObject = body - ) + ClusterCelestialObject.put( + system.bodies.map { (bodyId, body) -> + ClusterCelestialObject( + id = bodyId.reinterpret(), + starSystemId = clusterSystem.id, + celestialObject = body ) } + ) } launch { - for ((fleetId, fleet) in system.fleets) - launch { - ClusterFleetPresence.put( - ClusterFleetPresence( - id = fleetId.reinterpret(), - starSystemId = clusterSystem.id, - fleetPresence = fleet - ) + ClusterFleetPresence.put( + system.fleets.map { (fleetId, fleet) -> + ClusterFleetPresence( + id = fleetId.reinterpret(), + starSystemId = clusterSystem.id, + fleetPresence = fleet ) } + ) } } } @@ -179,3 +179,15 @@ suspend fun viewCluster(clusterId: Id): StarClusterView? { ) } } + +suspend fun deployableFleet(systemId: Id, admiral: Admiral): Map, Ship> { + return ClusterFleetPresence.filter(ClusterFleetPresence::starSystemId eq systemId) + .toList() + .filter { admiral.faction in it.fleetPresence.owner.loyalties } + .flatMap { + it.fleetPresence.ships.toList().filter { (_, ship) -> + ship.shipType.weightClass.tier <= admiral.rank.maxShipTier + } + } + .toMap() +} diff --git a/src/jvmMain/kotlin/net/starshipfights/game/game_start_jvm.kt b/src/jvmMain/kotlin/net/starshipfights/game/game_start_jvm.kt index 461c103..6daa49a 100644 --- a/src/jvmMain/kotlin/net/starshipfights/game/game_start_jvm.kt +++ b/src/jvmMain/kotlin/net/starshipfights/game/game_start_jvm.kt @@ -1,6 +1,6 @@ package net.starshipfights.game -import net.starshipfights.data.admiralty.genAI +import net.starshipfights.data.admiralty.generateAIAdmiral import net.starshipfights.data.admiralty.generateFleet import net.starshipfights.data.admiralty.getAdmiralsShips import kotlin.math.PI @@ -66,7 +66,7 @@ suspend fun generate2v1GameInitialState(player1Info: InGameAdmiral, player2Info: val hostDeployCenter2 = Position(Vec2(-deployWidth4, (-battleLength / 2) + deployLength2)) val guestDeployCenter = Position(Vec2(0.0, (battleLength / 2) - deployLength2)) - val aiAdmiral = genAI(enemyFaction, battleInfo.size) + val aiAdmiral = generateAIAdmiral(enemyFaction, battleInfo.size) val gameStart = GameStart( battlefieldWidth = battleWidth, battlefieldLength = battleLength, @@ -143,7 +143,7 @@ suspend fun generateTrainingInitialState(playerInfo: InGameAdmiral, enemyFaction val hostDeployCenter = Position(Vec2(0.0, (-battleLength / 2) + deployLength2)) val guestDeployCenter = Position(Vec2(0.0, (battleLength / 2) - deployLength2)) - val aiAdmiral = genAI(enemyFaction, battleInfo.size) + val aiAdmiral = generateAIAdmiral(enemyFaction, battleInfo.size) return GameState( start = GameStart( diff --git a/src/jvmTest/kotlin/net/starshipfights/game/ai/AITesting.kt b/src/jvmTest/kotlin/net/starshipfights/game/ai/AITesting.kt index 3031433..9525d9d 100644 --- a/src/jvmTest/kotlin/net/starshipfights/game/ai/AITesting.kt +++ b/src/jvmTest/kotlin/net/starshipfights/game/ai/AITesting.kt @@ -30,7 +30,7 @@ object AITesting { if (instinctVectorIndex == JOptionPane.CLOSED_OPTION) return val instinctVectorCount = instinctVectorCounts[instinctVectorIndex] - val instinctVectors = genInstinctCandidates(instinctVectorCount) + val instinctVectors = generateInstinctCandidates(instinctVectorCount) val numTrialCounts = listOf(3, 5, 7, 10, 25) val numTrialOptions = numTrialCounts.map { it.toString() }.toTypedArray()