Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Biosuit Updates #5925

Open
wants to merge 23 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
8b6488b
Department suit updates
realforest2001 Mar 11, 2024
5f8e483
disease passing
realforest2001 Mar 11, 2024
27e2d48
map fixes
realforest2001 Mar 11, 2024
f3f4d6f
gas proofing
realforest2001 Mar 11, 2024
c9ee558
medical locker & bio hood
realforest2001 Mar 15, 2024
35b746d
Merge remote-tracking branch 'cmss13-devs/master' into forest/biosuits
realforest2001 Mar 15, 2024
802e540
icon conflict
realforest2001 Mar 15, 2024
bf9853d
closet icons
realforest2001 Mar 15, 2024
2f4be22
stop div 0
realforest2001 Mar 27, 2024
621c666
Apply suggestions from code review
realforest2001 Apr 3, 2024
7250a67
Merge remote-tracking branch 'cmss13-devs/master' into forest/biosuits
realforest2001 Apr 24, 2024
c1efbd3
Merge remote-tracking branch 'cmss13-devs/master' into forest/biosuits
realforest2001 Sep 2, 2024
7a92ff5
Merge branch 'master' into forest/biosuits
realforest2001 Sep 7, 2024
f1a51ae
removes dupe proc and permeability_coefficient
realforest2001 Sep 7, 2024
6b375ad
map reset
realforest2001 Sep 7, 2024
4ecf67f
I hate mapping conflicts
realforest2001 Sep 7, 2024
a0b05e4
WHY WON'T YOU WORK
realforest2001 Sep 7, 2024
300daff
GOOD BYE MAPS
realforest2001 Sep 7, 2024
3fc4a5d
MAYBE THIS WILL WORK?
realforest2001 Sep 7, 2024
2cfbef1
Locker changes
realforest2001 Sep 7, 2024
68d8da2
Merge remote-tracking branch 'cmss13-devs/master' into forest/biosuits
realforest2001 Sep 7, 2024
defe54c
jannies
realforest2001 Sep 7, 2024
875b8f7
Merge branch 'master' into forest/biosuits
realforest2001 Oct 12, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 0 additions & 2 deletions code/datums/agents/tools/conceal_gloves.dm
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,7 @@

icon_state = "black"
item_state = "bgloves"

siemens_coefficient = 0
permeability_coefficient = 0.05
flags_cold_protection = BODY_FLAG_HANDS
min_cold_protection_temperature = GLOVES_MIN_COLD_PROT
flags_heat_protection = BODY_FLAG_HANDS
Expand Down
12 changes: 8 additions & 4 deletions code/datums/disease.dm
Original file line number Diff line number Diff line change
Expand Up @@ -104,16 +104,20 @@ GLOBAL_LIST_INIT(diseases, typesof(/datum/disease) - /datum/disease)
how_spread = force_spread

if(how_spread == SPECIAL || how_spread == NON_CONTAGIOUS || how_spread == BLOOD)//does not spread
return
return FALSE

if(stage < contagious_period) //the disease is not contagious at this stage
return
return FALSE

if(!source)//no holder specified
if(affected_mob)//no mob affected holder
source = affected_mob
else //no source and no mob affected. Rogue disease. Break
return
return FALSE

var/mob/source_mob = source
if(istype(source_mob) && !source_mob.can_pass_disease())
return FALSE

var/check_range = airborne_range//defaults to airborne - range 2

Expand All @@ -122,7 +126,7 @@ GLOBAL_LIST_INIT(diseases, typesof(/datum/disease) - /datum/disease)

if(isturf(source.loc))
FOR_DOVIEW(var/mob/living/carbon/victim, check_range, source, HIDE_INVISIBLE_OBSERVER)
if(isturf(victim.loc))
if(isturf(victim.loc) && victim.can_pass_disease())
if(AStar(source.loc, victim.loc, /turf/proc/AdjacentTurfs, /turf/proc/Distance, check_range))
victim.contract_disease(src, 0, 1, force_spread)
FOR_DOVIEW_END
Expand Down
70 changes: 1 addition & 69 deletions code/datums/diseases/mob_procs.dm
Original file line number Diff line number Diff line change
Expand Up @@ -49,36 +49,10 @@
if(prob(15/virus.permeability_mod)) return //the power of immunity compels this disease! but then you forgot resistances
var/passed = 1

//chances to target this zone
var/head_ch
var/body_ch
var/hands_ch
var/feet_ch

if(spread_type == -5)
spread_type = virus.spread_type

