====== Freeze Globe Spell - Code References ====== ===== Java Classes ===== * [[https://github.com/NYRDS/remixed-dungeon/blob/master/RemixedDungeon/src/main/java/com/nyrds/pixeldungeon/mechanics/spells/FreezeGlobe.java|FreezeGlobe.java]] - Main implementation class ===== Class Implementation Details ===== public class FreezeGlobe extends Spell { FreezeGlobe() { targetingType = SpellHelper.TARGET_CELL; magicAffinity = SpellHelper.AFFINITY_ELEMENTAL; level = 3; image = 3; spellCost = 4; } @Override public boolean cast(@NotNull Char chr, int cell) { if(!Dungeon.level.cellValid(cell)) { return false; } boolean triggered = false; if(Ballistica.cast(chr.getPos(), cell, false, true) == cell) { Char ch = Actor.findChar(cell); if (ch != null) { ch.getSprite().emitter().burst(SnowParticle.FACTORY, 5); ch.getSprite().burst(0xFF99FFFF, 3); Buff.affect(ch, Frost.class, Frost.duration(ch)); Buff.affect(ch, Slow.class, Slow.duration(ch)); Sample.INSTANCE.play(Assets.SND_SHATTER); triggered = true; } if(triggered) { castCallback(chr); } return true; } return false; } @Override public String texture() { return "spellsIcons/elemental.png"; } } ===== Key Properties ===== * **Targeting Type**: TARGET_CELL (targets a specific cell, not a character) * **Magic Affinity**: AFFINITY_ELEMENTAL (elemental magic) * **Spell Level**: 3 (Advanced spell) * **Image ID**: 3 (sprite index in elemental spells atlas) * **Spell Cost**: 4 (mana cost to cast) * **Texture**: spellsIcons/elemental.png ===== Effects Applied ===== * **Frost Buff**: Applies Frost.class with Frost.duration(ch) - freezes target in place * **Slow Buff**: Applies Slow.class with Slow.duration(ch) - reduces movement speed * **Visual Effects**: - Snow particle burst (5 particles) - Light blue color burst (0xFF99FFFF, 3 particles) * **Sound Effect**: Assets.SND_SHATTER (shattering sound) ===== Targeting Mechanics ===== * Uses Ballistica.cast() for path validation * Requires clear line of sight to target cell * Only affects characters if present on target cell * Validates cell through Dungeon.level.cellValid() ===== JSON Configuration ===== This entity is implemented in Java, no JSON configuration exists. ===== String Resources ===== Freeze Globe Freezes the selected character, making it unable to perform any actions for a short period of time. ===== Lua Scripts ===== This entity is implemented in Java, no Lua script exists. ===== Related Entities ===== * [[mr:frost_buff|Frost Buff]] - Status effect that freezes target * [[mr:slow_buff|Slow Buff]] - Status effect that reduces speed * [[mr:elemental_magic|Elemental Magic]] - Magic affinity type * [[mr:spells_overview|Spells Overview]] - List of all spells ===== Usage in Code ===== * Registered in Spell system via SpellFactory * Cast on cells, affects any character occupying that cell * Requires line of sight validation via Ballistica * Part of elemental magic spell family