Commit Graph

51 Commits

Author SHA1 Message Date
eaafdeb5a9 Eliminate sources of Unit reference equality 2024-08-16 20:13:15 +00:00
9a64609605 Update adjudication logging 2024-08-15 22:20:03 -07:00
889e9d173b Reduce MoveOrder.Location to string 2024-08-15 22:01:38 -07:00
f21b1e500c Eliminate MoveOrder.Province 2024-08-15 21:48:41 -07:00
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
bfdf2d5636 Reduce Unit.Power to string 2024-08-15 07:37:05 -07:00
2e6e6c55b8 Reduce Order.Power to string 2024-08-15 07:30:43 -07:00
abbe929122 Designation -> Key 2024-08-15 06:52:08 -07:00
601ce2d297 HoldStrength uses season string 2024-08-14 22:40:40 -07:00
64f48064fc AdvanceTimeline key to string 2024-08-14 22:32:48 -07:00
9185534f70 Reduce MoveOrder.Season to string 2024-08-14 22:28:56 -07:00
f2d3d5a583 Remove GetSeason(string) 2024-08-14 22:03:56 -07:00
868022d34f Convert World.Seasons to a dictionary 2024-08-14 22:00:22 -07:00
2484d4f0fd Get world serialization round trip kinda working 2024-08-14 21:12:58 -07:00
8f5dc63833 Use unit designations for order history instead of references 2024-08-14 18:49:27 -07:00
885628900b Remove Location reference from Unit 2024-08-14 09:06:05 -07:00
e1772ce60b Refactor away Unit.Province 2024-08-14 09:06:05 -07:00
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
345d54f960 Refactor timelines and season creation logic into World 2024-08-14 09:06:04 -07:00
2f4c8b2a38 Store order history by timeline designation instead of reference 2024-08-14 09:06:04 -07:00
87685ec744 Refactor season futures into World 2024-08-14 09:06:04 -07:00
400263ea0b Rename PastId back to Past 2024-08-14 09:06:04 -07:00
5e5483367d Remove Season.Past so all lookups go through World 2024-08-14 09:06:04 -07:00
81c9aa4859 Move more timeline logic from Season to World 2024-08-14 09:06:04 -07:00
fca8b77a21 Move GetAdjacentSeasons to PathFinder 2024-08-14 09:06:04 -07:00
b241d206f4 Only fork on new moves into a season 2022-11-08 19:12:03 -08:00
069cb4c548 Prevent orders from being double counted if they affect multiple seasons 2022-11-08 18:55:27 -08:00
95ed8c7682 Fix error caused by decisions with no history 2022-11-08 18:41:46 -08:00
39c3aabe45 Implement AdvanceTimeline resolution 2022-11-08 16:25:47 -08:00
7471a035f0 Log decision updates 2022-11-06 22:01:36 -08:00
a565ee1b05 Add better ToString overrides to decision classes 2022-11-06 21:58:21 -08:00
25d707b3b8 Log recursive decision traversal 2022-11-06 21:55:46 -08:00
c0a9330d2e Add depth tracking to decision resolution 2022-11-06 21:51:45 -08:00
23a826c815 Add adjudicator logger 2022-11-06 21:09:22 -08:00
18c11c7ffd Add an AdvanceTimeline decision type 2022-11-06 14:39:01 -08:00
d491ea9f64 Fix missing temporal dimension to dislodge checks 2022-03-30 13:00:51 -07:00
9f5ecaa16a Add province shortcuts to decrease verbosity 2022-03-30 12:52:57 -07:00
6948db29df Save previous orders so time travel can re-adjudicate them 2022-03-29 20:40:19 -07:00
d4e68844c6 Simplify world updates and expose root season 2022-03-28 22:34:57 -07:00
aa9c9c548b Enable hold strength across parallel worlds 2022-03-28 17:41:38 -07:00
ff64b459ca Reduce verbosity of test case assertions 2022-03-28 15:05:04 -07:00
609e8cc60c Add dislodge checks to DATC A tests 2022-03-28 09:39:03 -07:00
b026adbfbc Add some basic unit tests for the movement adjudicator 2022-03-27 15:10:34 -07:00
6b1b9dce10 Refactor adjudication into separate adjudication and update steps
This makes it easier to unit test adjudication decisions directly.
2022-03-27 14:39:00 -07:00
36ea621782 Move decision classes out of the movement adjudicator 2022-03-24 09:22:13 -07:00
d2ec79647a Add movement phase order adjudication
This implementation does not handle convoys nor account for circular movement and convoy paradoxes.
2022-03-24 08:18:33 -07:00
697614e34f Add DATC 6.A.* test cases
For now, just the parts that can be decided with validation are run. The tests and parts of tests requiring movement adjudication will be implemented fully when movement adjudication is implemented.
2022-03-22 23:21:09 -07:00
8c828661e2 Add validation constraint 2022-03-22 22:11:14 -07:00
c50dbf6b46 Add movement order validation tests 2022-03-22 21:30:20 -07:00
8a7e90b949 Add movement phase order validation logic 2022-03-15 12:24:29 -07:00