switch(spread_type)
if(CONTACT_HANDS)
head_ch = 0
body_ch = 0
hands_ch = 100
feet_ch = 0
if(CONTACT_FEET)
head_ch = 0
body_ch = 0
hands_ch = 0
feet_ch = 100
else
head_ch = 100
body_ch = 100
hands_ch = 25
feet_ch = 25


var/target_zone = pick(head_ch;1,body_ch;2,hands_ch;3,feet_ch;4)//1 - head, 2 - body, 3 - hands, 4- feet

passed = check_disease_pass_clothes(target_zone)
passed = can_pass_disease()

if(passed)
AddDisease(virus)
Expand All @@ -102,45 +76,3 @@
. = ..()
med_hud_set_status()

//returns whether the mob's clothes stopped the disease from passing through
/mob/proc/check_disease_pass_clothes(target_zone)
return 1

/mob/living/carbon/human/check_disease_pass_clothes(target_zone)
var/obj/item/clothing/Cl
var/protection = 0
switch(target_zone)
if(1)
if(isobj(head) && !istype(head, /obj/item/paper))
Cl = head
protection += (Cl.permeability_coefficient*100)-100
if(isobj(wear_mask))
Cl = wear_mask
protection += (Cl.permeability_coefficient*100)-100
if(2)//arms and legs included
if(isobj(wear_suit))
Cl = wear_suit
protection += (Cl.permeability_coefficient*100)-100
if(isobj(WEAR_BODY))
Cl = WEAR_BODY
protection += (Cl.permeability_coefficient*100)-100
if(3)
if(isobj(wear_suit) && wear_suit.flags_armor_protection & BODY_FLAG_HANDS)
Cl = wear_suit
protection += (Cl.permeability_coefficient*100)-100

if(isobj(gloves))
Cl = gloves
protection += (Cl.permeability_coefficient*100)-100
if(4)
if(isobj(wear_suit) && wear_suit.flags_armor_protection & BODY_FLAG_FEET)
Cl = wear_suit
protection += (Cl.permeability_coefficient*100)-100

if(isobj(shoes))
Cl = shoes
protection += (Cl.permeability_coefficient*100)-100
else
to_chat(src, "Something bad happened with disease target zone code, tell a dev or admin ")
return prob(clamp(protection, 5, 90))

5 changes: 0 additions & 5 deletions code/game/objects/items.dm
Original file line number Diff line number Diff line change
Expand Up @@ -90,13 +90,8 @@
var/list/actions
/// list of paths of action datums to give to the item on New().
var/list/actions_types

//var/heat_transfer_coefficient = 1 //0 prevents all transfers, 1 is invisible

/// for leaking gas from turf to mask and vice-versa (for masks right now, but at some point, i'd like to include space helmets)
var/gas_transfer_coefficient = 1
/// for chemicals/diseases
var/permeability_coefficient = 1
/// for electrical admittance/conductance (electrocution checks and shit)
var/siemens_coefficient = 1
/// How much clothing is slowing you down. Negative values speeds you up
Expand Down
42 changes: 12 additions & 30 deletions code/game/objects/structures/crates_lockers/closets/l3closet.dm
Original file line number Diff line number Diff line change
@@ -1,27 +1,25 @@
/obj/structure/closet/l3closet
name = "level-3 biohazard suit closet"
desc = "It's a storage unit for level-3 biohazard gear."
icon_state = "bio"
icon_closed = "bio"
icon_opened = "bioopen"
icon_state = "bio_general"
icon_closed = "bio_general"
icon_opened = "bio_generalopen"

/obj/structure/closet/l3closet/Initialize()
. = ..()
new /obj/item/clothing/suit/bio_suit/general( src )
new /obj/item/clothing/head/bio_hood/general( src )

new /obj/item/clothing/suit/bio_suit( src )
new /obj/item/clothing/head/bio_hood( src )

/obj/structure/closet/l3closet/general
icon_state = "bio_general"
icon_closed = "bio_general"
icon_opened = "bio_generalopen"
/obj/structure/closet/l3closet/medical
icon_state = "bio_medical"
icon_closed = "bio_medical"
icon_opened = "bio_medicalopen"

/obj/structure/closet/l3closet/general/Initialize()
/obj/structure/closet/l3closet/medical/Initialize()
. = ..()
contents = list()
new /obj/item/clothing/suit/bio_suit/general( src )
new /obj/item/clothing/head/bio_hood/general( src )

new /obj/item/clothing/suit/bio_suit/medical( src )
new /obj/item/clothing/head/bio_hood/medical( src )

