User Tools

Site Tools


mr:shaman_subclass

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

mr:shaman_subclass [2026/09/06 06:29] – Fix red links: add mr:shaman_subclass, mr:wnd_priest, and pt:rpd:prison_level pages Wiki Maintenancemr:shaman_subclass [2026/09/06 06:33] (current) – external edit 127.0.0.1
Line 1: Line 1:
 +====== 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 ====
 +<code java>
 +// 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();
 +    }
 +}
 +</code>
 +
 +==== 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}}
mr/shaman_subclass.txt · Last modified: by 127.0.0.1