RINGSLINGER

RingSlinger — Game Mechanics

(Paste contents into the "Game Mechanics" tab. Numbers are v1 targets — to be tuned in playtesting. Ring interactions live in the matrix tab, not here.)


1. Slinger Stats (base)

Stat Base Cap Source of growth
HP 100 999 Heartstone (+50 ea, stackable); Bloom blend; level-up
Mana 50 500 Ether-family rings; Mana Pool blend
Move speed 100 200 (≈2× base) Speed ring; Wind ring (+10% ea)
XP-gain rate 1.0× 3.0× Luck ring (+25% ea, mult)
Pickup radius 1 tile 6 tiles Magnet ring (+1 ea); Beacon glyph (×2)
Crit chance 5% 75% Luck ring (+5%); Lucky blends
Crit damage 150% 400% Power ring; Glass Cannon combo

2. Damage Model

final_dmg = base_dmg
          × (1 + power_mods)
          × (1 + element_resist_neg)
          × crit_multiplier
          × stance_modifier
          × realm_affinity
  • power_mods — sum of all Power-related modifiers from rings, blends, gems.
  • element_resist_neg — many denizens resist some element by -25% to -75%.
  • crit_multiplier — 1.0 normally; rolls vs. crit_chance.
  • stance_modifier — see §6.
  • realm_affinity — Fire rings hit harder in Lava-realm, weaker in

Tidewater (±15%).

3. Ring Trigger Cadence

Each ring fires on its own internal heartbeat:

Ring class Base cadence (sec) Notes
Elementals 1.2 Some blends shorten this.
Esoteric 2.0 Heavier effects, longer wind-up.
Mechanical (projectile/sword) 0.9 Faster — the workhorse.
Mechanical (shield/reflect) passive Always-on.
Stat rings passive Buff aura, no trigger.

Cadence is multiplied by 1 / (1 + speed_mods).

4. Knuckle Layout & Fill Rules

Each hand has 12 wearable knuckles in a uniform 4 × 3 grid (four fingers, three knuckles each), plus 2 thumb slots for glyph rings. Visual (palm facing the player, left hand shown):

              ╔═══╗ ╔═══╗ ╔═══╗ ╔═══╗
              ║I-3║ ║M-3║ ║R-3║ ║P-3║       ← row 3 (distal tips)
              ╠═══╣ ╠═══╣ ╠═══╣ ╠═══╣
   ╔═══╗      ║I-2║ ║M-2║ ║R-2║ ║P-2║       ← row 2
   ║T-2║      ╠═══╣ ╠═══╣ ╠═══╣ ╠═══╣
   ╠═══╣      ║I-1║ ║M-1║ ║R-1║ ║P-1║       ← row 1 (palm-most, fills first)
   ║T-1║      ╚═══╝ ╚═══╝ ╚═══╝ ╚═══╝
   ╚═══╝
  thumb       index    middle   ring   pinky

Settling rule:

  • A ring placed on a finger sets on the lowest empty knuckle of that

finger — they settle toward the palm.

  • **Row N+1 will not accept a ring on any finger until row N is full

across all four fingers** of that hand.

  • Thumbs are independent — they accept glyph rings only, no settling

order with the other fingers (but T1 fills before T2).

Adjacency definitions (no-stance baseline):

  • Horizontal: two rings on the same row and adjacent fingers.
  • Vertical: two rings on the same finger and adjacent knuckles.
  • Diagonal: two rings on adjacent fingers and adjacent rows

(off by exactly 1 in both dimensions).

  • The thumbs share a vertical-only adjacency with each other (T1 ↔ T2).

5. Cross-Hand Effects

Hands are independent by default — left-hand rings do not interact with right-hand rings. Exceptions:

  • 🔗 Tether (thumb glyph): when worn on both thumbs, thumb glyphs

apply to both hands.

  • 🪞 Mirror (thumb glyph): duplicates the other hand's rings for 5s

every 30s.

  • 💗 Heart Hands stance: temporarily merges both hands into one

twenty-eight-slot lattice where all original adjacencies still apply AND new cross-hand horizontal edges count.

6. Stances ("Paradigms")

Stance H mult V mult D mult Special
Splayed (default) 1.0× 1.0× 1.0×
Balled Fist 0.5× 2.0× 1.0× Knuckles touch; +25% melee dmg
Finger Guns 1.0× Only index column fires, ×3 rate
Slapping Hands 1.5× 0.5× 1.0× All rings AoE-tagged; -range
Heart Hands 1.0× 1.0× 1.5× Cross-hand adjacencies count
Snap 1.0× 1.0× 1.0× All rings cast simultaneously every 2s
Pinkie Promise 1.0× 1.0× 1.0× Pinky column +100%; others -20%
Crossed 0.5× 0.5× 2.0× Diagonals dominate
Open Palm 1.0× 1.0× 1.0× +50% Shield/Reflect efficacy
Cup 1.5× 1.5× 1.0× Both H & V buffed; pickup radius +50%

