Merging 1.9.1 source: item changes
This commit is contained in:
@@ -69,14 +69,16 @@ public class MagesStaff extends MeleeWeapon {
|
||||
|
||||
public MagesStaff() {
|
||||
|
||||
//tier 1 weapon with poor base stats.
|
||||
super(1, 1f, 1f);
|
||||
MIN = 1;
|
||||
MAX = 6;
|
||||
|
||||
wand = null;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected int maxBase() {
|
||||
return 6; //6 base damage instead of 10
|
||||
}
|
||||
|
||||
public MagesStaff(Wand wand){
|
||||
this();
|
||||
wand.identify();
|
||||
@@ -156,15 +158,15 @@ public class MagesStaff extends MeleeWeapon {
|
||||
}
|
||||
|
||||
//syncs the level of the two items.
|
||||
int targetLevel = Math.max(this.level, wand.level);
|
||||
int targetLevel = Math.max(this.level(), wand.level());
|
||||
|
||||
int staffLevelDiff = targetLevel - this.level;
|
||||
int staffLevelDiff = targetLevel - this.level();
|
||||
if (staffLevelDiff > 0)
|
||||
this.upgrade(staffLevelDiff);
|
||||
else if (staffLevelDiff < 0)
|
||||
this.degrade(Math.abs(staffLevelDiff));
|
||||
|
||||
int wandLevelDiff = targetLevel - wand.level;
|
||||
int wandLevelDiff = targetLevel - wand.level();
|
||||
if (wandLevelDiff > 0)
|
||||
wand.upgrade(wandLevelDiff);
|
||||
else if (wandLevelDiff < 0)
|
||||
|
||||
@@ -39,19 +39,27 @@ public class MeleeWeapon extends Weapon {
|
||||
DLY = dly;
|
||||
|
||||
STR = typicalSTR();
|
||||
|
||||
MIN = min();
|
||||
MAX = max();
|
||||
|
||||
}
|
||||
|
||||
private int min() {
|
||||
protected int minBase() {
|
||||
return tier;
|
||||
}
|
||||
|
||||
private int max() {
|
||||
|
||||
protected int maxBase() {
|
||||
return (int)((tier * tier - tier + 10) / ACU * DLY);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public int min() {
|
||||
return minBase() + level();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int max() {
|
||||
return maxBase() + level() * tier;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Item upgrade() {
|
||||
return upgrade( false );
|
||||
@@ -59,8 +67,6 @@ public class MeleeWeapon extends Weapon {
|
||||
|
||||
public Item upgrade( boolean enchant ) {
|
||||
STR--;
|
||||
MIN++;
|
||||
MAX += tier;
|
||||
|
||||
return super.upgrade( enchant );
|
||||
}
|
||||
@@ -72,8 +78,6 @@ public class MeleeWeapon extends Weapon {
|
||||
@Override
|
||||
public Item degrade() {
|
||||
STR++;
|
||||
MIN--;
|
||||
MAX -= tier;
|
||||
return super.degrade();
|
||||
}
|
||||
|
||||
@@ -88,18 +92,22 @@ public class MeleeWeapon extends Weapon {
|
||||
|
||||
StringBuilder info = new StringBuilder( desc() );
|
||||
|
||||
String quality = levelKnown && level != 0 ? (level > 0 ? "upgraded" : "degraded") : "";
|
||||
String quality = levelKnown && level() != 0 ? (level() > 0 ? "upgraded" : "degraded") : "";
|
||||
info.append( p );
|
||||
info.append( "This " + name + " is " + Utils.indefinite( quality ) );
|
||||
info.append( " tier-" + tier + " melee weapon. " );
|
||||
|
||||
|
||||
if (levelKnown) {
|
||||
int min = min();
|
||||
int max = max();
|
||||
info.append( "Its average damage is " +
|
||||
Math.round((MIN + (MAX - MIN) / 2)*(imbue == Imbue.LIGHT ? 0.7f : (imbue == Imbue.HEAVY ? 1.5f : 1)))
|
||||
Math.round((min + (max - min) / 2)*(imbue == Imbue.LIGHT ? 0.7f : (imbue == Imbue.HEAVY ? 1.5f : 1)))
|
||||
+ " points per hit. " );
|
||||
} else {
|
||||
int min = minBase();
|
||||
int max = maxBase();
|
||||
info.append(
|
||||
"Its typical average damage is " + (min() + (max() - min()) / 2) + " points per hit " +
|
||||
"Its typical average damage is " + (min + (max - min) / 2) + " points per hit " +
|
||||
"and usually it requires " + typicalSTR() + " points of strength. " );
|
||||
if (typicalSTR() > Dungeon.hero.STR()) {
|
||||
info.append( "Probably this weapon is too heavy for you. " );
|
||||
@@ -173,10 +181,10 @@ public class MeleeWeapon extends Weapon {
|
||||
price /= 2;
|
||||
}
|
||||
if (levelKnown) {
|
||||
if (level > 0) {
|
||||
price *= (level + 1);
|
||||
} else if (level < 0) {
|
||||
price /= (1 - level);
|
||||
if (level() > 0) {
|
||||
price *= (level() + 1);
|
||||
} else if (level() < 0) {
|
||||
price /= (1 - level());
|
||||
}
|
||||
}
|
||||
if (price < 1) {
|
||||
@@ -189,7 +197,7 @@ public class MeleeWeapon extends Weapon {
|
||||
public Item random() {
|
||||
super.random();
|
||||
|
||||
if (Random.Int( 10 + level ) == 0) {
|
||||
if (Random.Int( 10 + level() ) == 0) {
|
||||
enchant();
|
||||
}
|
||||
|
||||
|
||||
@@ -61,13 +61,17 @@ public class ShortSword extends MeleeWeapon {
|
||||
super( 1, 1f, 1f );
|
||||
|
||||
STR = 11;
|
||||
MAX = 12;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
protected int maxBase() {
|
||||
return 12;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ArrayList<String> actions( Hero hero ) {
|
||||
ArrayList<String> actions = super.actions( hero );
|
||||
if (level > 0) {
|
||||
if (level() > 0) {
|
||||
actions.add( AC_REFORGE );
|
||||
}
|
||||
return actions;
|
||||
|
||||
Reference in New Issue
Block a user