/obj/structure/closet/l3closet/virology
icon_state = "bio_virology"
Expand All @@ -33,9 +31,6 @@
contents = list()
new /obj/item/clothing/suit/bio_suit/virology( src )
new /obj/item/clothing/head/bio_hood/virology( src )
new /obj/item/clothing/mask/breath(src)
new /obj/item/tank/oxygen(src)


/obj/structure/closet/l3closet/security
icon_state = "bio_security"
Expand All @@ -48,19 +43,6 @@
new /obj/item/clothing/suit/bio_suit/security( src )
new /obj/item/clothing/head/bio_hood/security( src )


/obj/structure/closet/l3closet/janitor
icon_state = "bio_janitor"
icon_closed = "bio_janitor"
icon_opened = "bio_janitoropen"

/obj/structure/closet/l3closet/janitor/Initialize()
. = ..()
contents = list()
new /obj/item/clothing/suit/bio_suit/janitor( src )
new /obj/item/clothing/head/bio_hood/janitor( src )


/obj/structure/closet/l3closet/scientist
icon_state = "bio_scientist"
icon_closed = "bio_scientist"
Expand Down
2 changes: 1 addition & 1 deletion code/modules/clothing/clothing.dm
Original file line number Diff line number Diff line change
Expand Up @@ -333,7 +333,7 @@
siemens_coefficient = 0.9
flags_armor_protection = BODY_FLAG_FEET
flags_equip_slot = SLOT_FEET
permeability_coefficient = 0.50

slowdown = SHOES_SLOWDOWN
blood_overlay_type = "feet"
/// The currently inserted item.
Expand Down
3 changes: 1 addition & 2 deletions code/modules/clothing/gloves/color.dm
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
icon_state = "insulated"
item_state = "insulated"
siemens_coefficient = 0
permeability_coefficient = 0.05

flags_cold_protection = BODY_FLAG_HANDS
min_cold_protection_temperature = GLOVES_MIN_COLD_PROT
flags_heat_protection = BODY_FLAG_HANDS
Expand All @@ -16,7 +16,6 @@
icon_state = "insulated"
item_state = "insulated"
siemens_coefficient = 1 //Set to a default of 1, gets overridden in New()
permeability_coefficient = 0.05

/obj/item/clothing/gloves/fyellow/New()
siemens_coefficient = pick(0,0.5,0.5,0.5,0.5,0.75,1.5)
Expand Down
4 changes: 2 additions & 2 deletions code/modules/clothing/gloves/marine_gloves.dm
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
icon_state = "black"
item_state = "black"
siemens_coefficient = 0.6
permeability_coefficient = 0.05

flags_cold_protection = BODY_FLAG_HANDS
flags_heat_protection = BODY_FLAG_HANDS
min_cold_protection_temperature = GLOVES_MIN_COLD_PROT
Expand Down Expand Up @@ -84,7 +84,7 @@
icon_state = "yellow"
item_state = "ygloves"
siemens_coefficient = 0
permeability_coefficient = 0.01

adopts_squad_color = FALSE

/obj/item/clothing/gloves/marine/techofficer/commander
Expand Down
7 changes: 3 additions & 4 deletions code/modules/clothing/gloves/miscellaneous.dm
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
icon_state = "black"
item_state = "swat_gl"
siemens_coefficient = 0.6
permeability_coefficient = 0.05


flags_cold_protection = BODY_FLAG_HANDS
min_cold_protection_temperature = GLOVES_MIN_COLD_PROT
Expand All @@ -34,7 +34,7 @@
icon_state = "black"
item_state = "swat_gl"
siemens_coefficient = 0
permeability_coefficient = 0.05

flags_cold_protection = BODY_FLAG_HANDS
min_cold_protection_temperature = GLOVES_MIN_COLD_PROT
flags_heat_protection = BODY_FLAG_HANDS
Expand All @@ -46,14 +46,13 @@
icon_state = "latex"
item_state = "lgloves"
siemens_coefficient = 0.30
permeability_coefficient = 0.35
armor_bio = CLOTHING_ARMOR_LOW

/obj/item/clothing/gloves/botanic_leather
desc = "These leather gloves protect against thorns, barbs, prickles, spikes and other harmful objects of floral origin."
name = "botanist's leather gloves"
icon_state = "leather"
item_state = "ggloves"
permeability_coefficient = 0.9
siemens_coefficient = 0.9


Expand Down
2 changes: 1 addition & 1 deletion code/modules/clothing/head/hardhat.dm
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,7 @@
hardhat_color = "red"
name = "firefighter helmet"
gas_transfer_coefficient = 0.01
permeability_coefficient = 0.01

