mirror of
https://github.com/KabKebab/GS13.git
synced 2026-07-13 17:08:53 +01:00
Merge branch 'origin/HEAD'
This commit is contained in:
@@ -381,6 +381,12 @@
|
||||
sheet_type = /obj/item/stack/sheet/mineral/bananium
|
||||
coin_type = /obj/item/coin/bananium
|
||||
|
||||
/datum/material/calorite //GS13
|
||||
name = "calorite"
|
||||
id = MAT_CALORITE
|
||||
sheet_type = /obj/item/stack/sheet/mineral/calorite
|
||||
// coin_type = /obj/item/coin/calorite
|
||||
|
||||
/datum/material/titanium
|
||||
name = "Titanium"
|
||||
id = MAT_TITANIUM
|
||||
|
||||
@@ -54,7 +54,7 @@ handles linking back and forth.
|
||||
/datum/component/remote_materials/proc/_MakeLocal()
|
||||
silo = null
|
||||
mat_container = parent.AddComponent(/datum/component/material_container,
|
||||
list(MAT_METAL, MAT_GLASS, MAT_SILVER, MAT_GOLD, MAT_DIAMOND, MAT_PLASMA, MAT_URANIUM, MAT_BANANIUM, MAT_TITANIUM, MAT_BLUESPACE, MAT_PLASTIC),
|
||||
list(MAT_METAL, MAT_GLASS, MAT_SILVER, MAT_GOLD, MAT_DIAMOND, MAT_PLASMA, MAT_URANIUM, MAT_BANANIUM, MAT_CALORITE, MAT_TITANIUM, MAT_BLUESPACE, MAT_PLASTIC),
|
||||
local_size,
|
||||
FALSE,
|
||||
/obj/item/stack)
|
||||
|
||||
@@ -70,7 +70,7 @@
|
||||
/datum/reagent/medicine/haloperidol, /datum/reagent/drug/aranesp, /datum/reagent/medicine/diphenhydramine
|
||||
),
|
||||
list( //level 11
|
||||
/datum/reagent/medicine/modafinil, /datum/reagent/medicine/bicaridine
|
||||
/datum/reagent/medicine/modafinil, /datum/reagent/drug/krokodil
|
||||
)
|
||||
)
|
||||
|
||||
@@ -243,7 +243,14 @@
|
||||
else
|
||||
visibility_flags &= ~HIDDEN_SCANNER
|
||||
|
||||
SetSpread(CLAMP(2 ** (properties["transmittable"] - symptoms.len), DISEASE_SPREAD_BLOOD, DISEASE_SPREAD_AIRBORNE))
|
||||
if(properties["transmittable"]>=11)
|
||||
SetSpread(DISEASE_SPREAD_AIRBORNE)
|
||||
else if(properties["transmittable"]>=7)
|
||||
SetSpread(DISEASE_SPREAD_CONTACT_SKIN)
|
||||
else if(properties["transmittable"]>=3)
|
||||
SetSpread(DISEASE_SPREAD_CONTACT_FLUIDS)
|
||||
else
|
||||
SetSpread(DISEASE_SPREAD_BLOOD)
|
||||
|
||||
permeability_mod = max(CEILING(0.4 * properties["transmittable"], 1), 1)
|
||||
cure_chance = 15 - CLAMP(properties["resistance"], -5, 5) // can be between 10 and 20
|
||||
@@ -419,7 +426,7 @@
|
||||
|
||||
// Should be only 1 entry left, but if not let's only return a single entry
|
||||
var/datum/disease/advance/to_return = pick(diseases)
|
||||
to_return.Refresh(1)
|
||||
to_return.Refresh(TRUE)
|
||||
return to_return
|
||||
|
||||
/proc/SetViruses(datum/reagent/R, list/data)
|
||||
@@ -455,7 +462,8 @@
|
||||
else if(ispath(symptom))
|
||||
var/datum/symptom/S = new symptom
|
||||
if(!D.HasSymptom(S))
|
||||
D.symptoms += S
|
||||
D.symptoms += S //We manually add to avoid the randomness
|
||||
S.OnAdd(D) //Second step of adding a symptom
|
||||
i -= 1
|
||||
while(i > 0)
|
||||
|
||||
|
||||
@@ -36,7 +36,8 @@
|
||||
var/datum/symptom/chosen_symptom = pick_n_take(possible_symptoms)
|
||||
if(chosen_symptom)
|
||||
var/datum/symptom/S = new chosen_symptom
|
||||
symptoms += S
|
||||
symptoms += S //Avoiding the randomness
|
||||
S.OnAdd(src) //Activating symptoms added
|
||||
|
||||
name = "Sample #[rand(1,10000)]"
|
||||
..()
|
||||
..()
|
||||
|
||||
@@ -31,3 +31,19 @@
|
||||
|
||||
/datum/symptom/inorganic_adaptation/OnRemove(datum/disease/advance/A)
|
||||
A.infectable_biotypes &= ~MOB_INORGANIC
|
||||
|
||||
/datum/symptom/robotic_adaptation //GS13
|
||||
name = "Electronic propagation"
|
||||
desc = "The virus learns to feed off and utilize electric signals to create computer virus copies of itself, allowing it to work inside of robotic hosts. Any reports stating the virus have tiny programmer socks attached to their cell's membranes are not scientifically accurate and false."
|
||||
stealth = 1
|
||||
resistance = -1
|
||||
stage_speed = 3
|
||||
transmittable = 0
|
||||
level = 5
|
||||
severity = 0
|
||||
|
||||
/datum/symptom/robotic_adaptation/OnAdd(datum/disease/advance/A)
|
||||
A.infectable_biotypes |= MOB_ROBOTIC
|
||||
|
||||
/datum/symptom/robotic_adaptation/OnRemove(datum/disease/advance/A)
|
||||
A.infectable_biotypes &= ~MOB_ROBOTIC
|
||||
|
||||
@@ -138,6 +138,7 @@
|
||||
always_place = TRUE
|
||||
allow_duplicates = FALSE
|
||||
|
||||
|
||||
/datum/map_template/ruin/lavaland/blood_drunk_miner
|
||||
name = "Blood-Drunk Miner"
|
||||
id = "blooddrunk"
|
||||
@@ -255,3 +256,11 @@
|
||||
suffix = "lavaland_surface_cozy_cabin.dmm"
|
||||
allow_duplicates = FALSE
|
||||
cost = 0
|
||||
|
||||
/datum/map_template/ruin/lavaland/snack_store //GS13
|
||||
name = "Snack Store"
|
||||
id = "snackstore"
|
||||
description = "All your dreams about spending a night in a snack store finally came true! Though judging by your situation, you might spend a bit longer than just one night here..."
|
||||
suffix = "lavaland_surface_snack_store.dmm"
|
||||
allow_duplicates = FALSE
|
||||
cost = 0
|
||||
|
||||
@@ -318,3 +318,15 @@
|
||||
suffix = "wizardden.dmm"
|
||||
name = "Wizards Cabin"
|
||||
description = "The wooden cabin of a wizard in space, it smells like mana in there."
|
||||
|
||||
/datum/map_template/ruin/space/feeders_den //GS13
|
||||
id = "feeders_den"
|
||||
suffix = "feeders_den.dmm"
|
||||
name = "Feeder Den"
|
||||
description = "What used to be a small Syndicate prison and interrogration facility has been taken over by a degenerate madman and turned into a den fit for one purpose - to fatten up its captives."
|
||||
|
||||
/datum/map_template/ruin/space/fastfood //GS13
|
||||
id = "fastfood"
|
||||
suffix = "fastfood.dmm"
|
||||
name = "Fast Food Restaurant"
|
||||
description = "In GATO controlled space, it isn't uncommon to find various space restaurants, famous for the abundance of corn oil in their foods."
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
//GS13 EDIT
|
||||
/*
|
||||
/datum/weather/ash_storm/layenia //because fuck writing my own code
|
||||
name = "Layenia Weather"
|
||||
desc = "A subset of weather affecting Layenia"
|
||||
@@ -25,6 +27,8 @@
|
||||
|
||||
aesthetic = TRUE
|
||||
|
||||
*/
|
||||
|
||||
//datum/weather/layenia/telegraph()
|
||||
|
||||
//datum/weather/layenia/start()
|
||||
|
||||
@@ -1,65 +1,69 @@
|
||||
//Radiation storms occur when the station passes through an irradiated area, and irradiate anyone not standing in protected areas (maintenance, emergency storage, etc.)
|
||||
/datum/weather/rad_storm
|
||||
name = "radiation storm"
|
||||
desc = "A cloud of intense radiation passes through the area dealing rad damage to those who are unprotected."
|
||||
// //Radiation storms occur when the station passes through an irradiated area, and irradiate anyone not standing in protected areas (maintenance, emergency storage, etc.)
|
||||
// /datum/weather/rad_storm
|
||||
// name = "radiation storm"
|
||||
// desc = "A cloud of intense radiation passes through the area dealing rad damage to those who are unprotected."
|
||||
|
||||
telegraph_duration = 400
|
||||
telegraph_message = "<span class='danger'>The air begins to grow warm.</span>"
|
||||
// telegraph_duration = 400
|
||||
// telegraph_message = "<span class='danger'>The air begins to grow warm.</span>"
|
||||
|
||||
weather_message = "<span class='userdanger'><i>You feel waves of heat wash over you! Find shelter!</i></span>"
|
||||
weather_overlay = "ash_storm"
|
||||
weather_duration_lower = 600
|
||||
weather_duration_upper = 1500
|
||||
weather_color = "green"
|
||||
weather_sound = 'sound/misc/bloblarm.ogg'
|
||||
// weather_message = "<span class='userdanger'><i>You feel waves of heat wash over you! Find shelter!</i></span>"
|
||||
// weather_overlay = "ash_storm"
|
||||
// weather_duration_lower = 600
|
||||
// weather_duration_upper = 1500
|
||||
// weather_color = "green"
|
||||
// weather_sound = 'sound/misc/bloblarm.ogg'
|
||||
|
||||
end_duration = 100
|
||||
end_message = "<span class='notice'>The air seems to be cooling off again.</span>"
|
||||
// end_duration = 100
|
||||
// end_message = "<span class='notice'>The air seems to be cooling off again.</span>"
|
||||
|
||||
area_type = /area
|
||||
protected_areas = list(/area/maintenance, /area/ai_monitored/turret_protected/ai_upload, /area/ai_monitored/turret_protected/ai_upload_foyer,
|
||||
/area/ai_monitored/turret_protected/ai, /area/storage/emergency/starboard, /area/storage/emergency/port, /area/shuttle, /area/survivalpod, /area/crew_quarters/dorms, /area/security/prison, /area/ruin, /area/space/nearstation)
|
||||
target_trait = ZTRAIT_STATION
|
||||
// area_type = /area
|
||||
// protected_areas = list(/area/maintenance, /area/ai_monitored/turret_protected/ai_upload, /area/ai_monitored/turret_protected/ai_upload_foyer,
|
||||
// /area/ai_monitored/turret_protected/ai, /area/storage/emergency/starboard, /area/storage/emergency/port, /area/shuttle, /area/survivalpod, /area/crew_quarters/dorms, /area/security/prison, /area/ruin, /area/space/nearstation)
|
||||
// target_trait = ZTRAIT_STATION
|
||||
|
||||
immunity_type = "rad"
|
||||
// immunity_type = "rad"
|
||||
|
||||
/datum/weather/rad_storm/telegraph()
|
||||
..()
|
||||
status_alarm(TRUE)
|
||||
// /datum/weather/rad_storm/telegraph()
|
||||
// ..()
|
||||
// status_alarm(TRUE)
|
||||
|
||||
/datum/weather/rad_storm/weather_act(mob/living/L)
|
||||
var/resist = L.getarmor(null, "rad")
|
||||
if(prob(40))
|
||||
if(ishuman(L))
|
||||
var/mob/living/carbon/human/H = L
|
||||
if(H.dna && !HAS_TRAIT(H, TRAIT_RADIMMUNE))
|
||||
if(prob(max(0,100-resist)))
|
||||
H.randmuti()
|
||||
if(prob(50))
|
||||
if(prob(90))
|
||||
H.easy_randmut(NEGATIVE+MINOR_NEGATIVE)
|
||||
else
|
||||
H.easy_randmut(POSITIVE)
|
||||
H.domutcheck()
|
||||
L.rad_act(20)
|
||||
// /datum/weather/rad_storm/weather_act(mob/living/L)
|
||||
// var/resist = L.getarmor(null, "rad")
|
||||
// if(prob(40))
|
||||
// if(ishuman(L))
|
||||
// var/mob/living/carbon/human/H = L
|
||||
// if(H.dna && !HAS_TRAIT(H, TRAIT_RADIMMUNE))
|
||||
// if(prob(max(0,100-resist)))
|
||||
// H.randmuti()
|
||||
// if(prob(50))
|
||||
// if(prob(90))
|
||||
// H.easy_randmut(NEGATIVE+MINOR_NEGATIVE)
|
||||
// else
|
||||
// H.easy_randmut(POSITIVE)
|
||||
// H.domutcheck()
|
||||
// L.rad_act(20)
|
||||
|
||||
/datum/weather/rad_storm/end()
|
||||
if(..())
|
||||
return
|
||||
priority_announce("The radiation threat has passed. Please return to your workplaces.", "Anomaly Alert")
|
||||
status_alarm(FALSE)
|
||||
// /datum/weather/rad_storm/end()
|
||||
// if(..())
|
||||
// return
|
||||
// priority_announce("The radiation threat has passed. Please return to your workplaces.", "Anomaly Alert")
|
||||
// status_alarm(FALSE)
|
||||
|
||||
/datum/weather/rad_storm/proc/status_alarm(active) //Makes the status displays show the radiation warning for those who missed the announcement.
|
||||
var/datum/radio_frequency/frequency = SSradio.return_frequency(FREQ_STATUS_DISPLAYS)
|
||||
if(!frequency)
|
||||
return
|
||||
// /datum/weather/rad_storm/proc/status_alarm(active) //Makes the status displays show the radiation warning for those who missed the announcement.
|
||||
// var/datum/radio_frequency/frequency = SSradio.return_frequency(FREQ_STATUS_DISPLAYS)
|
||||
// if(!frequency)
|
||||
// return
|
||||
|
||||
var/datum/signal/signal = new
|
||||
if (active)
|
||||
signal.data["command"] = "alert"
|
||||
signal.data["picture_state"] = "radiation"
|
||||
else
|
||||
signal.data["command"] = "shuttle"
|
||||
// var/datum/signal/signal = new
|
||||
// if (active)
|
||||
// signal.data["command"] = "alert"
|
||||
// signal.data["picture_state"] = "radiation"
|
||||
// else
|
||||
// signal.data["command"] = "shuttle"
|
||||
|
||||
var/atom/movable/virtualspeaker/virt = new(null)
|
||||
frequency.post_signal(virt, signal)
|
||||
// var/atom/movable/virtualspeaker/virt = new(null)
|
||||
// frequency.post_signal(virt, signal)
|
||||
|
||||
|
||||
|
||||
// GS13 tweak: Removed radstorms due to how disruptive they were to QoL and RP quality - Sono
|
||||
|
||||
Reference in New Issue
Block a user