Refactor engage protocols
authorTheSaminator <TheSaminator@users.noreply.github.com>
Fri, 10 Jun 2022 17:56:05 +0000 (13:56 -0400)
committerTheSaminator <TheSaminator@users.noreply.github.com>
Fri, 10 Jun 2022 17:56:05 +0000 (13:56 -0400)
src/commonMain/kotlin/net/starshipfights/game/ai/ai_behaviors.kt

index 2982e2d610d73d7f8c521011bf6b7fe4630b7982..9f75843b350255599cec542492c3b3a9c7fdd709 100644 (file)
@@ -395,19 +395,8 @@ fun engage(gameState: GameState, ship: ShipInstance): PlayerAction.UseAbility {
                .map { it.position.location.vector }
                .mean()
        
-       val angleTo = normalVector(ship.position.facing) angleTo (enemySideMeanPosition - mySideMeanPosition)
-       val maxTurn = ship.movement.turnAngle * 0.99
-       val turnNormal = normalDistance(ship.position.facing) rotatedBy angleTo.coerceIn(-maxTurn..maxTurn)
-       
-       val move = (ship.movement.moveSpeed * 0.99) * turnNormal
-       val newLoc = ship.position.location + move
-       
-       val position = ShipPosition(newLoc, move.angle)
-       
-       return PlayerAction.UseAbility(
-               PlayerAbilityType.MoveShip(ship.id),
-               PlayerAbilityData.MoveShip(position)
-       )
+       val targetLocation = ship.position.location + Distance(enemySideMeanPosition - mySideMeanPosition)
+       return ship.navigateTo(targetLocation)
 }
 
 fun pursue(gameState: GameState, ship: ShipInstance): PlayerAction.UseAbility {