diff --git a/code/game/machinery/suit_storage_unit.dm b/code/game/machinery/suit_storage_unit.dm
index b8171f59e0..0dc5b34b60 100644
--- a/code/game/machinery/suit_storage_unit.dm
+++ b/code/game/machinery/suit_storage_unit.dm
@@ -762,7 +762,7 @@
//Clear the access reqs, disable the safeties, and open up all paintjobs.
user << "You run the sequencer across the interface, corrupting the operating protocols."
departments = list("Engineering","Mining","Medical","Security","Atmos","^%###^%$")
- species -= "Teshari" // Until someone feels like making sprites for them/they are common enough to justify inclusion in the station cyclers.
+ species = list("Human","Tajara","Skrell","Unathi", "Teshari")
emagged = 1
safeties = 0
diff --git a/code/game/objects/items/devices/radio/headset.dm b/code/game/objects/items/devices/radio/headset.dm
index fdf9206058..ad9b9e8f8c 100644
--- a/code/game/objects/items/devices/radio/headset.dm
+++ b/code/game/objects/items/devices/radio/headset.dm
@@ -7,14 +7,13 @@
matter = list(DEFAULT_WALL_MATERIAL = 75)
subspace_transmission = 1
canhear_range = 0 // can't hear headsets from very far away
-
slot_flags = SLOT_EARS
+ sprite_sheets = list("Teshari" = 'icons/mob/species/seromi/ears.dmi')
+
var/translate_binary = 0
var/translate_hive = 0
var/obj/item/device/encryptionkey/keyslot1 = null
var/obj/item/device/encryptionkey/keyslot2 = null
-// maxf = 1489
-
var/ks1type = /obj/item/device/encryptionkey
var/ks2type = null
diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm
index 0254ad8a77..78da7f8b52 100644
--- a/code/modules/clothing/clothing.dm
+++ b/code/modules/clothing/clothing.dm
@@ -189,37 +189,6 @@
update_clothing_icon()
-///////////////////////////////////////////////////////////////////////
-//Glasses
-/*
-SEE_SELF // can see self, no matter what
-SEE_MOBS // can see all mobs, no matter what
-SEE_OBJS // can see all objs, no matter what
-SEE_TURFS // can see all turfs (and areas), no matter what
-SEE_PIXELS// if an object is located on an unlit area, but some of its pixels are
- // in a lit area (via pixel_x,y or smooth movement), can see those pixels
-BLIND // can't see anything
-
-/obj/item/clothing/glasses
- name = "glasses"
- icon = 'icons/obj/clothing/glasses.dmi'
- w_class = 2.0
- body_parts_covered = EYES
- slot_flags = SLOT_EYES
- var/vision_flags = 0
- var/darkness_view = 0//Base human is 2
- var/see_invisible = -1
- sprite_sheets = list(
- "Vox" = 'icons/mob/species/vox/eyes.dmi',
- "Teshari" = 'icons/mob/species/seromi/eyes.dmi',
- )
-
-/obj/item/clothing/glasses/update_clothing_icon()
- if (ismob(src.loc))
- var/mob/M = src.loc
- M.update_inv_glasses()
-*/
-///////////////////////////////////////////////////////////////////////
//Gloves
/obj/item/clothing/gloves
name = "gloves"
@@ -584,7 +553,7 @@ BLIND // can't see anything
else
rolled_down = -1
if(H) update_clothing_icon()
-
+
/obj/item/clothing/under/proc/update_rollsleeves_status()
var/mob/living/carbon/human/H
if(istype(src.loc, /mob/living/carbon/human))
@@ -767,7 +736,7 @@ BLIND // can't see anything
item_state_slots[slot_w_uniform_str] = "[worn_state]"
usr << "You roll up your [src]."
update_clothing_icon()
-
+
/obj/item/clothing/under/verb/rollsleeves()
set name = "Roll Up Sleeves"
set category = "Object"
diff --git a/code/modules/clothing/glasses/glasses.dm b/code/modules/clothing/glasses/glasses.dm
index 60cbad098b..2f2dad608b 100644
--- a/code/modules/clothing/glasses/glasses.dm
+++ b/code/modules/clothing/glasses/glasses.dm
@@ -1,3 +1,15 @@
+///////////////////////////////////////////////////////////////////////
+//Glasses
+/*
+SEE_SELF // can see self, no matter what
+SEE_MOBS // can see all mobs, no matter what
+SEE_OBJS // can see all objs, no matter what
+SEE_TURFS // can see all turfs (and areas), no matter what
+SEE_PIXELS// if an object is located on an unlit area, but some of its pixels are
+ // in a lit area (via pixel_x,y or smooth movement), can see those pixels
+BLIND // can't see anything
+*/
+///////////////////////////////////////////////////////////////////////
/obj/item/clothing/glasses
name = "glasses"
@@ -13,7 +25,12 @@
var/active = 1
var/activation_sound = 'sound/items/goggles_charge.ogg'
var/obj/screen/overlay = null
-
+
+ sprite_sheets = list(
+ "Vox" = 'icons/mob/species/vox/eyes.dmi',
+ "Teshari" = 'icons/mob/species/seromi/eyes.dmi'
+ )
+
/obj/item/clothing/glasses/update_clothing_icon()
if (ismob(src.loc))
var/mob/M = src.loc
@@ -89,7 +106,7 @@
item_state = "eyepatch"
body_parts_covered = 0
var/eye = null
-
+
/obj/item/clothing/glasses/eyepatch/verb/switcheye()
set name = "Switch Eyepatch"
set category = "Object"
diff --git a/code/modules/clothing/under/xenos/seromi.dm b/code/modules/clothing/under/xenos/seromi.dm
index d0c565ac10..e4cc060502 100644
--- a/code/modules/clothing/under/xenos/seromi.dm
+++ b/code/modules/clothing/under/xenos/seromi.dm
@@ -5,6 +5,7 @@
icon_state = "seromi_grey"
worn_state = "seromi_grey"
species_restricted = list("Teshari")
+ body_parts_covered = 0 // It's a thin piece of cloth with a neck hole.
/obj/item/clothing/under/seromi/white
name = "small white smock"
diff --git a/code/modules/detectivework/tools/rag.dm b/code/modules/detectivework/tools/rag.dm
index 300c48ee4c..6887ef1fba 100644
--- a/code/modules/detectivework/tools/rag.dm
+++ b/code/modules/detectivework/tools/rag.dm
@@ -143,7 +143,7 @@
return
if(!on_fire && istype(A) && (src in user))
- if(A.is_open_container())
+ if(A.is_open_container() && !(A in user))
remove_contents(user, A)
else if(!ismob(A)) //mobs are handled in attack() - this prevents us from wiping down people while smothering them.
wipe_down(A, user)
diff --git a/code/modules/mob/holder.dm b/code/modules/mob/holder.dm
index 212f2219ad..15c3dc321e 100644
--- a/code/modules/mob/holder.dm
+++ b/code/modules/mob/holder.dm
@@ -98,7 +98,7 @@ var/list/holder_mob_icon_cache = list()
/mob/living/MouseDrop(var/atom/over_object)
var/mob/living/carbon/human/H = over_object
- if(holder_type && istype(H) && !H.lying && !issmall(H) && Adjacent(H))
+ if(holder_type && istype(H) && !H.lying && !issmall(H) && Adjacent(H) && (src.a_intent == I_HELP && H.a_intent == I_HELP))
get_scooped(H, (usr == src))
return
return ..()
diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm
index f7f1ba7486..a0636f453f 100644
--- a/code/modules/mob/living/carbon/human/human.dm
+++ b/code/modules/mob/living/carbon/human/human.dm
@@ -1357,13 +1357,6 @@
return 1
return 0
-/mob/living/carbon/human/MouseDrop(var/atom/over_object)
- var/mob/living/carbon/human/H = over_object
- if(holder_type && a_intent == I_HELP && istype(H) && H == usr && H.a_intent == I_HELP && !issmall(H) && Adjacent(H))
- get_scooped(H)
- return
- return ..()
-
//Puts the item into our active hand if possible. returns 1 on success.
/mob/living/carbon/human/put_in_active_hand(var/obj/item/W)
return (hand ? put_in_l_hand(W) : put_in_r_hand(W))
diff --git a/code/modules/mob/living/carbon/human/species/station/seromi.dm b/code/modules/mob/living/carbon/human/species/station/seromi.dm
index 3928ed9f01..40fd5c63b8 100644
--- a/code/modules/mob/living/carbon/human/species/station/seromi.dm
+++ b/code/modules/mob/living/carbon/human/species/station/seromi.dm
@@ -111,3 +111,7 @@
return SEE_SELF|SEE_MOBS
else
return SEE_SELF
+
+/datum/species/teshari/equip_survival_gear(var/mob/living/carbon/human/H)
+ ..()
+ H.equip_to_slot_or_del(new /obj/item/clothing/shoes/sandal(H),slot_shoes)
\ No newline at end of file
diff --git a/code/modules/projectiles/targeting/targeting_overlay.dm b/code/modules/projectiles/targeting/targeting_overlay.dm
index 48eebf083a..7a6fdcc0ca 100644
--- a/code/modules/projectiles/targeting/targeting_overlay.dm
+++ b/code/modules/projectiles/targeting/targeting_overlay.dm
@@ -115,6 +115,8 @@ obj/aiming_overlay/proc/update_aiming_deferred()
if(!(aiming_with in owner) || (istype(owner, /mob/living/carbon/human) && (owner.l_hand != aiming_with && owner.r_hand != aiming_with)))
owner << "You must keep hold of your weapon!"
+ else if(owner.eye_blind)
+ owner << "You are blind and cannot see your target!"
else if(!aiming_at || !istype(aiming_at.loc, /turf))
owner << "You have lost sight of your target!"
else if(owner.incapacitated() || owner.lying || owner.restrained())
diff --git a/code/modules/recycling/sortingmachinery.dm b/code/modules/recycling/sortingmachinery.dm
index eb76325832..70ac20ae87 100755
--- a/code/modules/recycling/sortingmachinery.dm
+++ b/code/modules/recycling/sortingmachinery.dm
@@ -247,7 +247,8 @@
if(user.client)
user.client.screen -= O
P.wrapped = O
- O.loc = P
+ O.forceMove(P)
+ P.w_class = O.w_class
var/i = round(O.w_class)
if(i in list(1,2,3,4,5))
P.icon_state = "deliverycrate[i]"
diff --git a/icons/mob/holder_complex.dmi b/icons/mob/holder_complex.dmi
index 0c0235da02..b067bec14f 100644
Binary files a/icons/mob/holder_complex.dmi and b/icons/mob/holder_complex.dmi differ
diff --git a/icons/mob/species/seromi/head.dmi b/icons/mob/species/seromi/head.dmi
index 54be1e831d..a931fc2d1f 100644
Binary files a/icons/mob/species/seromi/head.dmi and b/icons/mob/species/seromi/head.dmi differ
diff --git a/icons/mob/species/seromi/suit.dmi b/icons/mob/species/seromi/suit.dmi
index 970a9686cc..ae60d147da 100644
Binary files a/icons/mob/species/seromi/suit.dmi and b/icons/mob/species/seromi/suit.dmi differ