Commit Graph

17 Commits

Author SHA1 Message Date
d2a00d2044
fix compilation errors and warnings 2024-09-29 10:27:15 -07:00
ba5171fd67
Prototype for TablePolicy 2024-09-29 10:19:19 -07:00
de7092cf4b
SwitchingCard.IsValid: control drawability.
Cards can now specify conditions that must be met for them to be drawn into the hand.

Additionally, this improves the documentation of SwitchingCard.
2023-04-08 18:33:58 -07:00
d434e50897
Shuffle cards back by default.
If no After function is provided for a SwitchingCard, it uses ShuffleIntoBottomHalf.

This also modifies Then to be callable with a nil `o`, which it recognizes as "nothing happened but we need cleanup anyway", in preparation for the incoming "make cards sometimes not drawable" feature.
2023-04-08 18:18:00 -07:00
301d8ae161
Hide unavailable options on SwitchingCard. 2023-04-04 20:21:12 -07:00
e0dad09045 Refactor, new menu, issue feature update
It's now possible to make issue options enabled or disabled conditional upon having taken other actions with that issue before.
2023-04-04 13:22:43 -07:00
f7bed6c4b9
Can't assume CanDo is always there.
BasicPolicy doesn't know how to do fallback, that's driven by the VerbosePolicy. But the VerbosePolicy isn't there if BasicPolicy is trying to use CanDo itself. Just remove the check.
2023-04-03 21:15:43 -07:00
c2d637b109
Fix out-of-range check. 2023-04-03 20:25:29 -07:00
140d7b6cbb
DisabledPolicy: a policy that doesn't 2023-04-03 20:12:06 -07:00
5af762474c
OverrideDefaultMsg and support in VerbosePolicy
For when you need a partially-functional message but don't want to repeatedly write the same Enact func.
2023-04-03 19:57:09 -07:00
2c1fc73ef5
FuncPolicy: function pointer policy
For when you don't want to go to the trouble of writing a type, but do need actual functions.
2023-04-03 19:52:47 -07:00
a1f55c865d
Refactor VerbosePolicy.
This allows it to switch between other complete policies, with fallbacks to a default if parts aren't impelemented. Complementing it is the change to BasicPolicy, which throws ErrUnimplemented if fields are missing, which VerbosePolicy uses as a "go ask the default" sign.
2023-04-03 19:41:32 -07:00
4e983bd0f0
Fix nil deref and identity failure.
Also updates deps to pick up a message display fix.
2023-04-03 01:59:23 -07:00
c798ba31e1
Fix nil dereference. 2023-04-03 01:40:47 -07:00
5728dd95f0
Oops, forgot to shuffle the card back in. 2023-04-03 01:36:47 -07:00
fb5aaeccfc
Implement first issue.
This seems like the least complicated way to get the desired reusable behaviors.
2023-04-03 01:32:02 -07:00
0e1f5ff246
Reversible policies 2023-04-03 00:17:01 -07:00