====== Shaman Subclass - Code References ====== {{ rpd:images:elf_shaman_hero.png|Shaman Subclass }} ==== Entity Information ==== * **Entity Kind:** ShamanSubclass * **Type:** subclass * **Namespace:** rpd * **Hero Class:** ELF * **Armor Class:** ShamanArmor ==== Java Classes ==== * [[https://github.com/NYRDS/remixed-dungeon/blob/master/RemixedDungeon/src/main/java/com/watabou/pixeldungeon/actors/hero/HeroSubClass.java|HeroSubClass.java]] - Enum definition and mechanics * [[https://github.com/NYRDS/remixed-dungeon/blob/master/RemixedDungeon/src/main/java/com/watabou/pixeldungeon/items/armor/ShamanArmor.java|ShamanArmor.java]] - Subclass-specific armor ==== Code Implementation ==== // File: RemixedDungeon/src/main/java/com/watabou/pixeldungeon/actors/hero/HeroSubClass.java public enum HeroSubClass implements CharModifier { // ... SHAMAN(R.string.HeroSubClass_NameShaman, R.string.HeroSubClass_DescShaman, "ShamanArmor"), // ... @Override public int attackProc(Char attacker, Char defender, int damage) { if (this == SHAMAN && attacker.getHero() != null) { Item weapon = attacker.getBelongings().weapon; if (weapon instanceof Wand && ((Wand) weapon).affectTarget()) { if (Random.Int(4) == 0) { // 25% chance ((Wand) weapon).zapCell(defender.getPos(), defender, false); return damage; // Don't consume charge } } } return super.attackProc(attacker, defender, damage); } @Override public int dewBonus() { if (this == SHAMAN) return 1; return super.dewBonus(); } } ==== Statistics ==== * **Wand Zap Chance:** 25% (Random.Int(4) == 0) * **Dew Bonus:** +1 * **Armor Class:** ShamanArmor * **Parent Class:** ELF ==== Special Abilities ==== * **Wand Melee:** Can use wands as melee weapons (implemented in Wand.java) * **Wand Zap on Hit:** 25% chance to zap target with wand effect without consuming charge when attacking with wand equipped * **Dew Bonus:** +1 dew for enhanced mana recovery ==== String Resources ==== * **Name**: R.string.HeroSubClass_NameShaman ("Shaman" / "Шаман") * **Description**: R.string.HeroSubClass_DescShaman ("Elven Shamans can use wands as melee weapons. Successful hits have a chance to activate the wand's power on a target without using a charge.") ==== String Resource Locations ==== * [[https://github.com/NYRDS/remixed-dungeon/blob/master/RemixedDungeon/src/main/res/values/strings_all.xml#L1010-L1011|English Strings]] * [[https://github.com/NYRDS/remixed-dungeon/blob/master/RemixedDungeon/src/main/res/values-ru/strings_all.xml#L996-L997|Russian Strings]] * [[https://github.com/NYRDS/remixed-dungeon/blob/master/RemixedDungeon/src/main/res/values-es/strings_all.xml|Spanish Strings]] * [[https://github.com/NYRDS/remixed-dungeon/blob/master/RemixedDungeon/src/main/res/values-fr/strings_all.xml|French Strings]] * [[https://github.com/NYRDS/remixed-dungeon/blob/master/RemixedDungeon/src/main/res/values-de/strings_all.xml|German Strings]] * [[https://github.com/NYRDS/remixed-dungeon/blob/master/RemixedDungeon/src/main/res/values-it/strings_all.xml|Italian Strings]] * [[https://github.com/NYRDS/remixed-dungeon/blob/master/RemixedDungeon/src/main/res/values-pl/strings_all.xml|Polish Strings]] * [[https://github.com/NYRDS/remixed-dungeon/blob/master/RemixedDungeon/src/main/res/values-pt-rBR/strings_all.xml|Portuguese Strings]] * [[https://github.com/NYRDS/remixed-dungeon/blob/master/RemixedDungeon/src/main/res/values-ja/strings_all.xml|Japanese Strings]] * [[https://github.com/NYRDS/remixed-dungeon/blob/master/RemixedDungeon/src/main/res/values-ko/strings_all.xml|Korean Strings]] * [[https://github.com/NYRDS/remixed-dungeon/blob/master/RemixedDungeon/src/main/res/values-zh-rCN/strings_all.xml|Chinese (Simplified) Strings]] * [[https://github.com/NYRDS/remixed-dungeon/blob/master/RemixedDungeon/src/main/res/values-zh-rTW/strings_all.xml|Chinese (Traditional) Strings]] * [[https://github.com/NYRDS/remixed-dungeon/blob/master/RemixedDungeon/src/main/res/values-uk/strings_all.xml|Ukrainian Strings]] * [[https://github.com/NYRDS/remixed-dungeon/blob/master/RemixedDungeon/src/main/res/values-hu/strings_all.xml|Hungarian Strings]] * [[https://github.com/NYRDS/remixed-dungeon/blob/master/RemixedDungeon/src/main/res/values-tr/strings_all.xml|Turkish Strings]] * [[https://github.com/NYRDS/remixed-dungeon/blob/master/RemixedDungeon/src/main/res/values-el/strings_all.xml|Greek Strings]] * [[https://github.com/NYRDS/remixed-dungeon/blob/master/RemixedDungeon/src/main/res/values-in/strings_all.xml|Indonesian Strings]] * [[https://github.com/NYRDS/remixed-dungeon/blob/master/RemixedDungeon/src/main/res/values-ms/strings_all.xml|Malay Strings]] ==== Code References ==== * [[https://github.com/NYRDS/remixed-dungeon/blob/master/RemixedDungeon/src/main/java/com/watabou/pixeldungeon/actors/hero/HeroSubClass.java|HeroSubClass.java]] - Subclass definition and mechanics * [[https://github.com/NYRDS/remixed-dungeon/blob/master/RemixedDungeon/src/main/java/com/watabou/pixeldungeon/actors/hero/HeroSubClass.java#L144-L153|HeroSubClass.java#L144-L153]] - Exact implementation of wand-zap mechanic (25% chance when wielding wand) * [[https://github.com/NYRDS/remixed-dungeon/blob/master/RemixedDungeon/src/main/java/com/watabou/pixeldungeon/actors/hero/HeroSubClass.java#L257-L261|HeroSubClass.java#L257-L261]] - Dew bonus implementation (+1 for Shaman) * [[https://github.com/NYRDS/remixed-dungeon/blob/master/RemixedDungeon/src/main/java/com/watabou/pixeldungeon/actors/hero/HeroSubClass.java#L19-L21|HeroSubClass.java#L19-L21]] - Enum definition with armor class ("ShamanArmor") * [[https://github.com/NYRDS/remixed-dungeon/blob/master/RemixedDungeon/src/main/java/com/watabou/pixeldungeon/items/wands/Wand.java|Wand.java]] - Wand implementation enabling melee use * [[https://github.com/NYRDS/remixed-dungeon/blob/master/RemixedDungeon/src/main/java/com/watabou/pixeldungeon/items/wands/Wand.java#L92-L96|Wand.java#L92-L96]] - AffectTarget() method that checks if wand can zap * [[https://github.com/NYRDS/remixed-dungeon/blob/master/RemixedDungeon/src/main/java/com/watabou/pixeldungeon/items/wands/Wand.java#L164-L174|Wand.java#L164-L174]] - zapCell() method that performs zap without consuming charge * [[https://github.com/NYRDS/remixed-dungeon/blob/master/RemixedDungeon/src/main/java/com/watabou/pixeldungeon/items/armor/ShamanArmor.java|ShamanArmor.java]] - Shaman-specific armor ==== Related mr Entities ==== * [[mr:elf_class|Elf Class (Code Reference)]] * [[mr:shaman_armor_item|Shaman Armor (Code Reference)]] * [[mr:hero_subclass|Hero Subclass Base (Code Reference)]] ===== Unlocking ===== The Shaman subclass can be unlocked by using a [[en:rpd:tome_of_mastery_item|Tome of Mastery]] after defeating the second boss (Tengu). In code: [[https://github.com/NYRDS/remixed-dungeon/blob/master/RemixedDungeon/src/main/java/com/watabou/pixeldungeon/items/TomeOfMastery.java|TomeOfMastery.java]] {{tag> rpd subclasses machine_readable shaman elf wand melee}}