/*
The Laughing Gnome!
With teefs and spells!
Wrytten by Drakkos Thee Creator
18/10/2000
*/
#include <armoury.h>
inherit "/obj/monster";
void do_bunny(object, object);
void do_maintain(object, object);
void setup() {
set_name("gnome");
set_short("laughing gnome");
set_long("This is a little, friendly looking gnome. Well... "
"friendly looking aside from the vicious sharp teefs and the "
"wicked razor-like claws. He has laughter lines all over "
"his face, tho', so he can't be all bad.\n");
add_property("unique", 1);
basic_setup("gnome", "wizard", 50);
set_gender("male");
set_int(23);
set_str(18);
set_wis(18);
add_skill_level("magic", 100);
add_skill_level("fighting", 50);
load_chat(20,({
1, "' Ha ha ha!.",
1, "' He he he!.",
2 , "' I'm the laughing gnome, and you can't catch me!",
1 , "#charm_women",
}) );
load_a_chat(20,({
2, ": bares his teeth.",
1, "' I'll get my brother Fred onto you!.",
2 , "' I'll call out the Gnome Guard!",
}) );
add_spell("bunnies", "/obj/spells/fire_bunny", "cast_spell");
add_spell("flowers", "/obj/spells/flowers", "cast_spell");
add_spell("shield", "/obj/spells/small_shield", "cast_spell");
add_combat_action(25, "bunny_them",(: do_bunny :));
add_combat_action(25, "maintain_me",(: do_maintain :));
add_attack( "claws", 88,({ 10, 8, 20 }), "sharp", "sharp", 0 );
add_attack( "teeth", 88,({ 5, 5, 25 }), "pierce", "pierce", 0 );
add_attack_message( "claws", "sharp",
({
100,
({ "You slice $hcname$ with your claws.\n",
"$mcname$ slices you with $mposs$ claws.\n",
"$mcname$ slices $hcname$ with $mposs$ claws.\n"}),
200,
({ "You rip $hcname$ apart with your claws.\n",
"$mcname$ rips you apart with $mposs$ claws.\n",
"$mcname$ rips $hcname$ apart with $mposs$ claws.\n"}),
0, // The default message set.
({ "You scratch $hcname$ viciously with your claws.\n",
"$mcname$ scratches you viciously with $mposs$ claws.\n",
"$mcname$ scratches $hcname$ viciously with $mposs$ claws.\n"})
}));
add_attack_message( "teeth", "pierce",
({
100,
({ "You nibble $hcname$ with your teeth.\n",
"$mcname$ nibbles you with $mposs$ teeth.\n",
"$mcname$ nibbles $hcname$ with $mposs$ teeth.\n"}),
200,
({ "You chew on $hcname$ with your teeth.\n",
"$mcname$ chews on you with $mposs$ teeth.\n",
"$mcname$ chews on $hcname$ with $mposs$ teeth.\n"}),
0, // The default message set.
({ "You sink your teeth into $hcname$.\n",
"$mcname$ sinks $mposs$ teeth into you.\n",
"$mcname$ sinks $mposs$ teeth into $hcname$.\n"})
}));
}
void charm_women() {
object player;
foreach(player in all_inventory(environment(this_object()))) {
if(interactive(player) && player->query_gender() == 2) {
queue_command("cast flowers");
queue_command("give flowers to " + player->query_name());
queue_command("bow with a flourish");
return;
}
}
}
void do_bunny(object attacker, object target) {
object carrot,torch;
if(target != this_object() ) {
if(!sizeof(match_objects_for_existence("carrot", this_object()))) {
carrot =ARMOURY->request_item ("carrot");
carrot->move(this_object());
}
if(!sizeof(match_objects_for_existence("torch", this_object()))) {
torch = ARMOURY->request_item ("torch");
torch->move(this_object());
}
do_command("cast bunnies on " + target->query_name());
}
}
void do_maintain(object attacker, object target) {
object temp;
if(!sizeof(match_objects_for_existence("shields", this_object()))) {
temp = ARMOURY->request_item("wooden djelian shield", 100);
temp->move(this_object());
}
do_command("cast shield on " + this_object()->query_name());
}
void adjust_hp(int number) {
return;
}