/* atone someone */ #define NAME "@@query_name:$this_player()$@@" status atone(string targ, mixed alt_type) { int i; string file; if(!alt_type) alt_type = "divination_sphere"; file = file_name(this_object()); sscanf(file,"%s#%d",file,i); this_player()->load_spell(({ "target", targ, "cost", 15, "level", 15, "cast time", 2, "spell object", file, "casting msg", "You begin to pray for atonement.\n", "casting msg room", NAME +" begins to pray a silent prayer.\n", "passive", })); return 1; } status cast_spell(object caster,object target,object prev,int dmg) { if(!living(target)) { write("You cannot atone something that is not living!\n"); } else if(target->query_npc()) { write("You cannot atone "+ target->query_name() +"!\n"); } else if((int)target->query_level() >= (int)caster->query_level()) { write("You can only atone those of lower level than yourself.\n"); } else { target->set_align((string)caster->query_al_title()); target->set_alignment((int)caster->query_alignment()); write("You place your hands upon "+ target->query_name() +"\n"+ "You atone "+ target->query_name() +", turning "+ target->query_objective() +" to the true way.\n"); say(caster->query_name() +" places "+ caster->query_possessive() +" hands upon "+ target->query_name() +"\n", target); tell_object(target, caster->query_name() +" places "+ caster->query_possessive() +" hands upon you and atones you\n"); } destruct(this_object()); return 1; } /* Native Mode Move */ #include <move.h>