mirror of
https://github.com/Citadel-Station-13/Citadel-Station-13-RP.git
synced 2026-08-30 18:06:56 +01:00
Class H and Class D repairs.
This commit is contained in:
@@ -1,267 +0,0 @@
|
||||
// Datums //
|
||||
|
||||
/datum/atmosphere/planet/class_d
|
||||
base_gases = list(
|
||||
/datum/gas/nitrogen = 0.01
|
||||
)
|
||||
base_target_pressure = 0.1
|
||||
minimum_pressure = 0.1
|
||||
maximum_pressure = 0.5
|
||||
minimum_temp = 203
|
||||
maximum_temp = 203
|
||||
|
||||
// Turfmakers
|
||||
|
||||
#define CLASSD_SET_ATMOS initial_gas_mix=ATMOSPHERE_ID_CLASSD
|
||||
#define CLASSD_TURF_CREATE(x) x/class_d/initial_gas_mix=ATMOSPHERE_ID_CLASSD;x/class_d/color="#eaa17c"
|
||||
|
||||
|
||||
//Previously vacuum turfs were used, bad!
|
||||
CLASSD_TURF_CREATE(/turf/unsimulated/wall/planetary)
|
||||
CLASSD_TURF_CREATE(/turf/simulated/floor)
|
||||
CLASSD_TURF_CREATE(/turf/simulated/floor/reinforced)
|
||||
CLASSD_TURF_CREATE(/turf/simulated/floor/tiled)
|
||||
CLASSD_TURF_CREATE(/turf/simulated/floor/tiled/steel_dirty)
|
||||
CLASSD_TURF_CREATE(/turf/simulated/floor/outdoors/dirt)
|
||||
CLASSD_TURF_CREATE(/turf/simulated/floor/outdoors/rocks)
|
||||
CLASSD_TURF_CREATE(/turf/simulated/wall)
|
||||
CLASSD_TURF_CREATE(/turf/simulated/mineral)
|
||||
CLASSD_TURF_CREATE(/turf/simulated/mineral/floor)
|
||||
CLASSD_TURF_CREATE(/turf/simulated/mineral/ignore_mapgen)
|
||||
CLASSD_TURF_CREATE(/turf/simulated/mineral/floor/ignore_mapgen)
|
||||
CLASSD_TURF_CREATE(/turf/simulated/floor/outdoors/rocks)
|
||||
|
||||
// Now to make this a planet //
|
||||
|
||||
/obj/effect/overmap/visitable/sector/class_d
|
||||
name = "Virgo 5"
|
||||
desc = "A rocky planet with radioactive hazards abundant."
|
||||
scanner_desc = @{"[i]Stellar Body[/i]:
|
||||
[i]Class[/i]: D-Class Planet
|
||||
[i]Habitability[/i]: Extremely Low (Low Temperature, Toxic Atmosphere, Radioactive Hazards)
|
||||
[b]Notice[/b]: Planetary environment not suitable for life. Landing may be hazardous."}
|
||||
icon_state = "globe"
|
||||
in_space = 0
|
||||
color = "#eaa17c"
|
||||
initial_generic_waypoints = list("class_d_east","class_d_west","class_d_north","class_d_south")
|
||||
|
||||
// Shuttle landing area waypoints
|
||||
|
||||
/obj/effect/shuttle_landmark/premade/class_d/east
|
||||
name = "Class D - Eastern Zone"
|
||||
landmark_tag = "class_d_east"
|
||||
|
||||
/obj/effect/shuttle_landmark/premade/class_d/west
|
||||
name = "Class D - Western Zone"
|
||||
landmark_tag = "class_d_west"
|
||||
|
||||
/obj/effect/shuttle_landmark/premade/class_d/north
|
||||
name = "Class D - Northern Zone"
|
||||
landmark_tag = "class_d_north"
|
||||
|
||||
/obj/effect/shuttle_landmark/premade/class_d/south
|
||||
name = "Class D - Southern Zone"
|
||||
landmark_tag = "class_d_south"
|
||||
|
||||
///Ore Seeding
|
||||
|
||||
//This is a special subtype of the thing that generates ores on a map
|
||||
//It will generate more rich ores because of the lower numbers than the normal one
|
||||
/datum/random_map/noise/ore/class_d
|
||||
descriptor = "class_d ore distribution map"
|
||||
deep_val = 0.6 //More riches, normal is 0.7 and 0.8
|
||||
rare_val = 0.5
|
||||
|
||||
//The check_map_sanity proc is sometimes unsatisfied with how AMAZING our ores are
|
||||
/datum/random_map/noise/ore/class_d/check_map_sanity()
|
||||
var/rare_count = 0
|
||||
var/surface_count = 0
|
||||
var/deep_count = 0
|
||||
|
||||
// Increment map sanity counters.
|
||||
for(var/value in map)
|
||||
if(value < rare_val)
|
||||
surface_count++
|
||||
else if(value < deep_val)
|
||||
rare_count++
|
||||
else
|
||||
deep_count++
|
||||
// Sanity check.
|
||||
if(surface_count < 100)
|
||||
admin_notice("<span class='danger'>Insufficient surface minerals. Rerolling...</span>", R_DEBUG)
|
||||
return 0
|
||||
else if(rare_count < 50)
|
||||
admin_notice("<span class='danger'>Insufficient rare minerals. Rerolling...</span>", R_DEBUG)
|
||||
return 0
|
||||
else if(deep_count < 50)
|
||||
admin_notice("<span class='danger'>Insufficient deep minerals. Rerolling...</span>", R_DEBUG)
|
||||
return 0
|
||||
else
|
||||
return 1
|
||||
|
||||
// -- Objs -- //
|
||||
// Two mob spawners that are placed on the map that spawn some mobs!
|
||||
// They keep track of their mob, and when it's dead, spawn another (only if nobody is looking)
|
||||
// Note that if your map has step teleports, mobs may wander through them accidentally and not know how to get back
|
||||
/obj/tether_away_spawner/beach_outside
|
||||
name = "Beach Outside Spawner" //Just a name
|
||||
faction = "beach_out" //Sets all the mobs to this faction so they don't infight
|
||||
atmos_comp = TRUE //Sets up their atmos tolerances to work in this setting, even if they don't normally (20% up/down tolerance for each gas, and heat)
|
||||
prob_spawn = 100 //Chance of this spawner spawning a mob (once this is missed, the spawner is 'depleted' and won't spawn anymore)
|
||||
prob_fall = 25 //Chance goes down by this much each time it spawns one (not defining and prob_spawn 100 means they spawn as soon as one dies)
|
||||
//guard = 40 //They'll stay within this range (not defining this disables them staying nearby and they will wander the map (and through step teleports))
|
||||
mobs_to_pick_from = list(
|
||||
/mob/living/simple_mob/vore/aggressive/frog = 6, //Frogs are 3x more likely to spawn than,
|
||||
/mob/living/simple_mob/vore/aggressive/deathclaw = 2, //these deathclaws are, with these values,
|
||||
/mob/living/simple_mob/animal/giant_spider = 4,
|
||||
/mob/living/simple_mob/vore/aggressive/giant_snake = 2,
|
||||
/mob/living/simple_mob/animal/giant_spider/webslinger = 2
|
||||
)
|
||||
|
||||
|
||||
obj/tether_away_spawner/class_d/crater
|
||||
name = "Virgo 5 Crater Spawner"
|
||||
faction = "crater"
|
||||
atmos_comp = TRUE
|
||||
prob_spawn = 100
|
||||
prob_fall = 30
|
||||
//guard = 20
|
||||
mobs_to_pick_from = list(
|
||||
/mob/living/simple_mob/vore/aggressive/corrupthound = 1,
|
||||
/mob/living/simple_mob/vore/aggressive/corrupthound/prettyboi = 3,
|
||||
/mob/living/simple_mob/mechanical/corrupt_maint_drone = 2
|
||||
)
|
||||
|
||||
|
||||
|
||||
|
||||
// Turfs
|
||||
|
||||
///Indoor usage turfs with Class D's Atmos. Unaffected by weather etc (Important because radioactive fallout will happen on a regular basis!)
|
||||
/turf/simulated/floor/class_d_indoors
|
||||
color = "#eaa17c"
|
||||
initial_gas_mix = ATMOSPHERE_ID_CLASSD
|
||||
outdoors = FALSE
|
||||
|
||||
/turf/simulated/mineral/class_d_indoors
|
||||
color = "#eaa17c"
|
||||
initial_gas_mix = ATMOSPHERE_ID_CLASSD
|
||||
outdoors = FALSE
|
||||
|
||||
/turf/simulated/mineral/floor/class_d_indoors
|
||||
color = "#eaa17c"
|
||||
initial_gas_mix = ATMOSPHERE_ID_CLASSD
|
||||
outdoors = FALSE
|
||||
|
||||
/turf/simulated/floor/tiled/class_d_indoors
|
||||
color = "#eaa17c"
|
||||
initial_gas_mix = ATMOSPHERE_ID_CLASSD
|
||||
outdoors = FALSE
|
||||
|
||||
/turf/simulated/wall/class_d_indoors
|
||||
color = "#eaa17c"
|
||||
initial_gas_mix = ATMOSPHERE_ID_CLASSD
|
||||
outdoors = FALSE
|
||||
|
||||
// Unused Turfs (For now)
|
||||
/*
|
||||
/turf/simulated/floor/reinforced/class_d_indoors
|
||||
color = "#eaa17c"
|
||||
initial_gas_mix = ATMOSPHERE_ID_CLASSD
|
||||
outdoors = FALSE
|
||||
*/
|
||||
|
||||
|
||||
|
||||
// Areas
|
||||
|
||||
|
||||
/area/poi_d
|
||||
name = "Class D World"
|
||||
icon_state = "away"
|
||||
base_turf = /turf/simulated/mineral/floor/class_d
|
||||
dynamic_lighting = 1
|
||||
|
||||
/area/poi_d/explored
|
||||
name = "Class D World - Explored (E)"
|
||||
icon_state = "explored"
|
||||
|
||||
/area/poi_d/unexplored
|
||||
name = "Class D World - Unexplored (UE)"
|
||||
icon_state = "unexplored"
|
||||
|
||||
/area/poi_d/unexplored/underground // Caves would be protected from weather. Still valid for POI generation do to being a dependent of /area/poi_d/unexplored
|
||||
base_turf = /turf/simulated/mineral/floor/class_d_indoors
|
||||
|
||||
/area/poi_d/explored/underground
|
||||
base_turf = /turf/simulated/mineral/floor/class_d_indoors
|
||||
|
||||
|
||||
/// Landing areas and base areas
|
||||
|
||||
/area/poi_d/wildcat_mining_base
|
||||
name = "Abandoned Facility"
|
||||
icon_state = "blue"
|
||||
requires_power = TRUE
|
||||
|
||||
/area/poi_d/wildcat_mining_base/exterior_power
|
||||
name = "Exterior Power"
|
||||
|
||||
/area/poi_d/wildcat_mining_base/refueling_outbuilding
|
||||
name = "Refueling Outbuilding"
|
||||
|
||||
/area/poi_d/wildcat_mining_base/warehouse
|
||||
name = "Warehouse"
|
||||
|
||||
/area/poi_d/wildcat_mining_base/exterior_workshop
|
||||
name = "Exterior Workshop"
|
||||
|
||||
/area/poi_d/wildcat_mining_base/interior
|
||||
base_turf = /turf/simulated/floor/class_d_indoors
|
||||
|
||||
/area/poi_d/wildcat_mining_base/interior/main_room
|
||||
name = "Main Room"
|
||||
|
||||
/area/poi_d/wildcat_mining_base/interior/utility_room
|
||||
name = "Utility Room"
|
||||
|
||||
/area/poi_d/wildcat_mining_base/interior/bunk_room
|
||||
name = "Bunk Room"
|
||||
|
||||
/area/poi_d/wildcat_mining_base/interior/bathroom
|
||||
name = "Bathroom"
|
||||
|
||||
///POI Areas and Misc Areas
|
||||
|
||||
/area/poi_d/POIs/ship
|
||||
name = "Crashed Ship Fragment"
|
||||
base_turf = /turf/simulated/mineral/floor/class_d_indoors
|
||||
|
||||
/area/poi_d/plains
|
||||
name = "Class D World Plains"
|
||||
base_turf = /turf/simulated/mineral/floor/class_d
|
||||
|
||||
/area/poi_d/crater
|
||||
name = "Class D World Crater"
|
||||
base_turf = /turf/simulated/mineral/floor/class_d
|
||||
|
||||
/area/poi_d/Mountain
|
||||
name = "Class D World Mountain"
|
||||
base_turf = /turf/simulated/mineral/floor/class_d_indoors
|
||||
|
||||
/area/poi_d/Crevices
|
||||
name = "Class D World Crevices"
|
||||
base_turf = /turf/simulated/mineral/floor/class_d_indoors
|
||||
|
||||
/area/poi_d/POIs/solar_farm
|
||||
name = "Prefab Solar Farm"
|
||||
base_turf = /turf/simulated/mineral/floor/class_d
|
||||
|
||||
/area/poi_d/POIs/landing_pad
|
||||
name = "Prefab Homestead"
|
||||
base_turf = /turf/simulated/mineral/floor/class_d
|
||||
requires_power = FALSE
|
||||
|
||||
/area/poi_d/POIs/reactor
|
||||
name = "Prefab Reactor"
|
||||
base_turf = /turf/simulated/mineral/floor/class_d_indoors
|
||||
@@ -1,116 +0,0 @@
|
||||
/datum/map_template/submap/level_specific/class_d
|
||||
name = "Class D POIs"
|
||||
desc = "Submaps for Class D Worlds"
|
||||
allow_duplicates = FALSE
|
||||
prefix = "_maps/submaps/level_specific/class_d/"
|
||||
|
||||
/datum/map_template/submap/level_specific/class_d/broken_reactor_D
|
||||
name = "Broken Reactor"
|
||||
suffix = "broken_reactor_D.dmm"
|
||||
cost = 15
|
||||
|
||||
/datum/map_template/submap/level_specific/class_d/DecoupleEngineD
|
||||
name = "Decoupled Engine"
|
||||
suffix = "DecoupledEngineD.dmm"
|
||||
cost = 15
|
||||
|
||||
/datum/map_template/submap/level_specific/class_d/drone_hive_D
|
||||
name = "Drone Hive"
|
||||
suffix = "broken_reactor_D.dmm"
|
||||
cost = 15
|
||||
|
||||
/datum/map_template/submap/level_specific/class_d/EpodD
|
||||
name = "Decoupled Engine"
|
||||
suffix = "EpodD.dmm"
|
||||
cost = 5
|
||||
|
||||
/datum/map_template/submap/level_specific/class_d/landing_padD
|
||||
name = "Prefabricated Landing Pad"
|
||||
suffix = "landing_padD.dmm"
|
||||
cost = 5
|
||||
fixed_orientation = TRUE
|
||||
|
||||
/datum/map_template/submap/level_specific/class_d/mechwreckD
|
||||
name = "Ruined Ripley"
|
||||
suffix = "mechwreckD.dmm"
|
||||
cost = 5
|
||||
|
||||
/datum/map_template/submap/level_specific/class_d/meteor
|
||||
name = "Meteor Impact Site"
|
||||
suffix = "meteor.dmm"
|
||||
cost = 5
|
||||
|
||||
/datum/map_template/submap/level_specific/class_d/solar_farm
|
||||
name = "Solar Farm"
|
||||
suffix = "solar_farmD.dmm"
|
||||
cost = 5
|
||||
fixed_orientation = TRUE
|
||||
|
||||
/datum/map_template/submap/level_specific/class_d/SupplyDrop1D
|
||||
name = "Supply Drop"
|
||||
suffix = "SupplyDrop1D.dmm"
|
||||
cost = 5
|
||||
|
||||
/datum/map_template/submap/level_specific/class_d/SupplyDrop2D
|
||||
name = "Supply Drop"
|
||||
suffix = "SupplyDrop2D.dmm"
|
||||
cost = 5
|
||||
|
||||
/datum/map_template/submap/level_specific/class_d/Vault1D
|
||||
name = "Mineral Vault"
|
||||
suffix = "vault1D.dmm"
|
||||
cost = 5
|
||||
|
||||
/datum/map_template/submap/level_specific/class_d/Vault2D
|
||||
name = "Mineral Vault"
|
||||
suffix = "vault2D.dmm"
|
||||
cost = 5
|
||||
|
||||
/datum/map_template/submap/level_specific/class_d/Vault3D
|
||||
name = "Mineral Vault"
|
||||
suffix = "vault3D.dmm"
|
||||
cost = 5
|
||||
|
||||
/datum/map_template/submap/level_specific/class_d/Vault4D
|
||||
name = "Mineral Vault"
|
||||
suffix = "vault4D.dmm"
|
||||
cost = 5
|
||||
|
||||
/datum/map_template/submap/level_specific/class_d/Vault5D
|
||||
name = "Mineral Vault"
|
||||
suffix = "vault5D.dmm"
|
||||
cost = 5
|
||||
|
||||
|
||||
/datum/map_template/submap/level_specific/class_d/Cave1D
|
||||
name = "Mineral Cave"
|
||||
suffix = "cave1D.dmm"
|
||||
cost = 10
|
||||
|
||||
/datum/map_template/submap/level_specific/class_d/Cave2D
|
||||
name = "Xenonest Cave"
|
||||
suffix = "cave2D.dmm"
|
||||
cost = 15
|
||||
|
||||
/datum/map_template/submap/level_specific/class_d/Cave3D
|
||||
name = "Mimic Cave"
|
||||
suffix = "cave3D.dmm"
|
||||
cost = 5
|
||||
|
||||
/datum/map_template/submap/level_specific/class_d/droneship
|
||||
name = "Automatic Constructor Ship"
|
||||
suffix = "matdropD.dmm"
|
||||
cost = 15
|
||||
fixed_orientation = TRUE
|
||||
|
||||
/datum/map_template/submap/level_specific/class_d/mercbunker
|
||||
name = "Secret Mecenary Bunker"
|
||||
suffix = "hiddenbunkerD.dmm"
|
||||
cost = 25
|
||||
fixed_orientation = TRUE
|
||||
|
||||
/datum/map_template/submap/level_specific/class_d/Possesed_mech_cave
|
||||
name = "Possessed Mech Cave"
|
||||
suffix = "Possesed_mech_cave.dmm"
|
||||
cost = 5
|
||||
|
||||
@@ -1,181 +0,0 @@
|
||||
///Currently a copy is in /map/tether as tether_class_d_weather_holder. Annoyingly has to be there to be loaded properly, will see if I can find a better way of doing this later
|
||||
|
||||
/*var/datum/planet/class_d/planet_class_d = null
|
||||
|
||||
/datum/time/class_d
|
||||
seconds_in_day = 1 HOURS
|
||||
|
||||
/datum/planet/class_d
|
||||
name = "Virgo - 5"
|
||||
desc = "A rocky moon which has recently had its quarantine lifted following a campaign of nuclear bombings and mercinary \
|
||||
forces fighting to whipe out a large xenomorph infestation."
|
||||
current_time = new /datum/time/class_d()
|
||||
expected_z_levels = Z_LEVEL_CLASS_D
|
||||
planetary_wall_type = /turf/unsimulated/wall/planetary/class_d
|
||||
|
||||
|
||||
/datum/planet/class_d/New()
|
||||
..()
|
||||
planet_class_d = src
|
||||
weather_holder = new /datum/weather_holder/class_d(src)
|
||||
|
||||
/datum/planet/class_d/update_sun()
|
||||
..()
|
||||
var/datum/time/time = current_time
|
||||
var/length_of_day = time.seconds_in_day / 10 / 60 / 60
|
||||
var/noon = length_of_day / 2
|
||||
var/distance_from_noon = abs(text2num(time.show_time("hh")) - noon)
|
||||
sun_position = distance_from_noon / noon
|
||||
sun_position = abs(sun_position - 1)
|
||||
|
||||
var/low_brightness = null
|
||||
var/high_brightness = null
|
||||
|
||||
var/low_color = null
|
||||
var/high_color = null
|
||||
var/min = 0
|
||||
|
||||
switch(sun_position)
|
||||
if(0 to 0.20) // Night
|
||||
low_brightness = 0.1
|
||||
low_color = "#000066"
|
||||
|
||||
high_brightness = 0.4
|
||||
high_color = "#66004D"
|
||||
min = 0
|
||||
|
||||
if(0.20 to 0.30) // Twilight
|
||||
low_brightness = 0.4
|
||||
low_color = "#66004D"
|
||||
|
||||
high_brightness = 0.7
|
||||
high_color = "#CC3300"
|
||||
min = 0.40
|
||||
|
||||
if(0.30 to 0.40) // Sunrise/set
|
||||
low_brightness = 0.7
|
||||
low_color = "#CC3300"
|
||||
|
||||
high_brightness = 2.0
|
||||
high_color = "#FF9933"
|
||||
min = 0.50
|
||||
|
||||
if(0.40 to 1.00) // Noon
|
||||
low_brightness = 2.0
|
||||
low_color = "#DDDDDD"
|
||||
|
||||
high_brightness = 12.0
|
||||
high_color = "#FFFFFF"
|
||||
min = 0.70
|
||||
|
||||
var/interpolate_weight = (abs(min - sun_position)) * 4
|
||||
var/weather_light_modifier = 1
|
||||
if(weather_holder && weather_holder.current_weather)
|
||||
weather_light_modifier = weather_holder.current_weather.light_modifier
|
||||
|
||||
var/new_brightness = (LERP(low_brightness, high_brightness, interpolate_weight) ) * weather_light_modifier
|
||||
|
||||
var/new_color = null
|
||||
if(weather_holder && weather_holder.current_weather && weather_holder.current_weather.light_color)
|
||||
new_color = weather_holder.current_weather.light_color
|
||||
else
|
||||
var/list/low_color_list = hex2rgb(low_color)
|
||||
var/low_r = low_color_list[1]
|
||||
var/low_g = low_color_list[2]
|
||||
var/low_b = low_color_list[3]
|
||||
|
||||
var/list/high_color_list = hex2rgb(high_color)
|
||||
var/high_r = high_color_list[1]
|
||||
var/high_g = high_color_list[2]
|
||||
var/high_b = high_color_list[3]
|
||||
|
||||
var/new_r = LERP(low_r, high_r, interpolate_weight)
|
||||
var/new_g = LERP(low_g, high_g, interpolate_weight)
|
||||
var/new_b = LERP(low_b, high_b, interpolate_weight)
|
||||
|
||||
new_color = rgb(new_r, new_g, new_b)
|
||||
|
||||
spawn(1)
|
||||
update_sun_deferred(2, new_brightness, new_color)
|
||||
|
||||
|
||||
|
||||
/datum/weather_holder/class_d
|
||||
temperature = T0C
|
||||
allowed_weather_types = list(
|
||||
WEATHER_CLEAR = new /datum/weather/class_d/clear(),
|
||||
WEATHER_FALLOUT = new /datum/weather/class_d/fallout()
|
||||
)
|
||||
roundstart_weather_chances = list(
|
||||
WEATHER_CLEAR = 95,
|
||||
WEATHER_FALLOUT = 5
|
||||
)
|
||||
|
||||
/datum/weather/class_d
|
||||
name = "class_d base"
|
||||
temp_high = 203
|
||||
temp_low = 203
|
||||
|
||||
/datum/weather/class_d/clear
|
||||
name = "clear"
|
||||
transition_chances = list(
|
||||
WEATHER_CLEAR = 85,
|
||||
WEATHER_FALLOUT = 15
|
||||
)
|
||||
transition_messages = list(
|
||||
"The radioactive storm clears.",
|
||||
"The stars are visible once more.",
|
||||
)
|
||||
sky_visible = TRUE
|
||||
observed_message = "The stars are visible overhead."
|
||||
|
||||
/datum/weather/class_d/fallout
|
||||
name = "fallout"
|
||||
icon_state = "fallout"
|
||||
light_modifier = 0.7
|
||||
light_color = "#CCFFCC"
|
||||
flight_failure_modifier = 30
|
||||
transition_chances = list(
|
||||
WEATHER_CLEAR = 60,
|
||||
WEATHER_FALLOUT = 40
|
||||
)
|
||||
observed_message = "Radioactive soot and ash rains down from the heavens."
|
||||
transition_messages = list(
|
||||
"Radioactive soot and ash start to float down around you, contaminating whatever they touch."
|
||||
)
|
||||
outdoor_sounds_type = /datum/looping_sound/weather/wind
|
||||
indoor_sounds_type = /datum/looping_sound/weather/wind/indoors
|
||||
|
||||
// How much radiation a mob gets while on an outside tile.
|
||||
var/direct_rad_low = RAD_LEVEL_LOW
|
||||
var/direct_rad_high = RAD_LEVEL_MODERATE
|
||||
|
||||
// How much radiation is bursted onto a random tile near a mob.
|
||||
var/fallout_rad_low = RAD_LEVEL_HIGH
|
||||
var/fallout_rad_high = RAD_LEVEL_VERY_HIGH
|
||||
|
||||
/datum/weather/class_d/fallout/process_effects()
|
||||
..()
|
||||
for(var/thing in living_mob_list)
|
||||
var/mob/living/L = thing
|
||||
if(L.z in holder.our_planet.expected_z_levels)
|
||||
irradiate_nearby_turf(L)
|
||||
var/turf/T = get_turf(L)
|
||||
if(!T.outdoors)
|
||||
continue // They're indoors, so no need to irradiate them with fallout.
|
||||
|
||||
L.rad_act(rand(direct_rad_low, direct_rad_high))
|
||||
|
||||
// This makes random tiles near people radioactive for awhile.
|
||||
// Tiles far away from people are left alone, for performance.
|
||||
/datum/weather/class_d/fallout/proc/irradiate_nearby_turf(mob/living/L)
|
||||
if(!istype(L))
|
||||
return
|
||||
var/list/turfs = RANGE_TURFS(world.view, L)
|
||||
var/turf/T = pick(turfs) // We get one try per tick.
|
||||
if(!istype(T))
|
||||
return
|
||||
if(T.outdoors)
|
||||
SSradiation.radiate(T, rand(fallout_rad_low, fallout_rad_high))
|
||||
|
||||
*/
|
||||
Reference in New Issue
Block a user