diff --git a/code/datums/supplypacks.dm b/code/datums/supplypacks.dm
index 6616fda5..696fb288 100644
--- a/code/datums/supplypacks.dm
+++ b/code/datums/supplypacks.dm
@@ -1265,6 +1265,19 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee
containername = "speciality gloves kit"
group = "Supply"
+/datum/supply_packs/alienmedicalgloves
+ name = "Non-Human Sterile Glove Kit"
+ contains = list(/obj/item/clothing/gloves/latex/unathi,
+ /obj/item/clothing/gloves/latex/unathi,
+ /obj/item/clothing/gloves/latex/unathi,
+ /obj/item/clothing/gloves/latex/tajara,
+ /obj/item/clothing/gloves/latex/tajara,
+ /obj/item/clothing/gloves/latex/tajara)
+ cost = 25
+ containertype = /obj/structure/closet/crate
+ containername = "speciality sterile gloves kit"
+ group = "Medical / Science"
+
/datum/supply_packs/hardsuitcrate_e
name = "Engineering Hardsuit"
contains = list(/obj/item/clothing/head/helmet/space/rig,
diff --git a/code/game/jobs/job/security.dm b/code/game/jobs/job/security.dm
index 79fc512e..97eacd77 100644
--- a/code/game/jobs/job/security.dm
+++ b/code/game/jobs/job/security.dm
@@ -29,7 +29,12 @@
H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/head_of_security(H), slot_w_uniform)
H.equip_to_slot_or_del(new /obj/item/clothing/shoes/jackboots(H), slot_shoes)
H.equip_to_slot_or_del(new /obj/item/device/pda/heads/hos(H), slot_belt)
- H.equip_to_slot_or_del(new /obj/item/clothing/gloves/black(H), slot_gloves)
+ if(H.species.name == "Tajaran")
+ H.equip_to_slot_or_del(new /obj/item/clothing/gloves/black/tajara(H), slot_gloves)
+ if(H.species.name == "Unathi")
+ H.equip_to_slot_or_del(new /obj/item/clothing/gloves/black/unathi(H), slot_gloves)
+ else
+ H.equip_to_slot_or_del(new /obj/item/clothing/gloves/black(H), slot_gloves)
// H.equip_to_slot_or_del(new /obj/item/clothing/mask/gas(H), slot_wear_mask) //Grab one from the armory you donk
H.equip_to_slot_or_del(new /obj/item/clothing/glasses/sunglasses/sechud(H), slot_glasses)
H.equip_to_slot_or_del(new /obj/item/weapon/gun/energy/gun(H), slot_s_store)
@@ -72,7 +77,12 @@
H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/warden(H), slot_w_uniform)
H.equip_to_slot_or_del(new /obj/item/clothing/shoes/jackboots(H), slot_shoes)
H.equip_to_slot_or_del(new /obj/item/device/pda/warden(H), slot_belt)
- H.equip_to_slot_or_del(new /obj/item/clothing/gloves/black(H), slot_gloves)
+ if(H.species.name == "Tajaran")
+ H.equip_to_slot_or_del(new /obj/item/clothing/gloves/black/tajara(H), slot_gloves)
+ if(H.species.name == "Unathi")
+ H.equip_to_slot_or_del(new /obj/item/clothing/gloves/black/unathi(H), slot_gloves)
+ else
+ H.equip_to_slot_or_del(new /obj/item/clothing/gloves/black(H), slot_gloves)
H.equip_to_slot_or_del(new /obj/item/clothing/glasses/sunglasses/sechud(H), slot_glasses)
// H.equip_to_slot_or_del(new /obj/item/clothing/mask/gas(H), slot_wear_mask) //Grab one from the armory you donk
H.equip_to_slot_or_del(new /obj/item/device/flash(H), slot_l_store)
@@ -113,7 +123,12 @@
/* var/obj/item/clothing/mask/cigarette/CIG = new /obj/item/clothing/mask/cigarette(H)
CIG.light("")
H.equip_to_slot_or_del(CIG, slot_wear_mask) */
- H.equip_to_slot_or_del(new /obj/item/clothing/gloves/black(H), slot_gloves)
+ if(H.species.name == "Tajaran")
+ H.equip_to_slot_or_del(new /obj/item/clothing/gloves/black/tajara(H), slot_gloves)
+ if(H.species.name == "Unathi")
+ H.equip_to_slot_or_del(new /obj/item/clothing/gloves/black/unathi(H), slot_gloves)
+ else
+ H.equip_to_slot_or_del(new /obj/item/clothing/gloves/black(H), slot_gloves)
H.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/det_suit(H), slot_wear_suit)
H.equip_to_slot_or_del(new /obj/item/weapon/lighter/zippo(H), slot_l_store)
@@ -153,7 +168,12 @@
/* var/obj/item/clothing/mask/cigarette/CIG = new /obj/item/clothing/mask/cigarette(H)
CIG.light("")
H.equip_to_slot_or_del(CIG, slot_wear_mask) */
- H.equip_to_slot_or_del(new /obj/item/clothing/gloves/black(H), slot_gloves)
+ if(H.species.name == "Tajaran")
+ H.equip_to_slot_or_del(new /obj/item/clothing/gloves/black/tajara(H), slot_gloves)
+ if(H.species.name == "Unathi")
+ H.equip_to_slot_or_del(new /obj/item/clothing/gloves/black/unathi(H), slot_gloves)
+ else
+ H.equip_to_slot_or_del(new /obj/item/clothing/gloves/black(H), slot_gloves)
if(H.mind.role_alt_title && H.mind.role_alt_title == "Crime Scene Investigator")
H.equip_to_slot_or_del(new /obj/item/clothing/suit/armor/det_suit(H), slot_wear_suit)
else
diff --git a/code/modules/clothing/gloves/color.dm b/code/modules/clothing/gloves/color.dm
index 4736ad12..26eaf5fb 100644
--- a/code/modules/clothing/gloves/color.dm
+++ b/code/modules/clothing/gloves/color.dm
@@ -132,4 +132,14 @@
siemens_coefficient = 0
permeability_coefficient = 0.05
item_color="yellow"
- species_restricted = list("Unathi")
\ No newline at end of file
+ species_restricted = list("Unathi")
+
+/obj/item/clothing/gloves/black/unathi
+ name = "black gloves"
+ desc = "black gloves made for Unathi use."
+ species_restricted = list("Unathi")
+
+/obj/item/clothing/gloves/black/tajara
+ name = "black gloves"
+ desc = "black gloves made for Tajara use."
+ species_restricted = list("Tajaran")
\ No newline at end of file
diff --git a/code/modules/clothing/gloves/miscellaneous.dm b/code/modules/clothing/gloves/miscellaneous.dm
index db08554d..fe431b5c 100644
--- a/code/modules/clothing/gloves/miscellaneous.dm
+++ b/code/modules/clothing/gloves/miscellaneous.dm
@@ -53,6 +53,16 @@
cmo
item_color = "medical" //Exists for washing machines. Is not different from latex gloves in any way.
+/obj/item/clothing/gloves/latex/unathi
+ name = "unathi latex gloves"
+ desc = "Sterile latex gloves. Designed for Unathi use."
+ species_restricted = list("Unathi")
+
+/obj/item/clothing/gloves/latex/tajara
+ name = "tajara latex gloves"
+ desc = "Sterile latex gloves. Designed for Tajara use."
+ species_restricted = list("Tajaran")
+
/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"
@@ -68,6 +78,7 @@
item_state = "watchgloves"
w_class = 1
wired = 1
+ species_restricted = list()
// var/time = 1
verb/checktime()
diff --git a/code/modules/clothing/head/helmet.dm b/code/modules/clothing/head/helmet.dm
index 84aae5bc..c320b495 100644
--- a/code/modules/clothing/head/helmet.dm
+++ b/code/modules/clothing/head/helmet.dm
@@ -6,10 +6,6 @@
item_state = "helmet"
armor = list(melee = 50, bullet = 15, laser = 50,energy = 10, bomb = 25, bio = 0, rad = 0)
flags_inv = HIDEEARS|HIDEEYES
- cold_protection = HEAD
- min_cold_protection_temperature = HELMET_MIN_COLD_PROTECTION_TEMPERATURE
- heat_protection = HEAD
- max_heat_protection_temperature = HELMET_MAX_HEAT_PROTECTION_TEMPERATURE
siemens_coefficient = 0.7
w_class = 3
@@ -44,7 +40,6 @@
armor = list(melee = 80, bullet = 60, laser = 50,energy = 25, bomb = 50, bio = 10, rad = 0)
flags_inv = HIDEEARS|HIDEEYES
cold_protection = HEAD
- min_cold_protection_temperature = SPACE_HELMET_MIN_COLD_PROTECTION_TEMPERATURE
siemens_coefficient = 0.5
/obj/item/clothing/head/helmet/thunderdome
@@ -55,7 +50,6 @@
item_state = "thunderdome"
armor = list(melee = 80, bullet = 60, laser = 50,energy = 10, bomb = 25, bio = 10, rad = 0)
cold_protection = HEAD
- min_cold_protection_temperature = SPACE_HELMET_MIN_COLD_PROTECTION_TEMPERATURE
siemens_coefficient = 1
/obj/item/clothing/head/helmet/gladiator
@@ -75,4 +69,15 @@
flags = FPRINT|TABLEPASS|HEADCOVERSEYES
armor = list(melee = 62, bullet = 50, laser = 50,energy = 35, bomb = 10, bio = 2, rad = 0)
flags_inv = HIDEEARS
- siemens_coefficient = 0.7
\ No newline at end of file
+ siemens_coefficient = 0.7
+
+/obj/item/clothing/head/helmet/space // For spacesuit helmets. Removing the protection from the base helmets appears to have fucked them. Fixed with this, I believe.
+ name = "spaceasshole helmet"
+ desc = "shouldn't be able to see this"
+ icon_state = "n/a"
+ item_state = "n/a"
+ flags_inv = HIDEEARS|HIDEEYES
+ cold_protection = HEAD
+ min_cold_protection_temperature = HELMET_MIN_COLD_PROTECTION_TEMPERATURE
+ heat_protection = HEAD
+ max_heat_protection_temperature = HELMET_MAX_HEAT_PROTECTION_TEMPERATURE
diff --git a/code/modules/mob/holder.dm b/code/modules/mob/holder.dm
index d1adff7d..7fa4c4ba 100644
--- a/code/modules/mob/holder.dm
+++ b/code/modules/mob/holder.dm
@@ -71,6 +71,34 @@
icon_state = "cat"
origin_tech = null
+// Fuck the mice and their shitty fucking colors - Morgan
+
+/obj/item/weapon/holder/mouse/gray
+ name = "mouse"
+ desc = "It's a mouse. Squeak."
+ icon_state = "mouse_gray"
+ origin_tech = null
+
+/obj/item/weapon/holder/mouse/white
+ name = "mouse"
+ desc = "It's a mouse. Squeak."
+ icon_state = "mouse_white"
+ origin_tech = null
+
+/obj/item/weapon/holder/mouse/brown
+ name = "mouse"
+ desc = "It's a mouse. Squeak."
+ icon_state = "mouse_brown"
+ origin_tech = null
+
+// End shitty mouse section - Morgan
+
+/obj/item/weapon/holder/lizard
+ name = "lizard"
+ desc = "It's a lizard. Keep Phoebe away."
+ icon_state = "lizard"
+ origin_tech = null
+
/obj/item/weapon/holder/borer
name = "cortical borer"
desc = "It's a slimy brain slug. Gross."
diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm
index 7871b7b4..38c2dcf6 100644
--- a/code/modules/mob/living/living.dm
+++ b/code/modules/mob/living/living.dm
@@ -801,7 +801,10 @@
return
for(var/mob/O in viewers(src, null))
- O.show_message(text("[src] scrambles into the ventillation ducts!"), 1)
+ if(mind.changeling)
+ O.show_message(text("\red [src] twists their body into a vile form, bones cracking and popping as its tiny body contorts into a mass of distorted limbs, quickly forcing their way through the vent!"), 1)
+ else
+ O.show_message(text("[src] scrambles into the ventillation ducts!"), 1)
loc = target_vent
var/travel_time = round(get_dist(loc, target_vent.loc) / 2)
diff --git a/code/modules/mob/living/simple_animal/friendly/lizard.dm b/code/modules/mob/living/simple_animal/friendly/lizard.dm
index 4b058ce3..6e41b194 100644
--- a/code/modules/mob/living/simple_animal/friendly/lizard.dm
+++ b/code/modules/mob/living/simple_animal/friendly/lizard.dm
@@ -15,4 +15,16 @@
melee_damage_upper = 2
response_help = "pets"
response_disarm = "shoos"
- response_harm = "stomps on"
\ No newline at end of file
+ response_harm = "stomps on"
+ holder_type = /obj/item/weapon/holder/lizard
+
+/mob/living/simple_animal/lizard/MouseDrop(atom/over_object)
+
+ var/mob/living/carbon/H = over_object
+ if(!istype(H)) return ..()
+
+ if(H.a_intent == "help")
+ get_scooped(H)
+ return
+ else
+ return ..()
\ No newline at end of file
diff --git a/code/modules/mob/living/simple_animal/friendly/mouse.dm b/code/modules/mob/living/simple_animal/friendly/mouse.dm
index 7a83edb9..519e3593 100644
--- a/code/modules/mob/living/simple_animal/friendly/mouse.dm
+++ b/code/modules/mob/living/simple_animal/friendly/mouse.dm
@@ -28,6 +28,7 @@
maxbodytemp = 323 //Above 50 Degrees Celcius
universal_speak = 0
universal_understand = 1
+ holder_type = null
/mob/living/simple_animal/mouse/Life()
..()
@@ -90,6 +91,17 @@
client.time_died_as_mouse = world.time
..()
+/mob/living/simple_animal/mouse/MouseDrop(atom/over_object)
+
+ var/mob/living/carbon/H = over_object
+ if(!istype(H)) return ..()
+
+ if(H.a_intent == "help")
+ get_scooped(H)
+ return
+ else
+ return ..()
+
/*
* Mouse types
*/
@@ -97,14 +109,18 @@
/mob/living/simple_animal/mouse/white
body_color = "white"
icon_state = "mouse_white"
+ holder_type = /obj/item/weapon/holder/mouse/white
+
/mob/living/simple_animal/mouse/gray
body_color = "gray"
icon_state = "mouse_gray"
+ holder_type = /obj/item/weapon/holder/mouse/gray
/mob/living/simple_animal/mouse/brown
body_color = "brown"
icon_state = "mouse_brown"
+ holder_type = /obj/item/weapon/holder/mouse/brown
//TOM IS ALIVE! SQUEEEEEEEE~K :)
/mob/living/simple_animal/mouse/brown/Tom
diff --git a/code/modules/reagents/Chemistry-Reagents.dm b/code/modules/reagents/Chemistry-Reagents.dm
index 05238015..c2957502 100644
--- a/code/modules/reagents/Chemistry-Reagents.dm
+++ b/code/modules/reagents/Chemistry-Reagents.dm
@@ -2357,7 +2357,10 @@ datum
eyes_covered = 1
if ( !safe_thing )
safe_thing = victim.glasses
- if ( eyes_covered && mouth_covered )
+ if(!(victim.species && !(victim.species.flags & IS_SYNTHETIC)))
+ victim << "\red your screen gets covered in some kind of spray."
+ return
+ else if ( eyes_covered && mouth_covered )
victim << "\red Your [safe_thing] protects you from the pepperspray!"
return
else if ( eyes_covered ) // Reduced effects if partially protected
@@ -2371,12 +2374,12 @@ datum
return
else if ( mouth_covered ) // Mouth cover is better than eye cover
victim << "\red Your [safe_thing] protects your face from the pepperspray!"
- if (!(victim.species && (victim.species.flags & NO_PAIN)))
+ if (!(victim.species && (victim.species.flags & IS_PLANT)))
victim.emote("scream")
victim.eye_blurry = max(M.eye_blurry, 5)
return
- else // Oh dear :D
- if (!(victim.species && (victim.species.flags & NO_PAIN)))
+ else // Oh dear :D < - No idea what that's about. Looks like this is for unprotected people? The weird this is, it affects IPCs, because they have the no_pain flag. Might have a fix.
+ if (!(victim.species && (victim.species.flags & IS_PLANT)))
victim.emote("scream")
victim << "\red You're sprayed directly in the eyes with pepperspray!"
victim.eye_blurry = max(M.eye_blurry, 25)
diff --git a/icons/obj/objects.dmi b/icons/obj/objects.dmi
index f5d95ac8..f1408749 100644
Binary files a/icons/obj/objects.dmi and b/icons/obj/objects.dmi differ