diff --git a/code/game/objects/items/stacks/sheets/leather.dm b/code/game/objects/items/stacks/sheets/leather.dm
index 9dbef33cd02..411c2f95443 100644
--- a/code/game/objects/items/stacks/sheets/leather.dm
+++ b/code/game/objects/items/stacks/sheets/leather.dm
@@ -56,6 +56,14 @@ GLOBAL_LIST_INIT(lizard_recipes, list( \
recipes = GLOB.lizard_recipes
return ..()
+/obj/item/stack/sheet/fur //basic fur sheets
+ name = "pile of fur"
+ desc = "Vulp remains."
+ singular_name = "fur piece"
+ icon_state = "sheet-fur"
+ origin_tech = "materials=2"
+ max_amount = 50
+
/obj/item/stack/sheet/animalhide/xeno
name = "alien hide"
desc = "The skin of a terrible creature."
diff --git a/code/modules/clothing/gloves/color.dm b/code/modules/clothing/gloves/color.dm
index 0ae06840e91..5b81d057700 100644
--- a/code/modules/clothing/gloves/color.dm
+++ b/code/modules/clothing/gloves/color.dm
@@ -241,3 +241,11 @@
max_heat_protection_temperature = GLOVES_MAX_TEMP_PROTECT
strip_delay = 60
armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 70, ACID = 50)
+
+/obj/item/clothing/gloves/furgloves
+ desc = "These gloves are warm and furry."
+ name = "fur gloves"
+ icon_state = "furglovesico"
+ item_state = "furgloves"
+ transfer_prints = TRUE
+ transfer_blood = TRUE
diff --git a/code/modules/clothing/patreon/hats.dm b/code/modules/clothing/patreon/hats.dm
index 6c34a2576c5..359b85baffa 100644
--- a/code/modules/clothing/patreon/hats.dm
+++ b/code/modules/clothing/patreon/hats.dm
@@ -61,3 +61,13 @@
sprite_sheets = list(
"Vox" = 'icons/mob/clothing/species/vox/head.dmi'
)
+
+// Equivalent to a winter coat's hood
+/obj/item/clothing/head/furcap
+ name = "fur cap"
+ desc = "A warm furry cap."
+ icon_state = "furcap"
+ item_state = "furcap"
+
+ cold_protection = HEAD
+ min_cold_protection_temperature = FIRE_SUIT_MIN_TEMP_PROTECT
diff --git a/code/modules/clothing/shoes/miscellaneous.dm b/code/modules/clothing/shoes/miscellaneous.dm
index 4c23bbdff38..47e6575a17a 100644
--- a/code/modules/clothing/shoes/miscellaneous.dm
+++ b/code/modules/clothing/shoes/miscellaneous.dm
@@ -256,6 +256,12 @@
item_color = "noble_boot"
item_state = "noble_boot"
+/obj/item/clothing/shoes/furboots
+ name = "fur boots"
+ desc = "Warm, furry boots."
+ icon_state = "furboots"
+ item_state = "furboots"
+
/obj/item/clothing/shoes/sandal/white
name = "white sandals"
desc = "Medical sandals that nerds wear."
diff --git a/code/modules/clothing/suits/miscellaneous.dm b/code/modules/clothing/suits/miscellaneous.dm
index 7fc26d5c16c..9f68b9d7c49 100644
--- a/code/modules/clothing/suits/miscellaneous.dm
+++ b/code/modules/clothing/suits/miscellaneous.dm
@@ -387,6 +387,17 @@
sprite_sheets = list("Vox" = 'icons/mob/clothing/species/vox/head.dmi')
+/obj/item/clothing/suit/furcoat
+ name = "fur coat"
+ desc = "A trenchcoat made from fur. You could put an oxygen tank in one of the pockets."
+ icon_state = "furcoat"
+ item_state = "furcoat"
+ blood_overlay_type = "armor"
+ body_parts_covered = UPPER_TORSO|ARMS|LOWER_TORSO
+ allowed = list(/obj/item/tank/internals/emergency_oxygen)
+ cold_protection = UPPER_TORSO | LOWER_TORSO | ARMS
+ min_cold_protection_temperature = FIRE_SUIT_MIN_TEMP_PROTECT
+
/obj/item/clothing/suit/hooded/wintercoat/captain
name = "captain's winter coat"
icon_state = "wintercoat_captain"
@@ -1061,3 +1072,13 @@
w_class = WEIGHT_CLASS_TINY
flags = BLOCKHAIR
flags_inv = HIDEGLOVES|HIDEEARS|HIDEFACE
+
+/obj/item/clothing/suit/furcape
+ name = "fur cape"
+ desc = "A cape made from fur. You'll really be stylin' now."
+ icon_state = "furcape"
+ item_state = "furcape"
+ blood_overlay_type = "armor"
+ body_parts_covered = UPPER_TORSO|ARMS
+ cold_protection = UPPER_TORSO | ARMS
+ min_cold_protection_temperature = FIRE_SUIT_MIN_TEMP_PROTECT
diff --git a/code/modules/mob/living/carbon/human/species/tajaran.dm b/code/modules/mob/living/carbon/human/species/tajaran.dm
index 9256ca60508..482e640e268 100644
--- a/code/modules/mob/living/carbon/human/species/tajaran.dm
+++ b/code/modules/mob/living/carbon/human/species/tajaran.dm
@@ -45,8 +45,7 @@
unless they choose otherwise by selecting the colourblind disability in character creation (darksight = 8 but colourblind).*/
)
- allowed_consumed_mobs = list(/mob/living/simple_animal/mouse, /mob/living/simple_animal/chick, /mob/living/simple_animal/butterfly, /mob/living/simple_animal/parrot,
- /mob/living/simple_animal/tribble)
+ allowed_consumed_mobs = list(/mob/living/simple_animal/mouse, /mob/living/simple_animal/chick, /mob/living/simple_animal/butterfly, /mob/living/simple_animal/parrot)
suicide_messages = list(
"is attempting to bite their tongue off!",
diff --git a/code/modules/mob/living/carbon/human/species/unathi.dm b/code/modules/mob/living/carbon/human/species/unathi.dm
index e587a075a5f..e9946103cae 100644
--- a/code/modules/mob/living/carbon/human/species/unathi.dm
+++ b/code/modules/mob/living/carbon/human/species/unathi.dm
@@ -49,7 +49,7 @@
)
allowed_consumed_mobs = list(/mob/living/simple_animal/mouse, /mob/living/simple_animal/lizard, /mob/living/simple_animal/chick, /mob/living/simple_animal/chicken,
- /mob/living/simple_animal/crab, /mob/living/simple_animal/butterfly, /mob/living/simple_animal/parrot, /mob/living/simple_animal/tribble)
+ /mob/living/simple_animal/crab, /mob/living/simple_animal/butterfly, /mob/living/simple_animal/parrot)
suicide_messages = list(
"is attempting to bite their tongue off!",
diff --git a/code/modules/mob/living/carbon/human/species/vulpkanin.dm b/code/modules/mob/living/carbon/human/species/vulpkanin.dm
index 97083d8db16..c3f4b4646c1 100644
--- a/code/modules/mob/living/carbon/human/species/vulpkanin.dm
+++ b/code/modules/mob/living/carbon/human/species/vulpkanin.dm
@@ -40,7 +40,7 @@
)
allowed_consumed_mobs = list(/mob/living/simple_animal/mouse, /mob/living/simple_animal/lizard, /mob/living/simple_animal/chick, /mob/living/simple_animal/chicken,
- /mob/living/simple_animal/crab, /mob/living/simple_animal/butterfly, /mob/living/simple_animal/parrot, /mob/living/simple_animal/tribble)
+ /mob/living/simple_animal/crab, /mob/living/simple_animal/butterfly, /mob/living/simple_animal/parrot)
suicide_messages = list(
"is attempting to bite their tongue off!",
diff --git a/code/modules/mob/living/simple_animal/tribbles.dm b/code/modules/mob/living/simple_animal/tribbles.dm
deleted file mode 100644
index 46a13021aab..00000000000
--- a/code/modules/mob/living/simple_animal/tribbles.dm
+++ /dev/null
@@ -1,196 +0,0 @@
-GLOBAL_VAR_INIT(totaltribbles, 0) //global variable so it updates for all tribbles, not just the new one being made.
-
-
-/mob/living/simple_animal/tribble
- name = "tribble"
- desc = "It's a small furry creature that makes a soft trill."
- icon = 'icons/mob/tribbles.dmi'
- icon_state = "tribble1"
- icon_living = "tribble1"
- icon_dead = "tribble1_dead"
- speak = list("Prrrrr...")
- speak_emote = list("purrs", "trills")
- emote_hear = list("shuffles", "purrs")
- emote_see = list("trundles around", "rolls")
- speak_chance = 10
- turns_per_move = 5
- maxHealth = 10
- health = 10
- butcher_results = list(/obj/item/stack/sheet/fur = 1)
- response_help = "pets"
- response_disarm = "gently pushes aside"
- response_harm = "whacks"
- harm_intent_damage = 5
- var/gestation = 0
- var/maxtribbles = 50 //change this to change the max limit
- wander = 1
-
-
-/mob/living/simple_animal/tribble/New()
- ..()
- var/list/types = list("tribble1","tribble2","tribble3")
- src.icon_state = pick(types)
- src.icon_living = src.icon_state
- src.icon_dead = "[src.icon_state]_dead"
- //random pixel offsets so they cover the floor
- src.pixel_x = rand(-5.0, 5)
- src.pixel_y = rand(-5.0, 5)
- GLOB.totaltribbles += 1
-
-
-/mob/living/simple_animal/tribble/attack_hand(mob/user as mob)
- ..()
- if(src.stat != DEAD)
- new /obj/item/toy/tribble(user.loc)
- for(var/obj/item/toy/tribble/T in user.loc)
- T.icon_state = src.icon_state
- T.item_state = src.icon_state
- T.gestation = src.gestation
- T.pickup(user)
- user.put_in_active_hand(T)
- qdel(src)
-
-
-/mob/living/simple_animal/tribble/attackby(obj/item/O as obj, mob/user as mob, params)
- if(istype(O, /obj/item/scalpel))
- to_chat(user, "You try to neuter the tribble, but it's moving too much and you fail!")
- else if(istype(O, /obj/item/cautery))
- to_chat(user, "You try to un-neuter the tribble, but it's moving too much and you fail!")
- ..()
-
-
-/mob/living/simple_animal/tribble/proc/procreate()
- if(GLOB.totaltribbles <= maxtribbles)
- for(var/mob/living/simple_animal/tribble/F in src.loc)
- if(!F || F == src)
- new /mob/living/simple_animal/tribble(src.loc)
- gestation = 0
-
-
-/mob/living/simple_animal/tribble/Life(seconds, times_fired)
- ..()
- if(src.health > 0) //no mostly dead procreation
- if(gestation != null) //neuter check
- if(gestation < 30)
- gestation++
- else if(gestation >= 30)
- if(prob(80))
- src.procreate()
-
-
-/mob/living/simple_animal/tribble/death(gibbed) // Gotta make sure to remove tribbles from the list on death
- // Only execute the below if we successfully died
- . = ..(gibbed)
- if(!.)
- return FALSE
- GLOB.totaltribbles -= 1
-
-
-//||Item version of the trible ||
-/obj/item/toy/tribble
- name = "tribble"
- desc = "It's a small furry creature that makes a soft trill."
- icon = 'icons/mob/tribbles.dmi'
- icon_state = "tribble1"
- item_state = "tribble1"
- w_class = 10
- var/gestation = 0
- flags = DROPDEL
-
-/obj/item/toy/tribble/attack_self(mob/user as mob) //hug that tribble (and play a sound if we add one)
- ..()
- to_chat(user, "You nuzzle the tribble and it trills softly.")
-
-/obj/item/toy/tribble/dropped(mob/user as mob) //now you can't item form them to get rid of them all so easily
- new /mob/living/simple_animal/tribble(user.loc)
- for(var/mob/living/simple_animal/tribble/T in user.loc)
- T.icon_state = src.icon_state
- T.icon_living = src.icon_state
- T.icon_dead = "[src.icon_state]_dead"
- T.gestation = src.gestation
-
- to_chat(user, "The tribble gets up and wanders around.")
- . = ..()
-
-/obj/item/toy/tribble/attackby(obj/item/O as obj, mob/user as mob) //neutering and un-neutering
- ..()
- if(istype(O, /obj/item/scalpel) && src.gestation != null)
- gestation = null
- to_chat(user, "You neuter the tribble so that it can no longer re-produce.")
- else if(istype(O, /obj/item/cautery) && src.gestation == null)
- gestation = 0
- to_chat(user, "You fuse some recently cut tubes together, it should be able to reproduce again.")
-
-//||Fur and Fur Products ||
-
-/obj/item/stack/sheet/fur //basic fur sheets (very lumpy furry piles of sheets)
- name = "pile of fur"
- desc = "The by-product of tribbles."
- singular_name = "fur piece"
- icon = 'icons/mob/tribbles.dmi'
- icon_state = "sheet-fur"
- origin_tech = "materials=2"
- max_amount = 50
-
-
-/obj/item/clothing/ears/earmuffs/tribblemuffs //earmuffs but with tribbles
- name = "earmuffs"
- desc = "Protects your hearing from loud noises, and quiet ones as well."
- icon = 'icons/mob/tribbles.dmi'
- icon_state = "tribblemuffs"
- item_state = "tribblemuffs"
-
-/* The advanced cold protection of the non-coat items has been removed, so as not
- to give patreon donors an unfair advantage - the winter coat provides equivalent
- cold protection
-*/
-/obj/item/clothing/gloves/furgloves
- desc = "These gloves are warm and furry."
- name = "fur gloves"
- icon = 'icons/mob/tribbles.dmi'
- icon_state = "furglovesico"
- item_state = "furgloves"
- transfer_prints = TRUE
- transfer_blood = TRUE
-
-// Equivalent to a winter coat's hood
-/obj/item/clothing/head/furcap
- name = "fur cap"
- desc = "A warm furry cap."
- icon = 'icons/mob/tribbles.dmi'
- icon_state = "furcap"
- item_state = "furcap"
-
- cold_protection = HEAD
- min_cold_protection_temperature = FIRE_SUIT_MIN_TEMP_PROTECT
-
-/obj/item/clothing/shoes/furboots
- name = "fur boots"
- desc = "Warm, furry boots."
- icon = 'icons/mob/tribbles.dmi'
- icon_state = "furboots"
- item_state = "furboots"
-
-// As a donator piece of clothing, this is now in line with the winter coat
-/obj/item/clothing/suit/furcoat
- name = "fur coat"
- desc = "A trenchcoat made from fur. You could put an oxygen tank in one of the pockets."
- icon = 'icons/mob/tribbles.dmi'
- icon_state = "furcoat"
- item_state = "furcoat"
- blood_overlay_type = "armor"
- body_parts_covered = UPPER_TORSO|ARMS|LOWER_TORSO
- allowed = list (/obj/item/tank/internals/emergency_oxygen)
- cold_protection = UPPER_TORSO | LOWER_TORSO | ARMS
- min_cold_protection_temperature = FIRE_SUIT_MIN_TEMP_PROTECT
-
-/obj/item/clothing/suit/furcape
- name = "fur cape"
- desc = "A cape made from fur. You'll really be stylin' now."
- icon = 'icons/mob/tribbles.dmi'
- icon_state = "furcape"
- item_state = "furcape"
- blood_overlay_type = "armor"
- body_parts_covered = UPPER_TORSO|ARMS
- cold_protection = UPPER_TORSO | ARMS
- min_cold_protection_temperature = FIRE_SUIT_MIN_TEMP_PROTECT
diff --git a/icons/mob/tribbles.dmi b/icons/mob/tribbles.dmi
deleted file mode 100644
index 95c92f4a236..00000000000
Binary files a/icons/mob/tribbles.dmi and /dev/null differ
diff --git a/icons/obj/clothing/gloves.dmi b/icons/obj/clothing/gloves.dmi
index 06bb96f43a5..4c1283dcd9d 100644
Binary files a/icons/obj/clothing/gloves.dmi and b/icons/obj/clothing/gloves.dmi differ
diff --git a/icons/obj/clothing/hats.dmi b/icons/obj/clothing/hats.dmi
index 1108cfc5940..26e0af0e331 100644
Binary files a/icons/obj/clothing/hats.dmi and b/icons/obj/clothing/hats.dmi differ
diff --git a/icons/obj/clothing/shoes.dmi b/icons/obj/clothing/shoes.dmi
index 4c0b649f615..9ef3c420c40 100644
Binary files a/icons/obj/clothing/shoes.dmi and b/icons/obj/clothing/shoes.dmi differ
diff --git a/icons/obj/clothing/suits.dmi b/icons/obj/clothing/suits.dmi
index 674c20510cf..7169dbbbde0 100644
Binary files a/icons/obj/clothing/suits.dmi and b/icons/obj/clothing/suits.dmi differ
diff --git a/icons/obj/items.dmi b/icons/obj/items.dmi
index fdade4fbd8d..e4cafbf62f7 100644
Binary files a/icons/obj/items.dmi and b/icons/obj/items.dmi differ
diff --git a/paradise.dme b/paradise.dme
index 3679e569266..d61939ad927 100644
--- a/paradise.dme
+++ b/paradise.dme
@@ -2039,7 +2039,6 @@
#include "code\modules\mob\living\simple_animal\powers.dm"
#include "code\modules\mob\living\simple_animal\shade.dm"
#include "code\modules\mob\living\simple_animal\simple_animal.dm"
-#include "code\modules\mob\living\simple_animal\tribbles.dm"
#include "code\modules\mob\living\simple_animal\bot\bot.dm"
#include "code\modules\mob\living\simple_animal\bot\cleanbot.dm"
#include "code\modules\mob\living\simple_animal\bot\construction.dm"