Merging 1.7.5 Source: levels changes
This commit is contained in:
parent
e931525669
commit
9dab291797
|
@ -159,7 +159,7 @@ public class CavesLevel extends RegularLevel {
|
|||
for (Room r : rooms) {
|
||||
if (r.type == Type.STANDARD) {
|
||||
for (Room n : r.neigbours) {
|
||||
if (n.type == Type.STANDARD && !r.connected.containsKey( n )/* && Random.Int( 2 ) == 0*/) {
|
||||
if (n.type == Type.STANDARD && !r.connected.containsKey( n )) {
|
||||
Rect w = r.intersect( n );
|
||||
if (w.left == w.right && w.bottom - w.top >= 5) {
|
||||
|
||||
|
|
|
@ -18,6 +18,7 @@
|
|||
package com.shatteredpixel.shatteredpixeldungeon.levels;
|
||||
|
||||
import com.watabou.noosa.Scene;
|
||||
import com.watabou.noosa.tweeners.AlphaTweener;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.Assets;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.Bones;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.Dungeon;
|
||||
|
@ -180,14 +181,21 @@ public class CityBossLevel extends Level {
|
|||
|
||||
Mob boss = Bestiary.mob( Dungeon.depth );
|
||||
boss.state = boss.HUNTING;
|
||||
int count = 0;
|
||||
do {
|
||||
boss.pos = Random.Int( LENGTH );
|
||||
} while (
|
||||
!passable[boss.pos] ||
|
||||
!outsideEntraceRoom( boss.pos ) ||
|
||||
Dungeon.visible[boss.pos]);
|
||||
(Dungeon.visible[boss.pos] && count++ < 20));
|
||||
GameScene.add( boss );
|
||||
|
||||
|
||||
if (Dungeon.visible[boss.pos]) {
|
||||
boss.notice();
|
||||
boss.sprite.alpha( 0 );
|
||||
boss.sprite.parent.add( new AlphaTweener( boss.sprite, 1, 0.1f ) );
|
||||
}
|
||||
|
||||
set( arenaDoor, Terrain.LOCKED_DOOR );
|
||||
GameScene.updateMap( arenaDoor );
|
||||
Dungeon.observe();
|
||||
|
|
|
@ -85,19 +85,12 @@ public class HallsLevel extends RegularLevel {
|
|||
}
|
||||
|
||||
} else
|
||||
if (map[i] == Terrain.WALL) {
|
||||
|
||||
int count = 0;
|
||||
for (int j=0; j < NEIGHBOURS4.length; j++) {
|
||||
if (map[i + NEIGHBOURS4[j]] == Terrain.WATER) {
|
||||
count++;
|
||||
}
|
||||
}
|
||||
|
||||
if (Random.Int( 4 ) < count) {
|
||||
map[i] = Terrain.WALL_DECO;
|
||||
}
|
||||
|
||||
if (map[i] == Terrain.WALL &&
|
||||
map[i-1] != Terrain.WALL_DECO && map[i-WIDTH] != Terrain.WALL_DECO &&
|
||||
Random.Int( 20 ) == 0) {
|
||||
|
||||
map[i] = Terrain.WALL_DECO;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -47,6 +47,8 @@ import com.shatteredpixel.shatteredpixeldungeon.items.armor.Armor;
|
|||
import com.shatteredpixel.shatteredpixeldungeon.items.artifacts.AlchemistsToolkit;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.artifacts.DriedRose;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.artifacts.TimekeepersHourglass;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.bags.ScrollHolder;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.bags.SeedPouch;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.food.Blandfruit;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.food.Food;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.potions.Potion;
|
||||
|
@ -54,6 +56,7 @@ import com.shatteredpixel.shatteredpixeldungeon.items.potions.PotionOfHealing;
|
|||
import com.shatteredpixel.shatteredpixeldungeon.items.potions.PotionOfMight;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.potions.PotionOfStrength;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.rings.RingOfWealth;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.scrolls.Scroll;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.scrolls.ScrollOfUpgrade;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.scrolls.ScrollOfWeaponUpgrade;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.levels.features.Chasm;
|
||||
|
@ -116,8 +119,6 @@ public abstract class Level implements Bundlable {
|
|||
private static final String TXT_HIDDEN_PLATE_CLICKS = "A hidden pressure plate clicks!";
|
||||
|
||||
public static boolean resizingNeeded;
|
||||
// This one can be different from resizingNeeded if the level
|
||||
// was created in the older version of the game
|
||||
public static int loadedMapSize;
|
||||
|
||||
public int[] map;
|
||||
|
@ -197,7 +198,7 @@ public abstract class Level implements Bundlable {
|
|||
addItemToSpawn( new PotionOfStrength() );
|
||||
Dungeon.limitedDrops.strengthPotions.count++;
|
||||
}
|
||||
if (Dungeon.soeNeeded()) {
|
||||
if (Dungeon.souNeeded()) {
|
||||
addItemToSpawn( new ScrollOfUpgrade() );
|
||||
Dungeon.limitedDrops.upgradeScrolls.count++;
|
||||
}
|
||||
|
@ -369,7 +370,8 @@ public abstract class Level implements Bundlable {
|
|||
}
|
||||
|
||||
private void adjustMapSize() {
|
||||
// For levels from older saves
|
||||
// For levels saved before 1.6.3
|
||||
// Seeing as shattered started on 1.7.1 this is never used, but the code may be resused in future.
|
||||
if (map.length < LENGTH) {
|
||||
|
||||
resizingNeeded = true;
|
||||
|
@ -414,10 +416,13 @@ public abstract class Level implements Bundlable {
|
|||
}
|
||||
|
||||
abstract protected boolean build();
|
||||
|
||||
abstract protected void decorate();
|
||||
|
||||
abstract protected void createMobs();
|
||||
|
||||
abstract protected void createItems();
|
||||
|
||||
|
||||
public void addVisuals( Scene scene ) {
|
||||
for (int i=0; i < LENGTH; i++) {
|
||||
if (pit[i]) {
|
||||
|
@ -597,11 +602,13 @@ public abstract class Level implements Bundlable {
|
|||
|
||||
public Heap drop( Item item, int cell ) {
|
||||
|
||||
//This messy if statement deals will items which should not drop in challenges primarily.
|
||||
if ((Dungeon.isChallenged( Challenges.NO_FOOD ) && (item instanceof Food || item instanceof BlandfruitBush.Seed)) ||
|
||||
(Dungeon.isChallenged( Challenges.NO_ARMOR ) && item instanceof Armor) ||
|
||||
(Dungeon.isChallenged( Challenges.NO_HEALING ) && item instanceof PotionOfHealing) ||
|
||||
(Dungeon.isChallenged( Challenges.NO_HERBALISM ) && (item instanceof Plant.Seed || item instanceof Dewdrop)) ||
|
||||
item == null) {
|
||||
(Dungeon.isChallenged( Challenges.NO_HERBALISM ) && (item instanceof Plant.Seed || item instanceof Dewdrop || item instanceof SeedPouch)) ||
|
||||
(Dungeon.isChallenged( Challenges.NO_SCROLLS ) && ((item instanceof Scroll && !(item instanceof ScrollOfUpgrade)) || item instanceof ScrollHolder)) ||
|
||||
item == null) {
|
||||
|
||||
Heap heap = new Heap();
|
||||
GameScene.add( heap );
|
||||
|
|
|
@ -627,6 +627,9 @@ public abstract class RegularLevel extends Level {
|
|||
case 4:
|
||||
type = Heap.Type.CHEST;
|
||||
break;
|
||||
case 5:
|
||||
type = Dungeon.depth > 1 ? Heap.Type.MIMIC : Heap.Type.CHEST;
|
||||
break;
|
||||
default:
|
||||
type = Heap.Type.HEAP;
|
||||
}
|
||||
|
|
|
@ -238,18 +238,4 @@ public class Room extends Rect implements Graph.Node, Bundlable {
|
|||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
Loading…
Reference in New Issue
Block a user