diff --git a/doc/fixes35.0 b/doc/fixes35.0 index 6d1f252fa..242a4ae23 100644 --- a/doc/fixes35.0 +++ b/doc/fixes35.0 @@ -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 diff --git a/src/dokick.c b/src/dokick.c index 33fe8ae5a..d620bf8e5 100644 --- a/src/dokick.c +++ b/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),