Bovine Familiar FO #15870
Aliases: Bovine Familiar FO, dcf
11 verbs · 11 properties · 0 children
Verbs
| Verb | Spec | Flags | Definer | Lines |
|---|---|---|---|---|
sc*ore health ht co*ndition | any none none | rxd | #15870 | 6 |
@rpg | any any any | rxd | #15870 | 44 |
ins*pect | any any any | rx | #15870 | 30 |
@gms @GMS @G_Ms | any none none | rxd | #15870 | 18 |
notify tell | this none this | | #15870 | 3 |
graph abbr_time | this none this | | #15870 | 1 |
combatants | this none this | | #15870 | 1 |
pot*ential | any none none | rxd | #15870 | 10 |
@claimed | any none none | rxd | #15870 | 29 |
active_players | this none this | | #15870 | 24 |
@rpg-old | any any any | rxd | #15870 | 40 |
Properties
| Property | Definer | Flags | Owner | Value |
|---|---|---|---|---|
notify_task | #15870 | r | — | 0 |
notify_tasks | #15870 | r | — | {661168078} |
gm_utils | #15870 | rc | — | #27326 |
quinn_utils | #15870 | r | — | #34283 |
help_msg | #15870 | | — | "Some magick words bestowed upon faithful Bovine Illuminati, to help them in their quests." |
feature_verbs | #15870 | | — | {"score", "inspect", "pot", "@rpg", "@gms", "@claimed"} |
guest_ok | #15870 | | — | 1 |
key | #15870 | | — | not readable (E_PERM) |
aliases | #15870 | | — | {"Bovine Familiar FO", "dcf"} |
description | #15870 | | — | "A small cow with draconic wings. It moos happily to you, ready to help make LambdaMOO a better place for gamers." |
object_size | #15870 | | — | {11991, 1141286591} |
Ancestry
Ancestors (nearest first): none
Children: none
Call graph
Source
sc*ore health ht co*ndition
Referenced by
none
Source
1"sc*ore [<character>] => health & readied equipment"; 2this:update_usage(verb, player, args); 3if ($object_utils:has_callable_verb(player.location, verb)) 4 return player.location:(verb)(@args); 5endif 6this.gm_utils:score();
@rpg
Referenced by
none
Source
1"@rpg [limiter]"; 2"Lists all Bovine Illuminati online and either wounded, fatigued, or in an RPG-room."; 3"`limiters' should be one of `here' or a list of player names."; 4"An asterisk (*) by a room name means it's an RPG room."; 5people = data = {}; 6RPG = $local.rpg; 7gms = $set_utils:difference(RPG.gms, RPG.private_gms); 8dungeon = RPG.dungeon; 9if (!args) 10 people = $set_utils:intersection(connected_players(), RPG.pcs); 11else 12 if (here = "here" in args) 13 args = listdelete(args, here); 14 endif 15 if (args && (!(people = listdelete($command_utils:player_match_result($string_utils:match_player(args), args), 1)))) 16 return; 17 endif 18 if (here) 19 people = $set_utils:union(people, player.location:contents()); 20 endif 21endif 22if (!people) 23 player:tell("Nobody matches the given limiters."); 24 return E_NONE; 25endif 26for dude in (people) 27 if (valid(doll = RPG:get_doll(dude))) 28 class = (gm = dude in gms) ? "GM" | "PC"; 29 where = valid(room = dude.location) ? (dr = (room.owner in gms) && $object_utils:isa(room, dungeon)) ? tostr("* ", room:title(dude)) | tostr(" ", room:title(dude)) | "-- limbo --"; 30 status = {doll:get_att("inj") ? "wounded" | "", doll:get_att("ins") ? "fatigued" | ""}; 31 try 32 position = $code_utils:verb_or_property(room, "resting", dude) ? "resting" | ($code_utils:verb_or_property(room, "sleeping", dude) ? "sleeping" | ""); 33 except (ANY) 34 position = "???"; 35 endtry 36 status = {@status, (((agg = this:combatants(dude)) && (doll:get_att("last_action") > (time() - 30))) ? tostr("fighting ", agg[1].name, " ") | "") || position}; 37 if (((status = $list_utils:setremove_all(status, "")) || dr) || gm) 38 data = {@data, {class, dude.name, where, ((idletime = `idle_seconds(dude) ! ANY => -1') >= 0) ? this:abbr_time(idletime) | "gone", $string_utils:english_list(status, "")}}; 39 endif 40 endif 41 $command_utils:suspend_if_needed(1); 42endfor 43head = {"Cls", "Name", "Location", "Idle", "Status"}; 44player:tell_lines(this:graph(head, data, 3, {0, 0, 24}));
ins*pect
Referenced by
none
Source
1"ins*pect <character> -- Shows `mirror stats' on given character, plus a list of possible commands executable upon them."; 2this:update_usage(verb, player, args); 3what = dobjstr ? player:my_match_object(dobjstr) | player; 4if ($command_utils:object_match_failed(what, dobjstr)) 5 return E_INVARG; 6elseif (!(player in what.location:contents())) 7 player:tell($string_utils:pronoun_sub("You must be in the same room as %n in order to inspect %o.", what)); 8 return E_NACC; 9endif 10addb = $local.rpg; 11player:tell(" ", what:title()); 12if (valid(addb:get_doll(what))) 13 this.gm_utils:mirror(what); 14 addb:look_health(what); 15 if ((!$object_utils:isa(what, addb.monster)) || (!what.animal)) 16 addb:look_gear(what); 17 endif 18else 19 player:tell("( Not of the Bovine Illuminati )"); 20endif 21verbs = {}; 22v = -1; 23while ((info = verb_info(what, tostr(v = v + 1))) != E_VERBNF) 24 if (((vargs = verb_args(what, tostr(v))) && (vargs != {"this", "none", "this"})) && ("this" in vargs)) 25 verbs = {@verbs, tostr("\"", info[3], "\"")}; 26 endif 27endwhile 28if (verbs) 29 player:tell("Possible Commands: ", $string_utils:english_list(verbs, "None")); 30endif
@gms @GMS @G_Ms
Referenced by
none
Source
1"@gms => all connected Game-Masters of the Bovine Illuminati"; 2"@gms all => all Game-Masters"; 3"@g_ms => all connected Grand_Masters: elders of the Bovine Illuminati."; 4"@g_ms all => all Grand_Masters."; 5"@GMS (capitalised) will also show Grand_Masters."; 6this:update_usage(verb, player, args); 7set = strcmp(verb, "@gms") ? (mode = #2693) || $local.rpg.grand_masters | ((mode = #46) || #46.gms); 8if ((!args) || (args[1] != "all")) 9 set = $set_utils:intersection(connected_players(), set); 10endif 11if (set) 12 this.notify_tasks = setadd(this.notify_tasks, task_id()); 13 $code_utils:show_who_listing(set); 14 this.notify_tasks = setremove(this.notify_tasks, task_id()); 15else 16 player:tell((mode == #2693) ? "None of Grand_Master's incarnations" | "No Game-Masters", " are currently logged in."); 17 player:tell("Use `@G_Ms all' to get the full list."); 18endif
notify tell
Referenced by
none
Source
1if (task_id() in this.notify_tasks) 2 return player:tell(@args); 3endif
graph abbr_time
Referenced by
- #15870:@rpg line 38:
this:abbr_time - #15870:@rpg line 44:
this:graph - #15870:@rpg-old line 35:
this:abbr_time - #15870:@rpg-old line 40:
this:graph - #53206:survey line 53:
#15870:abbr_time
Source
1return this.quinn_utils:(verb)(@args);
combatants
Referenced by
- #15870:@rpg line 36:
this:combatants - #15870:active_players line 20:
this:combatants - #15870:@rpg-old line 33:
this:combatants
Source
1return this.gm_utils:(verb)(@args);
pot*ential
Referenced by
none
Source
1"pot"; 2"Show your potential for improving random physical and mental attributes."; 3if (!dobjstr) 4 who = player; 5else 6 who = player:my_match_object(dobjstr); 7 if ($match_utils:object_match_failed(who, dobjstr, player.location:contents())) 8 endif 9endif 10this.gm_utils:look_potential(who);
@claimed
Referenced by
none
Source
1"@claimed <character>"; 2"Show all RPG objects claimed by the given character."; 3RPG = $local.rpg; 4matched = RPG:match_character(dobjstr || player.name); 5if (RPG:character_match_failed(matched, dobjstr)) 6 return; 7endif 8char = matched[1]; 9doll = matched[2]; 10claimed = doll:claimed_objects(); 11if (!claimed) 12 player:tell($string_utils:pronoun_sub("%N %<claims> nothing.", (player == char) ? $you | char)); 13 return E_NONE; 14endif 15player:tell($string_utils:pronoun_sub("Objects %n %<has> claimed include:", (player == char) ? $you | char)); 16weapon = RPG.weapon; 17armour = RPG.armour; 18for c in (claimed) 19 parents = $object_utils:ancestors(c); 20 if (weapon in parents) 21 flags = "W"; 22 elseif (armour in parents) 23 flags = "A"; 24 else 25 flags = " "; 26 endif 27 player:tell(tostr(" ", flags, ": ", c:title(), " (", c, ")")); 28endfor 29player:tell(("Total of " + tostr(length(claimed))) + " object(s).");
active_players
Referenced by
- #258:exitfunc line 28:
#15870:active_players
Source
1":active_players()"; 2"Return a list of active RPG players. 'Active' is defined as a user with a valid RPG doll who is:"; 3" wounded, insane, or fatigued, OR"; 4" in an RPG dungeon room, OR"; 5" fighting within the past 30 seconds"; 6rpg = $local.rpg; 7obu = $object_utils; 8dun = rpg.dungeon; 9gms = rpg.gms; 10tim = time() - 30; 11pcs = {}; 12for u in (connected_players()) 13 if (!valid(doll = rpg:get_doll(u))) 14 elseif (u in gms) 15 pcs = {@pcs, u}; 16 elseif (obu:isa(u.location, dun)) 17 pcs = {@pcs, u}; 18 elseif ((doll:get_att("inj") || doll:get_att("ins")) || doll:get_att("fat")) 19 pcs = {@pcs, u}; 20 elseif ((agg = this:combatants(u)) && (doll:get_att("last_action") > tim)) 21 pcs = {@pcs, u}; 22 endif 23endfor 24return pcs;
@rpg-old
Referenced by
none
Source
1"@rpg [limiter]"; 2"Lists all Bovine Illuminati online and either wounded, fatigued, or in an RPG-room."; 3"`limiters' should be one of `here' or a list of player names."; 4"An asterisk (*) by a room name means it's an RPG room."; 5this:update_usage(verb, player, args); 6people = data = {}; 7head = {"Cls", "Name", "Location", "Idle", "Status"}; 8rpg = $local.rpg; 9gms = rpg.gms; 10if (!args) 11 people = connected_players(); 12else 13 if (here = "here" in args) 14 args = listdelete(args, here); 15 endif 16 if (args && (!(people = listdelete($command_utils:player_match_result($string_utils:match_player(args), args), 1)))) 17 return; 18 endif 19 if (here) 20 people = $set_utils:union(people, player.location:contents()); 21 endif 22endif 23if (!people) 24 player:tell("Nobody matches the given limiters."); 25 return E_NONE; 26endif 27for dude in (people) 28 if (valid(doll = rpg:get_doll(dude))) 29 class = (gm = dude in gms) ? "GM" | "PC"; 30 where = valid(room = dude.location) ? (dr = $object_utils:isa(room, rpg.dungeon)) ? tostr("* ", room:title(dude)) | tostr(" ", room:title(dude)) | "-- limbo --"; 31 status = {doll:get_att("inj") ? "wounded" | "", doll:get_att("ins") ? "fatigued" | ""}; 32 position = $code_utils:verb_or_property(room, "resting", dude) ? "resting" | ($code_utils:verb_or_property(room, "sleeping", dude) ? "sleeping" | ""); 33 status = {@status, (((agg = this:combatants(dude)) && (doll:get_att("last_action") > (time() - 30))) ? tostr("fighting ", agg[1].name, " ") | "") || position}; 34 if (((status = $list_utils:setremove_all(status, "")) || dr) || gm) 35 data = {@data, {class, dude.name, where, this:abbr_time(idle_seconds(dude)), $string_utils:english_list(status, "")}}; 36 endif 37 endif 38 $command_utils:suspend_if_needed(1); 39endfor 40player:tell_lines(this:graph(head, data, 3, {0, 0, 24}));