Minor refactorings
authorTheSaminator <TheSaminator@users.noreply.github.com>
Tue, 24 May 2022 15:31:32 +0000 (11:31 -0400)
committerTheSaminator <TheSaminator@users.noreply.github.com>
Tue, 24 May 2022 15:31:32 +0000 (11:31 -0400)
src/commonMain/kotlin/starshipfights/game/game_ability.kt
src/commonMain/kotlin/starshipfights/game/ship_instances.kt
src/commonMain/kotlin/starshipfights/game/ship_weapons.kt

index 1c32be677cf1ca883f9ff1ac7d37a5c1c2c108bf..89bf7c13c74c52978be8f198ceb68df66e1636ae 100644 (file)
@@ -443,7 +443,7 @@ sealed class PlayerAbilityType {
                        if (!shipInstance.canUseWeapon(weapon)) return null
                        val shipWeapon = shipInstance.armaments.weaponInstances[weapon] ?: return null
                        
-                       val pickResponse = pick(shipInstance.getWeaponPickRequest(shipWeapon.weapon, shipInstance.position, shipInstance.owner))
+                       val pickResponse = pick(shipInstance.getWeaponPickRequest(shipWeapon.weapon))
                        
                        return pickResponse?.let { PlayerAbilityData.UseWeapon(it) }
                }
@@ -456,7 +456,7 @@ sealed class PlayerAbilityType {
                        if (!shipInstance.canUseWeapon(weapon)) return GameEvent.InvalidAction("That weapon cannot be used")
                        val shipWeapon = shipInstance.armaments.weaponInstances[weapon] ?: return GameEvent.InvalidAction("That weapon does not exist")
                        
-                       val pickRequest = shipInstance.getWeaponPickRequest(shipWeapon.weapon, shipInstance.position, shipInstance.owner)
+                       val pickRequest = shipInstance.getWeaponPickRequest(shipWeapon.weapon)
                        val pickResponse = data.target
                        
                        if (!gameState.isValidPick(pickRequest, pickResponse)) return GameEvent.InvalidAction("Invalid target")
index 4f4828a67ec607181a101836961fc5e8adcc8d0a..dc773ceb6cc388bff8c9020b2741e02669205b54 100644 (file)
@@ -86,9 +86,9 @@ data class ShipInstance(
                
                return when (weapon) {
                        is ShipWeaponInstance.Cannon -> weaponAmount > 0
-                       is ShipWeaponInstance.Hangar -> weapon.wingHealth > 0.0
                        is ShipWeaponInstance.Lance -> weapon.numCharges > EPSILON
                        is ShipWeaponInstance.Torpedo -> true
+                       is ShipWeaponInstance.Hangar -> weapon.wingHealth > 0.0
                        is ShipWeaponInstance.ParticleClawLauncher -> true
                        is ShipWeaponInstance.LightningYarn -> true
                        is ShipWeaponInstance.MegaCannon -> weapon.remainingShots > 0
index f1b34233ce2d45fe71c04d67a379fb86672d1d60..4b2de43bf7a0ac092fe5127735eda363fb7c5f20 100644 (file)
@@ -571,7 +571,7 @@ fun criticalChance(attacker: ShipInstance, weaponId: Id<ShipWeapon>, targeted: S
        } * attacker.firepower.criticalChance
 }
 
-fun ShipInstance.getWeaponPickRequest(weapon: ShipWeapon, position: ShipPosition, side: GlobalSide): PickRequest = when (weapon) {
+fun ShipInstance.getWeaponPickRequest(weapon: ShipWeapon): PickRequest = when (weapon) {
        is AreaWeapon -> PickRequest(
                type = PickType.Location(
                        excludesNearShips = emptySet(),
@@ -594,9 +594,9 @@ fun ShipInstance.getWeaponPickRequest(weapon: ShipWeapon, position: ShipPosition
        )
        else -> {
                val targetSet = if ((weapon as? ShipWeapon.Hangar)?.wing == StrikeCraftWing.FIGHTERS)
-                       setOf(side)
+                       setOf(owner)
                else
-                       setOf(side.other)
+                       setOf(owner.other)
                
                val weaponRangeMult = when (weapon) {
                        is ShipWeapon.Cannon -> firepower.rangeMultiplier
@@ -614,7 +614,7 @@ fun ShipInstance.getWeaponPickRequest(weapon: ShipWeapon, position: ShipPosition
                                minDistance = weapon.minRange,
                                maxDistance = weapon.maxRange * weaponRangeMult,
                                firingArcs = weapon.firingArcs,
-                               canSelfSelect = side in targetSet
+                               canSelfSelect = owner in targetSet
                        )
                )
        }