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());
|
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 );
|
int duration = Random.IntRange( 8, 12 );
|
||||||
|
|
||||||
|
|
|
@ -30,9 +30,9 @@ public class RingOfEnergy extends Ring {
|
||||||
|
|
||||||
public String statsInfo() {
|
public String statsInfo() {
|
||||||
if (isIdentified()){
|
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 {
|
} 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 ){
|
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 {
|
public class Energy extends RingBuff {
|
||||||
|
|
|
@ -100,8 +100,8 @@ public class RingOfWealth extends Ring {
|
||||||
|
|
||||||
//reset (if needed), decrement, and store counts
|
//reset (if needed), decrement, and store counts
|
||||||
if (triesToDrop == Float.MIN_VALUE) {
|
if (triesToDrop == Float.MIN_VALUE) {
|
||||||
triesToDrop = Random.NormalIntRange(0, 60);
|
triesToDrop = Random.NormalIntRange(0, 50);
|
||||||
dropsToRare = Random.NormalIntRange(0, 20);
|
dropsToRare = Random.NormalIntRange(5, 10);
|
||||||
}
|
}
|
||||||
|
|
||||||
//now handle reward logic
|
//now handle reward logic
|
||||||
|
@ -116,7 +116,7 @@ public class RingOfWealth extends Ring {
|
||||||
} while (Challenges.isItemBlocked(i));
|
} while (Challenges.isItemBlocked(i));
|
||||||
drops.add(i);
|
drops.add(i);
|
||||||
latestDropWasRare = true;
|
latestDropWasRare = true;
|
||||||
dropsToRare = Random.NormalIntRange(0, 20);
|
dropsToRare = Random.NormalIntRange(5, 10);
|
||||||
} else {
|
} else {
|
||||||
Item i;
|
Item i;
|
||||||
do {
|
do {
|
||||||
|
@ -125,7 +125,7 @@ public class RingOfWealth extends Ring {
|
||||||
drops.add(i);
|
drops.add(i);
|
||||||
dropsToRare--;
|
dropsToRare--;
|
||||||
}
|
}
|
||||||
triesToDrop += Random.NormalIntRange(0, 60);
|
triesToDrop += Random.NormalIntRange(0, 50);
|
||||||
}
|
}
|
||||||
|
|
||||||
//store values back into rings
|
//store values back into rings
|
||||||
|
|
|
@ -66,8 +66,6 @@ public class WandOfBlastWave extends DamageWand {
|
||||||
Sample.INSTANCE.play( Assets.SND_BLAST );
|
Sample.INSTANCE.play( Assets.SND_BLAST );
|
||||||
BlastWave.blast(bolt.collisionPos);
|
BlastWave.blast(bolt.collisionPos);
|
||||||
|
|
||||||
int damage = damageRoll();
|
|
||||||
|
|
||||||
//presses all tiles in the AOE first
|
//presses all tiles in the AOE first
|
||||||
for (int i : PathFinder.NEIGHBOURS9){
|
for (int i : PathFinder.NEIGHBOURS9){
|
||||||
Dungeon.level.pressCell( bolt.collisionPos+i );
|
Dungeon.level.pressCell( bolt.collisionPos+i );
|
||||||
|
@ -79,7 +77,7 @@ public class WandOfBlastWave extends DamageWand {
|
||||||
|
|
||||||
if (ch != null){
|
if (ch != null){
|
||||||
processSoulMark(ch, chargesPerCast());
|
processSoulMark(ch, chargesPerCast());
|
||||||
ch.damage(Math.round(damage * 0.667f), this);
|
if (ch.alignment != Char.Alignment.ALLY) ch.damage(damageRoll(), this);
|
||||||
|
|
||||||
if (ch.isAlive()) {
|
if (ch.isAlive()) {
|
||||||
Ballistica trajectory = new Ballistica(ch.pos, ch.pos + i, Ballistica.MAGIC_BOLT);
|
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);
|
Char ch = Actor.findChar(bolt.collisionPos);
|
||||||
if (ch != null){
|
if (ch != null){
|
||||||
processSoulMark(ch, chargesPerCast());
|
processSoulMark(ch, chargesPerCast());
|
||||||
ch.damage(damage, this);
|
ch.damage(damageRoll(), this);
|
||||||
|
|
||||||
if (ch.isAlive() && bolt.path.size() > bolt.dist+1) {
|
if (ch.isAlive() && bolt.path.size() > bolt.dist+1) {
|
||||||
Ballistica trajectory = new Ballistica(ch.pos, bolt.path.get(bolt.dist + 1), Ballistica.MAGIC_BOLT);
|
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) {
|
protected void onZap(Ballistica bolt) {
|
||||||
Blob corrosiveGas = Blob.seed(bolt.collisionPos, 50 + 10 * level(), CorrosiveGas.class);
|
Blob corrosiveGas = Blob.seed(bolt.collisionPos, 50 + 10 * level(), CorrosiveGas.class);
|
||||||
CellEmitter.center(bolt.collisionPos).burst( CorrosionParticle.SPLASH, 10 );
|
CellEmitter.center(bolt.collisionPos).burst( CorrosionParticle.SPLASH, 10 );
|
||||||
((CorrosiveGas)corrosiveGas).setStrength(level()+1);
|
((CorrosiveGas)corrosiveGas).setStrength(2 + level());
|
||||||
GameScene.add(corrosiveGas);
|
GameScene.add(corrosiveGas);
|
||||||
|
|
||||||
for (int i : PathFinder.NEIGHBOURS9) {
|
for (int i : PathFinder.NEIGHBOURS9) {
|
||||||
|
|
|
@ -74,6 +74,7 @@ import com.watabou.utils.Random;
|
||||||
|
|
||||||
import java.util.HashMap;
|
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 {
|
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
|
// 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
|
// 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<>();
|
private static final HashMap<Class<? extends Buff>, Float> MINOR_DEBUFFS = new HashMap<>();
|
||||||
static{
|
static{
|
||||||
MINOR_DEBUFFS.put(Weakness.class, 2f);
|
MINOR_DEBUFFS.put(Weakness.class, 2f);
|
||||||
|
@ -102,7 +103,7 @@ public class WandOfCorruption extends Wand {
|
||||||
MINOR_DEBUFFS.put(Poison.class, 0f);
|
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<>();
|
private static final HashMap<Class<? extends Buff>, Float> MAJOR_DEBUFFS = new HashMap<>();
|
||||||
static{
|
static{
|
||||||
MAJOR_DEBUFFS.put(Amok.class, 3f);
|
MAJOR_DEBUFFS.put(Amok.class, 3f);
|
||||||
|
|
|
@ -54,7 +54,7 @@ public class WandOfLivingEarth extends DamageWand {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int min(int lvl) {
|
public int min(int lvl) {
|
||||||
return 3 + lvl;
|
return 4;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -319,7 +319,7 @@ public class WandOfLivingEarth extends DamageWand {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int damageRoll() {
|
public int damageRoll() {
|
||||||
return Random.NormalIntRange(3 + Dungeon.depth/4, 6 + Dungeon.depth/2);
|
return Random.NormalIntRange(2, 4 + Dungeon.depth/2);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -47,12 +47,12 @@ public class Corrupting extends Weapon.Enchantment {
|
||||||
|
|
||||||
int level = Math.max( 0, weapon.level() );
|
int level = Math.max( 0, weapon.level() );
|
||||||
|
|
||||||
// lvl 0 - 15%
|
// lvl 0 - 20%
|
||||||
// lvl 1 ~ 17%
|
// lvl 1 ~ 22.5%
|
||||||
// lvl 2 ~ 19%
|
// lvl 2 ~ 25%
|
||||||
if (damage >= defender.HP
|
if (damage >= defender.HP
|
||||||
&& !defender.isImmune(Corruption.class)
|
&& !defender.isImmune(Corruption.class)
|
||||||
&& Random.Int( level + 40 ) >= 34){
|
&& Random.Int( level + 30 ) >= 24){
|
||||||
|
|
||||||
Mob enemy = (Mob) defender;
|
Mob enemy = (Mob) defender;
|
||||||
Hero hero = (attacker instanceof Hero) ? (Hero) attacker : Dungeon.hero;
|
Hero hero = (attacker instanceof Hero) ? (Hero) attacker : Dungeon.hero;
|
||||||
|
|
Loading…
Reference in New Issue
Block a user