fix: leave MMOCore class skill casts alone - #37
Conversation
Subclass spells are cast from the MMOCore skill bar, not from runes. Skip them in the resonance gate (refusal, overload and rift whiffs, weapon wear) and in cast drift, so class casts behave the same with or without Magic. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
|
Navigate logical layers of code changes, visualize relationships, and explore their blast radius. No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Advanced Run ID: 📒 Files selected for processing (4)
Included review availability: This review used your included allowance. Your plan provides up to 10 included reviews per hour; 9 remain after this review. 📝 WalkthroughWalkthroughAdds a class-cast predicate and updates the cast-drift and resonance listeners to skip class casts. Tests cover predicate results and verify the listeners do not process class casts. ChangesClass cast handling
Priority: ⬇️ Low Estimated code review effort: 2 (Simple) | ~10 minutes Change: Bug fix Suggested reviewers: Merge Risk: ⚪ Minimal · up to MMOItems rune casts on the repository’s normal path remain unaffected, while MMOCore class casts are skipped as intended. No current merge-blocking risk is evident. Security Architecture ReviewSecurity architecture risk: 🔵 Low · up to The change consistently excludes class casts before rune restrictions or state changes occur. No player-controlled bypass is demonstrated. Remaining uncertainty concerns the skill types emitted by the deployed plugins and the configuration separating class and rune handlers. Retained concerns Security review detailsSecurity Blast Radius
Trust Boundaries and Controls
Resilience and Maintainability Implications
Hardening Proposals
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing Touches 💡 1📝 Generate docstrings 💡
🧪 Generate unit tests (beta)
A rabbit checks each cast with care Comment |
Summary
MMOCore subclasses (class rework, being tested on TFMCDev01) cast spells from the skill bar. Magic treated those casts like rune casts. So a class cast could be refused or whiffed when the caster held a mage weapon, it wore that weapon's durability, and it drifted the caster's resonance equilibrium.
SkillIdResolver.isClassCast(Skill): true for an MMOCoreCastableSkill.ResonanceCastListenerandCastDriftListenerreturn early for class casts.Rune casts (MMOItems abilities) are unchanged.
Resonance skill modifiers are keyed by skill handler in MythicLib, so they can't tell a rune cast from a class cast. The subclass configs handle that side: a rune spell used by a class gets its own
CLASS_<ID>MythicLib handler, and Magic'sskills.ymlbinds only the rune handler.Tests
ClassCastSkipTest: the resolver, the gate (no cancel, no weapon lookup, no whiff) and drift (equilibrium unchanged) for class casts.mvn verifypasses, and coverage stays at 100% line/branch/instruction.magic-DEV-classcast-20260930.jar(0.4.7 plus this change).magic-0.4.7.jaris backed up in~/dev-jar-backup/.🤖 Generated with Claude Code
Summary by CodeRabbit