v0.8.2: Fixed the following bugs:

- ring of energy not increasing ghost HP regen
- magical charge buff not increasing the range on disintegration
- remains in pit rooms rarely containing a cursed item but not being haunted
- wandmaker rarely spawning ontop of traps
- rare crash bugs when windows are saved as a scene is being cleared
This commit is contained in:
Evan Debenham 2020-08-04 19:18:23 -04:00
parent eecded2bed
commit defbb2ea5f
5 changed files with 11 additions and 6 deletions

View File

@ -278,7 +278,7 @@ public class Wandmaker extends NPC {
Wandmaker npc = new Wandmaker(); Wandmaker npc = new Wandmaker();
boolean validPos; boolean validPos;
//Do not spawn wandmaker on the entrance, or in front of a door. //Do not spawn wandmaker on the entrance, a trap, or in front of a door.
do { do {
validPos = true; validPos = true;
npc.pos = level.pointToCell(room.random()); npc.pos = level.pointToCell(room.random());
@ -290,6 +290,9 @@ public class Wandmaker extends NPC {
validPos = false; validPos = false;
} }
} }
if (Dungeon.level.traps.get(npc.pos) != null){
validPos = false;
}
} while (!validPos); } while (!validPos);
level.mobs.add( npc ); level.mobs.add( npc );

View File

@ -360,7 +360,7 @@ public class DriedRose extends Artifact {
//heals to full over 1000 turns //heals to full over 1000 turns
if (ghost.HP < ghost.HT) { if (ghost.HP < ghost.HT) {
partialCharge += ghost.HT / 1000f; partialCharge += (ghost.HT / 1000f) * RingOfEnergy.artifactChargeMultiplier(target);
updateQuickslot(); updateQuickslot();
if (partialCharge > 1) { if (partialCharge > 1) {

View File

@ -118,7 +118,7 @@ public class WandOfDisintegration extends DamageWand {
} }
private int distance() { private int distance() {
return level()*2 + 6; return buffedLvl()*2 + 6;
} }
@Override @Override

View File

@ -77,7 +77,7 @@ public class PitRoom extends SpecialRoom {
break; break;
} }
} while ( mainLoot == null || Challenges.isItemBlocked(mainLoot)); } while ( mainLoot == null || Challenges.isItemBlocked(mainLoot));
level.drop(mainLoot, remains); level.drop(mainLoot, remains).setHauntedIfCursed();
int n = Random.IntRange( 1, 2 ); int n = Random.IntRange( 1, 2 );
for (int i=0; i < n; i++) { for (int i=0; i < n; i++) {

View File

@ -138,7 +138,9 @@ public class PixelScene extends Scene {
private static ArrayList<Class<?extends Window>> savedWindows = new ArrayList<>(); private static ArrayList<Class<?extends Window>> savedWindows = new ArrayList<>();
private static Class<?extends PixelScene> savedClass = null; private static Class<?extends PixelScene> savedClass = null;
public void saveWindows(){ public synchronized void saveWindows(){
if (members == null) return;
savedWindows.clear(); savedWindows.clear();
savedClass = getClass(); savedClass = getClass();
for (Gizmo g : members.toArray(new Gizmo[0])){ for (Gizmo g : members.toArray(new Gizmo[0])){
@ -148,7 +150,7 @@ public class PixelScene extends Scene {
} }
} }
public void restoreWindows(){ public synchronized void restoreWindows(){
if (getClass().equals(savedClass)){ if (getClass().equals(savedClass)){
for (Class<?extends Window> w : savedWindows){ for (Class<?extends Window> w : savedWindows){
try{ try{