room_db #248

Parent Owner Flags Source rpg_march_2006/Misc/roomdb(weather).txt

Aliases: room_db, rdb

18 verbs · 42 properties · 0 children

Verbs

VerbSpecFlagsDefinerLines
wait_for_tasksthis none this#2489
end_waitthis none this#2484
trustedthis none this#2483
add_weather_zonethis none this#24832
remove_weather_zonethis none this#24835
all_rooms find_allthis none thisrx#24827
update_weatherthis none this#248106
add_flagthis none this#24827
remove_flagthis none this#24826
cyclethis none this#24816
default_weather_descthis none thisrx#24810
add_drowningthis none this#24811
do_drownthis none this#24829
remove_drowningthis none this#2480
time_of_daythis none this#24812
is_water_breathingthis none this#24820
room_magic_effectthis none this#24848
protectedthis none this#2488

Properties

PropertyDefinerFlagsOwnerValue
flag_exclude#248r
value (273 chars){{"cavern", "structure"}, {"structure", "outdoors"}, {}, {}, {}, {}, {"outdoors"}, {"damned"}, {"blessed"}, {"dark", "lighted", "sun-lit"}, {"dim", "lighted", "sun-lit"}, {"dim", "dark", "sun-lit"}, {"dim", "dark", "lighted"}, {"submerged", "seashore"}, {}, {}, {}, {}, {}}
flag_depend#248r{{}, {}, {}, {}, {}, {}, {"wet"}, {}, {}, {}, {}, {}, {}, {"wet"}, {"wet"}, {}, {}, {}, {}}
flag_names#248r{"outdoors", "cavern", "seashore", "forest", "structure", "wet", "submerged", "blessed", "damned", "dim", "dark", "lighted", "sun-lit", "sea", "swamp", "tavern", "lighting", "stable", "peaceful"}
zone_names#248r{"castle", "eternal mist", "jungle", "ocean", "tower"}
zone_climates#248r
value (373 chars){{"cold", "cold", "cloudy", "cloudy", "sunny", "windy", "rainy", "rainy", "rainy", "stormy", "misty", "misty", "misty", "warm"}, {"cloudy", "rainy", "stormy", "stormy", "stormy", "misty", "misty", "misty"}, {"J_clear", "J_cloudy", "J_stormy"}, {"S_calm", "S_calm", "S_windy", "S_foggy", "S_stormy"}, {"cold", "cloudy", "sunny", "windy", "rainy", "stormy", "misty", "warm"}}
zone_weather#248r{"drizzle", "clouds", "J_overcast", "S_windy1", "overcast"}
zone_forecast#248r{"rainy", "cloudy", "J_cloudy", "S_windy", "cloudy"}
season#248r"summer"
time_count#248r783
global_tendancy#248r"calm"
default_climate#248r{"cold", "cloudy", "sunny", "windy", "rainy", "stormy", "misty", "warm"}
maintainers#248r{#105941}
weather_types#248r
value (391 chars){"chilly", "flakes", "snow", "blizzard", "sun", "clouds", "overcast", "breeze", "wind", "gusts", "drizzle", "rain", "downpour", "sleet", "hail", "thunder", "storm", "tempest", "mist", "fog", "hot", "muggy", "S_placid", "S_breeze", "S_windy1", "S_mist", "S_fog", "S_windy2", "S_rain", "D_calm", "D_wind", "D_sandstorm", "J_sun", "J_breeze", "J_clouds", "J_overcast", "J_squall", "J_downpour"}
all_rooms#248r
value (6183 chars){#258, #3092, #1131, #5747, #6619, #9512, #11174, #740, #760, #757, #763, #95, #99, #7370, #7373, #591, #358, #751, #7367, #532, #354, #11960, #11959, #1622, #13697, #17506, #18647, #10336, #4371, #19232, #33439, #41735, #9355, #261, #295, #91, #105, #111, #192, #224, #10161, #29129, #59976, #85821, #9876, #69, #7200, #97146, #97149, #97389, #89923, #44048, #6628, #71048, #3733, #1181, #82749, #2990, #12758, #146, #10555, #2075, #83, #7750, #9079, #16070, #2707, #29500, #36893, #107305, #8111, #83072, #14060, #175, #64666, #21317, #7773, #66017, #101054, #62398, #84279, #42997, #129, #72483, #60414, #70710, #6243, #78422, #60939, #2765, #77404, #17149, #36618, #117058, #1501, #118833, #61212, #62121, #1997, #85405, #66068, #16239, #40311, #75719, #38233, #98903, #94711, #84319, #99048, #52272, #15449, #100620, #77878, #95886, #643, #3040, #3051, #646, #710, #713, #3043, #8068, #8071, #10430, #10433, #10436, #48687, #10337, #10340, #10343, #11243, #11246, #11787, #12137, #12493, #8736, #68818, #59680, #66520, #102785, #8777, #5350, #95454, #98670, #116058, #82539, #93905, #103366, #77712, #49444, #161, #377, #754, #63230, #70477, #9955, #14599, #9585, #106346, #92585, #9260, #25633, #75469, #74909, #101247, #3771, #75530, #97643, #882, #2147, #77, #3768, #6757, #3779, #3765, #2930, #21656, #2963, #2948, #2945, #2150, #49563, #51503, #43, #201, #227, #233, #339, #342, #529, #108, #12565, #10358, #75904, #107196, #111985, #73169, #71130, #70056, #75410, #21089, #15796, #19750, #105170, #56294, #37218, #73128, #66580, #115602, #38282, #8807, #80523, #39614, #89964, #118387, #99770, #40173, #97710, #22415, #32497, #54916, #10577, #11249, #6609, #1277, #1288, #4557, #4553, #71830, #9505, #82000, #46025, #84346, #35000, #22430, #87296, #14148, #102438, #9962, #1408, #9103, #71066, #7838, #8997, #62589, #4893, #49586, #34498, #6022, #16020, #10026, #109726, #108093, #3723, #98896, #2742, #2743, #74146, #113442, #12338, #49572, #115965, #100637, #6720, #2241, #85872, #31789, #12388, #51313, #81212, #61010, #118815, #27053, #2502, #82138, #3609, #2509, #41836, #105174, #116737, #12738, #65089, #64451, #106915, #4727, #114987, #77533, #102748, #110305, #52017, #5042, #77139, #112090, #79675, #121375, #77711, #54929, #97068, #77754, #9257, #9339, #9343, #9346, #77996, #104873, #63979, #33554, #39450, #51512, #101364, #103472, #43693, #66008, #51075, #14591, #92414, #5616, #109520, #103148, #101327, #111402, #85494, #113673, #17659, #87689, #80946, #1499, #8420, #100800, #85118, #72794, #72269, #100822, #100630, #58290, #53182, #12886, #53820, #63134, #68398, #58641, #57921, #86065, #91864, #100211, #106353, #93439, #86992, #49057, #58424, #36667, #50875, #22929, #22566, #9055, #27861, #6060, #47966, #55776, #51891, #59956, #47775, #22482, #36185, #54444, #58985, #71569, #46387, #45849, #61908, #55693, #17745, #3251, #81991, #28263, #12300, #60692, #76461, #16379, #91985, #89800, #34463, #71799, #96189, #45765, #32575, #10647, #102138, #42754, #72063, #101365, #24643, #51126, #87884, #85583, #100555, #13186, #63910, #62973, #5786, #21963, #78665, #106493, #1126, #94378, #106480, #80492, #104516, #11345, #5244, #35034, #9960, #9961, #29977, #108229, #52041, #1230, #57791, #3811, #5742, #3989, #61020, #33644, #6981, #8414, #68555, #86624, #100228, #9444, #7004, #8358, #16898, #23406, #33947, #33950, #33954, #5378, #46282, #1378, #1302, #1274, #28482, #28489, #28504, #28532, #1270, #1260, #49267, #13337, #17396, #53622, #66744, #83452, #82764, #83471, #57081, #47177, #71451, #44381, #76952, #91678, #94052, #5491, #7547, #1711, #9471, #87861, #195, #13649, #2646, #2413, #9459, #7195, #8399, #7399, #62820, #2986, #1756, #2337, #2448, #3972, #17164, #35674, #77765, #77704, #3814, #77705, #41113, #116688, #111234, #39993, #72777, #118811, #118844, #115522, #9958, #1282, #2080, #1494, #1463, #1418, #1455, #1588, #1386, #1389, #23403, #107890, #116677, #120372, #9331, #76289, #121010, #82024, #68956, #61849, #84046, #98051, #94970, #89573, #56392, #82702, #60710, #76672, #57186, #2381, #67874, #68480, #12660, #86476, #198, #6600, #6986, #63286, #61664, #75565, #79013, #9022, #112278, #77440, #90819, #12507, #13263, #12273, #61818, #71935, #116129, #102202, #16089, #4820, #10419, #22040, #22047, #22685, #24102, #24164, #29711, #17239, #17146, #51772, #33105, #11358, #52665, #52671, #30358, #52678, #21999, #51910, #43810, #34802, #56934, #54493, #31156, #33720, #46216, #51945, #4673, #36628, #55369, #36890, #36888, #36892, #63903, #64066, #109709, #64814, #51275, #71232, #2733, #60039, #69592, #82975, #47477, #8203, #53552, #42866, #85812, #79701, #65545, #82608, #2799, #54237, #66091, #12757, #78069, #67424, #75341, #74810, #5212, #84325, #9110, #1048, #964, #1142, #82264, #25673, #4989, #31645, #89584, #21035, #88001, #75237, #33857, #17408, #76692, #12021, #1063, #1067, #1077, #4464, #7737, #9959, #5713, #1322, #8352, #1066, #1613, #1079, #10600, #1081, #1344, #2744, #2751, #2752, #8030, #16633, #68363, #2292, #5415, #30802, #18030, #53064, #38175, #36393, #63281, #64753, #98412, #36373, #46304, #43013, #60246, #60843, #60245, #1703, #1704, #1705, #1706, #1712, #1850, #1851, #1852, #1853, #1132, #1134, #13673, #13670, #13676, #13679, #13661, #13667, #13664, #13658, #13651, #13655, #12446, #65970, #88067, #49356, #73254, #100423, #11582, #12969, #64281, #61543, #932, #76464, #2317, #12228, #110324, #74963, #60093, #12176, #98678, #87527, #112123, #68263, #88715, #63928, #112373, #17983, #31258, #23198, #102533, #14597, #28726, #3545, #92410, #5648, #59056, #50905, #110734, #3840, #70511, #72188, #75966, #12134, #14975, #9422, #7029, #24655, #2443, #33870, #5391, #6067, #96221, #51604, #68371, #119614, #70461, #80124, #51491, #3567, #3656, #77798, #77797, #77795, #77764, #77758, #77745, #7319, #85363, #56739, #109687, #77482, #42408, #42869, #54780, #95002, #110193, #116707, #11731, #75801, #62231, #62123, #117799, #118813, #71313, #118810, #118820, #118830, #80120, #81762, #42626, #74636, #56365, #74911, #82079, #29473, #75810, #10387, #72574, #59085, #8028, #89692, #83184, #14337, #68197, #87353, #1146, #1087, #11675, #38226, #81035, #4683, #53781, #80896, #46670, #74946, #80515, #57226}
last_room_list_update#248r1141745324
current_task#248r0
last_weather_update#248r1141745324
heart#248r#-1
dummy1#248r0
dummy2#248r0
dummy3#248r0
weather_classes#248r{"cold", "cloudy", "sunny", "windy", "rainy", "stormy", "misty", "warm", "S_calm", "S_windy", "S_foggy", "S_stormy", "D_clear", "D_windy", "J_clear", "J_cloudy", "J_stormy"}
default_type_desc#248r
value (5935 chars){{"The sun is hidden behind the clouds and the air is quite cold.", 1, 1, "The stars are hidden by clouds, and the air is bitterly cold."}, {"White flakes of snow drift down out of a sky filled with grey.", 1, 1, "Tiny white flakes of snow drift down from the darkened, starless sky."}, {"Snowflakes swirl down from the cloud filled sky.", 1, 1, "Snowflakes swirl down out of the darkness."}, {"The wind howls blasting snowflakes in your face, and reducing your vision to almost nothing.", 1, 1, 1}, {"The sun pokes its orange-yellow head above the horizon, lighting the blue and almost cloudless sky.", "The sun shines down from a cloudless sky.", "The western horizon is orange from the last rays of the setting sun.", "Stars shine down from the clear night sky."}, {"The rising sun peeks through the clouds on the western horizon.", "Clouds occasionally drift across the sky, casting shadows over the landscape.", "A glorious sunset fills the western horizon with a dazzling display of orange and yellow.", "Stars peek out here and there from the cloudy sky."}, {"The grey sky grows lighter as the unseen sun rises.", "The sky is filled with grey clouds, hiding the sun from sight.", "The grey sky grows darker as the sun sets.", "The stars are hidden from view by the clouds that fill the sky."}, {"A light breeze blows across the landscape.", 1, 1, 1}, {"A strong wind blows across the landscape.", 1, 1, 1}, {"Fierce gusts of wind blast dust in your face.", 1, 1, 1}, {"A light drizzle is falling from the cloudy sky.", 1, 1, "A light drizzle falls from the midnight sky."}, {"A steady rain falls from the sullen, overcast sky.", 1, 1, "A steady rain falls from the darkened sky."}, {"A tremendous downpour falls from the sky, soaking everthing around.", 1, 1, 1}, {"A bitterly cold, icy sleet is falling from the clouds above.", 1, 1, "Icy sleet falls from the darkness above."}, {"Hailstones pelt you from the sky.", 1, 1, 1}, {"The occasional rumble of thunder comes from the dark clouds above.", 1, 1, "The blackness of the night sky is occasionally pierced by a flicker of lightning or rumble of thunder."}, {"Rain pours from the heavens as flashes of lightning strike all about.", 1, 1, "The midnight sky is illuminated by flashes of lightning, as rain pours from the heavens."}, {"An incredible downpour falls, soaking everything, as lightning flashes all around followed by earshattering thunder.", 1, 1, "Heavy rain falls upon you, and the night sky is lit up by lightning every few seconds."}, {"A light mist covers the ground.", 1, 1, "The night is filled with an eerie mist that hugs the ground."}, {"A dense fog fills the air, muffling sound, and making vision difficult.", 1, 1, "The night is filled with a dense fog, restricting vision to only a few paces."}, {"The early morning air is already quite warm, even though the sun is just above the horizon.", "It is quite warm, and the land basks in the heat of the midday sun.", "The sun is setting, but the air is still quite warm.", "The nightime air is comfortably warm."}, {"The early morning air is already uncomfortably warm. and humid.", "The air is hot and muggy.", "The humid air is still uncomfortably warm", "The warm night air is quite humid."}, {"The sun pokes above the western horizon, casting its golden light upon the placid waters of the sea.", "The day is warm and clear, and the surface of the sea is calm and placid.", "The orange orb of the sun is setting beneath the calm waters of the sea.", "Stars can be seen reflected in the calm, placid waters of the sea."}, {"A light breeze blows across the gently lapping waters and the sky is bright and clear.", 1, 1, "A nightime breeze blows across the waters of the sea."}, {"A strong wind blows across the roiling sea. An occasional cloud drifts across the sun.", 1, 1, "The sound of the wind is punctuated by the sound of the turbulent sea, rolling beneath the stars."}, {"The surface of the sea is barely visible through the light mist that covers it.", 1, 1, 1}, {"The dense fog that covers the sea muffles sound and sight.", 1, 1, 1}, {"The cloudy skies shift and swirl, as whitecaps dance among the waves.", 1, 1, 1}, {"The wind howls, rain pours from the grey clouds above, and the sea lurches about sickeningly.", 1, 1, "The wind howls about, rain pours from the starless skies above, and the sound of the waves thrashing about can be heard."}, {"The desert sun peeks above the dunes, casting shadows on the sand.", "The sun beats down upon the desert like a hammer on an anvil.", "The desert sunset is a glorious display of reds and oranges.", "The desert air is cold and clear. A million stars twinkle in the heavens above."}, {"The desert sands shift and swirl in the gusty winds.", 1, 1, 1}, {"The wind howls about, blasting sand into eyes, nose, and mouth. It is almost impossible to see more than 3 feet in front of you.", 1, 1, 1}, {"The sun has only just begun to rise into the sky, but already the humid air is uncomfortably warm.", "The blazing sun hammers down on you and the air is wet and miserable.", "It is still muggy and unpleasant, even though the sun is setting in the west.", "The night air is warm and humid."}, {"A light breeze does little to cool the uncomfortably hot and humid air.", 1, 1, "A light breeze blows out of the night, bringing a pleasant coolness."}, {"The sun peeks through the clouds on the western horizon.", "The clouds swirling in the sky, while occasionally blocking the sun, do nothing to help the heat and humidity.", "The sun sets above the jungle, creating a beautiful orange sunset.", "Stars peek through the clouds in the sky above."}, {"The sky is filled with grey clouds and it is warm and humid.", 1, 1, "Not a star can be seen in the sky above."}, {"A light intermittant rain falls from the cloud-filled sky.", 1, 1, 1}, {"A fierce downpour soaks everything in the jungle.", 1, 1, "A heavy rain falls from the dark, starless skies."}}
weather_transitions#248r
value (977 chars){{"chilly", "flakes"}, {"chilly", "snow"}, {"flakes", "flakes", "snow", "blizzard"}, {"blizzard", "snow"}, {"clouds", "sun", "sun", "hot"}, {"sun", "clouds", "overcast", "thunder"}, {"overcast", "overcast", "clouds", "drizzle", "mist"}, {"clouds", "sun", "breeze", "wind"}, {"breeze", "gusts"}, {"wind"}, {"overcast", "drizzle", "rain"}, {"drizzle", "drizzle", "rain", "rain", "downpour", "hail", "sleet"}, {"rain"}, {"rain"}, {"rain"}, {"clouds", "thunder", "storm"}, {"thunder", "thunder", "storm", "tempest"}, {"storm"}, {"overcast", "fog"}, {"fog", "mist"}, {"hot", "sun", "hot", "muggy"}, {"hot", "muggy"}, {"S_placid"}, {"S_breeze", "S_windy1"}, {"S_breeze", "S_windy1"}, {"S_fog", "S_mist"}, {"S_fog", "S_mist"}, {"S_windy2", "S_rain"}, {"S_windy2", "S_rain"}, {"D_calm"}, {"D_wind", "D_sandstorm"}, {"D_wind", "D_sandstorm"}, {"J_sun", "J_breeze"}, {"J_sun", "J_breeze"}, {"J_clouds", "J_overcast"}, {"J_clouds", "J_overcast"}, {"J_squall", "J_downpour"}, {"J_squall"}}
class_weather#248r
value (497 chars){{"chilly", "flakes", "snow", "blizzard"}, {"clouds", "overcast"}, {"sun", "clouds", "breeze"}, {"breeze", "wind", "gusts"}, {"overcast", "drizzle", "rain", "downpour", "sleet", "hail"}, {"clouds", "thunder", "storm", "tempest"}, {"clouds", "overcast", "mist", "fog"}, {"sun", "hot", "muggy"}, {"S_placid"}, {"S_breeze", "S_windy1"}, {"S_mist", "S_fog"}, {"S_windy2", "S_rain"}, {"D_calm"}, {"D_windy", "D_sandstorm"}, {"J_sun", "J_breeze"}, {"J_clouds", "J_overcast"}, {"J_squall", "J_downpour"}}
class_transitions#248r
value (413 chars){{"cloudy"}, {"sunny", "windy", "stormy", "misty", "rainy", "cold"}, {"warm", "windy", "cloudy"}, {"cloudy", "sunny", "stormy"}, {"cloudy"}, {"cloudy"}, {"sunny", "cloudy"}, {"sunny", "cloudy"}, {"S_calm", "S_windy", "S_foggy"}, {"S_calm", "S_windy", "S_stormy"}, {"S_calm"}, {"S_windy", "S_stormy"}, {"D_clear", "D_windy"}, {"D_clear"}, {"J_clear", "J_cloudy"}, {"J_clear", "J_cloudy", "J_stormy"}, {"J_cloudy"}}
class_transitionable#248r
value (351 chars){{"chilly"}, {"clouds", "overcast"}, {"sun", "clouds", "breeze"}, {"breeze", "wind"}, {"overcast", "drizzle"}, {"clouds", "thunder"}, {"clouds", "overcast"}, {"sun", "hot", "muggy"}, {"S_placid"}, {"S_breeze", "S_windy1"}, {"S_mist"}, {"S_windy2"}, {"D_calm"}, {"D_wind"}, {"J_sun", "J_breeze"}, {"J_clouds", "J_overcast"}, {"J_squall", "J_downpour"}}
weather_transition_msgs#248r
value (5540 chars){{"The temperature has dropped considerably, it is now quite cool.", "", "Tiny snowflakes have begun to drift down from the cold, white skies."}, {"", "The snowflakes have stopped falling, but it is still quite cold.", "It has begun to snow more heavily."}, {"", "The fall of snow has lessened slightly.", "Only a few flakes now drift down from the skies.", "", "The wind picks up, howling around you and blowing snow all over."}, {"", "", "The winds slow and the fall of snow lessens slightly."}, {"The sky is virtually cloud free, right now.", "The sky is filled with clouds, but patches of sky can be seen between them.", "", "", "The temperature is now quite warm."}, {"Clouds drift through the sky, partially obscuring it.", "Most of the clouds in the sky have drifted away or dissipated.", "", "The clouds thicken and nary a trace of sky can be seen in the heavens above.", "The warm air has caused the clouds to grow into tall thunderheads, which produce an occasional rumble."}, {"Not a trace of sky is visible in the clouds above.", "", "", "The thick cloud cover thins, and patches of sky can be seen in the heavens above.", "A light drizzle has begun to fall.", "As the humid air cools slightly, a mist begins to rise from the ground."}, {"A light breeze has begun to blow.", "Although the breeze near the ground has died down, clouds still drift through the skies overhead.", "The breeze dies down, but the warm sun continues to shine down from the clear blue sky.", "", "The speed of the wind has picked up. It is now quite strong."}, {"It has become quite windy.", "The speed of the wind has died down, but a noticeable breeze is still present.", "The wind has picked up, and fierce gusts of wind blow dust in your eyes and mouth."}, {"", "The wind has died down slightly, but is still quite strong."}, {"A light rain has begun to fall.", "Gradually, the raindrops cease their gentle pitter-patter, but the sky remains hidden above the grey clouds.", "", "The rain has begun to fall more heavily."}, {"", "The rain has decreased to a light drizzle.", "The rain has let up slightly.", "", "", "The tempo of the raindrops increases considerably. Water is now pouring from the sky.", "The rain lets up briefly for a minute, then hail begins to fall", "The rain grows gradually colder and becomes a freezing sleet which delivers a bitter chill."}, {"", "The downpour lets up, but it is still raining heavily."}, {"", "The sleet lets up and is replaced by a warmer rain."}, {"", "The hail ceases and gives way to a normal rain."}, {"The clouds above have begun to rumble ominously.", "The time between rumbles of thunder lengthens as the storm clouds dissipate.", "", "Lightning flickers through the sky and it begins to rain."}, {"", "The rain ceases, but there is still an occasional rumble of thunder.", "The rain stops, but lightning still flickers in the sky.", "", "The rains increases to a downpour as lightning flashes and thunder crashes about you."}, {"", "The rain lets up slightly, but lightning still flashes amongst the clouds."}, {"A white mist rises from the ground.", "The mist dissipates, leaving overcast skies.", "The mist thickens and rises, engulfing the world in a white fog."}, {"", "", "The fog has partially dissipated, but it is still somewhat misty."}, {"The temperature grows quite warm.", "", "It has cooled off slightly, but remains clear", "", "The hot air grows moist, becoming damp and miserable"}, {"It has become hot and muggy.", "The air drys out a bit, but it is still hot.", ""}, {"The wind ceases and the sea grows calm and placid.", ""}, {"A steady breeze blows across the waters.", "", "The breeze grows into a strong wind and the waves grow higher."}, {"A strong wind lashes the waters of the sea, producing waves of considerable size.", "The wind gradually decreases and the seas grow calmer.", ""}, {"Mist is rising from the placid surface of the sea.", "The mist thickens into a dense fog which muffles sound and blocks vision.", ""}, {"", "", "The fog thins, but there is still mist on the surface of the water."}, {"Dark clouds roil in the heavens above, as the strong winds whip the sea up into a frenzy of waves and whitecaps.", "", "The wind grows stronger, and a heavy, cold rain begins to fall upon the restless sea."}, {"", "The rain ceases to fall and the sea grows slightly calmer.", ""}, {"All wind has died down and the dry desert air is now quite motionless.", ""}, {"A strong wind has begun to blow, causing the sand to shift and swirl.", "", "The howling wind starts picking up sand from the desert floor and blasting it into your eyes and mouth."}, {"", "The wind has calmed, allowing its burden of sand to fall to the ground, but it still swirls about uneasily.", ""}, {"The jungle air is warm and humid, but the sky is mostly clear of clouds.", "", "A warm breeze begins to blow."}, {"A warm breeze is blowing.", "The breeze has died down, leaving the hot, humid air quite still.", ""}, {"Clouds swirl in the sky above, bringing little relief from the oppressive heat and humidity.", "", "The clouds thicken into a grey sheet that fills the sky, but it is still miserably hot and wet."}, {"The sky is filled with grey clouds, but it is warm and wet.", "The clouds thin, allowing patches of sky to show through.", ""}, {"A light, intermittent rain falls from the grey skies, giving a little bit of relief from the heat.", "", "The rain begins to fall more heavily, and soon a fierce downpour drenches everything."}, {"", "The rain decreases in intensity abruptly."}}
drowning#248r{{#5003, 852846242}, {#4688, 852846242}, {#6113, 852846242}, {#31020, 859058650}, {#1742, 859262571}, {#1251, 859852067}}
weather_pen#248r0
room_parent#248r#1610
seaworthy_weapon_parents#248rc{#2231, #1394, #1454, #58137, #42517, #37646}
spell_index#248rc
value (344 chars){"summon", "conjure", "biting_cloud", "iceshell", "waterwhip", "windwall", "stinkcloud", "calm_winds", "storm", "predict", "heal", "pacify", "slow", "recall", "harden", "shatter", "hail", "firebolt", "heat", "barkskin", "enchant", "depress", "mindprobe", "stealskill", "lifelink", "forcewall", "claim", "dispell", "wound", "drain", "mindshock"}
weather_magic_effect#248r
value (2841 chars){{0, 0, -8, 10, 0, 2, -2, 2, -10, -1, -1, 1, 2, 1, 1, 0, 0, -8, -8, -2, -1, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0}, {0, -1, -16, 20, 0, 4, -4, 1, -20, -2, -1, 0, 2, 0, 0, 0, 0, -16, -16, -4, -2, 2, -1, 0, 0, 0, 0, 0, 0, 0, 0}, {0, -3, -24, 30, -2, 6, -6, -1, -30, -3, -3, -1, -3, 0, 0, 1, 1, 1, -24, -24, -6, -3, 3, -1, 0, 0, 0, 0, 0, 0, 0}, {0, -4, -32, 40, -4, 10, -10, -6, -40, -4, -5, 0, 2, 0, 1, 1, 1, -24, -24, -9, -3, 4, -1, -1, -1, -2, 0, 0, 0, 0, 0}, {0, 0, 4, -4, -1, -1, 1, 2, -5, 2, 3, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, -2, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, -5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 1, 0, 0, 0, 2, -4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, -6, 0, 0, 6, -8, -3, 1, 0, 0, -2, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, -12, 0, 0, 12, -16, -5, 3, -1, -1, -5, -4, 0, 0, 0, 0, 0, -4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, -18, 0, 0, 20, -24, -8, 6, -2, -1, -6, -4, 0, 0, 0, 0, 0, -6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, -6, 2, 8, 0, -6, -2, 5, 0, 0, 0, 0, 0, 0, 0, 0, -6, -4, 2, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, -12, 4, 16, 3, -12, -4, 10, -1, -1, -1, 0, 0, 0, 0, 0, -12, -8, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, -18, 6, 24, 5, -18, -6, 15, 0, -2, -2, 0, 0, 0, 0, 0, -18, -12, 6, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, -14, 10, 18, 4, -14, -5, 4, 0, -3, -1, 0, -1, 0, 0, 0, -24, -20, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, -20, 14, 14, 4, -8, -5, 4, 0, -3, -1, 0, -1, 0, 0, 0, -20, -20, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 4, -4, -3, 6, 0, -4, -5, -3, 0, 0, 0, 0, -5, -5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, -8, 3, 3, 10, -8, -6, 12, 0, -4, -6, -5, 0, 0, 0, 0, 0, -10, -10, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, -12, 5, 6, 16, -10, -9, 20, 0, -4, -6, -5, 0, 0, 0, 0, 0, -15, -15, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 4, -5, 5, 5, -5, 0, 0, 5, 5, 0, 0, 0, 0, -4, -4, 3, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 5, 0, 4, -5, 8, 5, -10, 0, 0, 5, 5, 0, 0, 0, 0, -6, -6, 4, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, -15, -5, -5, 0, 5, -10, 0, 5, 0, 0, 0, 0, 0, 0, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, -15, -4, -5, 5, 5, -15, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 8, -10, -2, -3, 2, 4, -10, 2, 3, 0, 0, 0, 0, 0, 0, 4, 8, 0, 0, -4, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, -10, 4, 6, 6, -8, -3, 1, 0, 0, -2, -1, 0, 0, 0, 0, -12, -6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, -12, 4, 6, 12, -16, -5, 3, -1, -1, -5, -4, 0, 0, 0, 0, -12, -10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 5, 10, -5, 5, 5, -5, 0, 0, 5, 5, 0, 0, 0, 0, -15, -4, 3, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 5, 5, 10, -5, 8, 5, -10, 0, 0, 5, 5, 0, 0, 0, 0, -20, -6, 4, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}
area_magic_effect#248r{}
weather_effect_words#248r{}
area_effect_words#248r{}
weather_task#248r2002816584
key#248not readable (E_PERM)
aliases#248{"room_db", "rdb"}
description#248"A database to allow easy global weather and magic effects related to terrain..."
object_size#248{54481, 1141286558}

Ancestry

Ancestors (nearest first): none

Children: none

Call graph

calls n248_0 #248:wait_for_tasks n248_2 #248:trusted n248_0->n248_2 n248_3 #248:add_weather_zone n248_3->n248_0 n248_3->n248_2 n248_1 #248:end_wait n248_3->n248_1 n248_4 #248:remove_weather_zone n248_4->n248_0 n248_4->n248_1 n248_5 #248:all_rooms n248_5->n248_0 n248_5->n248_1 n248_6 #248:update_weather n248_6->n248_2 n248_6->n248_1 n248_14 #248:time_of_day n248_6->n248_14 n248_7 #248:add_flag n248_7->n248_0 n248_7->n248_2 n248_7->n248_1 n248_8 #248:remove_flag n248_8->n248_0 n248_8->n248_2 n248_8->n248_1 n248_9 #248:cycle n248_9->n248_6 n248_10 #248:default_weather_desc n248_10->n248_14 n248_12 #248:do_drown n248_15 #248:is_water_breathing n248_12->n248_15

Source

wait_for_tasks

Spec this none thisDefiner #248

Referenced by

Source

1":wait_for_tasks() => wait until the database is done making previous modifications.  In some cases, a check of all rooms may be forced to suspend in the middle and it would be bad for other changes to be made in this unstable state.  This ensures that only 1 update is happening at a time.";
2if (!this:trusted(caller_perms()))
3  return E_PERM;
4endif
5"Warning, tasks had better be suspending in _my_ queue, unless somebody comes up with a :valid_task verb which would be preferable";
6while ($code_utils:task_valid(this.current_task))
7  suspend(0);
8endwhile
9this.current_task = task_id();

end_wait

Spec this none thisDefiner #248

Referenced by

Source

1"rdb:end_wait() => Stop waiting on the specified task.";
2if (task_id() == this.current_task)
3  this.current_task = 0;
4endif

trusted

Spec this none thisDefiner #248

Referenced by

Source

1":trusted(<perms>) => return 1 if the caller is trusted to freely make modifications to the database.  G_M is _way_ busy, so Im going to include the possibility of non-grandmasters modifying the database.";
2workhorse = args[1];
3return (workhorse in this.maintainers) || (workhorse in $local.rpg.grand_masters);

add_weather_zone

Spec this none thisDefiner #248

Referenced by

none

Source

1":add_weather_zone(<zone name>, [climate]) => adds a new weather zone of <zone name>.";
2if (!this:trusted(caller_perms()))
3  return E_PERM;
4endif
5this:wait_for_tasks();
6zone_names = this.zone_names;
7zone_name = args[1];
8if (typeof(zone_name) != STR)
9  this:end_wait();
10  return E_TYPE;
11endif
12if (zone_name in zone_names)
13  this:end_wait();
14  return E_NONE;
15endif
16lu = $list_utils;
17if ((length(args) > 1) && (typeof(args[2]) == LIST))
18  climate = {};
19  weather_classes = this.weather_classes;
20  for n in (args[2])
21    if (n in weather_classes)
22      climate = {@climate, n};
23    endif
24  endfor
25else
26  climate = this.default_climate;
27endif
28this.zone_names = {@this.zone_names, zone_name};
29this.zone_climates = {@this.zone_climates, climate};
30this.zone_forecast = {@this.zone_forecast, forecast = lu:random_element(climate)};
31this.zone_weather = {@this.zone_weather, lu:random_element(this.class_weather[forecast in this.weather_classes])};
32this:end_wait();

remove_weather_zone

Spec this none thisDefiner #248

Referenced by

none

Source

1":remove_weather_zone(<zone name>) => removes a weather zone from the database. Will reset all rooms that are set to this zone to zone 0 (no weather).";
2this:secure();
3this:wait_for_tasks();
4zone_names = this.zone_names;
5zone_name = args[1];
6if (typeof(zone_name) != STR)
7  this:end_wait();
8  raise(E_TYPE, "Non-string specified for zone name");
9endif
10if (!(zone = zone_name in zone_names))
11  this:end_wait();
12  raise(E_NONE, ("Zone '" + zone_name) + "' does not exist.");
13endif
14this.zone_names = listdelete(this.zone_names, zone);
15this.zone_climates = listdelete(this.zone_climates, zone);
16this.zone_weather = listdelete(this.zone_weather, zone);
17this.zone_forecast = listdelete(this.zone_forecast, zone);
18room_type = this.room_parent;
19rooms = $object_utils:descendants_suspended(room_type);
20for room in (rooms)
21  try
22    if (room.weather_zone == zone)
23      room.weather_zone = 0;
24    endif
25    if (room.weather_zone > zone)
26      room.weather_zone = room.weather_zone - 1;
27    endif
28  except x (ANY)
29    player:tell("Error raised while trying to process " + $string_utils:nn(room));
30  endtry
31  $command_utils:suspend_if_needed(0);
32endfor
33this.all_rooms = rooms;
34this.last_room_list_update = time();
35this:end_wait();

all_rooms find_all

Spec this none thisFlags rxDefiner #248

Referenced by

none

Source

1":all_rooms(<room type>) => If <room type> is a valid flag that rooms may posess, returns a list of all rooms, if any, that have that flag.  If not a valid flag, return an error.";
2this:wait_for_tasks();
3{?flag = ""} = args;
4if ((time() - this.last_room_list_update) > (3600 * 24))
5  this.all_rooms = $object_utils:descendants_suspended(this.room_parent);
6endif
7rooms = this.all_rooms;
8targets = {};
9if (!flag)
10  targets = rooms;
11elseif (flag in this.flag_names)
12  for room in (rooms)
13    if (`flag in room.room_data ! ANY')
14      targets = setadd(targets, room);
15    endif
16  endfor
17elseif (flag_num = flag in this.zone_names)
18  for room in (rooms)
19    if (`room.weather_zone == flag_num ! ANY')
20      targets = setadd(targets, room);
21    endif
22  endfor
23else
24  targets = E_INVARG;
25endif
26this:end_wait();
27return targets;

update_weather

Spec this none thisDefiner #248

Referenced by

Source

1":update_weather() => Updates weather for all weather zones, changing as appropriate.";
2if (!this:trusted(caller_perms()))
3  return E_PERM;
4endif
5lu = $list_utils;
6season = this.season;
7rpg = $local.rpg;
8this.all_rooms = $object_utils:descendants_suspended(this.room_parent);
9rooms = this.all_rooms;
10this.last_room_list_update = time();
11for zone_num in [1..length(this.zone_names)]
12  $command_utils:suspend_if_needed(10);
13  climate = this.zone_climates[zone_num];
14  class = this.zone_forecast[zone_num];
15  class_num = class in this.weather_classes;
16  type = this.zone_weather[zone_num];
17  old_type = type;
18  if ((type in this.class_transitionable[class_num]) && (random(4) == 1))
19    possible_classes = {};
20    transitions = this.class_transitions[class_num];
21    if (season == "summer")
22      for w in ({"warm", "stormy"})
23        if (w in climate)
24          climate = listappend(climate, w);
25        endif
26      endfor
27      for w in ({"cold", "misty"})
28        if (w in climate)
29          climate = setremove(climate, w);
30        endif
31      endfor
32    elseif (season == "winter")
33      for w in ({"cold", "cold"})
34        if (w in climate)
35          climate = listappend(climate, w);
36        endif
37      endfor
38      for w in ({"warm", "misty", "stormy"})
39        if (w in climate)
40          climate = setremove(climate, w);
41        endif
42      endfor
43    endif
44    t = this:time_of_day();
45    if (t == "dawn")
46      for w in ({"stormy", "warm"})
47        if (w in climate)
48          climate = setremove(climate, w);
49        endif
50      endfor
51    elseif (t == "day")
52      for w in ({"misty"})
53        if (w in climate)
54          climate = setremove(climate, w);
55        endif
56      endfor
57    elseif (t == "dusk")
58      if ("misty" in climate)
59        climate = setremove(climate, "misty");
60      endif
61    elseif (t == "night")
62      if ("warm" in climate)
63        climate = setremove(climate, "warm");
64      endif
65    endif
66    for w in (climate)
67      if (w in transitions)
68        possible_classes = {@possible_classes, w};
69      endif
70    endfor
71    if (possible_classes)
72      class = lu:random_element(possible_classes);
73      class_num = class in this.weather_classes;
74      type = lu:random_element(this.class_transitionable[class_num]);
75    endif
76    weather_change_msg = this.weather_transition_msgs[type in this.weather_types][1];
77  else
78    possible = {};
79    type_num = type in this.weather_types;
80    class_weather = this.class_weather[class_num];
81    for p in (this.weather_transitions[type_num])
82      if (p in class_weather)
83        possible = {@possible, p};
84      endif
85    endfor
86    type = lu:random_element(possible);
87    weather_change_msg = this.weather_transition_msgs[old_type in this.weather_types][(type in this.weather_transitions[old_type in this.weather_types]) + 1];
88  endif
89  this.zone_forecast[zone_num] = class;
90  this.zone_weather[zone_num] = type;
91  $command_utils:suspend_if_needed(10);
92  if (weather_change_msg)
93    for room in (rooms)
94      if (room.weather_zone == zone_num)
95        rpg:rpg_announce_all(room, weather_change_msg);
96      endif
97      $command_utils:suspend_if_needed(10);
98    endfor
99  endif
100endfor
101this.time_count = (this.time_count + 1) % 1111;
102if (this.time_count == 159)
103  seasons = {"spring", "summer", "fall", "winter"};
104  this.season = seasons[((this.season in seasons) % 4) + 1];
105endif
106this:end_wait();

add_flag

Spec this none thisDefiner #248

Referenced by

none

Source

1":add_flag(<flag name>, {<depend>}, {<exclude>}) => Add a flag to the room_dbs list of acceptable room flags.  ";
2if (!this:trusted(caller_perms()))
3  return E_PERM;
4endif
5{name, ?depend = {}, ?exclude = {}} = args;
6if (((typeof(name) != STR) || (typeof(depend) != LIST)) || (typeof(exclude) != LIST))
7  return E_INVARG;
8endif
9if (name in this.flag_names)
10  return E_NONE;
11endif
12this:wait_for_tasks();
13for n in (depend)
14  if ((!n) in this.flag_names)
15    depend = setremove(depend, n);
16  endif
17endfor
18for n in (exclude)
19  if ((!n) in this.flag_names)
20    exclude = setremove(exclude, n);
21  endif
22endfor
23this.flag_names = {@this.flag_names, name};
24this.flag_depend = {@this.flag_depend, depend};
25this.flag_exclude = {@this.flag_exclude, exclude};
26this:end_wait();
27"Mooshie (#106469) - Sun Mar  3, 2002 - Changed to handle arguments a bit more smoothly.";

remove_flag

Spec this none thisDefiner #248

Referenced by

none

Source

1":remove_flag(<flag name>) => Remove <flag name> from the database, and from all rooms that have it.";
2if (!this:trusted(caller_perms()))
3  return E_PERM;
4endif
5this:wait_for_tasks();
6flag_name = args[1];
7flag = flag_name in this.flag_names;
8if (!flag)
9  return E_NONE;
10endif
11for n in [1..length(this.flag_names)]
12  this.flag_depend[n] = setremove(this.flag_depend[n], flag_name);
13  this.flag_exclude[n] = setremove(this.flag_exclude[n], flag_name);
14endfor
15this.flag_names = listdelete(this.flag_names, flag);
16this.flag_depend = listdelete(this.flag_depend, flag);
17this.flag_exclude = listdelete(this.flag_exclude, flag);
18room_type = this.room_parent;
19rooms = $object_utils:descendants_suspended(room_type);
20for room in (rooms)
21  room.room_data = setremove(room.room_data, flag_name);
22  $command_utils:suspend_if_needed(0);
23endfor
24this.all_rooms = rooms;
25this.last_room_list_update = time();
26this:end_wait();

cycle

Spec this none thisDefiner #248

Referenced by

none

Source

1":cycle() => update the weather.";
2if ($code_utils:task_valid(this.weather_task) && (this.weather_task != task_id()))
3  return E_QUOTA;
4endif
5"fork x (2000)";
6"  this:cycle();";
7"endfork";
8rpg = $local.rpg;
9if ((rpg.clock:not_checkpoint() && (rpg.gm_lag < rpg.idle_threshold)) && ((time() - this.last_weather_update) > 1800))
10  fork x (5)
11    this.last_weather_update = time();
12    this:update_weather();
13  endfork
14  this.weather_task = x;
15endif
16"Profane (#30788) - Sat Apr 14, 2001 - New cycle paradigm- check this verb whenever a room uses :get_weather.";

default_weather_desc

Spec this none thisFlags rxDefiner #248

Referenced by

none

Source

1":default_weather_desc(<weather type>) => If weather is an appropriate type, return a description of what that weather might look at, at this particular time of day.";
2weather = args[1] in this.weather_types;
3time = this:time_of_day() in {"dawn", "day", "dusk", "night"};
4if (weather && time)
5  if (typeof(msg = this.default_type_desc[weather][time]) == NUM)
6    msg = this.default_type_desc[weather][msg];
7  endif
8  return msg;
9endif
10return "";

add_drowning

Spec this none thisDefiner #248

Referenced by

none

Source

1":add_drowning(<victim>) => Add the victim to the queue of potentialy drowning persons.  Should probably be called by room's enterfunc.  Is called by #1610:enterfunc, so no need to worry., all RPG rooms use this, except for the mazes.";
2rpg = $local.rpg;
3if (!rpg:trusted(caller_perms()))
4  return E_PERM;
5endif
6victim = args[1];
7doll = rpg:get_doll(victim);
8victims = $list_utils:slice(this.drowning);
9if (valid(doll) && (!(victim in victims)))
10  this.drowning = setadd(this.drowning, {victim, time()});
11endif

do_drown

Spec this none thisDefiner #248

Referenced by

none

Source

1":do_drown() => Check everybody who's been logged as being in an underwater room.  If they're still there, check if they've exhausted their air supply, and dock them some fatigue, if they're drowning.";
2(rpg = $local.rpg):secure();
3for victim_data in (this.drowning)
4  rpg:s_i_f_i_n();
5  victim = victim_data[1];
6  time = victim_data[2];
7  location = victim.location;
8  doll = rpg:get_doll(victim);
9  if (rpg:trusted_verb(location, "get_room_flags") && valid(doll))
10    flags = location:get_room_flags();
11    if ("submerged" in flags)
12      if ((!this:is_water_breathing(victim)) && ((!is_player(victim)) || (victim in connected_players())))
13        diff = time() - time;
14        res = rpg:resolve(victim, "stamina", (-diff) / 4);
15        if (res < 0)
16          doll.fat = min(900, doll.fat - (res / 2));
17          victim:tell("The air in your lungs is exhausted!  You're drowning!");
18        else
19          victim:tell("You're beginning to exhaust the air in your lungs, but you can still remain under for a bit longer.");
20        endif
21      endif
22    else
23      this.drowning = setremove(this.drowning, victim_data);
24      victim:tell("You've finally recovered from your underwater experience and are now breathing easily.");
25    endif
26  else
27    this.drowning = setremove(this.drowning, victim_data);
28  endif
29endfor

remove_drowning

Spec this none thisDefiner #248

Referenced by

none

Source

No program (verb defined but unprogrammed).

time_of_day

Spec this none thisDefiner #248

Referenced by

Source

1":time_of_day([NUM time]) => returns a string reflecting the time.";
2{?time = time()} = args;
3sun = $time_utils:sun(time);
4if (sun < -1500)
5  return "night";
6elseif (sun > 1500)
7  return "day";
8elseif (tonum(ctime(time)[12..13]) < 12)
9  return "dawn";
10else
11  return "dusk";
12endif

is_water_breathing

Spec this none thisDefiner #248

Referenced by

Source

1":is_water_breathing(<victim>) => Does victim have a ring of water breathing, or are the a critter or GM with a .water_breather prop set?";
2{victim} = args;
3rpg = $local.rpg;
4if (is_player(victim))
5  if (rpg:trusted_property(victim, "water_breather") && victim.water_breather)
6    return 1;
7  endif
8elseif ("water_breather" in victim.flags)
9  return 1;
10endif
11doll = rpg:get_doll(victim);
12if (doll)
13  for item in (doll.wearing)
14    if ((item == #63112) || (parent(item) == #63112))
15      return 1;
16    endif
17  endfor
18endif
19return 0;
20"THX1138 (#105941) - Thu Jun 18, 1998 - Re-wrote for \"water_breather\" in monster.flags instead of checking trusted monster.water_breather which was a huge waste of clear properties on the 660 descendants of rpg.monster.";

room_magic_effect

Spec this none thisDefiner #248

Referenced by

none

Source

1":room_magic_effect(<room>, <caster doll>, <qual>, <skill>, <target>) => Magic effect for room, based on Global weather/room flags.  On the db, because there are several trees of rooms that need this effect.";
2rpg = $local.rpg;
3if (!rpg:trusted(caller_perms()))
4  return E_PERM;
5endif
6rdb = this;
7{room, caster_doll, qual, skill, target_doll} = args;
8caster = caster_doll.character;
9spell = (typeof(skill) == OBJ) ? skill.aliases[1] | skill;
10flags = room:get_room_flags();
11if (room.weather_zone)
12  weather = rdb.zone_weather[room.weather_zone] in rdb.weather_types;
13else
14  weather = "none";
15endif
16strings = {};
17spell_num = spell in rdb.spell_index;
18value = 0;
19if (spell_num && weather)
20  value = value + rdb.weather_magic_effect[weather][spell_num];
21  ww = rdb.weather_effect_words[weather];
22  words = (typeof(ww) == STR) ? ww | tostr(rdb.weather_effect_words[ww]);
23  if (value > 1)
24    strings = setadd(strings, ("Your spell draws energy from the " + word) + ".");
25  elseif (value < -1)
26    strings = setadd(strings, ("The " + word) + " interferes with your spell.");
27  endif
28endif
29if (spell_num)
30  for flag in (flags)
31    flag_num = flag in rdb.flag_names;
32    v = rdb.area_magic_effect[flag_num][spell_num];
33    value = value + v;
34    if (v > 0)
35      strings = setadd(strings, rdb.area_effect_words[flag_num][1]);
36    elseif (v < 0)
37      strings = setadd(strings, rdb.area_effect_words[flag_num][2]);
38    endif
39  endfor
40endif
41value = value - this.magic_effect;
42if (strings)
43  caster:tell($list_utils:random_element(strings));
44endif
45if ((-value) > qual)
46  caster:tell("Nothing happens.");
47endif
48return -value;

protected

Spec this none thisDefiner #248

Referenced by

none

Source

1":protected() => raise an error if caller not trusted to maintain room db or modify the room.";
2c = callers();
3who = `c[2][3] ! ANY => player';
4what = `c[2][1] ! ANY => player';
5if ((((what == caller) || (who == caller.owner)) || (who in this.maintainers)) || (who in $local.rpg.grand_masters))
6  return;
7endif
8raise(E_PERM, "RPG room database security violation.");