v0.6.2: freezing and fire now fully cancel eachother

This commit is contained in:
Evan Debenham 2017-09-30 16:28:05 -04:00
parent aeb53585d1
commit 051dddf835
2 changed files with 17 additions and 3 deletions

View File

@ -41,6 +41,8 @@ public class Fire extends Blob {
boolean[] flamable = Dungeon.level.flamable;
int cell;
int fire;
Freezing freeze = (Freezing)Dungeon.level.blobs.get( Freezing.class );
boolean observe = false;
@ -48,6 +50,12 @@ public class Fire extends Blob {
for (int j = area.top-1; j <= area.bottom; j++) {
cell = i + j*Dungeon.level.width();
if (cur[cell] > 0) {
if (freeze != null && freeze.cur[cell] > 0){
freeze.clear(cell);
off[cell] = cur[cell] = 0;
continue;
}
burn( cell );
@ -61,7 +69,7 @@ public class Fire extends Blob {
}
} else {
} else if (freeze == null || freeze.cur[cell] < 0) {
if (flamable[cell]
&& (cur[cell-1] > 0
@ -75,6 +83,8 @@ public class Fire extends Blob {
fire = 0;
}
} else {
fire = 0;
}
volume += (off[cell] = fire);

View File

@ -49,6 +49,12 @@ public class Freezing extends Blob {
cell = i + j*Dungeon.level.width();
if (cur[cell] > 0) {
if (fire != null && fire.cur[cell] > 0){
fire.clear(cell);
off[cell] = cur[cell] = 0;
continue;
}
Char ch = Actor.findChar( cell );
if (ch != null) {
if (ch.buff(Frost.class) != null){
@ -62,8 +68,6 @@ public class Freezing extends Blob {
}
}
if (fire != null) fire.clear(cell);
Heap heap = Dungeon.level.heaps.get( cell );
if (heap != null) heap.freeze();