@Override public int damageRoll() { return weapon.damageRoll(this); }
@Override public int damageRoll() { return weapon.damageRoll(this); }
@Override public int damageRoll(Char owner) { int damage = augment.damageFactor(super.damageRoll(owner)); if (owner instanceof Hero) { int exStr = ((Hero)owner).STR() - STRReq(); if (exStr > 0) { damage += Random.IntRange( 0, exStr ); } } if (sniperSpecial){ switch (augment){ case NONE: damage = Math.round(damage * 0.667f); break; case SPEED: damage = Math.round(damage * 0.5f); break; case DAMAGE: int distance = Dungeon.level.distance(owner.pos, targetPos) - 1; damage = Math.round(damage * (1f + 0.1f * distance)); break; } } return damage; }
@Override public int damageRoll(Char owner) { int damage = augment.damageFactor(super.damageRoll( owner )); if (owner instanceof Hero) { int exStr = ((Hero)owner).STR() - STRReq(); if (exStr > 0) { damage += Random.IntRange( 0, exStr ); } } return damage; }
@Override public int damageRoll(Char owner) { int damage = augment.damageFactor(super.damageRoll( owner )); if (owner instanceof Hero) { int exStr = ((Hero)owner).STR() - STRReq(); if (exStr > 0) { damage += Random.IntRange( 0, exStr ); } } return damage; }
@Override public int damageRoll(Char owner) { int damage = augment.damageFactor(super.damageRoll( owner )); if (owner instanceof Hero) { int exStr = ((Hero)owner).STR() - STRReq(); if (exStr > 0) { damage += Random.IntRange( 0, exStr ); } } return damage; }
@Override public int damageRoll(Char owner) { int damage = augment.damageFactor(super.damageRoll( owner )); if (owner instanceof Hero) { int exStr = ((Hero)owner).STR() - STRReq(); if (exStr > 0) { damage += Random.IntRange( 0, exStr ); } } return damage; }
@Override public int damageRoll(Char owner) { int damage = augment.damageFactor(super.damageRoll(owner)); if (owner instanceof Hero) { int exStr = ((Hero)owner).STR() - STRReq(); if (exStr > 0) { damage += Random.IntRange( 0, exStr ); } } if (sniperSpecial){ switch (augment){ case NONE: damage = Math.round(damage * 0.667f); break; case SPEED: damage = Math.round(damage * 0.5f); break; case DAMAGE: int distance = Dungeon.level.distance(owner.pos, targetPos) - 1; damage = Math.round(damage * (1f + 0.1f * distance)); break; } } return damage; }