====== Wand Of Icebolt Item - Code References ====== ===== Java Classes ===== * ''com/nyrds/pixeldungeon/items/icecaves/WandOfIcebolt.java'' - Main wand implementation * Extends: [[https://github.com/NYRDS/remixed-dungeon/blob/master/RemixedDungeon/src/main/java/com/watabou/pixeldungeon/items/wands/Wand.java|Wand]] * Registered in: [[https://github.com/NYRDS/remixed-dungeon/blob/master/RemixedDungeon/src/main/java/com/nyrds/pixeldungeon/items/common/ItemFactory.java|ItemFactory.java]] (line 403: registerItemClass(WandOfIcebolt.class)) * Used by: [[https://github.com/NYRDS/remixed-dungeon/blob/master/RemixedDungeon/src/main/java/com/nyrds/pixeldungeon/mobs/icecaves/IceGuardianCore.java|IceGuardianCore.java]] (drops upgraded wand) ===== Java Class Content ===== package com.nyrds.pixeldungeon.items.icecaves; import com.nyrds.pixeldungeon.ml.R; import com.nyrds.platform.audio.Sample; import com.nyrds.platform.util.StringsManager; import com.watabou.pixeldungeon.Assets; import com.watabou.pixeldungeon.Dungeon; import com.watabou.pixeldungeon.actors.Char; import com.watabou.pixeldungeon.actors.buffs.Frost; import com.watabou.pixeldungeon.actors.buffs.Slow; import com.watabou.pixeldungeon.effects.MagicMissile; import com.watabou.pixeldungeon.levels.Level; import com.watabou.pixeldungeon.mechanics.Ballistica; import com.watabou.pixeldungeon.scenes.GameScene; import com.watabou.pixeldungeon.utils.GLog; import com.watabou.utils.Callback; public class WandOfIcebolt extends Wand { { setDefaultImage( ItemSpriteSheet.WAND_ICEBOLT ); } @Override protected void onZap( int cell, Char ch ) { if ( ch != null ) { int lvl = effectiveLevel(); ch.damage( Random.NormalIntRange( lvl + 2, lvl + 10 ), this ); if ( Random.Float() < 0.3f ) { Frost.prolong( ch, Frost.DURATION * ( 1 + lvl / 10f ) ); } if ( Random.Float() < 0.2f ) { Slow.prolong( ch, Slow.DURATION * ( 1 + lvl / 10f ) ); } } else { GLog.n( StringsManager.getVar( R.string.WandOfIcebolt_Info1 ) ); } } protected void fx( int cell, Callback callback ) { MagicMissile.iceBolt( getOwner().getSprite().getParent(), getOwner().getPos(), cell, callback ); Sample.INSTANCE.play( Assets.SND_ZAP ); } @Override public String desc() { return StringsManager.getVar( R.string.WandOfIcebolt_Info ); } } ===== Key Mechanics ===== * **Damage:** Random range of (level + 2) to (level + 10) * **Frost Chance:** 30% chance to apply Frost debuff with duration scaling by level * **Slow Chance:** 20% chance to apply Slow debuff with duration scaling by level * **Visual Effect:** Uses MagicMissile.iceBolt() for zap animation * **Sound:** Plays Assets.SND_ZAP on zap * **Default Image:** ItemSpriteSheet.WAND_ICEBOLT ===== JSON Configuration ===== No dedicated JSON configuration file found. Wand is implemented entirely in Java. ===== String Resources ===== English (''values/strings_all.xml''): Wand of Icebolt This wand launches an ice bolt, dealing light damage to the target. There is also a chance to slow down or even freeze the enemy. You killed yourself with your own Wand of Icebolt... Russian (''values-ru/strings_all.xml''): Палочка Ледяной Стрелы Эта палочка запускает ледяной снаряд, который наносит небольшой урон цели. Так же есть шанс замедлить или даже заморозить противника. Ты убил себя своей собственной ледяной стрелой... Chinese Simplified (''values-zh-rCN/strings_all.xml''): 冰霜法杖 这根法杖可以发射冰箭,对目标生物造成伤害。它还可以减慢甚至冻结目标。 你用你的冰霜法杖杀死了你…… Chinese Traditional (''values-zh-rTW/strings_all.xml''): 冰霜法杖 這根法杖可以發射冰箭,對目標生物造成傷害。它還可以減慢甚至凍結目標。 你用你的冰霜法杖殺死了你... ===== Lua Scripts ===== No Lua script implementation. This wand is implemented entirely in Java. ===== Related Effects ===== * [[mr:frost_buff|Frost Buff]] - Freezing effect applied by this wand * [[mr:slow_buff|Slow Buff]] - Slowing effect applied by this wand * [[mr:wand_of_frost_item|Wand of Frost (Historical)]] - Incorrect historical reference {{tag> rpd wands items mr icecaves}}