diff --git a/src/EllieBot/Modules/Games/Fish/DESIGN.md b/src/EllieBot/Modules/Games/Fish/DESIGN.md index 4beddd4..8dfbd5c 100644 --- a/src/EllieBot/Modules/Games/Fish/DESIGN.md +++ b/src/EllieBot/Modules/Games/Fish/DESIGN.md @@ -35,7 +35,7 @@ flowchart TD B --> D["Complete the set"]:::todo D --> E[Recognition]:::todo & F[Buff?]:::todo F --> B - B --> X[Buy bait]:::todo + B --> X[Buy equipment]:::todo X1[Modify Odds]:::todo --> B X --> X1 ``` diff --git a/src/EllieBot/Modules/Games/Fish/Db/UserFishStats.cs b/src/EllieBot/Modules/Games/Fish/Db/UserFishStats.cs index 8462f1f..caf3af8 100644 --- a/src/EllieBot/Modules/Games/Fish/Db/UserFishStats.cs +++ b/src/EllieBot/Modules/Games/Fish/Db/UserFishStats.cs @@ -9,4 +9,21 @@ public sealed class UserFishStats public ulong UserId { get; set; } public int Skill { get; set; } + + public int? Pole { get; set; } + public int? Bait { get; set; } +} + +public sealed class FishingPole +{ + [Key] + public int Id { get; set; } + + public string Name { get; set; } = string.Empty; + + public long Price { get; set; } + + public string Emoji { get; set; } = string.Empty; + + } \ No newline at end of file diff --git a/src/EllieBot/Modules/Games/Fish/FishConfig.cs b/src/EllieBot/Modules/Games/Fish/FishConfig.cs index a33a166..05bb381 100644 --- a/src/EllieBot/Modules/Games/Fish/FishConfig.cs +++ b/src/EllieBot/Modules/Games/Fish/FishConfig.cs @@ -14,6 +14,43 @@ public sealed partial class FishConfig : ICloneable<FishConfig> public List<string> SpotEmojis { get; set; } = new(); public FishChance Chance { get; set; } = new FishChance(); + public List<FishBait> Baits { get; set; } = new(); + public List<FishingPole> Poles { get; set; } = new(); public List<FishData> Fish { get; set; } = new(); public List<FishData> Trash { get; set; } = new(); -} \ No newline at end of file +} + +public sealed class FishBait : ICloneable<FishBait> +{ + public int Id { get; set; } + public string Name { get; set; } = string.Empty; + public long Price { get; set; } + public string Emoji { get; set; } = string.Empty; + public int StackSize { get; set; } = 100; + + public string? OnlyWeather { get; set; } + public string? OnlySpot { get; set; } + public string? OnlyTime { get; set; } + + public double FishMulti { get; set; } = 1; + public double TrashMulti { get; set; } = 1; + public double NothingMulti { get; set; } = 1; + + public double RareFishMulti { get; set; } = 1; + public double RareTrashMulti { get; set; } = 1; + + public double MaxStarMulti { get; set; } = 1; +} + +public sealed class FishingPole : ICloneable<FishingPole> +{ + public int Id { get; set; } + public string Name { get; set; } = string.Empty; + public long Price { get; set; } + public string Emoji { get; set; } = string.Empty; + public string Img { get; set; } = string.Empty; + + public double FishMulti { get; set; } = 1; + public double TrashMulti { get; set; } = 1; + public double NothingMulti { get; set; } = 1; +}