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.snuff_fuse=You quickly snuff the bomb's fuse.
items.bombs.bomb.ondeath=The explosion kills you... items.bombs.bomb.ondeath=The explosion kills you...
items.bombs.bomb.rankings_desc=Killed by an explosion 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_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.desc_burning=The bomb's fuse is burning away, keep your distance or put it out!
items.bombs.bomb$doublebomb.name=two bombs items.bombs.bomb$doublebomb.name=two bombs

View File

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