Q416 kicking gold (trunk only)
<email deleted> on Monday, January 29, 2007: >Hero is able to kick a pile of gold (say, 100) and have the entire pile move at >once in the same direction; very easy to avoid gold on traps. Kicking gold >should probably scatter the pieces in multiple directions or at least not be >quite so easy.
This commit is contained in:
@@ -186,6 +186,7 @@ right-handed boomerang throw travels counterclockwise
|
||||
monsters can use ranged attacks over/around boulders, same as hero
|
||||
can't drop part of a stack of N weapons welded to hero's hand
|
||||
pickup still accepts m as command prefix, but now rejects F,g,G,M,numpad 5
|
||||
scatter piles of kicked gold rather than move the entire pile at once
|
||||
|
||||
|
||||
Platform- and/or Interface-Specific Fixes
|
||||
|
||||
25
src/dokick.c
25
src/dokick.c
@@ -539,12 +539,33 @@ xchar x, y;
|
||||
* player, so range == 2 means the object may move up to one square
|
||||
* from its current position
|
||||
*/
|
||||
if(range < 2 || (isgold && kickobj->quan > 300L)) {
|
||||
if(range < 2) {
|
||||
if(!Is_box(kickobj)) pline("Thump!");
|
||||
return(!rn2(3) || martial());
|
||||
}
|
||||
|
||||
if (kickobj->quan > 1L && !isgold) kickobj = splitobj(kickobj, 1L);
|
||||
if (kickobj->quan > 1L) {
|
||||
if (!isgold) {
|
||||
kickobj = splitobj(kickobj, 1L);
|
||||
} else {
|
||||
if (rn2(20)) {
|
||||
const char *flyingcoinmsg[] = {
|
||||
"scatter the coins",
|
||||
"knock coins all over the place",
|
||||
"send coins flying in all directions",
|
||||
};
|
||||
pline("Thwwpingg!");
|
||||
You("%s!", flyingcoinmsg[rn2(SIZE(flyingcoinmsg))]);
|
||||
(void) scatter(x, y, rn2(3)+1, VIS_EFFECTS|MAY_HIT, kickobj);
|
||||
newsym(x, y);
|
||||
return 1;
|
||||
}
|
||||
if (kickobj->quan > 300L) {
|
||||
pline("Thump!");
|
||||
return(!rn2(3) || martial());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (slide && !Blind)
|
||||
pline("Whee! %s %s across the %s.", Doname2(kickobj),
|
||||
|
||||
Reference in New Issue
Block a user