feat(healer): vitality healing, spell slot mutex, dead detection#7330
Open
MahtraDR wants to merge 14 commits intoelanthia-online:mainfrom
Open
feat(healer): vitality healing, spell slot mutex, dead detection#7330MahtraDR wants to merge 14 commits intoelanthia-online:mainfrom
MahtraDR wants to merge 14 commits intoelanthia-online:mainfrom
Conversation
…etection Complete rewrite of the healer script with parallel patient processing, non-blocking spell slot state machines for FP/CD/VH, dead patient detection, parasite tending, and comprehensive test coverage. New features: - Vitality Healing via VH spell (non-blocking state machine) - Spell slot mutex: FP/CD/VH block each other, wounds interleave freely - Dead patient detection (checks HealthResult.dead, whispers to get cleric) - Parasite/leech tending from perceive_health parasites - Link Unity validation at startup (fail-fast) - VH waggle_set validation with example YAML on missing config - Touch-based vitality check after wounds clear - Self-vit floor (60%) safety net for vit transfers - Spell slot timeout (45s) prevents permanent lock - Friends-only filtering, moongate/arrival/gesture triggers - Passive self-healing via Heal/Regenerate (30s max wait) - Familiar window logging, scholarship teaching 65 RSpec examples covering queue management, spell slot mutex, dead detection, trigger patterns, parasites, vitality state machine, affliction processing, health checks, and timeout behavior. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…ty fix - Add DownstreamHook line monitor so arrival/whisper/gesture triggers are never consumed by blocking bput/fput calls during patient processing - Defer teaching to heal_patient via needs_teach flag (hooks can't fput) - scan_room_for_patients at startup catches pre-existing room occupants - Remove early VH claim -- wounds always healed before vitality (bleeding causes vit loss, so stopping the bleed is higher priority) - Add emergency fall safety (break all links if vitality < 30%) - Add dead patient blocking heal (massive wounds via basic empathic link) - Add spell_conflict? helper, case-insensitive spell slot matching - Fix patient_ready? returning true for unknown patients Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
healer.licwith parallel patient processing and non-blocking spell slot state machinesbput/fputcalls during patient processingvhwaggle_set), with prep-first approach and reactive VH castingissue_command-- hard exit if not availablevhwaggle_set is missingArchitecture
The hook fires for every game line before it reaches the script buffer. Blocking operations in
process_queue(bput,perceive_health_other,wait_for_passive_healing) consume lines from the buffer but can never consume trigger lines because the hook already processed them.Settings
Test plan
🤖 Generated with Claude Code