Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 10 additions & 3 deletions projects/Magic/docs/SYSTEM.md
Original file line number Diff line number Diff line change
Expand Up @@ -67,13 +67,13 @@ Single axis from **-100** (corruption) to **+100** (tranquility). Stored as `dou
| `0` | Stable (no passive drift) |
| `> 0` | Linear decay toward `0` (`tranquility_decay_per_hour`); stops at `0` |

Config rates are **per hour**; `MagicTickService` applies `rate / 3600` each second.
Config rates are **per hour**; `MagicTickService` applies `rate / 3600` each second. Values keep two decimals, so each character's session carries the per-second remainder and applies it in whole hundredths (0.03/h moves 0.01 every 20 minutes). Drift only runs while the character is online; offline time does not count.

The character head shows **Corruption** or **Tranquility** (colored label) plus bar and absolute magnitude, live drift spell percents when not zero, and previews at 60 corruption and 100 tranquility.

Element resonance values are also `double` (default `0.0`, max `100.0` per element).

Each element has a passive drift rate in **per hour** (`resonance.decay_per_hour` in `config.yml`, optional `decay_per_hour` override per element). Negative declines resonance; positive gains it. The element icon lore shows the bar plus a drift line (`-0.02/h`, same style as equilibrium), live combined mana/damage/cooldown percents, and an At 100 resonance preview.
Each element has a passive drift rate in **per hour** (`resonance.decay_per_hour` in `config.yml`, optional `decay_per_hour` override per element). Negative declines resonance; positive gains it. Like equilibrium, it is applied in whole hundredths while the character is online (-0.02/h is 0.01 every 30 minutes), and the profile is saved when the value moves. The element icon lore shows the bar plus a drift line (`-0.02/h`, same style as equilibrium), live combined mana/damage/cooldown percents, and an At 100 resonance preview.

Bound skills in `skills.yml` get MythicLib RELATIVE skill modifiers (`mana`, `cooldown`, `damage`) synced from the Resonance session so mana and cooldown checks match GUI Now.

Expand All @@ -88,7 +88,14 @@ Sit with GSit on the circle center (must be in a vehicle). Eight InteractibleFur

No chat or action bar. A white starter orb appears in front of you; left-click hitscan (VehicleFramework-style) begins the orbit field. White orbs are Flow, red are Surge. Mix follows Equilibrium (`whiteChance = 0.5 * (1 + eq/max)`). Hitting red starts a 10s all-Surge lock; another red hit refreshes it.

Each hit costs 1 Focus (RPCharacters, character-keyed). Flow nudges Equilibrium up; Surge nudges it down. Resonance toward cap `sum(element power on sockets) / 8`. Charged artifacts supply usable aura, adjusted by their care state. Empty artifacts do not start a session; missing furniture means no session.
Each hit costs 1 Focus (RPCharacters, character-keyed). Flow nudges Equilibrium up; Surge nudges it down. Charged artifacts supply usable aura, adjusted by their care state. Empty artifacts do not start a session; missing furniture means no session.

Artifacts are shared. Each artifact records the characters that meditated with it in the last `attunement.users.ttl_days` (7). With `n` such users:

- A hit gives `resonance_per_hit / n`, and one sit draws at most `usable aura / n` from each artifact.
- Meditation cannot raise an element above the sitter's **share**: every artifact on the ring adds its usable aura in that element divided by its own `n`. Two characters sharing a 100-aura artifact top out at 50 each; adding a second 100-aura artifact of that element raises both to 100.
- The share is taken when the sit starts. Standing up and sitting again gains nothing past it, and a sit at or above the share shows `meditation.nothing`.
- Nobody loses resonance when someone joins. A character already above their share keeps it until decay brings it down, but cannot gain more there.

## Persistence (MagicProfile)

Expand Down
5 changes: 4 additions & 1 deletion projects/Magic/docs/TEST_MATRIX.md
Original file line number Diff line number Diff line change
Expand Up @@ -175,7 +175,7 @@ Empty generated items have cap PDC but `hasStoredAura` is false until shrine cha
- [ ] Hit starter: pedestals flash, orbs orbit
- [ ] White hits raise Equilibrium; red lower it and lock; another red refreshes lock
- [ ] Corrupted Equilibrium: mostly red orbs
- [ ] Charged generated artifact on a pedestal: that element's resonance rises toward `fill / 8`
- [ ] Charged generated artifact on a pedestal: that element's resonance rises toward the artifact's usable fill (one user)
- [ ] Each hit spends 1 Focus; 0 Focus does nothing
- [ ] Research experiment spends the same Focus bar (character-keyed)

Expand Down Expand Up @@ -233,8 +233,11 @@ Empty generated items have cap PDC but `hasStoredAura` is false until shrine cha
- [ ] Hold in hotbar: no hand jitter; no `Users` line; lore `%` / aura amount only when the formatted number changes
- [ ] Click or shift-click into a chest: last_tick stamps; chest time does not include pocket time; no chat
- [ ] Two characters sit the same artifact within 7 days: second sit is `1/n` yield; first character's resonance is unchanged
- [ ] With two users on one 60-fill artifact, the second character stops at 30; at 35 the sit shows `meditation.nothing`
- [ ] Standing up and sitting again gains nothing past the share; the first character (above 30) keeps its resonance
- [ ] After user TTL: one user again, full yield
- [ ] Character resonance only moves from meditation, `/magic resonance`, and element `decay_per_hour`
- [ ] Real clock (`seconds_per_hour: 3600`): -0.02/h lowers resonance by 0.01 after 30 online minutes; tranquility 0.03/h falls 0.01 every 20 minutes; nothing changes while offline
- [ ] `aura_decay_per_hour` (`-0.05`/h on every element): fill drops; recovering muffle does not restore it