diff --git a/core/src/main/assets/interfaces/hero_icons.png b/core/src/main/assets/interfaces/hero_icons.png
index 535eb2e75..ec1da3260 100644
Binary files a/core/src/main/assets/interfaces/hero_icons.png and b/core/src/main/assets/interfaces/hero_icons.png differ
diff --git a/core/src/main/assets/interfaces/talent_icons.png b/core/src/main/assets/interfaces/talent_icons.png
index 33be81c5e..38e831136 100644
Binary files a/core/src/main/assets/interfaces/talent_icons.png and b/core/src/main/assets/interfaces/talent_icons.png differ
diff --git a/core/src/main/assets/messages/actors/actors.properties b/core/src/main/assets/messages/actors/actors.properties
index 9de801729..658c06be8 100644
--- a/core/src/main/assets/messages/actors/actors.properties
+++ b/core/src/main/assets/messages/actors/actors.properties
@@ -547,8 +547,8 @@ actors.hero.abilities.cleric.ascendedform.desc=The Cleric projects holy energy f
actors.hero.abilities.cleric.ascendedform$ascendbuff.name=ascended form
actors.hero.abilities.cleric.ascendedform$ascendbuff.desc=Radiant energy is emanating from the Cleric's body. While in this form the Cleric gains 2 attack range (from the holy energy projecting from them), and 10 shielding whenever they spend a holy tome charge. They are also able to cast the spells which are unlocked via ascended form's talents.\n\nThe shield granted by ascended form and its spells will not decay normally, but will instantly fade when ascended form ends.\n\nCurrent shielding: %1$d.\nTurns remaining: %2$d.
actors.hero.abilities.cleric.trinity.name=trinity
-actors.hero.abilities.cleric.trinity.short_desc=_(UNFINISHED)_ The Cleric gains a _Trinity_ of new spells, which each cost tome charges and armor charge.
-actors.hero.abilities.cleric.trinity.desc=_Trinity has not been implemented yet, and so is currently unselectable._
+actors.hero.abilities.cleric.trinity.short_desc=_(UNFINISHED)_ The Cleric gains a _Trinity_ of abilities, which emulate equipment they have seen and can be swapped between by using new spells.
+actors.hero.abilities.cleric.trinity.desc=_Trinity has not been implemented yet, and so is currently unselectable._\n\nThe Cleric gains a _Trinity_ of armor abilities, which can be swapped between by using three new spells. Each of these spells focuses on emulating the effects of equipment that the Cleric has identified during this run: Body (weapons and armor), Mind (wands and thrown weapons), and Spirit (rings and artifacts).\n\nOnly one of these effects can be active at a time, changing Trinity's form will end all active Trinity effects.
actors.hero.abilities.cleric.powerofmany.name=power of many
actors.hero.abilities.cleric.powerofmany.short_desc=_(UNFINISHED)_ The Cleric channels the _Power of Many_, empowering an existing ally or creating a new one.
actors.hero.abilities.cleric.powerofmany.desc=_Power of Many has not been implemented yet, and so is currently unselectable._
@@ -568,6 +568,10 @@ actors.hero.spells.blessspell.name=bless
actors.hero.spells.blessspell.short_desc=Blesses & shields Cleric, blesses & heals others.
actors.hero.spells.blessspell.desc=The Cleric places a holy blessing on themselves or another character they can see.\n\nWhen cast on themselves the effect is weaker, granting %1$d turns of bless and %2$d barrier.\n\nWhen cast on other characters the spell is more powerful, granting %3$d turns of bless and %4$d healing. Excess healing is converted into barrier.
+actors.hero.spells.bodyform.name=body form
+actors.hero.spells.bodyform.short_desc=TODO
+actors.hero.spells.bodyform.desc=TODO
+
actors.hero.spells.cleanse.name=cleanse
actors.hero.spells.cleanse.short_desc=Clears debuffs and grants shielding.
actors.hero.spells.cleanse.desc=The Cleric instantly clears all harmful effects on themselves and visible allies. After the spell ends all characters affected also gain %1$d turns of debuff immunity, and %2$d barrier.
@@ -638,6 +642,10 @@ actors.hero.spells.judgement.name=judgement
actors.hero.spells.judgement.short_desc=Damages all visible enemies.
actors.hero.spells.judgement.desc=The Cleric slams their fist onto the ground, causing an eruption of light that deals damage to all enemies they can see. This deals %1$d-%2$d damage at base, but also deals an additional 5-10 damage for each spell the Cleric has cast since entering ascended form (or since they last cast Judgement).\n\nCurrently Judgement will deal %3$d-%4$d damage.
+actors.hero.spells.mindform.name=mind form
+actors.hero.spells.mindform.short_desc=TODO
+actors.hero.spells.mindform.desc=TODO
+
actors.hero.spells.mnemonicprayer.name=mnemonic prayer
actors.hero.spells.mnemonicprayer.short_desc=Extends buffs/debuffs on an ally/enemy, & re-applies illuminated.
actors.hero.spells.mnemonicprayer.desc=The Priest utters a prayer that extends the duration of all buffs or debuffs on a specific target by %1$d turns. Positive effects will last longer on allies (including the Priest themselves), and harmful effects will last longer on enemies. This spell will also re-apply illuminated to an enemy that has been illuminated previously.\n\nMnemonic Prayer can only extend a specific instance of a buff or debuff once, and cannot extend buffs granted from armor abilities.
@@ -658,6 +666,10 @@ actors.hero.spells.shieldoflight.desc=The Cleric creates a thin barrier of light
actors.hero.spells.shieldoflight$shieldoflighttracker.name=shield of light
actors.hero.spells.shieldoflight$shieldoflighttracker.desc=A thin shield of light is standing between the Cleric and an enemy. It's not strong enough to outright block attacks, but will soften them.\n\nTurns Remaining: %s
+actors.hero.spells.spiritform.name=spirit form
+actors.hero.spells.spiritform.short_desc=TODO
+actors.hero.spells.spiritform.desc=TODO
+
actors.hero.spells.sunray.name=sunray
actors.hero.spells.sunray.short_desc=Deals ranged magic damage and blinds a target once.
actors.hero.spells.sunray.desc=The Cleric fires a ray of blinding light at a target, dealing %1$d-%2$d damage and blinding them for %3$d turns. Sunray always deals maximum damage to undead and demonic targets.\n\nAfter being struck with this spell an enemy's vision will adjust, preventing them from being blinded by it again. However, if they are struck again while blinded by this spell, then the light is overwhelming and paralyses them instead.
@@ -1145,12 +1157,12 @@ actors.hero.talent.judgement.desc=_+1:_ While in Ascended Form, the Cleric can c
actors.hero.talent.flash.title=flash
actors.hero.talent.flash.desc=_+1:_ While in Ascended Form, the Cleric can cast _Flash_ to teleport up to _3 tiles_ away.\n\n_+2:_ While in Ascended Form, the Cleric can cast _Flash_ to teleport up to _4 tiles_ away.\n\n_+3:_ While in Ascended Form, the Cleric can cast _Flash_ to teleport up to _5 tiles_ away.\n\n_+4:_ While in Ascended Form, the Cleric can cast _Flash_ to teleport up to _6 tiles_ away.\n\nFlash costs 1 tome charge initially, and 1 more charge for each use in the same ascended form.
-actors.hero.talent.cleric_a2_1.title=Unknown
-actors.hero.talent.cleric_a2_1.desc=This talent hasn't been implemented yet, it currently does nothing.
-actors.hero.talent.cleric_a2_2.title=Unknown
-actors.hero.talent.cleric_a2_2.desc=This talent hasn't been implemented yet, it currently does nothing.
-actors.hero.talent.cleric_a2_3.title=Unknown
-actors.hero.talent.cleric_a2_3.desc=This talent hasn't been implemented yet, it currently does nothing.
+actors.hero.talent.body_form.title=body form
+actors.hero.talent.body_form.desc=The Cleric can cast _Body Form_, which causes Trinity to assume the power of an enchantment or glyph that the Cleric has identified this run, at the cost of 2 charges.\n\n_+1:_ When Trinity is used, the Cleric gains the chosen effect for _20 turns._\n\n_+2:_ When Trinity is used, the Cleric gains the chosen effect for _27 turns._\n\n_+3:_ When Trinity is used, the Cleric gains the chosen effect for _33 turns._\n\n_+4:_ When Trinity is used, the Cleric gains the chosen effect for _40 turns._\n\nTrinity's armor charge cost is higher if the chosen glyph is rare and powerful.
+actors.hero.talent.mind_form.title=mind form
+actors.hero.talent.mind_form.desc=The Cleric can cast _Mind Form_, which causes Trinity to assume the power of a wand or thrown weapon that the Cleric has used this run, at the cost of 3 charges.\n\n_+1:_ When Trinity is used, the Cleric uses the zap or throw effect of the chosen item, as if it were _+3._\n\n_+2:_ When Trinity is used, the Cleric uses the zap or throw effect of the chosen item, as if it were _+4._\n\n_+3:_ When Trinity is used, the Cleric uses the zap or throw effect of the chosen item, as if it were _+5._\n\n_+4:_ When Trinity is used, the Cleric uses the zap or throw effect of the chosen item, as if it were _+6._
+actors.hero.talent.spirit_form.title=spirit form
+actors.hero.talent.spirit_form.desc=The Cleric can cast _Spirit Form_, which causes Trinity to assume the power of a ring or artifact that the Cleric has identified this run (except the holy tome), at the cost of 4 charges.\n\n_+1:_ When Trinity is used, the Cleric will gain a ring's effect at _+1_ for 20 turns, or will trigger an artifact's effect at _+4._\n\n_+2:_ When Trinity is used, the Cleric will gain a ring's effect at _+2_ for 20 turns, or will trigger an artifact's effect at _+6._\n\n_+3:_ When Trinity is used, the Cleric will gain a ring's effect at _+3_ for 20 turns, or will trigger an artifact's effect at _+8._\n\n_+4:_ When Trinity is used, the Cleric will gain a ring's effect at _+4_ for 20 turns, or will trigger an artifact's effect at _+10._\n\nSome artifacts have different effects or armor charge costs when triggered by Trinity.
actors.hero.talent.cleric_a3_1.title=Unknown
actors.hero.talent.cleric_a3_1.desc=This talent hasn't been implemented yet, it currently does nothing.
diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/Talent.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/Talent.java
index 009635e09..3b4690333 100644
--- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/Talent.java
+++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/Talent.java
@@ -186,8 +186,8 @@ public enum Talent {
PALADINT3A(174, 3), PALADINT3B(175, 3), PALADINT3C(176, 3),
//Ascended Form T4
DIVINE_INTERVENTION(177, 4), JUDGEMENT(178, 4), FLASH(179, 4),
- //Cleric A2 T4
- CLERIC_A2_1(180, 4), CLERIC_A2_2(181, 4), CLERIC_A2_3(182, 4),
+ //Trinity T4
+ BODY_FORM(180, 4), MIND_FORM(181, 4), SPIRIT_FORM(182, 4),
//Cleric A3 T4
CLERIC_A3_1(183, 4), CLERIC_A3_2(184, 4), CLERIC_A3_3(185, 4),
diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/abilities/cleric/Trinity.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/abilities/cleric/Trinity.java
index 18fcda30e..5341411d3 100644
--- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/abilities/cleric/Trinity.java
+++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/abilities/cleric/Trinity.java
@@ -26,22 +26,65 @@ import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Talent;
import com.shatteredpixel.shatteredpixeldungeon.actors.hero.abilities.ArmorAbility;
import com.shatteredpixel.shatteredpixeldungeon.items.armor.ClassArmor;
import com.shatteredpixel.shatteredpixeldungeon.ui.HeroIcon;
+import com.shatteredpixel.shatteredpixeldungeon.utils.GLog;
+import com.watabou.utils.Bundle;
public class Trinity extends ArmorAbility {
+ {
+ baseChargeUse = 25;
+ }
+
+ private Class form = null;
+
+ @Override
+ public String targetingPrompt() {
+ //TODO varies based on form? Or just directly jump into item logic?
+ return super.targetingPrompt();
+ }
+
@Override
protected void activate(ClassArmor armor, Hero hero, Integer target) {
+ //always happens atm
+ if (form == null){
+ GLog.w("Trinity has no form currently, use one of its spells!");
+ }
+
+ }
+
+ private static final String FORM = "form";
+
+ @Override
+ public void restoreFromBundle(Bundle bundle) {
+ super.restoreFromBundle(bundle);
+ if (form != null){
+ bundle.put(FORM, form);
+ }
+ }
+
+ @Override
+ public void storeInBundle(Bundle bundle) {
+ super.storeInBundle(bundle);
+ if (bundle.contains(FORM)){
+ form = bundle.getClass(FORM);
+ }
}
@Override
public int icon() {
- return HeroIcon.CLERIC2;
+ return HeroIcon.TRINITY;
+ }
+
+ @Override
+ public String desc() {
+ //TODO a lot of variance here based on form probably.
+ return super.desc();
}
@Override
public Talent[] talents() {
- return new Talent[]{Talent.CLERIC_A2_1, Talent.CLERIC_A2_2, Talent.CLERIC_A2_3};
+ return new Talent[]{Talent.BODY_FORM, Talent.MIND_FORM, Talent.SPIRIT_FORM, Talent.HEROIC_ENERGY};
}
}
diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/spells/BodyForm.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/spells/BodyForm.java
new file mode 100644
index 000000000..b7a701e75
--- /dev/null
+++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/spells/BodyForm.java
@@ -0,0 +1,48 @@
+/*
+ * Pixel Dungeon
+ * Copyright (C) 2012-2015 Oleg Dolya
+ *
+ * Shattered Pixel Dungeon
+ * Copyright (C) 2014-2025 Evan Debenham
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see
+ */
+
+package com.shatteredpixel.shatteredpixeldungeon.actors.hero.spells;
+
+import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Hero;
+import com.shatteredpixel.shatteredpixeldungeon.items.artifacts.HolyTome;
+import com.shatteredpixel.shatteredpixeldungeon.ui.HeroIcon;
+import com.shatteredpixel.shatteredpixeldungeon.utils.GLog;
+
+public class BodyForm extends ClericSpell {
+
+ public static BodyForm INSTANCE = new BodyForm();
+
+ @Override
+ public int icon() {
+ return HeroIcon.BODY_FORM;
+ }
+
+ @Override
+ public float chargeUse(Hero hero) {
+ return 2;
+ }
+
+ @Override
+ public void onCast(HolyTome tome, Hero hero) {
+ GLog.w("not implemented yet!");
+ }
+
+}
diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/spells/ClericSpell.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/spells/ClericSpell.java
index ec1ffdb89..6a2f55d00 100644
--- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/spells/ClericSpell.java
+++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/spells/ClericSpell.java
@@ -151,15 +151,23 @@ public abstract class ClericSpell {
if (cleric.hasTalent(Talent.DIVINE_INTERVENTION)){
spells.add(DivineIntervention.INSTANCE);
}
-
if (cleric.hasTalent(Talent.JUDGEMENT)){
spells.add(Judgement.INSTANCE);
}
-
if (cleric.hasTalent(Talent.FLASH)){
spells.add(Flash.INSTANCE);
}
+ if (cleric.hasTalent(Talent.BODY_FORM)){
+ spells.add(BodyForm.INSTANCE);
+ }
+ if (cleric.hasTalent(Talent.MIND_FORM)){
+ spells.add(MindForm.INSTANCE);
+ }
+ if (cleric.hasTalent(Talent.SPIRIT_FORM)){
+ spells.add(SpiritForm.INSTANCE);
+ }
+
}
return spells;
diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/spells/MindForm.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/spells/MindForm.java
new file mode 100644
index 000000000..6726882d0
--- /dev/null
+++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/spells/MindForm.java
@@ -0,0 +1,48 @@
+/*
+ * Pixel Dungeon
+ * Copyright (C) 2012-2015 Oleg Dolya
+ *
+ * Shattered Pixel Dungeon
+ * Copyright (C) 2014-2025 Evan Debenham
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see
+ */
+
+package com.shatteredpixel.shatteredpixeldungeon.actors.hero.spells;
+
+import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Hero;
+import com.shatteredpixel.shatteredpixeldungeon.items.artifacts.HolyTome;
+import com.shatteredpixel.shatteredpixeldungeon.ui.HeroIcon;
+import com.shatteredpixel.shatteredpixeldungeon.utils.GLog;
+
+public class MindForm extends ClericSpell {
+
+ public static MindForm INSTANCE = new MindForm();
+
+ @Override
+ public int icon() {
+ return HeroIcon.MIND_FORM;
+ }
+
+ @Override
+ public float chargeUse(Hero hero) {
+ return 3;
+ }
+
+ @Override
+ public void onCast(HolyTome tome, Hero hero) {
+ GLog.w("not implemented yet!");
+ }
+
+}
diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/spells/SpiritForm.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/spells/SpiritForm.java
new file mode 100644
index 000000000..eda4da334
--- /dev/null
+++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/spells/SpiritForm.java
@@ -0,0 +1,48 @@
+/*
+ * Pixel Dungeon
+ * Copyright (C) 2012-2015 Oleg Dolya
+ *
+ * Shattered Pixel Dungeon
+ * Copyright (C) 2014-2025 Evan Debenham
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see
+ */
+
+package com.shatteredpixel.shatteredpixeldungeon.actors.hero.spells;
+
+import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Hero;
+import com.shatteredpixel.shatteredpixeldungeon.items.artifacts.HolyTome;
+import com.shatteredpixel.shatteredpixeldungeon.ui.HeroIcon;
+import com.shatteredpixel.shatteredpixeldungeon.utils.GLog;
+
+public class SpiritForm extends ClericSpell {
+
+ public static SpiritForm INSTANCE = new SpiritForm();
+
+ @Override
+ public int icon() {
+ return HeroIcon.SPIRIT_FORM;
+ }
+
+ @Override
+ public float chargeUse(Hero hero) {
+ return 4;
+ }
+
+ @Override
+ public void onCast(HolyTome tome, Hero hero) {
+ GLog.w("not implemented yet!");
+ }
+
+}
diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/HeroIcon.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/HeroIcon.java
index c9c919a8e..445ecb810 100644
--- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/HeroIcon.java
+++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/HeroIcon.java
@@ -68,7 +68,7 @@ public class HeroIcon extends Image {
public static final int ELEMENTAL_STRIKE= 29;
public static final int FEINT = 30;
public static final int ASCENDED_FORM = 31;
- public static final int CLERIC2 = 32;
+ public static final int TRINITY = 32;
public static final int CLERIC3 = 33;
public static final int RATMOGRIFY = 34;
@@ -91,6 +91,9 @@ public class HeroIcon extends Image {
public static final int DIVINE_INTERVENTION = 58;
public static final int JUDGEMENT = 59;
public static final int FLASH = 60;
+ public static final int BODY_FORM = 61;
+ public static final int MIND_FORM = 62;
+ public static final int SPIRIT_FORM = 63;
//all cleric spells have a separate icon with no background for the action indicator
public static final int SPELL_ACTION_OFFSET = 32;
diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/windows/WndChooseAbility.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/windows/WndChooseAbility.java
index da87382ee..41fec31fb 100644
--- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/windows/WndChooseAbility.java
+++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/windows/WndChooseAbility.java
@@ -38,6 +38,7 @@ import com.shatteredpixel.shatteredpixeldungeon.ui.Icons;
import com.shatteredpixel.shatteredpixeldungeon.ui.RedButton;
import com.shatteredpixel.shatteredpixeldungeon.ui.RenderedTextBlock;
import com.shatteredpixel.shatteredpixeldungeon.ui.Window;
+import com.watabou.utils.DeviceCompat;
public class WndChooseAbility extends Window {
@@ -98,7 +99,7 @@ public class WndChooseAbility extends Window {
add(abilityButton);
//TODO CLERIC these abilities aren't playable atm
- if (ability instanceof Trinity || ability instanceof PowerOfMany){
+ if (!DeviceCompat.isDebug() && (ability instanceof Trinity || ability instanceof PowerOfMany)){
abilityButton.enable(false);
}
diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/windows/WndChooseSubclass.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/windows/WndChooseSubclass.java
index 1f397c91b..6e4c7631e 100644
--- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/windows/WndChooseSubclass.java
+++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/windows/WndChooseSubclass.java
@@ -35,6 +35,7 @@ import com.shatteredpixel.shatteredpixeldungeon.ui.Icons;
import com.shatteredpixel.shatteredpixeldungeon.ui.RedButton;
import com.shatteredpixel.shatteredpixeldungeon.ui.RenderedTextBlock;
import com.shatteredpixel.shatteredpixeldungeon.ui.Window;
+import com.watabou.utils.DeviceCompat;
public class WndChooseSubclass extends Window {
@@ -85,7 +86,7 @@ public class WndChooseSubclass extends Window {
add( btnCls );
//TODO CLERIC paladin is not implemented yet
- if (subCls == HeroSubClass.PALADIN){
+ if (!DeviceCompat.isDebug() && subCls == HeroSubClass.PALADIN){
btnCls.enable(false);
}