#include <mudlib.h> inherit MAGIC_ARMOUR; int active = 0; int counter = 0; int left = 0; object user; reset(arg) { if(arg) return; set_name("amulet"); set_type("amulet"); set_short("Glowing Amulet"); set_long("The amulet has a pulsating glow to it.\n"+ "It looks very magical. An old rune reads, 'activate'\n"); set_info("This Amulet has a special kind of Leprechaun magic!\n"); set_ac(1); set_weight(1); set_value(10000); set_armour_material("glass"); } void init() { ::init(); add_action("activate", "activate"); } status activate(string what) { int tmp; user = this_player(); if (!what) { notify_fail("You can't just 'activate'\n"); return 0; } if(!present(what, user)) { notify_fail("You don't have a "+what+".\n"); return 0; } if (what == "amulet") { if (!worn) { notify_fail("You must wear it first.\n"); return 0; } if(active == 1) { notify_fail("You can't do it again!\n"); return 0; } active = 1; write("You chant, 'ACTIVATE AMULET', bringing it to life!\n"); say(user->query_name()+ " chants 'ACTIVATE AMULET'\n"+ "An amulet around "+user->query_possessive()+ " neck seems to come to life!\n"); set_heart_beat(1); return 1; } return 0; } drop () { set_heart_beat(0); active = 0; return 0; } void heart_beat(){ int tmp; left = left + 1; counter = counter + 1; if (!worn) { active = 0; set_heart_beat(0); return; } if (worn_by != user) { active = 0; set_heart_beat(0); return; } if (counter >= 5) { counter = 0; tmp = user->query_max_hp() - user->query_hp(); if (tmp >= 3) user->adj_hp(3); else user->adj_hp(tmp); if (tmp != 0) tell_object (user, "The magic of the Leprechauns has blessed you!\n"); return; } if (left > 4000) { tell_object (user, "The Leprechaun magic seems to wear off\n"+ "as the amulet dissolves before your eyes!\n"); destruct(this_object()); return; } return; }