The active stance is per-hand. You can wield Balled Fist + Splayed if desired (left hand vs right). Cycle a stance by tapping the hand thumbnail in the inventory screen.

7. Paradigm Reading (radar)

The Slinger's overall power is summarised as a 6-axis radar in the inventory screen:

  • Offense — raw damage output.
  • Defense — HP, shield, DR.
  • Mobility — movement, dodge, evasion.
  • Utility — luck, magnet, time, ether, beacons.
  • Spread — AoE / chain / explosion footprint.
  • Sustain — lifesteal, regen, rewind.

Every worn ring contributes to one or more axes. The chart updates live as the player rearranges rings, giving immediate feedback.

Used for:

  • Build feedback to the player.
  • Portal requirements — realm portals demand a minimum total and

sometimes a minimum on a specific axis ("Spirit Vale requires ≥ 5 Utility").

8. Gems, Forging & Leveling

Gem tier Drop weight Levels granted
⚪ White 50% +1 to a Rank-1 ring (→ R2)
🟡 Yellow 25% +1 to a Rank-2 ring (→ R3)
🟢 Green 12% +1 to a Rank-3 ring (→ R4)
🔵 Blue 7% +1 to a Rank-4 ring (→ R5 cap)
🟣 Purple 4% Re-roll one ring to a random new type
🔴 Red 2% Gilds a ring — permanent +25% all effects

Rank multipliers: R1=1.0×, R2=1.5×, R3=2.0×, R4=2.75×, R5=4.0×.

Forge-shrines (found in some realms and hub areas) accept spare rings:

Inputs Output
3 × same ring, R1 1 × that ring at R2
5 × random rings, any rank 1 × white/yellow gem
1 × R3 ring + 1 × elemental ring 1 × named hybrid (the listed iconic blends)
Full 28-ring set + 1 × red gem a one-of-a-kind forged glyph (thumb-only)

Stacking the same ring vertically also raises its rank. Two Fires on one finger = R2; three = R3; etc. Caps at R5 regardless of source — extra copies past R5 still contribute to adjacency effects, just not to the ring's own damage scaling.

9. Denizens

  • 3 size classes: Minion (1-shot kills), Brute (5–10 hits), Elite

(boss-lite).

  • Affinities: each denizen has one primary element; resists its own

by 25% and is weak to its opposite by 25%.

  • Pacing: 1-minute waves, mid-stage encounters every 5 min, realm

boss at the end.

  • Drops: Minions drop white gems; Brutes drop yellow–green; Elites

drop blue–purple; realm bosses drop a guaranteed new ring + red gem chance.

10. Data Model (for the Xcode port)

The matrix CSVs are the canonical interaction data. Sketch of the iOS model:

enum RingID: String, Codable, CaseIterable {
    case fire, water, earth, wind, lightning, ice, light, shadow, plant, metal
    case spirit, ether, gravity, time, sound
    case projectile, sword, shield, reflect, pierce, chain, explosion, magnet
    case speed, power, delay, rewind, luck, random, vampire
}

enum RingCategory { case elemental, esoteric, mechanical, stat }

struct Ring: Identifiable, Codable {
    let id: UUID                 // instance ID
    let type: RingID
    var rank: Int                // 1...5
    var gilded: Bool             // red-gem trait
}

struct HandPosition: Hashable {  // (finger, knuckle)
    let finger: Finger           // .index/.middle/.ring/.pinky/.thumb
    let row: Int                 // 1-based, 1 = palm-most
}

struct Hand {
    var stance: Stance
    var slots: [HandPosition: Ring]
}

struct InteractionEngine {
    // Loaded from the 3 CSVs at app start
    let hMatrix: [RingID: [RingID: BlendDescriptor]]
    let vMatrix: [RingID: [RingID: SequenceDescriptor]]
    let dMatrix: [RingID: [RingID: BleedDescriptor]]

    func evaluate(hand: Hand) -> [ActiveEffect] {
        // For each ring, sum: base + H neighbors + V neighbors + D neighbors,
        // apply stance multipliers, return effects to render in combat.
    }
}

11. Save & Run Structure

  • Per-run state (procedurally generated): current realm, stage seed,

denizens defeated, gems collected, run-locked rings, fused hybrids.

  • Meta state (persistent): unlocked rings (gallery), stances learned,

lost rings collected, realms cleared, cosmetics owned.

  • Auto-save every minute; manual save between realms.

12. Controls (iOS)

  • Left thumb: virtual joystick (or tap-to-move in settings).
  • Right thumb: stance cycle (long press) / dash (tap, with cooldown).
  • Pause: top-right button.
  • Inventory: swipe up from bottom OR pause and tap.
  • All rings auto-fire — no manual aim. (Future: manual aim mode for

hardcore players.)