Merge pull request #9367 from Poojawa/totally-radical

Totally RADical. Rad levels for Medhud, radiation flags added to storage, suits.
This commit is contained in:
kevinz000
2019-10-01 00:12:32 -07:00
committed by GitHub
17 changed files with 74 additions and 15 deletions

View File

@@ -23,8 +23,9 @@
#define AI_DETECT_HUD "19" #define AI_DETECT_HUD "19"
#define NANITE_HUD "20" #define NANITE_HUD "20"
#define DIAG_NANITE_FULL_HUD "21" #define DIAG_NANITE_FULL_HUD "21"
#define RAD_HUD "22" //radation alerts for medical huds
//for antag huds. these are used at the /mob level //for antag huds. these are used at the /mob level
#define ANTAG_HUD "22" #define ANTAG_HUD "23"
//by default everything in the hud_list of an atom is an image //by default everything in the hud_list of an atom is an image
//a value in hud_list with one of these will change that behavior //a value in hud_list with one of these will change that behavior

View File

@@ -18,7 +18,7 @@
/datum/atom_hud/data /datum/atom_hud/data
/datum/atom_hud/data/human/medical /datum/atom_hud/data/human/medical
hud_icons = list(STATUS_HUD, HEALTH_HUD, NANITE_HUD) hud_icons = list(STATUS_HUD, HEALTH_HUD, NANITE_HUD, RAD_HUD)
/datum/atom_hud/data/human/medical/basic /datum/atom_hud/data/human/medical/basic
@@ -162,6 +162,7 @@
holder.icon_state = "hud[RoundHealth(src)]" holder.icon_state = "hud[RoundHealth(src)]"
var/icon/I = icon(icon, icon_state, dir) var/icon/I = icon(icon, icon_state, dir)
holder.pixel_y = I.Height() - world.icon_size holder.pixel_y = I.Height() - world.icon_size
med_hud_set_radstatus()
//for carbon suit sensors //for carbon suit sensors
/mob/living/carbon/med_hud_set_health() /mob/living/carbon/med_hud_set_health()
@@ -211,6 +212,22 @@
holder.icon_state = "hudhealthy" holder.icon_state = "hudhealthy"
/mob/living/proc/med_hud_set_radstatus()
var/image/radholder = hud_list[RAD_HUD]
var/icon/I = icon(icon, icon_state, dir)
radholder.pixel_y = I.Height() - world.icon_size
var/mob/living/M = src
var/rads = M.radiation
switch(rads)
if(-INFINITY to RAD_MOB_SAFE)
radholder.icon_state = "hudradsafe"
if((RAD_MOB_SAFE+1) to RAD_MOB_MUTATE)
radholder.icon_state = "hudraddanger"
if((RAD_MOB_MUTATE+1) to RAD_MOB_VOMIT)
radholder.icon_state = "hudradlethal"
if((RAD_MOB_VOMIT+1) to INFINITY)
radholder.icon_state = "hudradnuke"
/*********************************************** /***********************************************
Security HUDs! Basic mode shows only the job. Security HUDs! Basic mode shows only the job.
************************************************/ ************************************************/

View File

