I set myself on the task of implementing choice actions, and quickly came upon the “problem” of showing the choices when the action is no longer available. Solved with a LocalActionBudget “Choices” list that tracks the last choices for choice actions (for UI display and default when the choice action becomes available).
But this led me to full attack sequencing (especially with two-weapon and multi-weapon fighting), and all the problems with dropping, quick drawing, two-hand wielding, double weapon wielding, natural attacks, thrown, splatter and projectile weapons. Then trying to build a process to determine whether an attack is allowed, and what penalties apply.
I believe it will all come down to tracking “holding slots” rather than weapons or weapon heads.
Assume the first attack (as a regular action) is with a weapon wielded one handed, and the other hand is free (unarmed), wielding a shield, or wielding a weapon. Without two-weapon fighting turned on, only the one hand can attack, and possibly get multiple attacks if the base attack is high enough. If the weapon is dropped, a new one can be drawn (with quick draw) and continue attacking through the progression. This should be true whether the newly drawn weapon is one-handed, light, or two-handed.
Now assume two-weapon fighting is turned on when the first (regular) attack is made. The main hand attacks, the off-hand attacks, the combatant drops all weapons so that all hands are free, then draws a great-sword (two handed). If the base attack bonus is high enough for iterative attacks can the combatant make a second “main hand” attack even though the off-hand attack was used (assuming no improved or greater two-weapon fighting feats)? If the off-hand attack wasn’t used before drawing the great-sword, could the combatant then drop the great-sword, quick-draw a new weapon in the off-hand then continue with the off-hand attack?
So…not as easy as I first thought. Will take some noodling…