diff --git a/assets/images/components/spaceship-drop-tube-front.png b/assets/images/components/spaceship-drop-tube-front.png new file mode 100644 index 00000000..4d11e865 Binary files /dev/null and b/assets/images/components/spaceship-drop-tube-front.png differ diff --git a/lib/game/components/spaceship_exit_rail.dart b/lib/game/components/spaceship_exit_rail.dart index e4be9b31..a7a1738d 100644 --- a/lib/game/components/spaceship_exit_rail.dart +++ b/lib/game/components/spaceship_exit_rail.dart @@ -29,12 +29,14 @@ class SpaceshipExitRail extends Forge2DBlueprint { ..initialPosition = Vector2(-26.15, 18.65); final bottomBase = _SpaceshipExitRailBase(radius: 0.8) ..initialPosition = Vector2(-25.5, -12.9); + final exitRailForeground = _SpaceshipExitRailForeground(); addAll([ exitRailRamp, exitRailEnd, topBase, bottomBase, + exitRailForeground, ]); } } @@ -155,6 +157,24 @@ class _SpaceshipExitRailRamp extends BodyComponent } } +class _SpaceshipExitRailForeground extends SpriteComponent with HasGameRef { + _SpaceshipExitRailForeground() + : super( + size: Vector2(7.6, 5.7), + anchor: Anchor.center, + position: Vector2(-28.5, 19.7), + priority: SpaceshipExitRail.ballPriorityWhenOnSpaceshipExitRail + 1, + ); + + @override + Future onLoad() async { + await super.onLoad(); + + sprite = await gameRef + .loadSprite(Assets.images.components.spaceshipDropTubeFront.path); + } +} + class _SpaceshipExitRailBase extends BodyComponent with InitialPosition, Layered { _SpaceshipExitRailBase({required this.radius}) @@ -193,16 +213,16 @@ class SpaceshipExitRailEnd extends RampOpening { orientation: RampOrientation.down, insidePriority: 3, ) { - renderBody = false; + // renderBody = false; layer = Layer.spaceshipExitRail; } @override Shape get shape { return ArcShape( - center: Vector2(-29, -17.8), + center: Vector2(-28, -19), arcRadius: 2.5, - angle: math.pi * 0.8, + angle: math.pi * 0.4, rotation: -0.16, ); } diff --git a/lib/game/game_assets.dart b/lib/game/game_assets.dart index dcb740a1..7a2d2751 100644 --- a/lib/game/game_assets.dart +++ b/lib/game/game_assets.dart @@ -26,6 +26,7 @@ extension PinballGameAssetsX on PinballGame { images.load(Assets.images.components.spaceshipRailingBg.path), images.load(Assets.images.components.spaceshipRailingFg.path), images.load(Assets.images.components.spaceshipDropTube.path), + images.load(Assets.images.components.spaceshipDropTubeFront.path), ]); } } diff --git a/lib/gen/assets.gen.dart b/lib/gen/assets.gen.dart index 7796df34..68e7da4c 100644 --- a/lib/gen/assets.gen.dart +++ b/lib/gen/assets.gen.dart @@ -21,6 +21,10 @@ class $AssetsImagesComponentsGen { AssetGenImage get background => const AssetGenImage('assets/images/components/background.png'); + /// File path: assets/images/components/spaceship-drop-tube-front.png + AssetGenImage get spaceshipDropTubeFront => const AssetGenImage( + 'assets/images/components/spaceship-drop-tube-front.png'); + /// File path: assets/images/components/spaceship-drop-tube.png AssetGenImage get spaceshipDropTube => const AssetGenImage('assets/images/components/spaceship-drop-tube.png');