diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/armor/glyphs/Affection.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/armor/glyphs/Affection.java index dfb80fe16..4b8abeca3 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/armor/glyphs/Affection.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/armor/glyphs/Affection.java @@ -40,7 +40,10 @@ public class Affection extends Glyph { int level = Math.max(0, armor.level()); - if (Random.Int( level / 2 + 10 ) >= 9) { + // lvl 0 - 15% + // lvl 1 ~ 19% + // lvl 2 ~ 23% + if (Random.Int( level + 20 ) >= 17) { int duration = Random.IntRange( 8, 12 ); diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/rings/RingOfEnergy.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/rings/RingOfEnergy.java index ca1563a65..e14ab8d42 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/rings/RingOfEnergy.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/rings/RingOfEnergy.java @@ -30,9 +30,9 @@ public class RingOfEnergy extends Ring { public String statsInfo() { if (isIdentified()){ - return Messages.get(this, "stats", new DecimalFormat("#.##").format(100f * (Math.pow(1.25f, soloBonus()) - 1f))); + return Messages.get(this, "stats", new DecimalFormat("#.##").format(100f * (Math.pow(1.30f, soloBonus()) - 1f))); } else { - return Messages.get(this, "typical_stats", new DecimalFormat("#.##").format(25f)); + return Messages.get(this, "typical_stats", new DecimalFormat("#.##").format(30f)); } } @@ -42,7 +42,7 @@ public class RingOfEnergy extends Ring { } public static float wandChargeMultiplier( Char target ){ - return (float)Math.pow(1.25, getBonus(target, Energy.class)); + return (float)Math.pow(1.30, getBonus(target, Energy.class)); } public class Energy extends RingBuff { diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/rings/RingOfWealth.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/rings/RingOfWealth.java index e00869d39..8cb27cbec 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/rings/RingOfWealth.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/rings/RingOfWealth.java @@ -100,8 +100,8 @@ public class RingOfWealth extends Ring { //reset (if needed), decrement, and store counts if (triesToDrop == Float.MIN_VALUE) { - triesToDrop = Random.NormalIntRange(0, 60); - dropsToRare = Random.NormalIntRange(0, 20); + triesToDrop = Random.NormalIntRange(0, 50); + dropsToRare = Random.NormalIntRange(5, 10); } //now handle reward logic @@ -116,7 +116,7 @@ public class RingOfWealth extends Ring { } while (Challenges.isItemBlocked(i)); drops.add(i); latestDropWasRare = true; - dropsToRare = Random.NormalIntRange(0, 20); + dropsToRare = Random.NormalIntRange(5, 10); } else { Item i; do { @@ -125,7 +125,7 @@ public class RingOfWealth extends Ring { drops.add(i); dropsToRare--; } - triesToDrop += Random.NormalIntRange(0, 60); + triesToDrop += Random.NormalIntRange(0, 50); } //store values back into rings diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/wands/WandOfBlastWave.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/wands/WandOfBlastWave.java index 281d733a3..9a96c744b 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/wands/WandOfBlastWave.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/wands/WandOfBlastWave.java @@ -66,8 +66,6 @@ public class WandOfBlastWave extends DamageWand { Sample.INSTANCE.play( Assets.SND_BLAST ); BlastWave.blast(bolt.collisionPos); - int damage = damageRoll(); - //presses all tiles in the AOE first for (int i : PathFinder.NEIGHBOURS9){ Dungeon.level.pressCell( bolt.collisionPos+i ); @@ -79,7 +77,7 @@ public class WandOfBlastWave extends DamageWand { if (ch != null){ processSoulMark(ch, chargesPerCast()); - ch.damage(Math.round(damage * 0.667f), this); + if (ch.alignment != Char.Alignment.ALLY) ch.damage(damageRoll(), this); if (ch.isAlive()) { Ballistica trajectory = new Ballistica(ch.pos, ch.pos + i, Ballistica.MAGIC_BOLT); @@ -96,7 +94,7 @@ public class WandOfBlastWave extends DamageWand { Char ch = Actor.findChar(bolt.collisionPos); if (ch != null){ processSoulMark(ch, chargesPerCast()); - ch.damage(damage, this); + ch.damage(damageRoll(), this); if (ch.isAlive() && bolt.path.size() > bolt.dist+1) { Ballistica trajectory = new Ballistica(ch.pos, bolt.path.get(bolt.dist + 1), Ballistica.MAGIC_BOLT); diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/wands/WandOfCorrosion.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/wands/WandOfCorrosion.java index 7357ed2d2..998b98e0b 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/wands/WandOfCorrosion.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/wands/WandOfCorrosion.java @@ -54,7 +54,7 @@ public class WandOfCorrosion extends Wand { protected void onZap(Ballistica bolt) { Blob corrosiveGas = Blob.seed(bolt.collisionPos, 50 + 10 * level(), CorrosiveGas.class); CellEmitter.center(bolt.collisionPos).burst( CorrosionParticle.SPLASH, 10 ); - ((CorrosiveGas)corrosiveGas).setStrength(level()+1); + ((CorrosiveGas)corrosiveGas).setStrength(2 + level()); GameScene.add(corrosiveGas); for (int i : PathFinder.NEIGHBOURS9) { 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 3e8f06616..042f132ef 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 @@ -74,6 +74,7 @@ import com.watabou.utils.Random; import java.util.HashMap; +//TODO need to consider other balance adjustments here. Might want to put more emphasis into debuffs rather than less public class WandOfCorruption extends Wand { { @@ -84,7 +85,7 @@ public class WandOfCorruption extends Wand { // This is because the wand of corruption considers them to be a certain level of harmful // for the purposes of reducing resistance, but does not actually apply them itself - private static final float MINOR_DEBUFF_WEAKEN = 4/5f; + private static final float MINOR_DEBUFF_WEAKEN = 7/8f; private static final HashMap, Float> MINOR_DEBUFFS = new HashMap<>(); static{ MINOR_DEBUFFS.put(Weakness.class, 2f); @@ -102,7 +103,7 @@ public class WandOfCorruption extends Wand { MINOR_DEBUFFS.put(Poison.class, 0f); } - private static final float MAJOR_DEBUFF_WEAKEN = 2/3f; + private static final float MAJOR_DEBUFF_WEAKEN = 4/5f; private static final HashMap, Float> MAJOR_DEBUFFS = new HashMap<>(); static{ MAJOR_DEBUFFS.put(Amok.class, 3f); diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/wands/WandOfLivingEarth.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/wands/WandOfLivingEarth.java index 2f20f74bf..025392a73 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/wands/WandOfLivingEarth.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/wands/WandOfLivingEarth.java @@ -54,7 +54,7 @@ public class WandOfLivingEarth extends DamageWand { @Override public int min(int lvl) { - return 3 + lvl; + return 4; } @Override @@ -319,7 +319,7 @@ public class WandOfLivingEarth extends DamageWand { @Override public int damageRoll() { - return Random.NormalIntRange(3 + Dungeon.depth/4, 6 + Dungeon.depth/2); + return Random.NormalIntRange(2, 4 + Dungeon.depth/2); } @Override diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/enchantments/Corrupting.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/enchantments/Corrupting.java index 7290fbe60..a174d9e68 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/enchantments/Corrupting.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/enchantments/Corrupting.java @@ -47,12 +47,12 @@ public class Corrupting extends Weapon.Enchantment { int level = Math.max( 0, weapon.level() ); - // lvl 0 - 15% - // lvl 1 ~ 17% - // lvl 2 ~ 19% + // lvl 0 - 20% + // lvl 1 ~ 22.5% + // lvl 2 ~ 25% if (damage >= defender.HP && !defender.isImmune(Corruption.class) - && Random.Int( level + 40 ) >= 34){ + && Random.Int( level + 30 ) >= 24){ Mob enemy = (Mob) defender; Hero hero = (attacker instanceof Hero) ? (Hero) attacker : Dungeon.hero;