v3.3.0: fixed lock usage not being tracked when normal keys are used
This commit is contained in:
@@ -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) {
|
||||
|
||||
@@ -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"));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user