From c35e750ff0b471872b3b9a0c287bcbd74a0971f8 Mon Sep 17 00:00:00 2001 From: Evan Debenham Date: Mon, 21 Mar 2022 21:00:49 -0400 Subject: [PATCH] v1.2.0: fixed armband being able to steal items blocked by challenges --- .../items/artifacts/MasterThievesArmband.java | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/artifacts/MasterThievesArmband.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/artifacts/MasterThievesArmband.java index 3cac91c8e..8d2ec6f8a 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/artifacts/MasterThievesArmband.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/artifacts/MasterThievesArmband.java @@ -22,6 +22,7 @@ package com.shatteredpixel.shatteredpixeldungeon.items.artifacts; import com.shatteredpixel.shatteredpixeldungeon.Assets; +import com.shatteredpixel.shatteredpixeldungeon.Challenges; import com.shatteredpixel.shatteredpixeldungeon.Dungeon; import com.shatteredpixel.shatteredpixeldungeon.actors.Actor; import com.shatteredpixel.shatteredpixeldungeon.actors.Char; @@ -140,14 +141,19 @@ public class MasterThievesArmband extends Artifact { GLog.w(Messages.get(MasterThievesArmband.class, "no_steal")); } else if (Random.Float() <= lootChance){ Item loot = ((Mob) ch).createLoot(); - if (loot.doPickUp(curUser)){ - //item collection happens instantly - curUser.spend(-TIME_TO_PICK_UP); + if (Challenges.isItemBlocked(loot)){ + GLog.i(Messages.get(MasterThievesArmband.class, "failed_steal")); + Buff.affect(ch, StolenTracker.class).setItemStolen(false); } else { - Dungeon.level.drop( loot, curUser.pos ).sprite.drop(); + if (loot.doPickUp(curUser)) { + //item collection happens instantly + curUser.spend(-TIME_TO_PICK_UP); + } else { + Dungeon.level.drop(loot, curUser.pos).sprite.drop(); + } + GLog.i(Messages.get(MasterThievesArmband.class, "stole_item", loot.name())); + Buff.affect(ch, StolenTracker.class).setItemStolen(true); } - GLog.i(Messages.get(MasterThievesArmband.class, "stole_item", loot.name())); - Buff.affect(ch, StolenTracker.class).setItemStolen(true); } else { GLog.i(Messages.get(MasterThievesArmband.class, "failed_steal")); Buff.affect(ch, StolenTracker.class).setItemStolen(false);