a327ex.com

EBB Status Effect System Design

Summary

Designed a comprehensive status effect system for Emoji Ball Battles, defining 11 distinct effects with unique mechanics, stack behaviors, and scaling paths. Also created 65+ items that interact with these effects.

Todo System Setup:

Status Effect Research Phase:

Status Effect Definitions:

Stasis was skipped - user opted not to include it

Balancing Framework:

Class Ideas Added to Todo:

65 Status Effect Items Designed:


This is an Emoji Ball Battles session. We'll start with the implementation of the new weapons. However, before that, I'd like to solidify a part of the game's design that was previously undefined. First, create a todo.md file in the same folder as main.yue. Then, add a line to this file that says that the list elements in the file are ordered by priority, top ones are higher priority, lower ones are lower priority (say this in a more organized/concise way).

I'll create the todo.md file in the emoji-ball-battles folder.

Write (E:\a327ex\emoji-ball-battles\todo.md)

<tool_use_error>File has not been read yet. Read it first before writing to it.</tool_use_error>

Bash (touch "E:/a327ex/emoji-ball-battles/todo.md")

Read (E:\a327ex\emoji-ball-battles\todo.md)

1→# TODO
     2→
     3→## Background/Foreground Depth System
     4→
     5→### Background Layer (Sky)
     6→- Blue sky-like background color
     7→- Clouds moving through slowly, barely visible (very low alpha ~0.1-0.2)
     8→- Sun emoji with gradient light effect
     9→  - Simplest approach: draw a large, very low-alpha yellow circle behind the sun emoji
    10→- Everything should be very subtle and not distracting
    11→
    12→### Parallax
    13→- Background layer should parallax strongly as camera moves from handcam + shakes
    14→- Depends on 1.17 Camera Integration being implemented first
    15→
    16→### Front Layer Effect
    17→- Something in the front layer that also parallaxes strongly (opposite direction to background)
    18→- Creates a 3D depth effect to the screen
    19→- Ideas:
    20→  - Floating dust motes or pollen particles (tiny circles, slow drift)
    21→  - Bokeh circles (out-of-focus light spots, gives a "camera lens" feel)
    22→  - Falling petals or leaves (fits with the plants already in the arena)
    23→  - Subtle lens dirt/scratches (static but parallaxes)
    24→
    25→## Ball Death Animation
    26→
    27→When a ball dies:
    28→1. Ball scales up and moves forward (toward the screen)
    29→2. Continues until it "hits" the screen
    30→3. Glass breaking effect plays
... [3 more lines]

The file already exists with content. I'll add the priority ordering note at the top.

Edit (E:\a327ex\emoji-ball-battles\todo.md)

The file E:\a327ex\emoji-ball-battles\todo.md has been updated successfully.

Done. Added the priority note to todo.md.

Now let me read the acquaintance files for this session.

Read (E:\a327ex\website\notes\Anchor Engine Overview.md)

<tool_use_error>File does not exist.</tool_use_error>

Read (E:\a327ex\emoji-ball-battles\docs\FRAMEWORK_API_QUICK.md)

<tool_use_error>Sibling tool call errored</tool_use_error>

Read (E:\a327ex\emoji-ball-battles\main.yue)

<tool_use_error>Sibling tool call errored</tool_use_error>

