v0.2.2b: fixed interaction between challenges and bones

This commit is contained in:
Evan Debenham 2014-11-15 18:45:21 -05:00
parent 1703c7108d
commit 9943f5da90

View File

@ -47,15 +47,17 @@ public class Bones {
depth = Dungeon.depth; depth = Dungeon.depth;
//heroes which have won the game, who die far above their farthest depth, or who are challenged drop no bones. //heroes which have won the game, who die far above their farthest depth, or who are challenged drop no bones.
if (Statistics.amuletObtained || (Statistics.deepestFloor - 5) >= depth || Dungeon.challenges > 0) if (Statistics.amuletObtained || (Statistics.deepestFloor - 5) >= depth || Dungeon.challenges > 0) {
depth = -1;
return; return;
}
item = pickItem(Dungeon.hero); item = pickItem(Dungeon.hero);
Bundle bundle = new Bundle(); Bundle bundle = new Bundle();
bundle.put( LEVEL, depth ); bundle.put( LEVEL, depth );
bundle.put( ITEM, item ); bundle.put( ITEM, item );
try { try {
OutputStream output = Game.instance.openFileOutput( BONES_FILE, Game.MODE_PRIVATE ); OutputStream output = Game.instance.openFileOutput( BONES_FILE, Game.MODE_PRIVATE );
Bundle.write( bundle, output ); Bundle.write( bundle, output );
@ -118,30 +120,27 @@ public class Bones {
} }
return item; return item;
} }
public static Item get() { public static Item get() {
if (depth == -1) { if (depth == -1) {
//challenged heroes cannot find bones.
if (Dungeon.challenges > 0)
return null;
try { try {
InputStream input = Game.instance.openFileInput( BONES_FILE ) ; InputStream input = Game.instance.openFileInput( BONES_FILE ) ;
Bundle bundle = Bundle.read( input ); Bundle bundle = Bundle.read( input );
input.close(); input.close();
depth = bundle.getInt( LEVEL ); depth = bundle.getInt( LEVEL );
item = (Item)bundle.get( ITEM ); item = (Item)bundle.get( ITEM );
return get(); return get();
} catch (Exception e) { } catch (Exception e) {
return null; return null;
} }
} else { } else {
if (depth == Dungeon.depth) { //heroes who are challenged cannot find bones
if (depth == Dungeon.depth && Dungeon.challenges == 0) {
Game.instance.deleteFile( BONES_FILE ); Game.instance.deleteFile( BONES_FILE );
depth = 0; depth = 0;