Update 2.35
6/9/2026
v2.35.0BETA
Seymour
Monster AI Editor: behaviour Presets (#10) + a proven "below N" condition (#11) + documented #12/#13 frontiers
- Closes what can be closed honestly from the "do it all" backlog. #10 — 🎭 1-click Presets (compose the ALREADY-proven automations, auto-pick the combat worker + validated grow): 🛡 Defensive (Protect+Haste on self), ⚔ Aggressive (force the picker's ability, always), 🔥 Enrage (picker's ability + Haste on self), 🎲 Alternate (picker's ability 1-in-2). #11 — "below N" condition: a new guarded Behavior-Library snippet
If chr property (self) BELOW N → force command= the corpus' #1 condition idiom (readChrProperty0x700F feeds 980 branches;LT 0x0Bcomparison proven in the census), withfield+threshold+commanduser-supplied — honest: the exact HP field-id is NOT byte-proven (use the proven status fields 0x38/0x31/0x32; HP = an RE frontier), so it's generic, not an "HP%" button that guesses. #12 (turn N) and #13 (test live) = documented as frontier (there is no native turn getter — it's a per-monster priv-var counter, and the RNG 1-in-K proxy already ships; live only covers length-preserving edits, a grow needs a game reload) in the v2.33.0 doc. Logic:AiSnippetLibrary(snippetguard-chrprop-lt-force-cmd) + presets in the DataModel (ApplyPreset*, composingAddAbility/AddSelfBuff). Gate--ai2: conditional snippet 346/346 (expands, grows the jump-table, re-parses, validates);--ai3PASS. Build 0 errors. Honest: structure proven offline; readChrProperty's arity + in-game effect = RT2
v2.34.0