v0.8.0: Various bugfixes for:
- Goo's health bar not appearing in some cases - Viscocity not considering sources of extra damage reduction - Bolts from wand of warding not pressing tiles if they fail to summon
This commit is contained in:
parent
f9511ab03a
commit
75b8459cf0
|
@ -211,6 +211,9 @@ public class Goo extends Mob {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void damage(int dmg, Object src) {
|
public void damage(int dmg, Object src) {
|
||||||
|
if (!BossHealthBar.isAssigned()){
|
||||||
|
BossHealthBar.assignBoss( this );
|
||||||
|
}
|
||||||
boolean bleeding = (HP*2 <= HT);
|
boolean bleeding = (HP*2 <= HT);
|
||||||
super.damage(dmg, src);
|
super.damage(dmg, src);
|
||||||
if ((HP*2 <= HT) && !bleeding){
|
if ((HP*2 <= HT) && !bleeding){
|
||||||
|
|
|
@ -45,7 +45,7 @@ public class Viscosity extends Glyph {
|
||||||
|
|
||||||
//FIXME this glyph should really just proc after DR is accounted for.
|
//FIXME this glyph should really just proc after DR is accounted for.
|
||||||
//should build in functionality for that, but this works for now
|
//should build in functionality for that, but this works for now
|
||||||
int realDamage = damage - Random.NormalIntRange( armor.DRMin(), armor.DRMax());
|
int realDamage = damage - defender.drRoll();
|
||||||
|
|
||||||
if (realDamage <= 0) {
|
if (realDamage <= 0) {
|
||||||
return 0;
|
return 0;
|
||||||
|
|
|
@ -78,6 +78,7 @@ public class WandOfWarding extends Wand {
|
||||||
Char ch = Actor.findChar(bolt.collisionPos);
|
Char ch = Actor.findChar(bolt.collisionPos);
|
||||||
if (!curUser.fieldOfView[bolt.collisionPos] || !Dungeon.level.passable[bolt.collisionPos]){
|
if (!curUser.fieldOfView[bolt.collisionPos] || !Dungeon.level.passable[bolt.collisionPos]){
|
||||||
GLog.w( Messages.get(this, "bad_location"));
|
GLog.w( Messages.get(this, "bad_location"));
|
||||||
|
Dungeon.level.pressCell(bolt.collisionPos);
|
||||||
|
|
||||||
} else if (ch != null){
|
} else if (ch != null){
|
||||||
if (ch instanceof Ward){
|
if (ch instanceof Ward){
|
||||||
|
@ -89,7 +90,9 @@ public class WandOfWarding extends Wand {
|
||||||
ch.sprite.emitter().burst(MagicMissile.WardParticle.UP, ((Ward) ch).tier);
|
ch.sprite.emitter().burst(MagicMissile.WardParticle.UP, ((Ward) ch).tier);
|
||||||
} else {
|
} else {
|
||||||
GLog.w( Messages.get(this, "bad_location"));
|
GLog.w( Messages.get(this, "bad_location"));
|
||||||
|
Dungeon.level.pressCell(bolt.collisionPos);
|
||||||
}
|
}
|
||||||
|
|
||||||
} else if (canPlaceWard(bolt.collisionPos)){
|
} else if (canPlaceWard(bolt.collisionPos)){
|
||||||
Ward ward = new Ward();
|
Ward ward = new Ward();
|
||||||
ward.pos = bolt.collisionPos;
|
ward.pos = bolt.collisionPos;
|
||||||
|
@ -97,8 +100,10 @@ public class WandOfWarding extends Wand {
|
||||||
GameScene.add(ward, 1f);
|
GameScene.add(ward, 1f);
|
||||||
Dungeon.level.occupyCell(ward);
|
Dungeon.level.occupyCell(ward);
|
||||||
ward.sprite.emitter().burst(MagicMissile.WardParticle.UP, ward.tier);
|
ward.sprite.emitter().burst(MagicMissile.WardParticle.UP, ward.tier);
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
GLog.w( Messages.get(this, "bad_location"));
|
GLog.w( Messages.get(this, "bad_location"));
|
||||||
|
Dungeon.level.pressCell(bolt.collisionPos);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user