From: TheSaminator Date: Sat, 12 Mar 2022 15:15:48 +0000 (-0500) Subject: Refactor (remove underscores) and improve cannon accuracy X-Git-Url: https://gitweb.starshipfights.net/?a=commitdiff_plain;h=f0377ba23e895f32386de7efb102de3526d79836;p=starship-fights Refactor (remove underscores) and improve cannon accuracy --- diff --git a/src/commonMain/kotlin/starshipfights/game/ship_weapons.kt b/src/commonMain/kotlin/starshipfights/game/ship_weapons.kt index 3640a0d..66c4129 100644 --- a/src/commonMain/kotlin/starshipfights/game/ship_weapons.kt +++ b/src/commonMain/kotlin/starshipfights/game/ship_weapons.kt @@ -3,6 +3,7 @@ package starshipfights.game import kotlinx.serialization.Serializable import starshipfights.data.Id import kotlin.math.expm1 +import kotlin.math.sqrt import kotlin.random.Random enum class FiringArc { @@ -256,7 +257,7 @@ data class ShipInstanceArmaments( fun cannonChanceToHit(attacker: ShipInstance, targeted: ShipInstance): Double { val relativeDistance = attacker.position.location - targeted.position.location - return SHIP_BASE_SIZE / relativeDistance.length + return sqrt(SHIP_BASE_SIZE / relativeDistance.length) } sealed class ImpactResult { diff --git a/src/jvmMain/kotlin/starshipfights/game/server_game.kt b/src/jvmMain/kotlin/starshipfights/game/server_game.kt index 4e24990..936ad73 100644 --- a/src/jvmMain/kotlin/starshipfights/game/server_game.kt +++ b/src/jvmMain/kotlin/starshipfights/game/server_game.kt @@ -81,14 +81,14 @@ class GameSession(gameState: GameState) { } }.also { if (it) - _gameStart.complete() + gameStartMutable.complete() else onPacket(player.other, PlayerAction.TimeOut) } - private val _gameStart = Job() + private val gameStartMutable = Job() val gameStart: Job - get() = _gameStart + get() = gameStartMutable private val stateMutable = MutableStateFlow(gameState) private val stateMutex = Mutex() @@ -108,24 +108,24 @@ class GameSession(gameState: GameState) { GlobalSide.GUEST -> guestErrorMessages } - private val _gameEnd = CompletableDeferred() + private val gameEndMutable = CompletableDeferred() val gameEnd: Deferred - get() = _gameEnd + get() = gameEndMutable suspend fun onPacket(player: GlobalSide, packet: PlayerAction) { stateMutex.withLock { when (val result = state.value.after(player, packet)) { is GameEvent.StateChange -> { stateMutable.value = result.newState - result.newState.checkVictory()?.let { _gameEnd.complete(it) } + result.newState.checkVictory()?.let { gameEndMutable.complete(it) } } is GameEvent.InvalidAction -> { errorMessageChannel(player).send(result.message) } is GameEvent.GameEnd -> { - if (_gameStart.isActive) - _gameStart.cancel() - _gameEnd.complete(result) + if (gameStartMutable.isActive) + gameStartMutable.cancel() + gameEndMutable.complete(result) } } }