From ad8d5a2479001df3bc4fa50f2ffa481ac8af398d Mon Sep 17 00:00:00 2001 From: rosieposie Date: Tue, 13 Feb 2024 05:09:51 -0500 Subject: [PATCH 01/11] added barrels & kegs --- .../Structures/Storage/Crates/barrel.yml | 132 ++++++++++++++++++ .../DeltaV/Recipes/Crafting/Graphs/barrel.yml | 53 +++++++ .../DeltaV/Recipes/Crafting/barrel.yml | 25 ++++ .../Structures/Storage/barrel.rsi/base.png | Bin 0 -> 1034 bytes .../Structures/Storage/barrel.rsi/closed.png | Bin 0 -> 337 bytes .../Structures/Storage/barrel.rsi/meta.json | 20 +++ .../Structures/Storage/barrel.rsi/open.png | Bin 0 -> 1034 bytes .../Structures/Storage/keg.rsi/base.png | Bin 0 -> 1066 bytes .../Structures/Storage/keg.rsi/meta.json | 14 ++ 9 files changed, 244 insertions(+) create mode 100644 Resources/Prototypes/DeltaV/Entities/Structures/Storage/Crates/barrel.yml create mode 100644 Resources/Prototypes/DeltaV/Recipes/Crafting/Graphs/barrel.yml create mode 100644 Resources/Prototypes/DeltaV/Recipes/Crafting/barrel.yml create mode 100644 Resources/Textures/DeltaV/Structures/Storage/barrel.rsi/base.png create mode 100644 Resources/Textures/DeltaV/Structures/Storage/barrel.rsi/closed.png create mode 100644 Resources/Textures/DeltaV/Structures/Storage/barrel.rsi/meta.json create mode 100644 Resources/Textures/DeltaV/Structures/Storage/barrel.rsi/open.png create mode 100644 Resources/Textures/DeltaV/Structures/Storage/keg.rsi/base.png create mode 100644 Resources/Textures/DeltaV/Structures/Storage/keg.rsi/meta.json diff --git a/Resources/Prototypes/DeltaV/Entities/Structures/Storage/Crates/barrel.yml b/Resources/Prototypes/DeltaV/Entities/Structures/Storage/Crates/barrel.yml new file mode 100644 index 00000000000..4169adfca41 --- /dev/null +++ b/Resources/Prototypes/DeltaV/Entities/Structures/Storage/Crates/barrel.yml @@ -0,0 +1,132 @@ +- type: entity + parent: CrateGeneric + id: WoodenBarrel + name: wooden barrel + description: A musty old wooden barrel. + components: + - type: Sprite + sprite: DeltaV/Structures/Storage/barrel.rsi + layers: + - state: base + map: ["enum.StorageVisualLayers.Base"] + - state: closed + map: ["enum.StorageVisualLayers.Door"] + - type: Icon + sprite: DeltaV/Structures/Storage/barrel.rsi + state: base + - type: Damageable + damageContainer: StructuralInorganic + damageModifierSet: Wood + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 30 + behaviors: + - !type:PlaySoundBehavior + sound: + collection: WoodDestroy + - !type:SpawnEntitiesBehavior + spawn: + MaterialWoodPlank1: + min: 1 + max: 4 + - !type:DoActsBehavior + acts: [ "Destruction" ] + - type: Construction + graph: WoodenBarrel + node: woodenbarrel + containers: + - entity_storage + - type: Fixtures + fixtures: + fix1: + shape: + !type:PhysShapeAabb + bounds: "-0.2,-0.3,0.2,0.3" + density: 125 + mask: + - SmallMobMask #this is so they can go under plastic flaps + layer: + - MachineLayer + +- type: entity + parent: BaseStructureDynamic + id: WoodenKeg + name: wooden keg + description: A musty old wooden keg, with a tap attached to the front. + components: + - type: SolutionContainerManager + solutions: + keg: + maxVol: 500 + canMix: true + - type: RefillableSolution + solution: keg + - type: DrainableSolution + solution: keg + - type: ExaminableSolution + solution: keg + - type: DrawableSolution + solution: keg + - type: InjectableSolution + solution: keg + - type: SolutionTransfer + canChangeTransferAmount: true + - type: UserInterface + interfaces: + - key: enum.TransferAmountUiKey.Key + type: TransferAmountBoundUserInterface + - type: Drink + solution: keg + - type: Spillable + solution: keg + - type: Sprite + sprite: DeltaV/Structures/Storage/keg.rsi + layers: + - state: base + map: ["enum.StorageVisualLayers.Base"] + - type: Icon + sprite: DeltaV/Structures/Storage/keg.rsi + state: base + - type: Damageable + damageContainer: StructuralInorganic + damageModifierSet: Wood + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 30 + behaviors: + - !type:PlaySoundBehavior + sound: + collection: WoodDestroy + - !type:SpillBehavior + solution: keg + - !type:SpawnEntitiesBehavior + spawn: + MaterialWoodPlank1: + min: 1 + max: 4 + - !type:DoActsBehavior + acts: [ "Destruction" ] + - type: Construction + graph: WoodenKeg + node: woodenkeg + containers: + - entity_storage + - type: InteractionOutline + - type: Physics + - type: Fixtures + fixtures: + fix1: + shape: + !type:PhysShapeAabb + bounds: "-0.2,-0.3,0.2,0.3" + density: 125 + mask: + - SmallMobMask #this is so they can go under plastic flaps + layer: + - MachineLayer + - type: Transform + noRot: true diff --git a/Resources/Prototypes/DeltaV/Recipes/Crafting/Graphs/barrel.yml b/Resources/Prototypes/DeltaV/Recipes/Crafting/Graphs/barrel.yml new file mode 100644 index 00000000000..ca71d9691d4 --- /dev/null +++ b/Resources/Prototypes/DeltaV/Recipes/Crafting/Graphs/barrel.yml @@ -0,0 +1,53 @@ +- type: constructionGraph + id: WoodenBarrel + start: start + graph: + - node: start + edges: + - to: woodenbarrel + steps: + - material: WoodPlank + amount: 5 + doAfter: 5 + + + - node: woodenbarrel + entity: WoodenBarrel + edges: + - to: start + steps: + - tool: Prying + doAfter: 5 + completed: + - !type:SpawnPrototype + prototype: MaterialWoodPlank1 + amount: 5 + - !type:EmptyAllContainers + - !type:DeleteEntity + +- type: constructionGraph + id: WoodenKeg + start: start + graph: + - node: start + edges: + - to: woodenkeg + steps: + - material: WoodPlank + amount: 5 + doAfter: 5 + + + - node: woodenkeg + entity: WoodenKeg + edges: + - to: start + steps: + - tool: Prying + doAfter: 5 + completed: + - !type:SpawnPrototype + prototype: MaterialWoodPlank1 + amount: 5 + - !type:EmptyAllContainers + - !type:DeleteEntity diff --git a/Resources/Prototypes/DeltaV/Recipes/Crafting/barrel.yml b/Resources/Prototypes/DeltaV/Recipes/Crafting/barrel.yml new file mode 100644 index 00000000000..50d6b831f61 --- /dev/null +++ b/Resources/Prototypes/DeltaV/Recipes/Crafting/barrel.yml @@ -0,0 +1,25 @@ +- type: construction + name: wooden barrel + id: WoodenBarrel + graph: WoodenBarrel + startNode: start + targetNode: woodenbarrel + category: construction-category-storage + description: A musty old wooden barrel. + icon: + sprite: DeltaV/Structures/Storage/barrel.rsi + state: base + objectType: Structure + +- type: construction + name: wooden keg + id: WoodenKeg + graph: WoodenKeg + startNode: start + targetNode: woodenkeg + category: construction-category-storage + description: A musty old wooden keg, with a tap attached to the front. + icon: + sprite: DeltaV/Structures/Storage/keg.rsi + state: base + objectType: Structure diff --git a/Resources/Textures/DeltaV/Structures/Storage/barrel.rsi/base.png b/Resources/Textures/DeltaV/Structures/Storage/barrel.rsi/base.png new file mode 100644 index 0000000000000000000000000000000000000000..04f13fd22bfce6720c9b64d4ab8d18311f72d354 GIT binary patch literal 1034 zcmV+l1oiugP)YAX9X8WNB|8RBvx=!KdMT000A( zNklSVA7 z|A8@m7u1L1n-2rG2ML0k1!ZVi?b>LX*&DCSt8J1>dIK>bxjvNddQ+41Hg1Tp^YVS1 zbNJ5hJKs4UXUMWF{!1Bp3h=)JxN$jSB@!|K`F!2h3*E)5pA9_`fLqsJxAOTq+nej? zr3UJ-ufwjF8UUmh&yz^Vu0dP@+`TqueY+E7dvl#!v4)~ZUHt^q_{=!~-uWndB!nw~ z8<#WIox9%wV46)7MMCoXY1V2T>)!8w*l_8^^G^<-pM;)2L95qK$`5Eg}wl1&(2scDP_Cw&8ZBkssa#;#Q-o2gIFxqu~xqLkX*6G^q8No%m^DB zo5u%OIuo`;(8|}hnU4qA-9PyG#NkdktkX*k!WWiMwzBA@2Dcwpx0x%yBcKAE>t>l~Nx{ju4%r*;y0i;g`tm!d7BLSJ8Pp4_O+o-B)r`{>$ zav6X~Bx1k6rfIw)|HAHmom{cjvk?0ND2jwS?6cErPGtb>I&ez;&pM^u5&+Nr_&K>^ zjm6o>-~iL%fHfYLn2!fp)v9(4h=Lpm$hPn9ew~qk%&JzkZL3-pPkfBFR>U-$g9E6; zKJ-$fD}V@m7zE%xVOqfoL*G}~t~AM21_1D!QW0$^icWNbGqBJ*{q7T{traQCG1|ZC z#|MCee_*U`V46)tL5k-%d}C+&#k(ttL{W|n_78|GL}upj7S`+@@Ad@Z_VD*ikSo?` zP0mr?T$;-3yK|A-*=LW_y7O^07*qoM6N<$ Ef;NxpkN^Mx literal 0 HcmV?d00001 diff --git a/Resources/Textures/DeltaV/Structures/Storage/barrel.rsi/closed.png b/Resources/Textures/DeltaV/Structures/Storage/barrel.rsi/closed.png new file mode 100644 index 0000000000000000000000000000000000000000..23745464a62c6a56d90e5f9f859bbbadcfe34da2 GIT binary patch literal 337 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz&H|6fVg?31We{epSZZGe6qGJ; zjVKAuPb(=;EJ|f?PR%KkciggKmY&RA9i3m z7RcUX)gZ$DMP>Kj{pDYU4sT_Tm)s(Xp2lR}JZYPp^T|80Jt5@` zXNm&j_}Vsqw>Ol~{$#l4-yi04|3S+3t}{6N`nh@C9!^v z)Yr=lK#9Z8^!EQxFN=5bY~kVI(cqjca@w a$gud>`Gfq@qRWB)WbkzLb6Mw<&;$U#)q|G+ literal 0 HcmV?d00001 diff --git a/Resources/Textures/DeltaV/Structures/Storage/barrel.rsi/meta.json b/Resources/Textures/DeltaV/Structures/Storage/barrel.rsi/meta.json new file mode 100644 index 00000000000..ddb49cff079 --- /dev/null +++ b/Resources/Textures/DeltaV/Structures/Storage/barrel.rsi/meta.json @@ -0,0 +1,20 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from tgstation PR https://github.com/tgstation/tgstation/pull/38977", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "base" + }, + { + "name": "open" + }, + { + "name": "closed" + } + ] +} diff --git a/Resources/Textures/DeltaV/Structures/Storage/barrel.rsi/open.png b/Resources/Textures/DeltaV/Structures/Storage/barrel.rsi/open.png new file mode 100644 index 0000000000000000000000000000000000000000..04f13fd22bfce6720c9b64d4ab8d18311f72d354 GIT binary patch literal 1034 zcmV+l1oiugP)YAX9X8WNB|8RBvx=!KdMT000A( zNklSVA7 z|A8@m7u1L1n-2rG2ML0k1!ZVi?b>LX*&DCSt8J1>dIK>bxjvNddQ+41Hg1Tp^YVS1 zbNJ5hJKs4UXUMWF{!1Bp3h=)JxN$jSB@!|K`F!2h3*E)5pA9_`fLqsJxAOTq+nej? zr3UJ-ufwjF8UUmh&yz^Vu0dP@+`TqueY+E7dvl#!v4)~ZUHt^q_{=!~-uWndB!nw~ z8<#WIox9%wV46)7MMCoXY1V2T>)!8w*l_8^^G^<-pM;)2L95qK$`5Eg}wl1&(2scDP_Cw&8ZBkssa#;#Q-o2gIFxqu~xqLkX*6G^q8No%m^DB zo5u%OIuo`;(8|}hnU4qA-9PyG#NkdktkX*k!WWiMwzBA@2Dcwpx0x%yBcKAE>t>l~Nx{ju4%r*;y0i;g`tm!d7BLSJ8Pp4_O+o-B)r`{>$ zav6X~Bx1k6rfIw)|HAHmom{cjvk?0ND2jwS?6cErPGtb>I&ez;&pM^u5&+Nr_&K>^ zjm6o>-~iL%fHfYLn2!fp)v9(4h=Lpm$hPn9ew~qk%&JzkZL3-pPkfBFR>U-$g9E6; zKJ-$fD}V@m7zE%xVOqfoL*G}~t~AM21_1D!QW0$^icWNbGqBJ*{q7T{traQCG1|ZC z#|MCee_*U`V46)tL5k-%d}C+&#k(ttL{W|n_78|GL}upj7S`+@@Ad@Z_VD*ikSo?` zP0mr?T$;-3yK|A-*=LW_y7O^07*qoM6N<$ Ef;NxpkN^Mx literal 0 HcmV?d00001 diff --git a/Resources/Textures/DeltaV/Structures/Storage/keg.rsi/base.png b/Resources/Textures/DeltaV/Structures/Storage/keg.rsi/base.png new file mode 100644 index 0000000000000000000000000000000000000000..a6a7e0b1e10b6c8086805e9fabc8de4d2bd18457 GIT binary patch literal 1066 zcmV+_1l9YAP)YAX9X8WNB|8RBvx=!KdMT000BE zNkl47dw=J9j?FYp{>!jE0{GtnT$)On(Wnc6wY7?z7jtJXd}(_q0JGEQ%(b-& zo2$#DGTX$0ZuERr<_)7pEa)a2A0rxdwGGl1!1asA%$r*SY_2ZT?{TrHl^73s$(1Ye zw_(&cHR>l&!eg;6W(P2Zhf=d(1bukV~XN8N@M7{jz0ed*ZwH) z3(*oFkw}=MwKPT~$;8A2*=$yVxc!ee{I_Q#O{rH!cRx=yn?=`kl=XS;I7V8k&=TP2 z(YX1XQb5mFQTv=2ktC|B0uTrU0LW&u1OkDEvH0yL(kp&2{H(03b`Egnh|d&7i$7j% zkX*dn8hhvTd==lxGbrox==myFH;PRm4g|R47-4vLn4zH|dTxBmqE-TsTTX;^erMuU zbX`Z&G)8Ob?f@nSJ!UNErr+b@*Ta+4>vdFBmC{?IP$&T4_xt7d*EEgOuHVR&E2J{p z`!-@r07Y@2_Bo}zMkEO!`@kBNdlmAzJOEGpGDj-2Ev>mLfSAu?hJ6mkL*9mMCmPaf zNY*n!Uh=_0}b+@difdN zduI+sagcEZy7K{{f~mlkHS&GC`(ME97d`1E6vZLCe|Gwu3C%C8ZQY1sK94!z z1VwQG_oaqL`K|e_D*JYR#{dEXV897mRk*uj=lG$z%x_ii=b*jf9RXND?(Wz*+_PI; kJd3g2!d(OW)A0!4Z=-H@-zhC0jsO4v07*qoM6N<$f;B4l!vFvP literal 0 HcmV?d00001 diff --git a/Resources/Textures/DeltaV/Structures/Storage/keg.rsi/meta.json b/Resources/Textures/DeltaV/Structures/Storage/keg.rsi/meta.json new file mode 100644 index 00000000000..36c1dff5a54 --- /dev/null +++ b/Resources/Textures/DeltaV/Structures/Storage/keg.rsi/meta.json @@ -0,0 +1,14 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from tgstation PR https://github.com/tgstation/tgstation/pull/38977, modified by rosieposieeee to add spout", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "base" + } + ] +} From 115321a980b345383077e585fff02fb6aaf14205 Mon Sep 17 00:00:00 2001 From: rosieposie Date: Tue, 13 Feb 2024 06:19:08 -0500 Subject: [PATCH 02/11] purchase kegs with wine, beer, and rootbeer --- .../DeltaV/Catalog/Cargo/cargo_food.yml | 30 ++++++++++++ .../Structures/Storage/Crates/barrel.yml | 46 +++++++++++++++++++ 2 files changed, 76 insertions(+) diff --git a/Resources/Prototypes/DeltaV/Catalog/Cargo/cargo_food.yml b/Resources/Prototypes/DeltaV/Catalog/Cargo/cargo_food.yml index 42b4d57e910..d91b5151319 100644 --- a/Resources/Prototypes/DeltaV/Catalog/Cargo/cargo_food.yml +++ b/Resources/Prototypes/DeltaV/Catalog/Cargo/cargo_food.yml @@ -27,3 +27,33 @@ cost: 6000 # Thanks bounties category: Food group: market + +- type: cargoProduct + id: FoodBeerKeg + icon: + sprite: DeltaV/Structures/Storage/keg.rsi + state: base + product: WoodenKegBeer + cost: 500 + category: Food + group: market + +- type: cargoProduct + id: FoodRootBeerKeg + icon: + sprite: DeltaV/Structures/Storage/keg.rsi + state: base + product: WoodenKegRootBeer + cost: 500 + category: Food + group: market + +- type: cargoProduct + id: FoodWineBarrel + icon: + sprite: DeltaV/Structures/Storage/keg.rsi + state: base + product: WoodenKegWine + cost: 500 + category: Food + group: market diff --git a/Resources/Prototypes/DeltaV/Entities/Structures/Storage/Crates/barrel.yml b/Resources/Prototypes/DeltaV/Entities/Structures/Storage/Crates/barrel.yml index 4169adfca41..24cef2ac04e 100644 --- a/Resources/Prototypes/DeltaV/Entities/Structures/Storage/Crates/barrel.yml +++ b/Resources/Prototypes/DeltaV/Entities/Structures/Storage/Crates/barrel.yml @@ -38,6 +38,8 @@ node: woodenbarrel containers: - entity_storage + - type: StaticPrice + price: 50 - type: Fixtures fixtures: fix1: @@ -110,6 +112,8 @@ max: 4 - !type:DoActsBehavior acts: [ "Destruction" ] + - type: StaticPrice + price: 50 - type: Construction graph: WoodenKeg node: woodenkeg @@ -130,3 +134,45 @@ - MachineLayer - type: Transform noRot: true + +- type: entity + parent: WoodenKeg + name: root beer keg + id: WoodenKegRootBeer + components: + - type: Label + currentLabel: reagent-name-root-beer + - type: SolutionContainerManager + solutions: + keg: + reagents: + - ReagentId: RootBeer + Quantity: 500 + +- type: entity + parent: WoodenKeg + name: beer keg + id: WoodenKegBeer + components: + - type: Label + currentLabel: reagent-name-beer + - type: SolutionContainerManager + solutions: + keg: + reagents: + - ReagentId: Beer + Quantity: 500 + +- type: entity + parent: WoodenKeg + name: wine keg + id: WoodenKegWine + components: + - type: Label + currentLabel: reagent-name-wine + - type: SolutionContainerManager + solutions: + keg: + reagents: + - ReagentId: Wine + Quantity: 500 From 5cd620eae25537ca6d5542ccacc488f05a031875 Mon Sep 17 00:00:00 2001 From: rosieposie Date: Tue, 13 Feb 2024 06:29:41 -0500 Subject: [PATCH 03/11] 1000 price --- Resources/Prototypes/DeltaV/Catalog/Cargo/cargo_food.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Resources/Prototypes/DeltaV/Catalog/Cargo/cargo_food.yml b/Resources/Prototypes/DeltaV/Catalog/Cargo/cargo_food.yml index d91b5151319..598a0e8ace7 100644 --- a/Resources/Prototypes/DeltaV/Catalog/Cargo/cargo_food.yml +++ b/Resources/Prototypes/DeltaV/Catalog/Cargo/cargo_food.yml @@ -34,7 +34,7 @@ sprite: DeltaV/Structures/Storage/keg.rsi state: base product: WoodenKegBeer - cost: 500 + cost: 1000 category: Food group: market @@ -44,7 +44,7 @@ sprite: DeltaV/Structures/Storage/keg.rsi state: base product: WoodenKegRootBeer - cost: 500 + cost: 1000 category: Food group: market @@ -54,6 +54,6 @@ sprite: DeltaV/Structures/Storage/keg.rsi state: base product: WoodenKegWine - cost: 500 + cost: 1000 category: Food group: market From b36f40cf0932bc8b95f5733dce1754b5f04564b0 Mon Sep 17 00:00:00 2001 From: rosieposie Date: Tue, 13 Feb 2024 06:34:34 -0500 Subject: [PATCH 04/11] Revert "1000 price" This reverts commit 5cd620eae25537ca6d5542ccacc488f05a031875. --- Resources/Prototypes/DeltaV/Catalog/Cargo/cargo_food.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Resources/Prototypes/DeltaV/Catalog/Cargo/cargo_food.yml b/Resources/Prototypes/DeltaV/Catalog/Cargo/cargo_food.yml index 598a0e8ace7..d91b5151319 100644 --- a/Resources/Prototypes/DeltaV/Catalog/Cargo/cargo_food.yml +++ b/Resources/Prototypes/DeltaV/Catalog/Cargo/cargo_food.yml @@ -34,7 +34,7 @@ sprite: DeltaV/Structures/Storage/keg.rsi state: base product: WoodenKegBeer - cost: 1000 + cost: 500 category: Food group: market @@ -44,7 +44,7 @@ sprite: DeltaV/Structures/Storage/keg.rsi state: base product: WoodenKegRootBeer - cost: 1000 + cost: 500 category: Food group: market @@ -54,6 +54,6 @@ sprite: DeltaV/Structures/Storage/keg.rsi state: base product: WoodenKegWine - cost: 1000 + cost: 500 category: Food group: market From 4c1f8aca0d873d945dbc757e2ff141ae57aa28ca Mon Sep 17 00:00:00 2001 From: rosieposie Date: Tue, 13 Feb 2024 10:38:41 -0500 Subject: [PATCH 05/11] fix spacing --- Resources/Prototypes/DeltaV/Recipes/Crafting/Graphs/barrel.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/Resources/Prototypes/DeltaV/Recipes/Crafting/Graphs/barrel.yml b/Resources/Prototypes/DeltaV/Recipes/Crafting/Graphs/barrel.yml index ca71d9691d4..ef49fa73b3f 100644 --- a/Resources/Prototypes/DeltaV/Recipes/Crafting/Graphs/barrel.yml +++ b/Resources/Prototypes/DeltaV/Recipes/Crafting/Graphs/barrel.yml @@ -10,7 +10,6 @@ amount: 5 doAfter: 5 - - node: woodenbarrel entity: WoodenBarrel edges: @@ -37,7 +36,6 @@ amount: 5 doAfter: 5 - - node: woodenkeg entity: WoodenKeg edges: From 5f7eef34aa22e95c252124a3621a4f117b95d81a Mon Sep 17 00:00:00 2001 From: rosieposie Date: Thu, 15 Feb 2024 02:58:15 -0500 Subject: [PATCH 06/11] fix deconstructing filled keg --- .../Prototypes/DeltaV/Recipes/Crafting/Graphs/barrel.yml | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/Resources/Prototypes/DeltaV/Recipes/Crafting/Graphs/barrel.yml b/Resources/Prototypes/DeltaV/Recipes/Crafting/Graphs/barrel.yml index ef49fa73b3f..95ac28a7de6 100644 --- a/Resources/Prototypes/DeltaV/Recipes/Crafting/Graphs/barrel.yml +++ b/Resources/Prototypes/DeltaV/Recipes/Crafting/Graphs/barrel.yml @@ -16,7 +16,7 @@ - to: start steps: - tool: Prying - doAfter: 5 + doAfter: 2 completed: - !type:SpawnPrototype prototype: MaterialWoodPlank1 @@ -42,7 +42,10 @@ - to: start steps: - tool: Prying - doAfter: 5 + doAfter: 2 + conditions: + - !type:SolutionEmpty + solution: keg completed: - !type:SpawnPrototype prototype: MaterialWoodPlank1 From c07ed0dc030ad41c23807cfb60979836798749fd Mon Sep 17 00:00:00 2001 From: rosieposie Date: Thu, 15 Feb 2024 08:52:47 -0500 Subject: [PATCH 07/11] spigot lookanice --- .../Structures/Storage/keg.rsi/base.png | Bin 1066 -> 1118 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/Resources/Textures/DeltaV/Structures/Storage/keg.rsi/base.png b/Resources/Textures/DeltaV/Structures/Storage/keg.rsi/base.png index a6a7e0b1e10b6c8086805e9fabc8de4d2bd18457..056eb97797d4f396a6a35cf42146c3e704f90041 100644 GIT binary patch delta 1037 zcmV+o1oHc;2;K;gV1MaJL_t(oh3%JbNE>$;$3Ol_rt{)v5^dAUVd9!VQbRYPQX!jf zOc}Eq9qfhBL80&VqHi_|ExsR=vKM>TvN4doD{Rn){c$VkQU+a9kW^)w)~g5Y)ff|M zPMRju+Y9+!FB+o}y3w)c&F}8_9QS=dRVg5P<6!-#2Dw3(QX^nR&2Eu&V_%Q#Ad$ULx4lf-e*%5NO&p$gTh;&L1&u zr#qORPSWmZ;*PRHueX(@e8Ife^%C#&xLC>;@P)zveD?L&ju5*7xO66Jj87!!^|k_- zfyD}#P{QvEg@6A!fcnN}Zl@Ms3_v6jG0vT6JTPQzUjTTM=SMfV;Lsba!{t z+1W|Mt$%O1qpSd!Eho&nzt(pORaH?Gg`QGsZvX@P9Y(OLg?2|13kL^SUtdR-Wm9^q zEiW$v;BvXl{40vW2mWTpClcs-Y1=}q3Lr@~WVhXvSNBH&%sQ}I;aP#qQU-um|NIGG zC`{zNE>?3nPG5+jE|<0B$uz;B$!12Uowt#cl> zj${GX>uu$m#Y+{1ht-qR%K=$tTJ!>#mMj=o&#|C z%74v@olq4Z=yVva&=DF^lV*=sN`d%#0NHH^Af`NFWO$I{ABTCokY+WPb&JIO*tN%3sR+pavTb0=HG!(Va*5))p6h$$wg(-?s z<^x!mO8}T@&>q3H*d73UP8+&jBIDlZe}4h9oi(H;kt7@Q*%C9^e4V_n*%%of1oi+R zAUfAOJe-kS@Z*wR+xcUN`;e;&UIcrSIi^ z%?503$D02Of=-9=aIKz$4I9D5wOF?sINRCF_hV1KnqL_t(oh3%GKXj@er$3IC;%*;)&Nn09ME=js3kgR31XxSjH z>>(m-g9(C&4?f9HFS%`{E^%dkBH_l%*?ce zI1u3Ei4*3<^Zkeh+$(*v&*4!cM58XIXa8bhVWE3~$w7~)CeNd)Dihvi0B(J=+|YzT zLt~2KH%epZx{f~o1=s#4?+eiqAdyIzqqQ_fB+10Y1b^9VR)V+|UODpxm(O(6~hxZ@aMczBqh zp&@#1e1FQKRsxV)PK0%SXW~_KT}RV2Mr-Nr044`LW-REY-{a!f!;{qObyQWA(p#fY zC;;I1`{no7G>y})-^i6Kq%zz4HeyQvMRB0^IiUh=_0}b+@difdNduI+sagcEZy7K{{fJyZc|j>=!-h zB^1RWyMK22oC(b@tZm(hVm^;K-~>f+08#g)hDQ0V`K>DZc7DeI0s>&b30qaTyJP40 zp}Nd(RqyAZz2Y4KSV8XY*g4#@TU Date: Thu, 15 Feb 2024 13:36:01 -0500 Subject: [PATCH 08/11] vaultable !! --- .../DeltaV/Entities/Structures/Storage/Crates/barrel.yml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Resources/Prototypes/DeltaV/Entities/Structures/Storage/Crates/barrel.yml b/Resources/Prototypes/DeltaV/Entities/Structures/Storage/Crates/barrel.yml index 24cef2ac04e..f04decffbdd 100644 --- a/Resources/Prototypes/DeltaV/Entities/Structures/Storage/Crates/barrel.yml +++ b/Resources/Prototypes/DeltaV/Entities/Structures/Storage/Crates/barrel.yml @@ -45,12 +45,13 @@ fix1: shape: !type:PhysShapeAabb - bounds: "-0.2,-0.3,0.2,0.3" + bounds: "-0.2,-0.3,0.2,0.4" density: 125 mask: - SmallMobMask #this is so they can go under plastic flaps layer: - MachineLayer + - type: Climbable - type: entity parent: BaseStructureDynamic @@ -126,7 +127,7 @@ fix1: shape: !type:PhysShapeAabb - bounds: "-0.2,-0.3,0.2,0.3" + bounds: "-0.2,-0.3,0.2,0.4" density: 125 mask: - SmallMobMask #this is so they can go under plastic flaps @@ -134,6 +135,7 @@ - MachineLayer - type: Transform noRot: true + - type: Climbable - type: entity parent: WoodenKeg From 9040d96b46ec86f9a95930e27c054d1470faf410 Mon Sep 17 00:00:00 2001 From: rosieposie Date: Thu, 15 Feb 2024 14:29:08 -0500 Subject: [PATCH 09/11] actually transfer like a water cooler --- .../Structures/Storage/Crates/barrel.yml | 34 +++++++++---------- .../DeltaV/Recipes/Crafting/Graphs/barrel.yml | 2 +- 2 files changed, 17 insertions(+), 19 deletions(-) diff --git a/Resources/Prototypes/DeltaV/Entities/Structures/Storage/Crates/barrel.yml b/Resources/Prototypes/DeltaV/Entities/Structures/Storage/Crates/barrel.yml index f04decffbdd..879f3aee850 100644 --- a/Resources/Prototypes/DeltaV/Entities/Structures/Storage/Crates/barrel.yml +++ b/Resources/Prototypes/DeltaV/Entities/Structures/Storage/Crates/barrel.yml @@ -61,29 +61,25 @@ components: - type: SolutionContainerManager solutions: - keg: + tank: maxVol: 500 canMix: true - - type: RefillableSolution - solution: keg - type: DrainableSolution - solution: keg + solution: tank - type: ExaminableSolution - solution: keg - - type: DrawableSolution - solution: keg - - type: InjectableSolution - solution: keg - - type: SolutionTransfer - canChangeTransferAmount: true + solution: tank - type: UserInterface interfaces: - key: enum.TransferAmountUiKey.Key type: TransferAmountBoundUserInterface + - type: DrawableSolution + solution: tank + - type: InjectableSolution + solution: tank - type: Drink - solution: keg + solution: tank - type: Spillable - solution: keg + solution: tank - type: Sprite sprite: DeltaV/Structures/Storage/keg.rsi layers: @@ -105,7 +101,7 @@ sound: collection: WoodDestroy - !type:SpillBehavior - solution: keg + solution: tank - !type:SpawnEntitiesBehavior spawn: MaterialWoodPlank1: @@ -135,18 +131,18 @@ - MachineLayer - type: Transform noRot: true - - type: Climbable - type: entity parent: WoodenKeg name: root beer keg + description: A musty old wooden keg, with a tap attached to the front. Smells like root beer. id: WoodenKegRootBeer components: - type: Label currentLabel: reagent-name-root-beer - type: SolutionContainerManager solutions: - keg: + tank: reagents: - ReagentId: RootBeer Quantity: 500 @@ -154,13 +150,14 @@ - type: entity parent: WoodenKeg name: beer keg + description: A musty old wooden keg, with a tap attached to the front. Smells like beer. id: WoodenKegBeer components: - type: Label currentLabel: reagent-name-beer - type: SolutionContainerManager solutions: - keg: + tank: reagents: - ReagentId: Beer Quantity: 500 @@ -168,13 +165,14 @@ - type: entity parent: WoodenKeg name: wine keg + description: A musty old wooden keg, with a tap attached to the front. Smells like wine. id: WoodenKegWine components: - type: Label currentLabel: reagent-name-wine - type: SolutionContainerManager solutions: - keg: + tank: reagents: - ReagentId: Wine Quantity: 500 diff --git a/Resources/Prototypes/DeltaV/Recipes/Crafting/Graphs/barrel.yml b/Resources/Prototypes/DeltaV/Recipes/Crafting/Graphs/barrel.yml index 95ac28a7de6..70476578317 100644 --- a/Resources/Prototypes/DeltaV/Recipes/Crafting/Graphs/barrel.yml +++ b/Resources/Prototypes/DeltaV/Recipes/Crafting/Graphs/barrel.yml @@ -45,7 +45,7 @@ doAfter: 2 conditions: - !type:SolutionEmpty - solution: keg + solution: tank completed: - !type:SpawnPrototype prototype: MaterialWoodPlank1 From e875f19e8410dfaa181c956811034ad0a91c7516 Mon Sep 17 00:00:00 2001 From: rosieposie Date: Thu, 22 Feb 2024 09:48:18 -0500 Subject: [PATCH 10/11] make kegs dumpable so you can fill easily --- .../DeltaV/Entities/Structures/Storage/Crates/barrel.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Resources/Prototypes/DeltaV/Entities/Structures/Storage/Crates/barrel.yml b/Resources/Prototypes/DeltaV/Entities/Structures/Storage/Crates/barrel.yml index 879f3aee850..f543d34f172 100644 --- a/Resources/Prototypes/DeltaV/Entities/Structures/Storage/Crates/barrel.yml +++ b/Resources/Prototypes/DeltaV/Entities/Structures/Storage/Crates/barrel.yml @@ -80,6 +80,8 @@ solution: tank - type: Spillable solution: tank + - type: DumpableSolution + solution: tank - type: Sprite sprite: DeltaV/Structures/Storage/keg.rsi layers: From f6d06f8f2a3d8e633c4863307b3db9086a114e76 Mon Sep 17 00:00:00 2001 From: rosieposie Date: Thu, 22 Feb 2024 10:26:54 -0500 Subject: [PATCH 11/11] resprite barrels to fit style better --- .../Structures/Storage/barrel.rsi/base.png | Bin 1034 -> 995 bytes .../Structures/Storage/barrel.rsi/closed.png | Bin 337 -> 325 bytes .../Structures/Storage/barrel.rsi/meta.json | 2 +- .../Structures/Storage/barrel.rsi/open.png | Bin 1034 -> 995 bytes .../Structures/Storage/keg.rsi/base.png | Bin 1118 -> 1148 bytes .../Structures/Storage/keg.rsi/meta.json | 2 +- 6 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Resources/Textures/DeltaV/Structures/Storage/barrel.rsi/base.png b/Resources/Textures/DeltaV/Structures/Storage/barrel.rsi/base.png index 04f13fd22bfce6720c9b64d4ab8d18311f72d354..9f0c3c9e93772169e5a3e5193ee7a81a4e274dfb 100644 GIT binary patch delta 913 zcmV;C18)3^2;&EkV1I5&L_t(oh3(c)Y}-^E!0~TawMto1w{D%*A~iFun$l@STM&^Z z)^?X(2%0!?pcgK1XVO60c@iMO9fZWC95^9FC!q;xEk%=<+O3DJbS=V}2l84c>9V+L zXw;ZPc_vBo$H|7c?03n_^K*Wmyx+6mYja(f|1;X20h$FQMt|hGH_ZQ*Y5UIri4obI zo_d97G~o4xM+Uw2($ypji_1+Rd;>)Cg~jE%^>u99u8HskxG>s9G#X&` z%3}TO|HRzoDem3N^WDZ?>ws}NzHzYV~$^)i-a zVVWko^%Hh3&%(xT^8iVb+_zuqLJ0*}F&?A!cjAoBplKQas;UBDSr)3QmVIV^{F1fg zE>oxauyc97{&kORHrpIPQ51JzAk3LFF)}yiiRs4G@9e8tHTzfWE#yul|N%aH_Bg&{_#3NpjCA?P&d--t;=7 zGXUN?D2@DIc~W)?falhKC@aYm0UW1rq_)*cV1MWGW!FTh%+x+h_Q8_@E=&%xY39m) zSODx?9wij;05QEA;OPK{h9XP`(^dbO0QB^B@Mxz{6#$S`Pm;d7+S+?S07N~j0YsDn zMB8x+r1~}P+_~G@ULZ-5J25dq`{rsH062mW{Q|I-+(nytljZqu>+XmR0YgI(dV6Jb zU4JLIajoV$D4l*oo%G%T^OXw` z1*TTCZ>|yycGO+{z5xPpx~o|83|QIcI0bI+9c!4}H$Wf&?^INJ`~tkb+k1y6B0tHS n0#rh3h2O+21D|mlWUvSSfiZm-)Q94m4+FOc34)siWoTLL+Gv{D8?Vf(ZIViQ12G}F zK9uizQ)!8w*l_8^^G^<-pM;)2 zL9Vu`%7DyyyuHV{YWo2b>fb_|LrDiUnsw&CgI>9}iw?6oZ zM=cMhy={Ph?B9JONg^S0uX+w$*U_^#x%1n8Pl&z%see?;nr#*^r!pjyNesgv8C(az zA9<$3*ZZ(QHKd~ZU&SyCbX`Z;%JM*(?3;zY0B6t6ST8AMyYJ1Z463RE5R1hCFbsoO zEY`7BzW9(_vBvb6pRdda8ylO)2Ut22wnWg%*SDFE2ie^}`1!=)PC2a8OAW#omQc2` z=%og?AAeT5LL3S3K$>J?VuI1pQM~s)VO6UFFdq+g_&fEjZT(Q=(5c>isiiA4sv(sx% zWdQ6ta7z8pI;Gtb0MGsSIk{qu#o5T<0Mp@sHGdwKn2!fp)v9(4h=Lpm$hPn9ew~qk z%&JzkZL3-pPkfBFR>U-$g9E6;KJ-$fD}V@m7zE%xVOqfoL*G}~t~AM21_1D!QW0$^ zicWNbGqBJ*{q7T{traQCG1|ZC#|MCee_*U`V46)tL5k-%d}C+&#k(ttL{W|n_78|G zM1N-H@D|qW9`E)9;`Z?OOpq(qXid&h-dyW>d)EK}@pv3%E8F!G62V2L%&82TrUCpr z00H4Sr4kB-Z4hyIJRZ0GG)?QUxe4wXU_2~gnoUZ>2mLQ#dWpBNhN4J)tKT(%fQb6A z$1Ra+=uE%UzSH2y;I07#1Yi#&k6IpHd@;6d+r=~_h7~u#j|Jca={Asv)otK`0UozJ a1^5e!9arCXl8g8N0000uK5V1Lj_L_t(oh3(QY4uU`sh2fuu*er#?WUEa~}tmfAEZe}aA*>^#G5rY8X(yPzk zLjMZbuC;9jo^CI?FA^A4uV-`seAWPv<`u?w35)`$gVVfXe|?Vs2bzfPT@y7V{3pQJ nB>({kKmY;|fB*y_fXM-G^zE_1dLA((00000NkvXXu0mjfUCU@L delta 249 zcmV)7Xj5>f62lOPn{l9nh62r9zUm3I% zxEUV3`30Bz^5r*!mI60}lC~a0$=qFxRCfT(a#3CmhO_rSF&HcIF}(i#1J3{Q0%14bP%>VQ!Pj5=V{0izBWb-<_t2HXJvqsGs{4;vMy00000NkvXXu0mjf=ss@| diff --git a/Resources/Textures/DeltaV/Structures/Storage/barrel.rsi/meta.json b/Resources/Textures/DeltaV/Structures/Storage/barrel.rsi/meta.json index ddb49cff079..03a01149a2a 100644 --- a/Resources/Textures/DeltaV/Structures/Storage/barrel.rsi/meta.json +++ b/Resources/Textures/DeltaV/Structures/Storage/barrel.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation PR https://github.com/tgstation/tgstation/pull/38977", + "copyright": "Taken from tgstation PR https://github.com/tgstation/tgstation/pull/38977, modified by rosieposieeee", "size": { "x": 32, "y": 32 diff --git a/Resources/Textures/DeltaV/Structures/Storage/barrel.rsi/open.png b/Resources/Textures/DeltaV/Structures/Storage/barrel.rsi/open.png index 04f13fd22bfce6720c9b64d4ab8d18311f72d354..9f0c3c9e93772169e5a3e5193ee7a81a4e274dfb 100644 GIT binary patch delta 913 zcmV;C18)3^2;&EkV1I5&L_t(oh3(c)Y}-^E!0~TawMto1w{D%*A~iFun$l@STM&^Z z)^?X(2%0!?pcgK1XVO60c@iMO9fZWC95^9FC!q;xEk%=<+O3DJbS=V}2l84c>9V+L zXw;ZPc_vBo$H|7c?03n_^K*Wmyx+6mYja(f|1;X20h$FQMt|hGH_ZQ*Y5UIri4obI zo_d97G~o4xM+Uw2($ypji_1+Rd;>)Cg~jE%^>u99u8HskxG>s9G#X&` z%3}TO|HRzoDem3N^WDZ?>ws}NzHzYV~$^)i-a zVVWko^%Hh3&%(xT^8iVb+_zuqLJ0*}F&?A!cjAoBplKQas;UBDSr)3QmVIV^{F1fg zE>oxauyc97{&kORHrpIPQ51JzAk3LFF)}yiiRs4G@9e8tHTzfWE#yul|N%aH_Bg&{_#3NpjCA?P&d--t;=7 zGXUN?D2@DIc~W)?falhKC@aYm0UW1rq_)*cV1MWGW!FTh%+x+h_Q8_@E=&%xY39m) zSODx?9wij;05QEA;OPK{h9XP`(^dbO0QB^B@Mxz{6#$S`Pm;d7+S+?S07N~j0YsDn zMB8x+r1~}P+_~G@ULZ-5J25dq`{rsH062mW{Q|I-+(nytljZqu>+XmR0YgI(dV6Jb zU4JLIajoV$D4l*oo%G%T^OXw` z1*TTCZ>|yycGO+{z5xPpx~o|83|QIcI0bI+9c!4}H$Wf&?^INJ`~tkb+k1y6B0tHS n0#rh3h2O+21D|mlWUvSSfiZm-)Q94m4+FOc34)siWoTLL+Gv{D8?Vf(ZIViQ12G}F zK9uizQ)!8w*l_8^^G^<-pM;)2 zL9Vu`%7DyyyuHV{YWo2b>fb_|LrDiUnsw&CgI>9}iw?6oZ zM=cMhy={Ph?B9JONg^S0uX+w$*U_^#x%1n8Pl&z%see?;nr#*^r!pjyNesgv8C(az zA9<$3*ZZ(QHKd~ZU&SyCbX`Z;%JM*(?3;zY0B6t6ST8AMyYJ1Z463RE5R1hCFbsoO zEY`7BzW9(_vBvb6pRdda8ylO)2Ut22wnWg%*SDFE2ie^}`1!=)PC2a8OAW#omQc2` z=%og?AAeT5LL3S3K$>J?VuI1pQM~s)VO6UFFdq+g_&fEjZT(Q=(5c>isiiA4sv(sx% zWdQ6ta7z8pI;Gtb0MGsSIk{qu#o5T<0Mp@sHGdwKn2!fp)v9(4h=Lpm$hPn9ew~qk z%&JzkZL3-pPkfBFR>U-$g9E6;KJ-$fD}V@m7zE%xVOqfoL*G}~t~AM21_1D!QW0$^ zicWNbGqBJ*{q7T{traQCG1|ZC#|MCee_*U`V46)tL5k-%d}C+&#k(ttL{W|n_78|G zM1N-H@D|qW9`E)9;`Z?OOpq(qXid&h-dyW>d)EK}@pv3%E8F!G62V2L%&82TrUCpr z00H4Sr4kB-Z4hyIJRZ0GG)?QUxe4wXU_2~gnoUZ>2mLQ#dWpBNhN4J)tKT(%fQb6A z$1Ra+=uE%UzSH2y;I07#1Yi#&k6IpHd@;6d+r=~_h7~u#j|Jca={Asv)otK`0UozJ a1^5e!9arCXl8g8N0000b|;Uw;G#Nkl2^k$; zFte> z-`VGJI?HrjZF9Z8o)}$c{O)XC5XT14jC)6?0T^)CGd3Sc+auPL(ssgZ{09Z`>p72Ey$o?HV9ToT@iM$|k0(hFu>Xpl97#^8KtSL=1nz}v+bpB!&!y}V9 zA#wt=n@#EmZ-2kQ@W>>cjtX6Wn9+j(Z@vEmOTkFt02YfyZEI`e+Dlb@^TkY>!8vI= z!y_%CNe|EYi(Op*D#Y^gGCrR#E5xw?23id`on?9$0A&9TVofP6q6t7ZEc#r~|y3S*37qTo9obvJ@ zn9LfABLVta%dwcskgRUHySq^og-T@xr?X72|N3WZ0eG~r1;DKG9EzeK%Q6n-M|_b4 zqpjxB3_;&O6fFKBJuYaW&v8GgaZ?yFsfSw1bl6aE9@ACuj z)bh79o^;WBp@CQ^#Qap4H$T2p7(g_d%!ut_A<*W5Hjpm8-o^ce73QbH+_*JeSQTgh z+5obc$`0*-7E_rHuo#Im@%0-ljxDmXlHkUzX@1{5QCJAO7>gnb7YMj6?3x)Rqw=tmSz+nKI9307-H--lLu|7@K$#~=}5ClPWxm*;l zEu;Ye84#LY1Mo^=h6ek2@iiBZHnxa`LVWn%SO!E+0K45rRh1cs!+~-2PS!loP7fei z-Hd;CldGOyI(h^EVu2?>rYCaV2T~yb9Dfc++WXqN{aLWJxjzdeNdh1g3bO5c0HB9K z`2)W67671CgTH3K{xz6vQoOc+(O9B4AhFJ%4h{AL1psIerww};jU@m?qe*?ONvbXy zO>!^(SLta0+mS@ZUGdnrVnGm8fYXLOwsxSlH2uA%yB9wJkWu$yok0bVH{-`o!X=|X mvPrgvlTH48zh?hAfIk6Vyqn(<1r;0s0000UNv8ASW)f}F%3*Yy(b^tf2c7x0C`0DSiK*p3jp0=RT0YK%`L==HV& zn1RI#m{7v+3x9?GIe_}cW^ShzUkpGb5;4x5XyeE4{s1t)c(Ym6Sjrc8_rs%HoqCq`dX6!Bz{Sj z6(LYom?HSCl`yKRqKCs^ndmBp=p{4(&Boh?AeBUDOTEK z)RyCDnue;XNONP{wH>OeLREmnheO8O(lTnMi0rnb`=iLR41mYu0YK9BNiJS)wat5KriinD2x)E%HB%&ZFIy2}M}WJwLv(j{ z)7jZc!+))BxudKAm@OyFy1&+U3RP866osBrYHt7o`yEEGtA%z)6AK3iSYKa9mSt0V zt1T}t1K@JG%={~g!Uz6l#wQZ!dTHB2tO_7WHe|Qmlvnph0n9qETH#rN%u)t`SO5G8 zUnorEy)IUBIZj`Qp)NkH4It=r7(S0*XwQNo8%$@XNMwu8H)qdo&wmI16>8pJnO9!PXx7|hE`=}9;`BN{Kd%dAf5wo z`G3mIik(muAn0@$uFw%0Qj=znS4x5SdH~sN2Oy?AVPtra;~$54ypU!!m*b1iZ)}0s z6##(O>qVLyt2l&2aG{j$k23!ARn87Yc&q<409Kcu0b7;W@iY{*(AMTOK@>$XuZ1a! zQsx6#m`ebdY0w_Qwb&j2d`=s>ULxb(=zo6!vz;}hCXpl?^Vt$J*?gV6uh|$G9t8FP zARs#IAW1ghxztcDztx{EVz!Ed%Au%++i zea!}JZO5Ab3xZCE@o=r4gAE(O#kE+s8#vq9%lBvWp9A