v0.4.2: stealth weapons now correctly apply strength bonus on surprise hit

This commit is contained in:
Evan Debenham 2016-09-04 04:52:04 -04:00
parent 1faed412d4
commit aeb699ec1b
3 changed files with 24 additions and 9 deletions

View File

@ -43,10 +43,15 @@ public class AssassinsBlade extends MeleeWeapon {
@Override @Override
public int damageRoll(Hero hero) { public int damageRoll(Hero hero) {
Char enemy = hero.enemy(); Char enemy = hero.enemy();
if (enemy instanceof Mob && ((Mob) enemy).surprisedBy(hero)) if (enemy instanceof Mob && ((Mob) enemy).surprisedBy(hero)) {
//deals avg damage to max on surprise, instead of min to max. //deals avg damage to max on surprise, instead of min to max.
return imbue.damageFactor(Random.NormalIntRange((min() + max())/2, max())); int damage = imbue.damageFactor(Random.NormalIntRange((min() + max()) / 2, max()));
else int exStr = hero.STR() - STRReq();
if (exStr > 0) {
damage += Random.IntRange( 0, exStr );
}
return damage;
} else
return super.damageRoll(hero); return super.damageRoll(hero);
} }

View File

@ -43,10 +43,15 @@ public class Dagger extends MeleeWeapon {
@Override @Override
public int damageRoll(Hero hero) { public int damageRoll(Hero hero) {
Char enemy = hero.enemy(); Char enemy = hero.enemy();
if (enemy instanceof Mob && ((Mob) enemy).surprisedBy(hero)) if (enemy instanceof Mob && ((Mob) enemy).surprisedBy(hero)) {
//deals avg damage to max on surprise, instead of min to max. //deals avg damage to max on surprise, instead of min to max.
return imbue.damageFactor(Random.NormalIntRange((min() + max())/2, max())); int damage = imbue.damageFactor(Random.NormalIntRange((min() + max()) / 2, max()));
else int exStr = hero.STR() - STRReq();
if (exStr > 0) {
damage += Random.IntRange( 0, exStr );
}
return damage;
} else
return super.damageRoll(hero); return super.damageRoll(hero);
} }
} }

View File

@ -43,10 +43,15 @@ public class Dirk extends MeleeWeapon {
@Override @Override
public int damageRoll(Hero hero) { public int damageRoll(Hero hero) {
Char enemy = hero.enemy(); Char enemy = hero.enemy();
if (enemy instanceof Mob && ((Mob) enemy).surprisedBy(hero)) if (enemy instanceof Mob && ((Mob) enemy).surprisedBy(hero)) {
//deals avg damage to max on surprise, instead of min to max. //deals avg damage to max on surprise, instead of min to max.
return imbue.damageFactor(Random.NormalIntRange((min() + max())/2, max())); int damage = imbue.damageFactor(Random.NormalIntRange((min() + max()) / 2, max()));
else int exStr = hero.STR() - STRReq();
if (exStr > 0) {
damage += Random.IntRange( 0, exStr );
}
return damage;
} else
return super.damageRoll(hero); return super.damageRoll(hero);
} }
} }