/* Do not remove the headers from this file! see /USAGE for more info. */
int query_ghost();
private nosave int stunned, asleep, chance;
int query_stunned()
{
if(stunned > time())
return 1;
return 0;
}
int query_asleep()
{
return asleep;
}
void stun()
{
stunned = time() + 5;
}
void wake_up()
{
if(asleep)
{
asleep = 0;
stunned = time() + 5;
}
}
void knock_out()
{
asleep = 1;
chance = 0;
}
mixed check_condition(int urgent)
{
if(query_ghost())
{
stunned = 0;
asleep = 0;
return 0;
}
if(urgent && stunned > time())
return "You $vare still recovering from that last blow, ";
if(asleep)
{
if(urgent)
{
if(random(5) <= chance++)
{
wake_up();
}
else
{
return "You try desperately to wake up, but fail.\n";
}
}
else
{
return "But you are asleep!\n";
}
}
return 0;
}