v0.4.2: various balance changes
This commit is contained in:
@@ -356,12 +356,12 @@ public class Armor extends EquipableItem {
|
||||
|
||||
public int STRReq(int lvl){
|
||||
lvl = Math.max(0, lvl);
|
||||
int effectiveTier = tier;
|
||||
float effectiveTier = tier;
|
||||
if (glyph != null) effectiveTier += glyph.tierSTRAdjust();
|
||||
effectiveTier = Math.max(0, effectiveTier);
|
||||
|
||||
//strength req decreases at +1,+3,+6,+10,etc.
|
||||
return (8 + effectiveTier * 2) - (int)(Math.sqrt(8 * lvl + 1) - 1)/2;
|
||||
return (8 + Math.round(effectiveTier * 2)) - (int)(Math.sqrt(8 * lvl + 1) - 1)/2;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -468,7 +468,7 @@ public class Armor extends EquipableItem {
|
||||
return 0;
|
||||
}
|
||||
|
||||
public int tierSTRAdjust(){
|
||||
public float tierSTRAdjust(){
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
@@ -140,12 +140,12 @@ abstract public class ClassArmor extends Armor {
|
||||
@Override
|
||||
public int STRReq(int lvl) {
|
||||
lvl = Math.max(0, lvl);
|
||||
int effectiveTier = armorTier;
|
||||
float effectiveTier = armorTier;
|
||||
if (glyph != null) effectiveTier += glyph.tierSTRAdjust();
|
||||
effectiveTier = Math.max(0, effectiveTier);
|
||||
|
||||
//strength req decreases at +1,+3,+6,+10,etc.
|
||||
return (8 + effectiveTier * 2) - (int)(Math.sqrt(8 * lvl + 1) - 1)/2;
|
||||
return (8 + Math.round(effectiveTier * 2)) - (int)(Math.sqrt(8 * lvl + 1) - 1)/2;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -30,13 +30,13 @@ public class Stone extends Armor.Glyph {
|
||||
|
||||
@Override
|
||||
public int proc(Armor armor, Char attacker, Char defender, int damage) {
|
||||
//no proc effect
|
||||
//no proc effect, see armor.DrMin
|
||||
return damage;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int tierSTRAdjust() {
|
||||
return 1;
|
||||
public float tierSTRAdjust() {
|
||||
return 1.5f;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -40,7 +40,7 @@ public class Swiftness extends Armor.Glyph {
|
||||
}
|
||||
|
||||
@Override
|
||||
public int tierSTRAdjust() {
|
||||
public float tierSTRAdjust() {
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
||||
@@ -70,10 +70,6 @@ public class WandOfFireblast extends DamageWand {
|
||||
@Override
|
||||
protected void onZap( Ballistica bolt ) {
|
||||
|
||||
if (Level.flamable[bolt.sourcePos]){
|
||||
GameScene.add( Blob.seed( bolt.sourcePos, 2, Fire.class ) );
|
||||
}
|
||||
|
||||
for( int cell : affectedCells){
|
||||
GameScene.add( Blob.seed( cell, 1+chargesPerCast(), Fire.class ) );
|
||||
Char ch = Actor.findChar( cell );
|
||||
|
||||
@@ -146,7 +146,7 @@ abstract public class Weapon extends KindOfWeapon {
|
||||
|
||||
if (this instanceof MissileWeapon) {
|
||||
int bonus = RingOfSharpshooting.getBonus(hero, RingOfSharpshooting.Aim.class);
|
||||
ACC *= (float)(Math.pow(1.1, bonus));
|
||||
ACC *= (float)(Math.pow(1.2, bonus));
|
||||
}
|
||||
|
||||
return encumbrance > 0 ? (float)(ACC / Math.pow( 1.5, encumbrance )) : ACC;
|
||||
|
||||
@@ -41,8 +41,8 @@ public class Grim extends Weapon.Enchantment {
|
||||
int enemyHealth = defender.HP - damage;
|
||||
if (enemyHealth == 0) return damage; //no point in proccing if they're already dead.
|
||||
|
||||
//scales from 0 - 20% based on how low hp the enemy is, plus 1% per level
|
||||
int chance = Math.round(((defender.HT - enemyHealth) / (float)defender.HT)*20 + level);
|
||||
//scales from 0 - 30% based on how low hp the enemy is, plus 1% per level
|
||||
int chance = Math.round(((defender.HT - enemyHealth) / (float)defender.HT)*30 + level);
|
||||
|
||||
if (Random.Int( 100 ) < chance) {
|
||||
|
||||
|
||||
@@ -32,12 +32,6 @@ public class Glaive extends MeleeWeapon {
|
||||
RCH = 2; //extra reach
|
||||
}
|
||||
|
||||
@Override
|
||||
public int min(int lvl) {
|
||||
return tier + //base unchanged
|
||||
lvl*2; //+2 per level, up from +1
|
||||
}
|
||||
|
||||
@Override
|
||||
public int max(int lvl) {
|
||||
return Math.round(6.67f*(tier+1)) + //40 base, up from 30
|
||||
|
||||
@@ -30,12 +30,12 @@ public class RunicBlade extends MeleeWeapon {
|
||||
tier = 4;
|
||||
}
|
||||
|
||||
//Essentially it's a tier 4 weapon, with tier 3 base max damage, and slightly more than tier 5 scaling.
|
||||
//equal to tier 4 in damage at +4
|
||||
//Essentially it's a tier 4 weapon, with tier 3 base max damage, and tier 5 scaling.
|
||||
//equal to tier 4 in damage at +5
|
||||
|
||||
@Override
|
||||
public int max(int lvl) {
|
||||
return 5*(tier) + //20 base, down from 25
|
||||
Math.round(lvl*(tier+2.25f)); //+6.25 per level, up from +5
|
||||
return 5*(tier) + //20 base, down from 25
|
||||
Math.round(lvl*(tier+2)); //+6 per level, up from +5
|
||||
}
|
||||
}
|
||||
|
||||
@@ -32,12 +32,6 @@ public class Spear extends MeleeWeapon {
|
||||
RCH = 2; //extra reach
|
||||
}
|
||||
|
||||
@Override
|
||||
public int min(int lvl) {
|
||||
return tier + //base unchanged
|
||||
lvl*2; //+2 per level, up from +1
|
||||
}
|
||||
|
||||
@Override
|
||||
public int max(int lvl) {
|
||||
return Math.round(6.67f*(tier+1)) + //20 base, up from 15
|
||||
|
||||
Reference in New Issue
Block a user