v0.7.2: bugfixes:
- fixed burning continuing and destroying scrolls when hero is immune - fixed unstable proccing precise + other buffs at once - fixed precise proccing far more often than intended - fixed grim proccing when the enemy is already dead - fixed chasms killing enemies that are already dead
This commit is contained in:
parent
d356f48c43
commit
14d7cedb07
|
@ -80,7 +80,7 @@ public class Burning extends Buff implements Hero.Doom {
|
||||||
@Override
|
@Override
|
||||||
public boolean act() {
|
public boolean act() {
|
||||||
|
|
||||||
if (target.isAlive()) {
|
if (target.isAlive() && !target.isImmune(getClass())) {
|
||||||
|
|
||||||
int damage = Random.NormalIntRange( 1, 3 + Dungeon.depth/4 );
|
int damage = Random.NormalIntRange( 1, 3 + Dungeon.depth/4 );
|
||||||
Buff.detach( target, Chill.class);
|
Buff.detach( target, Chill.class);
|
||||||
|
|
|
@ -321,11 +321,11 @@ public class Hero extends Char {
|
||||||
|| (((Weapon) wep).hasEnchant(Unstable.class, this) && Random.Int(11) == 0))){
|
|| (((Weapon) wep).hasEnchant(Unstable.class, this) && Random.Int(11) == 0))){
|
||||||
if (Precise.rollToGuaranteeHit((Weapon) wep)){
|
if (Precise.rollToGuaranteeHit((Weapon) wep)){
|
||||||
target.sprite.emitter().start( Speck.factory(Speck.LIGHT), 0.05f, 5 );
|
target.sprite.emitter().start( Speck.factory(Speck.LIGHT), 0.05f, 5 );
|
||||||
return Integer.MAX_VALUE;
|
|
||||||
}
|
|
||||||
if (((Weapon) wep).hasEnchant(Unstable.class, this)){
|
if (((Weapon) wep).hasEnchant(Unstable.class, this)){
|
||||||
Unstable.justRolledPrecise = true;
|
Unstable.justRolledPrecise = true;
|
||||||
}
|
}
|
||||||
|
return Integer.MAX_VALUE;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
float accuracy = 1;
|
float accuracy = 1;
|
||||||
|
|
|
@ -129,12 +129,12 @@ public class WandOfBlastWave extends DamageWand {
|
||||||
Actor.addDelayed(new Pushing(ch, ch.pos, newPos, new Callback() {
|
Actor.addDelayed(new Pushing(ch, ch.pos, newPos, new Callback() {
|
||||||
public void call() {
|
public void call() {
|
||||||
if (initialpos != ch.pos) {
|
if (initialpos != ch.pos) {
|
||||||
//something cased movement before pushing resolved, cancel to be safe.
|
//something caused movement before pushing resolved, cancel to be safe.
|
||||||
ch.sprite.place(ch.pos);
|
ch.sprite.place(ch.pos);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
ch.pos = newPos;
|
ch.pos = newPos;
|
||||||
if (ch.pos == trajectory.collisionPos) {
|
if (ch.pos == trajectory.collisionPos && ch.isAlive()) {
|
||||||
ch.damage(Random.NormalIntRange((finalDist + 1) / 2, finalDist), this);
|
ch.damage(Random.NormalIntRange((finalDist + 1) / 2, finalDist), this);
|
||||||
Paralysis.prolong(ch, Paralysis.class, Random.NormalIntRange((finalDist + 1) / 2, finalDist));
|
Paralysis.prolong(ch, Paralysis.class, Random.NormalIntRange((finalDist + 1) / 2, finalDist));
|
||||||
}
|
}
|
||||||
|
|
|
@ -40,7 +40,7 @@ public class Grim extends Weapon.Enchantment {
|
||||||
int level = Math.max( 0, weapon.level() );
|
int level = Math.max( 0, weapon.level() );
|
||||||
|
|
||||||
int enemyHealth = defender.HP - damage;
|
int enemyHealth = defender.HP - damage;
|
||||||
if (enemyHealth == 0) return damage; //no point in proccing if they're already dead.
|
if (enemyHealth <= 0) return damage; //no point in proccing if they're already dead.
|
||||||
|
|
||||||
//scales from 0 - 40% based on how low hp the enemy is, plus 2% per level
|
//scales from 0 - 40% based on how low hp the enemy is, plus 2% per level
|
||||||
float maxChance = 0.4f + .02f*level;
|
float maxChance = 0.4f + .02f*level;
|
||||||
|
|
|
@ -42,7 +42,7 @@ public class Precise extends Weapon.Enchantment {
|
||||||
// lvl 2 - 30%
|
// lvl 2 - 30%
|
||||||
int level = Math.max( 0, weapon.level() );
|
int level = Math.max( 0, weapon.level() );
|
||||||
|
|
||||||
if (Random.Int( level + 80 ) >= 7) {
|
if (Random.Int( level + 8 ) >= 7) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -125,7 +125,7 @@ public class Chasm {
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void mobFall( Mob mob ) {
|
public static void mobFall( Mob mob ) {
|
||||||
mob.die( Chasm.class );
|
if (mob.isAlive()) mob.die( Chasm.class );
|
||||||
|
|
||||||
((MobSprite)mob.sprite).fall();
|
((MobSprite)mob.sprite).fall();
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user