Make enhanced ammo last longer.

Since traps can no longer provide an infinite supply, and people were
complaining that they always ran out of ammo before, make it less likely
to break enchanted and blessed ammo, and more likely to break eroded
ones.
This commit is contained in:
jwalz
2003-05-28 21:54:37 +00:00
parent be7e8373f4
commit c845548c36
2 changed files with 21 additions and 5 deletions

View File

@@ -31,6 +31,7 @@ allow all tame monsters that eat to consider food thrown to them
the screen display wasn't always up to date after map topology changes
jumping over a sokobon pit would result in the player next to, not in, the pit
don't let arrow, rock or dart traps provide an infinite number of objects
make enhanced ammo harder to break to make lesser number last longer
dropping from height or throwing a normal container may damage contents
some Magicbane messages treated "erinys" as plural
initialize artifacts before processing $WIZKIT

View File

@@ -1309,11 +1309,26 @@ register struct obj *obj;
sometimes disappear when thrown */
if (objects[otyp].oc_skill < P_NONE &&
objects[otyp].oc_skill > -P_BOOMERANG &&
!objects[otyp].oc_magic && rn2(3)) {
if (*u.ushops)
check_shop_obj(obj, bhitpos.x,bhitpos.y, TRUE);
obfree(obj, (struct obj *)0);
return 1;
!objects[otyp].oc_magic) {
/* we were breaking 2/3 of everything unconditionally.
* we still don't want anything to survive unconditionally,
* but we need ammo to stay around longer on average.
*/
int broken, chance;
chance = 3 + greatest_erosion(obj) - obj->spe;
if (chance > 1)
broken = rn2(chance);
else
broken = !rn2(4);
if (obj->blessed && !rnl(4))
broken = 0;
if (broken) {
if (*u.ushops)
check_shop_obj(obj, bhitpos.x,bhitpos.y, TRUE);
obfree(obj, (struct obj *)0);
return 1;
}
}
passive_obj(mon, obj, (struct attack *)0);
} else {