diff --git a/code/game/objects/items/weapons/storage/backpack_vr.dm b/code/game/objects/items/weapons/storage/backpack_vr.dm index 29e4403c2c..2b13fbbe07 100644 --- a/code/game/objects/items/weapons/storage/backpack_vr.dm +++ b/code/game/objects/items/weapons/storage/backpack_vr.dm @@ -29,3 +29,44 @@ icon_state = "saddlebag_drider" var/taurtype = /datum/sprite_accessory/tail/taur/spider */ + +/obj/item/weapon/storage/backpack/saddlebag_common //Shared bag for other taurs with sturdy backs + name = "Taur Saddlebags" + desc = "A saddle that holds items. Seems slightly bulky." + icon = 'icons/obj/storage_vr.dmi' + icon_override = 'icons/mob/back_vr.dmi' + item_state = "saddlebag" + icon_state = "saddlebag" + var/icon_base = "saddlebag" + max_storage_space = INVENTORY_DUFFLEBAG_SPACE //Saddlebags can hold more, like dufflebags + slowdown = 1 //And are slower, too...Unless you're a macro, that is. + var/list/taurtype = list( + /datum/sprite_accessory/tail/taur/horse, + /datum/sprite_accessory/tail/taur/wolf, + /datum/sprite_accessory/tail/taur/cow, + /datum/sprite_accessory/tail/taur/lizard, + /datum/sprite_accessory/tail/taur/feline) + var/no_message = "You aren't the appropriate taur type to wear this!" + + mob_can_equip(var/mob/living/carbon/human/H, slot, disable_warning = 0) + if(..()) + var/datum/sprite_accessory/tail/taur/TT = H.tail_style + if(istype(H) && is_type_in_list(TT, taurtype)) + item_state = "[icon_base]_[TT]" + if(H.size_multiplier >= RESIZE_BIG) //Are they a macro? + slowdown = 0 + else + slowdown = initial(slowdown) + return 1 + else + H << "[no_message]" + return 0 + +/obj/item/weapon/storage/backpack/saddlebag_common/robust //Shared bag for other taurs with sturdy backs + name = "Robust Saddlebags" + desc = "A saddle that holds items. Seems robust." + icon = 'icons/obj/storage_vr.dmi' + icon_override = 'icons/mob/back_vr.dmi' + item_state = "robustsaddle" + icon_state = "robustsaddle" + icon_base = "robustsaddle" \ No newline at end of file diff --git a/code/modules/client/preference_setup/loadout/loadout_accessories_vr.dm b/code/modules/client/preference_setup/loadout/loadout_accessories_vr.dm index b88d846c16..2fd208cfd7 100644 --- a/code/modules/client/preference_setup/loadout/loadout_accessories_vr.dm +++ b/code/modules/client/preference_setup/loadout/loadout_accessories_vr.dm @@ -33,10 +33,20 @@ allowed_roles = list("Paramedic","Chief Medical Officer","Medical Doctor","Chemist") /datum/gear/accessory/saddlebag - display_name = "Saddle Bag" + display_name = "Saddle Bag, Horse" path = /obj/item/weapon/storage/backpack/saddlebag slot = slot_back +/datum/gear/accessory/saddlebag_common + display_name = "Saddle Bag, Common" + path = /obj/item/weapon/storage/backpack/saddlebag_common + slot = slot_back + +/datum/gear/accessory/saddlebag_common/robust + display_name = "Saddle Bag, Robust" + path = /obj/item/weapon/storage/backpack/saddlebag_common/robust + slot = slot_back + /datum/gear/accessory/khcrystal display_name = "KH Life Crystal" path = /obj/item/weapon/storage/box/khcrystal diff --git a/code/modules/mob/living/silicon/robot/dogborg/dog_sleeper_vr.dm b/code/modules/mob/living/silicon/robot/dogborg/dog_sleeper_vr.dm index 3702b778aa..2b535c450d 100644 --- a/code/modules/mob/living/silicon/robot/dogborg/dog_sleeper_vr.dm +++ b/code/modules/mob/living/silicon/robot/dogborg/dog_sleeper_vr.dm @@ -119,6 +119,10 @@ dat += "
" + if(istype(src, /obj/item/device/dogborg/sleeper/compactor))//garbage counter for trashpup + if(length(contents) > 0) + dat += "Current load [length(contents)] / 25.
" + //Cleaning and there are still un-preserved items if(cleaning && length(contents - items_preserved)) dat += "Self-cleaning mode. [length(contents - items_preserved)] object(s) remaining.
" @@ -446,7 +450,7 @@ inject_amount = 10 min_health = -100 injection_chems = null //So they don't have all the same chems as the medihound! - var/max_item_count = 32 + var/max_item_count = 25 /obj/item/device/dogborg/sleeper/compactor/afterattack(var/atom/movable/target, mob/living/silicon/user, proximity)//GARBO NOMS hound = loc @@ -476,6 +480,19 @@ hound.updateicon() return + if(istype(target, /mob/living/simple_animal/mouse)) //Edible mice, dead or alive whatever. Mostly for carcass picking you cruel bastard :v + var/mob/living/simple_animal/trashmouse = target + user.visible_message("[hound.name] is ingesting [trashmouse] into their [src.name].", "You start ingesting [trashmouse] into your [src.name]...") + if(do_after(user, 30, trashmouse) && length(contents) < max_item_count) + trashmouse.forceMove(src) + trashmouse.reset_view(src) + user.visible_message("[hound.name]'s garbage processor groans lightly as [trashmouse] slips inside.", "Your garbage compactor groans lightly as [trashmouse] slips inside.") + playsound(hound, 'sound/vore/gulp.ogg', 50, 1) + if(length(contents) > 11) //grow that tum after a certain junk amount + hound.sleeper_r = 1 + hound.updateicon() + return + else if(ishuman(target)) var/mob/living/carbon/human/trashman = target if(patient) @@ -496,4 +513,12 @@ hound.updateicon() return return -//Marking shit changed again because the random travis bug is having its shenanigans again \o/ \ No newline at end of file + +/mob/living/silicon/robot/attackby(obj/item/target as obj, mob/user as mob) + if(module_active && istype(module_active,/obj/item/device/dogborg/sleeper/compactor)) //Feeding? + if(user.a_intent == I_HELP) + var/obj/item/device/dogborg/sleeper/compactor = src.module_active + compactor.afterattack(target) + return + return + ..() \ No newline at end of file diff --git a/icons/mob/back_vr.dmi b/icons/mob/back_vr.dmi index cbbe9afd59..e86bd0c21b 100644 Binary files a/icons/mob/back_vr.dmi and b/icons/mob/back_vr.dmi differ diff --git a/icons/mob/vore/taurs_vr.dmi b/icons/mob/vore/taurs_vr.dmi index 805a2c3752..d23b00ed89 100644 Binary files a/icons/mob/vore/taurs_vr.dmi and b/icons/mob/vore/taurs_vr.dmi differ diff --git a/icons/obj/storage_vr.dmi b/icons/obj/storage_vr.dmi index f337551005..161d35f236 100644 Binary files a/icons/obj/storage_vr.dmi and b/icons/obj/storage_vr.dmi differ