// Gototh, 13/04/99
/**
* This effect has a classification of "body.hairstyle". It adds
* a string of text to the player's description detailing what sort
* of hair style they have. The first parameter should be an array
* of strings describing the hair style. The first member of the
* array should be what the hair style looks like the first week,
* the second member what it looks like the second week, etc.
* The second parameter is the age of the player when the hair
* style was added (use query_time_on() * -1).
* <p>
* @classification body.hairstyle
* @see help::effects
*/
#include <effect.h>
/**
* @ignore yes
*/
string query_classification()
{
return "body.hairstyle";
} /* query_classification() */
/**
* @ignore yes
*/
int survive_death()
{
return 0;
} /* survive_death() */
/**
* @ignore yes
*/
int query_indefinite()
{
return 1;
} /* query_indefinite() */
/**
* @ingnore yes
*/
mixed *beginning(object player, mixed *hairstyle)
{
player->add_extra_look(this_object());
return hairstyle;
} /* beginning() */
/**
* @ignore yes
*/
mixed *restart(object player, mixed *arg)
{
player->add_extra_look(this_object());
return arg;
} /* restart() */
/**
* @ignore yes
*/
mixed *merge_effect( object player, mixed *arg1, mixed *arg2)
{
return arg2;
} /* merge_effect() */
/**
* @ignore yes
*/
void end(object player)
{
player->remove_extra_look(this_object());
} /* end() */
/**
* @ignore yes
*/
string extra_look(object player)
{
string *style;
int h_time, weeks_passed;
style = player->arg_of(player->effects_matching("body.hairstyle")[0])[0];
h_time = player->arg_of(player->effects_matching("body.hairstyle")[0])[1];
weeks_passed = ((player->query_time_on() * -1) - h_time) /
((24 * 60 * 60 * 7) / 3) * -1;
if(weeks_passed > sizeof(style) - 1)
{
player->submit_ee(0, 0, EE_REMOVE);
return "";
}
return "$C$"+player->query_pronoun()+" has "+style[weeks_passed]+".\n";
} /* extra_look() */