@@ -210,13 +210,13 @@
add_fingerprint(user) add_fingerprint(user)
/obj/machinery/suit_storage_unit/proc/cook() /obj/machinery/suit_storage_unit/proc/cook()
var/mob/living/mob_occupant = occupant
if(uv_cycles) if(uv_cycles)
uv_cycles-- uv_cycles--
uv = TRUE uv = TRUE
locked = TRUE locked = TRUE
update_icon() update_icon()
if(occupant) if(occupant)
var/mob/living/mob_occupant = occupant
if(uv_super) if(uv_super)
mob_occupant.adjustFireLoss(rand(20, 36)) mob_occupant.adjustFireLoss(rand(20, 36))
else else
@@ -246,9 +246,25 @@
else else
visible_message("<span class='warning'>[src]'s door slides open, barraging you with the nauseating smell of charred flesh.</span>") visible_message("<span class='warning'>[src]'s door slides open, barraging you with the nauseating smell of charred flesh.</span>")
playsound(src, 'sound/machines/airlockclose.ogg', 25, 1) playsound(src, 'sound/machines/airlockclose.ogg', 25, 1)
for(var/obj/item/I in src) //Scorches away blood and forensic evidence, although the SSU itself is unaffected var/list/things_to_clear = list() //Done this way since using GetAllContents on the SSU itself would include circuitry and such.
SEND_SIGNAL(I, COMSIG_COMPONENT_CLEAN_ACT, CLEAN_STRONG) if(suit)
var/datum/component/radioactive/contamination = I.GetComponent(/datum/component/radioactive) things_to_clear += suit
things_to_clear += suit.GetAllContents()
if(helmet)
things_to_clear += helmet
things_to_clear += helmet.GetAllContents()
if(mask)
things_to_clear += mask
things_to_clear += mask.GetAllContents()
if(storage)
things_to_clear += storage
things_to_clear += storage.GetAllContents()
if(occupant)
things_to_clear += occupant
things_to_clear += occupant.GetAllContents()
for(var/atom/movable/AM in things_to_clear) //Scorches away blood and forensic evidence, although the SSU itself is unaffected
SEND_SIGNAL(AM, COMSIG_COMPONENT_CLEAN_ACT, CLEAN_STRONG)
var/datum/component/radioactive/contamination = AM.GetComponent(/datum/component/radioactive)
if(contamination) if(contamination)
qdel(contamination) qdel(contamination)
open_machine(FALSE) open_machine(FALSE)

View File

@@ -158,7 +158,7 @@
if(!M.radiation) if(!M.radiation)
to_chat(user, "<span class='notice'>[icon2html(src, user)] Radiation levels within normal boundaries.</span>") to_chat(user, "<span class='notice'>[icon2html(src, user)] Radiation levels within normal boundaries.</span>")
else else
to_chat(user, "<span class='boldannounce'>[icon2html(src, user)] Subject is irradiated. Radiation levels: [M.radiation].</span>") to_chat(user, "<span class='boldannounce'>[icon2html(src, user)] Subject is irradiated. Radiation levels: [M.radiation] rad.</span>")
if(rad_strength) if(rad_strength)
to_chat(user, "<span class='boldannounce'>[icon2html(src, user)] Target contains radioactive contamination. Radioactive strength: [rad_strength]</span>") to_chat(user, "<span class='boldannounce'>[icon2html(src, user)] Target contains radioactive contamination. Radioactive strength: [rad_strength]</span>")

View File

@@ -215,8 +215,7 @@ SLIME SCANNER
msg += "\t<span class='info'>Brain Activity Level: [(200 - M.getBrainLoss())/2]%.</span>\n" msg += "\t<span class='info'>Brain Activity Level: [(200 - M.getBrainLoss())/2]%.</span>\n"
if(M.radiation) if(M.radiation)
msg += "\t<span class='alert'>Subject is irradiated.</span>\n" msg += "\t<span class='alert'>Subject is irradiated.</span>\n"
if(advanced) msg += "\t<span class='info'>Radiation Level: [M.radiation] rad</span>\n"
msg += "\t<span class='info'>Radiation Level: [M.radiation]%.</span>\n"
if(advanced && M.hallucinating()) if(advanced && M.hallucinating())
msg += "\t<span class='info'>Subject is hallucinating.</span>\n" msg += "\t<span class='info'>Subject is hallucinating.</span>\n"

View File

