summaryrefslogtreecommitdiff
path: root/rules.js
AgeCommit message (Collapse)Author
2024-01-18Memoize (successful) supply searches.Tor Andersson
Use the hex number AND the pathing state for the memo cache. NOTE: Unsuccessful searches cannot be memoized, because we may be approaching the hex in the opposite direction of supply. Since the search never backtracks we would record an (incorrectly) negative result. TODO: direction of approach and "supply_visit" is also part of state that should be part of the memo key for accuracy.
2024-01-04More optimizations.Tor Andersson
2024-01-03Fix supply search optimization.Tor Andersson
2023-12-24Automatic resign menu.Tor Andersson
2023-12-06Rewrite supply tracing code.Tor Andersson
Two passes. First a quick breadth first forward scan to find hexes that can be reached from the supply source at all. Second an exhaustive recursive search from each unit to find the actual used supply lines and hexes. This uses the results from the first search to quickly prune impossible paths. This also fixes a bug where some supply chains from highways via mixed highway, track, and trail to another bit of highway were missed.
2023-12-06Add timeout so as not to hang other games when supply calculations overrun.Tor Andersson
2023-09-09Add end game supply check to eliminate unsupplied units after last month.Tor Andersson
2023-08-12Allow dismantling a single minefield without placing a new one.Tor Andersson
2023-08-11Allow dismantling revealed minefields.Tor Andersson
2023-07-19Fix typo in combat matrix Inf vs AT.Tor Andersson
2023-07-13Optimize own supply line search.Tor Andersson
2023-07-05Check withdrawal using own supply lines only!Tor Andersson
... and more burned CPU cycles.
2023-07-05Zap is_checkpoint.Tor Andersson
2023-03-09Allow backtracking from supply chains!Tor Andersson
A supply chain can backtrack over another supply chain. Example: Axis Unit A is in supply in Skeleidima. It can trace supply via Ghemines. It can also trace supply via Msus/Antelat/Agedabia. Axis Unit B in Mechili SW can trace a line to A in Skeleidima. This line overlaps with the Skeleidima/Msus/Antelat line, and our "don't backtrack" code would either prevent one of these lines from forming. Track the "visit depth" instead of a boolean, and increase the depth every time we start a new supply line. Allow re-visits of a hex unless it's been visited before during this depth, or unless it is the head of a supply line.
2023-03-03Withdraw moves must follow own supply lines.Tor Andersson
Search through supply net for own lines when doing withdrawal moves.
2023-03-03Fix 1942 setup.Tor Andersson
2023-03-03Add explicit button for Return for Refit.Tor Andersson
An option well as the hex.
2023-02-05Handle new debug mode in is_checkpoint.Tor Andersson
2023-01-03Fix victory!Tor Andersson
2022-12-31Units assigned fortress supply MUST withdraw using fortress supply.Tor Andersson
... so don't skip calculating the withdrawal fortress supply lines even if the fortress is not isolated anymore.
2022-12-26Forbid entering own map edge hexes.Tor Andersson
2022-12-26Follow 2004 edition map layout more strictly.Tor Andersson
Don't show hexsides for out-of-play hexes. Add west exit area for allied player. Remove new edition marsh.
2022-11-27Check validity of mandatory pass group moves.Tor Andersson
2022-11-17Fix "1942" setup.Tor Andersson
2022-11-17Use correct port capacity during redeployment.Tor Andersson
2022-11-17Drop the turn info row in the sidebar.Tor Andersson
Show card commitment in player rows as commitment + hand size.
2022-11-17Check available money for building minefields.Tor Andersson
2022-11-17Verify group and regroup options as valid retreat hexes.Tor Andersson
The pass turn option already has strict checks. Add similar disengagement hexside checks when listing valid group and regroup moves.
2022-11-17Fix hexside disengagement checks.Tor Andersson
Check that a hexside is passable before counting it as a retreat option.
2022-11-17Don't allow "end turn" during pass moves if there are mandatory battles.Tor Andersson
2022-11-17Fix bug with selecting units for Regroup Move 2.Tor Andersson
2022-11-17Show control in hex tooltips.Tor Andersson
2022-11-17Exception: Fortress battles are not mandatory during blitz combat.Tor Andersson
2022-11-17Skip pursuit fire during rout if possible.Tor Andersson
2022-11-17Allow disrupted units to co-exist without creating a battle hex.Tor Andersson
Don't create an engagement when retreating. Fix supply lines in co-exist hexes. Fix supply lines in former co-exist hexes when one side recovers.
2022-11-17Track fortress recapture and cancel bonus supply.Tor Andersson
2022-11-17Don't skip mandatory combat rout check when ending turn early!Tor Andersson
2022-11-17Simplify checkpointing logic.Tor Andersson
2022-11-17Update common functions from utility library.Tor Andersson
2022-11-17Confirm before ending movement phase if unused moves remain.Tor Andersson
2022-11-17Remove some debug tracing.Tor Andersson
2022-11-17Fix state collision in end_oasis_supply.Tor Andersson
2022-11-17Merge engage_via and forced_march_via states.Tor Andersson
2022-11-17Fix fortress supply tracing.Tor Andersson
2022-11-17Don't pursuit fire from retreat if all are slower.Tor Andersson
During retreats from battle hexes, enemy units are all revealed.
2022-11-17Fix retreat forced march and engaging state change back to retreat move.Tor Andersson
2022-11-17Log step losses and elimination during rout attrition.Tor Andersson
2022-11-17Tweak Refuse Battle prompts.Tor Andersson
2022-11-17Add confirmation steps to refuse battle and pass turn retreats.Tor Andersson
Improve prompts.
2022-11-17Group dice when firing double/quadruple during assault/fortress defense.Tor Andersson