Tim Van Baak
eaafdeb5a9
Eliminate sources of Unit reference equality
2024-08-16 20:13:15 +00:00
Tim Van Baak
9a64609605
Update adjudication logging
2024-08-15 22:20:03 -07:00
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