v0.7.5: various item balance changes
This commit is contained in:
parent
388e16b53c
commit
09dd4dd053
|
@ -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 );
|
||||
|
||||
|
|
|
@ -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 {
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
|
|
Loading…
Reference in New Issue
Block a user