v0.4.0: refactors and rebalancing to existing weapons
This commit is contained in:
@@ -26,10 +26,15 @@ public class BattleAxe extends MeleeWeapon {
|
||||
|
||||
{
|
||||
image = ItemSpriteSheet.BATTLE_AXE;
|
||||
|
||||
tier = 4;
|
||||
ACC = 1.175f; //17.5% boost to accuracy
|
||||
}
|
||||
|
||||
public BattleAxe() {
|
||||
super( 4, 1.2f, 1f );
|
||||
|
||||
@Override
|
||||
public int max(int lvl) {
|
||||
return 20 + //20 base, down from 25
|
||||
lvl*(tier+1); //scaling unchanged
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -26,10 +26,15 @@ public class Dagger extends MeleeWeapon {
|
||||
|
||||
{
|
||||
image = ItemSpriteSheet.DAGGER;
|
||||
|
||||
tier = 1;
|
||||
ACC = 1.25f; //25% boost to accuracy
|
||||
}
|
||||
|
||||
public Dagger() {
|
||||
super( 1, 1.2f, 1f );
|
||||
|
||||
@Override
|
||||
public int max(int lvl) {
|
||||
return 8 + //8 base, down from 10
|
||||
lvl*(tier+1); //scaling unchanged
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -20,16 +20,33 @@
|
||||
*/
|
||||
package com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee;
|
||||
|
||||
import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Hero;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet;
|
||||
|
||||
public class Glaive extends MeleeWeapon {
|
||||
|
||||
{
|
||||
image = ItemSpriteSheet.GLAIVE;
|
||||
|
||||
tier = 5;
|
||||
DLY = 1.5f; //0.67x speed
|
||||
}
|
||||
|
||||
public Glaive() {
|
||||
super( 5, 1f, 1f );
|
||||
|
||||
@Override
|
||||
public int reachFactor(Hero hero) {
|
||||
return 2; //extra reach
|
||||
}
|
||||
|
||||
@Override
|
||||
public int min(int lvl) {
|
||||
return tier + //base unchanged
|
||||
2*lvl; //+2 per level, up from +1
|
||||
}
|
||||
|
||||
@Override
|
||||
public int max(int lvl) {
|
||||
return 40 + //40 base, up from 30
|
||||
lvl*8; //+8 per level, up from +6
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -6,10 +6,8 @@ public class Greatsword extends MeleeWeapon {
|
||||
|
||||
{
|
||||
image = ItemSpriteSheet.GREATSWORD;
|
||||
}
|
||||
|
||||
public Greatsword() {
|
||||
super( 5, 1f, 1f );
|
||||
tier=5;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -26,10 +26,15 @@ public class Knuckles extends MeleeWeapon {
|
||||
|
||||
{
|
||||
image = ItemSpriteSheet.KNUCKLEDUSTER;
|
||||
|
||||
tier = 1;
|
||||
DLY = 0.5f; //2x speed
|
||||
}
|
||||
|
||||
public Knuckles() {
|
||||
super( 1, 1f, 0.5f );
|
||||
|
||||
@Override
|
||||
public int max(int lvl) {
|
||||
return 6 + //6 base, down from 10
|
||||
lvl*2; //+1 per level, down from +2
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -26,10 +26,8 @@ public class Longsword extends MeleeWeapon {
|
||||
|
||||
{
|
||||
image = ItemSpriteSheet.LONGSWORD;
|
||||
}
|
||||
|
||||
public Longsword() {
|
||||
super( 4, 1f, 1f );
|
||||
|
||||
tier = 4;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -26,10 +26,15 @@ public class Mace extends MeleeWeapon {
|
||||
|
||||
{
|
||||
image = ItemSpriteSheet.MACE;
|
||||
|
||||
tier = 3;
|
||||
ACC = 1.2f; //20% boost to accuracy
|
||||
}
|
||||
|
||||
public Mace() {
|
||||
super( 3, 1f, 0.8f );
|
||||
|
||||
@Override
|
||||
public int max(int lvl) {
|
||||
return 16 + //16 base, down from 20
|
||||
lvl*(tier+1); //scaling unchanged
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -61,6 +61,8 @@ public class MagesStaff extends MeleeWeapon {
|
||||
{
|
||||
image = ItemSpriteSheet.MAGES_STAFF;
|
||||
|
||||
tier = 1;
|
||||
|
||||
defaultAction = AC_ZAP;
|
||||
usesTargeting = true;
|
||||
|
||||
@@ -69,15 +71,13 @@ public class MagesStaff extends MeleeWeapon {
|
||||
}
|
||||
|
||||
public MagesStaff() {
|
||||
|
||||
super(1, 1f, 1f);
|
||||
|
||||
wand = null;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected int maxBase() {
|
||||
return 6; //6 base damage instead of 10
|
||||
public int max(int lvl) {
|
||||
return 6 + //6 base damage, down from 10
|
||||
lvl*(tier+1); //scaling unaffected
|
||||
}
|
||||
|
||||
public MagesStaff(Wand wand){
|
||||
|
||||
@@ -28,33 +28,18 @@ import com.watabou.utils.Random;
|
||||
|
||||
public class MeleeWeapon extends Weapon {
|
||||
|
||||
private int tier;
|
||||
|
||||
public MeleeWeapon( int tier, float acu, float dly ) {
|
||||
super();
|
||||
|
||||
this.tier = tier;
|
||||
|
||||
ACU = acu;
|
||||
DLY = dly;
|
||||
}
|
||||
|
||||
protected int minBase() {
|
||||
return tier;
|
||||
}
|
||||
protected int tier;
|
||||
|
||||
protected int maxBase() {
|
||||
return (int)((tier + 1) * 5 / ACU * DLY);
|
||||
@Override
|
||||
public int min(int lvl) {
|
||||
return tier + //base
|
||||
lvl; //level scaling
|
||||
}
|
||||
|
||||
@Override
|
||||
public int min() {
|
||||
return minBase() + level();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int max() {
|
||||
return maxBase() + level() * (tier + 1);
|
||||
public int max(int lvl) {
|
||||
return 5*(tier+1) + //base
|
||||
lvl*(tier+1); //level scaling
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -86,8 +71,8 @@ public class MeleeWeapon extends Weapon {
|
||||
float dmgfactor = (imbue == Imbue.LIGHT ? 0.7f : imbue == Imbue.HEAVY ? 1.5f : 1);
|
||||
info += " " + Messages.get(Weapon.class, "avg_dmg", Math.round((min + (max - min) / 2)*dmgfactor));
|
||||
} else {
|
||||
int min = minBase();
|
||||
int max = maxBase();
|
||||
int min = min(0);
|
||||
int max = max(0);
|
||||
info += " " + Messages.get(MeleeWeapon.class, "unknown", (min + (max - min) / 2), STRReq(0));
|
||||
if (STRReq(0) > Dungeon.hero.STR()) {
|
||||
info += " " + Messages.get(MeleeWeapon.class, "probably_too_heavy");
|
||||
|
||||
@@ -27,10 +27,8 @@ public class NewShortsword extends MeleeWeapon {
|
||||
|
||||
{
|
||||
image = ItemSpriteSheet.SHORTSWORD;
|
||||
}
|
||||
|
||||
public NewShortsword() {
|
||||
super( 2, 1f, 1f );
|
||||
tier = 2;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -26,10 +26,16 @@ public class Quarterstaff extends MeleeWeapon {
|
||||
|
||||
{
|
||||
image = ItemSpriteSheet.QUARTERSTAFF;
|
||||
}
|
||||
|
||||
public Quarterstaff() {
|
||||
super( 2, 1f, 1f );
|
||||
|
||||
tier = 2;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int max(int lvl) {
|
||||
return 12 + //12 base, down from 15
|
||||
lvl*(tier+1); //scaling unchanged
|
||||
}
|
||||
|
||||
//TODO add defence bonus code
|
||||
|
||||
}
|
||||
|
||||
@@ -27,15 +27,26 @@ public class Spear extends MeleeWeapon {
|
||||
|
||||
{
|
||||
image = ItemSpriteSheet.SPEAR;
|
||||
|
||||
tier = 2;
|
||||
DLY = 1.5f; //0.67x speed
|
||||
}
|
||||
|
||||
@Override
|
||||
public int reachFactor(Hero hero) {
|
||||
return 2;
|
||||
return 2; //extra reach
|
||||
}
|
||||
|
||||
public Spear() {
|
||||
super( 2, 1f, 1.5f );
|
||||
@Override
|
||||
public int min(int lvl) {
|
||||
return tier + //base unchanged
|
||||
2*lvl; //+2 per level, up from +1
|
||||
}
|
||||
|
||||
@Override
|
||||
public int max(int lvl) {
|
||||
return 20 + //20 base, up from 15
|
||||
lvl*4; //+4 per level, up from +3
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -26,10 +26,8 @@ public class Sword extends MeleeWeapon {
|
||||
|
||||
{
|
||||
image = ItemSpriteSheet.SWORD;
|
||||
}
|
||||
|
||||
public Sword() {
|
||||
super( 3, 1f, 1f );
|
||||
|
||||
tier = 3;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -26,10 +26,15 @@ public class WarHammer extends MeleeWeapon {
|
||||
|
||||
{
|
||||
image = ItemSpriteSheet.WAR_HAMMER;
|
||||
|
||||
tier = 5;
|
||||
ACC = 1.15f; //15% boost to accuracy
|
||||
}
|
||||
|
||||
public WarHammer() {
|
||||
super( 5, 1.2f, 1f );
|
||||
|
||||
@Override
|
||||
public int max(int lvl) {
|
||||
return 24 + //24 base, down from 30
|
||||
lvl*(tier+1); //scaling unchanged
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -26,10 +26,8 @@ public class WornShortsword extends MeleeWeapon {
|
||||
|
||||
{
|
||||
image = ItemSpriteSheet.WORN_SHORTSWORD;
|
||||
}
|
||||
|
||||
public WornShortsword() {
|
||||
super( 1, 1f, 1f );
|
||||
tier = 1;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user