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 );