#define PHIAL 150
#define BOTTLE 1000
#define QUIRM 2500
#define DEMIJOHN 50000
inherit "/obj/vessel";
nosave string glass;
void make_bottle( string word, int number ) {
int mass;
string adjective, noun;
glass = word;
set_max_volume(number*4);
mass = number / 100;
if ( !mass ) mass = 1;
set_leak_rate( 0 );
set_value( mass * 25 + random( mass * 10 ) );
set_weight( mass + random( mass * 10 ) / 10 );
set_max_weight( mass * 2 );
add_property( "fragile", mass * 20 + random( mass * 5 ) );
switch( number ) {
case 0..PHIAL:
adjective = "small";
noun = "phial";
break;
case PHIAL+1..BOTTLE:
adjective = "medium sized";
noun = "bottle";
break;
case BOTTLE+1..QUIRM:
adjective = "large";
noun = "Quirm";
break;
case QUIRM+1..DEMIJOHN:
adjective = "very large";
noun = "demijohn";
break;
default:
adjective = "huge";
noun = "tank";
}
set_name( lower_case( noun ) );
set_short( adjective +" "+ glass +" "+ noun );
set_long( "This is a "+ adjective +" "+ glass +" glass "+ noun +".\n" );
add_alias( "bottle" );
add_adjective( ({ adjective, glass }) );
set_main_plural( adjective +" "+ glass +" "+ noun +"s" );
add_plural( lower_case( noun ) +"s" );
} /* make_bottle() */
string query_glass() { return glass; }
int query_number() { return (int)query_property( "number" ); }
mixed *stats() {
return ::stats() + ({
({ "glass", glass, }),
});
} /* stats() */
mapping int_query_static_auto_load() {
return ([
"::" : ::int_query_static_auto_load(),
"glass" : glass,
]);
} /* int_query_static_auto_load() */
void init_static_arg( mapping map ) {
if ( map["::"] )
::init_static_arg( map["::"] );
if ( !undefinedp( map["glass"] ) )
glass = map["glass"];
} /* init_static_arg() */
mixed query_static_auto_load() {
if ( explode( file_name( this_object() ), "#" )[ 0 ] == "/obj/bottle" )
return int_query_static_auto_load();
return ([ ]);
} /* query_static_auto_load() */