v0.6.2: several simple bugfixes:

- fixed fire not spreading in some cases
- fixed wand of corruption awarding exp at all levels
- fixed assassin bonus damage scaling incorrectly
- fixed sprites not retaining invisibility visuals in some cases
This commit is contained in:
Evan Debenham 2017-10-11 21:52:33 -04:00
parent 19d63aef60
commit deb626e279
5 changed files with 18 additions and 8 deletions

View File

@ -69,7 +69,7 @@ public class Fire extends Blob {
} }
} else if (freeze == null || freeze.volume <= 0 || freeze.cur[cell] < 0) { } else if (freeze == null || freeze.volume <= 0 || freeze.cur[cell] <= 0) {
if (flamable[cell] if (flamable[cell]
&& (cur[cell-1] > 0 && (cur[cell-1] > 0

View File

@ -55,8 +55,8 @@ public class Preparation extends Buff implements ActionIndicator.Action {
LVL_1( 1, 0.1f, 0.0f, 1, 0), LVL_1( 1, 0.1f, 0.0f, 1, 0),
LVL_2( 3, 0.2f, 0.0f, 1, 1), LVL_2( 3, 0.2f, 0.0f, 1, 1),
LVL_3( 6, 0.3f, 0.0f, 2, 3), LVL_3( 6, 0.3f, 0.0f, 2, 3),
LVL_4( 11, 0.4f, 0.4f, 2, 5), LVL_4( 11, 0.4f, 0.6f, 2, 5),
LVL_5( 16, 0.6f, 0.6f, 3, 7); LVL_5( 16, 0.5f, 1.0f, 3, 7);
final int turnsReq; final int turnsReq;
final float baseDmgBonus, missingHPBonus; final float baseDmgBonus, missingHPBonus;
@ -80,7 +80,7 @@ public class Preparation extends Buff implements ActionIndicator.Action {
int newDmg = attacker.damageRoll(); int newDmg = attacker.damageRoll();
if (newDmg > dmg) dmg = newDmg; if (newDmg > dmg) dmg = newDmg;
} }
float defenderHPPercent = defender.HP / (float)defender.HT; float defenderHPPercent = 1f - (defender.HP / (float)defender.HT);
return Math.round(dmg * (1f + baseDmgBonus + (missingHPBonus * defenderHPPercent))); return Math.round(dmg * (1f + baseDmgBonus + (missingHPBonus * defenderHPPercent)));
} }

View File

@ -86,7 +86,7 @@ public abstract class Mob extends Char {
protected int defenseSkill = 0; protected int defenseSkill = 0;
public int EXP = 1; public int EXP = 1;
protected int maxLvl = Hero.MAX_LEVEL; public int maxLvl = Hero.MAX_LEVEL;
protected Char enemy; protected Char enemy;
protected boolean enemySeen; protected boolean enemySeen;

View File

@ -208,7 +208,7 @@ public class WandOfCorruption extends Wand {
buff.detach(); buff.detach();
} }
Buff.affect(enemy, Corruption.class); Buff.affect(enemy, Corruption.class);
if (enemy.EXP > 0) { if (enemy.EXP > 0 && curUser.lvl <= enemy.maxLvl) {
curUser.sprite.showStatus(CharSprite.POSITIVE, Messages.get(enemy, "exp", enemy.EXP)); curUser.sprite.showStatus(CharSprite.POSITIVE, Messages.get(enemy, "exp", enemy.EXP));
curUser.earnExp(enemy.EXP); curUser.earnExp(enemy.EXP);
enemy.EXP = 0; enemy.EXP = 0;

View File

@ -314,9 +314,11 @@ public class CharSprite extends MovieClip implements Tweener.Listener, MovieClip
levitation.pour( Speck.factory( Speck.JET ), 0.02f ); levitation.pour( Speck.factory( Speck.JET ), 0.02f );
break; break;
case INVISIBLE: case INVISIBLE:
if (invisible != null) {
invisible.killAndErase();
}
invisible = new AlphaTweener( this, 0.4f, 0.4f );
if (parent != null){ if (parent != null){
if (invisible != null) invisible.killAndErase();
invisible = new AlphaTweener( this, 0.4f, 0.4f );
parent.add(invisible); parent.add(invisible);
} else } else
alpha( 0.4f ); alpha( 0.4f );
@ -450,6 +452,14 @@ public class CharSprite extends MovieClip implements Tweener.Listener, MovieClip
} }
} }
@Override
public void resetColor() {
super.resetColor();
if (invisible != null){
alpha(0.4f);
}
}
public synchronized void showSleep() { public synchronized void showSleep() {
if (emo instanceof EmoIcon.Sleep) { if (emo instanceof EmoIcon.Sleep) {