# Do not remove the headers from this file! see /USAGE for more info. is=living,actor variables=emotes, adverbs, strings name=barney gender=male proper_name=Barney the dinosaur in_room_desc=Barney the dinosaur long=It's everyones favorite dinosaur! setup: lpc _emotes=SOUL_D->list_emotes(); _adverbs=SOUL_D->get_adverbs(); call_out( (:do_my_thing:), 5); end --- string *strings = ({ "The wrath of the almighty Barney!", "hap*" }); string find_target() { object *who = users() & all_inventory(environment()); if (!sizeof(who)) return this_object()->query_id()[0]; return who[random(sizeof(who))]->query_userid(); } void do_my_thing() { string which = _emotes[random(sizeof(_emotes))]; string *rules = keys(SOUL_D->query_emote(which)); string rule = rules[random(sizeof(rules))]; object *who = users(); string comm, token; if (!environment()) return; simple_action("$N $vdecide to try the '$o $o1' emote.", which, rule); comm = which; foreach (token in explode(rule, " ")) { comm += " "; switch (token) { case "OBJ": case "LIV": comm += find_target(); break; case "STR": if (random(2)) comm += strings[random(sizeof(strings))]; else comm += _adverbs[random(sizeof(_adverbs))]; break; default: comm += token; } } do_game_command(comm); call_out( (: do_my_thing :), 5); }