From 7b47dc5200ffc7309b5be7c571b84b342e107787 Mon Sep 17 00:00:00 2001 From: Evan Debenham Date: Sun, 26 Mar 2017 20:45:03 -0400 Subject: [PATCH] v0.6.0: balance changes --- .../items/armor/glyphs/Entanglement.java | 2 +- .../items/armor/glyphs/Potential.java | 6 ++---- .../items/armor/glyphs/Viscosity.java | 4 ++-- .../items/weapon/enchantments/Lucky.java | 19 ++++--------------- .../items/weapon/enchantments/Vampiric.java | 8 ++++---- .../items/weapon/melee/Greataxe.java | 2 +- .../items/weapon/melee/Greatshield.java | 4 ++-- .../messages/items/items.properties | 2 +- 8 files changed, 17 insertions(+), 30 deletions(-) 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 e121de59c..2ca96b2fa 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,7 +45,7 @@ public class Entanglement extends Glyph { if (Random.Int( 4 ) == 0) { - Buff.prolong( defender, Roots.class, 5 ); + Buff.prolong( defender, Roots.class, 3 ); Buff.affect( defender, Earthroot.Armor.class ).level( 5 + 2*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/Potential.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/armor/glyphs/Potential.java index 728ff0b47..97900f9c8 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/armor/glyphs/Potential.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/armor/glyphs/Potential.java @@ -43,15 +43,13 @@ public class Potential extends Glyph { if (Random.Int( level + 20 ) >= 18) { - int shockDmg = Random.NormalIntRange( defender.HT/20, defender.HT/10 ); - - shockDmg *= Math.pow(0.9, level); + int shockDmg = Random.NormalIntRange( 2, 6 ); defender.damage( shockDmg, LightningTrap.LIGHTNING ); checkOwner( defender ); if (defender == Dungeon.hero) { - Dungeon.hero.belongings.charge(1f); + Dungeon.hero.belongings.charge(1f + level/10f); Camera.main.shake( 2, 0.3f ); } 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 d05fabc38..8120c3b46 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 @@ -49,7 +49,7 @@ public class Viscosity extends Glyph { int level = Math.max( 0, armor.level() ); - if (Random.Int( level + 4 ) >= 3) { + if (Random.Int( level + 6 ) >= 5) { DeferedDamage debuff = defender.buff( DeferedDamage.class ); if (debuff == null) { @@ -119,7 +119,7 @@ public class Viscosity extends Glyph { public boolean act() { if (target.isAlive()) { - int damageThisTick = Math.max(1, (int)(damage*0.15f)); + int damageThisTick = Math.max(1, (int)(damage*0.1f)); target.damage( damageThisTick, this ); if (target == Dungeon.hero && !target.isAlive()) { diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/enchantments/Lucky.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/enchantments/Lucky.java index 6b622d109..6df53994d 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/enchantments/Lucky.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/enchantments/Lucky.java @@ -21,11 +21,7 @@ package com.shatteredpixel.shatteredpixeldungeon.items.weapon.enchantments; -import com.shatteredpixel.shatteredpixeldungeon.Dungeon; import com.shatteredpixel.shatteredpixeldungeon.actors.Char; -import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Berserk; -import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff; -import com.shatteredpixel.shatteredpixeldungeon.actors.hero.HeroSubClass; import com.shatteredpixel.shatteredpixeldungeon.items.weapon.Weapon; import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSprite; import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSprite.Glowing; @@ -39,19 +35,12 @@ public class Lucky extends Weapon.Enchantment { public int proc( Weapon weapon, Char attacker, Char defender, int damage ) { int level = Math.max( 0, weapon.level() ); - if (Random.Int(100) < (55 + level)){ - int exStr = 0; - if (attacker == Dungeon.hero) exStr = Math.max(0, Dungeon.hero.STR() - weapon.STRReq()); - damage = weapon.imbue.damageFactor(weapon.max()) + exStr - defender.drRoll(); + if (Random.Int(100) < (60 + level)){ + return 2*damage; } else { - damage = weapon.imbue.damageFactor(weapon.min()) - defender.drRoll(); + return 0; } - - if (attacker == Dungeon.hero && Dungeon.hero.subClass == HeroSubClass.BERSERKER ){ - damage = Buff.affect(Dungeon.hero, Berserk.class).damageFactor(damage); - } - - return Math.max(0, damage); + } @Override diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/enchantments/Vampiric.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/enchantments/Vampiric.java index c7a0d6344..c89968ba1 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/enchantments/Vampiric.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/enchantments/Vampiric.java @@ -38,10 +38,10 @@ public class Vampiric extends Weapon.Enchantment { int level = Math.max( 0, weapon.level() ); - // lvl 0 - 20% - // lvl 1 - 21.5% - // lvl 2 - 23% - int maxValue = Math.round(damage * ((level + 10) / (float)(level + 50))); + // lvl 0 - 16% + // lvl 1 - 17.65% + // lvl 2 - 19.23% + int maxValue = Math.round(damage * ((level + 8) / (float)(level + 50))); int effValue = Math.min( Random.IntRange( 0, maxValue ), attacker.HT - attacker.HP ); if (effValue > 0) { diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/Greataxe.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/Greataxe.java index 62d4415b2..a6bfd5ecf 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/Greataxe.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/Greataxe.java @@ -33,7 +33,7 @@ public class Greataxe extends MeleeWeapon { @Override public int max(int lvl) { - return 5*(tier+3) + //40 base, up from 30 + return 5*(tier+5) + //50 base, up from 30 lvl*(tier+1); //scaling unchanged } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/Greatshield.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/Greatshield.java index af5b54532..ec5ada412 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/Greatshield.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/Greatshield.java @@ -34,8 +34,8 @@ public class Greatshield extends MeleeWeapon { @Override public int max(int lvl) { - return 2*(tier+1) + //12 base, down from 30 - lvl*(tier-2); //+3 per level, down from +6 + return Math.round(2.5f*(tier+1)) + //15 base, down from 30 + lvl*(tier-2); //+3 per level, down from +6 } @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 303ab6d18..bed2f3a0b 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 @@ -750,7 +750,7 @@ items.weapon.enchantments.grim.name=grim %s items.weapon.enchantments.grim.desc=This powerful enchantment possesses the power to instantly execute an enemy. The effect is more likely to occur the weaker the enemy is. items.weapon.enchantments.lucky.name=lucky %s -items.weapon.enchantments.lucky.desc=With this enchantment a weapon will either deal its maximum or minimum damage, never an amount in between. +items.weapon.enchantments.lucky.desc=With this enchantment a weapon will deal double damage or no damage at all. Thankfully, the odds are tipped in your favour. items.weapon.enchantments.projecting.name=projecting %s items.weapon.enchantments.projecting.desc=With this enchantment melee weapons will gain extra reach. Ranged weapons will be able to penetrate nearby walls.