""" #************************************************************************** * Original Diku Mud copyright (C) 1990, 1991 by Sebastian Hammer, * * Michael Seifert, Hans Henrik St{rfeldt, Tom Madsen, and Katja Nyboe. * * * * Merc Diku Mud improvments copyright (C) 1992, 1993 by Michael * * Chastain, Michael Quan, and Mitchell Tse. * * * * In order to use any part of this Merc Diku Mud, you must comply with * * both the original Diku license in 'license.doc' as well the Merc * * license in 'license.txt'. In particular, you may not remove either of * * these copyright notices. * * * * Much time and thought has gone into this software and you are * * benefitting. We hope that you share your changes too. What goes * * around, comes around. * ***************************************************************************/ #************************************************************************** * ROM 2.4 is copyright 1993-1998 Russ Taylor * * ROM has been brought to you by the ROM consortium * * Russ Taylor (rtaylor@hypercube.org) * * Gabrielle Taylor (gtaylor@hypercube.org) * * Brian Moore (zump@rom.org) * * By using this code, you have agreed to follow the terms of the * * ROM license, in the file Rom24/doc/rom.license * ***************************************************************************/ #*********** * Ported to Python by Davion of MudBytes.net * Using Miniboa https://code.google.com/p/miniboa/ * Now using Python 3 version https://code.google.com/p/miniboa-py3/ ************/ """ from merc import * from magic import * from const import skill_table def do_heal(ch, argument): # check for healer */ mob = [mob for mob in ch.in_room.people if IS_NPC(mob) and IS_SET(mob.act, ACT_IS_HEALER)][:1] if not mob: ch.send("You can't do that here.\n\r") return mob = mob[0] argument, arg = read_word(argument) if not arg: # display price list */ act("$N says 'I offer the following spells:'",ch,None,mob,TO_CHAR) ch.send(" light: cure light wounds 10 gold\n\r") ch.send(" serious: cure serious wounds 15 gold\n\r") ch.send(" critic: cure critical wounds 25 gold\n\r") ch.send(" heal: healing spell 50 gold\n\r") ch.send(" blind: cure blindness 20 gold\n\r") ch.send(" disease: cure disease 15 gold\n\r") ch.send(" poison: cure poison 25 gold\n\r") ch.send(" uncurse: remove curse 50 gold\n\r") ch.send(" refresh: restore movement 5 gold\n\r") ch.send(" mana: restore mana 10 gold\n\r") ch.send(" Type heal <type> to be healed.\n\r") return spell = None sn = None words = None cost = 0 if "light".startswith(arg): spell = spell_cure_light sn = skill_table["cure light"] words = "judicandus dies" cost = 1000 elif "serious".startswith(arg): spell = spell_cure_serious sn = skill_table["cure serious"] words = "judicandus gzfuajg" cost = 1600 elif "critical".startswith(arg): spell = spell_cure_critical sn = skill_table["cure critical"] words = "judicandus qfuhuqar" cost = 2500 elif "heal".startswith(arg): spell = spell_heal sn = skill_table["heal"] words = "pzar" cost = 5000 elif "blindness".startswith(arg): spell = spell_cure_blindness sn = skill_table["cure blindness"] words = "judicandus noselacri" cost = 2000 elif "disease".startswith(arg): spell = spell_cure_disease sn = skill_table["cure disease"] words = "judicandus eugzagz" cost = 1500 elif "poison".startswith(arg): spell = spell_cure_poison sn = skill_table["cure poison"] words = "judicandus sausabru" cost = 2500 elif "uncurse".startswith(arg) or "curse".startswith(arg): spell = spell_remove_curse sn = skill_table["remove curse"] words = "candussido judifgz" cost = 5000 elif "mana".startswith(arg) or "energize".startswith(arg): spell = None sn = None words = "energizer" cost = 1000 elif "refresh".startswith(arg) or "moves".startswith(arg): spell = spell_refresh sn = skill_table["refresh"] words = "candusima" cost = 500 else: act("$N says 'Type 'heal' for a list of spells.'",ch,None,mob,TO_CHAR) return if cost > (ch.gold * 100 + ch.silver): act("$N says 'You do not have enough gold for my services.'",ch,None,mob,TO_CHAR) return WAIT_STATE(ch,PULSE_VIOLENCE) ch.deduct_cost(cost) mob.gold += cost / 100 mob.silver += cost % 100 act("$n utters the words '$T'.",mob,None,words,TO_ROOM) if spell == None: # restore mana trap...kinda hackish */ kinda? ch.mana += dice(2,8) + mob.level / 3 ch.mana = UMIN(ch.mana,ch.max_mana) ch.send("A warm glow passes through you.\n\r") return if sn == -1: return spell(sn,mob.level,mob,ch,TARGET_CHAR)