mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2026-08-29 16:19:36 +01:00
New planet: Thor (#7906)
This commit is contained in:
@@ -2669,3 +2669,13 @@ var/list/the_station_areas = list (
|
||||
name = "\improper Baby_mammoth"
|
||||
icon_state = "shuttlered"
|
||||
requires_power = 1
|
||||
|
||||
/area/shuttle/spacebus
|
||||
name = "\improper Space Bus"
|
||||
icon_state = "shuttlered"
|
||||
requires_power = 1
|
||||
|
||||
/area/shuttle/junker
|
||||
name = "\improper Junker"
|
||||
icon_state = "shuttlered"
|
||||
requires_power = 1
|
||||
|
||||
@@ -29,7 +29,7 @@ GLOBAL_LIST_EMPTY(all_waypoints)
|
||||
var/speedlimit = 1/(20 SECONDS) //top speed for autopilot, 5
|
||||
var/accellimit = 0.001 //manual limiter for acceleration
|
||||
req_one_access = list(access_pilot) //VOREStation Edit
|
||||
ai_control = TRUE //VOREStation Edit - AI/Borgs shouldn't really be flying off in ships without crew help // Chompstation Edit - Not an issue on this server, use of shuttles is extremely rare also .
|
||||
ai_control = FALSE //VOREStation Edit - AI/Borgs shouldn't really be flying off in ships without crew help // Chompstation Edit - Not an issue on this server, use of shuttles is extremely rare also . //Chompeditedit - No
|
||||
|
||||
// fancy sprite
|
||||
/obj/machinery/computer/ship/helm/adv
|
||||
|
||||
@@ -0,0 +1,615 @@
|
||||
var/datum/planet/thor/planet_thor = null
|
||||
|
||||
/datum/time/thor
|
||||
seconds_in_day = 24 HOURS
|
||||
|
||||
/datum/planet/thor
|
||||
name = "Thor"
|
||||
desc = "Sif's moon, heavy in flora and fauna." //rewrite me
|
||||
current_time = new /datum/time/thor()
|
||||
// expected_z_levels = list(1) // This is defined elsewhere.
|
||||
planetary_wall_type = /turf/unsimulated/wall/planetary/normal/thor
|
||||
|
||||
/datum/planet/thor/New()
|
||||
..()
|
||||
planet_thor = src
|
||||
weather_holder = new /datum/weather_holder/thor(src)
|
||||
|
||||
/datum/planet/thor/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.3
|
||||
low_color = "#000066"
|
||||
|
||||
high_brightness = 0.5
|
||||
high_color = "#66004D"
|
||||
min = 0
|
||||
|
||||
if(0.20 to 0.30) // Twilight
|
||||
low_brightness = 0.5
|
||||
low_color = "#66004D"
|
||||
|
||||
high_brightness = 0.9
|
||||
high_color = "#CC3300"
|
||||
min = 0.40
|
||||
|
||||
if(0.30 to 0.40) // Sunrise/set
|
||||
low_brightness = 0.9
|
||||
low_color = "#CC3300"
|
||||
|
||||
high_brightness = 3.0
|
||||
high_color = "#FF9933"
|
||||
min = 0.50
|
||||
|
||||
if(0.40 to 1.00) // Noon
|
||||
low_brightness = 3.0
|
||||
low_color = "#fff3ad"
|
||||
|
||||
high_brightness = 10.0
|
||||
high_color = "#f9ffa7"
|
||||
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(new_brightness, new_color)
|
||||
|
||||
//todo, remove snow and other weathers, this is copypastad from v4
|
||||
/datum/weather_holder/thor
|
||||
temperature = 313
|
||||
allowed_weather_types = list(
|
||||
WEATHER_CLEAR = new /datum/weather/thor/clear(),
|
||||
WEATHER_OVERCAST = new /datum/weather/thor/overcast(),
|
||||
WEATHER_LIGHT_SNOW = new /datum/weather/thor/light_snow(),
|
||||
WEATHER_SNOW = new /datum/weather/thor/snow(),
|
||||
WEATHER_BLIZZARD = new /datum/weather/thor/blizzard(),
|
||||
WEATHER_RAIN = new /datum/weather/thor/rain(),
|
||||
WEATHER_STORM = new /datum/weather/thor/storm(),
|
||||
WEATHER_HAIL = new /datum/weather/thor/hail(),
|
||||
WEATHER_FOG = new /datum/weather/thor/fog(),
|
||||
WEATHER_BLOOD_MOON = new /datum/weather/thor/blood_moon(),
|
||||
WEATHER_EMBERFALL = new /datum/weather/thor/emberfall(),
|
||||
WEATHER_ASH_STORM = new /datum/weather/thor/ash_storm(),
|
||||
WEATHER_ASH_STORM_SAFE = new /datum/weather/thor/ash_storm_safe(),
|
||||
WEATHER_FALLOUT = new /datum/weather/thor/fallout(),
|
||||
WEATHER_FALLOUT_TEMP = new /datum/weather/thor/fallout/temp(),
|
||||
WEATHER_CONFETTI = new /datum/weather/thor/confetti()
|
||||
)
|
||||
roundstart_weather_chances = list(
|
||||
WEATHER_CLEAR = 20,
|
||||
WEATHER_OVERCAST = 10,
|
||||
WEATHER_RAIN = 50
|
||||
)
|
||||
|
||||
/datum/weather/thor
|
||||
name = "thor"
|
||||
temp_high = 313.15 // 40c
|
||||
temp_low = 298.15 // 25c
|
||||
|
||||
/datum/weather/thor/clear
|
||||
name = "clear"
|
||||
transition_chances = list(
|
||||
WEATHER_RAIN = 60,
|
||||
WEATHER_CLEAR = 10,
|
||||
WEATHER_OVERCAST = 20)
|
||||
transition_messages = list(
|
||||
"The sky clears up.",
|
||||
"The sky is visible.",
|
||||
"The weather is calm."
|
||||
)
|
||||
sky_visible = TRUE
|
||||
observed_message = "The sky is clear."
|
||||
imminent_transition_message = "The sky is rapidly clearing up."
|
||||
|
||||
/datum/weather/thor/overcast
|
||||
name = "overcast"
|
||||
temp_high = 308.15 // 35c
|
||||
temp_low = 298.15 // 25c
|
||||
light_modifier = 0.8
|
||||
transition_chances = list(
|
||||
WEATHER_CLEAR = 5,
|
||||
WEATHER_OVERCAST = 50,
|
||||
WEATHER_RAIN = 40
|
||||
)
|
||||
observed_message = "It is overcast, all you can see are clouds."
|
||||
transition_messages = list(
|
||||
"All you can see above are clouds.",
|
||||
"Clouds cut off your view of the sky.",
|
||||
"It's very cloudy."
|
||||
)
|
||||
imminent_transition_message = "Benign clouds are quickly gathering."
|
||||
|
||||
/datum/weather/thor/light_snow
|
||||
name = "light snow"
|
||||
icon_state = "snowfall_light"
|
||||
temp_high = 268.15 // -5c
|
||||
temp_low = 263.15 // -10c
|
||||
light_modifier = 0.7
|
||||
transition_chances = list(
|
||||
WEATHER_LIGHT_SNOW = 15,
|
||||
WEATHER_OVERCAST = 80
|
||||
)
|
||||
observed_message = "It is snowing lightly."
|
||||
transition_messages = list(
|
||||
"Small snowflakes begin to fall from above.",
|
||||
"It begins to snow lightly.",
|
||||
)
|
||||
imminent_transition_message = "It appears a light snow is about to start."
|
||||
|
||||
/datum/weather/thor/snow
|
||||
name = "moderate snow"
|
||||
icon_state = "snowfall_med"
|
||||
temp_high = 268.15 // -5c
|
||||
temp_low = 263.15 // -10c
|
||||
wind_high = 2
|
||||
wind_low = 0
|
||||
light_modifier = 0.5
|
||||
flight_failure_modifier = 5
|
||||
transition_chances = list(
|
||||
WEATHER_SNOW = 10,
|
||||
WEATHER_LIGHT_SNOW = 80
|
||||
)
|
||||
observed_message = "It is snowing."
|
||||
transition_messages = list(
|
||||
"It's starting to snow.",
|
||||
"The air feels much colder as snowflakes fall from above."
|
||||
)
|
||||
imminent_transition_message = "A snowfall is starting."
|
||||
outdoor_sounds_type = /datum/looping_sound/weather/outside_snow
|
||||
indoor_sounds_type = /datum/looping_sound/weather/inside_snow
|
||||
|
||||
/*
|
||||
/datum/weather/thor/snow/process_effects()
|
||||
..()
|
||||
for(var/turf/simulated/floor/outdoors/snow/S as anything in SSplanets.new_outdoor_turfs) //This didn't make any sense before SSplanets, either
|
||||
if(S.z in holder.our_planet.expected_z_levels)
|
||||
for(var/dir_checked in cardinal)
|
||||
var/turf/simulated/floor/T = get_step(S, dir_checked)
|
||||
if(istype(T))
|
||||
if(istype(T, /turf/simulated/floor/outdoors) && prob(33))
|
||||
T.chill()
|
||||
*/
|
||||
|
||||
/datum/weather/thor/blizzard
|
||||
name = "blizzard"
|
||||
icon_state = "snowfall_heavy"
|
||||
temp_high = 268.15 // -5c
|
||||
temp_low = 263.15 // -10c
|
||||
wind_high = 4
|
||||
wind_low = 2
|
||||
light_modifier = 0.3
|
||||
flight_failure_modifier = 10
|
||||
transition_chances = list(
|
||||
WEATHER_BLIZZARD = 5,
|
||||
WEATHER_SNOW = 80
|
||||
)
|
||||
observed_message = "A blizzard blows snow everywhere."
|
||||
transition_messages = list(
|
||||
"Strong winds howl around you as a blizzard appears.",
|
||||
"It starts snowing heavily, and it feels extremly cold now."
|
||||
)
|
||||
imminent_transition_message = "Wind is howling. Blizzard is coming."
|
||||
outdoor_sounds_type = /datum/looping_sound/weather/outside_blizzard
|
||||
indoor_sounds_type = /datum/looping_sound/weather/inside_blizzard
|
||||
|
||||
/*
|
||||
/datum/weather/thor/blizzard/process_effects()
|
||||
..()
|
||||
for(var/turf/simulated/floor/outdoors/snow/S as anything in SSplanets.new_outdoor_turfs) //This didn't make any sense before SSplanets, either
|
||||
if(S.z in holder.our_planet.expected_z_levels)
|
||||
for(var/dir_checked in cardinal)
|
||||
var/turf/simulated/floor/T = get_step(S, dir_checked)
|
||||
if(istype(T))
|
||||
if(istype(T, /turf/simulated/floor/outdoors) && prob(50))
|
||||
T.chill()
|
||||
*/
|
||||
|
||||
/datum/weather/thor/rain
|
||||
name = "rain"
|
||||
icon_state = "rain"
|
||||
temp_high = 308.15 // 35c
|
||||
temp_low = 298.15 // 25c
|
||||
wind_high = 2
|
||||
wind_low = 1
|
||||
light_modifier = 0.5
|
||||
effect_message = "<span class='warning'>Rain falls on you.</span>"
|
||||
|
||||
transition_chances = list(
|
||||
WEATHER_OVERCAST = 25,
|
||||
WEATHER_RAIN = 50
|
||||
)
|
||||
observed_message = "It is raining."
|
||||
transition_messages = list(
|
||||
"The sky is dark, and rain falls down upon you."
|
||||
)
|
||||
imminent_transition_message = "Light drips of water are starting to fall from the sky."
|
||||
outdoor_sounds_type = /datum/looping_sound/weather/rain
|
||||
indoor_sounds_type = /datum/looping_sound/weather/rain/indoors
|
||||
|
||||
/datum/weather/thor/rain/process_effects()
|
||||
..()
|
||||
for(var/mob/living/L as anything in living_mob_list)
|
||||
if(L.z in holder.our_planet.expected_z_levels)
|
||||
var/turf/T = get_turf(L)
|
||||
if(!T.is_outdoors())
|
||||
continue // They're indoors, so no need to rain on them.
|
||||
|
||||
// If they have an open umbrella, it'll guard from rain
|
||||
var/obj/item/weapon/melee/umbrella/U = L.get_active_hand()
|
||||
if(!istype(U) || !U.open)
|
||||
U = L.get_inactive_hand()
|
||||
|
||||
if(istype(U) && U.open)
|
||||
if(show_message)
|
||||
to_chat(L, "<span class='notice'>Rain patters softly onto your umbrella.</span>")
|
||||
continue
|
||||
|
||||
L.water_act(1)
|
||||
if(show_message)
|
||||
to_chat(L, effect_message)
|
||||
|
||||
/datum/weather/thor/storm
|
||||
name = "storm"
|
||||
icon_state = "storm"
|
||||
wind_high = 4
|
||||
wind_low = 2
|
||||
light_modifier = 0.3
|
||||
flight_failure_modifier = 10
|
||||
effect_message = "<span class='warning'>Rain falls on you, drenching you in water.</span>"
|
||||
|
||||
var/next_lightning_strike = 0 // world.time when lightning will strike.
|
||||
var/min_lightning_cooldown = 5 SECONDS
|
||||
var/max_lightning_cooldown = 1 MINUTE
|
||||
observed_message = "An intense storm pours down over the region."
|
||||
transition_messages = list(
|
||||
"You feel intense winds hit you as the weather takes a turn for the worst.",
|
||||
"Loud thunder is heard in the distance.",
|
||||
"A bright flash heralds the approach of a storm."
|
||||
)
|
||||
imminent_transition_message = "You can hear distant thunder. Storm is coming."
|
||||
outdoor_sounds_type = /datum/looping_sound/weather/rain
|
||||
indoor_sounds_type = /datum/looping_sound/weather/rain/indoors
|
||||
|
||||
|
||||
transition_chances = list(
|
||||
WEATHER_STORM = 10,
|
||||
WEATHER_RAIN = 80
|
||||
)
|
||||
|
||||
/datum/weather/thor/storm/process_effects()
|
||||
..()
|
||||
for(var/mob/living/L as anything in living_mob_list)
|
||||
if(L.z in holder.our_planet.expected_z_levels)
|
||||
var/turf/T = get_turf(L)
|
||||
if(!T.is_outdoors())
|
||||
continue // They're indoors, so no need to rain on them.
|
||||
|
||||
// If they have an open umbrella, it'll guard from rain
|
||||
var/obj/item/weapon/melee/umbrella/U = L.get_active_hand()
|
||||
if(!istype(U) || !U.open)
|
||||
U = L.get_inactive_hand()
|
||||
|
||||
if(istype(U) && U.open)
|
||||
if(show_message)
|
||||
to_chat(L, "<span class='notice'>Rain showers loudly onto your umbrella!</span>")
|
||||
continue
|
||||
|
||||
|
||||
L.water_act(2)
|
||||
if(show_message)
|
||||
to_chat(L, effect_message)
|
||||
|
||||
handle_lightning()
|
||||
|
||||
// This gets called to do lightning periodically.
|
||||
// There is a seperate function to do the actual lightning strike, so that badmins can play with it.
|
||||
/datum/weather/thor/storm/proc/handle_lightning()
|
||||
if(world.time < next_lightning_strike)
|
||||
return // It's too soon to strike again.
|
||||
next_lightning_strike = world.time + rand(min_lightning_cooldown, max_lightning_cooldown)
|
||||
var/turf/T = pick(holder.our_planet.planet_floors) // This has the chance to 'strike' the sky, but that might be a good thing, to scare reckless pilots.
|
||||
lightning_strike(T)
|
||||
|
||||
/datum/weather/thor/hail
|
||||
name = "hail"
|
||||
icon_state = "hail"
|
||||
light_modifier = 0.3
|
||||
flight_failure_modifier = 15
|
||||
timer_low_bound = 2
|
||||
timer_high_bound = 5
|
||||
effect_message = "<span class='warning'>The hail smacks into you!</span>"
|
||||
|
||||
transition_chances = list(
|
||||
WEATHER_HAIL = 10,
|
||||
WEATHER_SNOW = 40,
|
||||
WEATHER_RAIN = 40
|
||||
)
|
||||
observed_message = "Ice is falling from the sky."
|
||||
transition_messages = list(
|
||||
"Ice begins to fall from the sky.",
|
||||
"It begins to hail.",
|
||||
"An intense chill is felt, and chunks of ice start to fall from the sky, towards you."
|
||||
)
|
||||
imminent_transition_message = "Small bits of ice are falling from the sky, growing larger by the second. Hail is starting, get to cover!"
|
||||
|
||||
/datum/weather/thor/hail/process_effects()
|
||||
..()
|
||||
for(var/mob/living/carbon/H as anything in human_mob_list)
|
||||
if(H.z in holder.our_planet.expected_z_levels)
|
||||
var/turf/T = get_turf(H)
|
||||
if(!T.is_outdoors())
|
||||
continue // They're indoors, so no need to pelt them with ice.
|
||||
|
||||
// If they have an open umbrella, it'll guard from hail
|
||||
var/obj/item/weapon/melee/umbrella/U = H.get_active_hand()
|
||||
if(!istype(U) || !U.open)
|
||||
U = H.get_inactive_hand()
|
||||
|
||||
if(istype(U) && U.open)
|
||||
if(show_message)
|
||||
to_chat(H, "<span class='notice'>Hail patters onto your umbrella.</span>")
|
||||
continue
|
||||
|
||||
var/target_zone = pick(BP_ALL)
|
||||
var/amount_blocked = H.run_armor_check(target_zone, "melee")
|
||||
var/amount_soaked = H.get_armor_soak(target_zone, "melee")
|
||||
|
||||
var/damage = rand(1,3)
|
||||
|
||||
if(amount_blocked >= 30)
|
||||
continue // No need to apply damage. Hardhats are 30. They should probably protect you from hail on your head.
|
||||
//Voidsuits are likewise 40, and riot, 80. Clothes are all less than 30.
|
||||
|
||||
if(amount_soaked >= damage)
|
||||
continue // No need to apply damage.
|
||||
|
||||
H.apply_damage(damage, BRUTE, target_zone, amount_blocked, amount_soaked, used_weapon = "hail")
|
||||
if(show_message)
|
||||
to_chat(H, effect_message)
|
||||
|
||||
/datum/weather/thor/fog
|
||||
name = "fog"
|
||||
icon_state = "fog"
|
||||
wind_high = 1
|
||||
wind_low = 0
|
||||
light_modifier = 0.7
|
||||
|
||||
temp_high = 283.15 // 10c
|
||||
temp_low = 273.15 // 0c
|
||||
|
||||
transition_chances = list(
|
||||
WEATHER_FOG = 10,
|
||||
WEATHER_OVERCAST = 15
|
||||
)
|
||||
observed_message = "A fogbank has rolled over the region."
|
||||
transition_messages = list(
|
||||
"Fog rolls in.",
|
||||
"Visibility falls as the air becomes dense.",
|
||||
"The clouds drift lower, as if to smother the forests."
|
||||
)
|
||||
imminent_transition_message = "Clouds are drifting down as the area is getting foggy."
|
||||
outdoor_sounds_type = /datum/looping_sound/weather/wind
|
||||
indoor_sounds_type = /datum/looping_sound/weather/wind/indoors
|
||||
|
||||
/datum/weather/thor/blood_moon
|
||||
name = "blood moon"
|
||||
light_modifier = 0.5
|
||||
light_color = "#FF0000"
|
||||
temp_high = 293.15 // 20c
|
||||
temp_low = 283.15 // 10c
|
||||
flight_failure_modifier = 25
|
||||
transition_chances = list(
|
||||
WEATHER_BLOOD_MOON = 100
|
||||
)
|
||||
observed_message = "Everything is red. Something really ominous is going on."
|
||||
transition_messages = list(
|
||||
"The sky turns blood red!"
|
||||
)
|
||||
imminent_transition_message = "The sky is turning red. Blood Moon is starting."
|
||||
outdoor_sounds_type = /datum/looping_sound/weather/wind
|
||||
indoor_sounds_type = /datum/looping_sound/weather/wind/indoors
|
||||
|
||||
// Ash and embers fall forever, such as from a volcano or something.
|
||||
/datum/weather/thor/emberfall
|
||||
name = "emberfall"
|
||||
icon_state = "ashfall_light"
|
||||
light_modifier = 0.7
|
||||
light_color = "#880000"
|
||||
temp_high = 293.15 // 20c
|
||||
temp_low = 283.15 // 10c
|
||||
flight_failure_modifier = 20
|
||||
transition_chances = list(
|
||||
WEATHER_EMBERFALL = 100
|
||||
)
|
||||
observed_message = "Soot, ash, and embers float down from above."
|
||||
transition_messages = list(
|
||||
"Gentle embers waft down around you like grotesque snow."
|
||||
)
|
||||
imminent_transition_message = "Dark smoke is filling the sky, as ash and embers start to rain down."
|
||||
outdoor_sounds_type = /datum/looping_sound/weather/wind
|
||||
indoor_sounds_type = /datum/looping_sound/weather/wind/indoors
|
||||
|
||||
// Like the above but a lot more harmful.
|
||||
/datum/weather/thor/ash_storm
|
||||
name = "ash storm"
|
||||
icon_state = "ashfall_heavy"
|
||||
light_modifier = 0.1
|
||||
light_color = "#FF0000"
|
||||
temp_high = 323.15 // 50c
|
||||
temp_low = 313.15 // 40c
|
||||
wind_high = 6
|
||||
wind_low = 3
|
||||
flight_failure_modifier = 50
|
||||
transition_chances = list(
|
||||
WEATHER_ASH_STORM = 100
|
||||
)
|
||||
observed_message = "All that can be seen is black smoldering ash."
|
||||
transition_messages = list(
|
||||
"Smoldering clouds of scorching ash billow down around you!"
|
||||
)
|
||||
imminent_transition_message = "Dark smoke is filling the sky, as ash and embers fill the air and wind is picking up too. Ashstorm is coming, get to cover!"
|
||||
// Lets recycle.
|
||||
outdoor_sounds_type = /datum/looping_sound/weather/outside_blizzard
|
||||
indoor_sounds_type = /datum/looping_sound/weather/inside_blizzard
|
||||
|
||||
/datum/weather/thor/ash_storm/process_effects()
|
||||
..()
|
||||
for(var/mob/living/L as anything in living_mob_list)
|
||||
if(L.z in holder.our_planet.expected_z_levels)
|
||||
var/turf/T = get_turf(L)
|
||||
if(!T.is_outdoors())
|
||||
continue // They're indoors, so no need to burn them with ash.
|
||||
|
||||
L.inflict_heat_damage(rand(1, 3))
|
||||
|
||||
//A non-lethal variant of the ash_storm. Stays on indefinitely.
|
||||
/datum/weather/thor/ash_storm_safe
|
||||
name = "light ash storm"
|
||||
icon_state = "ashfall_moderate"
|
||||
light_modifier = 0.1
|
||||
light_color = "#FF0000"
|
||||
temp_high = 323.15 // 50c
|
||||
temp_low = 313.15 // 40c
|
||||
wind_high = 6
|
||||
wind_low = 3
|
||||
flight_failure_modifier = 50
|
||||
transition_chances = list(
|
||||
WEATHER_ASH_STORM_SAFE = 100
|
||||
)
|
||||
observed_message = "All that can be seen is black smoldering ash."
|
||||
transition_messages = list(
|
||||
"Smoldering clouds of scorching ash billow down around you!"
|
||||
)
|
||||
imminent_transition_message = "Dark smoke is filling the sky, as ash and embers fill the air and wind is picking up too."
|
||||
// Lets recycle.
|
||||
outdoor_sounds_type = /datum/looping_sound/weather/outside_blizzard
|
||||
indoor_sounds_type = /datum/looping_sound/weather/inside_blizzard
|
||||
|
||||
|
||||
// Totally radical.
|
||||
/datum/weather/thor/fallout
|
||||
name = "fallout"
|
||||
icon_state = "fallout"
|
||||
light_modifier = 0.7
|
||||
light_color = "#CCFFCC"
|
||||
flight_failure_modifier = 30
|
||||
transition_chances = list(
|
||||
WEATHER_FALLOUT = 100
|
||||
)
|
||||
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."
|
||||
)
|
||||
imminent_transition_message = "Sky and clouds are growing sickly green... Radiation storm is approaching, get to cover!"
|
||||
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/thor/fallout/process_effects()
|
||||
..()
|
||||
for(var/mob/living/L as anything in living_mob_list)
|
||||
if(L.z in holder.our_planet.expected_z_levels)
|
||||
irradiate_nearby_turf(L)
|
||||
var/turf/T = get_turf(L)
|
||||
if(!T.is_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/thor/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.is_outdoors())
|
||||
SSradiation.radiate(T, rand(fallout_rad_low, fallout_rad_high))
|
||||
|
||||
/datum/weather/thor/fallout/temp
|
||||
name = "short-term fallout"
|
||||
timer_low_bound = 1
|
||||
timer_high_bound = 3
|
||||
transition_chances = list(
|
||||
WEATHER_FALLOUT = 10,
|
||||
WEATHER_RAIN = 50,
|
||||
WEATHER_FOG = 35,
|
||||
WEATHER_STORM = 20,
|
||||
WEATHER_OVERCAST = 5
|
||||
)
|
||||
|
||||
/datum/weather/thor/confetti
|
||||
name = "confetti"
|
||||
icon_state = "confetti"
|
||||
|
||||
transition_chances = list(
|
||||
WEATHER_CLEAR = 50,
|
||||
WEATHER_OVERCAST = 20,
|
||||
WEATHER_CONFETTI = 5
|
||||
)
|
||||
observed_message = "Confetti is raining from the sky."
|
||||
transition_messages = list(
|
||||
"Suddenly, colorful confetti starts raining from the sky."
|
||||
)
|
||||
imminent_transition_message = "A rain is starting... A rain of confetti...?"
|
||||
|
||||
/turf/unsimulated/wall/planetary/normal/thor
|
||||
name = "deep ocean"
|
||||
alpha = 0
|
||||
|
||||
/obj/machinery/power/smes/buildable/offmap_spawn/empty/New()
|
||||
..(1)
|
||||
charge = 0
|
||||
RCon = TRUE
|
||||
input_level = input_level_max
|
||||
output_level = output_level_max
|
||||
input_attempt = TRUE
|
||||
@@ -0,0 +1,302 @@
|
||||
//Atmosphere properties //CHOMP Comment: I guess this THOR planetary information should go here. THOR is a gas giant, it ain't gonna be getting very many other maps.
|
||||
#define THOR_ONE_ATMOSPHERE 101.5 //kPa
|
||||
#define THOR_AVG_TEMP 313 //kelvin
|
||||
|
||||
#define THOR_PER_N2 0.65 //percent
|
||||
#define THOR_PER_O2 0.35
|
||||
#define THOR_PER_N2O 0.00 //Currently no capacity to 'start' a turf with this. See turf.dm
|
||||
#define THOR_PER_CO2 0.00
|
||||
#define THOR_PER_PHORON 0.00
|
||||
|
||||
//Math only beyond this point
|
||||
#define THOR_MOL_PER_TURF (THOR_ONE_ATMOSPHERE*CELL_VOLUME/(THOR_AVG_TEMP*R_IDEAL_GAS_EQUATION))
|
||||
#define THOR_MOL_N2 (THOR_MOL_PER_TURF * THOR_PER_N2)
|
||||
#define THOR_MOL_O2 (THOR_MOL_PER_TURF * THOR_PER_O2)
|
||||
#define THOR_MOL_N2O (THOR_MOL_PER_TURF * THOR_PER_N2O)
|
||||
#define THOR_MOL_CO2 (THOR_MOL_PER_TURF * THOR_PER_CO2)
|
||||
#define THOR_MOL_PHORON (THOR_MOL_PER_TURF * THOR_PER_PHORON)
|
||||
|
||||
//Turfmakers
|
||||
#define THOR_SET_ATMOS nitrogen=THOR_MOL_N2;oxygen=THOR_MOL_O2;carbon_dioxide=THOR_MOL_CO2;phoron=THOR_MOL_PHORON;temperature=THOR_AVG_TEMP
|
||||
#define THOR_TURF_CREATE(x) x/THOR/nitrogen=THOR_MOL_N2;x/THOR/oxygen=THOR_MOL_O2;x/THOR/carbon_dioxide=THOR_MOL_CO2;x/THOR/phoron=THOR_MOL_PHORON;x/THOR/temperature=THOR_AVG_TEMP;x/THOR/color="#eacd7c"
|
||||
|
||||
/obj/effect/overmap/visitable/planet/thor
|
||||
name = "Thor"
|
||||
desc = "Inhabited terrestrial natural saterlite of Sif"
|
||||
scanner_desc = @{"[i]Stellar Body[/i]: Thor
|
||||
[i]Registration[/i]: Vir System Authority
|
||||
[i]Class[/i]: Installation
|
||||
[i]Transponder[/i]: Transmitting (CIV), Vir IFF
|
||||
[b]Notice[/b]: The Vir government welcomes you to this world."}
|
||||
|
||||
map_z = list(Z_LEVEL_JUNGLE)
|
||||
initial_generic_waypoints = list("thor_nw","thor_e","spacebus_jungle")
|
||||
start_x = 11
|
||||
start_y = 17
|
||||
known = TRUE
|
||||
skybox_offset_x = 128
|
||||
skybox_offset_y = 128
|
||||
surface_color = "#176422"
|
||||
mountain_color = "#093314"
|
||||
water_color = "#086dcc"
|
||||
ice_color = "#f5ffff"
|
||||
atmosphere_color = "#54c0ce"
|
||||
icon_state = "lush"
|
||||
|
||||
|
||||
/obj/effect/overmap/visitable/planet/thor/get_skybox_representation()
|
||||
var/image/tmp = ..()
|
||||
tmp.pixel_x = skybox_offset_x
|
||||
tmp.pixel_y = skybox_offset_y
|
||||
return tmp
|
||||
|
||||
/obj/effect/overmap/visitable/planet/thor/Initialize()
|
||||
atmosphere = new(CELL_VOLUME) // Necessary for the planet overmap icon to generate properly, but gas type does not seem to matter.
|
||||
atmosphere.adjust_gas_temp("carbon_dioxide", THOR_MOL_CO2, THOR_AVG_TEMP)
|
||||
atmosphere.adjust_gas_temp("nitrogen", THOR_MOL_N2, THOR_AVG_TEMP)
|
||||
atmosphere.adjust_gas_temp("oxygen", THOR_MOL_O2, THOR_AVG_TEMP)
|
||||
|
||||
. = ..()
|
||||
|
||||
docking_codes = null
|
||||
|
||||
//AREAS
|
||||
/area/surface/thor/med
|
||||
name = "Jungle Outpost Medical"
|
||||
icon_state = "medbay"
|
||||
|
||||
/area/surface/thor/engi
|
||||
name = "Jungle Outpost Solars"
|
||||
icon_state = "engineering"
|
||||
|
||||
/area/surface/thor/janitor
|
||||
name = "Jungle Outpost Custodions"
|
||||
icon_state = "janitor"
|
||||
|
||||
/area/surface/thor/kitchen
|
||||
name = "Jungle Outpost Kitchen"
|
||||
icon_state = "cafeteria"
|
||||
|
||||
/area/surface/thor/bar
|
||||
name = "Jungle Outpost Bar"
|
||||
icon_state = "cafeteria"
|
||||
|
||||
/area/surface/thor/dorms
|
||||
name = "Jungle Outpost Generic Dorms"
|
||||
icon_state = "Sleep"
|
||||
soundproofed = TRUE
|
||||
limit_mob_size = FALSE
|
||||
block_suit_sensors = TRUE
|
||||
flags = RAD_SHIELDED
|
||||
block_tracking = TRUE
|
||||
|
||||
/area/surface/thor/dorms/pool1
|
||||
name = "Jungle Outpost Pool Shack 1"
|
||||
|
||||
/area/surface/thor/dorms/pool2
|
||||
name = "Jungle Outpost Pool Shack 2"
|
||||
|
||||
/area/surface/thor/dorms/pool3
|
||||
name = "Jungle Outpost Pool Shack 3"
|
||||
/area/surface/outside/thor/pool
|
||||
name = "Jungle Swimming Pool"
|
||||
icon_state = "bluenew"
|
||||
always_unpowered = FALSE
|
||||
|
||||
/area/surface/outside/thor/landingpad
|
||||
name = "Space Bus Landing Pad"
|
||||
icon_state = "bluenew"
|
||||
|
||||
/area/surface/outside/thor/outpost
|
||||
name = "Jungle Outpost Perimiter"
|
||||
icon_state = "green"
|
||||
/area/surface/outside/thor/jungle
|
||||
name = "Jungle"
|
||||
icon_state = "green"
|
||||
/area/surface/outside/thor/jungle/deep
|
||||
name = "Untamed Jungles"
|
||||
icon_state = "green"
|
||||
|
||||
/area/surface/outside/thor/beach
|
||||
name = "Tropical Beach"
|
||||
icon_state = "away"
|
||||
/area/surface/outside/thor/ocean
|
||||
name = "Tropical Ocean"
|
||||
icon_state = "bluenew"
|
||||
|
||||
/area/surface/thor/caves
|
||||
name = "Tropical Caves"
|
||||
icon_state = "darkred"
|
||||
always_unpowered = TRUE
|
||||
|
||||
/area/surface/thor/abandonedhouse
|
||||
name = "Jungle Abandoned House"
|
||||
icon_state = "away1"
|
||||
|
||||
/area/surface/thor/commstower
|
||||
name = "Jungle Comms Tower"
|
||||
icon_state = "away1"
|
||||
//TURFS (mostly existing turfs with armos changes)
|
||||
|
||||
/turf/unsimulated/wall/planetary/normal/thor
|
||||
oxygen = THOR_MOL_O2
|
||||
nitrogen = THOR_MOL_N2
|
||||
temperature = THOR_AVG_TEMP
|
||||
|
||||
/turf/simulated/mineral/thor
|
||||
oxygen = THOR_MOL_O2
|
||||
nitrogen = THOR_MOL_N2
|
||||
temperature = THOR_AVG_TEMP
|
||||
/turf/simulated/floor/outdoors/thor
|
||||
oxygen = THOR_MOL_O2
|
||||
nitrogen = THOR_MOL_N2
|
||||
temperature = THOR_AVG_TEMP
|
||||
|
||||
/turf/simulated/floor/outdoors/thor
|
||||
oxygen = THOR_MOL_O2
|
||||
nitrogen = THOR_MOL_N2
|
||||
temperature = THOR_AVG_TEMP
|
||||
|
||||
/turf/simulated/floor/water/thor
|
||||
oxygen = THOR_MOL_O2
|
||||
nitrogen = THOR_MOL_N2
|
||||
temperature = THOR_AVG_TEMP
|
||||
|
||||
/turf/simulated/shuttle/floor/alienplating/external/thor
|
||||
oxygen = THOR_MOL_O2
|
||||
nitrogen = THOR_MOL_N2
|
||||
temperature = THOR_AVG_TEMP
|
||||
|
||||
/turf/simulated/shuttle/floor/voidcraft/external/thor
|
||||
oxygen = THOR_MOL_O2
|
||||
nitrogen = THOR_MOL_N2
|
||||
temperature = THOR_AVG_TEMP
|
||||
|
||||
/turf/simulated/shuttle/floor/voidcraft/external/dark/thor
|
||||
oxygen = THOR_MOL_O2
|
||||
nitrogen = THOR_MOL_N2
|
||||
temperature = THOR_AVG_TEMP
|
||||
|
||||
/turf/simulated/shuttle/floor/voidcraft/external/light/thor
|
||||
oxygen = THOR_MOL_O2
|
||||
nitrogen = THOR_MOL_N2
|
||||
temperature = THOR_AVG_TEMP
|
||||
|
||||
/turf/simulated/floor/plating/external/thor
|
||||
oxygen = THOR_MOL_O2
|
||||
nitrogen = THOR_MOL_N2
|
||||
temperature = THOR_AVG_TEMP
|
||||
|
||||
/turf/simulated/floor/tiled/external/thor
|
||||
oxygen = THOR_MOL_O2
|
||||
nitrogen = THOR_MOL_N2
|
||||
temperature = THOR_AVG_TEMP
|
||||
|
||||
/turf/simulated/floor/outdoors/mud/thor/planetuse
|
||||
oxygen = THOR_MOL_O2
|
||||
nitrogen = THOR_MOL_N2
|
||||
temperature = THOR_AVG_TEMP
|
||||
|
||||
/turf/simulated/floor/outdoors/rocks/thor/planetuse
|
||||
oxygen = THOR_MOL_O2
|
||||
nitrogen = THOR_MOL_N2
|
||||
temperature = THOR_AVG_TEMP
|
||||
|
||||
/turf/simulated/floor/tiled/thor/planetuse
|
||||
oxygen = THOR_MOL_O2
|
||||
nitrogen = THOR_MOL_N2
|
||||
temperature = THOR_AVG_TEMP
|
||||
outdoors = OUTDOORS_YES
|
||||
|
||||
/turf/simulated/floor/tiled/steel/thor/planetuse
|
||||
oxygen = THOR_MOL_O2
|
||||
nitrogen = THOR_MOL_N2
|
||||
temperature = THOR_AVG_TEMP
|
||||
outdoors = OUTDOORS_YES
|
||||
|
||||
/turf/simulated/floor/plating/thor/planetuse
|
||||
oxygen = THOR_MOL_O2
|
||||
nitrogen = THOR_MOL_N2
|
||||
temperature = THOR_AVG_TEMP
|
||||
outdoors = OUTDOORS_YES
|
||||
|
||||
/turf/simulated/floor/outdoors/grass/thor
|
||||
oxygen = THOR_MOL_O2
|
||||
nitrogen = THOR_MOL_N2
|
||||
temperature = THOR_AVG_TEMP
|
||||
var/tree_chance = 5
|
||||
|
||||
/turf/simulated/floor/outdoors/grass/heavy/thor
|
||||
oxygen = THOR_MOL_O2
|
||||
nitrogen = THOR_MOL_N2
|
||||
temperature = THOR_AVG_TEMP
|
||||
var/tree_chance = 10
|
||||
|
||||
/turf/simulated/floor/outdoors/grass/forest/thor
|
||||
oxygen = THOR_MOL_O2
|
||||
nitrogen = THOR_MOL_N2
|
||||
temperature = THOR_AVG_TEMP
|
||||
var/tree_chance = 10
|
||||
|
||||
/turf/simulated/floor/outdoors/dirt/thor/planetuse
|
||||
oxygen = THOR_MOL_O2
|
||||
nitrogen = THOR_MOL_N2
|
||||
temperature = THOR_AVG_TEMP
|
||||
|
||||
/turf/simulated/floor/reinforced/thor
|
||||
oxygen = THOR_MOL_O2
|
||||
nitrogen = THOR_MOL_N2
|
||||
temperature = THOR_AVG_TEMP
|
||||
|
||||
/turf/simulated/floor/concrete/outdoors/thor
|
||||
outdoors = TRUE
|
||||
oxygen = THOR_MOL_O2
|
||||
nitrogen = THOR_MOL_N2
|
||||
temperature = THOR_AVG_TEMP
|
||||
|
||||
/turf/simulated/floor/tiled/asteroid_steel/outdoors/thor
|
||||
oxygen = THOR_MOL_O2
|
||||
nitrogen = THOR_MOL_N2
|
||||
temperature = THOR_AVG_TEMP
|
||||
|
||||
/turf/simulated/floor/beach/sand/desert/outdoors/thor
|
||||
oxygen = THOR_MOL_O2
|
||||
nitrogen = THOR_MOL_N2
|
||||
temperature = THOR_AVG_TEMP
|
||||
|
||||
/turf/simulated/floor/outdoors/desert_planet/gravel/thor
|
||||
oxygen = THOR_MOL_O2
|
||||
nitrogen = THOR_MOL_N2
|
||||
temperature = THOR_AVG_TEMP
|
||||
|
||||
/turf/simulated/floor/outdoors/desert_planet/sand/thor
|
||||
oxygen = THOR_MOL_O2
|
||||
nitrogen = THOR_MOL_N2
|
||||
temperature = THOR_AVG_TEMP
|
||||
|
||||
/turf/simulated/mineral/floor/cave/thor
|
||||
oxygen = THOR_MOL_O2
|
||||
nitrogen = THOR_MOL_N2
|
||||
temperature = THOR_AVG_TEMP
|
||||
|
||||
/turf/simulated/floor/outdoors/grass/thor/Initialize()
|
||||
if(tree_chance && prob(tree_chance) && !check_density())
|
||||
new /obj/structure/flora/tree/jungle(src)
|
||||
. = ..()
|
||||
|
||||
/turf/simulated/floor/outdoors/grass/heavy/thor/Initialize()
|
||||
if(tree_chance && prob(tree_chance) && !check_density())
|
||||
new /obj/structure/flora/tree/jungle(src)
|
||||
. = ..()
|
||||
|
||||
/turf/simulated/floor/outdoors/grass/forest/thor/Initialize()
|
||||
if(tree_chance && prob(tree_chance) && !check_density())
|
||||
new /obj/structure/flora/tree/jungle(src)
|
||||
|
||||
grass_types = list(
|
||||
/obj/structure/flora/ausbushes/fullgrass = 40,
|
||||
/obj/structure/flora/ausbushes/sparsegrass = 40,
|
||||
/obj/structure/prop/desert_planet64x64/palmuria = 10,
|
||||
/obj/structure/prop/desert_planet64x64/palmuria1 = 10
|
||||
)
|
||||
. = ..()
|
||||
File diff suppressed because it is too large
Load Diff
@@ -66,6 +66,8 @@
|
||||
|
||||
extra_z_levels = list(Z_LEVEL_TRANSIT, Z_LEVEL_MISC,Z_LEVEL_SURFACE, Z_LEVEL_SURFACE_MINE, Z_LEVEL_SURFACE_WILD, Z_LEVEL_SURFACE_VALLEY) //This should allow for comms to reach people from the station. Basically this defines all the areas of Southern Cross and the Sif local system on the overmap.
|
||||
// "Z_LEVEL_SURFACE_SKYLANDS, " //removed due to lack of use
|
||||
var/mob_announce_cooldown = 0
|
||||
|
||||
|
||||
initial_generic_waypoints = list(
|
||||
"d1_aux_a",
|
||||
@@ -83,6 +85,7 @@
|
||||
"d2_w3_a",
|
||||
"d2_w3_c",
|
||||
"d2_w3_e",
|
||||
"hangar_2",
|
||||
"d2_near_ne",
|
||||
"d2_near_nw",
|
||||
"d2_near_se",
|
||||
@@ -102,6 +105,32 @@
|
||||
Z_LEVEL_STATION_THREE,
|
||||
Z_LEVEL_MISC)
|
||||
|
||||
/obj/effect/overmap/visitable/sector/Southern_Cross/Crossed(var/atom/movable/AM)
|
||||
. = ..()
|
||||
announce_atc(AM,going = FALSE)
|
||||
|
||||
/obj/effect/overmap/visitable/sector/Southern_Cross/Uncrossed(var/atom/movable/AM)
|
||||
. = ..()
|
||||
announce_atc(AM,going = TRUE)
|
||||
|
||||
/obj/effect/overmap/visitable/sector/Southern_Cross/proc/announce_atc(var/atom/movable/AM, var/going = FALSE)
|
||||
if(istype(AM, /obj/effect/overmap/visitable/ship/simplemob))
|
||||
if(world.time < mob_announce_cooldown)
|
||||
return
|
||||
else
|
||||
mob_announce_cooldown = world.time + 5 MINUTES
|
||||
var/message = "Sensor contact for vessel '[AM.name]' has [going ? "left" : "entered"] ATC control area."
|
||||
//For landables, we need to see if their shuttle is cloaked
|
||||
if(istype(AM, /obj/effect/overmap/visitable/ship/landable))
|
||||
var/obj/effect/overmap/visitable/ship/landable/SL = AM //Phew
|
||||
var/datum/shuttle/autodock/multi/shuttle = SSshuttles.shuttles[SL.shuttle]
|
||||
if(!istype(shuttle) || !shuttle.cloaked) //Not a multishuttle (the only kind that can cloak) or not cloaked
|
||||
atc.msg(message)
|
||||
|
||||
//For ships, it's safe to assume they're big enough to not be sneaky
|
||||
else if(istype(AM, /obj/effect/overmap/visitable/ship))
|
||||
atc.msg(message)
|
||||
|
||||
/obj/effect/overmap/visitable/planet/Sif/Initialize()
|
||||
. = ..()
|
||||
docking_codes = null
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
vessel_mass = 3000
|
||||
vessel_size = SHIP_SIZE_SMALL
|
||||
shuttle = "Stargazer"
|
||||
known = TRUE
|
||||
|
||||
/obj/machinery/computer/shuttle_control/explore/stargazer
|
||||
name = "short jump console"
|
||||
@@ -37,6 +38,7 @@
|
||||
vessel_mass = 6000
|
||||
vessel_size = SHIP_SIZE_SMALL
|
||||
shuttle = "Baby_mammoth"
|
||||
known = TRUE
|
||||
|
||||
/obj/machinery/computer/shuttle_control/explore/baby_mammoth
|
||||
name = "short jump console"
|
||||
@@ -59,6 +61,7 @@
|
||||
vessel_mass = 3500
|
||||
vessel_size = SHIP_SIZE_SMALL
|
||||
shuttle = "Ursula"
|
||||
known = TRUE
|
||||
|
||||
/obj/machinery/computer/shuttle_control/explore/ursula
|
||||
name = "short jump console"
|
||||
@@ -81,6 +84,7 @@
|
||||
vessel_mass = 1500
|
||||
vessel_size = SHIP_SIZE_SMALL
|
||||
shuttle = "Needle"
|
||||
known = TRUE
|
||||
|
||||
/obj/machinery/computer/shuttle_control/explore/needle
|
||||
name = "short jump console"
|
||||
@@ -103,8 +107,53 @@
|
||||
vessel_mass = 5500
|
||||
vessel_size = SHIP_SIZE_SMALL
|
||||
shuttle = "Echidna"
|
||||
known = TRUE
|
||||
|
||||
/obj/machinery/computer/shuttle_control/explore/echidna
|
||||
name = "short jump console"
|
||||
shuttle_tag = "Echidna"
|
||||
req_one_access = list(access_pilot)
|
||||
|
||||
//Spacebus
|
||||
/datum/shuttle/autodock/overmap/spacebus
|
||||
name = "Space Bus"
|
||||
warmup_time = 4
|
||||
current_location = "hangar_2"
|
||||
docking_controller_tag = "spacebus"
|
||||
shuttle_area = /area/shuttle/spacebus
|
||||
fuel_consumption = 1
|
||||
move_direction = NORTH
|
||||
|
||||
/obj/effect/overmap/visitable/ship/landable/spacebus
|
||||
name = "Space Bus"
|
||||
desc = "Southern Cross' civilian transport vessel"
|
||||
vessel_mass = 2000
|
||||
vessel_size = SHIP_SIZE_SMALL
|
||||
shuttle = "Space Bus"
|
||||
known = TRUE
|
||||
|
||||
/obj/machinery/computer/shuttle_control/explore/spacebus
|
||||
name = "short jump console"
|
||||
shuttle_tag = "Space Bus"
|
||||
req_one_access = list(access_pilot)
|
||||
|
||||
//POI Junker
|
||||
/datum/shuttle/autodock/overmap/junker
|
||||
name = "Junker"
|
||||
warmup_time = 4
|
||||
current_location = "junkspawn"
|
||||
docking_controller_tag = "junker"
|
||||
shuttle_area = /area/shuttle/junker
|
||||
fuel_consumption = 1
|
||||
move_direction = NORTH
|
||||
|
||||
/obj/effect/overmap/visitable/ship/landable/junker
|
||||
name = "Junker"
|
||||
desc = "Small class ship, non-NT property."
|
||||
vessel_mass = 500
|
||||
vessel_size = SHIP_SIZE_SMALL
|
||||
shuttle = "Junker"
|
||||
|
||||
/obj/machinery/computer/shuttle_control/explore/junker
|
||||
name = "short jump console"
|
||||
shuttle_tag = "Junker"
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -71,6 +71,7 @@
|
||||
#include "overmap/planets/kara/northern_star/northern_star.dm" //This is the actual map info that we're using for kara
|
||||
#include "overmap/planets/kara/aerostat/aerostat.dm" //This is an installation for Kara.
|
||||
*/
|
||||
#include "overmap/planets/thor/thor.dm"
|
||||
|
||||
//SPACE - Anything random in space
|
||||
#include "overmap/space/fueldepot.dm" //This is a fuel depot in space.
|
||||
|
||||
@@ -109,6 +109,7 @@
|
||||
luminosity = 1
|
||||
*/
|
||||
|
||||
|
||||
/area/surface/outside/path/wilderness
|
||||
|
||||
// Water
|
||||
|
||||
@@ -19,7 +19,8 @@ but they don't actually change anything about the load order
|
||||
#define Z_LEVEL_SURFACE_VALLEY 10
|
||||
#define Z_LEVEL_VR_REALM 11
|
||||
#define Z_LEVEL_FUELDEPOT 12
|
||||
#define Z_LEVEL_GATEWAY 13
|
||||
#define Z_LEVEL_JUNGLE 13
|
||||
#define Z_LEVEL_GATEWAY 14
|
||||
|
||||
//#define Z_LEVEL_SURFACE_SKYLANDS //Sky islands removal due to lack of use
|
||||
//#define Z_LEVEL_AEROSTAT //Disabled due to lack of use
|
||||
@@ -107,7 +108,7 @@ but they don't actually change anything about the load order
|
||||
unit_test_exempt_areas = list(/area/ninja_dojo, /area/shuttle/ninja)
|
||||
unit_test_exempt_from_atmos = list(/area/tcomm/chamber)
|
||||
|
||||
planet_datums_to_make = list(/datum/planet/sif) //This must be added to load maps at round start otherwise they will have weather or sun.
|
||||
planet_datums_to_make = list(/datum/planet/sif,/datum/planet/thor) //This must be added to load maps at round start otherwise they will have weather or sun.
|
||||
|
||||
map_levels = list(
|
||||
Z_LEVEL_STATION_ONE,
|
||||
@@ -121,7 +122,8 @@ but they don't actually change anything about the load order
|
||||
// Framework for porting Tether's lateload Z-Level system //Stock lateload maps
|
||||
lateload_z_levels = list(
|
||||
list("VR World"),
|
||||
list("Fuel Depot - Z1 Space")
|
||||
list("Fuel Depot - Z1 Space"),
|
||||
list("Thor Surface")
|
||||
//list("Kara Aerostat - Z1 Aerostat"), //Remove Kara Z layers
|
||||
//list("Kara - Z1 Northern Star") //Remove Kara Z layers
|
||||
)
|
||||
@@ -285,6 +287,13 @@ but they don't actually change anything about the load order
|
||||
name = "Transit"
|
||||
flags = MAP_LEVEL_ADMIN|MAP_LEVEL_SEALED|MAP_LEVEL_PLAYER|MAP_LEVEL_CONTACT
|
||||
|
||||
//Thor Z-Level
|
||||
/datum/map_z_level/southern_cross/thor
|
||||
z = Z_LEVEL_JUNGLE
|
||||
name = "Thor Surface"
|
||||
flags = MAP_LEVEL_PLAYER|MAP_LEVEL_SEALED
|
||||
base_turf = /turf/simulated/floor/outdoors/rocks
|
||||
|
||||
/*
|
||||
KSC 9/29/20 = No longer relevant code as we have nonencludian portals to jump between outpost,caves and wilderness
|
||||
//Teleport to Mine
|
||||
@@ -326,6 +335,11 @@ but they don't actually change anything about the load order
|
||||
)
|
||||
//Z_LEVEL_SURFACE_CASINO //CHOMPedit - KSC = So there is weather on the Casino. //Move this into /datum/planet/sif and remember to add a coma for the new entry, for when you need the casino again
|
||||
|
||||
/datum/planet/thor
|
||||
expected_z_levels = list(
|
||||
Z_LEVEL_JUNGLE
|
||||
)
|
||||
|
||||
/obj/effect/step_trigger/teleporter/bridge/east_to_west/Initialize()
|
||||
teleport_x = src.x - 4
|
||||
teleport_y = src.y
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
//#include "../overmap/planets/kara/aerostat/aerostat.dmm" //Disabled due to low usage
|
||||
//#include "../overmap/planets/kara/northern_star/northern_star_mine.dmm" //Disabled due to low usage
|
||||
#include "../overmap/space/fueldepot.dmm"
|
||||
#include "../overmap/planets/thor/thor.dmm" //The datum is in southern_cross_defines.dm
|
||||
#include "gateway/BaseBlep.dmm"
|
||||
#include "gateway/maddnesslab.dmm"
|
||||
#include "gateway/snowfield.dmm"
|
||||
@@ -90,6 +91,12 @@
|
||||
name = "Away Mission - Fuel Depot"
|
||||
z = Z_LEVEL_VR_REALM
|
||||
|
||||
/datum/map_template/sc_lateload/thor
|
||||
name = "Thor Surface"
|
||||
desc = "The jungle like surface of Sif's moon"
|
||||
mappath = 'maps/southern_cross/overmap/planets/thor/thor.dmm'
|
||||
associated_map_datum = /datum/planet/thor
|
||||
|
||||
//Space submaps/sectors/POIs/whatever you wanna freaking call it, go here.
|
||||
/* Pretty sure we don't use this.
|
||||
#include "../../expedition_vr/space/_fueldepot.dm"
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
#define TEMPERATURE_SIF 243.15 // Roughly -30C / -22F
|
||||
#define TEMPERATURE_ALTSIF 225.15
|
||||
|
||||
|
||||
/turf/simulated/floor/outdoors/mud/sif/planetuse
|
||||
oxygen = MOLES_O2SIF
|
||||
nitrogen = MOLES_N2SIF
|
||||
@@ -142,7 +143,6 @@
|
||||
oxygen = MOLES_O2SIF
|
||||
nitrogen = MOLES_N2SIF
|
||||
temperature = TEMPERATURE_ALTSIF
|
||||
|
||||
/turf/simulated/floor/tiled/asteroid_steel //CHOMP Edit now I'm adding shit here now too. Abandoned temple.
|
||||
oxygen = MOLES_O2SIF
|
||||
nitrogen = MOLES_N2SIF
|
||||
|
||||
@@ -94,11 +94,13 @@
|
||||
name = "palm"
|
||||
desc = "Stout and bushy."
|
||||
icon_state = "palmuria"
|
||||
density = 0 //theyre smol
|
||||
|
||||
/obj/structure/prop/desert_planet64x64/palmuria1
|
||||
name = "palm"
|
||||
desc = "Stout and bushy."
|
||||
icon_state = "palmuria1"
|
||||
density = 0 //theyre smol
|
||||
|
||||
/obj/structure/prop/desert_planet160x160
|
||||
name = "desert large boulder"
|
||||
|
||||
@@ -3804,6 +3804,7 @@
|
||||
#include "code\modules\planet\planet.dm"
|
||||
#include "code\modules\planet\sif.dm"
|
||||
#include "code\modules\planet\sun.dm"
|
||||
#include "code\modules\planet\thor.dm"
|
||||
#include "code\modules\planet\time.dm"
|
||||
#include "code\modules\planet\weather.dm"
|
||||
#include "code\modules\player_tips_vr\player_tips_controller_vr.dm"
|
||||
|
||||
Reference in New Issue
Block a user