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
|
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
|
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
|
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
|
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
|
* player, so range == 2 means the object may move up to one square
|
||||||
* from its current position
|
* from its current position
|
||||||
*/
|
*/
|
||||||
if(range < 2 || (isgold && kickobj->quan > 300L)) {
|
if(range < 2) {
|
||||||
if(!Is_box(kickobj)) pline("Thump!");
|
if(!Is_box(kickobj)) pline("Thump!");
|
||||||
return(!rn2(3) || martial());
|
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)
|
if (slide && !Blind)
|
||||||
pline("Whee! %s %s across the %s.", Doname2(kickobj),
|
pline("Whee! %s %s across the %s.", Doname2(kickobj),
|
||||||
|
|||||||
Reference in New Issue
Block a user