v0.7.5: various item balance changes

This commit is contained in:
Evan Debenham 2019-09-12 19:49:13 -04:00
parent 388e16b53c
commit 09dd4dd053
8 changed files with 23 additions and 21 deletions

View File

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

View File

@ -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 {

View File

@ -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

View File

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

View File

@ -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) {

View File

@ -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<Class<? extends Buff>, 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<Class<? extends Buff>, Float> MAJOR_DEBUFFS = new HashMap<>();
static{
MAJOR_DEBUFFS.put(Amok.class, 3f);

View File

@ -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

View File

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