diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/armor/ClassArmor.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/armor/ClassArmor.java index e87b5aef6..12dc89d9e 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/armor/ClassArmor.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/armor/ClassArmor.java @@ -278,6 +278,17 @@ abstract public class ClassArmor extends Armor { } public class Charger extends Buff { + + @Override + public boolean attachTo( Char target ) { + if (super.attachTo( target )) { + //if we're loading in and the hero has partially spent a turn, delay for 1 turn + if (now() == 0 && cooldown() == 0 && target.cooldown() > 0) spend(TICK); + return true; + } + return false; + } + @Override public boolean act() { LockedFloor lock = target.buff(LockedFloor.class); diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/artifacts/Artifact.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/artifacts/Artifact.java index 7f323a874..3db27597d 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/artifacts/Artifact.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/artifacts/Artifact.java @@ -215,6 +215,16 @@ public class Artifact extends KindofMisc { public class ArtifactBuff extends Buff { + @Override + public boolean attachTo( Char target ) { + if (super.attachTo( target )) { + //if we're loading in and the hero has partially spent a turn, delay for 1 turn + if (now() == 0 && cooldown() == 0 && target.cooldown() > 0) spend(TICK); + return true; + } + return false; + } + public int itemLevel() { return level(); } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/rings/Ring.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/rings/Ring.java index 6ed5967c2..e8c52e35c 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/rings/Ring.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/rings/Ring.java @@ -339,12 +339,20 @@ public class Ring extends KindofMisc { } public class RingBuff extends Buff { - + + @Override + public boolean attachTo( Char target ) { + if (super.attachTo( target )) { + //if we're loading in and the hero has partially spent a turn, delay for 1 turn + if (now() == 0 && cooldown() == 0 && target.cooldown() > 0) spend(TICK); + return true; + } + return false; + } + @Override public boolean act() { - spend( TICK ); - return true; } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/wands/Wand.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/wands/Wand.java index 4eaac8c65..bdffcfe7b 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/wands/Wand.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/wands/Wand.java @@ -664,12 +664,15 @@ public abstract class Wand extends Item { private static final float CHARGE_BUFF_BONUS = 0.25f; float scalingFactor = NORMAL_SCALE_FACTOR; - + @Override public boolean attachTo( Char target ) { - super.attachTo( target ); - - return true; + if (super.attachTo( target )) { + //if we're loading in and the hero has partially spent a turn, delay for 1 turn + if (now() == 0 && cooldown() == 0 && target.cooldown() > 0) spend(TICK); + return true; + } + return false; } @Override