Commit Graph

37 Commits

Author SHA1 Message Date
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 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 abbe929122 Designation -> Key 2024-08-15 06:52:08 -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 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 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 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 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 bd8e0da6b6 Refactor province and power information into Map 2024-08-14 09:04:56 -07:00
Jaculabilis 39c3aabe45 Implement AdvanceTimeline resolution 2022-11-08 16:25:47 -08:00
Jaculabilis 5e74ffc19f Apply null-forgiving operator where relevant 2022-04-07 15:48:46 -07:00
Jaculabilis 9f5ecaa16a Add province shortcuts to decrease verbosity 2022-03-30 12:52:57 -07:00
Jaculabilis 6948db29df Save previous orders so time travel can re-adjudicate them 2022-03-29 20:40:19 -07:00
Jaculabilis 6a6810ef07 Add basic movement phase update tests 2022-03-29 17:16:00 -07:00
Jaculabilis d4e68844c6 Simplify world updates and expose root season 2022-03-28 22:34:57 -07:00
Jaculabilis d6d9102f05 Add model for retreating unit information 2022-03-24 07:25:51 -07:00
Jaculabilis a162e6c7ef Finish filling out the standard map 2022-03-23 11:17:02 -07:00
Jaculabilis c50dbf6b46 Add movement order validation tests 2022-03-22 21:30:20 -07:00
Jaculabilis b0a8100641 Refactor World to avoid double enumeration
If an enumerable that created objects were passed, it would duplicate the objects when re-enumerated, which breaks all the reference equality logic.
2022-03-15 15:43:37 -07:00
Jaculabilis 18c5435c96 Refactor map definitions into World 2022-03-15 14:52:08 -07:00
Jaculabilis 8a7e90b949 Add movement phase order validation logic 2022-03-15 12:24:29 -07:00