v2.5.0: fixed earthroot and living rock not applying to bone explosion
This commit is contained in:
+21
-1
@@ -27,8 +27,10 @@ import com.shatteredpixel.shatteredpixeldungeon.actors.Char;
|
|||||||
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.AscensionChallenge;
|
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.AscensionChallenge;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.items.Generator;
|
import com.shatteredpixel.shatteredpixeldungeon.items.Generator;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.items.Item;
|
import com.shatteredpixel.shatteredpixeldungeon.items.Item;
|
||||||
|
import com.shatteredpixel.shatteredpixeldungeon.items.wands.WandOfLivingEarth;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.levels.features.Chasm;
|
import com.shatteredpixel.shatteredpixeldungeon.levels.features.Chasm;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
|
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
|
||||||
|
import com.shatteredpixel.shatteredpixeldungeon.plants.Earthroot;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.sprites.SkeletonSprite;
|
import com.shatteredpixel.shatteredpixeldungeon.sprites.SkeletonSprite;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.utils.GLog;
|
import com.shatteredpixel.shatteredpixeldungeon.utils.GLog;
|
||||||
import com.watabou.noosa.audio.Sample;
|
import com.watabou.noosa.audio.Sample;
|
||||||
@@ -70,7 +72,25 @@ public class Skeleton extends Mob {
|
|||||||
if (ch != null && ch.isAlive()) {
|
if (ch != null && ch.isAlive()) {
|
||||||
int damage = Math.round(Char.combatRoll(6, 12));
|
int damage = Math.round(Char.combatRoll(6, 12));
|
||||||
damage = Math.round( damage * AscensionChallenge.statModifier(this));
|
damage = Math.round( damage * AscensionChallenge.statModifier(this));
|
||||||
//armor is 2x effective against bone explosion
|
|
||||||
|
//all sources of DR are 2x effective vs. bone explosion
|
||||||
|
//this does not consume extra uses of rock armor and earthroot armor
|
||||||
|
|
||||||
|
WandOfLivingEarth.RockArmor rockArmor = ch.buff(WandOfLivingEarth.RockArmor.class);
|
||||||
|
if (rockArmor != null) {
|
||||||
|
int preDmg = damage;
|
||||||
|
damage = rockArmor.absorb(damage);
|
||||||
|
damage *= Math.round(damage/(float)preDmg); //apply the % reduction twice
|
||||||
|
}
|
||||||
|
|
||||||
|
Earthroot.Armor armor = ch.buff( Earthroot.Armor.class );
|
||||||
|
if (damage > 0 && armor != null) {
|
||||||
|
int preDmg = damage;
|
||||||
|
damage = armor.absorb( damage );
|
||||||
|
damage -= (preDmg - damage); //apply the flat reduction twice
|
||||||
|
}
|
||||||
|
|
||||||
|
//apply DR twice (with 2 rolls for more consistency)
|
||||||
damage = Math.max( 0, damage - (ch.drRoll() + ch.drRoll()) );
|
damage = Math.max( 0, damage - (ch.drRoll() + ch.drRoll()) );
|
||||||
ch.damage( damage, this );
|
ch.damage( damage, this );
|
||||||
if (ch == Dungeon.hero && !ch.isAlive()) {
|
if (ch == Dungeon.hero && !ch.isAlive()) {
|
||||||
|
|||||||
Reference in New Issue
Block a user