/* Curse */
inherit "skills/obj/sp_weap";
inherit "skills/obj/sp_arm";
status curse(string targ, mixed alt_type) {
string file;
int i, cl;
if(!alt_type) alt_type = "combat_sphere";
cl = (objectp(alt_type))
? (int)alt_type->query_cast_level()
: (int)this_player()->query(alt_type);
file = file_name(this_object());
sscanf(file,"%s#%d",file,i);
this_player()->load_spell(({
"target", targ,
"name", "Curse",
"sphere", alt_type,
"cost", 1,
"level", 1,
"cast time", 1,
"spell object", file,
"damage", cl, /* as time */
}));
return 1;
}
/*********************************************************************/
/* when cloned to player */
status cast_spell(object caster,object target,object prev,int dmg) {
object bless;
bless = present("Curse", target);
if(bless) {
if(target != caster) {
tell_object(caster,"You extend the time of the Curse upon "+
(string)target->query_name()+".\n");
}
else {
write("You extend the time of your Bless spell.\n");
}
bless->adj_time(dmg*60);
destruct(this_object());
return 1;
}
write("You reach out your hands and lay them "+ target->query_name() +
",\nCursing "+ target->query_objective() +" in the name of "+
"the Gods.\n");
say(caster->query_name() +" reaches out and lays hands upon "+
target->query_name() +",\nCursing "+ target->query_objective() +" "+
" in the name of the Gods.\n", target);
tell_object(target, caster->query_name()
+" reaches out and lays hands upon you,\n"
+"Cursing you in the name of the Gods.\n");
set_name("Curse");
set_alt_extra_long("You are Cursed!\n");
set_extra_long("@@query_name:$environment()$@@ is Cursed!.\n");
set_left_wc_bonus(-1);
set_wc_bonus(-1);
set_ac_bonus(-1);
adj_time(dmg * 60);
target->recalc_ac();
target->recalc_wc();
return 1; /* don't do damage */
}
/* Native Mode Move */
#include <move.h>