int worn,i; object worn_by; id(str) { return str == "shackles"; } init() { add_action("wear"); add_verb("wear"); add_action("move"); add_verb("north"); add_action("move"); add_verb("south"); add_action("move"); add_verb("east"); add_action("move"); add_verb("west"); add_action("move"); add_verb("up"); add_action("move"); add_verb("down"); add_action("kill"); add_verb("kill"); add_action("magic"); add_verb("fireball"); add_action("magic"); add_verb("shock"); add_action("magic"); add_verb("missile"); add_action("magic"); add_verb("heal"); } long() { write("Some strange arm and leg shackles.\n"); } short() { if (worn) return "Some strange shackles" + " (worn)"; return "Some strange shackles"; } query_value() { return 0; } wear(str) { if (!id(str)) return 0; if (environment() != this_player()) { write("You must get it first!\n"); return 1; } if (worn) { write("You alread wear it!\n"); return 1; } worn_by = this_player(); call_other(this_player(), "wear", this_object()); worn = 1; return 1; call_other(worn_by, "stop_wearing", 0); worn = 0; worn_by = 0; } drop(silently) { if (worn && (call_other(this_player(), "query_level", 0) < 20)) { write("The shackles is impossible to get of.\n"); return 1; } return 0; } get() { worn_by = this_player(); call_other(this_player(), "wear", this_object()); worn = 1; return 1; } query_weight() { return 1; } query_name() { return "shackles"; } magic() { if (call_other(this_player(), "query_level", 0) > 20) { return 0; } else { write("You can't use magic while shackled.\n"); return 1; } } move() { if (call_other(this_player(), "query_level", 0) > 20) { return 0; } else { return 1; } } kill() { write("You can't kill somebody while you are shackled.\n"); return 1; }