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 01/18] 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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 From 70a2238f0421ae878aa56eed787d94205b4facf2 Mon Sep 17 00:00:00 2001 From: Timothy Teakettle <59849408+timothyteakettle@users.noreply.github.com> Date: Mon, 29 Jun 2020 17:43:16 +0100 Subject: [PATCH 02/18] more pet carrier changes --- code/game/objects/items/pet_carrier.dm | 14 ++++++++++++-- icons/obj/pet_carrier.dmi | Bin 2372 -> 2341 bytes 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/code/game/objects/items/pet_carrier.dm b/code/game/objects/items/pet_carrier.dm index 5898f882a0..43d7c8afa4 100644 --- a/code/game/objects/items/pet_carrier.dm +++ b/code/game/objects/items/pet_carrier.dm @@ -26,6 +26,7 @@ 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 + var/allows_hostiles = FALSE //does the pet carrier allow hostile entities to be held within it? /obj/item/pet_carrier/Destroy() if(occupants.len) @@ -105,6 +106,8 @@ if(user == target) to_chat(user, "Why would you ever do that?") return + if(ishostile(target) && !allows_hostiles) && target.move_resist < MOVE_FORCE_VERY_STRONG) //don't allow goliaths into pet carriers + to_chat(user, "You have a feeling you shouldn't keep this as a pet.") load_occupant(user, target) /obj/item/pet_carrier/relaymove(mob/living/user, direction) @@ -205,7 +208,6 @@ /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 = "" @@ -213,13 +215,21 @@ 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! + max_occupants = 1 //far less than a regular carrier or bluespace bodybag, because it can be thrown to release the contents + allows_hostiles = TRUE //can fit hostile creatures, however only those of a human size or smaller (and not things like goliaths) 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() +/obj/item/pet_carrier/bluespace/update_icon_state() if(open) icon_state = initial(icon_state) else icon_state = "bluespace_jar" +/obj/item/pet_carrier/bluespace/throw_impact() + //delete the item upon impact, releasing the creature inside (this is handled by its deletion) + qdel(src) + playsound(src, "shatter", 70, 1) + ..() + #undef pet_carrier_full diff --git a/icons/obj/pet_carrier.dmi b/icons/obj/pet_carrier.dmi index 32fca90f0bff4b31eebf5b44efba0998295dd024..2d7e9e70b6efbe36d8e01d6a2fc468510ec8e1d7 100644 GIT binary patch delta 2155 zcmaix2Taq87RLWj*&9I+WG|t}RzVpSs7z%#E(Ho)tc_&|2=uc4rGO|Kq_;9<6;zZ` zQ8u&)hze5KQ_6^}qJS0z9)-t!FL^Jy$;&&*mz*yrC+C;%bcvJ1vj#v5J8PIbw(wiN zLx60L+&e14dhm**Jx9JrE!;}?bfwx^)iVUafMf0j0M{L_sJ?h94HM~EIVO--C!W$KGACo|TGW+7$kKpeQLwVF{#WPe%z^}FI{5k#z+u$O8x%GYG2 z+8dIg@Jj_0<$ZrpKZWYFW^g#N*jZ)}j?{2BEFaXyEMzq}7B@mJCYWAW&$&HqQL3f?Q*sjY& zt++oRr@0itFM0@VlP6QX2I;pZhvL)Pr@nCmj>(-VRe`8LDG3D9IxXBURQyuZXAO0Y zkd0Xw>7D!5&mj2pLtU7oTTp}S)no`Td(YUv_o(mi5sjR8*v%j9D%uf0&^N$a8-Nd2 z?%o{CwmMZ9mXH7+A*LR_nelENoq`h5-;vP(X{E>vXe{~w4$ajXK?on~!opnHtp1X1 z9|8+rD9j`Nq2f88lgG>70wrvaX-f%)w>LWS44>a>+w7Iins6;DDC%zNC^gkwbm==G zz@2=M(KIn}Pn6pg_tfGC9V~5X0#5>=g7gOQej#B=ICXdv>IvcHRVvASyRZpd>hE)d zuGdYGLj5C7gkOy0%w6VJL@3ybVBOpvvFaMdhxPJ4mE__@U9;jM_WeG(K$+>t2(A}1 z@;$Dm8JMveUo8nsbd(HkTS6kg_;UJ4icGbn!=~}|;7n!;a+n&kYmg5X6sW0KmyhUl z(K?4i=H4dZSzqVJa`3D!@?(6|nkp>vx3Y z;NZ}2pM~I>NKo?vfuy&rx`nX<{NPh2)Plzu-}S>_acN13m(v4*(3j-z@T1UBb-wE2 z95|bg4JcGCg%V%W-|vX%8jr=Q2Sw0 zfM@RfiKcyw#H`mG+*=Jjx|JuN(5pPQv8MS8#4E7!U=YhS=PePxGgFva`oTZvBkBXGIU7P4SX%a_x`GBRp;a_~|_y^Uvu>mCl0)Zff+C;Ym$i)Qv?=G!E zXyZG^;9A7R({|uGI+!SEtNKXq+BG{c-)(lTqBMyaJspId4*H~dy5)sh+{7p2?C%W; zx#nN+orH2U24kgtBB49LvMo@gz29^tP}ip1rNUKHFfiPzkqmBsSP_w%zNDOIee`u} zgNNh=hoco@23*+?zzr`#ob6L<)_JLrCm=m}Zq9eVbSgD!N?uSz1cIC2tX&}Ivql<} z4eB1CP|8Zj5Qvo@qkqQaJ>vYO-^B4yd_Wx8}A zkRfO0yTbs3aKf*6EM%Q-kbRH;8>-Tu8(VE*&U|^W6Yy-3Zu4d=x_***tCCE}Iav$x zlmC1kc*gPD?P{`QF<#p36%S>I-m2=O2DZ6w_N|oAKxc2m7%sj0!Ek9@ju#xml=^i? z8IvpDI1_z%#cE1y8hE#X`C9;wEqJhP-lJYV{K)^4%YPHo_oq?HHI_9L)cz7$iHr&p zly+YG<-gD?=f#~n&)x}5Mna@Jg?t3h;E_>ax689I=^pi0Nrdx#gC iZvYC*^KZ$21K8zT6%!@Q4op@7M`Z`UYF%ULga0Q8E))O& delta 2187 zcmZ`(XHb)i68%CHkP-n=fgrs|ktiZn=~WOE#CT~TK#0=B0J$KLkEo;AU_pEfeJf zHxcV;$>_vWY~{`M^VQ2YZHRu!9r%>$8%hhJ5?RL5#L)K~ErRPrE(Tz1ZXP6h?B>o& zR>b?8*R0!ZL#Q2#<)cOUr^{-*4z&H?Jqup)d_!Cg2Qtlj0i|nGkD45Hrk&~KqZ-%A z%d+!3>tV|pv+1+odV(3nkjN*rU7R}|fh)TD$%5wV8#%A(FN$P18FF$;zKl2J&Uuq; z_D4%Dq_N+#{l4fIYE7_@Z_vq+35SgUuMpvu((+S!j>@OjR5N;)Ms5veF^X4DTN&s$ zlTTLY5MV()hKv*FDjSpl5S67Y6JBxV;?+6Le75eBfK>3#& z+gXlq3uuDNLJX-{4Eh&=xlicjmS@4{HHymf)|pzp^nHRJJKO%-;nDdO6PKa0%JSh| zp{+3|K*A9=NH6`6&C3;?r-xLMXF1p)nVOQ*!L`pHHRnN~PzV!K=!(I}?rNx+>mCIn zT3W=R&@b^wORbdvTW1#;T;5(^vkoTVl~q~jYQz{O|LYZynZzN4nA+?%5;E0Q96(*w&wGbmX1PuwDyL46$!~Z{kKeLJ zwNm|EWm9d{&~?MF?4mBP3@_*Kz~)lg47#dDm<7BaR7$#+mi+N|>h)togsQt95-BZG z>KbXs49&Rsw#^O>j;m>a8c_Xg%45&=aU$Ai+wx3H|CI<1@|Hwo>-+|wKl8y(QM_id z3m51I3kux@B1Z-F%XO2ejKV^>4R5sES+r_~0VjmKWkOxS=}`IH%8fQsU&uVV-P2As*_;`jNqkmC}7>QLdUKcQ*oIM2v)y`55l|QytsgGIPJ7$w zEW=b{L!;$Elu87x?Cs|gmyQIVzhl0^603uY)j0-neLPndgTh^~&i!R0X_)QR zR{8NpO>M2@GxJtAb>hrB@mY`AZTyS*4b3l9wI_9rZPP=#tk>I7i9T+!sfO{xv8gw? zW@XX_Mn+V`;!Lp+fJ*u$5h+woj|RgybI4Jy=c8xwp*QYLCc2*I1gd(Z6YA`#N(d7V zGydKL5yy0-g3NPMsbY z7>g7sJ2_f`GBa|QZgz0$*UFG+3KGYvXDh`J6y}hXqMx8LTT`DfTf&ecCpl+6vH4i} z{NMXcp~1W3{cwL7)kochp2{jRV%n2FrEDYUdP2z@LK6z){`xBWDIlbVezfBqI~S`6 z6~+cIMway`+i^DENMsOXwS4zBAT=vO3D%JvXf{A4t?wuE_3* zu)eS-fO!ddj%L69f0CbF=eh^wf+;$<<#li?ffoKiBkW3O;5h+RsM;o#fg13l_v`Fd zaN99X$k^G$L6 zo7NBd#$jdkU?)d7_phnXAMWEpBOFCsKHPa2UyLY4BWOJZ_ANJ!nPOGC~UG(!n9gguM4&V?4P$jKeA+` Date: Mon, 29 Jun 2020 22:56:25 +0100 Subject: [PATCH 03/18] air is good --- code/game/objects/items/pet_carrier.dm | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/code/game/objects/items/pet_carrier.dm b/code/game/objects/items/pet_carrier.dm index 43d7c8afa4..41ed6d5551 100644 --- a/code/game/objects/items/pet_carrier.dm +++ b/code/game/objects/items/pet_carrier.dm @@ -106,7 +106,7 @@ if(user == target) to_chat(user, "Why would you ever do that?") return - if(ishostile(target) && !allows_hostiles) && target.move_resist < MOVE_FORCE_VERY_STRONG) //don't allow goliaths into pet carriers + if(ishostile(target) && !allows_hostiles && target.move_resist < MOVE_FORCE_VERY_STRONG) //don't allow goliaths into pet carriers to_chat(user, "You have a feeling you shouldn't keep this as a pet.") load_occupant(user, target) @@ -204,7 +204,7 @@ occupant_weight -= occupant.mob_size occupant.setDir(SOUTH) -//bluespace jar, a reskin of the pet carrier that can fit people +//bluespace jar, a reskin of the pet carrier that can fit people and smashes when thrown /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." @@ -213,10 +213,11 @@ lefthand_file = "" righthand_file = "" max_occupant_weight = MOB_SIZE_HUMAN //can fit people, like a bluespace bodybag! + load_time = 50 //loading things into a jar takes longer than a regular pet carrier entrance_name = "lid" w_class = WEIGHT_CLASS_NORMAL //it can fit in bags, like a bluespace bodybag! max_occupants = 1 //far less than a regular carrier or bluespace bodybag, because it can be thrown to release the contents - allows_hostiles = TRUE //can fit hostile creatures, however only those of a human size or smaller (and not things like goliaths) + allows_hostiles = TRUE //can fit hostile creatures, with the move resist restrictions in place, this means they still cannot take things like legions/goliaths/etc regardless has_lock_sprites = FALSE //jar doesn't show the regular lock overlay custom_materials = list(/datum/material/glass = 1000, /datum/material/bluespace = 600) @@ -228,8 +229,16 @@ /obj/item/pet_carrier/bluespace/throw_impact() //delete the item upon impact, releasing the creature inside (this is handled by its deletion) + if(occupants.len) + src.loc.visible_message("The bluespace jar smashes, releasing [occupants[1]]!") qdel(src) playsound(src, "shatter", 70, 1) ..() +/obj/item/pet_carrier/bluespace/return_air() + var/datum/gas_mixture/air_contents = new(101) + air_contents.gases[/datum/gas/oxygen] = 101 //the jar can host things that require oxygen to survive + air_contents.temperature = 293.15 + return air_contents + #undef pet_carrier_full From 0e57e0dd7a9f4460becddc6821a66cee6759c7a8 Mon Sep 17 00:00:00 2001 From: Timothy Teakettle <59849408+timothyteakettle@users.noreply.github.com> Date: Tue, 30 Jun 2020 00:09:14 +0100 Subject: [PATCH 04/18] atmos --- code/game/objects/items/pet_carrier.dm | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/code/game/objects/items/pet_carrier.dm b/code/game/objects/items/pet_carrier.dm index 41ed6d5551..0507180fcc 100644 --- a/code/game/objects/items/pet_carrier.dm +++ b/code/game/objects/items/pet_carrier.dm @@ -213,7 +213,7 @@ lefthand_file = "" righthand_file = "" max_occupant_weight = MOB_SIZE_HUMAN //can fit people, like a bluespace bodybag! - load_time = 50 //loading things into a jar takes longer than a regular pet carrier + load_time = 40 //loading things into a jar takes longer than a regular pet carrier entrance_name = "lid" w_class = WEIGHT_CLASS_NORMAL //it can fit in bags, like a bluespace bodybag! max_occupants = 1 //far less than a regular carrier or bluespace bodybag, because it can be thrown to release the contents @@ -236,8 +236,9 @@ ..() /obj/item/pet_carrier/bluespace/return_air() - var/datum/gas_mixture/air_contents = new(101) - air_contents.gases[/datum/gas/oxygen] = 101 //the jar can host things that require oxygen to survive + var/datum/gas_mixture/air_contents = new(2500) + air_contents.gases[/datum/gas/oxygen] = 22 //the jar can host things that require oxygen to survive + air_contents.gases[/datum/gas/nitrogen] = 82 air_contents.temperature = 293.15 return air_contents From bbd9d3c61f99cc1225f520cd7d5a9b1769d84c2e Mon Sep 17 00:00:00 2001 From: timothyteakettle <59849408+timothyteakettle@users.noreply.github.com> Date: Tue, 30 Jun 2020 00:38:33 +0100 Subject: [PATCH 05/18] better air --- code/game/objects/items/pet_carrier.dm | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/code/game/objects/items/pet_carrier.dm b/code/game/objects/items/pet_carrier.dm index 0507180fcc..14b1e2ed79 100644 --- a/code/game/objects/items/pet_carrier.dm +++ b/code/game/objects/items/pet_carrier.dm @@ -216,6 +216,8 @@ load_time = 40 //loading things into a jar takes longer than a regular pet carrier entrance_name = "lid" w_class = WEIGHT_CLASS_NORMAL //it can fit in bags, like a bluespace bodybag! + throw_speed = 3 + throw_range = 7 max_occupants = 1 //far less than a regular carrier or bluespace bodybag, because it can be thrown to release the contents allows_hostiles = TRUE //can fit hostile creatures, with the move resist restrictions in place, this means they still cannot take things like legions/goliaths/etc regardless has_lock_sprites = FALSE //jar doesn't show the regular lock overlay @@ -236,10 +238,6 @@ ..() /obj/item/pet_carrier/bluespace/return_air() - var/datum/gas_mixture/air_contents = new(2500) - air_contents.gases[/datum/gas/oxygen] = 22 //the jar can host things that require oxygen to survive - air_contents.gases[/datum/gas/nitrogen] = 82 - air_contents.temperature = 293.15 - return air_contents + return loc.return_air() #undef pet_carrier_full From 10a0e1b68827a79f025b6936117bb110f73d4cbe Mon Sep 17 00:00:00 2001 From: timothyteakettle <59849408+timothyteakettle@users.noreply.github.com> Date: Tue, 30 Jun 2020 00:46:27 +0100 Subject: [PATCH 06/18] stick it on the right node --- code/modules/research/techweb/nodes/bluespace_nodes.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/modules/research/techweb/nodes/bluespace_nodes.dm b/code/modules/research/techweb/nodes/bluespace_nodes.dm index f8e5eeb0a4..b0705a0b76 100644 --- a/code/modules/research/techweb/nodes/bluespace_nodes.dm +++ b/code/modules/research/techweb/nodes/bluespace_nodes.dm @@ -13,7 +13,7 @@ display_name = "Applied Bluespace Research" description = "Using bluespace to make things faster and better." prereq_ids = list("bluespace_basic", "engineering") - design_ids = list("bs_rped","biobag_holding","minerbag_holding", "bluespacebeaker", "bluespacesyringe", "phasic_scanning", "bluespacesmartdart", "xenobio_slimebasic") + design_ids = list("bs_rped","biobag_holding","minerbag_holding", "bluespacebeaker", "bluespacesyringe", "phasic_scanning", "bluespacesmartdart", "xenobio_slimebasic", "bluespace_tray", "bluespace_carrier") research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 5000) /datum/techweb_node/adv_bluespace @@ -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", "bluespace_tray", "bluespace_carrier") + design_ids = list( "bluespacebodybag","bag_holding", "bluespace_pod", "borg_upgrade_trashofholding", "blutrash", "satchel_holding", "bsblood_bag", "duffelbag_holding") research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 5500) /datum/techweb_node/bluespace_portal From b36ce5ee5f0cd716494dd19fd51dab11f21cff35 Mon Sep 17 00:00:00 2001 From: timothyteakettle <59849408+timothyteakettle@users.noreply.github.com> Date: Tue, 30 Jun 2020 00:47:38 +0100 Subject: [PATCH 07/18] starts locked so it doesnt look ass --- code/game/objects/items/pet_carrier.dm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/code/game/objects/items/pet_carrier.dm b/code/game/objects/items/pet_carrier.dm index 14b1e2ed79..12d41cbe1a 100644 --- a/code/game/objects/items/pet_carrier.dm +++ b/code/game/objects/items/pet_carrier.dm @@ -208,7 +208,8 @@ /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_state = "bluespace_jar_open" + locked = TRUE + icon_state = "bluespace_jar" item_state = "bluespace_jar" lefthand_file = "" righthand_file = "" From 1748088d42b0883076c1df392960d965faa0b3c2 Mon Sep 17 00:00:00 2001 From: timothyteakettle <59849408+timothyteakettle@users.noreply.github.com> Date: Tue, 30 Jun 2020 00:56:54 +0100 Subject: [PATCH 08/18] small sprite improvement --- code/game/objects/items/pet_carrier.dm | 4 ++-- icons/obj/pet_carrier.dmi | Bin 2341 -> 2362 bytes 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/code/game/objects/items/pet_carrier.dm b/code/game/objects/items/pet_carrier.dm index 12d41cbe1a..def044f970 100644 --- a/code/game/objects/items/pet_carrier.dm +++ b/code/game/objects/items/pet_carrier.dm @@ -208,7 +208,7 @@ /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." - locked = TRUE + open = FALSE //starts closed so it looks better on menus icon_state = "bluespace_jar" item_state = "bluespace_jar" lefthand_file = "" @@ -226,7 +226,7 @@ /obj/item/pet_carrier/bluespace/update_icon_state() if(open) - icon_state = initial(icon_state) + icon_state = "bluespace_jar_open" else icon_state = "bluespace_jar" diff --git a/icons/obj/pet_carrier.dmi b/icons/obj/pet_carrier.dmi index 2d7e9e70b6efbe36d8e01d6a2fc468510ec8e1d7..e79bab72f3787e1ab6640be25fa7067281fda394 100644 GIT binary patch delta 2176 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 From 68525064695880168e855d792b09671b8d89e269 Mon Sep 17 00:00:00 2001 From: timothyteakettle <59849408+timothyteakettle@users.noreply.github.com> Date: Tue, 30 Jun 2020 01:04:50 +0100 Subject: [PATCH 09/18] improve tray sprite --- icons/obj/food/containers.dmi | Bin 13280 -> 13285 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/icons/obj/food/containers.dmi b/icons/obj/food/containers.dmi index b0fa8bda2a87a687373674e9d34081dbe73c4b53..376fc81b4a2b46d49470d504c7a5606060b1dbaf 100644 GIT binary patch delta 12462 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 F{vU`U&UXL+ delta 12435 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 n;+Fr|4Pbe8`(O8C9fKFGiZV?hOF_wjus Date: Tue, 30 Jun 2020 01:06:12 +0100 Subject: [PATCH 10/18] improve jar sprite --- icons/obj/pet_carrier.dmi | Bin 2362 -> 2365 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/icons/obj/pet_carrier.dmi b/icons/obj/pet_carrier.dmi index e79bab72f3787e1ab6640be25fa7067281fda394..b3c11be98fa024a850dfdaee74125e74934bd0a0 100644 GIT binary patch delta 2146 zcmZ{hc{J3G8pnUr*x#{aD@>MTsW7%IlPzQ?WDKDh%PVCGp~=Jumn=g_mO-S^wKtYz zmnA6^EySBKwwgkg#=K*O#+}al&%J-#=RDs(p6@x&=X}rkc8T|j-+PBc+FPIVz?A(c zyWk{;lppN}&%BMOt#T(!^4ac7;K56otx)XfCy9vL@Imnfrd@~6m4waK||c+?u#_BP@pq5L_^KPwysKuSD%d3Kxv z#834#+8K2EJ3FHst5b#Ixs6Q?1HL||6J4}m%cRw7+pS|kgCf;=VPO%{bAq{DiSv?e z6h_!~*U%NWo4Xq0?d@KE-flfEu-vY`C5W~RB&cKLxVJZD5!YJ0PR%tH7S6}dhm#Z& z*QD(!{mtEKug{^P_$1+(GYnR9(HV3?xbt*E`%<^2bVGCFVbf1VS$z$lVlD%=NGIu>z~$RJ zr4K#Ik+h_h$;fNf^?B@HXEGLl^qG+w3=_S<0`|@8paHTIhai$Za#$T%QBIJUxX=u# z6ZLdK4Memm_F7M6d6Y*1NQn8)gDVh-x7`~bHiG0TPMPC)U>%E>~e zcVmFD?%Av^ziwbKR7lZB!R{vJ;>Cj9c5R9K+DGwiVX5*;bh|!Fmstq8jEQA(^Pje#|!RcqxH!UYV!5Fk*Nh zK5$wN-iH@gWNQM4!EC9M!Vc=I@4(t#s^-Wgfze`$*F$9$a(kw%+ zUL7kDbZ=GcZp97DDI$v#EY__^X!`WDCy$jQ3yU|=vwnJTQ!`ox4*j1ee)e#Kq!QozE~&v|yLIuaSbTM-jLH&10^Ohf=X zqWc1ipGBat+CXqd$0+QvOzvp4S6ruW-ExuBIo$GQm+?k~WZ&+58KLS0TI`KY3dkl! z>BIaF@Jgh;y9f%qIn{UtRv^pb@14)x$Be*mfY=r}{p&|26(b*h;BsAkfvif-O? zyHhbiiIb5bs96*k5MUX*FXVXmyW7I+o;#}f_WO0!RvI18o@IW?`8#gx#um!-gE>+G zP{kbrc{O^9nf>al?)B4G%ySxaMW}E>T$1=x(j=QUqv4CuaKw|!^_J3Il_SeM@rj#i zE49+lI;gFWk6ZxhsFMwNRTCR|mR{4*3&q>yIS{p5robB&f4@^Bnn$C-8A0OQ%EiY{ zM2r?qPETveXITdWKrMMsF;&u!D$T)xP2@#wY;Cs*@`hZHHXJSlw2Tftqt?DhUe0`# zeLP<#!(<{b^t9jnU-?=RW;gmO=3vzdStG#Xhj)2;*FH68r3tW2CW@@7i%+xCIXW9f zCTI4Z5BVb-n~lIgC2hq>>4L#h?z4j`ReC8b+obbnRTg5Q&u18eyYK>Qg==B-`}tZ} z1xj2S5BBYj6BfqfcjKaT*20oMeocThnxn*jxeqr77?<+fu{#NGR`d?JbUJk@nY@&8 zxpdHtWp2&g_-?omiIK%Slf8WJn#MeP=gQkq^^Hx;G~a{(NfiZ0^e4V-bEwkcp_P@m z)e$uS*u2d!b?M#ZnP;uy_7o7PKdvzlGFumqO9~wZB8{Nu*U+W^W}jbwGF<(B`%oAb z{%0}hzCWL9nv8`^Fz|nll82N4Xt+)Pz9@@EIiNwY!L;SAosIYHcCR3luSS(|mi6tY zX*1OR9-#}Hf_@B= z@FVU+#395C*DlBtP{n0yfpg@IUCj1Qock@I*;4YPzXgdoT6DG)qCUdejZUXfrNM~7|E+@s`WdL$5$r?W1-N5> M-o?7f5)DfJ5AN9)d;kCd delta 2114 zcmV-I2)*~c61ozQ(SKA)L_t(|ob8-XOdD4o$G-#E&hAn}rFMfF9Pv*y4zRTitX(Cl z%x)`HYPjri55A;-q=+PkZn;#7F;Z4hcC)Ltxu8I$Ql&lQP}*)z+Y~EJ6dPjWBp8Zf zLyDWKn{>C>%Rdt_Zx8lNY%(*R8Qc5X__3A>C&vbnWYbSFIS`UO+aPSw1>{7TW6H9!#d4GrmPfN)+h0aSv%qydL6^2E~Eh+*Flyk4*5iBp3I z@Y~Z@(QxFv1hC&PM?~d#=(OJD|-NNJDdMzA`x)}%9ZEl=f(P&l|l8v%IOQ(Z8juRDMb^WFq?C( zQ5tbff@5f8x{6 z(0|(63IKVA7n%v@M#oB`U+(y2?g2b_o(CZWE|&`c@vmZNiXXxP0QAiSmk za`k~shqtt}h+hjcK?#G=2to*Wo-ay2H+~`ID3!IwFF6C&ZU?cPNZ{JFYY2tI2+zy_ zP@jUrGc%|&n^9*rV>yw)+U=mG_yzsTmwzv#wY60=LNHqCMhrYm9TzTKC`w-{el;mb zOZ>7asDEMub@lb)FFaZxgoq=we_}&d3h1BM003MMh2XH;0pxf5;^Lxg8WP$}2w#-` z&iJofxuWuP_3_KR2M_?6Y17l)4M1NC%D_YJkxn55QJ)ZkP&kaXwzj;PATVsmp7 zy*)kIYw`M?!?Ss_x2Ffw*RKNr9CkaBsT5|TQP^!Z1cO2Bvs#fzBme;EbQ(PWFn{wr zpD{qE{?7P?G~@Aj6w5A`OLhE`DSv44EjP#Ai@}%Jmv=KX7z|?BXfVKNFl5`ibL0`s z&ClcT)n9_U7sKRRZcS^#g8rYs??OBt7lXNZ>z1e?jIcVhS=1ETCv^S?)h`#NFT@`R z1hkxvKp>zxeubro%qVbW-$0Y86n@jyC6?RU+r@HMXQyNx{9DiT&({ZlKz}d@tJMm^ zXFhjzc8UfhQz;l~YQ!JS3Gi^xkmB`SPA6PWr|J}xTUHal5m=UL^72^o!N|JDur(o%joFn z6puxtvjBkf)&meiO0I8<{C^c5j|b!9^l8;zE|7#|-80NLXa+n-eFD=$T4M-j=6 zM4sody`3pDbaX8RB7vak8V$dfA{zFY(Dhb2r7_7%N1B!5@`&e9^9np;q3 zHsi*P8)#~7#+{|5oZ1BGtp^y{c)l$9<%nO!ax@Q+%yT!F&1VFha+&l(c#JEajQ$Vz z@8h}WGH<|<$PAiWTCubkf26k2Py?)^oGfBrA>-M#beq5opnnWAfHGw>z+L;%h`aWqk#b$X5Vdai zNUhsVOZ^sNAj*{OMeNM8f8?-QxL&z<_KcsSD6bm!Cajad zbZKrc%m5uYyNmlLAi4bPwkFa>?uF}}ci+~v9Kj5r40{Tq3^RZ-%mB(T11Q4`pbYi* z00+0*O}hzHVUw2#CX=uT1b?~=IDYIT`S`;m`S`;mDQ0UnLx%yS-XCA-XfmK2`{OGe zb`PKoGk`M80Lm}}D8me(3^RZ-y0@j2YJYsCqsxF&?vJl@G#T*DyKi%)-XCA-Xr2MA sqe~0B2~&m{KpAELWtah!VFpm Date: Tue, 30 Jun 2020 01:14:48 +0100 Subject: [PATCH 11/18] sprite pls --- icons/obj/food/containers.dmi | Bin 13285 -> 13280 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/icons/obj/food/containers.dmi b/icons/obj/food/containers.dmi index 376fc81b4a2b46d49470d504c7a5606060b1dbaf..ceda2fc9ebec9979f5fd8773b52b5742a8841d50 100644 GIT binary patch delta 12437 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 DD#--x delta 12456 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 From 8a0ab009ddf8f037ea15b2f8b33d8fcb934174a7 Mon Sep 17 00:00:00 2001 From: Timothy Teakettle <59849408+timothyteakettle@users.noreply.github.com> Date: Wed, 1 Jul 2020 22:05:14 +0100 Subject: [PATCH 12/18] give trays better capacity --- code/game/objects/items/storage/bags.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/game/objects/items/storage/bags.dm b/code/game/objects/items/storage/bags.dm index 9169dc6a3d..731863d9f9 100644 --- a/code/game/objects/items/storage/bags.dm +++ b/code/game/objects/items/storage/bags.dm @@ -380,7 +380,7 @@ 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 + max_items = 30 // far more items custom_materials = list(/datum/material/iron = 2000, /datum/material/bluespace = 500) /* @@ -454,4 +454,4 @@ STR.max_combined_w_class = 30 STR.max_items = 3 STR.display_numerical_stacking = FALSE - STR.can_hold = typecacheof(list(/obj/item/ammo_box/magazine, /obj/item/ammo_casing)) \ No newline at end of file + STR.can_hold = typecacheof(list(/obj/item/ammo_box/magazine, /obj/item/ammo_casing)) From 1316f51a035e6d9cf9ee36100d574a8d856df747 Mon Sep 17 00:00:00 2001 From: timothyteakettle <59849408+timothyteakettle@users.noreply.github.com> Date: Fri, 3 Jul 2020 03:46:08 +0100 Subject: [PATCH 13/18] better resist and air --- code/game/objects/items/pet_carrier.dm | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/code/game/objects/items/pet_carrier.dm b/code/game/objects/items/pet_carrier.dm index def044f970..55d149f42a 100644 --- a/code/game/objects/items/pet_carrier.dm +++ b/code/game/objects/items/pet_carrier.dm @@ -126,6 +126,13 @@ container_resist(user) /obj/item/pet_carrier/container_resist(mob/living/user) + //don't do the whole resist timer thing if it's open! + if(open) + loc.visible_message("[user] climbs out of [src]!", \ + "[user] jumps out of [src]!") + remove_occupant(user) + return + user.changeNext_move(CLICK_CD_BREAKOUT) user.last_special = world.time + CLICK_CD_BREAKOUT if(user.mob_size <= MOB_SIZE_SMALL) @@ -223,6 +230,7 @@ allows_hostiles = TRUE //can fit hostile creatures, with the move resist restrictions in place, this means they still cannot take things like legions/goliaths/etc regardless has_lock_sprites = FALSE //jar doesn't show the regular lock overlay custom_materials = list(/datum/material/glass = 1000, /datum/material/bluespace = 600) + escape_time = 10 //half the time of a bluespace bodybag /obj/item/pet_carrier/bluespace/update_icon_state() if(open) @@ -238,7 +246,11 @@ playsound(src, "shatter", 70, 1) ..() -/obj/item/pet_carrier/bluespace/return_air() - return loc.return_air() +/obj/item/pet_carrier/bluespace/handle_internal_lifeform() + var/datum/gas_mixture/GM = new + GM.gases[/datum/gas/oxygen] = MOLES_O2STANDARD + GM.gases[/datum/gas/nitrogen] = MOLES_N2STANDARD + GM.temperature = T20C + return GM #undef pet_carrier_full From d3448e04c9147bb89db3bf70ba47c896805c0131 Mon Sep 17 00:00:00 2001 From: timothyteakettle <59849408+timothyteakettle@users.noreply.github.com> Date: Sat, 4 Jul 2020 03:00:35 +0100 Subject: [PATCH 14/18] fixes pet carrier edgecase --- code/game/objects/items/pet_carrier.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/objects/items/pet_carrier.dm b/code/game/objects/items/pet_carrier.dm index 55d149f42a..9bb7367aed 100644 --- a/code/game/objects/items/pet_carrier.dm +++ b/code/game/objects/items/pet_carrier.dm @@ -206,7 +206,7 @@ /obj/item/pet_carrier/proc/remove_occupant(mob/living/occupant, turf/new_turf) if(!(occupant in occupants) || !istype(occupant)) return - occupant.forceMove(new_turf ? new_turf : drop_location()) + occupant.forceMove(new_turf ? new_turf : get_turf(src)) occupants -= occupant occupant_weight -= occupant.mob_size occupant.setDir(SOUTH) From 5c5746c04c19b8b296d24af8aa93b691b4bfaa66 Mon Sep 17 00:00:00 2001 From: Timothy Teakettle <59849408+timothyteakettle@users.noreply.github.com> Date: Sat, 4 Jul 2020 18:44:47 +0100 Subject: [PATCH 15/18] less air --- code/game/objects/items/pet_carrier.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/game/objects/items/pet_carrier.dm b/code/game/objects/items/pet_carrier.dm index 55d149f42a..8642be9c35 100644 --- a/code/game/objects/items/pet_carrier.dm +++ b/code/game/objects/items/pet_carrier.dm @@ -248,8 +248,8 @@ /obj/item/pet_carrier/bluespace/handle_internal_lifeform() var/datum/gas_mixture/GM = new - GM.gases[/datum/gas/oxygen] = MOLES_O2STANDARD - GM.gases[/datum/gas/nitrogen] = MOLES_N2STANDARD + GM.gases[/datum/gas/oxygen] = MOLES_O2STANDARD/5000 //make sure they have enough oxygen for just that one singular breath (which is achieved by dividing by 5000) + GM.gases[/datum/gas/nitrogen] = MOLES_N2STANDARD/5000 GM.temperature = T20C return GM From ab5795b3d3c9b558e3b8400237011bf092f0f885 Mon Sep 17 00:00:00 2001 From: timothyteakettle <59849408+timothyteakettle@users.noreply.github.com> Date: Tue, 7 Jul 2020 03:03:09 +0100 Subject: [PATCH 16/18] Update pet_carrier.dm --- code/game/objects/items/pet_carrier.dm | 35 ++++++++++++++++++++------ 1 file changed, 27 insertions(+), 8 deletions(-) diff --git a/code/game/objects/items/pet_carrier.dm b/code/game/objects/items/pet_carrier.dm index 9bb7367aed..37cfdb59c0 100644 --- a/code/game/objects/items/pet_carrier.dm +++ b/code/game/objects/items/pet_carrier.dm @@ -231,6 +231,7 @@ has_lock_sprites = FALSE //jar doesn't show the regular lock overlay custom_materials = list(/datum/material/glass = 1000, /datum/material/bluespace = 600) escape_time = 10 //half the time of a bluespace bodybag + var/datum/gas_mixture/immutable/occupant_gas_supply /obj/item/pet_carrier/bluespace/update_icon_state() if(open) @@ -239,18 +240,36 @@ icon_state = "bluespace_jar" /obj/item/pet_carrier/bluespace/throw_impact() + . = ..() //delete the item upon impact, releasing the creature inside (this is handled by its deletion) if(occupants.len) - src.loc.visible_message("The bluespace jar smashes, releasing [occupants[1]]!") - qdel(src) + loc.visible_message("The bluespace jar smashes, releasing [occupants[1]]!") playsound(src, "shatter", 70, 1) - ..() + qdel(src) + +/obj/item/pet_carrier/bluespace/add_occupant(mob/living/occupant) //update the gas supply as required + . = ..() + if(isanimal(occupant)) + var/mob/living/simple_animal/animal = occupant + occupant_gas_supply.temperature = animal.minbodytemp + occupant_gas_supply.gases[/datum/gas/oxygen] = animal.atmos_requirements["min_oxy"] + occupant_gas_supply.gases[/datum/gas/nitrogen] = animal.atmos_requirements["min_n2"] + occupant_gas_supply.gases[/datum/gas/plasma] = animal.atmos_requirements["min_tox"] + occupant_gas_supply.gases[/datum/gas/carbon_dioxide] = animal.atmos_requirements["min_co2"] + else + if(ishuman(occupant)) + var/mob/living/carbon/human/human = occupant + var/obj/item/organ/lungs/lungs = human.getorganslot(ORGAN_SLOT_LUNGS) + if(lungs) + occupant_gas_supply.temperature = lungs.cold_level_1_threshold + occupant_gas_supply.gases[/datum/gas/oxygen] = lungs.safe_oxygen_min + occupant_gas_supply.gases[/datum/gas/nitrogen] = lungs.safe_nitro_min + occupant_gas_supply.gases[/datum/gas/plasma] = lungs.safe_toxins_min + occupant_gas_supply.gases[/datum/gas/carbon_dioxide] = lungs.safe_co2_min /obj/item/pet_carrier/bluespace/handle_internal_lifeform() - var/datum/gas_mixture/GM = new - GM.gases[/datum/gas/oxygen] = MOLES_O2STANDARD - GM.gases[/datum/gas/nitrogen] = MOLES_N2STANDARD - GM.temperature = T20C - return GM + if(!occupant_gas_supply) + occupant_gas_supply = new + return occupant_gas_supply #undef pet_carrier_full From e07909ebe2e3c567229d57d209b4e4762b4a54a8 Mon Sep 17 00:00:00 2001 From: Timothy Teakettle <59849408+timothyteakettle@users.noreply.github.com> Date: Tue, 7 Jul 2020 23:12:36 +0100 Subject: [PATCH 17/18] does it in a far superior way --- code/game/objects/items/pet_carrier.dm | 36 +++++++++++++------------- 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/code/game/objects/items/pet_carrier.dm b/code/game/objects/items/pet_carrier.dm index 37cfdb59c0..99dfee9ea1 100644 --- a/code/game/objects/items/pet_carrier.dm +++ b/code/game/objects/items/pet_carrier.dm @@ -223,7 +223,7 @@ max_occupant_weight = MOB_SIZE_HUMAN //can fit people, like a bluespace bodybag! load_time = 40 //loading things into a jar takes longer than a regular pet carrier entrance_name = "lid" - w_class = WEIGHT_CLASS_NORMAL //it can fit in bags, like a bluespace bodybag! + w_class = WEIGHT_CLASS_SMALL //it's a jar throw_speed = 3 throw_range = 7 max_occupants = 1 //far less than a regular carrier or bluespace bodybag, because it can be thrown to release the contents @@ -231,7 +231,7 @@ has_lock_sprites = FALSE //jar doesn't show the regular lock overlay custom_materials = list(/datum/material/glass = 1000, /datum/material/bluespace = 600) escape_time = 10 //half the time of a bluespace bodybag - var/datum/gas_mixture/immutable/occupant_gas_supply + var/datum/gas_mixture/occupant_gas_supply /obj/item/pet_carrier/bluespace/update_icon_state() if(open) @@ -247,27 +247,27 @@ playsound(src, "shatter", 70, 1) qdel(src) -/obj/item/pet_carrier/bluespace/add_occupant(mob/living/occupant) //update the gas supply as required +/obj/item/pet_carrier/bluespace/add_occupant(mob/living/occupant) //update the gas supply as required, this acts like magical internals . = ..() + if(!occupant_gas_supply) + occupant_gas_supply = new if(isanimal(occupant)) var/mob/living/simple_animal/animal = occupant - occupant_gas_supply.temperature = animal.minbodytemp - occupant_gas_supply.gases[/datum/gas/oxygen] = animal.atmos_requirements["min_oxy"] - occupant_gas_supply.gases[/datum/gas/nitrogen] = animal.atmos_requirements["min_n2"] - occupant_gas_supply.gases[/datum/gas/plasma] = animal.atmos_requirements["min_tox"] - occupant_gas_supply.gases[/datum/gas/carbon_dioxide] = animal.atmos_requirements["min_co2"] + occupant_gas_supply.temperature = animal.minbodytemp //simple animals only care about temperature when their turf isnt a location else - if(ishuman(occupant)) - var/mob/living/carbon/human/human = occupant - var/obj/item/organ/lungs/lungs = human.getorganslot(ORGAN_SLOT_LUNGS) - if(lungs) - occupant_gas_supply.temperature = lungs.cold_level_1_threshold - occupant_gas_supply.gases[/datum/gas/oxygen] = lungs.safe_oxygen_min - occupant_gas_supply.gases[/datum/gas/nitrogen] = lungs.safe_nitro_min - occupant_gas_supply.gases[/datum/gas/plasma] = lungs.safe_toxins_min - occupant_gas_supply.gases[/datum/gas/carbon_dioxide] = lungs.safe_co2_min + if(ishuman(occupant)) //humans require resistance to cold/heat and living in no air while inside, and lose this when outside + ADD_TRAIT(occupant, TRAIT_RESISTCOLD, "bluespace_container_cold_resist") + ADD_TRAIT(occupant, TRAIT_RESISTHEAT, "bluespace_container_heat_resist") + ADD_TRAIT(occupant, TRAIT_NOBREATH, "bluespace_container_no_breath") -/obj/item/pet_carrier/bluespace/handle_internal_lifeform() +/obj/item/pet_carrier/bluespace/remove_occupant(mob/living/occupant) + . = ..() + if(ishuman(occupant)) + REMOVE_TRAIT(occupant, TRAIT_RESISTCOLD, "bluespace_container_cold_resist") + REMOVE_TRAIT(occupant, TRAIT_RESISTHEAT, "bluespace_container_heat_resist") + REMOVE_TRAIT(occupant, TRAIT_NOBREATH, "bluespace_container_no_breath") + +/obj/item/pet_carrier/bluespace/return_air() if(!occupant_gas_supply) occupant_gas_supply = new return occupant_gas_supply From f0935a784d57ca6b93f5a73083c424ffb7e3cdcf Mon Sep 17 00:00:00 2001 From: Timothy Teakettle <59849408+timothyteakettle@users.noreply.github.com> Date: Tue, 7 Jul 2020 23:24:25 +0100 Subject: [PATCH 18/18] two missing traits woops --- code/game/objects/items/pet_carrier.dm | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/code/game/objects/items/pet_carrier.dm b/code/game/objects/items/pet_carrier.dm index 99dfee9ea1..4960474d94 100644 --- a/code/game/objects/items/pet_carrier.dm +++ b/code/game/objects/items/pet_carrier.dm @@ -259,6 +259,8 @@ ADD_TRAIT(occupant, TRAIT_RESISTCOLD, "bluespace_container_cold_resist") ADD_TRAIT(occupant, TRAIT_RESISTHEAT, "bluespace_container_heat_resist") ADD_TRAIT(occupant, TRAIT_NOBREATH, "bluespace_container_no_breath") + ADD_TRAIT(occupant, TRAIT_RESISTHIGHPRESSURE, "bluespace_container_resist_high_pressure") + ADD_TRAIT(occupant, TRAIT_RESISTLOWPRESSURE, "bluespace_container_resist_low_pressure") /obj/item/pet_carrier/bluespace/remove_occupant(mob/living/occupant) . = ..() @@ -266,6 +268,8 @@ REMOVE_TRAIT(occupant, TRAIT_RESISTCOLD, "bluespace_container_cold_resist") REMOVE_TRAIT(occupant, TRAIT_RESISTHEAT, "bluespace_container_heat_resist") REMOVE_TRAIT(occupant, TRAIT_NOBREATH, "bluespace_container_no_breath") + REMOVE_TRAIT(occupant, TRAIT_RESISTHIGHPRESSURE, "bluespace_container_resist_high_pressure") + REMOVE_TRAIT(occupant, TRAIT_RESISTLOWPRESSURE, "bluespace_container_resist_low_pressure") /obj/item/pet_carrier/bluespace/return_air() if(!occupant_gas_supply)