From 2e4c5e322dd650e6b250dc1413b8983009243fee Mon Sep 17 00:00:00 2001 From: timothyteakettle <59849408+timothyteakettle@users.noreply.github.com> Date: Mon, 29 Jun 2020 02:49:31 +0100 Subject: [PATCH] tray and jar --- code/game/objects/items/pet_carrier.dm | 57 +++++++++++++----- code/game/objects/items/storage/bags.dm | 10 +++ .../research/designs/bluespace_designs.dm | 20 ++++++ .../research/techweb/nodes/bluespace_nodes.dm | 2 +- icons/obj/food/containers.dmi | Bin 13028 -> 13280 bytes icons/obj/pet_carrier.dmi | Bin 2034 -> 2372 bytes 6 files changed, 72 insertions(+), 17 deletions(-) diff --git a/code/game/objects/items/pet_carrier.dm b/code/game/objects/items/pet_carrier.dm index 9d9409acf0..5898f882a0 100644 --- a/code/game/objects/items/pet_carrier.dm +++ b/code/game/objects/items/pet_carrier.dm @@ -22,6 +22,10 @@ var/occupant_weight = 0 var/max_occupants = 3 //Hard-cap so you can't have infinite mice or something in one carrier var/max_occupant_weight = MOB_SIZE_SMALL //This is calculated from the mob sizes of occupants + var/entrance_name = "door" //name of the entrance to the item + var/escape_time = 200 //how long it takes for mobs above small sizes to escape (for small sizes, its randomly 1.5 to 2x this) + var/load_time = 30 //how long it takes for mobs to be loaded into the pet carrier + var/has_lock_sprites = TRUE //whether to load the lock overlays or not /obj/item/pet_carrier/Destroy() if(occupants.len) @@ -51,20 +55,20 @@ else . += "It has nothing inside." if(user.canUseTopic(src)) - . += "Activate it in your hand to [open ? "close" : "open"] its door." + . += "Activate it in your hand to [open ? "close" : "open"] its [entrance_name]." if(!open) - . += "Alt-click to [locked ? "unlock" : "lock"] its door." + . += "Alt-click to [locked ? "unlock" : "lock"] its [entrance_name]." /obj/item/pet_carrier/attack_self(mob/living/user) if(open) - to_chat(user, "You close [src]'s door.") + to_chat(user, "You close [src]'s [entrance_name].") playsound(user, 'sound/effects/bin_close.ogg', 50, TRUE) open = FALSE else if(locked) to_chat(user, "[src] is locked!") return - to_chat(user, "You open [src]'s door.") + to_chat(user, "You open [src]'s [entrance_name].") playsound(user, 'sound/effects/bin_open.ogg', 50, TRUE) open = TRUE update_icon() @@ -86,7 +90,7 @@ if(user.a_intent == INTENT_HARM) return ..() if(!open) - to_chat(user, "You need to open [src]'s door!") + to_chat(user, "You need to open [src]'s [entrance_name]!") return if(target.mob_size > max_occupant_weight) if(ishuman(target)) @@ -94,7 +98,7 @@ if(iscatperson(H)) to_chat(user, "You'd need a lot of catnip and treats, plus maybe a laser pointer, for that to work.") else - to_chat(user, "Humans, generally, do not fit into pet carriers.") + to_chat(user, "Humans, generally, do not fit into [name]s.") else to_chat(user, "You get the feeling [target] isn't meant for a [name].") return @@ -110,8 +114,8 @@ remove_occupant(user) return else if(!locked) - loc.visible_message("[user] pushes open the door to [src]!", \ - "[user] pushes open the door of [src]!") + loc.visible_message("[user] pushes open the [entrance_name] to [src]!", \ + "[user] pushes open the [entrance_name] of [src]!") open = TRUE update_icon() return @@ -122,9 +126,9 @@ user.changeNext_move(CLICK_CD_BREAKOUT) user.last_special = world.time + CLICK_CD_BREAKOUT if(user.mob_size <= MOB_SIZE_SMALL) - to_chat(user, "You poke a limb through [src]'s bars and start fumbling for the lock switch... (This will take some time.)") - to_chat(loc, "You see [user] reach through the bars and fumble for the lock switch!") - if(!do_after(user, rand(300, 400), target = user) || open || !locked || !(user in occupants)) + to_chat(user, "You begin to try escaping the [src] and start fumbling for the lock switch... (This will take some time.)") + to_chat(loc, "You see [user] attempting to unlock the [src]!") + if(!do_after(user, rand(escape_time * 1.5, escape_time * 2), target = user) || open || !locked || !(user in occupants)) return loc.visible_message("[user] flips the lock switch on [src] by reaching through!", null, null, null, user) to_chat(user, "Bingo! The lock pops open!") @@ -132,12 +136,12 @@ playsound(src, 'sound/machines/boltsup.ogg', 30, TRUE) update_icon() else - loc.visible_message("[src] starts rattling as something pushes against the door!", null, null, null, user) + loc.visible_message("[src] starts rattling as something pushes against the [entrance_name]!", null, null, null, user) to_chat(user, "You start pushing out of [src]... (This will take about 20 seconds.)") - if(!do_after(user, 200, target = user) || open || !locked || !(user in occupants)) + if(!do_after(user, escape_time, target = user) || open || !locked || !(user in occupants)) return loc.visible_message("[user] shoves out of [src]!", null, null, null, user) - to_chat(user, "You shove open [src]'s door against the lock's resistance and fall out!") + to_chat(user, "You shove open [src]'s [entrance_name] against the lock's resistance and fall out!") locked = FALSE open = TRUE update_icon() @@ -151,7 +155,7 @@ /obj/item/pet_carrier/update_overlays() . = ..() - if(!open) + if(!open && has_lock_sprites) . += "[locked ? "" : "un"]locked" /obj/item/pet_carrier/MouseDrop(atom/over_atom) @@ -170,7 +174,7 @@ user.visible_message("[user] starts loading [target] into [src].", \ "You start loading [target] into [src]...", null, null, target) to_chat(target, "[user] starts loading you into [user.p_their()] [name]!") - if(!do_mob(user, target, 30)) + if(!do_mob(user, target, load_time)) return if(target in occupants) return @@ -197,4 +201,25 @@ occupant_weight -= occupant.mob_size occupant.setDir(SOUTH) +//bluespace jar, a reskin of the pet carrier that can fit people +/obj/item/pet_carrier/bluespace + name = "bluespace jar" + desc = "A jar, that seems to be bigger on the inside, somehow allowing lifeforms to fit through its narrow entrance." + icon = 'icons/obj/pet_carrier.dmi' + icon_state = "bluespace_jar_open" + item_state = "bluespace_jar" + lefthand_file = "" + righthand_file = "" + max_occupant_weight = MOB_SIZE_HUMAN //can fit people, like a bluespace bodybag! + entrance_name = "lid" + w_class = WEIGHT_CLASS_NORMAL //it can fit in bags, like a bluespace bodybag! + has_lock_sprites = FALSE //jar doesn't show the regular lock overlay + custom_materials = list(/datum/material/glass = 1000, /datum/material/bluespace = 600) + +obj/item/pet_carrier/bluespace/update_icon_state() + if(open) + icon_state = initial(icon_state) + else + icon_state = "bluespace_jar" + #undef pet_carrier_full diff --git a/code/game/objects/items/storage/bags.dm b/code/game/objects/items/storage/bags.dm index ee515d321f..9169dc6a3d 100644 --- a/code/game/objects/items/storage/bags.dm +++ b/code/game/objects/items/storage/bags.dm @@ -326,6 +326,7 @@ w_class = WEIGHT_CLASS_BULKY flags_1 = CONDUCT_1 custom_materials = list(/datum/material/iron=3000) + var/max_items = 7 /obj/item/storage/bag/tray/ComponentInitialize() . = ..() @@ -333,6 +334,7 @@ STR.max_w_class = WEIGHT_CLASS_NORMAL STR.can_hold = typecacheof(list(/obj/item/reagent_containers/food, /obj/item/reagent_containers/glass, /datum/reagent/consumable, /obj/item/kitchen/knife, /obj/item/kitchen/rollingpin, /obj/item/kitchen/fork, /obj/item/storage/box)) //Should cover: Bottles, Beakers, Bowls, Booze, Glasses, Food, Kitchen Tools, and ingredient boxes. STR.insert_preposition = "on" + STR.max_items = max_items /obj/item/storage/bag/tray/attack(mob/living/M, mob/living/user) . = ..() @@ -373,6 +375,14 @@ . = ..() update_icon() +//bluespace tray, holds more items +/obj/item/storage/bag/tray/bluespace + name = "bluespace tray" + icon_state = "bluespace_tray" + desc = "A tray created using bluespace technology to fit more food on it." + max_items = 14 // twice as many items + custom_materials = list(/datum/material/iron = 2000, /datum/material/bluespace = 500) + /* * Chemistry bag */ diff --git a/code/modules/research/designs/bluespace_designs.dm b/code/modules/research/designs/bluespace_designs.dm index 0d11b8e887..336dc4ec8e 100644 --- a/code/modules/research/designs/bluespace_designs.dm +++ b/code/modules/research/designs/bluespace_designs.dm @@ -95,3 +95,23 @@ build_path = /obj/item/storage/bag/ore/holding category = list("Bluespace Designs") departmental_flags = DEPARTMENTAL_FLAG_CARGO + +/datum/design/bluespace_tray + name = "Bluespace Tray" + desc = "A tray created using bluespace technology to fit more food on it." + id = "bluespace_tray" + build_type = PROTOLATHE + build_path = /obj/item/storage/bag/tray/bluespace + materials = list(/datum/material/iron = 2000, /datum/material/bluespace = 500) + category = list("Bluespace Designs") + departmental_flags = DEPARTMENTAL_FLAG_SERVICE + +/datum/design/bluespace_carrier + name = "Bluespace Jar" + desc = "A jar used to contain creatures, using the power of bluespace." + id = "bluespace_carrier" + build_type = PROTOLATHE + build_path = /obj/item/pet_carrier/bluespace + materials = list(/datum/material/glass = 1000, /datum/material/bluespace = 600) + category = list("Bluespace Designs") + departmental_flags = DEPARTMENTAL_FLAG_SCIENCE \ No newline at end of file diff --git a/code/modules/research/techweb/nodes/bluespace_nodes.dm b/code/modules/research/techweb/nodes/bluespace_nodes.dm index 3aacc9fec5..f8e5eeb0a4 100644 --- a/code/modules/research/techweb/nodes/bluespace_nodes.dm +++ b/code/modules/research/techweb/nodes/bluespace_nodes.dm @@ -37,7 +37,7 @@ display_name = "Bluespace Pockets" description = "Studies into the mysterious alternate dimension known as bluespace and how to place items in the threads of reality." prereq_ids = list("adv_power", "adv_bluespace", "adv_biotech", "adv_plasma") - design_ids = list( "bluespacebodybag","bag_holding", "bluespace_pod", "borg_upgrade_trashofholding", "blutrash", "satchel_holding", "bsblood_bag", "duffelbag_holding") + design_ids = list( "bluespacebodybag","bag_holding", "bluespace_pod", "borg_upgrade_trashofholding", "blutrash", "satchel_holding", "bsblood_bag", "duffelbag_holding", "bluespace_tray", "bluespace_carrier") research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 5500) /datum/techweb_node/bluespace_portal diff --git a/icons/obj/food/containers.dmi b/icons/obj/food/containers.dmi index 641715fd87fad0f4c8737da657e971f16ec053f1..b0fa8bda2a87a687373674e9d34081dbe73c4b53 100644 GIT binary patch literal 13280 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ν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