27. Dwarves! (lines 3045-3148)
Back to List
Browsing Advent.inf
3045 Object dwarf "threatening little dwarf"
3046 with name 'dwarf' 'threatening' 'nasty' 'little' 'mean',
3047 description
3048 "It's probably not a good idea to get too close.
3049 Suffice it to say the little guy's pretty aggressive.",
3050 initial "A threatening little dwarf hides in the shadows.",
3051 number 5,
3052 daemon [;
3053 if (location == thedark) return;
3054 if (self.number == 0) {
3055 StopDaemon(self);
3056 return;
3057 }
3058 if (parent(self) == nothing) {
3059 if (location has nodwarf || location has light) return;
3060 if (random(100) <= self.number) {
3061 if (Bear in location || Troll in location) return;
3062 new_line;
3063 if (Dragon in location) {
3064 self.number--;
3065 "A dwarf appears, but with one casual blast the dragon vapourises him!";
3066 }
3067 move self to location;
3068 "A threatening little dwarf comes out of the shadows!";
3069 }
3070 return;
3071 }
3072 if (parent(self) ~= location) {
3073 if (location == thedark) return;
3074 if (location has nodwarf || location has light) return;
3075 if (random(100) <= 96 && parent(self) ~= In_Mirror_Canyon) {
3076 move self to location;
3077 print "^The dwarf stalks after you...^";
3078 }
3079 else {
3080 remove self;
3081 return;
3082 }
3083 }
3084 if (random(100) <= 75) {
3085 new_line;
3086 if (self.has_thrown_axe == false) {
3087 move axe to location;
3088 self.has_thrown_axe = true;
3089 remove self;
3090 "The dwarf throws a nasty little axe at you, misses,
3091 curses, and runs away.";
3092 }
3093 if (location == In_Mirror_Canyon)
3094 "The dwarf admires himself in the mirror.";
3095 print "The dwarf throws a nasty little knife at you, ";
3096 if (random(1000) <= 95) {
3097 deadflag = 1;
3098 "and hits!";
3099 }
3100 "but misses!";
3101 }
3102 if (random(3) == 1) {
3103 remove self;
3104 "^Tiring of this, the dwarf slips away.";
3105 }
3106 ],
3107 before [;
3108 Kick:
3109 "You boot the dwarf across the room. He curses, then gets up and brushes himself off.
3110 Now he's madder than ever!";
3111 ],
3112 life [;
3113 ThrowAt:
3114 if (noun == axe) {
3115 if (random(3) ~= 1) {
3116 remove self;
3117 move axe to location;
3118 self.number--;
3119 "You killed a little dwarf! The body vanishes in a cloud of greasy black smoke.";
3120 }
3121 move axe to location;
3122 "Missed! The little dwarf dodges out of the way of the axe.";
3123 }
3124 <<Give noun second>>;
3125 Give:
3126 if (noun == tasty_food)
3127 "You fool, dwarves eat only coal! Now you've made him *really* mad!";
3128 "The dwarf is not at all interested in your offer. (The reason being,
3129 perhaps, that if he kills you he gets everything you have anyway.)";
3130 Attack:
3131 "Not with your bare hands. No way.";
3132 ],
3133 has_thrown_axe false,
3134 has animate;
3135
3136 Object axe "dwarvish axe"
3137 with name 'axe' 'little' 'dwarvish' 'dwarven',
3138 description "It's just a little axe.",
3139 initial "There is a little axe here.",
3140 before [;
3141 if (~~self.is_near_bear) rfalse;
3142 Examine:
3143 "It's lying beside the bear.";
3144 Take:
3145 "No chance. It's lying beside the ferocious bear, quite within harm's way.";
3146 ],
3147 is_near_bear false;
3148
Last updated 23 June 2004.
This site is no longer supported; information may be out of date.
Maintained as a historical archive by the Interactive Fiction Technology Foundation.
Copyright 1993-2018 IFTF, CC-BY-SA unless otherwise noted.
This page was originally managed by Graham Nelson (graham@gnelson.demon.co.uk) assisted by C Knight.