From 9c2f2e429c3e6d9d81b8740530a6507965db8e15 Mon Sep 17 00:00:00 2001
From: Reo Lozzot <84661000+ReoDaProtovali@users.noreply.github.com>
Date: Tue, 16 Apr 2024 13:47:55 -0500
Subject: [PATCH] Portgus (#15925)
Huge PR on codebase
---
.../clothing/masks/tesh_synth_facemask.dm | 73 ++++++++++++++++++
icons/mob/species/teshari/synth_facemask.dmi | Bin 0 -> 671 bytes
2 files changed, 73 insertions(+)
create mode 100644 code/modules/clothing/masks/tesh_synth_facemask.dm
create mode 100644 icons/mob/species/teshari/synth_facemask.dmi
diff --git a/code/modules/clothing/masks/tesh_synth_facemask.dm b/code/modules/clothing/masks/tesh_synth_facemask.dm
new file mode 100644
index 00000000000..7d8b1b63401
--- /dev/null
+++ b/code/modules/clothing/masks/tesh_synth_facemask.dm
@@ -0,0 +1,73 @@
+//TESHARI FACE MASK //Defning all the procs in one go
+/obj/item/clothing/mask/synthfacemask
+ name = "Synth Face"
+ desc = "A round dark muzzle made of LEDs."
+ flags = PHORONGUARD //Since it cant easily be removed...
+ item_flags = AIRTIGHT | FLEXIBLEMATERIAL | BLOCK_GAS_SMOKE_EFFECT //This should make it properly work as a mask... and allow you to eat stuff through it!
+ body_parts_covered = FACE|EYES
+ icon = 'icons/mob/species/teshari/synth_facemask.dmi'
+ icon_override = 'icons/mob/species/teshari/synth_facemask.dmi'
+ icon_state = "synth_facemask"
+ origin_tech = list(TECH_ILLEGAL = 1)
+ var/lstat
+ var/visor_state = "Neutral" //Separating this from lstat so that it could potentially be used for an override system or something
+ var/mob/living/carbon/maskmaster
+
+/obj/item/clothing/mask/synthfacemask/equipped()
+ ..()
+ var/mob/living/carbon/human/H = loc
+ if(istype(H) && H.wear_mask == src)
+ canremove = 0
+ maskmaster = H
+ START_PROCESSING(SSprocessing, src)
+
+/obj/item/clothing/mask/synthfacemask/dropped()
+ canremove = 1
+ maskmaster = null
+ STOP_PROCESSING(SSprocessing, src)
+ return ..()
+
+/obj/item/clothing/mask/synthfacemask/Destroy()
+ . = ..()
+ STOP_PROCESSING(SSprocessing, src)
+
+/obj/item/clothing/mask/synthfacemask/mob_can_equip(var/mob/living/carbon/human/user, var/slot, var/disable_warning = FALSE)
+ if (!..())
+ return 0
+ if(istype(user))
+ var/obj/item/organ/external/E = user.organs_by_name[BP_HEAD]
+ if(istype(E) && (E.robotic >= ORGAN_ROBOT))
+ return 1
+ to_chat(user, "You must have a compatible robotic head to install this upgrade.")
+ return 0
+
+/obj/item/clothing/mask/synthfacemask/update_icon()
+ var/mob/living/carbon/human/H = loc
+ switch(visor_state)
+ if (DEAD)
+ icon_state = "synth_facemask_dead"
+ else
+ icon_state = "synth_facemask"
+ if(istype(H)) H.update_inv_wear_mask()
+
+/obj/item/clothing/mask/synthfacemask/process()
+ if(maskmaster && lstat != maskmaster.stat)
+ lstat = maskmaster.stat
+ visor_state = "Neutral" //This does nothing at the moment, but it's there incase anyone wants to add more states.
+ //Maybe a verb that sets an emote override here
+ if(lstat == DEAD)
+ visorstate = DEAD
+ update_icon()
+
+
+//LOADOUT ITEM
+/datum/gear/mask/synthface/
+ display_name = "Synth Facemask (Teshari)"
+ path = /obj/item/clothing/mask/synthfacemask
+ sort_category = "Xenowear"
+ whitelisted = SPECIES_TESHARI
+ cost = 1
+
+/datum/gear/mask/synthface/New()
+ ..()
+ gear_tweaks += list(gear_tweak_free_color_choice)
diff --git a/icons/mob/species/teshari/synth_facemask.dmi b/icons/mob/species/teshari/synth_facemask.dmi
new file mode 100644
index 0000000000000000000000000000000000000000..d85b0ff129eee727415b305e1f2f838aa13a570c
GIT binary patch
literal 671
zcmV;Q0$}}#P)005u_0{{R3dEt5<0000RP)t-sz`(!_
z4GsVQ{~8(^;o;#YCnwL(&%nUI0093unoUdq0004WQchCV=-0C=2JR&a84_w-Y6@%7{?OD!tS%+FJ>RWQ*r;NmRLOex6#a*U0*I5Sc+
z(=$pSoZ^zil2jm5skkz)BqKg8F*!9iu{c|ai!&v&s2HT1i!-e#F*g;&HY80ske!m6
zlUNDTsRM>woVodBsky0nCHPE>Pf1No!Q}#F1y?^8unz$=CPc$TyCSFn00EOpL_t(&
zf$f<=PQx$|MeALbq#^8SS!7F1*+Y{9RE-aSxCqM1$EK(#v1e$0ElWtP{#!NH{K+`p
zye5kUAva7}f&x?Cow@ikzqIxdH0<`%Mcs>r_tw6}3tb;CD5@tnHZkt~Su~XS$~jRY
z2efuO?qPYbHXc#stL*_cT#tLMH>#n`o6lGIm<5&HOj}-CaeJMA_?Yi^JlNnIOLfXB
zZ@_?v+&m$K5JLWwL?67M;j9nVyMDh&qiRDRY>^M*0TX@jl7>k>h)MN9JYu2`=0YDN
zgb+fmiCiC45fchu-O2ZZyBDBurWL|C?}K%R1heX0G(@fsM)}``EFX;Wr%0v`hWS$@
z(+5rB{{s3TA%qZewdDGs%Ga&(LG(H=@LgM<)5$nD@gC@B2bnTs?1P{$%H@UY=9G!3|AGc_svfHveCP*Q|@`1uV+
zgcGJVESdpSc)uDeiWNM=3r;zFCcXi;Ki0zvLI}BSz5(i@URsRfdIJCe002ovPDHLk
FV1n~)C}RKs
literal 0
HcmV?d00001