Commit Graph

49 Commits

Author SHA1 Message Date
Tim Van Baak 889e9d173b Reduce MoveOrder.Location to string 2024-08-15 22:01:38 -07:00
Tim Van Baak f21b1e500c Eliminate MoveOrder.Province 2024-08-15 21:48:41 -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 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 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 8f5dc63833 Use unit designations for order history instead of references 2024-08-14 18:49:27 -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 345d54f960 Refactor timelines and season creation logic into World 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 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
Jaculabilis b241d206f4 Only fork on new moves into a season 2022-11-08 19:12:03 -08:00
Jaculabilis 069cb4c548 Prevent orders from being double counted if they affect multiple seasons 2022-11-08 18:55:27 -08:00
Jaculabilis 95ed8c7682 Fix error caused by decisions with no history 2022-11-08 18:41:46 -08:00
Jaculabilis 39c3aabe45 Implement AdvanceTimeline resolution 2022-11-08 16:25:47 -08:00
Jaculabilis 7471a035f0 Log decision updates 2022-11-06 22:01:36 -08:00
Jaculabilis a565ee1b05 Add better ToString overrides to decision classes 2022-11-06 21:58:21 -08:00
Jaculabilis 25d707b3b8 Log recursive decision traversal 2022-11-06 21:55:46 -08:00
Jaculabilis c0a9330d2e Add depth tracking to decision resolution 2022-11-06 21:51:45 -08:00
Jaculabilis 23a826c815 Add adjudicator logger 2022-11-06 21:09:22 -08:00
Jaculabilis 18c11c7ffd Add an AdvanceTimeline decision type 2022-11-06 14:39:01 -08:00
Jaculabilis d491ea9f64 Fix missing temporal dimension to dislodge checks 2022-03-30 13:00:51 -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 d4e68844c6 Simplify world updates and expose root season 2022-03-28 22:34:57 -07:00
Jaculabilis aa9c9c548b Enable hold strength across parallel worlds 2022-03-28 17:41:38 -07:00
Jaculabilis ff64b459ca Reduce verbosity of test case assertions 2022-03-28 15:05:04 -07:00
Jaculabilis 609e8cc60c Add dislodge checks to DATC A tests 2022-03-28 09:39:03 -07:00
Jaculabilis b026adbfbc Add some basic unit tests for the movement adjudicator 2022-03-27 15:10:34 -07:00
Jaculabilis 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
Jaculabilis 36ea621782 Move decision classes out of the movement adjudicator 2022-03-24 09:22:13 -07:00
Jaculabilis 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
Jaculabilis 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
Jaculabilis 8c828661e2 Add validation constraint 2022-03-22 22:11:14 -07:00
Jaculabilis c50dbf6b46 Add movement order validation tests 2022-03-22 21:30:20 -07:00
Jaculabilis 8a7e90b949 Add movement phase order validation logic 2022-03-15 12:24:29 -07:00
Jaculabilis c4f5145320 Add order model and adjudicator framework 2022-02-18 17:17:17 -08:00