diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/Hero.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/Hero.java index f8273d1b9..174a00d78 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/Hero.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/Hero.java @@ -2348,6 +2348,7 @@ public class Hero extends Char { int door = Dungeon.level.map[doorCell]; SkeletonKey.keyRecharge skele = buff(SkeletonKey.keyRecharge.class); + SkeletonKey.KeyReplacementTracker keyUseTrack = buff(SkeletonKey.KeyReplacementTracker.class); if (skele != null && skele.isCursed() && Random.Int(6) != 0){ GLog.n(Messages.get(this, "key_distracted")); @@ -2358,6 +2359,9 @@ public class Hero extends Char { if (door == Terrain.LOCKED_DOOR) { hasKey = Notes.remove(new IronKey(Dungeon.depth)); if (hasKey) { + if (keyUseTrack != null){ + keyUseTrack.processIronLockOpened(); + } Level.set(doorCell, Terrain.DOOR); } } else if (door == Terrain.HERO_LKD_DR) { @@ -2367,6 +2371,9 @@ public class Hero extends Char { } else if (door == Terrain.CRYSTAL_DOOR) { hasKey = Notes.remove(new CrystalKey(Dungeon.depth)); if (hasKey) { + if (keyUseTrack != null){ + keyUseTrack.processCrystalLockOpened(); + } Level.set(doorCell, Terrain.EMPTY); Sample.INSTANCE.play(Assets.Sounds.TELEPORT); CellEmitter.get( doorCell ).start( Speck.factory( Speck.DISCOVER ), 0.025f, 20 ); @@ -2389,6 +2396,7 @@ public class Hero extends Char { Heap heap = Dungeon.level.heaps.get( ((HeroAction.OpenChest)curAction).dst ); SkeletonKey.keyRecharge skele = buff(SkeletonKey.keyRecharge.class); + SkeletonKey.KeyReplacementTracker keyUseTrack = buff(SkeletonKey.KeyReplacementTracker.class); if (skele != null && skele.isCursed() && (heap.type == Type.LOCKED_CHEST || heap.type == Type.CRYSTAL_CHEST) @@ -2402,8 +2410,14 @@ public class Hero extends Char { Sample.INSTANCE.play( Assets.Sounds.BONES ); } else if (heap.type == Type.LOCKED_CHEST){ hasKey = Notes.remove(new GoldenKey(Dungeon.depth)); + if (hasKey && keyUseTrack != null){ + keyUseTrack.processGoldLockOpened(); + } } else if (heap.type == Type.CRYSTAL_CHEST){ hasKey = Notes.remove(new CrystalKey(Dungeon.depth)); + if (hasKey && keyUseTrack != null){ + keyUseTrack.processCrystalLockOpened(); + } } if (hasKey) { diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/artifacts/SkeletonKey.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/artifacts/SkeletonKey.java index dfe94e3f7..fbf9844ea 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/artifacts/SkeletonKey.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/artifacts/SkeletonKey.java @@ -632,7 +632,7 @@ public class SkeletonKey extends Artifact { } if (removed){ GameScene.updateKeyDisplay(); - GLog.i("You discard your excess keys."); + GLog.i(Messages.get(SkeletonKey.class, "discard")); } }