Commit Graph

56 Commits

Author SHA1 Message Date
Tim Van Baak fd8c725286 Store order history by timeline designation instead of reference 2024-08-12 21:58:24 -07:00
Tim Van Baak 27ffaccd20 Update Season ctor 2024-08-12 15:27:20 -07:00
Tim Van Baak b17ce9485a Refactor season futures into World 2024-08-12 15:25:23 -07:00
Tim Van Baak 3242186208 Use a simpler override where available 2024-08-12 14:57:16 -07:00
Tim Van Baak 11dfa403e4 Rename PastId back to Past 2024-08-12 14:52:50 -07:00
Tim Van Baak ae77c3c708 Remove Season.Past so all lookups go through World 2024-08-12 14:51:07 -07:00
Tim Van Baak f5afb4105b Move more timeline logic from Season to World 2024-08-12 14:50:15 -07:00
Tim Van Baak 7d4f7760be Move GetAdjacentSeasons to PathFinder 2024-08-12 14:12:49 -07:00
Tim Van Baak 5dfe9a5bb5 Replace most uses of Season creators to World 2024-08-12 13:56:06 -07:00
Tim Van Baak 5472dda931 Eliminate RootSeason field 2024-08-12 10:59:48 -07:00
Tim Van Baak 9696919773 Update timeline designator usage
Timelines are now identified by strings and come first in timeline-turn tuples.
2024-08-12 09:28:56 -07:00
Tim Van Baak 3d48a7d6f6 Refactor timeline factory to generate string ids
The strings are immediately shimmed back to ints for now
2024-08-12 07:51:18 -07:00
Tim Van Baak dab37c239b Refactor province and power information into Map 2024-08-11 21:45:25 -07:00
Tim Van Baak 135997a7cd Add a real CLI for adjudication 2024-08-10 14:54:03 -07:00
Tim Van Baak 3db01c0ffd Update projects to dotnet 8 2024-08-09 06:53:22 -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 46c28a087c Shorten string representations
The new format for representing timeline, province, and season is T-PRO@S. Hopefully this is easier to read than the PRO T:S format.
2022-11-06 20:27:28 -08:00
Jaculabilis 18c11c7ffd Add an AdvanceTimeline decision type 2022-11-06 14:39:01 -08:00
Jaculabilis 105c372779 Add ToString overrides for orders 2022-04-07 15:58:17 -07:00
Jaculabilis 5e74ffc19f Apply null-forgiving operator where relevant 2022-04-07 15:48:46 -07: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 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 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 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 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 be3f6a527f Refactor Support*Order to inherit from abstract SupportOrder 2022-03-22 12:57:01 -07:00
Jaculabilis 70b004edab Define ToString methods on the main models 2022-03-15 17:36:47 -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