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