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:
- Created
todo.mdwith priority-ordering convention (highest priority first) - Established that todo.md is for idea tracking, not active implementation
- Implementation plans remain separate from the todo file
Status Effect Research Phase:
- Researched status effects across 10 games: Path of Exile, League of Legends, Dota 2, Risk of Rain 2, Isaac, Hades, Deadlock, Artifact, Slay the Spire, Tree of Savior
- Identified categories: DoTs, movement impairment, hard CC, displacement, damage modification, defense reduction, attack/ability impairment, forced action, resource manipulation
- Compiled findings into
reference/status-effects-research.md - Key insight: Different stack mechanics exist - Intensity (scales with stacks), Duration (lasts X turns), Counter (triggers on event), Independent (each stack separate)
Status Effect Definitions:
- Poison (P): Independent stacks, 0.5s tick rate, 1 damage per tick, 2s per stack duration (each stack = 4 damage). At 1 hit/s ≈ 4 DPS. User correction: "stacks last 2s, not consumed on first tick"
- Bleed (B): Counter mechanic, triggers on wall hits, 1 damage per wall hit, consumes 1 stack. Synergizes with knockback
- Burn (B): Refreshing stacks, 2s tick rate, 6s duration (3 ticks), damage = current stacks per tick. All stacks cleared on expiry. Scales quadratically with +stacks/hit items
- Slow (S): Independent stacks, affects rotation speed only (-X% per stack), 4s per stack, soft cap at 10 stacks. User specified: "2, no stack cap, more than 10 doesn't do anything"
- Ground (G): Counter mechanic, -0.1 restitution per stack, consumed on floor bounce, disables energy maintenance and unstick hop. At 10 stacks = 0 restitution = instant grounding
- Stun (T): Threshold mechanic (5 stacks triggers), 1s weapon disable, duration scales with stacks accumulated. User: "5 threshold seems fine, 1s duration seems fine too"
- Freeze (F): Threshold mechanic (5 stacks triggers), 1s full disable (ball + weapon), shatter bonus damage while frozen, duration scales with stacks
- Knockback (K): Counter mechanic, deals damage = current stacks per wall hit, decreases by 1 per hit. K5 = 5+4+3+2+1 = 15 total damage (triangular scaling)
- Disarm (D): Parry-triggered, threshold-based, 4s weapon removal when activated
- Silence (I): Threshold-based, 4s active ability lockout
- Ethereal (E): Threshold-based, physical immunity + magic vulnerability. User added Spellblade class concept to todo
Stasis was skipped - user opted not to include it
Balancing Framework:
- EDPH (Expected Damage Per Hit) as baseline metric
- Identified scaling sensitivities: +stacks/hit is quadratic for Burn, triangular for Knockback
- Threshold-duration balancing: duration = f(stacks) so -X threshold items aren't pure buffs
- Documented "nuclear options" (broken combos) and balance levers for each effect
Class Ideas Added to Todo:
- Fencing class: Passive adds fencing stack per parry (+1 damage/stack, low duration), Active triggers lunge at X stacks
- Spellblade class: Swaps between dagger (physical, applies ethereal stacks for 0 damage) and wand (magic, pops ethereal stacks)
65 Status Effect Items Designed:
- General DoT items (4): Pestilence, Toxic Cloud, Festering Wounds, Spreading Infection
- Poison-specific (6): Venomous, Concentrated Toxin, Nausea, Antidote Resistance, etc.
- Bleed-specific (5): Jagged Edge, Deep Cuts, Hemorrhage, Serrated, Blood Scent
- Burn-specific (5): Kindling, Accelerant, Wildfire, Ember Heart, Melting Point
- Slow-specific (4): Frost Touch, Arctic Grip, Numbing Cold, Permafrost
- Ground-specific (4): Heavy Boots, Graviton, Quicksand, Seismic
- General threshold items (5): Hair Trigger (-1 threshold, -0.2s duration), Patient Hunter (+2 threshold, +0.5s duration)
- Stun/Freeze/Knockback/Disarm/Silence/Ethereal specifics
- Cross-synergy items (9): Elemental Mastery, Affliction, Cascade, Status Specialist, etc.
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:
- Arena system: Collision handling, energy compensation, plant groups
- Ball class: Two weapon types (dagger/gun), physics, springs, HP
- Weapon systems:
- Dagger (melee): Spins around ball,
base_angular_velocityincreases per hit - Gun (ranged): Auto-fires when aligned, cooldown decreases per hit, burstfire chance increases
- Dagger (melee): Spins around ball,
- UI: HP bar, hp_ui (heart display), weapon_ui (emoji + weapon icon + stats)
- Effects: Various particle classes for visual feedback
- Projectile: Bouncing bullets with bounces counter
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:
- Some effects are universal (Stun, Slow, Poison) while others are game-specific
- Burn/Ignite varies significantly: PoE ties it to hit damage, RoR2 uses percentage-based, Deadlock deals Spirit damage
- Stack mechanics differ: Intensity (scales with stacks), Duration (lasts X turns), Counter (triggers on event), Independent (each stack separate)
- Hades uses "Status Curses" where 2 different curses trigger "Punished" for bonus damage - an interesting combo system
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
- Mechanic: Intensity (Consuming)
- Tick rate: 0.5s
- Damage per tick: 1
- Stack behavior: Each tick consumes 1 stack
- Duration: 2 seconds (stacks expire if not consumed by ticks)
- Display: P [stacks]
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:
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
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
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:
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
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
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:
- Poison: Fast ticks, stacks consumed, needs constant reapplication
- Burn: Slow ticks, stacks persist, rewards stacking then backing off
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:
- Stacks accumulate, duration refreshes on hit
- Duration: 6s
- Tick rate: 1s (6 ticks total)
- Damage per tick: [stacks] (current stack count)
- All stacks cleared when duration expires
Comparison Calculation:
Poison at 1 hit/s (100% application):
- Add 1 stack/s, ticks consume 1 stack every 0.5s (2/s)
- Steady state: ~1 stack average, dealing ~2 damage/s
- But stacks get consumed, so effectively ~1 DPS sustained
Burn at 1 hit/s with X% chance:
- After 6s of hitting: 6 × (X/100) expected stacks
- Damage = sum of ticks as stacks build: approximately (stacks × ticks) / 2 during buildup, then stacks × remaining ticks
| 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:
- 30% burn chance per hit gives roughly equivalent DPS to poison at same hit rate
- Burn rewards sustained presence (stacks persist, damage ramps)
- Poison rewards burst hits (stacks consumed quickly, need reapplication)
At 2 hits/s:
- Poison: ~2 DPS
- Burn (30%): ~2 DPS (stacks build to ~3.6 over 6s)
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):
- Add 1 stack/s, ticks consume 1 stack every 0.5s
- Steady state: ~1 DPS
Burn at 1 hit/s with X% chance:
- Ticks at t=2s, t=4s, t=6s
- Stacks build linearly: at tick N, expected stacks ≈ (hits so far) × (X/100)
| 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:
- Poison: Immediate, steady drain, stacks consumed quickly
- Burn: Slow ramp, big payoff if you maintain stacks, punishes disengagement (lose all stacks)
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:
- Poison +2 stacks/hit: 2 stacks × 1 damage = 2 damage (2x)
- Burn +2 stacks/hit: 2 stacks × 3 ticks = 6 damage (3x baseline of 2 damage)
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:
- "+Stacks/hit" items favor Burn (avoid making these too common)
- "-Tick rate" items favor Poison
- "+Duration" items favor Burn, weak for Poison
- "Knockback" items favor Bleed
For balance:
- Multiplicative modifiers (×1.5 damage) are dangerous on Burn
- Additive modifiers (+1 damage/tick) are safer across all
- Consider "specific to effect" items vs generic DoT items
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:
- Ball movement speed (linear velocity)
- Weapon rotation speed (angular velocity)
- Both
Suggestions:
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
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)
Duration-based, affects both
- Each stack reduces both movement and rotation by X%
- More impactful but needs lower numbers per stack
Mechanic considerations:
- Should stacks be consumed or persistent during duration?
- How does slow interact with the physics? (Dampening? Velocity cap reduction?)
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:
- Ball cannot move (frozen in place) - very powerful
- Ball movement heavily restricted (can't gain velocity, but existing momentum continues)
- Ball is "anchored" to a point (can move but gets pulled back)
Suggestions:
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
Duration-based, velocity drain
- Ball rapidly loses velocity while rooted
- Not instant stop, but bleeds momentum quickly
- Less harsh, longer duration viable
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:
- Effect: Reduces bounce coefficient on floor hits, disables unstick hop
- Mechanic: Intensity (Independent) - like Slow
- Per stack: -X% bounce height
- Soft cap: At Y stacks, ball can't bounce at all (stuck)
- Duration: 4s per stack, expires individually
- Display: G [stacks]
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:
- Weapon rotation (stops spinning)
- Ball physics (stops moving)
- Both
- Ranged weapon firing
Suggestions:
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
Duration-based, stops everything
- Ball velocity zeroed, weapon stopped
- Full disable - very powerful, needs short duration
- Like a hard pause on that player
Counter-based, interrupts actions
- Each stack "interrupts" one weapon rotation or one projectile fire
- More about disruption than lockdown
Duration considerations:
- Should stun stack duration (longer stun) or refresh?
- Or should stun be non-stacking with fixed duration?
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:
- Mechanic: Intensity (Threshold)
- Threshold: X stacks triggers stun
- On trigger: Stun activates, all stacks cleared
- Stun effect: Weapon stops rotating, ranged weapons can't fire
- Stun duration: Fixed (e.g., 1-2 seconds)
- Stack decay: Stacks decay over time if not maintained? Or persist until triggered?
- Display: T [stacks] (changes visually when stun is active?)
Advantages:
- Counterplay: Enemy sees stacks building, can try to disengage
- Rewards sustained aggression to reach threshold
- Prevents instant stunlock from single hits
- Clear moment of "stun proc" - satisfying feedback
Questions:
- What threshold feels right? (5? 10?)
- Should stacks decay if you stop hitting? (Creates urgency to maintain pressure)
- 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:
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"
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
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:
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
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)
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:
Intensity (Independent) - stacking amplifier
- Each stack = +X% damage taken
- Stacks expire individually (like Slow)
- More stacks = bigger damage amp
Duration (Refreshing) - flat amplifier
- Fixed % damage increase while active
- Duration refreshes on application
- Simpler, doesn't scale as hard
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:
- Melee: Weapon still rotates but deals no contact damage?
- Ranged: Can't fire projectiles?
- Both?
Options:
Duration (Refreshing) - no weapon damage
- Weapon still spins visually but deals no damage on contact
- Ranged weapons can't fire
- Duration refreshes on application
Threshold - temporary weapon disable
- At X stacks, weapon disappears/stops for Y seconds
- More dramatic visual feedback
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:
- Ranged weapon firing
- Active abilities (if classes have them)
- Special weapon mechanics (like Shield's reflect, Clock's time stop)
Options:
Duration (Refreshing) - no special abilities
- Prevents ranged firing and special weapon mechanics
- Melee contact damage still works
- Duration refreshes on application
Threshold - ability lockout
- At X stacks, abilities locked for Y seconds
- Similar to Stun/Freeze/Disarm pattern
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:
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)
Duration - damage type swap
- Physical damage immunity, but takes bonus damage from "magical" sources
- Requires damage type system
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
- 100% application, 1 stack/hit, 0.5s tick, 1 dmg/tick, consumes 1 stack
- EDPH: 1 damage per hit
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"
- Core: Weapon with very fast hit rate (Saw, fast Dagger)
- Items: +2 stacks/hit, -0.2s tick rate (0.3s ticks), +1 dmg/tick
- Result: At 2 hits/s with +2 stacks = 6 stacks/s added. With 0.3s ticks = 3.3 ticks/s consuming 3.3 stacks/s. Net accumulation ~2.7 stacks/s. Each tick deals 2 damage.
- DPS: ~6.6 DPS (6.6x baseline)
Nuclear Option
- Item: "Poison stacks are not consumed on tick"
- Result: Stacks accumulate infinitely, each tick deals 1 damage per stack. At 10 stacks with 0.5s tick = 20 DPS. At 50 stacks = 100 DPS.
- Balance lever: Make this item legendary/very rare, or add "but poison duration reduced to 1s"
Bleed (B)
Baseline
- 100% application(?), 1 stack/hit, 1 dmg per wall hit, consumes 1 stack
- EDPH: ~0.5-1 depending on bounce frequency (assume ~1 wall hit per second average)
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"
- Core: Knockback weapon (Anchor, Boxing Glove, Umbrella)
- Items: +2 bleed stacks/hit, +2 bleed damage/wall, +100% knockback force on bleeding targets
- Result: Apply B 3 per hit. Each wall hit deals 3 damage. Knockback makes them hit walls 3x as often.
- DPS: 3 dmg × 3 walls/s = 9 DPS per application, stacks consumed fast but reapplied constantly
Nuclear Option
- Item: "Bleed stacks are not consumed on wall hit"
- Synergy with: Knockback items
- Result: B 10 with constant bouncing = 10+ damage per wall hit, indefinitely
- Balance lever: "Bleed deals 50% less damage" alongside it
Burn (B)
Baseline
- 50% application, 1 stack/hit, 2s tick, [stacks] dmg/tick, 6s duration (3 ticks), refreshing
- EDPH: 0.5 × 3 ticks × ~1.5 avg stacks ≈ 2.25 → but slower, so ~1 effective
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"
- Core: Consistent hit weapon (Gun, Bow)
- Items: +2 stacks/hit, +3s duration (9s = 4-5 ticks), +1 dmg/stack
- Result: At 1 hit/s with 75% chance and +2 stacks = ~2.25 stacks/s. After 9s = ~20 stacks. Each tick deals 20 × 2 = 40 damage. 5 ticks = 200 total damage.
- DPS: ~22 DPS while maintaining (but requires 9s ramp)
Nuclear Option
- Item: "Burn stacks are not cleared when duration expires"
- Result: Permanent burn accumulation. 60 seconds of fighting = 100+ stacks. Each tick = 100+ damage.
- Balance lever: "Burn ticks deal 1 damage per 5 stacks" (diminishing) or "Max 20 burn stacks"
Key Insight
Burn scales quadratically with stacks because:
- More stacks = more damage per tick
- Same stacks tick multiple times
- +stacks/hit items are VERY strong for Burn
Slow (S)
Baseline
- X% application, 1 stack/hit, -Y% rotation per stack, 4s per stack (independent), caps at 10
- Value: Reduces enemy DPS by slowing weapon
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"
- Core: Fast-hitting weapon
- Items: +2 stacks/hit, +4s duration (8s per stack), +10 max stacks (cap at 20)
- Result: Quickly reach 20 stacks, enemy rotation reduced to near-zero
- Effect: Enemy can barely attack, you win through attrition
Nuclear Option
- Item: "Slow also affects ball movement speed"
- Synergy: With Ground - slowed ball + reduced restitution = stuck forever
- Balance lever: "Slow effect caps at 80%" (always some rotation)
Ground (G)
Baseline
- X% application, 1 stack/hit, -0.1 restitution per stack, consumed on floor bounce, disables energy systems
- Value: CC that eventually grounds the enemy
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"
- Core: AoE or multi-hit weapon
- Items: +3 stacks/hit, -0.15 restitution per stack (total -0.25/stack)
- Result: 4 stacks = 0 restitution = instant ground. One good hit = enemy stuck.
- Synergy: Pair with damage-while-grounded effects
Nuclear Option
- Item: "Grounded enemies take X damage per second"
- Item: "Ground stacks are not consumed on bounce"
- Result: Permanent grounding + DoT = helpless enemy melting
- Balance lever: "Grounded enemies gain +1 stack of Unstuck per second" (they eventually escape)
Stun (T)
Baseline
- X% application, 3 stacks triggers, 1s weapon disable, no decay
- Value: 1s of enemy not attacking
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"
- Core: Fast-hitting weapon
- Items: -1 threshold (2 stacks), +1 stack/hit, +1s duration (2s stun)
- Result: Every 1-2 hits triggers 2s stun. With 2 hits/s = permanent stunlock
- Counter: Stun immunity after being stunned (diminishing returns)
Nuclear Option
- Item: "Stun threshold reduced to 1"
- Result: Every hit stuns. Complete lockdown.
- Balance lever: "Stun duration -50%" alongside, or "Cannot stun same target within 2s"
Key Insight
-X threshold items are extremely powerful for all threshold effects. Need careful balance or make them very rare.
Freeze (F)
Baseline
- X% application, 5 stacks triggers, 1s full disable + shatter bonus, no decay
- Value: 1s of total disable + burst damage window
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"
- Core: High burst weapon + freeze applier
- Items: -2 threshold (3 stacks), +100% shatter damage, +0.5s duration
- Combo: Apply freeze, swap to heavy hitter, deal double damage
- Synergy: Burn stacks tick during freeze with shatter bonus
Nuclear Option
- Item: "Shatter damage equals 10× stacks accumulated before freeze"
- Mechanic change: Track total stacks ever applied, not just threshold
- Result: Build up 50 freeze stacks over time, trigger = 500 bonus damage
- Balance lever: "Stacks reset on freeze trigger" (current behavior)
Knockback (K)
Baseline
- X% application, [stacks] dmg per wall hit, consumes 1 stack
- EDPH: K 3 = 3+2+1 = 6 total damage (but requires wall hits)
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"
- Core: Heavy single-hit weapon (Hammer, Anchor)
- Items: +5 stacks/hit, +2 dmg/wall
- Result: One hit applies K 6. Wall hits deal 6+2, 5+2, 4+2... = 8+7+6+5+4+3 = 33 total damage from one application
- Synergy: Knockback force items = more wall hits before stacks deplete
Nuclear Option
- Item: "Knockback stacks increase by 1 per wall hit instead of decreasing"
- Result: K 3 → hit wall → K 4 (deal 4) → hit wall → K 5 (deal 5)... infinite scaling
- Balance lever: "Max 10 knockback stacks" or "Effect lasts 3 seconds"
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
- Parry-triggered, X stacks threshold, 4s weapon removal
- Value: 4s of enemy having no weapon
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"
- Core: Parry-focused weapon (Shield, Frying Pan)
- Items: -2 threshold, +2 stacks/parry, +4s duration (8s disarm)
- Combo: Fencing class stacks + Disarm
- Result: 1-2 parries = 8s of enemy without weapon. Complete dominance.
Nuclear Option
- Item: "Disarmed enemies cannot regain their weapon until hit X times"
- Result: Disarm is semi-permanent until you choose to end it
- Balance lever: "Disarm duration cannot exceed 6s"
Silence (I)
Baseline
- X% application(?), X stacks threshold, 4s active ability lockout
- Value: 4s of no class abilities
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"
- Core: Fast applicator
- Items: -2 threshold, +4s duration (8s silence)
- Counter: Specifically shuts down ability-reliant classes (Fencer, Spellblade)
- Result: Keep them permanently silenced, their class passive is useless
Synergy Consideration
Silence + Disarm together = enemy has no weapon AND no abilities. Total shutdown for 4s.
Ethereal (E)
Baseline
- X% application, X stacks threshold, physical immunity, magic vulnerability
- Value: Defensive against physical, setup for magic burst
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"
- Core: Spellblade class (applies ethereal with dagger, pops with wand)
- Items: -2 threshold, +100% magic damage to ethereal targets, +2s duration
- Result: Quick ethereal application, massive magic burst, extended vulnerability window
Nuclear Option
- Item: "Ethereal targets take physical damage as magic damage"
- Result: Their "immunity" becomes a vulnerability. Everything hurts more.
- Balance lever: "Conversion is 50%" or requires specific weapon type
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:
- Stun: 3→1 = every hit stuns
- Freeze: 5→2 = near-instant freeze
- Disarm: X→1 = one parry disarms
- Silence: X→1 = one hit silences
- Ethereal: X→1 = instant ethereal
Recommendations:
- Make threshold reduction items very rare (legendary)
- Cap threshold reduction (minimum threshold of 2)
- Different threshold items for different effects
- 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):
- 1 stack lasts 2s, ticks every 0.5s = 4 ticks per stack = 4 damage per stack
- At 1 hit/s steady state: ~2 stacks active = 2 damage per tick × 2 ticks/s = 4 DPS
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:
- General DoT Items (4)
- Poison-Specific (6)
- Bleed-Specific (5)
- Burn-Specific (5)
- Slow-Specific (4)
- Ground-Specific (4)
- General Threshold Items (5)
- Stun-Specific (4)
- Freeze-Specific (4)
- Knockback-Specific (4)
- Disarm-Specific (4)
- Silence-Specific (3)
- Ethereal-Specific (4)
- Cross-Synergy Items (9)
Great, thank you. Good session.
Good session! We accomplished:
- Created
todo.mdwith priority tracking system - Designed 11 status effects with distinct mechanics:
- DoTs: Poison (independent ticks), Bleed (wall counter), Burn (refreshing stacks)
- CC: Slow (independent), Ground (restitution drain), Stun/Freeze (threshold)
- Utility: Knockback (triangular damage), Disarm/Silence (parry/threshold), Ethereal (magic setup)
- Built a balancing framework with threshold-duration scaling
- Designed 65 status effect items across all categories
- Added class ideas (Fencing, Spellblade) and the -X threshold item concept to todo
The status effect system now has a solid foundation with clear mechanics, scaling paths, and item synergies to explore.