// 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(); } }
The Shaman subclass can be unlocked by using a Tome of Mastery after defeating the second boss (Tengu). In code: TomeOfMastery.java