/** * This is the effect skelton docs. This effect * has a classification of "potion.alteration.female". * <p> * Describe the arguments in here. * @classification potion.alteration.female * @see help::effects */ /* * This effect, if the quantity is high enough (>100) turns a male * creature into a female */ inherit "/std/effects/basic"; #include <effect.h> #include "path.h" void create() { set_boundaries( ({ 41, 31 }), ({ 80, 70 }) ); } /* create() */ /** @ignore yes */ int query_pass_through( int *coord ) { return 30; } /** @ignore yes */ mixed query_attrs( int *coord ) { int total; total = distance_within_region( coord ) * 100 / 50; if( total > 100 ) total = 100; return ({ 10, 30, ({ }), ({ ({"red", total }), ({ "blue", total / 2 }) }), ({ ({"kerosene", total / 2 }) }), ({ ({"kerosene", total }) }) }); } /* query_attrs() */ /** @ignore yes */ void action_drunk( mixed ob, int *coord, int quantity ) { if( TP->query_gender() != 1 ) { write("You feel a warm tingling in your chest and bowels.\n"); return; } if( quantity >= 100 ) TP->add_effect( file_name(TO) ); } /* action_drunk() */ /* now the player effect stuff */ /** @ignore yes */ string query_classification() { return "potion.alteration.female"; } /** @ignore yes */ int query_indefinite() { return 1; } /** @ignore yes */ int beginning( object player ) { int original; original = player->query_gender(); if( original == 2 ) { tell_object( player, "You feel really weird for a moment, but it " "passes quickly.\n"); player->submit_ee( 0, 0, EE_REMOVE ); return original; } tell_object( player, "You feel really wierd! A disconcerting " "tingling sensation emerges from your chest and bowels. " "You are definitely not the man you were.\n"); player->set_gender(2); return original; } /* beginning() */ /** @ignore yes */ void end( object player, int original ) { if( original != 2 ) { tell_object( player, "With a fiery burning sensation in your chest " "and bowels you return to the gender of your birth.\n"); player->set_gender(original); } } /* end() */ /** @ignore yes */ void merge_effect() { return 0; } /** @ignore yes */ int survive_death() { return 1; }