v0.6.2: freezing and fire now fully cancel eachother
This commit is contained in:
parent
aeb53585d1
commit
051dddf835
|
@ -42,6 +42,8 @@ public class Fire extends Blob {
|
|||
int cell;
|
||||
int fire;
|
||||
|
||||
Freezing freeze = (Freezing)Dungeon.level.blobs.get( Freezing.class );
|
||||
|
||||
boolean observe = false;
|
||||
|
||||
for (int i = area.left-1; i <= area.right; i++) {
|
||||
|
@ -49,6 +51,12 @@ public class Fire extends Blob {
|
|||
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 );
|
||||
|
||||
fire = cur[cell] - 1;
|
||||
|
@ -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);
|
||||
|
|
|
@ -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();
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user