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"