/* Do not remove the headers from this file! see /USAGE for more info. */
inherit LIVING;
inherit M_ACTIONS;
string *strings = ({
"The wrath of the almighty Barney!",
"hap*"
});
string *emotes, *adverbs;
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);
}
void setup() {
set_name("Barney");
set_gender(1);
set_proper_name("Barney the Dinosaur");
set_in_room_desc("Barney the dinosaur");
set_long("It's everyone's favorite purple dinosaur!");
emotes = SOUL_D->list_emotes();
adverbs = SOUL_D->get_adverbs();
call_out( (: do_my_thing :), 5);
}