v0.3.1: adjusted dwarf monks, no overall balance change, but disarming is now much more consistent, average hits to disarm is unchanged at 6.

This commit is contained in:
Evan Debenham 2015-08-13 11:35:17 -04:00
parent 72515aee99
commit 5fd3d94ca2

View File

@ -33,6 +33,7 @@ import com.shatteredpixel.shatteredpixeldungeon.items.food.Food;
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.Knuckles; import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.Knuckles;
import com.shatteredpixel.shatteredpixeldungeon.sprites.MonkSprite; import com.shatteredpixel.shatteredpixeldungeon.sprites.MonkSprite;
import com.shatteredpixel.shatteredpixeldungeon.utils.GLog; import com.shatteredpixel.shatteredpixeldungeon.utils.GLog;
import com.watabou.utils.Bundle;
import com.watabou.utils.Random; import com.watabou.utils.Random;
public class Monk extends Mob { public class Monk extends Mob {
@ -85,20 +86,26 @@ public class Monk extends Mob {
super.die( cause ); super.die( cause );
} }
private int hitsToDisarm = 0;
@Override @Override
public int attackProc( Char enemy, int damage ) { public int attackProc( Char enemy, int damage ) {
if (Random.Int( 6 ) == 0 && enemy == Dungeon.hero) { if (enemy == Dungeon.hero) {
Hero hero = Dungeon.hero; Hero hero = Dungeon.hero;
KindOfWeapon weapon = hero.belongings.weapon; KindOfWeapon weapon = hero.belongings.weapon;
if (weapon != null && !(weapon instanceof Knuckles) && !weapon.cursed) { if (weapon != null && !(weapon instanceof Knuckles) && !weapon.cursed) {
hero.belongings.weapon = null; if (hitsToDisarm == 0) hitsToDisarm = Random.NormalIntRange(4, 8);
Dungeon.quickslot.clearItem( weapon );
weapon.updateQuickslot(); if (--hitsToDisarm == 0) {
Dungeon.level.drop( weapon, hero.pos ).sprite.drop(); hero.belongings.weapon = null;
GLog.w( TXT_DISARM, name, weapon.name() ); Dungeon.quickslot.clearItem(weapon);
weapon.updateQuickslot();
Dungeon.level.drop(weapon, hero.pos).sprite.drop();
GLog.w(TXT_DISARM, name, weapon.name());
}
} }
} }
@ -122,4 +129,18 @@ public class Monk extends Mob {
public HashSet<Class<?>> immunities() { public HashSet<Class<?>> immunities() {
return IMMUNITIES; return IMMUNITIES;
} }
private static String DISARMHITS = "hitsToDisarm";
@Override
public void storeInBundle(Bundle bundle) {
super.storeInBundle(bundle);
bundle.put(DISARMHITS, hitsToDisarm);
}
@Override
public void restoreFromBundle(Bundle bundle) {
super.restoreFromBundle(bundle);
hitsToDisarm = bundle.getInt(DISARMHITS);
}
} }