@@ -46,6 +46,7 @@
item_flags = NO_MAT_REDEMPTION item_flags = NO_MAT_REDEMPTION
armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 60, "acid" = 50) armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 60, "acid" = 50)
component_type = /datum/component/storage/concrete/bluespace/bag_of_holding component_type = /datum/component/storage/concrete/bluespace/bag_of_holding
rad_flags = RAD_PROTECT_CONTENTS | RAD_NO_CONTAMINATE
/obj/item/storage/backpack/holding/satchel /obj/item/storage/backpack/holding/satchel
name = "satchel of holding" name = "satchel of holding"
@@ -53,6 +54,7 @@
icon_state = "holdingsat" icon_state = "holdingsat"
item_state = "holdingsat" item_state = "holdingsat"
species_exception = list(/datum/species/angel) species_exception = list(/datum/species/angel)
rad_flags = RAD_PROTECT_CONTENTS | RAD_NO_CONTAMINATE
/obj/item/storage/backpack/holding/ComponentInitialize() /obj/item/storage/backpack/holding/ComponentInitialize()
. = ..() . = ..()
@@ -81,6 +83,7 @@
icon_state = "giftbag0" icon_state = "giftbag0"
item_state = "giftbag" item_state = "giftbag"
w_class = WEIGHT_CLASS_BULKY w_class = WEIGHT_CLASS_BULKY
rad_flags = RAD_PROTECT_CONTENTS | RAD_NO_CONTAMINATE
/obj/item/storage/backpack/santabag/ComponentInitialize() /obj/item/storage/backpack/santabag/ComponentInitialize()
. = ..() . = ..()
@@ -133,6 +136,8 @@
desc = "It's a special backpack made exclusively for Nanotrasen officers." desc = "It's a special backpack made exclusively for Nanotrasen officers."
icon_state = "captainpack" icon_state = "captainpack"
item_state = "captainpack" item_state = "captainpack"
resistance_flags = FIRE_PROOF
rad_flags = RAD_PROTECT_CONTENTS | RAD_NO_CONTAMINATE
/obj/item/storage/backpack/industrial /obj/item/storage/backpack/industrial
name = "industrial backpack" name = "industrial backpack"
@@ -140,6 +145,7 @@
icon_state = "engiepack" icon_state = "engiepack"
item_state = "engiepack" item_state = "engiepack"
resistance_flags = FIRE_PROOF resistance_flags = FIRE_PROOF
rad_flags = RAD_PROTECT_CONTENTS | RAD_NO_CONTAMINATE
/obj/item/storage/backpack/botany /obj/item/storage/backpack/botany
name = "botany backpack" name = "botany backpack"
@@ -194,6 +200,8 @@
desc = "A tough satchel with extra pockets." desc = "A tough satchel with extra pockets."
icon_state = "satchel-eng" icon_state = "satchel-eng"
item_state = "engiepack" item_state = "engiepack"
resistance_flags = FIRE_PROOF
rad_flags = RAD_PROTECT_CONTENTS | RAD_NO_CONTAMINATE
/obj/item/storage/backpack/satchel/med /obj/item/storage/backpack/satchel/med
name = "medical satchel" name = "medical satchel"
@@ -261,6 +269,8 @@
desc = "An exclusive satchel for Nanotrasen officers." desc = "An exclusive satchel for Nanotrasen officers."
icon_state = "satchel-cap" icon_state = "satchel-cap"
item_state = "captainpack" item_state = "captainpack"
resistance_flags = FIRE_PROOF
rad_flags = RAD_PROTECT_CONTENTS | RAD_NO_CONTAMINATE
/obj/item/storage/backpack/satchel/flat /obj/item/storage/backpack/satchel/flat
name = "smuggler's satchel" name = "smuggler's satchel"
@@ -385,6 +395,8 @@
desc = "A large duffel bag for holding extra tools and supplies." desc = "A large duffel bag for holding extra tools and supplies."
icon_state = "duffel-eng" icon_state = "duffel-eng"
item_state = "duffel-eng" item_state = "duffel-eng"
resistance_flags = FIRE_PROOF
rad_flags = RAD_PROTECT_CONTENTS | RAD_NO_CONTAMINATE
/obj/item/storage/backpack/duffelbag/durathread /obj/item/storage/backpack/duffelbag/durathread
name = "durathread duffel bag" name = "durathread duffel bag"
@@ -400,6 +412,7 @@
icon_state = "duffel-drone" icon_state = "duffel-drone"
item_state = "duffel-drone" item_state = "duffel-drone"
resistance_flags = FIRE_PROOF resistance_flags = FIRE_PROOF
rad_flags = RAD_PROTECT_CONTENTS | RAD_NO_CONTAMINATE
/obj/item/storage/backpack/duffelbag/drone/PopulateContents() /obj/item/storage/backpack/duffelbag/drone/PopulateContents()
new /obj/item/screwdriver(src) new /obj/item/screwdriver(src)
@@ -427,6 +440,7 @@
icon_state = "duffel-syndie" icon_state = "duffel-syndie"
item_state = "duffel-syndieammo" item_state = "duffel-syndieammo"
slowdown = 0 slowdown = 0
rad_flags = RAD_PROTECT_CONTENTS | RAD_NO_CONTAMINATE
/obj/item/storage/backpack/duffelbag/syndie/ComponentInitialize() /obj/item/storage/backpack/duffelbag/syndie/ComponentInitialize()
. = ..() . = ..()

