a full-length mirror #86
Aliases: Mirror, full-length mirror, myself, a full-length mirror
3 verbs · 7 properties · 0 children
Verbs
| Verb | Spec | Flags | Definer | Lines |
|---|---|---|---|---|
look_self | this any none | rxd | #86 | 144 |
g*et t*ake | this any none | rxd | #86 | 1 |
tell | this none this | | #86 | 63 |
Properties
| Property | Definer | Flags | Owner | Value |
|---|---|---|---|---|
odrop_failed_msg | #86 | | — | "%<tries> to drop %t but fails!" |
odrop_succeeded_msg | #86 | | — | "%<drops> %t." |
otake_succeeded_msg | #86 | | — | "%<picks> up %t." |
key | #86 | | — | not readable (E_PERM) |
aliases | #86 | | — | {"Mirror", "full-length mirror", "myself", "a full-length mirror"} |
description | #86 | | — | {"mirror"} |
object_size | #86 | | — | {9595, 1141286565} |
Ancestry
Ancestors (nearest first): none
Children: none
Source
look_self
Referenced by
none
Source
1rpg = $local.rpg; 2if (player.location != this.location) 3 player:tell("The mirror is too far away for you to see from here."); 4 return; 5elseif (!(this.owner in rpg.gms)) 6 player:tell("Please don't be selfish/lazy. There are two perfectly fine mirrors for your use by the Academy. If you feel you NEED to have another mirror, go bug your personal GM about installing one nearby--FOR PUBLIC USE."); 7 return; 8endif 9player:tell("In the mirror you see someone who looks a bit like you."); 10ps = player.ps; 11po = player.po; 12pr = player.pr; 13pp = player.pp; 14psc = player.psc; 15poc = player.poc; 16ppc = player.ppc; 17prc = player.prc; 18loc = player in rpg.pcs; 19if (loc) 20 doll = rpg.dolls[loc]; 21 strngth = doll.str; 22 app = doll.app; 23 intel = doll.int; 24 agl = doll.agl; 25 emp = doll.emp; 26 pot = doll.pot; 27 pcn = doll.pcn; 28 dex = doll.dex; 29 wil = doll.wil; 30 end = doll.end; 31 inj = doll.inj; 32 if (app > 15) 33 text = psc + " is stunningly attractive,"; 34 elseif (app > 12) 35 text = psc + " is pleasant to look at,"; 36 elseif (app > 8) 37 text = psc + " is of average attractiveness,"; 38 elseif (app > 5) 39 text = psc + " is quite plain and homely,"; 40 else 41 text = psc + " is hideously repulsive,"; 42 endif 43 if (strngth > 15) 44 text = text + " well muscled"; 45 elseif (strngth > 12) 46 text = text + " fairly solidly built"; 47 elseif (strngth > 8) 48 text = text + " of average build"; 49 elseif (strngth > 5) 50 text = text + " lightly built"; 51 else 52 text = text + " very scrawny"; 53 endif 54 if (emp > 15) 55 text = ((text + ", with a friendly, caring expression on ") + pp) + " face."; 56 elseif (emp > 12) 57 text = text + " and looks quite friendly."; 58 elseif (emp > 8) 59 text = text + " and looks moderately trustworthy."; 60 elseif (emp > 5) 61 text = ((text + ", with a sly, shifty look to ") + pp) + " eyes."; 62 else 63 text = ((text + ", with a predatory, used-car salesman look in ") + pp) + " eyes."; 64 endif 65 if (pcn > 15) 66 text = text + " fnord "; 67 endif 68 if (intel > 15) 69 text = ((text + " The clear light of intellect shines keenly from ") + pp) + " eyes."; 70 elseif (intel > 12) 71 text = ((text + " This is no Einstein, but ") + ps) + " looks reasonably bright."; 72 elseif (intel > 8) 73 elseif (intel > 5) 74 text = ((text + " ") + psc) + " doesn't exactly look stupid, but is clearly no great intellect."; 75 else 76 text = ((text + " ") + ppc) + " face displays a dull look of vacancy."; 77 endif 78 if (pcn > 12) 79 text = text + " fnord "; 80 endif 81 if (agl > 15) 82 text = ((text + " ") + psc) + " walks lithely, with a minimum of effort."; 83 elseif (agl > 12) 84 text = ((text + " ") + psc) + " looks reasonably well-coordinated."; 85 elseif (agl > 8) 86 elseif (agl > 5) 87 text = ((text + " ") + psc) + " occasionally steps awkwardly and stumbles."; 88 else 89 text = ((text + " ") + psc) + " stumbles or trips with every second step."; 90 endif 91 if (wil > 15) 92 text = ((text + " ") + psc) + " fixes you with a gaze of steely determination,"; 93 elseif (wil > 12) 94 text = ((text + " ") + psc) + " looks quite determined,"; 95 elseif (wil > 8) 96 text = (text + " ") + psc; 97 elseif (wil > 5) 98 text = ((text + " ") + psc) + " gazes timidly at you,"; 99 else 100 text = ((text + " ") + psc) + " gives you a nervous, vacillating, stare,"; 101 endif 102 if (end > 15) 103 text = text + " glows with a look of robust vigour"; 104 elseif (end > 12) 105 text = text + " seems to be in good health"; 106 elseif (end > 8) 107 text = text + " looks healthy enough"; 108 elseif (end > 5) 109 text = text + " looks a bit anaemic"; 110 else 111 text = text + " is constantly puffing and out of breath"; 112 endif 113 if (dex > 15) 114 text = text + " and is continually tossing objects from one hand to the other, performing various impressive tricks on the way, seemingly without conscious effort."; 115 elseif (dex > 12) 116 text = text + " and from time to time idly transfers things from one hand to the other, seemingly with little effort."; 117 elseif (dex > 8) 118 text = ((text + " and seems able to hold things in ") + pp) + " hands without too much difficulty."; 119 elseif (dex > 5) 120 text = ((((text + " and when ") + ps) + " moves ") + ps) + " sometimes drops things."; 121 else 122 text = ((((text + " and seems to spend half of ") + pp) + " time picking up things that ") + ps) + " has dropped."; 123 endif 124 if (pcn > 8) 125 text = text + " fnord "; 126 endif 127 if (pot > 100) 128 text = ((text + " You can tell that ") + ps) + " has huge potential for self-improvement."; 129 elseif (pot > 30) 130 text = ((text + " You get the feeling that ") + ps) + " has some potential for self-improvement."; 131 elseif (pot > 0) 132 text = ((text + " You get the impression that ") + ps) + " still has a little room for improvement."; 133 else 134 text = ((((text + " ") + psc) + " appears to have reached ") + pp) + " full potential."; 135 endif 136 if (inj > (3 * end)) 137 text = ((text + " ") + player.name) + " is severely wounded and may be close to death."; 138 elseif (inj > 0) 139 text = ((text + " ") + player.name) + " has some wounds."; 140 endif 141 player:tell(text); 142else 143 player:tell(psc, " looks completely unsuitable for adventuring, and should consider joining the Bovine Illuminati to remedy the situation."); 144endif
g*et t*ake
Referenced by
none
Source
1player:tell("You can't, it's too heavy.");
tell
Referenced by
none
Source
1pass(@args); 2rpg = $local.rpg; 3text = tostr(@args); 4if (index(text, this.snow_white)) 5 app = 0; 6 whobe = {}; 7 gms = {@rpg.gms, @rpg.object_db.second_characters}; 8 for t in (rpg.dolls) 9 char = t.character; 10 if (char in gms) 11 elseif ((t.app > app) && is_player(char)) 12 app = t.app; 13 whobe = {char}; 14 elseif ((t.app == app) && is_player(char)) 15 whobe = setadd(whobe, char); 16 endif 17 endfor 18 if (whobe) 19 fork (rpg.gm_lag) 20 rpg:rpg_announce_all_but(this.location, {}, "The Mirror intones, \"", $string_utils:title_list(whobe), (length(whobe) > 1) ? " are" | " is", " the Fairest in the Land.\""); 21 endfork 22 endif 23 return; 24endif 25found = "N"; 26for alias in (this.aliases) 27 ms1 = ((player.name + " says, \"") + alias) + "*"; 28 ms2 = ((player.name + " [to ") + alias) + "]:*"; 29 if ((msg = $string_utils:match_string(text, ms1)) || (msg = $string_utils:match_string(text, ms2))) 30 found = "Y"; 31 break; 32 endif 33endfor 34if (found == "N") 35 return; 36endif 37fork (1 + rpg.gm_lag) 38 if ($string_utils:match_string(toliteral(msg), "*guid*")) 39 if (player.location != this.location) 40 player:tell(this.diff_loc_msg); 41 return; 42 endif 43 doll = rpg:get_doll(player); 44 if (doll == $nothing) 45 player:tell(this.not_bovine_msg); 46 return; 47 endif 48 {pot, strn, end, dex, agl, intl, emp, wil, pcn, app} = doll:get_unmod_atts("pot", "str", "end", "dex", "agl", "int", "emp", "wil", "pcn", "app"); 49 player:tell(this.intro_msg); 50 player:tell(this.intro2_msg); 51 count = 0; 52 for attl in ({{"strn", strn}, {"end", end}, {"dex", dex}, {"agl", agl}, {"intl", intl}, {"emp", emp}, {"wil", wil}, {"pcn", pcn}, {"app", app}}) 53 {att, attv} = attl; 54 if (pot >= rpg.costs[min(attv, 25) + 1]) 55 player:tell(this.(att + "_imp_msg")); 56 count = count + 1; 57 endif 58 endfor 59 cref = ((count + 1) / 2) * 2; 60 player:tell(this.(("le" + tostr(cref)) + "_imp_msg")); 61 endif 62endfork 63"THX (#105941) - Mon Apr 3, 2000 - Added a \"Mirror, Mirror, on the wall. Who's the fairest of them all?\" gag. What the hell, hunh?";