diff --git a/android/src/main/AndroidManifest.xml b/android/src/main/AndroidManifest.xml index 2664cc4a3..6faf877ed 100644 --- a/android/src/main/AndroidManifest.xml +++ b/android/src/main/AndroidManifest.xml @@ -22,6 +22,7 @@ android:label="${appName}" android:theme="@android:style/Theme.Black.NoTitleBar" android:resizeableActivity="true" + android:launchMode="singleInstance" android:allowBackup="true" android:fullBackupOnly="true" android:backupAgent=".AndroidBackupHandler"> diff --git a/android/src/main/java/com/shatteredpixel/shatteredpixeldungeon/android/AndroidGame.java b/android/src/main/java/com/shatteredpixel/shatteredpixeldungeon/android/AndroidGame.java index 356c31093..0b92bbe00 100644 --- a/android/src/main/java/com/shatteredpixel/shatteredpixeldungeon/android/AndroidGame.java +++ b/android/src/main/java/com/shatteredpixel/shatteredpixeldungeon/android/AndroidGame.java @@ -42,7 +42,7 @@ public class AndroidGame extends AndroidApplication { public static AndroidApplication instance; protected static GLSurfaceView view; - private AndroidPlatformSupport support; + private static AndroidPlatformSupport support; @Override protected void onCreate (Bundle savedInstanceState) { @@ -92,7 +92,8 @@ public class AndroidGame extends AndroidApplication { config.useCompass = false; config.useAccelerometer = false; - support = new AndroidPlatformSupport(); + if (support == null) support = new AndroidPlatformSupport(); + else support.resetGenerators(); support.updateSystemUI(); diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/DM200.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/DM200.java index 992078ec1..99e679b73 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/DM200.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/DM200.java @@ -81,6 +81,7 @@ public class DM200 extends Mob { } protected Item createLoot() { + Dungeon.LimitedDrops.DM200_EQUIP.count++; //uses probability tables for dwarf city if (loot == Generator.Category.WEAPON){ return Generator.randomWeapon(4); diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Golem.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Golem.java index d32d6ad30..66a41ab23 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Golem.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Golem.java @@ -82,6 +82,7 @@ public class Golem extends Mob { } protected Item createLoot() { + Dungeon.LimitedDrops.GOLEM_EQUIP.count++; //uses probability tables for demon halls if (loot == Generator.Category.WEAPON){ return Generator.randomWeapon(5); diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Guard.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Guard.java index 6141f22ae..d0c69cf63 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Guard.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Guard.java @@ -135,6 +135,12 @@ public class Guard extends Mob { super.rollToDropLoot(); } + @Override + protected Item createLoot() { + Dungeon.LimitedDrops.GUARD_ARM.count++; + return super.createLoot(); + } + private final String CHAINSUSED = "chainsused"; @Override diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/NewTengu.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/NewTengu.java index ae02ac454..348d2bbf5 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/NewTengu.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/NewTengu.java @@ -32,6 +32,7 @@ import com.shatteredpixel.shatteredpixeldungeon.actors.blobs.Fire; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Blindness; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Burning; +import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Doom; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.LockedFloor; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Terror; import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Hero; @@ -121,7 +122,7 @@ public class NewTengu extends Mob { //Tengu is immune to debuffs and damage when removed from the level @Override public void add(Buff buff) { - if (Actor.chars().contains(this)){ + if (Actor.chars().contains(this) || buff instanceof Doom){ super.add(buff); } } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Skeleton.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Skeleton.java index c819550aa..53bc907cc 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Skeleton.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Skeleton.java @@ -95,7 +95,13 @@ public class Skeleton extends Mob { lootChance *= Math.pow(1/2f, Dungeon.LimitedDrops.SKELE_WEP.count); super.rollToDropLoot(); } - + + @Override + protected Item createLoot() { + Dungeon.LimitedDrops.SKELE_WEP.count++; + return super.createLoot(); + } + @Override public int attackSkill( Char target ) { return 12; diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/NewPrisonBossLevel.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/NewPrisonBossLevel.java index 9035b5fbf..190305a71 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/NewPrisonBossLevel.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/NewPrisonBossLevel.java @@ -29,6 +29,7 @@ import com.shatteredpixel.shatteredpixeldungeon.actors.Char; import com.shatteredpixel.shatteredpixeldungeon.actors.blobs.Blob; import com.shatteredpixel.shatteredpixeldungeon.actors.blobs.Regrowth; import com.shatteredpixel.shatteredpixeldungeon.actors.blobs.StormCloud; +import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Doom; import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.Mob; import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.NewTengu; import com.shatteredpixel.shatteredpixeldungeon.effects.CellEmitter; @@ -397,11 +398,13 @@ public class NewPrisonBossLevel extends Level { setMapPause(); cleanMapState(); - + + Doom d = tengu.buff(Doom.class); Actor.remove(tengu); mobs.remove(tengu); TargetHealthIndicator.instance.target(null); tengu.sprite.kill(); + if (d != null) tengu.add(d); GameScene.flash(0xFFFFFF); Sample.INSTANCE.play(Assets.Sounds.BLAST); diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/windows/WndInfoCell.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/windows/WndInfoCell.java index b82016c48..087244708 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/windows/WndInfoCell.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/windows/WndInfoCell.java @@ -106,12 +106,14 @@ public class WndInfoCell extends Window { RenderedTextBlock info = PixelScene.renderTextBlock(6); add(info); - for (Blob blob:Dungeon.level.blobs.values()) { - if (blob.volume > 0 && blob.cur[cell] > 0 && blob.tileDesc() != null) { - if (desc.length() > 0) { - desc += "\n\n"; + if (Dungeon.level.heroFOV[cell]) { + for (Blob blob : Dungeon.level.blobs.values()) { + if (blob.volume > 0 && blob.cur[cell] > 0 && blob.tileDesc() != null) { + if (desc.length() > 0) { + desc += "\n\n"; + } + desc += blob.tileDesc(); } - desc += blob.tileDesc(); } }