/* 28 NOV 00 - Awful's swinging effect. A very simple little * effect, useful for playground swings. * Allow for a simple "stop" swinging as well as being able to * "jump" from the swing in the traditional playground daredevil * method. */ /* 72 column spacing */ #include <effect.h> #define SWINGS "/d/sur/Sto_Lat/hill_street/playground/playground04" string query_classification() { return "other.swinging"; } void beginning(object player, int arg) { int st, tt; player->submit_ee("swinging", ({15, 30}), EE_CONTINUOUS); player->submit_ee( 0, arg, EE_REMOVE ); tt = (int)player->expected_tt(); st = (tt - 15); player->submit_ee("slowing", (st), EE_ONCE); if (tt < 61) { player->add_succeeded_mess(previous_object(), ({ "You push off with your feet and start to swing back and " "forth.\n", "$N push$s off with $p feet and start$s to swing back and " "forth.\n"})); player->set_position("swinging back and forth"); player->set_position_type("on"); } } /* void beginning(object player, mixed arg) */ void merge_effect(object player, int old_arg, int new_arg) { int tt, st; tt = (int)player->expected_tt(); tell_room(environment(player), capitalize(player->a_short() ) + " leans back and pulls on the swing to gain momentum.\n", player); tell_object(player, "You lean back and pull on the swing " "to gain momentum.\n"); player->submit_ee(0, new_arg + tt, EE_REMOVE); st = (tt -15); player->submit_ee("slowing", (st), EE_ONCE); } void end(object player) { if(file_name(environment(player)) != SWINGS) return; tell_object(player, "You stop swinging.\n"); tell_room(environment(player), capitalize(player->a_short()) + " stops swinging.\n", player); player->set_position("sitting"); player->set_position_type("in"); } /* void end(object player) */ void swinging(object player) { if(file_name(environment(player)) != SWINGS){ player->submit_ee(0, 0, EE_REMOVE); return; } switch (random(3)) { case 1 : if (player->query_gender() == 2) { tell_room(environment(player), capitalize(player->a_short() ) + " seems very happy as she reaches the bottom of her " "arc on the swing.\n", player); tell_object(player, "You feel a pleasant tickling sensation " "in your stomach as you reach the bottom of your arc on " "the swing.\n"); } else { tell_room(environment(player), capitalize(player->a_short() ) + " swings back and forth happily, just like a child again.\n", player); tell_object(player, "You swing back and forth happily, just " "like a child again.\n"); } break; case 2 : tell_room(environment(player), capitalize(player->a_short() ) + " looks at if "+player->query_pronoun()+" could just " "fly right off into the sky as "+player->query_pronoun()+ " reaches the top of "+player->query_possessive()+" arc on " "the swing.\n", player); tell_object(player, "You feel as if you could just fly right " "off into the sky as you reach the top of your arc on the " "swing.\n"); break; case 3 : tell_room(environment(player), capitalize(player->a_short() ) + " arcs through the air like a pendlum.\n", player); tell_object(player, "You arc through the air like a " "pendlum.\n"); break; default : tell_room(environment(player), capitalize(player->a_short() ) + " swings back and forth.\n", player); tell_object(player, "You swing back and forth.\n"); } } /* void swinging(object player) */ void slowing(object player) { if ( (int)player->expected_tt() < 20 ) { tell_object(player, "Your swinging is slowing down as you " "gradually lose momentum.\n"); tell_room(environment(player), capitalize(player->a_short()) + " slows down a bit as "+player->query_pronoun()+" loses " "momentum.\n", player); } } /* void slowing(object player) */