v3.3.5: gardens now properly set embers to grass, and account for fire

This commit is contained in:
Evan Debenham
2026-02-02 17:11:27 -05:00
parent c26a177332
commit 0b5fcdad87

View File

@@ -28,9 +28,11 @@ import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Hero;
import com.shatteredpixel.shatteredpixeldungeon.effects.BlobEmitter;
import com.shatteredpixel.shatteredpixeldungeon.effects.particles.ShaftParticle;
import com.shatteredpixel.shatteredpixeldungeon.journal.Notes;
import com.shatteredpixel.shatteredpixeldungeon.levels.Level;
import com.shatteredpixel.shatteredpixeldungeon.levels.Terrain;
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
import com.shatteredpixel.shatteredpixeldungeon.scenes.GameScene;
import com.watabou.utils.PathFinder;
public class Foliage extends Blob {
@@ -46,6 +48,8 @@ public class Foliage extends Blob {
boolean seen = false;
Fire fire = (Fire)Dungeon.level.blobs.get( Fire.class );
int cell;
for (int i = area.left; i < area.right; i++) {
for (int j = area.top; j < area.bottom; j++) {
@@ -56,8 +60,19 @@ public class Foliage extends Blob {
volume += off[cell];
if (map[cell] == Terrain.EMBERS) {
map[cell] = Terrain.GRASS;
GameScene.updateMap(cell);
//only turn terrain into grass if no fire is adjacent to it
boolean valid = true;
if (fire != null && fire.volume > 0) {
for (int k : PathFinder.NEIGHBOURS9) {
if (fire.cur[cell + k] > 0){
valid = false;
}
}
}
if (valid) {
Level.set(cell, Terrain.GRASS);
GameScene.updateMap(cell);
}
}
seen = seen || Dungeon.level.visited[cell];