flags_inventory = NOPRESSUREDMAGE|BLOCKSHARPOBJ|COVERMOUTH|ALLOWINTERNALS|COVEREYES|BLOCKGASEFFECT|ALLOWREBREATH|ALLOWCPR
flags_heat_protection = BODY_FLAG_HEAD|BODY_FLAG_FACE|BODY_FLAG_EYES
flags_cold_protection = BODY_FLAG_HEAD|BODY_FLAG_FACE|BODY_FLAG_EYES
Expand Down
2 changes: 1 addition & 1 deletion code/modules/clothing/head/helmet.dm
Original file line number Diff line number Diff line change
Expand Up @@ -1462,7 +1462,7 @@ GLOBAL_LIST_INIT(allowed_helmet_items, list(
armor_rad = CLOTHING_ARMOR_ULTRAHIGHPLUS
force = 0 //"The M3 MOPP mask would be a normal weapon if you were to hit someone with it."
throwforce = 0
flags_inventory = BLOCKSHARPOBJ
flags_inventory = BLOCKSHARPOBJ|BLOCKGASEFFECT
flags_marine_helmet = NO_FLAGS
flags_atom = NO_SNOW_TYPE|NO_NAME_OVERRIDE
flags_inv_hide = HIDEEARS|HIDEALLHAIR
Expand Down
1 change: 0 additions & 1 deletion code/modules/clothing/head/misc.dm
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,6 @@
name = "plague doctor's hat"
desc = "These were once used by Plague doctors. They're pretty much useless."
icon_state = "plaguedoctor"
permeability_coefficient = 0.01
siemens_coefficient = 0.9
flags_armor_protection = 0

Expand Down
5 changes: 2 additions & 3 deletions code/modules/clothing/masks/breath.dm
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@
flags_armor_protection = 0
w_class = SIZE_SMALL
gas_transfer_coefficient = 0.10
permeability_coefficient = 0.50

var/hanging = 0

Expand Down Expand Up @@ -37,7 +36,7 @@
name = "medical mask"
icon_state = "medical"
item_state = "medical"
permeability_coefficient = 0.01




Expand Down Expand Up @@ -235,4 +234,4 @@
flags_armor_protection = 0
w_class = SIZE_SMALL
gas_transfer_coefficient = 0.10
permeability_coefficient = 0.50

1 change: 0 additions & 1 deletion code/modules/clothing/masks/gasmask.dm
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@
w_class = SIZE_SMALL
item_state = "gas_alt"
gas_transfer_coefficient = 0.01
permeability_coefficient = 0.9
armor_melee = CLOTHING_ARMOR_NONE
armor_bullet = CLOTHING_ARMOR_NONE
armor_laser = CLOTHING_ARMOR_NONE
Expand Down
3 changes: 1 addition & 2 deletions code/modules/clothing/masks/miscellaneous.dm
Original file line number Diff line number Diff line change
Expand Up @@ -17,13 +17,12 @@
flags_inventory = COVERMOUTH
flags_armor_protection = 0
gas_transfer_coefficient = 0.90
permeability_coefficient = 0.3
armor_melee = CLOTHING_ARMOR_NONE
armor_bullet = CLOTHING_ARMOR_NONE
armor_laser = CLOTHING_ARMOR_NONE
armor_energy = CLOTHING_ARMOR_NONE
armor_bomb = CLOTHING_ARMOR_NONE
armor_bio = CLOTHING_ARMOR_NONE
armor_bio = CLOTHING_ARMOR_LOW
armor_rad = CLOTHING_ARMOR_NONE
armor_internaldamage = CLOTHING_ARMOR_NONE

Expand Down
2 changes: 1 addition & 1 deletion code/modules/clothing/shoes/colour.dm
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@
/obj/item/clothing/shoes/white
name = "white shoes"
icon_state = "white"
permeability_coefficient = 0.01


/obj/item/clothing/shoes/leather
name = "leather shoes"
Expand Down
2 changes: 1 addition & 1 deletion code/modules/clothing/shoes/marine_shoes.dm
Original file line number Diff line number Diff line change
Expand Up @@ -144,7 +144,7 @@
/obj/item/clothing/shoes/veteran/pmc/commando
name = "\improper PMC commando boots"
desc = "A pair of heavily armored, acid-resistant boots."
permeability_coefficient = 0.01

armor_bio = CLOTHING_ARMOR_HIGH
siemens_coefficient = 0.2
unacidable = TRUE
Expand Down
Loading
Loading