diff --git a/code/modules/food&drinks/food/snacks_sandwichtoast.dm b/code/modules/food&drinks/food/snacks_sandwichtoast.dm
index cef39b6836b..73b18e73a2a 100644
--- a/code/modules/food&drinks/food/snacks_sandwichtoast.dm
+++ b/code/modules/food&drinks/food/snacks_sandwichtoast.dm
@@ -46,7 +46,7 @@
/obj/item/weapon/reagent_containers/food/snacks/icecreamsandwich
name = "icecream sandwich"
desc = "Portable Ice-cream in it's own packaging."
- icon = 'icons/obj/food/burgerbread.dmi'
+ icon = 'icons/obj/food/food.dmi'
icon_state = "icecreamsandwich"
bonus_reagents = list("nutriment" = 1, "ice" = 2)
list_reagents = list("nutriment" = 2, "ice" = 2)
diff --git a/code/modules/mob/living/carbon/alien/special/facehugger.dm b/code/modules/mob/living/carbon/alien/special/facehugger.dm
index f24f47f8f65..7ff98ab7531 100644
--- a/code/modules/mob/living/carbon/alien/special/facehugger.dm
+++ b/code/modules/mob/living/carbon/alien/special/facehugger.dm
@@ -148,6 +148,7 @@ var/const/MAX_ACTIVE_TIME = 400
var/mob/living/simple_animal/pet/corgi/C = M
loc = C
C.facehugger = src
+ C.regenerate_icons()
GoIdle() //so it doesn't jump the people that tear it off
diff --git a/code/modules/mob/living/simple_animal/friendly/cat.dm b/code/modules/mob/living/simple_animal/friendly/cat.dm
index f33e642029e..0c2cda5041a 100644
--- a/code/modules/mob/living/simple_animal/friendly/cat.dm
+++ b/code/modules/mob/living/simple_animal/friendly/cat.dm
@@ -31,7 +31,6 @@
gender = FEMALE
var/turns_since_scan = 0
var/mob/living/simple_animal/mouse/movement_target
- pcollar = /obj/item/clothing/tie/petcollar
/mob/living/simple_animal/pet/cat/Runtime/Life()
//MICE!
diff --git a/code/modules/mob/living/simple_animal/friendly/corgi.dm b/code/modules/mob/living/simple_animal/friendly/corgi.dm
index c4cddea7909..a04e155095f 100644
--- a/code/modules/mob/living/simple_animal/friendly/corgi.dm
+++ b/code/modules/mob/living/simple_animal/friendly/corgi.dm
@@ -1,45 +1,4 @@
//Corgi
-/mob/living/simple_animal/pet
- icon = 'icons/mob/pets.dmi'
- mob_size = MOB_SIZE_SMALL
- var/obj/item/clothing/tie/petcollar/pcollar = null
- var/image/collar = null
- var/image/pettag = null
-
-/mob/living/simple_animal/pet/attackby(var/obj/item/O as obj, var/mob/user as mob, params)
- if(istype(O, /obj/item/clothing/tie/petcollar) && !pcollar)
- var/obj/item/clothing/tie/petcollar/P = O
- pcollar = P
- update_collar()
- if(P.tagname)
- name = P.tagname
- user << "You put the [P] around [src]'s neck."
- qdel(P)
- else
- ..()
-
-/mob/living/simple_animal/pet/New()
- ..()
- if(pcollar)
- pcollar = new(src)
- update_collar()
-
-/mob/living/simple_animal/pet/revive()
- ..()
- update_collar()
-
-/mob/living/simple_animal/pet/death(gibbed)
- ..(gibbed)
- update_collar()
-
-/mob/living/simple_animal/pet/proc/update_collar()
- overlays.Cut()
- collar = image('icons/mob/pets.dmi', src, "[icon_state]collar")
- pettag = image('icons/mob/pets.dmi', src, "[icon_state]tag")
- overlays += collar
- overlays += pettag
-
-
/mob/living/simple_animal/pet/corgi
name = "\improper corgi"
real_name = "corgi"
@@ -117,14 +76,6 @@
emote("me", 1, "looks at [user] with [pick("an amused","an annoyed","a confused","a resentful", "a happy", "an excited")] expression.")
return
- if(istype(O, /obj/item/weapon/newspaper))
- if(!stat)
- user.visible_message("[user] baps [name] on the nose with the rolled up [O].")
- spawn(0)
- for(var/i in list(1,2,4,8,4,2,1,2))
- dir = i
- sleep(1)
-
if (istype(O, /obj/item/weapon/razor))
if (shaved)
user << "You can't shave this corgi, it's already been shaved!"
@@ -488,7 +439,6 @@
/mob/living/simple_animal/pet/corgi/regenerate_icons()
overlays.Cut()
-
if(inventory_head)
var/image/head_icon
if(health <= 0)
@@ -498,7 +448,6 @@
else
head_icon = image('icons/mob/corgi_head.dmi', icon_state = inventory_head.icon_state)
overlays += head_icon
-
if(inventory_back)
var/image/back_icon
if(health <= 0)
@@ -508,12 +457,14 @@
else
back_icon = image('icons/mob/corgi_back.dmi', icon_state = inventory_back.icon_state)
overlays += back_icon
-
if(facehugger)
if(istype(src, /mob/living/simple_animal/pet/corgi/puppy))
overlays += image('icons/mob/mask.dmi',"facehugger_corgipuppy")
else
overlays += image('icons/mob/mask.dmi',"facehugger_corgi")
+ if(pcollar)
+ overlays += collar
+ overlays += pettag
return
diff --git a/code/modules/mob/living/simple_animal/friendly/fox.dm b/code/modules/mob/living/simple_animal/friendly/fox.dm
index 35d9568fbbf..919fda68beb 100644
--- a/code/modules/mob/living/simple_animal/friendly/fox.dm
+++ b/code/modules/mob/living/simple_animal/friendly/fox.dm
@@ -21,5 +21,4 @@
//Captain fox
/mob/living/simple_animal/pet/fox/Renault
name = "Renault"
- desc = "Renault, the Captain's trustworthy fox. I wonder what it says?"
- pcollar = /obj/item/clothing/tie/petcollar
\ No newline at end of file
+ desc = "Renault, the Captain's trustworthy fox. I wonder what it says?"
\ No newline at end of file
diff --git a/code/modules/mob/living/simple_animal/friendly/pet.dm b/code/modules/mob/living/simple_animal/friendly/pet.dm
new file mode 100644
index 00000000000..79ddffe3912
--- /dev/null
+++ b/code/modules/mob/living/simple_animal/friendly/pet.dm
@@ -0,0 +1,47 @@
+/mob/living/simple_animal/pet
+ icon = 'icons/mob/pets.dmi'
+ mob_size = MOB_SIZE_SMALL
+ var/obj/item/clothing/tie/petcollar/pcollar = null
+ var/image/collar = null
+ var/image/pettag = null
+
+/mob/living/simple_animal/pet/attackby(var/obj/item/O as obj, var/mob/user as mob, params)
+ if(istype(O, /obj/item/clothing/tie/petcollar) && !pcollar)
+ var/obj/item/clothing/tie/petcollar/P = O
+ pcollar = P
+ collar = image('icons/mob/pets.dmi', src, "[icon_state]collar")
+ pettag = image('icons/mob/pets.dmi', src, "[icon_state]tag")
+ regenerate_icons()
+ user << "You put the [P] around [src]'s neck."
+ if(P.tagname)
+ name = P.tagname
+ qdel(P)
+ return
+ if(istype(O, /obj/item/weapon/newspaper))
+ if(!stat)
+ user.visible_message("[user] baps [name] on the nose with the rolled up [O].")
+ spawn(0)
+ for(var/i in list(1,2,4,8,4,2,1,2))
+ dir = i
+ sleep(1)
+ else
+ ..()
+
+/mob/living/simple_animal/pet/New()
+ ..()
+ if(pcollar)
+ pcollar = new(src)
+ regenerate_icons()
+
+/mob/living/simple_animal/pet/revive()
+ ..()
+ regenerate_icons()
+
+/mob/living/simple_animal/pet/death(gibbed)
+ ..(gibbed)
+ regenerate_icons()
+
+/mob/living/simple_animal/pet/regenerate_icons()
+ overlays.Cut()
+ overlays += collar
+ overlays += pettag
\ No newline at end of file
diff --git a/code/modules/mob/living/simple_animal/friendly/pug.dm b/code/modules/mob/living/simple_animal/friendly/pug.dm
index f5bc620bd20..b7bb7e93307 100644
--- a/code/modules/mob/living/simple_animal/friendly/pug.dm
+++ b/code/modules/mob/living/simple_animal/friendly/pug.dm
@@ -28,14 +28,3 @@
for(var/i in list(1,2,4,8,4,2,1,2,4,8,4,2,1,2,4,8,4,2))
dir = i
sleep(1)
-
-/mob/living/simple_animal/pet/pug/attackby(var/obj/item/O as obj, var/mob/user as mob, params) //Marker -Agouri
- if(istype(O, /obj/item/weapon/newspaper))
- if(!stat)
- user.visible_message("[user] baps [name] on the nose with the rolled up [O].")
- spawn(0)
- for(var/i in list(1,2,4,8,4,2,1,2))
- dir = i
- sleep(1)
- else
- ..()
diff --git a/tgstation.dme b/tgstation.dme
index 58f35334be8..589476fedf5 100644
--- a/tgstation.dme
+++ b/tgstation.dme
@@ -1202,6 +1202,7 @@
#include "code\modules\mob\living\simple_animal\friendly\fox.dm"
#include "code\modules\mob\living\simple_animal\friendly\lizard.dm"
#include "code\modules\mob\living\simple_animal\friendly\mouse.dm"
+#include "code\modules\mob\living\simple_animal\friendly\pet.dm"
#include "code\modules\mob\living\simple_animal\friendly\pug.dm"
#include "code\modules\mob\living\simple_animal\friendly\drone\_drone.dm"
#include "code\modules\mob\living\simple_animal\friendly\drone\drones_as_items.dm"