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
73d849e117
Working World roundtrip serialization
...
There are probably still reference equality issues here since Unit still has Season and Power objects. The test case builder also still works on reference equality in some places so the second part of adjudication is broken.
2024-08-14 09:51:18 -07:00
31bd6a45cb
Define JSON serialization options on World
2024-08-14 09:16:53 -07:00
5ad57465d8
Remove reference from Unit.Past
2024-08-14 09:06:05 -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
228ad53cca
Enable basic World serialization
2024-08-14 09:06:04 -07:00
f1563b8f5f
Delete Season.Coord
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
58f877425a
Add more JsonIgnores
2024-08-14 09:06:04 -07:00
ef4e130dbb
Add a serialization round trip test
...
This currently fails because a lot of World still works on references instead of lookups
2024-08-14 09:06:04 -07:00
87685ec744
Refactor season futures into World
2024-08-14 09:06:04 -07:00
752a898123
Use a simpler override where available
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
b756959b0a
Replace most uses of Season creators to World
2024-08-14 09:06:04 -07:00
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
780ae8b948
Refactor timeline factory to generate string ids
...
The strings are immediately shimmed back to ints for now
2024-08-14 09:06:03 -07:00
bd8e0da6b6
Refactor province and power information into Map
2024-08-14 09:04:56 -07:00
3db01c0ffd
Update projects to dotnet 8
2024-08-09 06:53:22 -07:00
a63ff3992b
Remove broken validation assert
...
Validation only happens for orders in the current batch, so the test can't validate an order from the previous batch
2022-11-08 19:59:27 -08:00
15fde7340c
Fix incorrect unit in 3.A.5
2022-11-06 14:43:45 -08:00
12c307d835
Create a DATC-inspired document for illustrating time travel test cases
2022-04-22 13:33:17 -07:00
076f1f7f29
Add more tests around time travel
2022-04-09 21:10:44 -07: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
b679558d9c
Make adjudicator reusable to decrease verbosity
2022-03-30 08:04:44 -07:00
604dda95e8
Enable fluent definitions of multiple turns
2022-03-29 21:01:58 -07:00
b347cc88aa
Make TestCaseBuilder reusable
2022-03-29 20:59:30 -07:00
6948db29df
Save previous orders so time travel can re-adjudicate them
2022-03-29 20:40:19 -07:00
6a6810ef07
Add basic movement phase update tests
2022-03-29 17:16:00 -07:00
d4e68844c6
Simplify world updates and expose root season
2022-03-28 22:34:57 -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
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
1ea4ac0ded
Remove obsolete test fixture
2022-03-24 07:29:50 -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
00cac2cb89
Add order references to test case builder
...
This allows assertions to be made more easily against orders in a test case.
2022-03-22 20:15:50 -07:00
9e1782c401
Create fluent interface for building test cases
2022-03-15 17:24:16 -07:00
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