v0.6.0: improved striped room logic for larger sizes
This commit is contained in:
parent
94a07c9474
commit
833ca0a257
|
@ -28,6 +28,11 @@ import com.watabou.utils.Random;
|
|||
|
||||
public class StripedRoom extends StandardRoom {
|
||||
|
||||
@Override
|
||||
public float[] sizeCatProbs() {
|
||||
return new float[]{2, 1, 0};
|
||||
}
|
||||
|
||||
@Override
|
||||
public void paint(Level level) {
|
||||
Painter.fill( level, this, Terrain.WALL );
|
||||
|
@ -35,15 +40,22 @@ public class StripedRoom extends StandardRoom {
|
|||
door.set( Door.Type.REGULAR );
|
||||
}
|
||||
|
||||
Painter.fill( level, this, 1 , Terrain.EMPTY_SP );
|
||||
|
||||
if (width() > height() || (width() == height() && Random.Int(2) == 0)) {
|
||||
for (int i=left + 2; i < right; i += 2) {
|
||||
Painter.fill( level, i, top + 1, 1, height() - 2, Terrain.HIGH_GRASS );
|
||||
if (sizeCat == SizeCategory.NORMAL) {
|
||||
Painter.fill(level, this, 1, Terrain.EMPTY_SP);
|
||||
if (width() > height() || (width() == height() && Random.Int(2) == 0)) {
|
||||
for (int i = left + 2; i < right; i += 2) {
|
||||
Painter.fill(level, i, top + 1, 1, height() - 2, Terrain.HIGH_GRASS);
|
||||
}
|
||||
} else {
|
||||
for (int i = top + 2; i < bottom; i += 2) {
|
||||
Painter.fill(level, left + 1, i, width() - 2, 1, Terrain.HIGH_GRASS);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
for (int i=top + 2; i < bottom; i += 2) {
|
||||
Painter.fill( level, left + 1, i, width() - 2, 1, Terrain.HIGH_GRASS );
|
||||
|
||||
} else if (sizeCat == SizeCategory.LARGE){
|
||||
int layers = (Math.min(width(), height())-1)/2;
|
||||
for (int i = 1; i <= layers; i++){
|
||||
Painter.fill(level, this, i, (i % 2 == 1) ? Terrain.EMPTY_SP : Terrain.HIGH_GRASS);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue
Block a user