View File

@@ -81,6 +81,7 @@
desc = "The latest and greatest in custodial convenience, a trashbag that is capable of holding vast quantities of garbage." desc = "The latest and greatest in custodial convenience, a trashbag that is capable of holding vast quantities of garbage."
icon_state = "bluetrashbag" icon_state = "bluetrashbag"
item_flags = NO_MAT_REDEMPTION item_flags = NO_MAT_REDEMPTION
rad_flags = RAD_PROTECT_CONTENTS | RAD_NO_CONTAMINATE
/obj/item/storage/bag/trash/bluespace/ComponentInitialize() /obj/item/storage/bag/trash/bluespace/ComponentInitialize()
. = ..() . = ..()
@@ -105,6 +106,7 @@
component_type = /datum/component/storage/concrete/stack component_type = /datum/component/storage/concrete/stack
var/spam_protection = FALSE //If this is TRUE, the holder won't receive any messages when they fail to pick up ore through crossing it var/spam_protection = FALSE //If this is TRUE, the holder won't receive any messages when they fail to pick up ore through crossing it
var/datum/component/mobhook var/datum/component/mobhook
rad_flags = RAD_PROTECT_CONTENTS | RAD_NO_CONTAMINATE
/obj/item/storage/bag/ore/ComponentInitialize() /obj/item/storage/bag/ore/ComponentInitialize()
. = ..() . = ..()
@@ -391,6 +393,7 @@
icon = 'icons/obj/chemical.dmi' icon = 'icons/obj/chemical.dmi'
icon_state = "bspace_biobag" icon_state = "bspace_biobag"
desc = "A bag for the safe transportation and disposal of biowaste and other biological materials." desc = "A bag for the safe transportation and disposal of biowaste and other biological materials."
rad_flags = RAD_PROTECT_CONTENTS | RAD_NO_CONTAMINATE
/obj/item/storage/bag/bio/holding/ComponentInitialize() /obj/item/storage/bag/bio/holding/ComponentInitialize()
. = ..() . = ..()

View File

@@ -40,6 +40,7 @@
icon_state = "utilitybelt" icon_state = "utilitybelt"
item_state = "utility" item_state = "utility"
content_overlays = TRUE content_overlays = TRUE
rad_flags = RAD_PROTECT_CONTENTS | RAD_NO_CONTAMINATE //because this is easier than trying to have showers wash all contents.
/obj/item/storage/belt/utility/ComponentInitialize() /obj/item/storage/belt/utility/ComponentInitialize()
. = ..() . = ..()
@@ -344,6 +345,7 @@
desc = "A set of tactical webbing worn by Syndicate boarding parties." desc = "A set of tactical webbing worn by Syndicate boarding parties."
icon_state = "militarywebbing" icon_state = "militarywebbing"
item_state = "militarywebbing" item_state = "militarywebbing"
rad_flags = RAD_PROTECT_CONTENTS | RAD_NO_CONTAMINATE
/obj/item/storage/belt/military/ComponentInitialize() /obj/item/storage/belt/military/ComponentInitialize()
. = ..() . = ..()
@@ -530,6 +532,7 @@
desc = "A belt designed to hold various rods of power. A veritable fanny pack of exotic magic." desc = "A belt designed to hold various rods of power. A veritable fanny pack of exotic magic."
icon_state = "soulstonebelt" icon_state = "soulstonebelt"
item_state = "soulstonebelt" item_state = "soulstonebelt"
rad_flags = RAD_PROTECT_CONTENTS | RAD_NO_CONTAMINATE
/obj/item/storage/belt/wands/ComponentInitialize() /obj/item/storage/belt/wands/ComponentInitialize()
. = ..() . = ..()
@@ -599,7 +602,7 @@
icon_state = "bandolier-durathread" icon_state = "bandolier-durathread"
item_state = "bandolier-durathread" item_state = "bandolier-durathread"
resistance_flags = FIRE_PROOF resistance_flags = FIRE_PROOF
/obj/item/storage/belt/bandolier/durathread/ComponentInitialize() /obj/item/storage/belt/bandolier/durathread/ComponentInitialize()
. = ..() . = ..()
GET_COMPONENT(STR, /datum/component/storage) GET_COMPONENT(STR, /datum/component/storage)

