From 7a160d06ea273ed3427f004ddd782782def8467a Mon Sep 17 00:00:00 2001 From: John Pavek Date: Sat, 18 Nov 2023 14:00:22 -0600 Subject: [PATCH] A bunch of clean up to support using json for stats --- Assets/Art/words.json | 24 +++- Assets/Art/words.png | Bin 85310 -> 101764 bytes Assets/Aseprite/words.ase | Bin 72365 -> 82386 bytes Assets/Fonts/AguafinaScript-Regular.ttf | Bin 0 -> 45512 bytes Assets/Originals/Exit.png | Bin 0 -> 3521 bytes Assets/Originals/exit_hover.png | Bin 0 -> 12955 bytes Components/Cannon.cs | 20 ++- Components/Cannonball.cs | 1 + Components/Ship.cs | 37 +++++- Entities/Archetypes/CannonBuilder.cs | 30 +++++ Entities/Archetypes/CannonballBuilder.cs | 5 +- Entities/Archetypes/EnemyBuilder.cs | 4 +- Entities/Archetypes/PlayerBuilder.cs | 15 +-- NovemberPiratesEngine.cs | 9 +- Scenes/Levels/Systems/PlayerControlSystem.cs | 8 +- Scenes/Levels/Systems/RenderSystem.cs | 4 + Scenes/Menus/MainMenu/MainMenuScene.cs | 28 ++-- Scenes/Menus/Systems/MenuSystem.cs | 14 +- Utilities/Data/ShipData.cs | 127 ++++++++++--------- Utilities/ShipSpriteBuilder.cs | 40 +++--- 20 files changed, 244 insertions(+), 122 deletions(-) create mode 100644 Assets/Fonts/AguafinaScript-Regular.ttf create mode 100644 Assets/Originals/Exit.png create mode 100644 Assets/Originals/exit_hover.png create mode 100644 Entities/Archetypes/CannonBuilder.cs diff --git a/Assets/Art/words.json b/Assets/Art/words.json index ede6caf..92e8d9f 100644 --- a/Assets/Art/words.json +++ b/Assets/Art/words.json @@ -52,6 +52,24 @@ "spriteSourceSize": { "x": 0, "y": 0, "w": 378, "h": 143 }, "sourceSize": { "w": 378, "h": 143 }, "duration": 100 + }, + { + "filename": "Exit-6", + "frame": { "x": 1, "y": 291, "w": 378, "h": 143 }, + "rotated": false, + "trimmed": false, + "spriteSourceSize": { "x": 0, "y": 0, "w": 378, "h": 143 }, + "sourceSize": { "w": 378, "h": 143 }, + "duration": 100 + }, + { + "filename": "ExitHover-7", + "frame": { "x": 381, "y": 291, "w": 378, "h": 143 }, + "rotated": false, + "trimmed": false, + "spriteSourceSize": { "x": 0, "y": 0, "w": 378, "h": 143 }, + "sourceSize": { "w": 378, "h": 143 }, + "duration": 100 } ], "meta": { @@ -59,7 +77,7 @@ "version": "1.3-rc6-x64", "image": "words.png", "format": "RGBA8888", - "size": { "w": 1140, "h": 290 }, + "size": { "w": 1140, "h": 435 }, "scale": "1", "frameTags": [ { "name": "Start", "from": 0, "to": 0, "direction": "forward", "color": "#000000ff" }, @@ -67,7 +85,9 @@ { "name": "HowToPlay", "from": 2, "to": 2, "direction": "forward", "color": "#000000ff" }, { "name": "HowToPlayHover", "from": 3, "to": 3, "direction": "forward", "color": "#000000ff" }, { "name": "Credits", "from": 4, "to": 4, "direction": "forward", "color": "#000000ff" }, - { "name": "CreditsHover", "from": 5, "to": 5, "direction": "forward", "color": "#000000ff" } + { "name": "CreditsHover", "from": 5, "to": 5, "direction": "forward", "color": "#000000ff" }, + { "name": "Exit", "from": 6, "to": 6, "direction": "forward", "color": "#000000ff" }, + { "name": "ExitHover", "from": 7, "to": 7, "direction": "forward", "color": "#000000ff" } ] } } diff --git a/Assets/Art/words.png b/Assets/Art/words.png index d98a75c47f1227655eb450f2fde439ccb568b5b8..fdc724ce70c46175ada4ad150a8f53ebadd1e69b 100644 GIT binary patch delta 31587 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 IIr97e1)^PE6951J diff --git a/Assets/Aseprite/words.ase b/Assets/Aseprite/words.ase index 8858366155b7889d86b5536c0109b3823ce024be..894ec2e605c3d7fd5104f83f227e21c04fc88ce2 100644 GIT binary patch delta 10132 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 XXXEtb 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 literal 0 HcmV?d00001 diff --git a/Assets/Originals/Exit.png b/Assets/Originals/Exit.png new file mode 100644 index 0000000000000000000000000000000000000000..3aac66573555ced289e2a7493e0ea3d4ce630689 GIT binary patch literal 3521 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 d6% Cannons = new List(); - internal int Crew = 10; internal int NextPatrolPoint = 1; internal Vector2 Target; internal List Route = new(); - internal float RowingPower = 100f; - internal float RotationSpeed = 100f; - - internal float MaxSpeed = 500f; - internal float HullHealth = 100f; internal float WindInSail; + + internal int Crew; + internal float RowingPower; + internal float RotationSpeed; + + internal float MaxSpeed; + internal float HullHealth; + internal float SailHealth; + internal float HalfSailSpeedModifier; + internal float FullSailSpeedModifier; + internal float SailSpeedEasing; } } diff --git a/Entities/Archetypes/CannonBuilder.cs b/Entities/Archetypes/CannonBuilder.cs new file mode 100644 index 0000000..4c7f18c --- /dev/null +++ b/Entities/Archetypes/CannonBuilder.cs @@ -0,0 +1,30 @@ +using NovemberPirates.Components; +using NovemberPirates.Utilities.Data; + +namespace NovemberPirates.Entities.Archetypes +{ + internal static class CannonBuilder + { + internal static Cannon Create(CannonType cannonType, BoatSide boatSide, int row) + { + var cannon = new Cannon(); + cannon.Placement = boatSide; + cannon.Row = row; + + cannon.CannonType = cannonType; + + cannon.ReloadTime = ShipData.Instance.Data[$"{cannonType}{Stats.CannonReloadTime}"]; + cannon.ReloadRate = ShipData.Instance.Data[$"{cannonType}{Stats.CannonReloadRate}"]; + cannon.HullDamage = ShipData.Instance.Data[$"{cannonType}{Stats.CannonHullDamage}"]; + cannon.SailDamage = ShipData.Instance.Data[$"{cannonType}{Stats.CannonSailDamage}"]; + cannon.CrewKillChance = ShipData.Instance.Data[$"{cannonType}{Stats.CannonCrewKillChance}"]; + cannon.CrewKillChainLimit = ShipData.Instance.Data[$"{cannonType}{Stats.CannonCrewKillChainLimit}"]; + cannon.Spread = ShipData.Instance.Data[$"{cannonType}{Stats.CannonSpread}"]; + cannon.BallSpeed = ShipData.Instance.Data[$"{cannonType}{Stats.CannonballSpeed}"]; + cannon.BallDuration = ShipData.Instance.Data[$"{cannonType}{Stats.CannonballDuration}"]; + cannon.ShotPer = ShipData.Instance.Data[$"{cannonType}{Stats.CannonsShotPer}"]; + + return cannon; + } + } +} diff --git a/Entities/Archetypes/CannonballBuilder.cs b/Entities/Archetypes/CannonballBuilder.cs index edd70f1..f441206 100644 --- a/Entities/Archetypes/CannonballBuilder.cs +++ b/Entities/Archetypes/CannonballBuilder.cs @@ -9,15 +9,16 @@ namespace NovemberPirates.Entities.Archetypes { internal static class CannonballBuilder { - internal static void Create(World world, Vector2 pos, float rotation, Team team) + internal static void Create(World world, Cannon cannon, Vector2 pos, float rotation, Team team) { var cannonballEntity = world.Create(); var cannonball = new Cannonball(); var rotationInRadians = rotation * (float)(Math.PI / 180); - var spread = Random.Shared.Next(-50, 50); + var spread = Random.Shared.Next(-(int)cannon.Spread, (int)cannon.Spread); cannonball.Motion = RayMath.Vector2Rotate(new Vector2(1000, spread), rotationInRadians); cannonball.FiredBy = team; + cannonball.FiredByCannon = cannon; cannonballEntity.Set(cannonball); var cannonballSprite = new Sprite(TextureKey.Cannonball, "Assets/Art/cannonball", 1f, true); diff --git a/Entities/Archetypes/EnemyBuilder.cs b/Entities/Archetypes/EnemyBuilder.cs index 97ec6cd..a7ad049 100644 --- a/Entities/Archetypes/EnemyBuilder.cs +++ b/Entities/Archetypes/EnemyBuilder.cs @@ -11,10 +11,10 @@ internal static class EnemyBuilder public static void CreateEnemyShip(World world, Vector2 position, Team team) { var entity = world.Create(); - var ship = new Ship(); + var ship = new Ship(HullType.Small, BoatColor.Yellow, Team.Yellow); ship.Team = team; ship.BoatColor = BoatColor.Yellow; - ship.BoatType = BoatType.HullLarge; + ship.BoatType = HullType.Large; ship.Sail = SailStatus.Closed; ship.Crew = 10; diff --git a/Entities/Archetypes/PlayerBuilder.cs b/Entities/Archetypes/PlayerBuilder.cs index 079ca97..232d166 100644 --- a/Entities/Archetypes/PlayerBuilder.cs +++ b/Entities/Archetypes/PlayerBuilder.cs @@ -14,19 +14,10 @@ internal static void Create(World world) var playerComponent = new Player(); player.Set(playerComponent); - var ship = new Ship(); - ship.Team = Team.Player; - ship.BoatColor = BoatColor.Dead; - ship.BoatType = BoatType.HullMedium; + var ship = new Ship(HullType.Small, BoatColor.Dead, Team.Player); ship.Sail = SailStatus.Closed; - ship.Crew = 10; - ship.RowingPower = 150f; - ship.Cannons.Add(new Cannon { Placement = BoatSide.Port, Row = 1 }); - ship.Cannons.Add(new Cannon { Placement = BoatSide.Starboard, Row = 1 }); - ship.Cannons.Add(new Cannon { Placement = BoatSide.Port, Row = 2 }); - ship.Cannons.Add(new Cannon { Placement = BoatSide.Starboard, Row = 2 }); - ship.Cannons.Add(new Cannon { Placement = BoatSide.Port, Row = 3 }); - ship.Cannons.Add(new Cannon { Placement = BoatSide.Starboard, Row = 3 }); + + ship.Cannons.Add(CannonBuilder.Create(Utilities.Data.CannonType.BFC1700, BoatSide.Starboard, 1)); player.Set(ship); diff --git a/NovemberPiratesEngine.cs b/NovemberPiratesEngine.cs index c75b60d..76cf02a 100644 --- a/NovemberPiratesEngine.cs +++ b/NovemberPiratesEngine.cs @@ -16,7 +16,14 @@ private NovemberPiratesEngine() { } public void StartGame() { - Raylib.InitWindow(1280, 720, "November Pirates"); + //Raylib.SetConfigFlags(ConfigFlags.FLAG_WINDOW_TOPMOST); + //Raylib.SetConfigFlags(ConfigFlags.FLAG_WINDOW_MAXIMIZED); + //Raylib.SetConfigFlags(ConfigFlags.FLAG_WINDOW_UNDECORATED); + + var width = Raylib.GetMonitorWidth(0); + var height = Raylib.GetMonitorHeight(0); + + Raylib.InitWindow(width, height, "November Pirates"); Raylib.SetTargetFPS(60); Raylib.InitAudioDevice(); Raylib.SetExitKey(0); diff --git a/Scenes/Levels/Systems/PlayerControlSystem.cs b/Scenes/Levels/Systems/PlayerControlSystem.cs index 7be0549..e08ba1f 100644 --- a/Scenes/Levels/Systems/PlayerControlSystem.cs +++ b/Scenes/Levels/Systems/PlayerControlSystem.cs @@ -66,7 +66,7 @@ internal override void Update(World world) var cannonPos = sprite.Position + RayMath.Vector2Rotate(nextCannon.Position, sprite.RotationAsRadians); Raylib.DrawCircleV(cannonPos, 10, Raylib.RED); - CannonballBuilder.Create(world, cannonPos, sprite.RenderRotation + 180, Team.Player); + CannonballBuilder.Create(world, nextCannon, cannonPos, sprite.RenderRotation + 180, Team.Player); var sound = world.Create(); sound.Set(new AudioEvent() { Position = cannonPos, Key = AudioKey.CannonFire }); @@ -84,7 +84,7 @@ internal override void Update(World world) var cannonPos = sprite.Position + RayMath.Vector2Rotate(nextCannon.Position, sprite.RotationAsRadians); //Raylib.DrawCircleV(cannonPos, 10, Raylib.RED); - CannonballBuilder.Create(world, cannonPos, sprite.RenderRotation, Team.Player); + CannonballBuilder.Create(world, nextCannon, cannonPos, sprite.RenderRotation, Team.Player); var sound = world.Create(); sound.Set(new AudioEvent() { Position = cannonPos, Key = AudioKey.CannonFire }); @@ -95,13 +95,13 @@ internal override void Update(World world) { if (Raylib.IsKeyPressed(KeyboardKey.KEY_PAGE_UP)) { - playerShip.BoatType = (BoatType)Math.Min(Enum.GetValues().Length - 1, (int)playerShip.BoatType + 1); + playerShip.BoatType = (HullType)Math.Min(Enum.GetValues().Length - 1, (int)playerShip.BoatType + 1); boatChanged = true; } if (Raylib.IsKeyPressed(KeyboardKey.KEY_PAGE_DOWN)) { - playerShip.BoatType = (BoatType)Math.Max(0, (int)playerShip.BoatType - 1); + playerShip.BoatType = (HullType)Math.Max(0, (int)playerShip.BoatType - 1); boatChanged = true; } diff --git a/Scenes/Levels/Systems/RenderSystem.cs b/Scenes/Levels/Systems/RenderSystem.cs index 393cf72..a33827b 100644 --- a/Scenes/Levels/Systems/RenderSystem.cs +++ b/Scenes/Levels/Systems/RenderSystem.cs @@ -4,6 +4,7 @@ using NovemberPirates.Extensions; using NovemberPirates.Systems; using Raylib_CsLo; +using System.Numerics; namespace NovemberPirates.Scenes.Levels.Systems { @@ -20,9 +21,12 @@ internal override void Update(World world) var singleton = singletonEntity.Get(); var renders = new QueryDescription().WithAll().WithNone(); + var camera = NovemberPiratesEngine.Instance.Camera; world.Query(in renders, (entity) => { var myRender = entity.Get(); + if (Vector2.Abs(myRender.Position - camera.target).Length() > Math.Max(Raylib.GetScreenWidth(), Raylib.GetScreenHeight()) + 200) + return; if (singleton.Debug != DebugLevel.High) { diff --git a/Scenes/Menus/MainMenu/MainMenuScene.cs b/Scenes/Menus/MainMenu/MainMenuScene.cs index e500483..f24824d 100644 --- a/Scenes/Menus/MainMenu/MainMenuScene.cs +++ b/Scenes/Menus/MainMenu/MainMenuScene.cs @@ -3,6 +3,7 @@ using NovemberPirates.Scenes.Menus.Components; using NovemberPirates.Scenes.Menus.Systems; using NovemberPirates.Utilities; +using Raylib_CsLo; using System.Numerics; namespace NovemberPirates.Scenes.Menus.MainMenu @@ -16,6 +17,7 @@ public MainMenuScene() //var title = World.Create(); //var uiTitle = new UiTitle() { Text = "November Pirates" }; //title.Set(uiTitle); + var width = Raylib.GetScreenWidth() * 0.7f; World.Create(new SpriteButton { @@ -27,12 +29,12 @@ public MainMenuScene() Order = 1, TextSprite = new Sprite(TextureKey.Words, "Assets/Art/words") { - Position = new Vector2(750, 150), + Position = new Vector2(width, 150), OriginPos = Render.OriginAlignment.LeftTop }, ButtonSprite = new Sprite(TextureKey.Button, "Assets/Art/Button") { - Position = new Vector2(750, 150), + Position = new Vector2(width, 150), OriginPos = Render.OriginAlignment.LeftTop } }); @@ -47,12 +49,12 @@ public MainMenuScene() Order = 2, TextSprite = new Sprite(TextureKey.Words, "Assets/Art/words") { - Position = new Vector2(750, 300), + Position = new Vector2(width, 300), OriginPos = Render.OriginAlignment.LeftTop, }, ButtonSprite = new Sprite(TextureKey.Button, "Assets/Art/Button") { - Position = new Vector2(750, 300), + Position = new Vector2(width, 300), OriginPos = Render.OriginAlignment.LeftTop } }); @@ -67,24 +69,34 @@ public MainMenuScene() Order = 3, TextSprite = new Sprite(TextureKey.Words, "Assets/Art/words") { - Position = new Vector2(750, 450), + Position = new Vector2(width, 450), OriginPos = Render.OriginAlignment.LeftTop }, ButtonSprite = new Sprite(TextureKey.Button, "Assets/Art/Button") { - Position = new Vector2(750, 450), + Position = new Vector2(width, 450), OriginPos = Render.OriginAlignment.LeftTop } }); - World.Create(new UiButton + World.Create(new SpriteButton { Text = "Exit", Action = () => { Environment.Exit(0); }, - Order = 5 + Order = 5, + TextSprite = new Sprite(TextureKey.Words, "Assets/Art/words") + { + Position = new Vector2(width, 750), + OriginPos = Render.OriginAlignment.LeftTop + }, + ButtonSprite = new Sprite(TextureKey.Button, "Assets/Art/Button") + { + Position = new Vector2(width, 750), + OriginPos = Render.OriginAlignment.LeftTop + } }); } } diff --git a/Scenes/Menus/Systems/MenuSystem.cs b/Scenes/Menus/Systems/MenuSystem.cs index 261ab95..1032c1c 100644 --- a/Scenes/Menus/Systems/MenuSystem.cs +++ b/Scenes/Menus/Systems/MenuSystem.cs @@ -11,11 +11,21 @@ namespace NovemberPirates.Scenes.Menus.Systems { internal class MenuSystem : GameSystem { + private Font CreditsFont; + + public MenuSystem() + { + CreditsFont = Raylib.LoadFont("Assets/Fonts/AguafinaScript-Regular.ttf"); + } internal override void Update(World world) { } internal override void UpdateNoCamera(World world) { - Raylib.DrawTexture(TextureManager.Instance.GetTexture(TextureKey.MainMenuBackground), 0, 0, Raylib.WHITE); + var backgroundTexture = TextureManager.Instance.GetTexture(TextureKey.MainMenuBackground); + Raylib.DrawTexturePro(backgroundTexture, + new Rectangle(0, 0, backgroundTexture.width, backgroundTexture.height), + new Rectangle(0, 0, Raylib.GetScreenWidth(), Raylib.GetScreenHeight()), + Vector2.Zero, 0f, Raylib.WHITE); var query = new QueryDescription().WithAny(); var centerPoint = new Vector2(Raylib.GetScreenWidth() / 2, Raylib.GetScreenHeight() / 2); @@ -24,10 +34,12 @@ internal override void UpdateNoCamera(World world) //RayGui.GuiDummyRec(dummyrect, ""); var index = 0; + //RayGui.GuiSetFont(CreditsFont); RayGui.GuiSetStyle((int)GuiControl.DEFAULT, (int)GuiDefaultProperty.TEXT_SIZE, 48); RayGui.GuiSetStyle((int)GuiControl.LABEL, (int)GuiControlProperty.TEXT_ALIGNMENT, 1); RayGui.GuiSetStyle((int)GuiControl.BUTTON, (int)GuiControlProperty.TEXT_ALIGNMENT, 0); + world.Query(in query, (entity) => { index++; diff --git a/Utilities/Data/ShipData.cs b/Utilities/Data/ShipData.cs index 22d6a3e..8562c96 100644 --- a/Utilities/Data/ShipData.cs +++ b/Utilities/Data/ShipData.cs @@ -6,7 +6,7 @@ internal class ShipData { internal static ShipData Instance = new ShipData(); - private static int Version = 1; + private int Version = 1; private string SavePath = "Assets/Data/GameData.json"; private ShipData() @@ -21,13 +21,14 @@ private void ImportOrCreateShipData() var container = JsonSerializer.Deserialize(dataString); if (container != null) { - Data = container.Data; + if (container.Version == Version) + { + Data = container.Data; + return; + } } } - else - { - SaveToJson(); - } + SaveToJson(); } internal void SaveToJson() @@ -46,66 +47,70 @@ internal void SaveToJson() internal Dictionary Data = new() { // Small Ships - { $"{BoatType.HullSmall}{ShipAbilities.Steering}", 1 }, - { $"{BoatType.HullSmall}{ShipAbilities.Rowing}", 2 }, - { $"{BoatType.HullSmall}{ShipAbilities.HalfSail}", 3 }, - { $"{BoatType.HullSmall}{ShipAbilities.FullSail}", 10 }, - { $"{BoatType.HullSmall}{ShipAbilities.OneCannon}", 5 }, - { $"{BoatType.HullSmall}{ShipAbilities.TwoCannon}", 7 }, - { $"{BoatType.HullSmall}{ShipAbilities.MaxCrew}", 15 }, - - { $"{BoatType.HullSmall}{Stats.RowingSpeed}", 100}, - { $"{BoatType.HullSmall}{Stats.TurningSpeed}", 100}, - { $"{BoatType.HullSmall}{Stats.MaxSpeed}", 500}, - { $"{BoatType.HullSmall}{Stats.HalfSailSpeed}", 1}, - { $"{BoatType.HullSmall}{Stats.FullSailSpeed}", 1}, - { $"{BoatType.HullSmall}{Stats.SailSpeedEasing}" , 1}, - { $"{BoatType.HullSmall}{Stats.InitialCrew}" , 10}, - { $"{BoatType.HullSmall}{Stats.InitialHp}" , 100}, + { $"{HullType.Small}{ShipAbilities.Steering}", 1 }, + { $"{HullType.Small}{ShipAbilities.Rowing}", 2 }, + { $"{HullType.Small}{ShipAbilities.HalfSail}", 3 }, + { $"{HullType.Small}{ShipAbilities.FullSail}", 10 }, + { $"{HullType.Small}{ShipAbilities.OneCannon}", 5 }, + { $"{HullType.Small}{ShipAbilities.TwoCannon}", 7 }, + { $"{HullType.Small}{ShipAbilities.MaxCrew}", 15 }, + + { $"{HullType.Small}{Stats.RowingSpeed}", 100}, + { $"{HullType.Small}{Stats.TurningSpeed}", 100}, + { $"{HullType.Small}{Stats.MaxSpeed}", 500}, + { $"{HullType.Small}{Stats.HalfSailSpeed}", 1}, + { $"{HullType.Small}{Stats.FullSailSpeed}", 1}, + { $"{HullType.Small}{Stats.SailSpeedEasing}" , 1}, + { $"{HullType.Small}{Stats.InitialCrew}" , 10}, + { $"{HullType.Small}{Stats.HullHealth}" , 100}, + { $"{HullType.Small}{Stats.SailHealth}" , 100}, // Medium Ships - { $"{BoatType.HullMedium}{ShipAbilities.Steering}", 1 }, - { $"{BoatType.HullMedium}{ShipAbilities.Rowing}", 2 }, - { $"{BoatType.HullMedium}{ShipAbilities.HalfSail}", 3 }, - { $"{BoatType.HullMedium}{ShipAbilities.FullSail}", 10 }, - { $"{BoatType.HullMedium}{ShipAbilities.OneCannon}", 5 }, - { $"{BoatType.HullMedium}{ShipAbilities.TwoCannon}", 7 }, - { $"{BoatType.HullMedium}{ShipAbilities.MaxCrew}", 20 }, - - { $"{BoatType.HullMedium}{Stats.RowingSpeed}", 100}, - { $"{BoatType.HullMedium}{Stats.TurningSpeed}", 100}, - { $"{BoatType.HullMedium}{Stats.MaxSpeed}", 500}, - { $"{BoatType.HullMedium}{Stats.HalfSailSpeed}", 1}, - { $"{BoatType.HullMedium}{Stats.FullSailSpeed}", 1}, - { $"{BoatType.HullMedium}{Stats.SailSpeedEasing}" , 1}, - { $"{BoatType.HullMedium}{Stats.InitialCrew}" , 10}, - { $"{BoatType.HullMedium}{Stats.InitialHp}" , 100}, + { $"{HullType.Medium}{ShipAbilities.Steering}", 1 }, + { $"{HullType.Medium}{ShipAbilities.Rowing}", 2 }, + { $"{HullType.Medium}{ShipAbilities.HalfSail}", 3 }, + { $"{HullType.Medium}{ShipAbilities.FullSail}", 10 }, + { $"{HullType.Medium}{ShipAbilities.OneCannon}", 5 }, + { $"{HullType.Medium}{ShipAbilities.TwoCannon}", 7 }, + { $"{HullType.Medium}{ShipAbilities.MaxCrew}", 20 }, + + { $"{HullType.Medium}{Stats.RowingSpeed}", 100}, + { $"{HullType.Medium}{Stats.TurningSpeed}", 100}, + { $"{HullType.Medium}{Stats.MaxSpeed}", 500}, + { $"{HullType.Medium}{Stats.HalfSailSpeed}", 1}, + { $"{HullType.Medium}{Stats.FullSailSpeed}", 1}, + { $"{HullType.Medium}{Stats.SailSpeedEasing}" , 1}, + { $"{HullType.Medium}{Stats.InitialCrew}" , 10}, + { $"{HullType.Medium}{Stats.HullHealth}" , 100}, + { $"{HullType.Medium}{Stats.SailHealth}" , 100}, // Large Ships - { $"{BoatType.HullLarge}{ShipAbilities.Steering}", 1 }, - { $"{BoatType.HullLarge}{ShipAbilities.Rowing}", 2 }, - { $"{BoatType.HullLarge}{ShipAbilities.HalfSail}", 3 }, - { $"{BoatType.HullLarge}{ShipAbilities.FullSail}", 10 }, - { $"{BoatType.HullLarge}{ShipAbilities.OneCannon}", 5 }, - { $"{BoatType.HullLarge}{ShipAbilities.TwoCannon}", 7 }, - { $"{BoatType.HullLarge}{ShipAbilities.MaxCrew}", 25 }, - - { $"{BoatType.HullLarge}{Stats.RowingSpeed}", 100}, - { $"{BoatType.HullLarge}{Stats.TurningSpeed}", 100}, - { $"{BoatType.HullLarge}{Stats.MaxSpeed}", 500}, - { $"{BoatType.HullLarge}{Stats.HalfSailSpeed}", 1}, - { $"{BoatType.HullLarge}{Stats.FullSailSpeed}", 1}, - { $"{BoatType.HullLarge}{Stats.SailSpeedEasing}" , 1}, - { $"{BoatType.HullLarge}{Stats.InitialCrew}" , 10}, - { $"{BoatType.HullLarge}{Stats.InitialHp}" , 100}, + { $"{HullType.Large}{ShipAbilities.Steering}", 1 }, + { $"{HullType.Large}{ShipAbilities.Rowing}", 2 }, + { $"{HullType.Large}{ShipAbilities.HalfSail}", 3 }, + { $"{HullType.Large}{ShipAbilities.FullSail}", 10 }, + { $"{HullType.Large}{ShipAbilities.OneCannon}", 5 }, + { $"{HullType.Large}{ShipAbilities.TwoCannon}", 7 }, + { $"{HullType.Large}{ShipAbilities.MaxCrew}", 25 }, + + { $"{HullType.Large}{Stats.RowingSpeed}", 100}, + { $"{HullType.Large}{Stats.TurningSpeed}", 100}, + { $"{HullType.Large}{Stats.MaxSpeed}", 500}, + { $"{HullType.Large}{Stats.HalfSailSpeed}", 1}, + { $"{HullType.Large}{Stats.FullSailSpeed}", 1}, + { $"{HullType.Large}{Stats.SailSpeedEasing}" , 1}, + { $"{HullType.Large}{Stats.InitialCrew}" , 10}, + { $"{HullType.Large}{Stats.HullHealth}" , 100}, + { $"{HullType.Large}{Stats.SailHealth}" , 100}, // Cannon types { $"{CannonType.TrustyRusty}{Stats.CannonReloadTime}", 0.5f }, { $"{CannonType.TrustyRusty}{Stats.CannonReloadRate}", 1 }, { $"{CannonType.TrustyRusty}{Stats.CannonHullDamage}", 5 }, - { $"{CannonType.TrustyRusty}{Stats.CannonCrewDamage}", 5 }, + { $"{CannonType.TrustyRusty}{Stats.CannonCrewKillChance}", 5 }, + { $"{CannonType.TrustyRusty}{Stats.CannonCrewKillChainLimit}", 5 }, { $"{CannonType.TrustyRusty}{Stats.CannonSailDamage}", 5 }, { $"{CannonType.TrustyRusty}{Stats.CannonSpread}", 100 }, { $"{CannonType.TrustyRusty}{Stats.CannonballSpeed}", 1000 }, @@ -115,7 +120,8 @@ internal void SaveToJson() { $"{CannonType.PvtPepper}{Stats.CannonReloadTime}", 0.5f }, { $"{CannonType.PvtPepper}{Stats.CannonReloadRate}", 1 }, { $"{CannonType.PvtPepper}{Stats.CannonHullDamage}", 5 }, - { $"{CannonType.PvtPepper}{Stats.CannonCrewDamage}", 5 }, + { $"{CannonType.PvtPepper}{Stats.CannonCrewKillChance}", 5 }, + { $"{CannonType.PvtPepper}{Stats.CannonCrewKillChainLimit}", 5 }, { $"{CannonType.PvtPepper}{Stats.CannonSailDamage}", 5 }, { $"{CannonType.PvtPepper}{Stats.CannonSpread}", 100 }, { $"{CannonType.PvtPepper}{Stats.CannonballSpeed}", 1000 }, @@ -125,7 +131,8 @@ internal void SaveToJson() { $"{CannonType.BFC1700}{Stats.CannonReloadTime}", 0.5f }, { $"{CannonType.BFC1700}{Stats.CannonReloadRate}", 1 }, { $"{CannonType.BFC1700}{Stats.CannonHullDamage}", 5 }, - { $"{CannonType.BFC1700}{Stats.CannonCrewDamage}", 5 }, + { $"{CannonType.BFC1700}{Stats.CannonCrewKillChance}", 5 }, + { $"{CannonType.BFC1700}{Stats.CannonCrewKillChainLimit}", 5 }, { $"{CannonType.BFC1700}{Stats.CannonSailDamage}", 5 }, { $"{CannonType.BFC1700}{Stats.CannonSpread}", 100 }, { $"{CannonType.BFC1700}{Stats.CannonballSpeed}", 1000 }, @@ -176,8 +183,9 @@ internal enum Stats CannonReloadTime, CannonReloadRate, CannonHullDamage, - CannonCrewDamage, CannonSailDamage, + CannonCrewKillChance, + CannonCrewKillChainLimit, CannonSpread, CannonballSpeed, CannonballDuration, @@ -185,6 +193,7 @@ internal enum Stats // Ship InitialCrew, - InitialHp, + HullHealth, + SailHealth, } } diff --git a/Utilities/ShipSpriteBuilder.cs b/Utilities/ShipSpriteBuilder.cs index 2f19a13..1bccd44 100644 --- a/Utilities/ShipSpriteBuilder.cs +++ b/Utilities/ShipSpriteBuilder.cs @@ -12,7 +12,7 @@ internal static Sprite GenerateBoat(BoatOptions options) { var spriteHeight = options.Hull switch { - BoatType.HullLarge => 128, + HullType.Large => 128, _ => 108, }; var shipSize = new Vector2(66, spriteHeight); @@ -41,9 +41,9 @@ internal static Sprite GenerateBoat(BoatOptions options) var baseHullSprite = options.Hull switch { - BoatType.HullLarge => new Sprite(TextureKey.HullLarge, "Assets/Art/hullLarge") { Position = shipSize / 2 }, - BoatType.HullMedium => new Sprite(TextureKey.HullMedium, "Assets/Art/hullMedium") { Position = shipSize / 2 }, - BoatType.HullSmall => new Sprite(TextureKey.HullSmall, "Assets/Art/hullSmall") { Position = shipSize / 2 }, + HullType.Large => new Sprite(TextureKey.HullLarge, "Assets/Art/hullLarge") { Position = shipSize / 2 }, + HullType.Medium => new Sprite(TextureKey.HullMedium, "Assets/Art/hullMedium") { Position = shipSize / 2 }, + HullType.Small => new Sprite(TextureKey.HullSmall, "Assets/Art/hullSmall") { Position = shipSize / 2 }, _ => throw new NotImplementedException($"Hull type: '{options.Hull}' does not exist "), }; baseHullSprite.Play($"HullLarge{(int)options.Condition}"); @@ -91,12 +91,12 @@ internal static Sprite GenerateBoat(BoatOptions options) //Pole var poleSprite = new Sprite(TextureKey.Pole, "Assets/Art/pole") { }; - poleSprite.Position = new Vector2(shipSize.X / 2, options.Hull == BoatType.HullLarge ? 100 : 80); + poleSprite.Position = new Vector2(shipSize.X / 2, options.Hull == HullType.Large ? 100 : 80); //front sail var frontSailSprite = new Sprite(TextureKey.SailSmall, "Assets/Art/sailSmall1"); frontSailSprite.Play($"{options.Color}{(int)options.Condition}"); - frontSailSprite.Position = new Vector2(shipSize.X / 2, options.Hull == BoatType.HullLarge ? 105 : 85); + frontSailSprite.Position = new Vector2(shipSize.X / 2, options.Hull == HullType.Large ? 105 : 85); // Build Texture var renderTexture = Raylib.LoadRenderTexture((int)shipSize.X, (int)shipSize.Y); @@ -140,7 +140,7 @@ internal static Sprite GenerateBoat(BoatOptions options) } } - internal record BoatOptions(BoatType Hull, BoatColor Color, SailStatus Sails, List Cannons, BoatCondition Condition = BoatCondition.Good) + internal record BoatOptions(HullType Hull, BoatColor Color, SailStatus Sails, List Cannons, BoatCondition Condition = BoatCondition.Good) { internal BoatOptions(Ship ship) : this(ship.BoatType, ship.BoatColor, ship.Sail, ship.Cannons, ship.BoatCondition) { } @@ -150,11 +150,11 @@ internal string ToKey() } } - internal enum BoatType + internal enum HullType { - HullSmall, - HullMedium, - HullLarge, + Small, + Medium, + Large, } internal enum BoatColor @@ -181,17 +181,17 @@ internal static class ShipCannonCoords {$"Port", 13}, {$"Starboard", 53}, - {$"{BoatType.HullLarge}1", 38}, - {$"{BoatType.HullLarge}2", 56}, - {$"{BoatType.HullLarge}3", 75}, + {$"{HullType.Large}1", 38}, + {$"{HullType.Large}2", 56}, + {$"{HullType.Large}3", 75}, - {$"{BoatType.HullMedium}1", 38}, - {$"{BoatType.HullMedium}2", 56}, - {$"{BoatType.HullMedium}3", 75}, + {$"{HullType.Medium}1", 38}, + {$"{HullType.Medium}2", 56}, + {$"{HullType.Medium}3", 75}, - {$"{BoatType.HullSmall}1", 38}, - {$"{BoatType.HullSmall}2", 56}, - {$"{BoatType.HullSmall}3", 75}, + {$"{HullType.Small}1", 38}, + {$"{HullType.Small}2", 56}, + {$"{HullType.Small}3", 75}, }; }