Commit Graph

162 Commits

Author SHA1 Message Date
Tim Van Baak a02e8121eb Rename test 2024-08-15 16:37:35 -07:00
Tim Van Baak 3d664208b5 Add Season.First, replacing FIRST_TURN 2024-08-15 16:36:50 -07:00
Tim Van Baak 25d903d91a Refactor Season into a value struct
This keeps the rich features of a Season type without requiring constant string parsing (as much) or going through World to do lookups to get the objects. Since seasons now have value equality instead of reference equality, it's easier to get access to whem when needed. They're still, fundamentally, sugar over a tuple.
2024-08-15 13:51:41 -07:00
Tim Van Baak 566d29e539 Add function to extract information from season keys 2024-08-15 08:51:17 -07:00
Tim Van Baak 4b2712e4bc Reduce Power to string 2024-08-15 07:54:53 -07:00
Tim Van Baak bfdf2d5636 Reduce Unit.Power to string 2024-08-15 07:37:05 -07:00
Tim Van Baak 2e6e6c55b8 Reduce Order.Power to string 2024-08-15 07:30:43 -07:00
Tim Van Baak 161e0a1ddb Doc updates 2024-08-15 07:10:44 -07:00
Tim Van Baak abbe929122 Designation -> Key 2024-08-15 06:52:08 -07:00
Tim Van Baak 601ce2d297 HoldStrength uses season string 2024-08-14 22:40:40 -07:00
Tim Van Baak 64f48064fc AdvanceTimeline key to string 2024-08-14 22:32:48 -07:00
Tim Van Baak 9185534f70 Reduce MoveOrder.Season to string 2024-08-14 22:28:56 -07:00
Tim Van Baak f2d3d5a583 Remove GetSeason(string) 2024-08-14 22:03:56 -07:00
Tim Van Baak 868022d34f Convert World.Seasons to a dictionary 2024-08-14 22:00:22 -07:00
Tim Van Baak 2484d4f0fd Get world serialization round trip kinda working 2024-08-14 21:12:58 -07:00
Tim Van Baak a4002a1081 Serialize unit type as string 2024-08-14 18:53:36 -07:00
Tim Van Baak 8f5dc63833 Use unit designations for order history instead of references 2024-08-14 18:49:27 -07:00
Tim Van Baak 5b5320b3e2 Add vsdgb dependency
This isn't enough to get the debugger working but might as well get part of the way there
2024-08-14 15:08:13 -07:00
Tim Van Baak 73d849e117 Working World roundtrip serialization
There are probably still reference equality issues here since Unit still has Season and Power objects. The test case builder also still works on reference equality in some places so the second part of adjudication is broken.
2024-08-14 09:51:18 -07:00
Tim Van Baak 31bd6a45cb Define JSON serialization options on World 2024-08-14 09:16:53 -07:00
Tim Van Baak 5ad57465d8 Remove reference from Unit.Past 2024-08-14 09:06:05 -07:00
Tim Van Baak 885628900b Remove Location reference from Unit 2024-08-14 09:06:05 -07:00
Tim Van Baak e1772ce60b Refactor away Unit.Province 2024-08-14 09:06:05 -07:00
Tim Van Baak abaa7f7a92 Shift usage of Unit.Location to Unit.LocationId
This is in preparation for removing province and location references from Unit
2024-08-14 09:06:04 -07:00
Tim Van Baak 442015b942 Always name locations 2024-08-14 09:06:04 -07:00
Tim Van Baak 228ad53cca Enable basic World serialization 2024-08-14 09:06:04 -07:00
Tim Van Baak f1563b8f5f Delete Season.Coord 2024-08-14 09:06:04 -07:00
Tim Van Baak 345d54f960 Refactor timelines and season creation logic into World 2024-08-14 09:06:04 -07:00
Tim Van Baak 58f877425a Add more JsonIgnores 2024-08-14 09:06:04 -07:00
Tim Van Baak 2f4c8b2a38 Store order history by timeline designation instead of reference 2024-08-14 09:06:04 -07:00
Tim Van Baak ef4e130dbb Add a serialization round trip test
This currently fails because a lot of World still works on references instead of lookups
2024-08-14 09:06:04 -07:00
Tim Van Baak 9606307e12 Update Season ctor 2024-08-14 09:06:04 -07:00
Tim Van Baak 87685ec744 Refactor season futures into World 2024-08-14 09:06:04 -07:00
Tim Van Baak 752a898123 Use a simpler override where available 2024-08-14 09:06:04 -07:00
Tim Van Baak 400263ea0b Rename PastId back to Past 2024-08-14 09:06:04 -07:00
Tim Van Baak 5e5483367d Remove Season.Past so all lookups go through World 2024-08-14 09:06:04 -07:00
Tim Van Baak 81c9aa4859 Move more timeline logic from Season to World 2024-08-14 09:06:04 -07:00
Tim Van Baak fca8b77a21 Move GetAdjacentSeasons to PathFinder 2024-08-14 09:06:04 -07:00
Tim Van Baak b756959b0a Replace most uses of Season creators to World 2024-08-14 09:06:04 -07:00
Tim Van Baak b887e01334 Eliminate RootSeason field 2024-08-14 09:06:04 -07:00
Tim Van Baak 421e84b559 Update timeline designator usage
Timelines are now identified by strings and come first in timeline-turn tuples.
2024-08-14 09:06:04 -07:00
Tim Van Baak 780ae8b948 Refactor timeline factory to generate string ids
The strings are immediately shimmed back to ints for now
2024-08-14 09:06:03 -07:00
Tim Van Baak 40254b0fca Add Makefile 2024-08-14 09:04:56 -07:00
Tim Van Baak bd8e0da6b6 Refactor province and power information into Map 2024-08-14 09:04:56 -07:00
Tim Van Baak 9fd63f4317 Update and refactor documentation
The README will become an entry point for using the project. Notes on design decisions and explanations of the rules are split off into their own documents.
2024-08-09 13:18:49 -07:00
Tim Van Baak 3db01c0ffd Update projects to dotnet 8 2024-08-09 06:53:22 -07:00
Tim Van Baak 0fd9c93a70 Get nix-ld to work with the Roslyn analyzer 2024-08-08 07:51:08 -07:00
Tim Van Baak 5b4758a4ed Update to dotnet 8 2024-08-08 07:49:39 -07:00
Tim Van Baak 7b2176b1d2 Update nixpkgs pin 2024-08-08 07:49:26 -07:00
Tim Van Baak 4bbd29ac93 Fix broken VS code shells
See https://github.com/NixOS/nix/issues/6982#issuecomment-1236743200
2024-08-08 07:47:37 -07:00