View File

@@ -33,6 +33,7 @@
resistance_flags = FLAMMABLE resistance_flags = FLAMMABLE
var/foldable = /obj/item/stack/sheet/cardboard var/foldable = /obj/item/stack/sheet/cardboard
var/illustration = "writing" var/illustration = "writing"
rad_flags = RAD_PROTECT_CONTENTS | RAD_NO_CONTAMINATE //exploits ahoy
/obj/item/storage/box/Initialize(mapload) /obj/item/storage/box/Initialize(mapload)
. = ..() . = ..()

View File

@@ -19,6 +19,7 @@ GLOBAL_LIST_EMPTY(rubber_toolbox_icons)
var/latches = "single_latch" var/latches = "single_latch"
var/has_latches = TRUE var/has_latches = TRUE
var/can_rubberify = TRUE var/can_rubberify = TRUE
rad_flags = RAD_PROTECT_CONTENTS | RAD_NO_CONTAMINATE //very protecc too
/obj/item/storage/toolbox/Initialize(mapload) /obj/item/storage/toolbox/Initialize(mapload)
. = ..() . = ..()

View File

@@ -22,6 +22,7 @@
resistance_flags = NONE resistance_flags = NONE
dog_fashion = null dog_fashion = null
mutantrace_variation = MUTANTRACE_VARIATION mutantrace_variation = MUTANTRACE_VARIATION
rad_flags = RAD_PROTECT_CONTENTS | RAD_NO_CONTAMINATE
/obj/item/clothing/suit/space /obj/item/clothing/suit/space
name = "space suit" name = "space suit"
@@ -44,4 +45,5 @@
strip_delay = 80 strip_delay = 80
equip_delay_other = 80 equip_delay_other = 80
resistance_flags = NONE resistance_flags = NONE
rad_flags = RAD_PROTECT_CONTENTS | RAD_NO_CONTAMINATE //rated for cosmic radation :honk:
tauric = TRUE //Citadel Add for tauric hardsuits tauric = TRUE //Citadel Add for tauric hardsuits

View File

@@ -130,7 +130,7 @@
equip_delay_other = 60 equip_delay_other = 60
flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH
resistance_flags = NONE resistance_flags = NONE
rad_flags = RAD_PROTECT_CONTENTS rad_flags = RAD_PROTECT_CONTENTS | RAD_NO_CONTAMINATE
mutantrace_variation = MUTANTRACE_VARIATION mutantrace_variation = MUTANTRACE_VARIATION
/obj/item/clothing/suit/radiation /obj/item/clothing/suit/radiation
@@ -150,5 +150,5 @@
equip_delay_other = 60 equip_delay_other = 60
flags_inv = HIDEJUMPSUIT|HIDETAUR flags_inv = HIDEJUMPSUIT|HIDETAUR
resistance_flags = NONE resistance_flags = NONE
rad_flags = RAD_PROTECT_CONTENTS rad_flags = RAD_PROTECT_CONTENTS | RAD_NO_CONTAMINATE
tauric = TRUE //Citadel Add for tauric hardsuits tauric = TRUE //Citadel Add for tauric hardsuits

View File

