You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
PTU action economy: ActionBudget models Full and conversions as independent buckets #359
Rulebook conformance audit found a production legal-action gap in Java.
src/main/java/io/autoptu/core/rules/ActionBudget.java currently mirrors Python by treating every ActionType as an independent consumed bucket. ActionType.FULL is therefore independent from STANDARD and SHIFT, and the budget does not express Standard→Swift or Standard→Shift conversion.
AutobattlerActionSpace consumes this budget directly when generating legal Shift and Move choices, so this can affect authoritative AI/controller legality rather than only tests.
PTU 1.05/Kairos action economy requires:
one Standard, one Shift and one Swift Action per turn;
Full Action consumes Standard + Shift, not a separate independent resource;
Standard may be surrendered for an additional Swift;
Standard may be surrendered for an additional Shift;
the Standard→Shift conversion cannot be used for Movement if the regular Shift Action was already used for Movement, though it may still pay for non-movement Shift effects;
Free Actions remain uncapped numerically, while Trigger restrictions are handled separately;
Priority/Interrupt consumption needs its own lifecycle semantics rather than a free independent bucket.
Represent base Standard/Shift/Swift resources explicitly.
Represent whether the regular Shift was used for Movement.
Make Full availability/consumption atomic over Standard+Shift.
Make Standard→Swift and Standard→Shift legal conversions explicit.
Preserve extra actions as named rule grants rather than treating them as substitutes for every base resource by default.
Update AutobattlerActionSpace to request rule-aware capacity, including whether a Shift choice is Movement.
Freeze rulebook-derived tests independent of Python before differential parity.
This is high leverage because it affects action economy, legal-action generation, AI policy, Trainer/Pokémon action resolution, and later manual combat.
Activity