diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Venom.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Venom.java index d7121f3a7..51e91dc0c 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Venom.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Venom.java @@ -32,7 +32,7 @@ import com.watabou.utils.Bundle; //FIXME do proper translation stuff for new text here in 0.6.3 (heromsg, ondeath, rankings_desc) public class Venom extends Buff implements Hero.Doom { - private int damage = 1; + private float damage = 1; protected float left; private static final String DAMAGE = "damage"; @@ -52,7 +52,7 @@ public class Venom extends Buff implements Hero.Doom { @Override public void restoreFromBundle( Bundle bundle ) { super.restoreFromBundle( bundle ); - damage = bundle.getInt( DAMAGE ); + damage = bundle.getFloat( DAMAGE ); left = bundle.getFloat( LEFT ); } @@ -79,9 +79,12 @@ public class Venom extends Buff implements Hero.Doom { @Override public boolean act() { if (target.isAlive()) { - target.damage(damage, this); - if (damage < ((Dungeon.depth+1)/2)+1) + target.damage((int)damage, this); + if (damage < (Dungeon.depth/2)+2) { damage++; + } else { + damage += 0.5f; + } spend( TICK ); if ((left -= TICK) <= 0) { diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/Hero.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/Hero.java index 053654f0d..71e3b4d84 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/Hero.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/Hero.java @@ -311,16 +311,16 @@ public class Hero extends Char { @Override public int defenseSkill( Char enemy ) { - float evasion = 1f * RingOfEvasion.evasionMultiplier( this ); + float multiplier = 1f * RingOfEvasion.evasionMultiplier( this ); if (paralysed > 0) { - evasion /= 2; + multiplier /= 2; } int aEnc = belongings.armor != null ? belongings.armor.STRReq() - STR() : 10 - STR(); if (aEnc > 0) { - evasion /= Math.pow( 1.5, aEnc ); + multiplier /= Math.pow( 1.5, aEnc ); } int bonus = 0; @@ -332,7 +332,7 @@ public class Hero extends Char { bonus += momentum.evasionBonus(Math.max(0, -aEnc)); } - return Math.round((defenseSkill + bonus) * evasion); + return Math.round((defenseSkill * multiplier) + bonus); } @Override diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/armor/glyphs/Entanglement.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/armor/glyphs/Entanglement.java index 2ca96b2fa..d246b76b4 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/armor/glyphs/Entanglement.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/armor/glyphs/Entanglement.java @@ -45,8 +45,8 @@ public class Entanglement extends Glyph { if (Random.Int( 4 ) == 0) { - Buff.prolong( defender, Roots.class, 3 ); - Buff.affect( defender, Earthroot.Armor.class ).level( 5 + 2*level ); + Buff.prolong( defender, Roots.class, 3 - level/5 ); + Buff.affect( defender, Earthroot.Armor.class ).level( 4 + 4*level ); CellEmitter.bottom( defender.pos ).start( EarthParticle.FACTORY, 0.05f, 8 ); Camera.main.shake( 1, 0.4f ); diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/armor/glyphs/Obfuscation.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/armor/glyphs/Obfuscation.java index 2decc2752..09c17aec6 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/armor/glyphs/Obfuscation.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/armor/glyphs/Obfuscation.java @@ -35,11 +35,6 @@ public class Obfuscation extends Armor.Glyph { return damage; } - @Override - public int tierDRAdjust() { - return -1; - } - @Override public ItemSprite.Glowing glowing() { return GREY; diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/wands/WandOfCorruption.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/wands/WandOfCorruption.java index 836a7747e..e30163d19 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/wands/WandOfCorruption.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/wands/WandOfCorruption.java @@ -140,7 +140,7 @@ public class WandOfCorruption extends Wand { enemyResist = 1 + Dungeon.depth/2f; } else if (ch instanceof Wraith) { //this is so low because wraiths are always at max hp - enemyResist = 1 + Dungeon.depth/5f; + enemyResist = 0.5f + Dungeon.depth/8f; } else if (ch instanceof Yog.BurningFist || ch instanceof Yog.RottingFist) { enemyResist = 1 + 30; } else if (ch instanceof Yog.Larva || ch instanceof King.Undead){ @@ -184,12 +184,19 @@ public class WandOfCorruption extends Wand { } private void debuffEnemy( Mob enemy, HashMap, Float> category ){ + + //do not consider buffs which are already assigned, or that the enemy is immune to. HashMap, Float> debuffs = new HashMap<>(category); for (Buff existing : enemy.buffs()){ if (debuffs.containsKey(existing.getClass())) { debuffs.put(existing.getClass(), 0f); } } + for (Class toAssign : debuffs.keySet()){ + if (debuffs.get(toAssign) > 0 && enemy.immunities().contains(toAssign)){ + debuffs.put(toAssign, 0f); + } + } //all buffs with a > 0 chance are flavor buffs Class debuffCls = (Class) Random.chances(debuffs); diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/BattleAxe.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/BattleAxe.java index 509113330..fb4eafeaf 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/BattleAxe.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/BattleAxe.java @@ -29,7 +29,7 @@ public class BattleAxe extends MeleeWeapon { image = ItemSpriteSheet.BATTLE_AXE; tier = 4; - ACC = 1.175f; //17.5% boost to accuracy + ACC = 1.24f; //24% boost to accuracy } @Override diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/Flail.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/Flail.java index 22f1df5de..75437780e 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/Flail.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/Flail.java @@ -29,7 +29,7 @@ public class Flail extends MeleeWeapon { image = ItemSpriteSheet.FLAIL; tier = 4; - ACC = 0.8f; //0.8x accuracy + ACC = 0.9f; //0.9x accuracy //also cannot surprise attack, see Hero.canSurpriseAttack } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/HandAxe.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/HandAxe.java index 305d0f743..b697292bf 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/HandAxe.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/HandAxe.java @@ -29,7 +29,7 @@ public class HandAxe extends MeleeWeapon { image = ItemSpriteSheet.HAND_AXE; tier = 2; - ACC = 1.225f; //22.5% boost to accuracy + ACC = 1.32f; //32% boost to accuracy } @Override diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/Mace.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/Mace.java index cff812eb2..a87789f90 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/Mace.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/Mace.java @@ -29,7 +29,7 @@ public class Mace extends MeleeWeapon { image = ItemSpriteSheet.MACE; tier = 3; - ACC = 1.2f; //20% boost to accuracy + ACC = 1.28f; //28% boost to accuracy } @Override diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/WarHammer.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/WarHammer.java index 7524a8e8d..15d179c17 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/WarHammer.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/WarHammer.java @@ -29,7 +29,7 @@ public class WarHammer extends MeleeWeapon { image = ItemSpriteSheet.WAR_HAMMER; tier = 5; - ACC = 1.15f; //15% boost to accuracy + ACC = 1.20f; //20% boost to accuracy } @Override diff --git a/core/src/main/resources/com/shatteredpixel/shatteredpixeldungeon/messages/items/items.properties b/core/src/main/resources/com/shatteredpixel/shatteredpixeldungeon/messages/items/items.properties index 516b88803..1289db8cc 100644 --- a/core/src/main/resources/com/shatteredpixel/shatteredpixeldungeon/messages/items/items.properties +++ b/core/src/main/resources/com/shatteredpixel/shatteredpixeldungeon/messages/items/items.properties @@ -38,7 +38,7 @@ items.armor.glyphs.flow.name=%s of flow items.armor.glyphs.flow.desc=This glyph manipulates the flow of water around the wearer, making them much faster when moving through it. items.armor.glyphs.obfuscation.name=%s of obfuscation -items.armor.glyphs.obfuscation.desc=This glyph makes the wearer more difficult to detect, at the cost of defense. +items.armor.glyphs.obfuscation.desc=This glyph obscures the wearer, making them more difficult to detect. items.armor.glyphs.potential.name=%s of potential items.armor.glyphs.potential.rankings_desc=Killed by: glyph of potential