@@ -2,7 +2,7 @@
gender = MALE gender = MALE
pressure_resistance = 15 pressure_resistance = 15
possible_a_intents = list(INTENT_HELP, INTENT_HARM) possible_a_intents = list(INTENT_HELP, INTENT_HARM)
hud_possible = list(HEALTH_HUD,STATUS_HUD,ANTAG_HUD,GLAND_HUD,NANITE_HUD,DIAG_NANITE_FULL_HUD) hud_possible = list(HEALTH_HUD,STATUS_HUD,ANTAG_HUD,GLAND_HUD,NANITE_HUD,DIAG_NANITE_FULL_HUD,RAD_HUD)
has_limbs = 1 has_limbs = 1
held_items = list(null, null) held_items = list(null, null)
var/list/stomach_contents = list() var/list/stomach_contents = list()

View File

@@ -1,5 +1,5 @@
/mob/living/carbon/human /mob/living/carbon/human
hud_possible = list(HEALTH_HUD,STATUS_HUD,ID_HUD,WANTED_HUD,IMPLOYAL_HUD,IMPCHEM_HUD,IMPTRACK_HUD, NANITE_HUD, DIAG_NANITE_FULL_HUD,ANTAG_HUD,GLAND_HUD,SENTIENT_DISEASE_HUD) hud_possible = list(HEALTH_HUD,STATUS_HUD,ID_HUD,WANTED_HUD,IMPLOYAL_HUD,IMPCHEM_HUD,IMPTRACK_HUD, NANITE_HUD, DIAG_NANITE_FULL_HUD,ANTAG_HUD,GLAND_HUD,SENTIENT_DISEASE_HUD,RAD_HUD)
hud_type = /datum/hud/human hud_type = /datum/hud/human
possible_a_intents = list(INTENT_HELP, INTENT_DISARM, INTENT_GRAB, INTENT_HARM) possible_a_intents = list(INTENT_HELP, INTENT_DISARM, INTENT_GRAB, INTENT_HARM)
pressure_resistance = 25 pressure_resistance = 25

View File

@@ -2,7 +2,7 @@
see_invisible = SEE_INVISIBLE_LIVING see_invisible = SEE_INVISIBLE_LIVING
sight = 0 sight = 0
see_in_dark = 2 see_in_dark = 2
hud_possible = list(HEALTH_HUD,STATUS_HUD,ANTAG_HUD,NANITE_HUD,DIAG_NANITE_FULL_HUD) hud_possible = list(HEALTH_HUD,STATUS_HUD,ANTAG_HUD,NANITE_HUD,DIAG_NANITE_FULL_HUD,RAD_HUD)
pressure_resistance = 10 pressure_resistance = 10
var/resize = 1 //Badminnery resize var/resize = 1 //Badminnery resize

View File

@@ -13,6 +13,7 @@ If you create T5+ please take a pass at gene_modder.dm [L40]. Max_values MUST fi
var/works_from_distance = FALSE var/works_from_distance = FALSE
var/pshoom_or_beepboopblorpzingshadashwoosh = 'sound/items/rped.ogg' var/pshoom_or_beepboopblorpzingshadashwoosh = 'sound/items/rped.ogg'
var/alt_sound = null var/alt_sound = null
rad_flags = RAD_PROTECT_CONTENTS | RAD_NO_CONTAMINATE //cutting down on exploits
/obj/item/storage/part_replacer/pre_attack(obj/machinery/T, mob/living/user, params) /obj/item/storage/part_replacer/pre_attack(obj/machinery/T, mob/living/user, params)
if(!istype(T) || !T.component_parts) if(!istype(T) || !T.component_parts)
@@ -67,6 +68,7 @@ If you create T5+ please take a pass at gene_modder.dm [L40]. Max_values MUST fi
icon = 'icons/obj/stock_parts.dmi' icon = 'icons/obj/stock_parts.dmi'
w_class = WEIGHT_CLASS_SMALL w_class = WEIGHT_CLASS_SMALL
var/rating = 1 var/rating = 1
rad_flags = RAD_NO_CONTAMINATE
/obj/item/stock_parts/Initialize() /obj/item/stock_parts/Initialize()
. = ..() . = ..()

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 16 KiB