mr:shaman_subclass
Table of Contents
Shaman Subclass - Code References
Entity Information
- Entity Kind: ShamanSubclass
- Type: subclass
- Namespace: rpd
- Hero Class: ELF
- Armor Class: ShamanArmor
Java Classes
- HeroSubClass.java - Enum definition and mechanics
- 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
Code References
- HeroSubClass.java - Subclass definition and mechanics
- HeroSubClass.java#L144-L153 - Exact implementation of wand-zap mechanic (25% chance when wielding wand)
- HeroSubClass.java#L257-L261 - Dew bonus implementation (+1 for Shaman)
- HeroSubClass.java#L19-L21 - Enum definition with armor class (“ShamanArmor”)
- Wand.java - Wand implementation enabling melee use
- Wand.java#L92-L96 - AffectTarget() method that checks if wand can zap
- Wand.java#L164-L174 - zapCell() method that performs zap without consuming charge
- ShamanArmor.java - Shaman-specific armor
Related mr Entities
Unlocking
The Shaman subclass can be unlocked by using a Tome of Mastery after defeating the second boss (Tengu). In code: TomeOfMastery.java
mr/shaman_subclass.txt · Last modified: by 127.0.0.1

