(cackle
(pattern "<indirect:any-living>")
(pattern "<string>")
(pattern "<string> [at] <indirect:any-living>")
(pattern "[at] <indirect:any-living> <string>")
(single
(no-arguments
(self "You cackle with glee.")
(rest "$mcname$ throw$s$ back $mposs$ head and cackle$s$ with glee.")
)
(arguments
(arguments with glee, happily, sadly, brightly, curtly, patiently,
slowly, eagerly, expectantly, firmly, sagely, emphatically,
knowingly, vigorously, in disagreement, tentatively,
angrily, manically, mischievously, nastily, despairingly,
insanely, inanely, womblely, backwards, #)
(self "You cackle $arg$.")
(rest "$mcname$ cackle$s$ $arg$.")
)
)
(targeted
(no-arguments
(self "You cackle at $hcname$.")
(target "$mcname$ cackle$s$ at $hcname$.")
(rest "$mcname$ cackle$s$ at $hcname$.")
)
(arguments
(arguments with glee, happily, sadly, brightly, curtly, patiently,
slowly, eagerly, expectantly, firmly, sagely, emphatically,
knowingly, vigorously, in disagreement, tentatively,
angrily, manically, mischievously, nastily, despairingly,
insanely, inanely, womblely, backwards, #)
(self "You cackle $arg$ at $hcname$.")
(target "$mcname$ cackle$s$ $arg$ at you.")
(rest "$mcname$ cackle$s$ $arg$ at $hcname$.")
)
)
)