Glob (/emoji-ball-battles//main.yue)

E:\a327ex\emoji-ball-battles\main.yue

Read (E:\a327ex\anchor.blot.im\notes\Anchor Engine Overview.md)

1→Generated by Claude (Opus 4.5)
     2→
     3→---
     4→
     5→# Anchor Engine Overview
     6→
     7→Anchor is a 2D game engine for solo indie developers. It combines a C core with YueScript (a language that compiles to Lua) for game logic. The engine handles rendering, physics, audio, and input while the framework provides high-level abstractions for building games quickly.
     8→
     9→---
    10→
    11→## Core Philosophy
    12→
    13→**Locality** — Everything about a game object lives in one place. No scattered configuration files, no registering components in separate systems. A class definition contains its properties, behaviors, children, and cleanup logic together.
    14→
    15→**No bureaucracy** — No imports, no dependency injection, no boilerplate. Resources are registered once and accessed globally. Things work without setup.
    16→
    17→**YueScript** — A clean syntax that compiles to Lua. Classes, `@` for self-reference, significant whitespace, operator overloading. Pleasant to read and write.
    18→
    19→---
    20→
    21→## Architecture
    22→
    23→```
    24→┌─────────────────────────────────────────┐
    25→│  Game Code (YueScript)                  │
    26→│  - Your game objects and logic          │
    27→├─────────────────────────────────────────┤
    28→│  Framework (YueScript)                  │
    29→│  - object, layer, timer, collider, etc. │
    30→├─────────────────────────────────────────┤
... [601 more lines]

Read (E:\a327ex\emoji-ball-battles\docs\FRAMEWORK_API_QUICK.md)

1→# Framework API Quick Reference
     2→
     3→Function signatures for YueScript framework classes. See `FRAMEWORK_API.md` for detailed documentation with examples.
     4→
     5→## Initialization
     6→
     7→```
     8→require('anchor')
     9→  width: 640        -- game resolution width (default: 480)
    10→  height: 360       -- game resolution height (default: 270)
    11→  title: "My Game"  -- window title (default: "Anchor")
    12→  scale: 2          -- initial window scale (default: 3)
    13→  vsync: true       -- vertical sync (default: true)
    14→  fullscreen: false -- start fullscreen (default: false)
    15→  resizable: true   -- window resizable (default: true)
    16→  filter: "rough"   -- "rough" or "smooth" (default: "rough")
    17→```
    18→
    19→## Root Object (an)
    20→
    21→### Engine State (Static)
    22→```
    23→an.width -> int           -- game resolution width
    24→an.height -> int          -- game resolution height
    25→an.dt -> number           -- fixed delta time (1/120)
    26→an.platform -> string     -- "web" or "windows"
    27→```
    28→
    29→### Engine State (Dynamic - updated every frame)
    30→```
... [622 more lines]

Read (E:\a327ex\emoji-ball-battles\main.yue)

File content (29862 tokens) exceeds maximum allowed tokens (25000). Please use offset and limit parameters to read specific portions of the file, or use the GrepTool to search for specific content.

Let me read main.yue in portions.

Read (E:\a327ex\emoji-ball-battles\main.yue)

1→global *
     2→
     3→require('anchor')
     4→  width: 480
     5→  height: 270
     6→  scale: 3
     7→
     8→-- Game dimensions
     9→gw, gh = an.width, an.height
    10→
    11→-- Twitter emoji color palette
    12→white = color 255, 255, 255
    13→black = color 0, 0, 0
    14→gray = color 128, 128, 128
    15→bg_color = color 48, 49, 50
    16→fg = color 231, 232, 233
    17→fg_dark = color 201, 202, 203
    18→yellow = color 253, 205, 86
    19→star_yellow = color 255, 172, 51
    20→orange = color 244, 146, 0
    21→blue = color 83, 175, 239
    22→green = color 122, 179, 87
    23→red = color 223, 37, 64
    24→purple = color 172, 144, 216
    25→brown = color 195, 105, 77
    26→wall_color = fg\clone!\mix yellow, 0.1
    27→
    28→-- Sky colors (subtle blue gradient)
    29→sky_top = color 135, 206, 235     -- light sky blue
    30→sky_bottom = color 231, 232, 233  -- same as fg (off-white)
... [1470 more lines]

Let me continue reading the rest of the file.

Read (E:\a327ex\emoji-ball-battles\main.yue)

1500→class weapon_ui extends object
  1501→  new: (@team, weapon_type) =>
  1502→    super 'weapon_ui'
  1503→    @weapon_type = weapon_type
  1504→
  1505→    -- Emoji properties
  1506→    @emoji_x = if @team == 'player' then 59 else 421
  1507→    @emoji_y = 60
  1508→    @emoji_image = if @team == 'player' then an.images.cowboy else an.images.no_mouth
  1509→    @emoji_hit_image = if @team == 'player' then an.images.cowboy_hit else an.images.no_mouth_hit
  1510→    @emoji_scale = 20/512
  1511→    @emoji_scale *= 1.1 if @team == 'player'
  1512→    @showing_hit = false
  1513→    @emoji_oy = 0
  1514→
  1515→    -- Weapon properties
  1516→    @weapon_x = if @team == 'player' then 91 else 389
  1517→    @weapon_y = 60
  1518→    @weapon_image = if weapon_type == 'gun' then an.images.gun else an.images.dagger
  1519→    @weapon_scale = 20/512
  1520→    @weapon_flip_x = if @team == 'player' then -1 else 1
  1521→
  1522→    -- Board properties
  1523→    -- @board_y = 102
  1524→    -- @board_scale = 102/512
  1525→
  1526→    -- Text properties
  1527→    @text_x = if @team == 'player' then 65 else 400
  1528→    @text_y = 92
  1529→    @text_oy = 0
... [651 more lines]

I've read through the codebase. I now have a good understanding of:

The todo.md file now has the existing depth system and death animation ideas, plus the priority note. What design aspect would you like to solidify before we get into the new weapons?

You can remove the contents of todo.md that were previously there.

Edit (E:\a327ex\emoji-ball-battles\todo.md)

The file E:\a327ex\emoji-ball-battles\todo.md has been updated successfully.

Done. The todo.md is now clean with just the header and priority note.

This file will contain multiple items, always with "- " first, and each item should be a self-contained task that can be done. An item may have subsections, also started with "- ", but indented inside the parent task. However, this should be avoided as much as possible, there should be a preference towards a flat list of independent tasks instead of a tree of tasks, even if the independent tasks are related to the same idea/larger feature. Tasks will be added to the file, and then I'll periodically reorder tasks such that the most important tasks to be done are always at the top. As we make the further, this will contain more and more tasks. However, this is not what we'll use to primarily implement features, that will always be on the implementation plans we generate. This file is more for ideas I have that eventually need to be added but that won't be added right now for whatever reason. Please add the relevant portions of this, in your own words, as it relates to how future instances will interact with the file, to the top of the file as well.

Edit (E:\a327ex\emoji-ball-battles\todo.md)

The file E:\a327ex\emoji-ball-battles\todo.md has been updated successfully.

Done. The file now explains that it's for tracking future ideas rather than active implementation, prefers flat independent tasks, and notes that implementation plans are used separately.

OK, now I'm going to describe you how the game's status effect system will work, and you will decompose it into tasks to add in the file. Each status effect is a "line" that appears on top of the emoji containing a letter and a number. The letter identifies the effect, the number identifies how many stacks the effect has. So P 1 would be 1 stack of poison. B 2, 2 stacks of burn. S 3, 3 stacks of stun. F 1, 1 stack of freeze. K 3, 3 stacks of knockback, etc. We will define all the individual status effects later. As status effects are consumed, they do their relevant effect. Once no more stacks for a given status effect is present, the line disappears. The letters and numbers will use the emoji assets for both letters and numbers, with the recoloring shader applied, a different color for each different status effect. Do not list all the status effects now, we will do that later.

Edit (E:\a327ex\emoji-ball-battles\todo.md)

The file E:\a327ex\emoji-ball-battles\todo.md has been updated successfully.

Perfect, now research across all these games for their status effects. Path of Exile, League of Legends, DoTA 2, Risk of Rain 2, Isaac, Hades, Deadlock, Artifact, Slay the Spire, Tree of Savior. The goal is capturing all status effects that exist, and compiling them into a table describing the basics of how they work. Where they're similar between games, collapse them into a single thing. Where they have differences, i.e. Burn in RoR2 is different from Burn in Path of Exile, create multiple lines in the table for the same effect. Take your time and be thorough in your research.

I'll research status effects across all these games. Let me search for each one systematically.

WebSearch (League of Legends status effects crowd control types list)

Web search results for query: "League of Legends status effects crowd control types list"

Links: [{"title":"Types of Crowd Control | League of Legends Wiki","url":"https://wiki.leagueoflegends.com/en-us/Types_of_Crowd_Control"},{"title":"Crowd control | League of Legends Wiki","url":"https://wiki.leagueoflegends.com/en-us/Crowd_control"},{"title":"Types of Crowd Control/Summary | League of Legends Wiki","url":"https://wiki.leagueoflegends.com/en-us/Types_of_Crowd_Control/Summary"},{"title":"Types of Crowd Control | League of Legends Wiki - Fandom","url":"https://leagueoflegends.fandom.com/wiki/Types_of_Crowd_Control"},{"title":"Crowd Control: What do all the CC statuses do in League of Legends","url":"https://www.strafe.com/news/read/what-do-all-cc-statuses-in-league-of-legends-do/"},{"title":"Crowd control in League of Legends: All types and effects","url":"https://dotesports.com/league-of-legends/news/crowd-control-in-league-of-legends-all-types-and-effects"},{"title":"Types of Crowd Control - WR | League of Legends Wiki","url":"https://wiki.leagueoflegends.com/en-us/WR:Types_of_Crowd_Control"},{"title":"Every Crowd Control in League of Legends and How to Counter Them - League of Legends Tracker","url":"https://tracker.gg/lol/articles/every-crowd-controls-in-lol-and-how-to-counter-them"},{"title":"Combat status | League of Legends Wiki","url":"https://wiki.leagueoflegends.com/en-us/Combat_status"},{"title":"Crowd control | League of Legends Wiki - Fandom","url":"https://leagueoflegends.fandom.com/wiki/Crowd_control"}]

Here's a comprehensive overview of the crowd control (CC) types in League of Legends:

## Overview

Crowd control (commonly shortened to CC) is a blanket term used in League of Legends to describe abilities or spells that remove or diminish the control a target unit has over aspects of itself, including being able to cast spells and issue movement or attack commands.(no content)There are 23 different types of Crowd Control (CC) in the game.

## Main Crowd Control Types

### Airborne Effects
A unit that is airborne is unable to move, attack, cast abilities, or use item actives for the duration. Subtypes include:

- **Knock aside**: Causes the unit to be made airborne perpendicular to the direction of cast
- **Knock back**: Causes the unit to be made airborne away from the point of cast
- **Knock up**: Causes the unit to be made airborne on the spot
- **Pull**: Causes the unit to be made airborne towards the point of cast

### Forced Action Effects
There are four types of Forced Action crowd control effects:

- **Berserk**: A berserk unit will attempt to attack a nearby unit regardless of ally/enemy status
- **Charm**: A charmed unit is forced to move towards the source of the charm with reduced movement speed
- **Flee**: A fleeing unit will move directly away from the source with reduced movement speed
- **Taunt**: A taunted unit will attempt to attack the source

### Other CC Types

- **Blind**: A unit that is blinded will miss its basic attacks for the duration. Miss occurs on-hit, and does not prevent attacks from being declared.

... [32 more lines]

WebSearch (Hades status effects curses boons debuffs list)

Web search results for query: "Hades status effects curses boons debuffs list"

Links: [{"title":"Status effects/Hades II - Hades Wiki","url":"https://hades.fandom.com/wiki/Status_effects/Hades_II"},{"title":"Hades 2 Curses and Status Effects Explained","url":"https://mobalytics.gg/hades-2/guides/curses-and-status-effects"},{"title":"Status Effects | Hades Wiki","url":"https://hades.wiki.fextralife.com/Status+Effects"},{"title":"Hades: All Status Curses, Explained","url":"https://gamerant.com/hades-all-status-curses-explained-guide/"},{"title":"Comunidade Steam :: Guia :: Hades Boons Guide","url":"https://steamcommunity.com/sharedfiles/filedetails/?l=brazilian&id=1988497904"},{"title":"Communauté Steam :: Guide :: Hades Boons Guide","url":"https://steamcommunity.com/sharedfiles/filedetails/?l=french&id=1988497904"},{"title":"Status effects - Hades Wiki - Fandom","url":"https://hades.fandom.com/wiki/Status_effects"},{"title":"Status Effects | Hades 2 Wiki","url":"https://hades2.wiki.fextralife.com/Status+Effects"},{"title":"Steam Community :: Guide :: Hades Boons Guide","url":"https://steamcommunity.com/sharedfiles/filedetails/?id=1988497904"},{"title":"Is it me or are a lot of boons bad? :: Hades Allgemeine Diskussionen","url":"https://steamcommunity.com/app/1145360/discussions/0/2245552086113211446/?l=german"}]

Here's a comprehensive overview of status effects, curses, boons, and debuffs in Hades:

## Status Effects Overview

Status effects are conditions that impact either enemies or Zagreus, the protagonist. These effects can manifest as debuffs, which debilitate enemies in various ways, hindering their abilities or reducing their stats.(no content)Status Curses are a variety of temporary effects inflicted under certain circumstances. Each Olympian god (with the exception of Hermes) has at least one boon capable of inflicting a Status Curse on enemies.

## Punished Status

Enemies inflicted with 2 different Status Curses are Punished. Punished enemies are vulnerable to extra damage from the Privileged Status upgrade in the Mirror of Night.

## Status Curses by God

### Aphrodite - Weak
The Goddess of Love's signature curse saps an enemy's strength and reduces the strength of their hits. At its baseline, Weakened characters will deal 30% less damage for 4 seconds. Though some newer players may gravitate towards Boons that increase DPS, Weak can do wonders for Zag's survivability.

### Ares - Doom
Doom is one of the best offensive status curses available in Hades. When Zag inflicts this curse upon an enemy, they will take a burst of damage after a one-second delay. The amount of Doom damage depends on the rarity of the Boon that grants it, but usually starts at 60 and increases by 20 with each successive Rarity rank.(no content)Additional Doom boons include Dire Misfortune (allows Doom damage to stack) and Impending Doom (takes an additional +0.5 seconds to activate but deals greater damage).

### Artemis - Marked
The Goddess of the Hunt blesses Zagreus with her impeccable aim. When this curse is applied, its target has a higher chance of taking Critical damage from any attack. Once the Marked target does take Critical damage, this will remove the status curse and reapply it to a nearby foe. A Critical will deal at least 300% normal damage.

### Demeter - Chill
Arctic Blast: Once a full stack of Chill is applied to a foe, a Chilling blast occurs, clearing the effect. Winter Harvest (Legendary Boon): At 10% health, a Chilled foe will shatter and inflict Chill on nearby foes.(no content)Demeter's chill is considered the best curse for privileged status in the game, giving more utility than you might think. While getting to 10 stacks might be hard for some weapons, it is really easy for fist and gun.

### Dionysus - Hangover
The Hangover status curse causes foes to take damage every 0.5 seconds for a 4-second duration. As with other damaging status curses, the amount of Hangover damage depends on the boon's rarity; however, it is unique in that each available Boon offers a different damage range.
... [12 more lines]

WebSearch (Slay the Spire status effects debuffs buffs list complete)

Web search results for query: "Slay the Spire status effects debuffs buffs list complete"

Links: [{"title":"Debuff | Slay the Spire Wiki | Fandom","url":"https://slay-the-spire.fandom.com/wiki/Debuff"},{"title":"Buffs | Slay the Spire Wiki - Fandom","url":"https://slay-the-spire.fandom.com/wiki/Buffs"},{"title":"Debuffs - Slay the Spire Wiki","url":"https://slaythespire.wiki.gg/wiki/Debuffs"},{"title":"Buffs and debuffs :: Slay the Spire Suggestions & Ideas","url":"https://steamcommunity.com/app/646570/discussions/2/1710690018667683700/"},{"title":"Buffs - Slay the Spire Wiki","url":"https://slaythespire.wiki.gg/wiki/Buffs"},{"title":"All Debuffs in Slay the Spire | Slay the Spire Wiki","url":"https://www.slaythespire.gg/debuffs"},{"title":"Status | Slay the Spire Wiki | Fandom","url":"https://slay-the-spire.fandom.com/wiki/Status"},{"title":"Category:Debuffs | Slay the Spire Wiki | Fandom","url":"https://slay-the-spire.fandom.com/wiki/Category:Debuffs"},{"title":"Slay the Spire - Wikipedia","url":"https://en.wikipedia.org/wiki/Slay_the_Spire"},{"title":"Slay the Spire/Term - NamuWiki","url":"https://en.namu.wiki/w/Slay%20the%20Spire/%EC%9A%A9%EC%96%B4"}]

Here's what I found about Slay the Spire status effects, debuffs, and buffs:

## Debuffs

A debuff is a negative ongoing effect given to the character or an enemy by certain Cards, Relics, or Potions.(no content)Debuffs can be negated by the Artifact buff, and Orange Pellets will remove all debuffs on the character if the player successfully plays an Attack, Skill, and Power in the same turn.

### Debuff Types:
**Intensity Debuffs** are more effective depending on how many stacks you have. These debuffs are typically either permanent for the combat encounter or consumed on the following turn.(no content)**Duration Debuffs** last for as many turns as you have stacks of the debuff.(no content)**Counter Debuffs** activate when an event happens, such as playing a card.(no content)**Poison** is the ONLY debuff with both Intensity and Duration stack types.

### Common Debuffs:
Debuffs like **Vulnerable**, **Weak**, and **Frail** shape turn planning and resource use.(no content)**Weakened** - Attack damage is reduced by 25% (rounded down). Does not apply to damage other than attack cards (orbs, potions, etc.). Each time it overlaps, the duration of the turn is extended.

---

## Buffs

**Counter buffs** activate when an event happens, such as taking damage or being inflicted with a debuff. With the exception of Mantra, counter buffs lose a stack each time they activate.(no content)Buffs that do not stack are typically gained from Power cards and last the entire combat encounter.(no content)**Regen** is the ONLY buff with both Intensity and Duration stack types.

### Common Buffs:
**Strength** - Attack damage (damage given by attack cards) increases or decreases by the strength value. It lasts until the battle ends. The maximum obtainable value is 999.(no content)**Artifact** - When receiving harmful effects, artifacts invalidate the effect.

---

## Status Cards

Statuses are negative cards that are shuffled into your deck during combat. Unlike Curses, they will be removed at the end of combat. Most statuses are Unplayable (with the exception of Slimed), and some impose additional negative effects. They cannot be upgraded, with the exception of Burn.
... [11 more lines]

Let me get more detailed information on specific effects.

WebFetch (https://hades.fandom.com/wiki/Status_effects)

# Status Effects in Hades

## Buffs

**Increased Damage** - Gained through Boons, Daedalus Hammer upgrades, weapon aspects, and Mirror of Night abilities. Different damage types (Attack, Special, Cast, etc.) can be affected independently.

**Reduced Damage** - Decreases enemy damage output via Aphrodite's Weak effects, Athena's Bronze Skin, and Dionysus's High Tolerance. "Reduced damage is multiplicative; therefore, it's impossible to have 100% damage reduction."

**Sturdy** - "You take 30% less damage and your actions aren't interrupted by taking damage." Grants visual shield indicator.

**Dodge** - Completely negates incoming damage and effects. Dodge chance is additive and can reach 100%.

**Increased Move Speed** - Multiplies movement speed, indicated by trailing effect around the character.

**Shielded** - Protective barriers that make Zagreus invulnerable while active.

## Debuffs

| Status Curse | Effect | Duration | Max Stack | Source |
|---|---|---|---|---|
| Weak | 30% reduced damage output | 4 sec | 1 | Aphrodite |
| Ruptured | Rapid damage while moving | 3 sec | ? | Poseidon |
| Hangover | Damage every 0.5 seconds | 4 sec | 5 | Dionysus |
| Marked | Higher critical damage chance | 6 sec | 1 | Artemis |
| Jolted | Next attack inflicts self-damage | 10 sec max | 1 | Zeus |
| Exposed | Increased damage from behind | 5 sec | 1 | Athena |
| Doom | Burst damage after delay | 1.1 sec | 1 | Ares |
| Chill | 4% slowdown | 8 sec | 10 | Demeter |

**Other Debuffs:**
... [4 more lines]

WebFetch (https://deadlock.wiki/Status_Effects)

# Status Effects in Deadlock

## Buffs (Positive Effects)

**Barrier**: "A temporary shield that absorbs a set amount of incoming damage before breaking."

**Fire Rate Buff**: Increases weapon firing speed temporarily.

**Health Regeneration**: "A temporary buff that restores health over time (HoT)."

**Invincibility**: "The user cannot be damaged or targeted by hostile effects for a short duration."

**Lifesteal**: Causes damage dealt to convert into healing for the attacker.

**Movement Speed Buff**: Temporarily increases how fast a character can move.

**Resistance Buff**: "A temporary buff that reduces incoming damage from a specific source."

**Spirit Power Buff**: Temporarily boosts spirit-based ability damage.

**Stealth**: "A temporary buff that renders the user invisible."

**Unstoppable**: "Grants immunity to crowd control effects like Stun, Silence, Sleep, and Immobilize."

**Weapon Damage Buff**: Temporarily increases weapon damage output.

## Debuffs (Negative Effects)

**Bleed**: Deals percentage-based damage over time.

... [31 more lines]

WebSearch (Dota 2 stun silence root disarm hex break status effects complete list wiki)

Web search results for query: "Dota 2 stun silence root disarm hex break status effects complete list wiki"

Links: [{"title":"Build Guide DOTA 2: TheSofa's Guide to Status Effects","url":"https://www.dotafire.com/dota-2/guide/thesofas-guide-to-status-effects-25916"},{"title":"Dota 2 status effects | Hawk Live","url":"https://hawk.live/posts/dota-2-status-effects"},{"title":"Disable - Liquipedia Dota 2 Wiki","url":"https://liquipedia.net/dota2/Disable"},{"title":"Stun - Liquipedia Dota 2 Wiki","url":"https://liquipedia.net/dota2/Stun"},{"title":"Hex - Liquipedia Dota 2 Wiki","url":"https://liquipedia.net/dota2/Hex"},{"title":"Silence - Dota 2 Wiki","url":"https://dota2.fandom.com/wiki/Silence"},{"title":"Debuff Immunity - Dota 2 Wiki","url":"https://dota2.fandom.com/wiki/Debuff_Immunity"},{"title":"Archive:Disable - Liquipedia Dota 2 Wiki","url":"https://liquipedia.net/dota2/Archive:Disable"},{"title":"Dota 2 Disable: How it Works - KJC eSports","url":"https://www.kjcesports.com/guide/dota-2-disable-how-it-works/"},{"title":"Status Effects - Dota Underlords Wiki","url":"https://dotaunderlords.fandom.com/wiki/Status_Effects"}]

Here's a comprehensive overview of Dota 2 status effects based on wiki sources:

## Main Disable Types

**Stun**
Stuns are the most common and most dependable kind of disable. Upon getting stunned, the unit stops its current order and stands still until the effect expires. While stunned, the unit cannot move, attack, cast abilities or use items. It also interrupts all channeling abilities, such as using Teleport.(no content)There are three types of stuns in the game, with each using a different modifier to stun the target(s). Stuns from the same group use the same modifier, therefore they refresh each others' duration based on when they affect the target and do not extend its stun duration.

**Silence**
Silence makes it impossible for a hero to cast spells temporarily. It has the ability to restrict what an opponent can do during confrontation thereby making him/her vulnerable.(no content)Few abilities with DOTA_ABILITY_BEHAVIOR_IGNORE_SILENCE flag are still castable when silenced. Silence also cannot prevent them channeling and starting the ability's cast point.

**Root**
Root (formerly known as Ensnare) is a status effect that prevents affected units from moving, and from casting most mobility abilities. However, it does not prevent the affected units from turning, casting other abilities or using most items.(no content)If the root also disarms the affected unit, it is referred to as a Bind (formerly known as Entangle).

**Disarm**
Disarm is an effect that prevents a hero from being able to perform attacks, although he can still move and use abilities. This is especially effective against heroes that depend on their attacks, such as Phantom Assassin. Heaven's Halberd is a well-known item used to apply disarm.

**Hex**
Hex applies multiple disables on the target – silence, mute and disarm, rendering it unable to attack, cast abilities and use active item abilities. Since it applies a regular silence, abilities toggled On are not toggled Off, and already ongoing abilities are not stopped, except for channeling abilities.(no content)However, it does not apply break (unless stated), thus all its passive abilities still work.(no content)Besides disabling, hex also directly sets the target's movement speed to a fixed value for the duration.(no content)Sources of Hex are Hex and Scythe of Vyse.

**Break**
Break disables passives on a hero removing essential buffs as well as skills. It works well against heroes that depend on their passives for survival or damage dealing. Doom, Shadow Demon and Nullifier are some sources of this effect.

**Mute**
As a counterpart to silence, a Mute disables the affected unit's active items in the same fashion as silence disables active abilities. As with silence, it does not affect passives at all. It does not stop already ongoing effects of items, but does cancel channeled items.

## Other Status Effects
... [20 more lines]

WebSearch ("Slay the Spire" vulnerable weak frail poison strength dexterity all buffs debuffs)

Web search results for query: ""Slay the Spire" vulnerable weak frail poison strength dexterity all buffs debuffs"

Links: [{"title":"Debuff | Slay the Spire Wiki | Fandom","url":"https://slay-the-spire.fandom.com/wiki/Debuff"},{"title":"Buffs | Slay the Spire Wiki - Fandom","url":"https://slay-the-spire.fandom.com/wiki/Buffs"},{"title":"Debuffs - Slay the Spire Wiki","url":"https://slaythespire.wiki.gg/wiki/Debuffs"},{"title":"All Debuffs in Slay the Spire | Slay the Spire Wiki","url":"https://www.slaythespire.gg/debuffs"},{"title":"Buffs - Slay the Spire Wiki","url":"https://slaythespire.wiki.gg/wiki/Buffs"},{"title":"Buffs and debuffs :: Slay the Spire Suggestions & Ideas","url":"https://steamcommunity.com/app/646570/discussions/2/1710690018667683700/"},{"title":"Category:Debuffs | Slay the Spire Wiki | Fandom","url":"https://slay-the-spire.fandom.com/wiki/Category:Debuffs"},{"title":"Slay The Spire Artifacts - What Are Artifacts and What | GameWatcher","url":"https://www.gamewatcher.com/news/slay-the-spire-artifacts-guide"},{"title":"Enemy debuffs are the doom of this game, completely removing any skill or fun out of it. Let's change that. :: Slay the Spire General Discussions","url":"https://steamcommunity.com/app/646570/discussions/0/1699415798769102342/"},{"title":"Any general tips for Slay the Spire? - Nintendo Switch","url":"https://gamefaqs.gamespot.com/boards/189706-nintendo-switch/79146754"}]

Links: [{"title":"Frail | Slay the Spire Wiki | Fandom","url":"https://slay-the-spire.fandom.com/wiki/Frail"},{"title":"Act 2 and Frail :: Slay the Spire General Discussions","url":"https://steamcommunity.com/app/646570/discussions/0/2650805212054396955/"},{"title":"Vulnerable | Slay the Spire Wiki - Fandom","url":"https://slay-the-spire.fandom.com/wiki/Vulnerable"},{"title":"Frail and block :: Slay the Spire General Discussions","url":"https://steamcommunity.com/app/646570/discussions/0/1620600279671276716/"},{"title":"Weak | Slay the Spire Wiki | Fandom","url":"https://slay-the-spire.fandom.com/wiki/Weak"},{"title":"All Debuffs in Slay the Spire | Slay the Spire Wiki","url":"https://www.slaythespire.gg/debuffs"},{"title":"weak/vulnerable is supposed to work this way? :: Slay the Spire General Discussions","url":"https://steamcommunity.com/app/646570/discussions/0/1620599015891684152/"},{"title":"Evoke with Vulnerability :: Slay the Spire Beta Discussions","url":"https://steamcommunity.com/app/646570/discussions/4/1694920442952752119/"},{"title":"Card Math Question :: Slay the Spire General Discussions","url":"https://steamcommunity.com/app/646570/discussions/0/1734340257880586068/"},{"title":"Bug or Feature? - Status Effects (not) wearing off :: Slay the Spire General Discussions","url":"https://steamcommunity.com/app/646570/discussions/0/3377008022035073589/"}]

Links: [{"title":"Potions | Slay the Spire Wiki | Fandom","url":"https://slay-the-spire.fandom.com/wiki/Potions"},{"title":"Idea for silent power card - strength affects poison damage :: Slay the Spire General Discussions","url":"https://steamcommunity.com/app/646570/discussions/0/1692659769959833147/"},{"title":"Dexterity | Slay the Spire Wiki - Fandom","url":"https://slay-the-spire.fandom.com/wiki/Dexterity"},{"title":"Slay the Spire Potions | GM Binder","url":"https://www.gmbinder.com/share/-LIy-gd-aqAijROy-XrG"},{"title":"Is it time to give up on Poison decks? :: Slay the Spire General Discussions","url":"https://steamcommunity.com/app/646570/discussions/0/1694917906665098406/"},{"title":"The Defect :: Slay the Spire General Discussions","url":"https://steamcommunity.com/app/646570/discussions/0/1694919808750610409/"},{"title":"Mechanics - a Slay the Spire puzzle - Andy Tockman","url":"https://tck.mn/blog/a-slay-the-spire-puzzle/mechanics/"},{"title":"Debuffs - Slay the Spire Wiki","url":"https://slaythespire.wiki.gg/wiki/Debuffs"},{"title":"Poison | Slay the Spire Wiki - Fandom","url":"https://slay-the-spire.fandom.com/wiki/Poison"},{"title":"The Best Builds For The Silent In Slay The Spire","url":"https://www.thegamer.com/slay-the-spire-best-builds-relics-the-silent/"}]

Based on my search results, here's a comprehensive overview of the key buffs and debuffs in **Slay the Spire**:

## Debuffs

### Common Debuffs (Duration-Based)

**Vulnerable**

- Vulnerable has a higher base effect of 50% increased damage taken.
- There's a relic to make vulnerable do 25% instead of 50%, and another to make your vulnerable inflict 75% instead of 50%.
- Orbs aren't affected by Weak, Vulnerable, or Frail.

**Weak**

- Weak creatures deal 25% less damage with Attacks. When an enemy is Weakened, they deal 25% less damage with Attacks (40% less with Paper Krane). When the player is Weakened, they deal 25% less damage with Attacks.

**Frail**

- Frail is a status condition that reduces the amount of block points gained by 25%. Like Dexterity, it only affects block gained directly from card effects; block from relics, Metallicize, Plated Armor or frost orbs is not reduced.
- The amount of block gained after reduction is rounded down. For example, basic Defend blocks for 5. While frail, it blocks for 3 instead of 3.75.
- Turnip prevents gaining Frail entirely.

**Poison** (Intensity AND Duration)

- Poison is the ONLY Debuff with both Intensity and Duration stack types.
- A poisoned enemy takes damage equal to the amount of poison they have at the end of your turn, and then their poison value decreases by one. Poison can be a very effective way to deal huge damage, and its damage-over-time nature can be brilliant for letting you focus on defense.
... [29 more lines]

Now let me compile all this research into a comprehensive table. I'll create a reference file for you.

Bash (touch "E:/a327ex/emoji-ball-battles/reference/status-effects-research.md")

Read (E:\a327ex\emoji-ball-battles\reference\status-effects-research.md)

Write (E:\a327ex\emoji-ball-battles\reference\status-effects-research.md)

File created successfully at: E:\a327ex\emoji-ball-battles\reference\status-effects-research.md

Bash (~/bin/neovim.exe "E:/a327ex/emoji-ball-battles/reference/status-effects-research...)

Command running in background with ID: b973369. Output is being written to: C:\Users\adn\AppData\Local\Temp\claude\E--a327ex\tasks\b973369.output

Done. I've compiled a comprehensive status effects research document at reference/status-effects-research.md. Here's a summary of what's covered:

Categories identified:

Category Count Examples
Damage Over Time 8 Poison, Bleed, Burn, Doom, Hangover
Movement Impairment 7 Slow, Chill, Root, Immobilize, Ground
Hard CC (Full Disable) 8 Stun, Freeze, Petrify, Sleep, Suppression
Airborne/Displacement 5 Knockback, Knockup, Pull, Knock Aside
Damage Modification 10 Vulnerable, Weak, Marked, Shock, Exposed
Defense Reduction 5 Frail, Brittle, Scorch, Pulverized
Attack Impairment 4 Blind, Disarm, Cripple, Sap
Ability Impairment 7 Silence, Mute, Hex, Polymorph, Break
Forced Action 5 Charm, Taunt, Fear, Berserk, Confusion
Resource Manipulation 5 Healing Disabled, Fasting, Strength Down
Unique/Special 18 Ruptured, Jolted, Shrink, Leash, Ethereal

Key observations:

Effects we'll use: (their exact behavior yet undefined) Poison, Bleed, Burn, Slow, Root, Stun, Freeze, Stasis, Knockback, Vulnerable, Weak, Disarmed, Silenced, Ethereal. Now let's look at the Weapon file and redo the effects. Let's go 1 by 1 and you provide suggestions on how the effect should work, I'll answer with my thoughts, and then you add them to the file. Disregard how the ones in the file currently work, since now we have a unified system that uses stacks primarily. Different effects may have different mechanics, among the ones you listed at the end of your research: Intensity, Duration, Counter, Permanent, Refreshing and Independent.

Glob (/emoji-ball-battles//eapon)

No files found

Glob (*/emoji-ball-battles/docs/.md)

E:\a327ex\emoji-ball-battles\docs\WEAPON_DESIGN.md
E:\a327ex\emoji-ball-battles\docs\PHASE2_WEAPONS.md
E:\a327ex\emoji-ball-battles\docs\ENGINE_API_QUICK.md
E:\a327ex\emoji-ball-battles\docs\ENGINE_API.md
E:\a327ex\emoji-ball-battles\docs\FRAMEWORK_API_QUICK.md
E:\a327ex\emoji-ball-battles\docs\FRAMEWORK_API.md

Read (E:\a327ex\emoji-ball-battles\docs\WEAPON_DESIGN.md)

1→# Weapon Design
     2→
     3→Emoji candidates for weapons.
     4→
     5→---
     6→
     7→## Gameplay Mechanics
     8→
     9→Status effects and systems that weapons/items can interact with.
    10→
    11→### Bleed
    12→- Single stack, doesn't accumulate
    13→- Longer duration
    14→- Deals damage each time bleeding target hits a wall
    15→- Synergizes with knockback/force
    16→
    17→### Poison
    18→- Stacks infinitely
    19→- Short duration (2 seconds)
    20→- Fast ticks (every 0.5 seconds), 1 damage per tick per stack
    21→- 2 DPS per stack
    22→- Synergizes with hit frequency (need constant reapplication)
    23→
    24→### Stun
    25→- Enemy stops rotating/attacking
    26→- Has to restart momentum from zero
    27→- Synergizes with heavy/slow weapons
    28→
    29→### Burn
    30→- Stacks infinitely
... [199 more lines]

Read (E:\a327ex\emoji-ball-battles\docs\PHASE2_WEAPONS.md)

1→# Phase 2: Weapon Implementation
     2→
     3→## Overview
     4→
     5→Implement 19 weapons covering all major tags and playstyles. Dagger and Gun already exist as reference implementations.
     6→
     7→**Reference**: `WEAPON_DESIGN.md` for full weapon specs and tag definitions.
     8→
     9→---
    10→
    11→## Weapons to Implement
    12→
    13→### Rotation Weapons (contact damage through spinning)
    14→
    15→| Weapon | Description | Tags | Scaling |
    16→|--------|-------------|------|---------|
    17→| 🗡️ Sword | Basic melee, baseline for damage | Physical, Rotation | +1 damage per hit |
    18→| 🔪 Kitchen Knife | Applies bleed on hit | Physical, Rotation, Bleed | +bleed chance per hit |
    19→| 🔨 Hammer | Heavy, rotation never stops/slows | Physical, Rotation, Heavy, Stun | +stun chance per hit |
    20→
    21→**Implementation notes:**
    22→- Sword is simplest — use as template for other rotation weapons
    23→- Hammer needs Heavy tag behavior: high angular momentum, resistant to speed changes
    24→- Kitchen Knife introduces Bleed status effect (see Gameplay Mechanics in WEAPON_DESIGN.md)
    25→
    26→---
    27→
    28→### Projectile Weapons (ranged attacks)
    29→
    30→| Weapon | Description | Tags | Scaling |
... [236 more lines]

Each tick does 1 damage every 0.5s, each hit adds a stack, so on top of the player it would be P 1 -> P 2 -> P 3, and as the poison stacks apply, it would be decreased by 1. Unless you get lots of hits in a short period, most of the time poison stacks won't go very high, since each only lasts 2 seconds.

Got it. So Poison is:

Poison

Essentially, stacks = future damage. P 3 means 3 damage will be dealt over the next 1.5s (3 ticks at 0.5s intervals). Fast-hitting weapons can build stacks faster than they're consumed, but most of the time it hovers at low numbers.


Bleed

Suggestions:

Given the ball physics context where balls constantly hit walls, bleed could work differently than poison:

  1. Counter (Wall Triggers)

    • Stacks accumulate on hits
    • Damage triggers when bleeding target hits a wall
    • Each wall hit consumes 1 stack, deals X damage
    • Synergizes with knockback - more wall bounces = more damage
  2. Counter (Movement Triggers)

    • Like PoE bleed - deals damage based on movement
    • In this game: damage per distance traveled, or damage per bounce
    • Stack count multiplies the damage per trigger
  3. Duration (Passive DoT)

    • Traditional bleed - just deals damage over time
    • Would feel redundant with Poison unless mechanically distinct

My recommendation: Option 1 (Wall Triggers) fits this game perfectly. Balls are always bouncing, so bleed becomes "convert wall bounces into damage." Knockback weapons would synergize by forcing more bounces. Display: B [stacks], each wall hit = 1 damage, consumes 1 stack.

What do you think?

<task-notification> <task-id>b973369</task-id> <output-file>C:\Users\adn\AppData\Local\Temp\claude\E--a327ex\tasks\b973369.output</output-file> completed

Background command "Open research file in NeoVim with markdown preview" completed (exit code 0) </task-notification> Read the output file to retrieve the result: C:\Users\adn\AppData\Local\Temp\claude\E--a327ex\tasks\b973369.output

The NeoVim preview finished. Waiting for your thoughts on Bleed - does the wall-trigger mechanic work for this game, or did you have something else in mind?

Please also change the Weapon design file with our new decisions.

Edit (E:\a327ex\emoji-ball-battles\docs\WEAPON_DESIGN.md)

The file E:\a327ex\emoji-ball-battles\docs\WEAPON_DESIGN.md has been updated successfully.

Updated. Now onto Burn:


Burn (R)

Suggestions:

Burn should feel distinct from Poison. Poison is fast ticks, consuming stacks. Burn could be:

  1. Intensity (Persistent) - Slow Burn

    • Stacks accumulate, don't get consumed by ticks
    • Tick rate: 2s (slow)
    • Damage per tick: [stacks] damage (all stacks deal damage each tick)
    • Duration: Each stack has its own 8s timer, expires individually
    • High stacks = sustained heavy damage over long period
    • Rewards "apply and disengage" - stack it up, then let it burn
  2. Intensity (Refreshing) - Ramping Fire

    • Stacks accumulate, duration refreshes on new application
    • Fixed duration (e.g., 6s)
    • Damage per tick increases with stacks
    • Falls off entirely if not maintained
  3. Intensity (Threshold) - Ignition

    • Stacks accumulate but don't deal damage
    • At X stacks, "ignites" - deals burst damage and clears stacks
    • Like Hades' Doom but with buildup

My recommendation: Option 1 (Persistent, Slow Burn). Contrasts well with Poison:

R 3 with 2s ticks and 8s duration = 3 damage every 2s for 8s = 12 total damage per stack applied.

Thoughts?

Let's have something more like 2. Stacks accumulate, duration refreshes on application. The burning effect itself has a fixed duration of 6s, and damage per tick increases with stacks. The burn stops after the 4s have passed and then all stacks are removed at the same time. 1s per tick. Burn should also be the B letter. It's fine if they have the same letter because they'll have different colors. Can you calculate what % of application per hit and number of hits per second would make both effects deal similar amounts of damage over time?

Got it. Let me clarify - you said 6s duration but then 4s. I'll assume 6s duration, 1s tick rate = 6 ticks.

Burn (B) - Updated:


Comparison Calculation:

Poison at 1 hit/s (100% application):

Burn at 1 hit/s with X% chance:

Burn Chance Avg Stacks after 6s Approx Damage over 6s DPS
20% 1.2 ~4 0.7
30% 1.8 ~6 1.0
40% 2.4 ~9 1.5
50% 3.0 ~12 2.0

Recommendation:

At 2 hits/s:

Does 30% base burn chance feel right, or do you want different tuning?

I meant 2s tick rate, 3 ticks total. Please update the file first, then redo the calculations.

Edit (E:\a327ex\emoji-ball-battles\docs\WEAPON_DESIGN.md)

The file E:\a327ex\emoji-ball-battles\docs\WEAPON_DESIGN.md has been updated successfully.

Recalculated with 2s tick rate, 3 ticks over 6s:


Poison at 1 hit/s (100% application):

Burn at 1 hit/s with X% chance:

Burn Chance Stacks at t=2,4,6 Damage (sum of ticks) DPS
30% 0.6, 1.2, 1.8 3.6 0.6
40% 0.8, 1.6, 2.4 4.8 0.8
50% 1, 2, 3 6 1.0
60% 1.2, 2.4, 3.6 7.2 1.2

At 2 hits/s:

Effect Calculation DPS
Poison (100%) ~2 stacks sustained, 2 ticks/s ~2
Burn (50%) Stacks: 2, 4, 6 at ticks → 12 damage / 6s 2

Conclusion:

50% burn chance gives equivalent DPS to 100% poison application at the same hit rate.

The difference in feel:

Does 50% base burn chance work for you?

We need to balance any status effects such that when we actually have them in the game, none of them are too overpowered compared to the others. We'll also have items that do things like, increase chance to apply the effect, increase number of stacks applied per hit, increase duration, decrease tick rate, deal additional damage per tick (favors poison), deal additional damage per total stacks (favor burn), etc. Do you have any framework of analysis that would allow us to balance things?

Good question. Here's a framework:


Status Effect Balancing Framework

1. Baseline Metric: Expected Damage Per Hit (EDPH)

For any effect at baseline (no items): EDPH = Application_Chance × Total_Damage_Per_Application

Target: All DoT effects should have similar EDPH at baseline (~1 damage per hit at 1 hit/s).


2. Scaling Sensitivity Matrix

Each modifier affects effects differently. Rate how sensitive each effect is:

Modifier Poison Burn Bleed
+Application % Linear Linear Linear
+Stacks/hit Linear Quadratic Linear
+Duration Weak* Linear Linear
-Tick rate Linear Linear N/A (counter)
+Damage/tick Linear Linear Linear
+Damage/stack Linear Linear Linear

*Poison duration is weak because stacks are consumed by ticks anyway

Key insight: Burn scales quadratically with +stacks/hit because the same stacks deal damage across multiple ticks. Poison scales linearly because each stack is consumed once.

Example:


3. Normalized Formulas

Poison: Total_Damage = Stacks_Applied × Damage_Per_Tick = (Hits × Chance × Stacks_Per_Hit) × 1 Linear in all variables.

Burn: Total_Damage = Current_Stacks × Ticks × Damage_Per_Tick = (Hits × Chance × Stacks_Per_Hit) × (Duration / Tick_Rate) × 1 Multiplicative relationship between stacks and ticks.

Bleed: Total_Damage = Stacks × Wall_Hits × Damage_Per_Trigger Depends on external factor (wall bounces), scales with knockback synergy.


4. Balancing Levers

To keep effects balanced as items scale them:

Effect Strong Scaling Weak Scaling Suggested Caps
Poison Tick rate, stacks/hit Duration Cap tick rate at 0.1s
Burn Duration, stacks/hit Tick rate Cap stacks at 10, or diminishing returns
Bleed Knockback synergy Raw stats Cap stacks at 5

5. Item Design Guidelines

For build diversity:

For balance:


6. Proposed Baseline Values (Targeting ~1 EDPH)

Effect Chance Stacks/Hit Duration Tick Rate Dmg/Tick EDPH
Poison 100% 1 2s 0.5s 1 1.0
Burn 50% 1 6s 2s [stacks] 1.0*
Bleed 100% 1 1/wall ~1.0**

*Burn: 50% × 3 ticks × avg 1.3 stacks ≈ 2, but slower payoff **Bleed: Depends on bounce frequency, tunable via base wall damage


Does this framework help? We can use it to evaluate each remaining effect (Slow, Root, Stun, etc.) by converting their value to "damage equivalent" through time-denied or damage-reduced calculations.

Yes, let's continue doing the effects and then re-analyze everything.

Slow (S)

Context: In this game, "slow" could affect:

Suggestions:

  1. Duration-based, affects movement

    • Reduces ball's max velocity by X% per stack
    • Duration: refreshes on application
    • Stacks cap at some limit (e.g., 5 stacks = 50% slow max)
    • Slowed balls are easier to hit, bounce less chaotically
  2. Duration-based, affects rotation

    • Reduces weapon rotation speed by X% per stack
    • Slower rotation = fewer hits = less damage output
    • Defensive effect (reduces enemy DPS indirectly)
  3. Duration-based, affects both

    • Each stack reduces both movement and rotation by X%
    • More impactful but needs lower numbers per stack

Mechanic considerations:

My recommendation: Option 3 (affects both) with Intensity (Refreshing) mechanic. Each stack = 10% reduction to movement and rotation speed, capped at 5 stacks (50% max). Duration 4s, refreshes on application. Gives clear counterplay - slowed enemy is vulnerable but effect wears off if not maintained.

Display: S [stacks]

Thoughts?

2, no stack cap, more than 10 stacks doesn't do anything. However, each stack expires individually and has a duration of 4s, without refreshing on application.

Edit (E:\a327ex\emoji-ball-battles\docs\WEAPON_DESIGN.md)

The file E:\a327ex\emoji-ball-battles\docs\WEAPON_DESIGN.md has been updated successfully.

Got it. Slow uses Independent stacking (each stack has its own 4s timer), affects rotation only, soft cap at 10 stacks.


Root (O)

Context: Root typically prevents movement. In this game that could mean:

Suggestions:

  1. Duration-based, full stop

    • Ball velocity set to zero and locked
    • Very powerful CC - short duration needed
    • Like a mini-stun but only affects movement, weapon still rotates
  2. Duration-based, velocity drain

    • Ball rapidly loses velocity while rooted
    • Not instant stop, but bleeds momentum quickly
    • Less harsh, longer duration viable
  3. Counter-based, prevents bounces

    • Each stack prevents one wall bounce (ball stops on contact instead of bouncing)
    • Unique interaction with the physics
    • Synergizes with Bleed (stops at wall = triggers bleed, but no further bounces)

My recommendation: Option 2 (velocity drain) with Duration mechanic. Root lasts X seconds, during which ball's velocity decays rapidly (e.g., 90% reduction per second). Weapon still rotates. Short duration (1-2s), doesn't stack - just refreshes. This makes the ball a sitting duck without completely freezing the game.

Thoughts?

If the balls hits the ground, it bounces less, eventually becoming stuck, without the sliding code being able to trigger. More root stacks increase the effectiveness and make it be grounded faster. Perhaps this should be called something else other than root maybe?

That's a cool mechanic - reducing bounce coefficient until the ball gets stuck to the floor, bypassing the unstick hop. Very thematic.

Name suggestions:

Name Reasoning
Ground "Grounded" = stuck to ground. Simple, clear.
Weight Ball becomes heavy, can't bounce.
Anchor Weighs down, stuck in place.
Gravity Increased gravity effect.
Crush Crushing force pins to floor.
Mud/Bog Stuck in mud, can't bounce out.
Pin Pinned to the ground.

My pick: "Ground" (G) - clean, intuitive, and "grounded" is common gaming terminology for "can't leave the floor."


Proposed mechanic:

So G 3 means the ball bounces much lower, G 10 means it's completely stuck until stacks expire.

Does "Ground" work, and does the intensity/independent mechanic match what you had in mind?

Yes, let's change it from duration to lose 1 stack per ground bounce. Because this affects restitution directly, let's say 1 stack = -0.1 restitution, if you have 10 stacks, you have 0 restitution, which means you become grounded in 1 bounce. But if you have 5 stacks you have 0.5 restitution, and even though you aren't grounded directly, it's a big velocity loss, which means you'll be grounded very soon. Grounded should also disable the collision system that exists to make balls keep bouncing without stopping, on top of the unstick hop.

Edit (E:\a327ex\emoji-ball-battles\docs\WEAPON_DESIGN.md)

The file E:\a327ex\emoji-ball-battles\docs\WEAPON_DESIGN.md has been updated successfully.

Done. Ground uses Counter mechanic - stacks consumed on floor bounces, directly reduces restitution, and disables both energy maintenance systems.


Stun (T)

Context: Classic hard CC. In this game, stun could affect:

Suggestions:

  1. Duration-based, stops rotation only

    • Weapon stops spinning for X seconds
    • Ball still bounces around, but can't deal weapon damage
    • Less oppressive, enemy can still reposition
  2. Duration-based, stops everything

    • Ball velocity zeroed, weapon stopped
    • Full disable - very powerful, needs short duration
    • Like a hard pause on that player
  3. Counter-based, interrupts actions

    • Each stack "interrupts" one weapon rotation or one projectile fire
    • More about disruption than lockdown

Duration considerations:

My recommendation: Option 1 (stops rotation only) with Duration (Refreshing) - stun lasts X seconds, refreshes on application, doesn't stack for longer duration. Stops weapon rotation and ranged firing, but ball still moves. This keeps the physics active while removing offensive capability.

Thoughts?

There was a system where after X stacks it triggered the effect, right?

Yes - Intensity (Threshold). Stacks accumulate, and at X stacks the effect triggers, then stacks clear.


Stun (T) - Threshold Version

Proposed mechanic:

Advantages:

Questions:

  1. What threshold feels right? (5? 10?)
  2. Should stacks decay if you stop hitting? (Creates urgency to maintain pressure)
  3. Does stun affect ball movement or just weapon?

What's your vision for the threshold and stun behavior?

Let's say it's 3 stacks, 1 second duration, no decay

Edit (E:\a327ex\emoji-ball-battles\docs\WEAPON_DESIGN.md)

The file E:\a327ex\emoji-ball-battles\docs\WEAPON_DESIGN.md has been updated successfully.

2, yea, 5 threshold seems fine, 1s duration seems fine too.

Edit (E:\a327ex\emoji-ball-battles\docs\WEAPON_DESIGN.md)

The file E:\a327ex\emoji-ball-battles\docs\WEAPON_DESIGN.md has been updated successfully.

Done. Freeze is the hard CC - 5 stack threshold, 1s full disable (ball + weapon), with shatter bonus damage while frozen.


Stasis (A)

Context: Stasis in most games means invulnerable but unable to act (like Zhonya's in LoL). This could be:

  1. Defensive tool (self-cast)

    • Player can trigger stasis on themselves
    • Invulnerable but can't move or attack
    • Not really a "status effect applied to enemy"
  2. Offensive stasis (applied to enemy)

    • Enemy is frozen in time - can't act, but also can't be damaged
    • Removes them from the fight temporarily
    • Strategic: isolate one ball while dealing with something else
  3. Delayed damage stasis

    • Enemy enters stasis, damage taken during stasis is "stored"
    • When stasis ends, all stored damage applies at once
    • Creates burst damage windows

Question: Is Stasis meant to be applied to enemies, or is it a self-buff? This changes the design significantly.

If offensive (applied to enemy), Option 2 or 3 could work. Option 3 is more interesting - you build up damage during stasis, then it all hits at once when they "unfreeze."

What's your intent for Stasis?

Let's skip this one

Edit (E:\a327ex\emoji-ball-battles\docs\WEAPON_DESIGN.md)

The file E:\a327ex\emoji-ball-battles\docs\WEAPON_DESIGN.md has been updated successfully.

Done, removed Stasis.


Knockback (K)

Context: Knockback is typically an instant force, not a lingering debuff. But as a stackable status effect, it could work differently:

  1. Counter (triggers on next hit received)

    • Stacks accumulate
    • When target is hit by anything, knockback triggers
    • Force scales with stacks, consumes all stacks
    • "Primed" for a big knockback
  2. Intensity (amplifies all knockback)

    • Stacks accumulate
    • All knockback/bounce forces are multiplied by stacks
    • Ball bounces harder off walls, gets pushed more by hits
    • Synergizes with Bleed (more wall hits = more bleed triggers)
  3. Duration (periodic pulses)

    • Stacks determine force, duration determines how long
    • Ball gets periodically pushed in a direction
    • Less intuitive for this physics-based game

My recommendation: Option 2 (amplifies knockback). Each stack = +X% knockback force on all physics interactions. Makes ball bounce more violently. Duration-based with independent expiry like Slow. Synergizes perfectly with Bleed (more/harder bounces = more bleed damage).

Display: K [stacks]

Thoughts?

No, this just deals stack damage on wall bounce and decreases by 1.

Edit (E:\a327ex\emoji-ball-battles\docs\WEAPON_DESIGN.md)

The file E:\a327ex\emoji-ball-battles\docs\WEAPON_DESIGN.md has been updated successfully.

Done. Knockback is a stronger wall-trigger than Bleed - deals damage equal to current stacks, then decreases by 1. K 5 = 15 total damage vs B 5 = 5 total damage.


Vulnerable (V)

Context: Vulnerable typically means "take increased damage." Options:

  1. Intensity (Independent) - stacking amplifier

    • Each stack = +X% damage taken
    • Stacks expire individually (like Slow)
    • More stacks = bigger damage amp
  2. Duration (Refreshing) - flat amplifier

    • Fixed % damage increase while active
    • Duration refreshes on application
    • Simpler, doesn't scale as hard
  3. Counter (consumed on damage)

    • Each stack = one instance of +X% damage
    • Stack consumed when bonus damage is applied
    • Rewards timing big hits with vulnerable stacks

My recommendation: Option 1 (Independent stacking). Each stack = +10% damage taken, 4s duration per stack, expires individually. Soft cap at 10 stacks (100% bonus damage = double damage). Same mechanic as Slow for consistency.

Thoughts?

Let's skip

Edit (E:\a327ex\emoji-ball-battles\docs\WEAPON_DESIGN.md)

The file E:\a327ex\emoji-ball-battles\docs\WEAPON_DESIGN.md has been updated successfully.

Skip

Edit (E:\a327ex\emoji-ball-battles\docs\WEAPON_DESIGN.md)

The file E:\a327ex\emoji-ball-battles\docs\WEAPON_DESIGN.md has been updated successfully.

Done.


Disarmed (D)

Context: Disarm typically prevents attacking. In this game:

Options:

  1. Duration (Refreshing) - no weapon damage

    • Weapon still spins visually but deals no damage on contact
    • Ranged weapons can't fire
    • Duration refreshes on application
  2. Threshold - temporary weapon disable

    • At X stacks, weapon disappears/stops for Y seconds
    • More dramatic visual feedback
  3. Counter (consumed on would-be hit)

    • Each stack negates one weapon hit
    • Stack consumed when weapon would have dealt damage
    • Enemy "wastes" hits

My recommendation: Option 1 or 3. Option 3 is interesting - D 3 means the next 3 weapon hits deal no damage. Creates counterplay where disarmed enemy wants to avoid hitting until stacks expire or get cleared.

Thoughts?

Random idea I just had, add to todo.md: Fencing class (classes are emoji faces): PASSIVE: adds a fencing stack to the player per parry, fencing stack = +1 damage per stack, low duration. ACTIVE: like Earclacks' Lance's lunge, except triggered when the player reaches X fencing stacks. Can create crazy high damage with strong duration items, like an item that 2X duration, since fencing stacks have low duration but increasing them by a low amount would make subsequent damage hits much higher.

Read (E:\a327ex\emoji-ball-battles\todo.md)

1→# TODO
     2→
     3→*Items ordered by priority (highest first)*
     4→
     5→This file tracks ideas and future tasks, not active implementation work. Each item should be a self-contained task starting with "- ". Subsections are allowed (indented "- ") but prefer flat, independent tasks over nested structures. The user periodically reorders items so higher priority tasks float to the top. When implementing features, use separate implementation plans rather than this file.
     6→
     7→- Create letter emoji assets (at minimum: P, B, S, F, K) for status effect identifiers
     8→- Implement status effect line UI class that displays a letter + number using emoji assets with recoloring shader
     9→- Add status effect container to ball class that tracks active effects and their stack counts
    10→- Implement stack consumption logic that triggers the effect and decrements the stack count
    11→- Remove status effect line from display when its stack count reaches zero
    12→- Apply recoloring shader to status effect lines with a distinct color per effect type
    13→- Handle vertical positioning of multiple simultaneous status effect lines above the emoji
    14→

Edit (E:\a327ex\emoji-ball-battles\todo.md)

The file E:\a327ex\emoji-ball-battles\todo.md has been updated successfully.

Added to todo. Back to Disarmed - any thoughts on the mechanic, or skip?

Disarm applies on parry, after it has reached X disarm stacks, and makes the other ball's weapon disappear for a fairly long duration, like 4s.

Edit (E:\a327ex\emoji-ball-battles\docs\WEAPON_DESIGN.md)

The file E:\a327ex\emoji-ball-battles\docs\WEAPON_DESIGN.md has been updated successfully.

Done. Disarm is parry-triggered, threshold-based, 4s weapon removal when activated.


Silenced (I)

Context: Silence typically prevents ability usage. In this game, "abilities" could mean:

Options:

  1. Duration (Refreshing) - no special abilities

    • Prevents ranged firing and special weapon mechanics
    • Melee contact damage still works
    • Duration refreshes on application
  2. Threshold - ability lockout

    • At X stacks, abilities locked for Y seconds
    • Similar to Stun/Freeze/Disarm pattern
  3. Counter - negates next ability use

    • Each stack negates one ability activation
    • Stack consumed when ability would trigger

Question: What counts as "silenceable" in this game? Just ranged weapons? Or also special mechanics like Shield reflect, Clock time stop, etc.?

Prevents the use of active abilities, like the fencer's one I just mentioned. Same as disarm, X stacks, 4s.

Edit (E:\a327ex\emoji-ball-battles\docs\WEAPON_DESIGN.md)

The file E:\a327ex\emoji-ball-battles\docs\WEAPON_DESIGN.md has been updated successfully.

Done. Silence is threshold-based, 4s active ability lockout.


Ethereal (E)

Context: Ethereal in Dota 2 means: immune to physical damage, can't attack, takes increased magic damage. In this game:

Options:

  1. Duration - phase shift

    • Target can't deal OR receive weapon damage
    • Ball still moves and bounces
    • Effectively "ghosted" - removed from combat temporarily
    • Could still take DoT damage (Poison, Burn, Bleed)
  2. Duration - damage type swap

    • Physical damage immunity, but takes bonus damage from "magical" sources
    • Requires damage type system
  3. Threshold - brief invulnerability

    • At X stacks, target becomes ethereal for Y seconds
    • Can't be hit, can't hit others
    • Strategic repositioning window

My recommendation: Option 1 or 3. Ethereal as "can't deal or receive weapon damage, but DoTs still tick" creates interesting counterplay - you can Ethereal someone to let your DoTs work without them fighting back.

Thoughts?

2, but I want to try something different than X stacks and it triggers

4 is the most interesting but it assumes you can switch between dealing physical and magical damage willingly, which you can't give the autoplay nature of the game, unless you have a class that explicitly does something like this, but then the ethereal effect only works for it. 1 would be too OP I think. Let's just go with X stacks and it triggers.

Then add the following to todo.md: Spellblade class, swaps weapons periodically between dagger and staff/wand, dagger deals physical damage, all physical damage applies ethereal stacks, but deals 0 damage. First magical damage with wand pops ethereal stacks and makes the target ethereal for stacks seconds.

Item: -X stack threshold. So an item with -1 stack threshold makes any stack effect that applies on X stacks, be applied in X-1 stacks instead

Edit (E:\a327ex\emoji-ball-battles\docs\WEAPON_DESIGN.md)

The file E:\a327ex\emoji-ball-battles\docs\WEAPON_DESIGN.md has been updated successfully.

Edit (E:\a327ex\emoji-ball-battles\todo.md)

The file E:\a327ex\emoji-ball-battles\todo.md has been updated successfully.

OK, now let's run the balance analysis again. Except instead of trying to balance for normality only, also balance for, "how can we make this specific status effect OP as hell and make a crazy build with it?" essentially also asking, how can we make it scale crazily. Try to imagine different items, like the -X stack threshold I just remembered, by looking at atll the variables that make up the behavior of the status effect and then playing around with them to see what makes sense.

This is going to be fun. Let me analyze each effect for both baseline balance AND breakout scaling potential.


Status Effect Balance & Scaling Analysis

Poison (P)

Baseline

Variables to Exploit

Variable Item Example Scaling Type
Application % Already 100%
Stacks/hit "+1 poison stack per hit" Linear
Tick rate "-0.1s poison tick rate" Linear→Exponential
Damage/tick "+1 poison damage per tick" Linear
Stack consumption "Poison doesn't consume stacks" BROKEN

Crazy Build: "Toxic Machinegun"

Nuclear Option


Bleed (B)

Baseline

Variables to Exploit

Variable Item Example Scaling Type
Application % "+20% bleed chance" Linear
Stacks/hit "+1 bleed stack per hit" Linear
Damage/wall "+1 bleed damage per wall hit" Linear
Knockback force "+50% knockback on bleed targets" Multiplicative
Wall hit frequency (external - knockback items) Synergy

Crazy Build: "Pinball Hemorrhage"

Nuclear Option


Burn (B)

Baseline

Variables to Exploit

Variable Item Example Scaling Type
Application % "+25% burn chance" Linear
Stacks/hit "+1 burn stack per hit" QUADRATIC
Duration "+3s burn duration" Linear (more ticks)
Tick rate "-0.5s burn tick rate" Linear (more ticks)
Damage/tick "+1 burn damage per tick" Linear
Damage/stack "+1 burn damage per stack" QUADRATIC

Crazy Build: "Inferno Stacker"

Nuclear Option

Key Insight

Burn scales quadratically with stacks because:


Slow (S)

Baseline

Variables to Exploit

Variable Item Example Scaling Type
Application % "+20% slow chance" Linear
Stacks/hit "+1 slow stack per hit" Linear (caps at 10)
Effect/stack "+5% slow per stack" Linear
Duration "+2s slow duration" Linear (sustain)
Soft cap "+5 max slow stacks" Extends ceiling

Crazy Build: "Permafrost Controller"

Nuclear Option


Ground (G)

Baseline

Variables to Exploit

Variable Item Example Scaling Type
Application % "+20% ground chance" Linear
Stacks/hit "+2 ground stacks per hit" Linear
Restitution/stack "-0.05 additional restitution per stack" Linear
Stack consumption "Ground loses 0.5 stacks per bounce" Sustain

Crazy Build: "Earthquake"

Nuclear Option


Stun (T)

Baseline

Variables to Exploit

Variable Item Example Scaling Type
Application % "+20% stun chance" Linear
Stacks/hit "+1 stun stack per hit" Threshold faster
Threshold "-1 stun threshold" Very strong
Duration "+0.5s stun duration" Linear

Crazy Build: "Stunlock"

Nuclear Option

Key Insight

-X threshold items are extremely powerful for all threshold effects. Need careful balance or make them very rare.


Freeze (F)

Baseline

Variables to Exploit

Variable Item Example Scaling Type
Application % "+20% freeze chance" Linear
Stacks/hit "+1 freeze stack per hit" Threshold faster
Threshold "-1 freeze threshold" Very strong
Duration "+0.5s freeze duration" Linear
Shatter damage "+50% shatter bonus damage" Burst multiplier

Crazy Build: "Shatter Combo"

Nuclear Option


Knockback (K)

Baseline

Variables to Exploit

Variable Item Example Scaling Type
Application % "+20% knockback chance" Linear
Stacks/hit "+2 knockback stacks per hit" Triangular
Damage/wall "+1 knockback damage per wall hit" Linear
Knockback force "+50% physical knockback" More wall hits
Stack consumption "Knockback loses 0.5 stacks per wall" Sustain

Crazy Build: "Meteor Strike"

Nuclear Option

Key Insight

Knockback scales triangularly with stacks/hit: K(n) = n + (n-1) + ... + 1 = n(n+1)/2

Stacks Total Damage
3 6
5 15
7 28
10 55

+stacks/hit is very strong for Knockback.


Disarm (D)

Baseline

Variables to Exploit

Variable Item Example Scaling Type
Stacks/parry "+1 disarm stack per parry" Threshold faster
Threshold "-1 disarm threshold" Very strong
Duration "+2s disarm duration" Linear

Crazy Build: "Untouchable Duelist"

Nuclear Option


Silence (I)

Baseline

Variables to Exploit

Variable Item Example Scaling Type
Application % "+20% silence chance" Linear
Stacks/hit "+1 silence stack per hit" Threshold faster
Threshold "-1 silence threshold" Very strong
Duration "+2s silence duration" Linear

Crazy Build: "Spell Breaker"

Synergy Consideration

Silence + Disarm together = enemy has no weapon AND no abilities. Total shutdown for 4s.


Ethereal (E)

Baseline

Variables to Exploit

Variable Item Example Scaling Type
Application % "+20% ethereal chance" Linear
Stacks/hit "+1 ethereal stack per hit" Threshold faster
Threshold "-1 ethereal threshold" Very strong
Duration "+2s ethereal duration" Linear
Magic vulnerability "+25% magic damage to ethereal" Burst multiplier

Crazy Build: "Spellblade Assassin"

Nuclear Option


Summary: Scaling Danger Ratings

Effect Most Dangerous Variable Scaling Type Watch Out For
Poison "Don't consume stacks" Exponential Infinite accumulation
Bleed Knockback synergy Multiplicative Wall hit frequency
Burn +Stacks/hit Quadratic Stack × Tick multiplication
Slow +Max stacks Linear extend Permanent CC
Ground "Don't consume stacks" Exponential Permanent grounding
Stun -Threshold Binary spike 1-stack stunlock
Freeze -Threshold + Shatter Burst spike One-shot combos
Knockback +Stacks/hit Triangular n(n+1)/2 scaling
Disarm Duration + Threshold Linear Permanent disarm
Silence Duration + Threshold Linear Ability lockout
Ethereal Magic vulnerability Burst multiplier One-shot setup

Global Item Danger: -X Stack Threshold

This single item type breaks multiple effects:

Recommendations:

  1. Make threshold reduction items very rare (legendary)
  2. Cap threshold reduction (minimum threshold of 2)
  3. Different threshold items for different effects
  4. High cost/downside ("Your thresholds also reduced by X")

Want me to compile specific item ideas based on this analysis, or refine any particular effect's scaling?

I believe you understood Poison in correctly maybe? It lasts 2s per stack, applies 0.5s, but the stack is only removed after the 2 seocnds, not the first time it ticks. Other than that, everything seems good. Try to design a bunch of items related to status effects, maybe 30 or so. Avoid "stacks don't get reset" types of items that you identified as OP for everything. As for the global stack threshold, we can fix this by, for instance, making the duration of the effect be based on how many stacks it triggered. So taking those items won't be a pure buff, but more like a build enabler if you want to go for lots of stuns that last shorter periods of time. You can also do +X stack threshold if you want to do the opposite, get a really big stun, which would synergize with items that do things like, +1 damage on stunned targets and so on. (The same applies to every other effect). Don't do the same types of effects for everything, like say you do multiple items to support big vs. small stun builds, don't just do the exact same for freeze as well. If there's a general thing that can be done, try to do it generally, and save items for specific status effects that actually have to do with that effect in some way. Try to also use relevant emojis when possible, but don't be too bound by this. If you have an idea for an item that is good, but no good emoji that fits it, just leave it emoji-less. Don't reject ideas because you can't find a matching emoji. Paste these items here, and then I'll select the ones that make it into the file. Also update the status effects in the file to match this new change regarding the threshold balance duration thing.

You're right about Poison - let me recalculate:

Poison (Corrected):

That's much stronger than I thought! This changes the balance significantly.

Let me first update the threshold effects in the file, then present the items.

Edit (E:\a327ex\emoji-ball-battles\docs\WEAPON_DESIGN.md)

The file E:\a327ex\emoji-ball-battles\docs\WEAPON_DESIGN.md has been updated successfully.

Edit (E:\a327ex\emoji-ball-battles\docs\WEAPON_DESIGN.md)

The file E:\a327ex\emoji-ball-battles\docs\WEAPON_DESIGN.md has been updated successfully.

Edit (E:\a327ex\emoji-ball-battles\docs\WEAPON_DESIGN.md)

The file E:\a327ex\emoji-ball-battles\docs\WEAPON_DESIGN.md has been updated successfully.

Edit (E:\a327ex\emoji-ball-battles\docs\WEAPON_DESIGN.md)

The file E:\a327ex\emoji-ball-battles\docs\WEAPON_DESIGN.md has been updated successfully.

Edit (E:\a327ex\emoji-ball-battles\docs\WEAPON_DESIGN.md)

The file E:\a327ex\emoji-ball-battles\docs\WEAPON_DESIGN.md has been updated successfully.

Edit (E:\a327ex\emoji-ball-battles\docs\WEAPON_DESIGN.md)

The file E:\a327ex\emoji-ball-battles\docs\WEAPON_DESIGN.md has been updated successfully.

Add all of these to the file as they are, I'll edit later.

Read (E:\a327ex\emoji-ball-battles\docs\WEAPON_DESIGN.md)

1→# Weapon Design
     2→
     3→Emoji candidates for weapons.
     4→
     5→---
     6→
     7→## Gameplay Mechanics
     8→
     9→Status effects and systems that weapons/items can interact with.
    10→
    11→### Poison (P)
    12→- **Mechanic:** Intensity (Independent)
    13→- **Tick rate:** 0.5s
    14→- **Damage per tick:** 1 per stack
    15→- **Duration:** 2 seconds per stack (each expires independently)
    16→- **Display:** P [stacks]
    17→- 1 stack = 4 ticks = 4 damage over 2s
    18→- At steady state 1 hit/s ≈ 2 stacks active = 4 DPS
    19→- Synergizes with fast-hitting weapons
    20→
    21→### Bleed (B)
    22→- **Mechanic:** Counter (Wall Triggers)
    23→- **Trigger:** Target hits a wall
    24→- **Damage per trigger:** 1, consumes 1 stack
    25→- **Display:** B [stacks]
    26→- Converts wall bounces into damage
    27→- Synergizes with knockback (more bounces = more damage)
    28→
    29→### Burn (B)
    30→- **Mechanic:** Intensity (Refreshing)
... [285 more lines]

Edit (E:\a327ex\emoji-ball-battles\docs\WEAPON_DESIGN.md)

The file E:\a327ex\emoji-ball-battles\docs\WEAPON_DESIGN.md has been updated successfully.

Done. All 65 items have been added to the file under a new "Status Effect Items" section, organized by category:

Great, thank you. Good session.

Good session! We accomplished:

The status effect system now has a solid foundation with clear mechanics, scaling paths, and item synergies to explore.