v3.0.0: fixed a few bugs:

- holy intuition not being usable on wands
- shield of light's duration stacking with itself
- other chars not properly triggerin guiding light
This commit is contained in:
Evan Debenham
2024-12-09 15:16:03 -05:00
parent e7d352baab
commit 1943a9f4ad
4 changed files with 11 additions and 10 deletions
@@ -80,6 +80,7 @@ import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Talent;
import com.shatteredpixel.shatteredpixeldungeon.actors.hero.abilities.duelist.Challenge;
import com.shatteredpixel.shatteredpixeldungeon.actors.hero.abilities.rogue.DeathMark;
import com.shatteredpixel.shatteredpixeldungeon.actors.hero.abilities.warrior.Endure;
import com.shatteredpixel.shatteredpixeldungeon.actors.hero.spells.GuidingLight;
import com.shatteredpixel.shatteredpixeldungeon.actors.hero.spells.ShieldOfLight;
import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.Brute;
import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.CrystalSpire;
@@ -400,6 +401,13 @@ public abstract class Char extends Actor {
//flat damage bonus is affected by multipliers
dmg += dmgBonus;
if (enemy.buff(GuidingLight.Illuminated.class) != null){
enemy.buff(GuidingLight.Illuminated.class).detach();
if (Dungeon.hero.hasTalent(Talent.SEARING_LIGHT)){
dmg += 1 + 2*Dungeon.hero.pointsInTalent(Talent.SEARING_LIGHT);
}
}
Berserk berserk = buff(Berserk.class);
if (berserk != null) dmg = berserk.damageFactor(dmg);
@@ -43,7 +43,6 @@ import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.ScrollEmpower;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.WandEmpower;
import com.shatteredpixel.shatteredpixeldungeon.actors.hero.abilities.ArmorAbility;
import com.shatteredpixel.shatteredpixeldungeon.actors.hero.abilities.Ratmogrify;
import com.shatteredpixel.shatteredpixeldungeon.actors.hero.spells.GuidingLight;
import com.shatteredpixel.shatteredpixeldungeon.actors.hero.spells.RecallInscription;
import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.Mob;
import com.shatteredpixel.shatteredpixeldungeon.effects.CellEmitter;
@@ -831,13 +830,6 @@ public enum Talent {
}
}
if (enemy.buff(GuidingLight.Illuminated.class) != null){
enemy.buff(GuidingLight.Illuminated.class).detach();
if (hero.hasTalent(Talent.SEARING_LIGHT)){
dmg += 1 + 2*hero.pointsInTalent(Talent.SEARING_LIGHT);
}
}
return dmg;
}
@@ -28,6 +28,7 @@ import com.shatteredpixel.shatteredpixeldungeon.effects.Identification;
import com.shatteredpixel.shatteredpixeldungeon.items.EquipableItem;
import com.shatteredpixel.shatteredpixeldungeon.items.Item;
import com.shatteredpixel.shatteredpixeldungeon.items.artifacts.HolyTome;
import com.shatteredpixel.shatteredpixeldungeon.items.wands.Wand;
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
import com.shatteredpixel.shatteredpixeldungeon.ui.HeroIcon;
import com.shatteredpixel.shatteredpixeldungeon.utils.GLog;
@@ -44,7 +45,7 @@ public class HolyIntuition extends InventoryClericSpell {
@Override
protected boolean usableOnItem(Item item) {
return item instanceof EquipableItem && !item.isIdentified() && !item.cursedKnown;
return (item instanceof EquipableItem || item instanceof Wand) && !item.isIdentified() && !item.cursedKnown;
}
@Override
@@ -64,7 +64,7 @@ public class ShieldOfLight extends TargetedClericSpell {
hero.sprite.operate(hero.pos);
//1 turn less as the casting is instant
Buff.affect( hero, ShieldOfLightTracker.class, 1f + 2f*hero.pointsInTalent(Talent.SHIELD_OF_LIGHT)).object = ch.id();
Buff.prolong( hero, ShieldOfLightTracker.class, 1f + 2f*hero.pointsInTalent(Talent.SHIELD_OF_LIGHT)).object = ch.id();
hero.busy();
hero.sprite.operate(hero.pos);