mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-26 06:29:23 +01:00
[MIRROR] lava and weather immunities refactor (also jump boots fix) (#7893)
* lava and weather immunities refactor (also jump boots fix) (#61003) In remembrance of all those people who used jump boots to cross lava unaware of an issue c*ders wouldn't fix.... EDIT: This is now a lava and weather immunities refactor: Weather immunities are now status traits since they have a multitude of sources (especially for lava) which might conflict with one another otherwise. The lava burn_stuff proc has also been been refactored in different procs, mostly because of that snowdin subtype with inconsistent, old checks. Weather datums should now use can_weather_act instead of weather_act to check if something can be affected by weather or not, as they should. All movables can protect contained mobs if they have the relative weather immunity traits. This works at any contents depth. No more snowflake weather_protection variable for closets. Removed the weather_immunities list from living mobs (simple animals still have it but it's only for traits assignment on init because way too many child types lack the immunities of their parents). Removed some unused defines. Renamed some variables as per guidelines. It has been tested. And yea, jump boots fixed because that's the original scope of this PR. (Initially just made throwing make you fire immune, that was blocked because it breaks perma stuff, instead it ended up be a refactor to make jumpboots usable with weather immumnity stuff * lava and weather immunities refactor (also jump boots fix) * Update Ashwalkers.dm Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com> Co-authored-by: Gandalf <jzo123@hotmail.com>
This commit is contained in:
co-authored by
Ghom
Gandalf
parent
7c20242e85
commit
f1503016c5
@@ -44,8 +44,6 @@
|
||||
var/delivery_icon = "deliverycloset" //which icon to use when packagewrapped. null to be unwrappable.
|
||||
var/anchorable = TRUE
|
||||
var/icon_welded = "welded"
|
||||
/// Protection against weather that being inside of it provides.
|
||||
var/list/weather_protection = null
|
||||
/// How close being inside of the thing provides complete pressure safety. Must be between 0 and 1!
|
||||
contents_pressure_protection = 0
|
||||
/// How insulated the thing is, for the purposes of calculating body temperature. Must be between 0 and 1!
|
||||
|
||||
@@ -150,7 +150,7 @@
|
||||
B.w_class = max_weight_of_contents
|
||||
usr.put_in_hands(B)
|
||||
|
||||
/// Environmental bags
|
||||
/// Environmental bags. They protect against bad weather.
|
||||
|
||||
/obj/structure/closet/body_bag/environmental
|
||||
name = "environmental protection bag"
|
||||
@@ -161,7 +161,12 @@
|
||||
contents_pressure_protection = 0.8
|
||||
contents_thermal_insulation = 0.5
|
||||
foldedbag_path = /obj/item/bodybag/environmental/
|
||||
weather_protection = list(WEATHER_ACID, WEATHER_ASH, WEATHER_RAD, WEATHER_SNOW, WEATHER_VOID) // Does not protect against lava or the The Floor Is Lava spell.
|
||||
var/list/weather_protection = list(TRAIT_ASHSTORM_IMMUNE, TRAIT_RADSTORM_IMMUNE, TRAIT_SNOWSTORM_IMMUNE, TRAIT_VOIDSTORM_IMMUNE) // Does not protect against lava or the The Floor Is Lava spell.
|
||||
|
||||
/obj/structure/closet/body_bag/environmental/Initialize()
|
||||
. = ..()
|
||||
for(var/trait in weather_protection)
|
||||
ADD_TRAIT(src, trait, ROUNDSTART_TRAIT)
|
||||
|
||||
/obj/structure/closet/body_bag/environmental/nanotrasen
|
||||
name = "elite environmental protection bag"
|
||||
@@ -171,7 +176,7 @@
|
||||
contents_pressure_protection = 1
|
||||
contents_thermal_insulation = 1
|
||||
foldedbag_path = /obj/item/bodybag/environmental/nanotrasen/
|
||||
weather_protection = list(WEATHER_ALL)
|
||||
weather_protection = list(TRAIT_WEATHER_IMMUNE)
|
||||
|
||||
/// Securable enviro. bags
|
||||
|
||||
@@ -298,7 +303,7 @@
|
||||
contents_pressure_protection = 1
|
||||
contents_thermal_insulation = 1
|
||||
foldedbag_path = /obj/item/bodybag/environmental/prisoner/syndicate
|
||||
weather_protection = list(WEATHER_ALL)
|
||||
weather_protection = list(TRAIT_WEATHER_IMMUNE)
|
||||
breakout_time = 8 MINUTES
|
||||
sinch_time = 20 SECONDS
|
||||
// The contents of the gas to be distributed to an occupant once sinched down. Set in Initialize()
|
||||
|
||||
Reference in New Issue
Block a user