Repository navigation
Make passive drift work and split the meditation ceiling between users - #62
Conversation
Resonance decay and equilibrium drift were lost every tick: the per-second step (0.02/h is about 0.0000056) fell below the 0.0001 change threshold and the two-decimal rounding. ResonanceSession now carries the remainder and applies it in whole hundredths, only while the character is online. Profiles are saved when a value actually moves instead of every second. Meditation capped resonance at the circle's total stored aura, and the 1/n user split only applied within one sit, so standing up and sitting again got every sharer to the full total. The ceiling is now the sitter's share: each artifact's usable aura divided by its users in the last 7 days, summed per element. Characters already above their share keep it until decay lowers it. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info
📝 Summary
Merge Risk: ⚪ Minimal · up to
|
|
@coderabbitai review |
✅ Action performedReview finished.
|
Dev test (TFMCDev01, 2026-10-20, jar built from e504ad7)Two real-character bots (ShareA, ShareB) on an 8-pedestal ring with one cerrith artifact filled to 60. They hit orbs by aiming at the orb particles. Results are from
Drift with
No Magic warnings or errors in the log. |
Why
Players reported that resonance never seems to fall and that sharing a shrine doesn't split anything. Both are real.
Drift never applied. The tick runs once a second, so
-0.02/his a step of about 0.0000056.addResonanceignores changes below 0.0001, and values are rounded to two decimals, so every step was thrown away. On Main, characters who meditated to 100 cerrith were still at exactly 100.0 after hours online. Equilibrium drift (tranquility decay 0.03/h, passive corruption 0.05/h) had the same problem.Sharing only split one sit. Meditation capped resonance at the circle's total stored aura. The
1/nuser split applied to a single sit, and the running total reset when you stood up, so every sharer could still reach the full total by sitting again.Changes
ResonanceSessioncarries the per-second drift remainder for each element and for equilibrium, and applies it in whole hundredths. It's kept in memory only, so drift runs while the character is online and offline time doesn't count. At current rates, -0.02/h is 0.01 every 30 online minutes.MeditationCircle.elementPoweris gone; its three callers useMeditationSitYield.elementShare.Also ships with the next release: #61 (cast drift
mana_divisor100), already merged and already set in Main's live config.Gameplay effect
Tests
mvn verifyon Windows: everything touched passes, with 100% coverage on the changed classes. The only failures are the existing Windows-only gear-ownership and profile-case tests (POSIX fsync and case-insensitive paths); Linux CI is the authority.🤖 Generated with Claude Code