v2.5.3: base bomb buffs:

- no longer bounce when thrown on chars
- max dmg up by 50% (avg dmg up by 33%)
- dmg no longer fades based on distance
- cost down to 15 from 20
- description improved
This commit is contained in:
Evan Debenham
2024-09-24 15:01:48 -04:00
parent 842d7efce5
commit 853b719c69
2 changed files with 8 additions and 20 deletions

View File

@@ -483,7 +483,7 @@ items.bombs.bomb.ac_lightthrow=LIGHT & THROW
items.bombs.bomb.snuff_fuse=You quickly snuff the bomb's fuse.
items.bombs.bomb.ondeath=The explosion kills you...
items.bombs.bomb.rankings_desc=Killed by an explosion
items.bombs.bomb.desc=A fairly hefty black powder bomb. An explosion from this would certainly do damage to anything nearby.
items.bombs.bomb.desc=A fairly hefty black powder bomb. An explosion from this bomb deals _%1$d-%2$d damage_ to anything adjacent to it, and will destroy some adjacent terrain or items.
items.bombs.bomb.desc_fuse=It looks like the fuse will take a couple rounds to burn down once it is lit.
items.bombs.bomb.desc_burning=The bomb's fuse is burning away, keep your distance or put it out!
items.bombs.bomb$doublebomb.name=two bombs

View File

@@ -117,15 +117,7 @@ public class Bomb extends Item {
if (!Dungeon.level.pit[ cell ] && lightingFuse) {
Actor.addDelayed(fuse = createFuse().ignite(this), 2);
}
if (Actor.findChar( cell ) != null && !(Actor.findChar( cell ) instanceof Hero) ){
ArrayList<Integer> candidates = new ArrayList<>();
for (int i : PathFinder.NEIGHBOURS8)
if (Dungeon.level.passable[cell + i])
candidates.add(cell + i);
int newCell = candidates.isEmpty() ? cell : Random.element(candidates);
Dungeon.level.drop( this, newCell ).sprite.drop( cell );
} else
super.onThrow( cell );
super.onThrow( cell );
}
@Override
@@ -184,13 +176,7 @@ public class Bomb extends Item {
continue;
}
int dmg = Random.NormalIntRange(5 + Dungeon.scalingDepth(), 10 + Dungeon.scalingDepth()*2);
//those not at the center of the blast take less damage
if (ch.pos != cell){
dmg = Math.round(dmg*0.67f);
}
int dmg = Random.NormalIntRange(4 + Dungeon.scalingDepth(), 12 + 3*Dungeon.scalingDepth());
dmg -= ch.drRoll();
if (dmg > 0) {
@@ -239,15 +225,17 @@ public class Bomb extends Item {
@Override
public int value() {
return 20 * quantity;
return 15 * quantity;
}
@Override
public String desc() {
int depth = Dungeon.depth == -1 ? 1 : Dungeon.depth;
String desc = Messages.get(this, "desc", 4+depth, 12+3*depth);
if (fuse == null)
return super.desc()+ "\n\n" + Messages.get(this, "desc_fuse");
return desc + "\n\n" + Messages.get(this, "desc_fuse");
else
return super.desc() + "\n\n" + Messages.get(this, "desc_burning");
return desc + "\n\n" + Messages.get(this, "desc_burning");
}
private static final String FUSE = "fuse";