From 2abd667329c84944319c162001ed6712801cb242 Mon Sep 17 00:00:00 2001 From: Evan Debenham <Evan@ShatteredPixel.com> Date: Fri, 4 May 2018 16:01:07 -0400 Subject: [PATCH] v0.6.5a: quick-fixed an issue with viscocity --- .../items/armor/glyphs/Viscosity.java | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/armor/glyphs/Viscosity.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/armor/glyphs/Viscosity.java index aa24a9282..c2712a28b 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/armor/glyphs/Viscosity.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/armor/glyphs/Viscosity.java @@ -34,6 +34,7 @@ import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSprite.Glowing; import com.shatteredpixel.shatteredpixeldungeon.ui.BuffIndicator; import com.shatteredpixel.shatteredpixeldungeon.utils.GLog; import com.watabou.utils.Bundle; +import com.watabou.utils.Random; public class Viscosity extends Glyph { @@ -42,15 +43,19 @@ public class Viscosity extends Glyph { @Override public int proc( Armor armor, Char attacker, Char defender, int damage ) { - if (damage == 0) { + //FIXME this glyph should really just proc after DR is accounted for. + //should build in functionality for that, but this works for now + int realDamage = damage - Random.NormalIntRange( armor.DRMin(), armor.DRMax()); + + if (realDamage <= 0) { return 0; } - + int level = Math.max( 0, armor.level() ); float percent = (level+1)/(float)(level+6); - int amount = (int)Math.ceil(damage * percent); - + int amount = (int)Math.ceil(realDamage * percent); + DeferedDamage deferred = Buff.affect( defender, DeferedDamage.class ); deferred.prolong( amount );