/* Do not remove the headers from this file! see /USAGE for more info. */
/*
** std_mage_spell.c -- standard spell superclass for "stock mages"
**
** Adds delays from casting to effect and adds the requirement that the
** caster must be in the "stock-mage" guild.
*/
#include <assert.h>
inherit SPELL;
private nosave int cast_time;
void do_effects(object target, object reagent);
int set_cast_time(int t)
{
ASSERT(t>=0);
cast_time = t;
}
int get_spell_level()
{
return 1000; // They should probably redefine this function....
}
// Don't allow spells to redefine this now.
// This should drain spell points, etc..
nomask mixed valid_circumstances(object target, object reagent)
{
return this_body()->query_member_guild("stock-mage") >= get_spell_level();
}
nomask void cast_spell(object target, object reagent)
{
write("You begin casting...\n");
call_out((: do_effects :), cast_time, target, reagent);
}