mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-08-24 21:40:55 +01:00
Sandstorm Tweaks (#19370)
Sandstorm damage now respects armor, and will not damage Vaurca and IPCs as much. Ponchos, mantles, straw hats, Unathi robes, and hoods now protect against weather. Sandstorms can now cause pain and impair vision if a mob's eyes are unprotected. Adds protective gear to Wasteland ghostroles who didn't already have it. --------- Signed-off-by: RustingWithYou <63625389+RustingWithYou@users.noreply.github.com> Signed-off-by: Matt Atlas <mattiathebest2000@hotmail.it> Co-authored-by: Matt Atlas <mattiathebest2000@hotmail.it>
This commit is contained in:
co-authored by
Matt Atlas
parent
1926b6b612
commit
81f77e6e43
@@ -49,6 +49,7 @@
|
||||
icon_override = null
|
||||
contained_sprite = TRUE
|
||||
var/cape_backing_state = "cape_backing"
|
||||
protects_against_weather = FALSE
|
||||
|
||||
/obj/item/clothing/accessory/poncho/dominia_cape/white
|
||||
name = "white dominian cape"
|
||||
@@ -498,6 +499,9 @@
|
||||
name = "black zhao noble dress"
|
||||
house = "zhao"
|
||||
|
||||
/obj/item/clothing/accessory/poncho/dominia
|
||||
protects_against_weather = FALSE
|
||||
|
||||
/obj/item/clothing/accessory/poncho/dominia/red/surcoat
|
||||
name = "tribunalist surcoat"
|
||||
desc = "A simple red surcoat commonly worn by Dominian clergy members."
|
||||
|
||||
@@ -130,6 +130,7 @@
|
||||
icon = 'icons/clothing/suits/capes/golden_cape.dmi'
|
||||
contained_sprite = TRUE
|
||||
icon_override = null
|
||||
protects_against_weather = FALSE
|
||||
|
||||
/obj/item/clothing/accessory/poncho/goldendeep/flowingcloak
|
||||
name = "flowing cloak"
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
icon_state = "ronin_hat"
|
||||
item_state = "ronin_hat"
|
||||
contained_sprite = TRUE
|
||||
protects_against_weather = TRUE
|
||||
|
||||
/obj/item/clothing/head/unathi/deco
|
||||
name = "decorated straw hat"
|
||||
|
||||
@@ -158,6 +158,7 @@
|
||||
item_state = "nature_scarf"
|
||||
icon_override = null
|
||||
contained_sprite = TRUE
|
||||
protects_against_weather = FALSE
|
||||
|
||||
// Techno Outfit
|
||||
/obj/item/clothing/head/wizard/techno
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
desc = "A traditional Unathi garment."
|
||||
icon_state = "roughspun_robe"
|
||||
item_state = "roughspun_robe"
|
||||
protects_against_weather = TRUE
|
||||
|
||||
/obj/item/clothing/suit/unathi/robe/beige
|
||||
color = "#DBC684"
|
||||
@@ -57,6 +58,7 @@
|
||||
flags_inv = HIDEJUMPSUIT|HIDETAIL
|
||||
species_restricted = list(BODYTYPE_UNATHI)
|
||||
contained_sprite = TRUE
|
||||
protects_against_weather = TRUE
|
||||
|
||||
/obj/item/clothing/suit/armor/unathi/ancient
|
||||
name = "ancient bronze armor"
|
||||
|
||||
@@ -22,6 +22,7 @@
|
||||
sprite_sheets = list(
|
||||
BODYTYPE_VAURCA_BULWARK = 'icons/mob/species/bulwark/accessories.dmi'
|
||||
)
|
||||
var/protects_against_weather = FALSE
|
||||
|
||||
/obj/item/clothing/accessory/Destroy()
|
||||
on_removed()
|
||||
@@ -400,6 +401,7 @@
|
||||
slot = ACCESSORY_SLOT_CAPE
|
||||
contained_sprite = TRUE
|
||||
var/allow_tail_hiding = TRUE //in case if you want to allow someone to switch the HIDETAIL var or not
|
||||
protects_against_weather = TRUE
|
||||
|
||||
/obj/item/clothing/accessory/poncho/verb/toggle_hide_tail()
|
||||
set name = "Toggle Tail Coverage"
|
||||
@@ -666,6 +668,7 @@
|
||||
item_state = "starcape"
|
||||
flippable = TRUE
|
||||
contained_sprite = FALSE
|
||||
protects_against_weather = FALSE
|
||||
|
||||
/obj/item/clothing/accessory/poncho/shouldercape/star
|
||||
name = "star cape"
|
||||
@@ -744,6 +747,7 @@
|
||||
item_state = "trinary_cape"
|
||||
overlay_state = "trinary_cape"
|
||||
contained_sprite = FALSE
|
||||
protects_against_weather = FALSE
|
||||
|
||||
/obj/item/clothing/accessory/poncho/trinary/pellegrina
|
||||
name = "trinary perfection pellegrina"
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
contained_sprite = TRUE
|
||||
action_button_name = "Adjust Hood"
|
||||
var/up = TRUE
|
||||
protects_against_weather = TRUE
|
||||
|
||||
/obj/item/clothing/accessory/sinta_hood/get_ear_examine_text(var/mob/user, var/ear_text = "left")
|
||||
return "on [user.get_pronoun("his")] head"
|
||||
@@ -64,6 +65,7 @@
|
||||
item_state = "maxtlatl"
|
||||
icon_override = null
|
||||
contained_sprite = TRUE
|
||||
protects_against_weather = FALSE
|
||||
|
||||
/obj/item/clothing/accessory/poncho/unathimantle
|
||||
name = "desert hide mantle"
|
||||
@@ -205,3 +207,4 @@
|
||||
build_from_parts = TRUE
|
||||
worn_overlay = "chain"
|
||||
has_accents = TRUE
|
||||
protects_against_weather = FALSE
|
||||
|
||||
@@ -66,6 +66,7 @@ INITIALIZE_IMMEDIATE(/mob/living/carbon/human/dummy/mannequin)
|
||||
|
||||
/mob/living/carbon/human/stok/moghes
|
||||
faction = "Moghes"
|
||||
resists_weather = TRUE
|
||||
|
||||
/mob/living/carbon/human/bug/Initialize(mapload)
|
||||
. = ..(mapload, SPECIES_MONKEY_VAURCA)
|
||||
|
||||
@@ -77,3 +77,6 @@
|
||||
|
||||
///what icon the mob uses for speechbubbles
|
||||
var/bubble_icon = "default"
|
||||
|
||||
///If true, ignores weather effects
|
||||
var/resists_weather = FALSE
|
||||
|
||||
@@ -35,6 +35,7 @@
|
||||
bullet = ARMOR_BALLISTIC_MINOR,
|
||||
bomb = ARMOR_BOMB_MINOR
|
||||
)
|
||||
resists_weather = TRUE
|
||||
sample_data = list("Cellular biochemistry shows high metabolic capacity", "Tissue sample contains high muscle content", "Genetic biomarkers identified linked with passiveness and domestication")
|
||||
|
||||
/mob/living/simple_animal/threshbeast/saddle
|
||||
@@ -85,6 +86,7 @@
|
||||
laser = ARMOR_LASER_MINOR,
|
||||
bomb = ARMOR_BOMB_MINOR
|
||||
)
|
||||
resists_weather = TRUE
|
||||
sample_data = list("Cellular biochemistry shows high metabolic capacity", "Tissue sample contains high muscle content", "Genetic biomarkers identified linked with domestication", "Intracellular keratin synthesis present")
|
||||
|
||||
/mob/living/simple_animal/hostile/retaliate/hegeranzi/saddle
|
||||
@@ -98,6 +100,7 @@
|
||||
name = "orszi fish"
|
||||
desc = "A small fish native to the rivers and seas of the planet Moghes, the orzsi or 'swarm fish' is a common food source for noble and common Unathi alike."
|
||||
faction = "Moghes"
|
||||
resists_weather = TRUE
|
||||
|
||||
/mob/living/simple_animal/otzek
|
||||
name = "otzek"
|
||||
@@ -127,6 +130,7 @@
|
||||
butchering_products = list(/obj/item/stack/material/animalhide/lizard = 4)
|
||||
meat_type = /obj/item/reagent_containers/food/snacks/meat/moghes
|
||||
meat_amount = 16
|
||||
resists_weather = TRUE
|
||||
sample_data = list("Cellular biochemistry geared towards the use of plant-based nutrition", "Genetic biomarkers identified linked with high reproductive rates", "Intracellular keratin synthesis present")
|
||||
|
||||
/mob/living/simple_animal/miervesh
|
||||
@@ -155,6 +159,7 @@
|
||||
butchering_products = list(/obj/item/stack/material/animalhide = 1)
|
||||
meat_type = /obj/item/reagent_containers/food/snacks/meat/moghes
|
||||
meat_amount = 1
|
||||
resists_weather = TRUE
|
||||
sample_data = list("Cellular biochemistry shows signs of rapid respiration", "Genetic biomarkers identified linked with passiveness and domestication", "Extracellular gas detection present")
|
||||
var/chosen_icon
|
||||
|
||||
|
||||
@@ -35,6 +35,7 @@
|
||||
|
||||
faction = "Moghes"
|
||||
butchering_products = list(/obj/item/stack/material/animalhide/lizard = 20)
|
||||
resists_weather = TRUE
|
||||
sample_data = list("Cellular biochemistry shows high metabolic capacity", "Tissue sample contains high muscle content", "Genetic biomarkers identified linked with aggressiveness", "Intracellular keratin synthesis present")
|
||||
var/is_devouring = FALSE
|
||||
|
||||
@@ -164,6 +165,7 @@
|
||||
meat_type = /obj/item/reagent_containers/food/snacks/meat/moghes
|
||||
meat_amount = 10
|
||||
faction = "Moghes"
|
||||
resists_weather = TRUE
|
||||
sample_data = list("Cellular structures adapted to provide strong resonance protection", "Genetic biomarkers identified linked with agressiveness")
|
||||
var/shriek_time = 0
|
||||
|
||||
|
||||
@@ -1459,6 +1459,11 @@
|
||||
var/obj/item/clothing/suit/check_body = get_equipped_item(slot_wear_suit_str)
|
||||
if(!istype(check_body) || !check_body.protects_against_weather)
|
||||
return
|
||||
for(var/obj/item/clothing/clothing in list(w_uniform, wear_suit, head))
|
||||
for(var/obj/item/clothing/accessory/check_accessory in clothing)
|
||||
if(!istype(check_accessory) || !check_accessory.protects_against_weather)
|
||||
continue
|
||||
LAZYADD(., check_accessory)
|
||||
LAZYADD(., check_head)
|
||||
LAZYADD(., check_body)
|
||||
|
||||
|
||||
@@ -30,6 +30,10 @@
|
||||
target = /singleton/state/weather/rain/hail
|
||||
likelihood_weighting = 20
|
||||
|
||||
/singleton/state_transition/weather/sandstorm
|
||||
target = /singleton/state/weather/sandstorm
|
||||
likelihood_weighting = 20
|
||||
|
||||
//weather for planets
|
||||
|
||||
//snow planets
|
||||
@@ -68,7 +72,7 @@
|
||||
//arctic planets
|
||||
|
||||
/singleton/state_transition/weather/calm/arctic_planet
|
||||
target = /singleton/state/weather/calm/lava_planet
|
||||
target = /singleton/state/weather/calm/arctic_planet
|
||||
|
||||
/singleton/state_transition/weather/hail/arctic_planet
|
||||
target = /singleton/state/weather/rain/hail/arctic_planet
|
||||
@@ -78,6 +82,8 @@
|
||||
/singleton/state_transition/weather/calm/desert_planet
|
||||
target = /singleton/state/weather/calm/desert_planet
|
||||
|
||||
/singleton/state_transition/weather/sandfall/desert_planet
|
||||
target = /singleton/state/weather/sandfall/desert_planet
|
||||
|
||||
/singleton/state_transition/weather/sandstorm/desert_planet
|
||||
target = /singleton/state/weather/sandstorm/desert_planet
|
||||
likelihood_weighting = 20
|
||||
|
||||
@@ -181,7 +181,7 @@
|
||||
|
||||
/singleton/state/weather/rain/hail/handle_exposure_effects(var/mob/living/M, var/obj/abstract/weather_system/weather)
|
||||
to_chat(M, SPAN_DANGER("You are pelted by a shower of hail!"))
|
||||
M.adjustBruteLoss(rand(1,3))
|
||||
M.apply_damage(rand(1,3), DAMAGE_BRUTE)
|
||||
|
||||
/singleton/state/weather/ash
|
||||
name = "Ash"
|
||||
@@ -190,6 +190,14 @@
|
||||
cosmetic_span_class = "warning"
|
||||
cosmetic_messages = list("Drifts of ash fall from the sky.")
|
||||
|
||||
/singleton/state/weather/sandfall
|
||||
name = "Sand"
|
||||
icon_state = "sand_light"
|
||||
descriptor = "The wind rises, stirring up gusts of sand."
|
||||
cosmetic_span_class = "warning"
|
||||
cosmetic_messages = list("Scattered gusts of sand fall from the sky.")
|
||||
transitions = list(/singleton/state_transition/weather/sandstorm)
|
||||
|
||||
/singleton/state/weather/sandstorm
|
||||
name = "Sandstorm"
|
||||
icon_state = "sandstorm"
|
||||
@@ -199,12 +207,37 @@
|
||||
"The wind howls around you.",
|
||||
"Swirling sand obscures your vision."
|
||||
)
|
||||
protected_messages = list("Stinging sand blows against $ITEM$.")
|
||||
protected_messages = list("$ITEM$ shields you from the howling sandstorm.")
|
||||
ambient_sounds = list('sound/effects/weather/sandstorm.ogg')
|
||||
|
||||
/singleton/state/weather/sandstorm/handle_exposure_effects(mob/living/M, obj/abstract/weather_system/weather)
|
||||
to_chat(M, SPAN_DANGER("You are blasted by a gust of stinging sand!"))
|
||||
M.adjustBruteLoss(rand(1,5))
|
||||
if(M.resists_weather) //Not realistic that they're just immune, but we don't have AI for simplemobs seeking shelter from storms.
|
||||
return
|
||||
else if(isvaurca(M)) //Bugs have sealed carapaces
|
||||
to_chat(M, SPAN_WARNING("Your carapace protects you from the stinging sand!"))
|
||||
else if(isipc(M) || issilicon(M)) //Metal is more durable than meat
|
||||
to_chat(M, SPAN_DANGER("Your chassis is scratched by a gust of stinging sand!"))
|
||||
M.apply_damage(1, DAMAGE_BRUTE)
|
||||
else
|
||||
to_chat(M, SPAN_DANGER("You are blasted by a gust of stinging sand!"))
|
||||
M.apply_damage(rand(1,3), DAMAGE_BRUTE)
|
||||
|
||||
if(ishuman(M) && prob(50)) //only a 50% chance of getting in the eyes to avoid being too punishing
|
||||
var/mob/living/carbon/human/H = M
|
||||
var/obj/item/organ/internal/eyes/E = H.get_eyes()
|
||||
if(!E) //No eyes, no problem
|
||||
return
|
||||
if (istype(E) && (E.status & (ORGAN_ROBOT|ORGAN_ADV_ROBOT)))
|
||||
to_chat(H, SPAN_WARNING("Your mechanical eyes are immune to the sandstorm!"))
|
||||
return
|
||||
for(var/obj/item/clothing/C in list(H.wear_mask, H.head, H.glasses))
|
||||
if(C.body_parts_covered & EYES)
|
||||
to_chat(H, SPAN_WARNING("\The [C] shields your eyes from the sand."))
|
||||
return
|
||||
to_chat(H, SPAN_DANGER("The stinging sand gets in your eyes!"))
|
||||
H.eye_blurry = max(H.eye_blurry, 15)
|
||||
H.eye_blind = max(H.eye_blind, 5)
|
||||
H.apply_effect(rand(5,10), DAMAGE_PAIN)
|
||||
|
||||
//planet weathers
|
||||
|
||||
@@ -258,10 +291,19 @@
|
||||
/singleton/state/weather/rain/hail/arctic_planet
|
||||
transitions = list(/singleton/state_transition/weather/calm/arctic_planet)
|
||||
|
||||
//desert planet - only calm or sandstorm
|
||||
//desert planet - only calm, sandfall, or sandstorm
|
||||
|
||||
/singleton/state/weather/calm/desert_planet
|
||||
transitions = list(/singleton/state_transition/weather/sandstorm/desert_planet)
|
||||
transitions = list(/singleton/state_transition/weather/sandfall/desert_planet)
|
||||
|
||||
/singleton/state/weather/sandfall/desert_planet
|
||||
transitions = list(
|
||||
/singleton/state_transition/weather/calm/desert_planet,
|
||||
/singleton/state_transition/weather/sandstorm/desert_planet
|
||||
)
|
||||
|
||||
/singleton/state/weather/sandstorm/desert_planet
|
||||
transitions = list(/singleton/state_transition/weather/calm/desert_planet)
|
||||
transitions = list(
|
||||
/singleton/state_transition/weather/calm/desert_planet,
|
||||
/singleton/state_transition/weather/sandfall/desert_planet
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user