diff --git a/code/datums/components/crafting/tailoring.dm b/code/datums/components/crafting/tailoring.dm index 7e04ff571d3..f49e78c25d9 100644 --- a/code/datums/components/crafting/tailoring.dm +++ b/code/datums/components/crafting/tailoring.dm @@ -129,3 +129,17 @@ tools = list(TOOL_WIRECUTTER) reqs = list(/obj/item/bedsheet = 1) category = CAT_CLOTHING + +/datum/crafting_recipe/cowboyboots + name = "Cowboy Boots" + result = /obj/item/clothing/shoes/cowboy + reqs = list(/obj/item/stack/sheet/leather = 2) + time = 45 + category = CAT_CLOTHING + +/datum/crafting_recipe/lizardboots + name = "Lizard Skin Boots" + result = /obj/effect/spawner/lootdrop/lizardboots + reqs = list(/obj/item/stack/sheet/animalhide/lizard = 1, /obj/item/stack/sheet/leather = 1) + time = 60 + category = CAT_CLOTHING \ No newline at end of file diff --git a/code/modules/cargo/exports/gear.dm b/code/modules/cargo/exports/gear.dm index 125e0f708be..9d3e18df00d 100644 --- a/code/modules/cargo/exports/gear.dm +++ b/code/modules/cargo/exports/gear.dm @@ -81,3 +81,19 @@ cost = 100 unit_name = "bomb suit" export_types = list(/obj/item/clothing/suit/bomb_suit) + +/datum/export/gear/lizardboots + cost = 350 + unit_name = "lizard skin boots" + export_types = list(/obj/item/clothing/shoes/cowboy/lizard) + include_subtypes = FALSE + +/datum/export/gear/lizardmasterwork + cost = 1000 + unit_name = "Hugs-the-Feet lizard boots" + export_types = list(/obj/item/clothing/shoes/cowboy/lizard/masterwork) + +/datum/export/gear/bilton + cost = 2500 + unit_name = "bilton wrangler boots" + export_types = list(/obj/item/clothing/shoes/cowboy/fancy) diff --git a/code/modules/clothing/shoes/miscellaneous.dm b/code/modules/clothing/shoes/miscellaneous.dm index 83d519ed616..03ad53f3a08 100644 --- a/code/modules/clothing/shoes/miscellaneous.dm +++ b/code/modules/clothing/shoes/miscellaneous.dm @@ -336,3 +336,85 @@ icon_state = "rus_shoes" item_state = "rus_shoes" pocket_storage_component_path = /datum/component/storage/concrete/pockets/shoes + +/obj/item/clothing/shoes/cowboy + name = "cowboy boots" + desc = "A small sticker lets you know they've been inspected for snakes, It is unclear how long ago the inspection took place..." + icon_state = "cowboy_brown" + permeability_coefficient = 0.05 //these are quite tall + pocket_storage_component_path = /datum/component/storage/concrete/pockets/shoes + custom_price = 35 //poor assistants cant afford 50 credits + var/list/occupants = list() + var/max_occupants = 4 + +/obj/item/clothing/shoes/cowboy/Initialize() + . = ..() + if(prob(2)) + var/mob/living/simple_animal/hostile/retaliate/poison/snake/bootsnake = new/mob/living/simple_animal/hostile/retaliate/poison/snake(src) + occupants += bootsnake + + +/obj/item/clothing/shoes/cowboy/equipped(mob/living/carbon/user, slot) + . = ..() + if(slot == SLOT_SHOES) + for(var/mob/living/occupant in occupants) + occupant.forceMove(user.drop_location()) + user.visible_message("[user] recoils as something slithers out of [src].", " You feel a sudden stabbing pain in your [pick("foot", "toe", "ankle")]!") + user.Knockdown(20) //Is one second paralyze better here? I feel you would fall on your ass in some fashion. + user.apply_damage(5, BRUTE, pick(BODY_ZONE_R_LEG, BODY_ZONE_L_LEG)) + if(istype(occupant, /mob/living/simple_animal/hostile/retaliate/poison)) + user.reagents.add_reagent(/datum/reagent/toxin, 7) + occupants.Cut() + +/obj/item/clothing/shoes/cowboy/MouseDrop_T(mob/living/target, mob/living/user) + . = ..() + if(user.stat || !(user.mobility_flags & MOBILITY_USE) || user.restrained() || !Adjacent(user) || !user.Adjacent(target) || target.stat == DEAD) + return + if(occupants.len >= max_occupants) + to_chat(user, "[src] are full!") + return + if(istype(target, /mob/living/simple_animal/hostile/retaliate/poison/snake) || istype(target, /mob/living/simple_animal/hostile/headcrab) || istype(target, /mob/living/carbon/alien/larva)) + occupants += target + target.forceMove(src) + to_chat(user, "[target] slithers into [src]") + +/obj/item/clothing/shoes/cowboy/container_resist(mob/living/user) + if(!do_after(user, 10, target = user)) + return + user.forceMove(user.drop_location()) + occupants -= user + +/obj/item/clothing/shoes/cowboy/white + name = "white cowboy boots" + icon_state = "cowboy_white" + +/obj/item/clothing/shoes/cowboy/black + name = "black cowboy boots" + desc = "You get the feeling someone might have been hanged in these boots." + icon_state = "cowboy_black" + +/obj/item/clothing/shoes/cowboy/fancy + name = "bilton wrangler boots" + desc = "A pair of authentic haute couture boots from Japanifornia. You doubt they have ever been close to cattle." + icon_state = "cowboy_fancy" + permeability_coefficient = 0.08 + +/obj/item/clothing/shoes/cowboy/lizard + name = "lizard skin boots" + desc = "You can hear a faint hissing from inside the boots; you hope it is just a mournful ghost." + icon_state = "lizardboots_green" + armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 40, "acid" = 0) //lizards like to stay warm + +/obj/item/clothing/shoes/cowboy/lizard/masterwork + name = "\improper Hugs-The-Feet lizard skin boots" + desc = "A pair of masterfully crafted lizard skin boots. Finally a good application for the station's most bothersome inhabitants." + icon_state = "lizardboots_blue" + +/obj/effect/spawner/lootdrop/lizardboots + name = "random lizard boot quality" + desc = "Which ever gets picked, the lizard race loses" + icon = 'icons/obj/clothing/shoes.dmi' + icon_state = "lizardboots_green" + loot = list( + /obj/item/clothing/shoes/cowboy/lizard = 7, + /obj/item/clothing/shoes/cowboy/lizard/masterwork = 1) diff --git a/code/modules/vending/clothesmate.dm b/code/modules/vending/clothesmate.dm index 922b8b2a871..361b80f7c34 100644 --- a/code/modules/vending/clothesmate.dm +++ b/code/modules/vending/clothesmate.dm @@ -101,6 +101,9 @@ /obj/item/clothing/suit/ianshirt = 1, /obj/item/clothing/shoes/laceup = 2, /obj/item/clothing/shoes/sandal = 2, + /obj/item/clothing/shoes/cowboy = 2, + /obj/item/clothing/shoes/cowboy/white = 2, + /obj/item/clothing/shoes/cowboy/black = 2, /obj/item/clothing/suit/jacket/miljacket = 1, /obj/item/clothing/suit/apron/purple_bartender = 2, /obj/item/clothing/under/rank/bartender/purple = 2) diff --git a/icons/mob/feet.dmi b/icons/mob/feet.dmi index db12bc0cd5c..b785527ff7d 100644 Binary files a/icons/mob/feet.dmi and b/icons/mob/feet.dmi differ diff --git a/icons/obj/clothing/shoes.dmi b/icons/obj/clothing/shoes.dmi index 556d18cf28f..0be7d24e18f 100644 Binary files a/icons/obj/clothing/shoes.dmi and b/icons/obj/clothing/shoes.dmi differ