v0.6.3: rebalanced a number of items and glyphs

This commit is contained in:
Evan Debenham 2018-01-05 16:50:37 -05:00
parent 232e8a986f
commit 53d413b56a
11 changed files with 27 additions and 22 deletions

View File

@ -32,7 +32,7 @@ import com.watabou.utils.Bundle;
//FIXME do proper translation stuff for new text here in 0.6.3 (heromsg, ondeath, rankings_desc) //FIXME do proper translation stuff for new text here in 0.6.3 (heromsg, ondeath, rankings_desc)
public class Venom extends Buff implements Hero.Doom { public class Venom extends Buff implements Hero.Doom {
private int damage = 1; private float damage = 1;
protected float left; protected float left;
private static final String DAMAGE = "damage"; private static final String DAMAGE = "damage";
@ -52,7 +52,7 @@ public class Venom extends Buff implements Hero.Doom {
@Override @Override
public void restoreFromBundle( Bundle bundle ) { public void restoreFromBundle( Bundle bundle ) {
super.restoreFromBundle( bundle ); super.restoreFromBundle( bundle );
damage = bundle.getInt( DAMAGE ); damage = bundle.getFloat( DAMAGE );
left = bundle.getFloat( LEFT ); left = bundle.getFloat( LEFT );
} }
@ -79,9 +79,12 @@ public class Venom extends Buff implements Hero.Doom {
@Override @Override
public boolean act() { public boolean act() {
if (target.isAlive()) { if (target.isAlive()) {
target.damage(damage, this); target.damage((int)damage, this);
if (damage < ((Dungeon.depth+1)/2)+1) if (damage < (Dungeon.depth/2)+2) {
damage++; damage++;
} else {
damage += 0.5f;
}
spend( TICK ); spend( TICK );
if ((left -= TICK) <= 0) { if ((left -= TICK) <= 0) {

View File

@ -311,16 +311,16 @@ public class Hero extends Char {
@Override @Override
public int defenseSkill( Char enemy ) { public int defenseSkill( Char enemy ) {
float evasion = 1f * RingOfEvasion.evasionMultiplier( this ); float multiplier = 1f * RingOfEvasion.evasionMultiplier( this );
if (paralysed > 0) { if (paralysed > 0) {
evasion /= 2; multiplier /= 2;
} }
int aEnc = belongings.armor != null ? belongings.armor.STRReq() - STR() : 10 - STR(); int aEnc = belongings.armor != null ? belongings.armor.STRReq() - STR() : 10 - STR();
if (aEnc > 0) { if (aEnc > 0) {
evasion /= Math.pow( 1.5, aEnc ); multiplier /= Math.pow( 1.5, aEnc );
} }
int bonus = 0; int bonus = 0;
@ -332,7 +332,7 @@ public class Hero extends Char {
bonus += momentum.evasionBonus(Math.max(0, -aEnc)); bonus += momentum.evasionBonus(Math.max(0, -aEnc));
} }
return Math.round((defenseSkill + bonus) * evasion); return Math.round((defenseSkill * multiplier) + bonus);
} }
@Override @Override

View File

@ -45,8 +45,8 @@ public class Entanglement extends Glyph {
if (Random.Int( 4 ) == 0) { if (Random.Int( 4 ) == 0) {
Buff.prolong( defender, Roots.class, 3 ); Buff.prolong( defender, Roots.class, 3 - level/5 );
Buff.affect( defender, Earthroot.Armor.class ).level( 5 + 2*level ); Buff.affect( defender, Earthroot.Armor.class ).level( 4 + 4*level );
CellEmitter.bottom( defender.pos ).start( EarthParticle.FACTORY, 0.05f, 8 ); CellEmitter.bottom( defender.pos ).start( EarthParticle.FACTORY, 0.05f, 8 );
Camera.main.shake( 1, 0.4f ); Camera.main.shake( 1, 0.4f );

View File

@ -35,11 +35,6 @@ public class Obfuscation extends Armor.Glyph {
return damage; return damage;
} }
@Override
public int tierDRAdjust() {
return -1;
}
@Override @Override
public ItemSprite.Glowing glowing() { public ItemSprite.Glowing glowing() {
return GREY; return GREY;

View File

@ -140,7 +140,7 @@ public class WandOfCorruption extends Wand {
enemyResist = 1 + Dungeon.depth/2f; enemyResist = 1 + Dungeon.depth/2f;
} else if (ch instanceof Wraith) { } else if (ch instanceof Wraith) {
//this is so low because wraiths are always at max hp //this is so low because wraiths are always at max hp
enemyResist = 1 + Dungeon.depth/5f; enemyResist = 0.5f + Dungeon.depth/8f;
} else if (ch instanceof Yog.BurningFist || ch instanceof Yog.RottingFist) { } else if (ch instanceof Yog.BurningFist || ch instanceof Yog.RottingFist) {
enemyResist = 1 + 30; enemyResist = 1 + 30;
} else if (ch instanceof Yog.Larva || ch instanceof King.Undead){ } else if (ch instanceof Yog.Larva || ch instanceof King.Undead){
@ -184,12 +184,19 @@ public class WandOfCorruption extends Wand {
} }
private void debuffEnemy( Mob enemy, HashMap<Class<? extends Buff>, Float> category ){ private void debuffEnemy( Mob enemy, HashMap<Class<? extends Buff>, Float> category ){
//do not consider buffs which are already assigned, or that the enemy is immune to.
HashMap<Class<? extends Buff>, Float> debuffs = new HashMap<>(category); HashMap<Class<? extends Buff>, Float> debuffs = new HashMap<>(category);
for (Buff existing : enemy.buffs()){ for (Buff existing : enemy.buffs()){
if (debuffs.containsKey(existing.getClass())) { if (debuffs.containsKey(existing.getClass())) {
debuffs.put(existing.getClass(), 0f); debuffs.put(existing.getClass(), 0f);
} }
} }
for (Class<?extends Buff> toAssign : debuffs.keySet()){
if (debuffs.get(toAssign) > 0 && enemy.immunities().contains(toAssign)){
debuffs.put(toAssign, 0f);
}
}
//all buffs with a > 0 chance are flavor buffs //all buffs with a > 0 chance are flavor buffs
Class<?extends FlavourBuff> debuffCls = (Class<? extends FlavourBuff>) Random.chances(debuffs); Class<?extends FlavourBuff> debuffCls = (Class<? extends FlavourBuff>) Random.chances(debuffs);

View File

@ -29,7 +29,7 @@ public class BattleAxe extends MeleeWeapon {
image = ItemSpriteSheet.BATTLE_AXE; image = ItemSpriteSheet.BATTLE_AXE;
tier = 4; tier = 4;
ACC = 1.175f; //17.5% boost to accuracy ACC = 1.24f; //24% boost to accuracy
} }
@Override @Override

View File

@ -29,7 +29,7 @@ public class Flail extends MeleeWeapon {
image = ItemSpriteSheet.FLAIL; image = ItemSpriteSheet.FLAIL;
tier = 4; tier = 4;
ACC = 0.8f; //0.8x accuracy ACC = 0.9f; //0.9x accuracy
//also cannot surprise attack, see Hero.canSurpriseAttack //also cannot surprise attack, see Hero.canSurpriseAttack
} }

View File

@ -29,7 +29,7 @@ public class HandAxe extends MeleeWeapon {
image = ItemSpriteSheet.HAND_AXE; image = ItemSpriteSheet.HAND_AXE;
tier = 2; tier = 2;
ACC = 1.225f; //22.5% boost to accuracy ACC = 1.32f; //32% boost to accuracy
} }
@Override @Override

View File

@ -29,7 +29,7 @@ public class Mace extends MeleeWeapon {
image = ItemSpriteSheet.MACE; image = ItemSpriteSheet.MACE;
tier = 3; tier = 3;
ACC = 1.2f; //20% boost to accuracy ACC = 1.28f; //28% boost to accuracy
} }
@Override @Override

View File

@ -29,7 +29,7 @@ public class WarHammer extends MeleeWeapon {
image = ItemSpriteSheet.WAR_HAMMER; image = ItemSpriteSheet.WAR_HAMMER;
tier = 5; tier = 5;
ACC = 1.15f; //15% boost to accuracy ACC = 1.20f; //20% boost to accuracy
} }
@Override @Override

View File

@ -38,7 +38,7 @@ items.armor.glyphs.flow.name=%s of flow
items.armor.glyphs.flow.desc=This glyph manipulates the flow of water around the wearer, making them much faster when moving through it. items.armor.glyphs.flow.desc=This glyph manipulates the flow of water around the wearer, making them much faster when moving through it.
items.armor.glyphs.obfuscation.name=%s of obfuscation items.armor.glyphs.obfuscation.name=%s of obfuscation
items.armor.glyphs.obfuscation.desc=This glyph makes the wearer more difficult to detect, at the cost of defense. items.armor.glyphs.obfuscation.desc=This glyph obscures the wearer, making them more difficult to detect.
items.armor.glyphs.potential.name=%s of potential items.armor.glyphs.potential.name=%s of potential
items.armor.glyphs.potential.rankings_desc=Killed by: glyph of potential items.armor.glyphs.potential.rankings_desc=Killed by: glyph of potential