From 222679c6ee23811206cc60592f79f84e9d9fab10 Mon Sep 17 00:00:00 2001 From: BarryNorfolk Date: Tue, 17 Dec 2024 09:49:05 +0100 Subject: [PATCH 01/76] Add Atmos alert computer board to lathe recipes and research (#2452) --- Resources/Prototypes/DeltaV/Recipes/Lathes/electronics.yml | 5 +++++ Resources/Prototypes/Entities/Structures/Machines/lathe.yml | 1 + Resources/Prototypes/Research/industrial.yml | 1 + 3 files changed, 7 insertions(+) diff --git a/Resources/Prototypes/DeltaV/Recipes/Lathes/electronics.yml b/Resources/Prototypes/DeltaV/Recipes/Lathes/electronics.yml index e8d4779d0e5..f303be29f16 100644 --- a/Resources/Prototypes/DeltaV/Recipes/Lathes/electronics.yml +++ b/Resources/Prototypes/DeltaV/Recipes/Lathes/electronics.yml @@ -7,3 +7,8 @@ parent: BaseCircuitboardRecipe id: ComputerMassMediaCircuitboard result: ComputerMassMediaCircuitboard + +- type: latheRecipe + parent: BaseCircuitboardRecipe + id: AlertsComputerCircuitboard + result: AlertsComputerCircuitboard diff --git a/Resources/Prototypes/Entities/Structures/Machines/lathe.yml b/Resources/Prototypes/Entities/Structures/Machines/lathe.yml index fd5a2bbbe1f..3bec2417ef1 100644 --- a/Resources/Prototypes/Entities/Structures/Machines/lathe.yml +++ b/Resources/Prototypes/Entities/Structures/Machines/lathe.yml @@ -579,6 +579,7 @@ # Begin DeltaV additions - SalvageExpeditionsComputerCircuitboard - ComputerMassMediaCircuitboard + - AlertsComputerCircuitboard # End DeltaV additions - type: EmagLatheRecipes emagDynamicRecipes: diff --git a/Resources/Prototypes/Research/industrial.yml b/Resources/Prototypes/Research/industrial.yml index 37496484b79..dedc0f60e8a 100644 --- a/Resources/Prototypes/Research/industrial.yml +++ b/Resources/Prototypes/Research/industrial.yml @@ -100,6 +100,7 @@ recipeUnlocks: - ThermomachineFreezerMachineCircuitBoard - GasRecyclerMachineCircuitboard + - AlertsComputerCircuitboard # DeltaV - Allows atmos computers to be researched - type: technology id: RipleyAPLU From 703c4556e33de7ea8ba81a97f80a9734f53c7859 Mon Sep 17 00:00:00 2001 From: Delta-V bot <135767721+DeltaV-Bot@users.noreply.github.com> Date: Tue, 17 Dec 2024 09:49:25 +0100 Subject: [PATCH 02/76] Automatic changelog update --- Resources/Changelog/DeltaVChangelog.yml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/Resources/Changelog/DeltaVChangelog.yml b/Resources/Changelog/DeltaVChangelog.yml index 19210567258..914022a97d2 100644 --- a/Resources/Changelog/DeltaVChangelog.yml +++ b/Resources/Changelog/DeltaVChangelog.yml @@ -1,11 +1,4 @@ Entries: -- author: UnicornOnLSD - changes: - - message: Pebble minor patch number two. - type: Tweak - id: 279 - time: '2024-03-13T22:27:44.0000000+00:00' - url: https://github.com/DeltaV-Station/Delta-v/pull/943 - author: Velcroboy changes: - message: Added magnet pickup to Ore Processors and Material Reclaimer @@ -3817,3 +3810,10 @@ id: 778 time: '2024-12-17T04:45:41.0000000+00:00' url: https://github.com/DeltaV-Station/Delta-v/pull/2389 +- author: BarryNorfolk + changes: + - message: Added atmospherics computer board to t1 research and enabled fabrication + type: Tweak + id: 779 + time: '2024-12-17T08:49:06.0000000+00:00' + url: https://github.com/DeltaV-Station/Delta-v/pull/2452 From eb1f2e61692c034c7c0d95ba1398475399cafb0b Mon Sep 17 00:00:00 2001 From: Radezolid Date: Tue, 17 Dec 2024 09:33:52 -0300 Subject: [PATCH 03/76] Add the psychologist's locker (#2372) * Add the locker + fill * In DeltaV folder * Generic! * Remove appearance * Fix meta.json --- .../DeltaV/Catalog/Fills/Lockers/medical.yml | 23 ++++++++++ .../Storage/Closets/Lockers/lockers.yml | 14 ++++++ .../Structures/Storage/closet.rsi/generic.png | Bin 0 -> 215 bytes .../Storage/closet.rsi/generic_door.png | Bin 0 -> 206 bytes .../Storage/closet.rsi/generic_icon.png | Bin 0 -> 259 bytes .../Storage/closet.rsi/generic_open.png | Bin 0 -> 213 bytes .../Structures/Storage/closet.rsi/locked.png | Bin 0 -> 127 bytes .../Structures/Storage/closet.rsi/meta.json | 41 ++++++++++++++++++ .../Structures/Storage/closet.rsi/psych.png | Bin 0 -> 233 bytes .../Storage/closet.rsi/psych_door.png | Bin 0 -> 230 bytes .../Storage/closet.rsi/psych_open.png | Bin 0 -> 209 bytes .../Storage/closet.rsi/unlocked.png | Bin 0 -> 127 bytes .../Structures/Storage/closet.rsi/welded.png | Bin 0 -> 206 bytes 13 files changed, 78 insertions(+) create mode 100644 Resources/Prototypes/DeltaV/Catalog/Fills/Lockers/medical.yml create mode 100644 Resources/Textures/DeltaV/Structures/Storage/closet.rsi/generic.png create mode 100644 Resources/Textures/DeltaV/Structures/Storage/closet.rsi/generic_door.png create mode 100644 Resources/Textures/DeltaV/Structures/Storage/closet.rsi/generic_icon.png create mode 100644 Resources/Textures/DeltaV/Structures/Storage/closet.rsi/generic_open.png create mode 100644 Resources/Textures/DeltaV/Structures/Storage/closet.rsi/locked.png create mode 100644 Resources/Textures/DeltaV/Structures/Storage/closet.rsi/meta.json create mode 100644 Resources/Textures/DeltaV/Structures/Storage/closet.rsi/psych.png create mode 100644 Resources/Textures/DeltaV/Structures/Storage/closet.rsi/psych_door.png create mode 100644 Resources/Textures/DeltaV/Structures/Storage/closet.rsi/psych_open.png create mode 100644 Resources/Textures/DeltaV/Structures/Storage/closet.rsi/unlocked.png create mode 100644 Resources/Textures/DeltaV/Structures/Storage/closet.rsi/welded.png diff --git a/Resources/Prototypes/DeltaV/Catalog/Fills/Lockers/medical.yml b/Resources/Prototypes/DeltaV/Catalog/Fills/Lockers/medical.yml new file mode 100644 index 00000000000..760401ef161 --- /dev/null +++ b/Resources/Prototypes/DeltaV/Catalog/Fills/Lockers/medical.yml @@ -0,0 +1,23 @@ +- type: entityTable + id: PsychologistLockerFill + table: !type:AllSelector + children: + - id: BoxFolderWhite + - id: PillCanisterBlissifylovene + - id: PillCanisterEquilibrazine + - id: PillCanisterNeurozenium + - id: PillCanisterSerenitol + - id: ClothingUniformJumpsuitPsychologist + - id: ClothingUniformJumpskirtPsychologist + - id: DrinkWhiskeyBottleFull + - id: ClothingHeadsetMedical + +- type: entity + parent: LockerPsychologist + id: LockerPsychologistFilled + suffix: Filled + components: + - type: EntityTableContainerFill + containers: + entity_storage: !type:NestedSelector + tableId: PsychologistLockerFill diff --git a/Resources/Prototypes/DeltaV/Entities/Structures/Storage/Closets/Lockers/lockers.yml b/Resources/Prototypes/DeltaV/Entities/Structures/Storage/Closets/Lockers/lockers.yml index 3b2f72d5d9e..d442b0cf3f5 100644 --- a/Resources/Prototypes/DeltaV/Entities/Structures/Storage/Closets/Lockers/lockers.yml +++ b/Resources/Prototypes/DeltaV/Entities/Structures/Storage/Closets/Lockers/lockers.yml @@ -23,3 +23,17 @@ stateDoorClosed: clerk_door - type: AccessReader access: [["Clerk"]] + +- type: entity + parent: LockerBaseSecure + id: LockerPsychologist + name: psychologist's locker + components: + - type: Sprite + sprite: DeltaV/Structures/Storage/closet.rsi + - type: EntityStorageVisuals + stateBaseClosed: psych + stateDoorOpen: psych_open + stateDoorClosed: psych_door + - type: AccessReader + access: [["Psychologist"]] diff --git a/Resources/Textures/DeltaV/Structures/Storage/closet.rsi/generic.png b/Resources/Textures/DeltaV/Structures/Storage/closet.rsi/generic.png new file mode 100644 index 0000000000000000000000000000000000000000..cd0c0ff2ea19a9c505384a6679cd195ce3e22632 GIT binary patch literal 215 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnF3?v&v(vJfv^#Gp`S0JsSp`ov*XJut&V`Jm! z=;-3&5)crOk)EEPpI=Z=(9qD(*w7Ghe(DaOQpS=XzhDN3XE)M-oH$Px#}JM4$q5Iz zSPn8AOn(!_%A(DpAv9xi_4j$k>ViyXyb=-^#1on#RyPO;n6WWA@8a&*!O*De$+T#p zgFuJBgAOl;kf+cA4t^fzqo*4eOi*DgagJ2HD9~W4$iQ&$pv7zNMF)9+HZgd*`njxg HN@xNAfu=q2 literal 0 HcmV?d00001 diff --git a/Resources/Textures/DeltaV/Structures/Storage/closet.rsi/generic_door.png b/Resources/Textures/DeltaV/Structures/Storage/closet.rsi/generic_door.png new file mode 100644 index 0000000000000000000000000000000000000000..26498527779b4d6a73aae5d90c336bfffa1a1410 GIT binary patch literal 206 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnF3?v&v(vJfv^#Gp`S0F7ZDJdf(qpYm#;NTDt z5D*>`l9-T?k)EEPpI=;DTv=J!*wFC3pz|_NDPu{HUoeBivm0qZPN=7gV~EE2Ef((HlEMJ!%{2~RkfWgz%&t;ucLK6UwoItz) literal 0 HcmV?d00001 diff --git a/Resources/Textures/DeltaV/Structures/Storage/closet.rsi/generic_icon.png b/Resources/Textures/DeltaV/Structures/Storage/closet.rsi/generic_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..2487eae1fdd11637cf11455e45b2431fe0690488 GIT binary patch literal 259 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE3?yBabR7dyjKx9jP7LeL$-D$|)B}7%T!FNP zhK9bLo|ToAjg5_?qoa$9OF%$CMtXXFettngK|@1BV?#s4`KddAN_k6y{DK+&BLQ6& z$F)F-LQfaR5R2ZkmrimWP~dS5WLNQ={r~?xt)ml;dcR$E`0kDm3Q|5V>u$1suiPxr zY2NU{?$SJkfbP{y0WP|l92(JFjRvQ8Jd98-==;d@=V6N^+cw`T3JT0K<=9tSmk2dl rwhNr`tgAfqNK}ty*8gw34GWkjN^+I6m~nLhEobm_^>bP0l+XkKq_VS)S0JsTqN1UpVP$3I;o%Vw z5D*>`lAoX7*wB!bHRU!?nz1CvFPOpM*^M+HC&SalF+}5ha)N}$fh9{C&V&YCdXeEE zcHu>ax3j2+w;7Ny69Ez;Y73lXS1e+1Wmv%!st~Bd8>*n&+t6SXpwMW-Xu80GVN-+F zh2j-V4($uM80Px5aj}PpE=pXX<OIQ< literal 0 HcmV?d00001 diff --git a/Resources/Textures/DeltaV/Structures/Storage/closet.rsi/locked.png b/Resources/Textures/DeltaV/Structures/Storage/closet.rsi/locked.png new file mode 100644 index 0000000000000000000000000000000000000000..d90218d19e26a9037ed3fac22986f4c4aca73af6 GIT binary patch literal 127 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnF3?v&v(vJfv{s5m4S0Me**7iS)l>c{f0#Jy# zB*-tA!Nz9UtAopcTp3Rn#}JM4$q5pyM;P54OBkI^7}eBE7?&!(&t{lx!>~3iF>NAH O9fPNH$6>u0UEpcA~qxdq6;dR%mNg zRaHjkhUwF%Z{ECl*REZsPoKVi{rcYl22f>V$-rKNg9BH>QR@%=%ky?bGU+d9p4p0P~g-O&@LuU@@b-0xQiRK!yfcpXe)b3S)Z{61&fX-@IAb#ui* O&h>Qlb6Mw<&;$VL`B%jN literal 0 HcmV?d00001 diff --git a/Resources/Textures/DeltaV/Structures/Storage/closet.rsi/psych_open.png b/Resources/Textures/DeltaV/Structures/Storage/closet.rsi/psych_open.png new file mode 100644 index 0000000000000000000000000000000000000000..ca629c4fcc295113aa32bcc7acd55c810ba5c255 GIT binary patch literal 209 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE3?yBabR7dyasfUeu0UEzNy)&#AR;27r>AH7 z^yy2NE?u{7-TwXiwL)9h)c>^ys^BUK@(X784+C|bB4I$$2u~Ns5R2ZYmkhZM81OJ3 z*its--~Xeb7j&w*L{^2ivpqJfo070fPwrS#ERzOI2r>mdKI;Vst0F-)5qyPW_ literal 0 HcmV?d00001 diff --git a/Resources/Textures/DeltaV/Structures/Storage/closet.rsi/unlocked.png b/Resources/Textures/DeltaV/Structures/Storage/closet.rsi/unlocked.png new file mode 100644 index 0000000000000000000000000000000000000000..418607bfaf59e0f774b85234300e48aeb1056b9a GIT binary patch literal 127 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnF3?v&v(vJfv{s5m4S0F9%pCRvWCWLeriFyPS zVlD~t3udsfS@!DSG9XvR)5S4F<9u?01nUt-HPsSEbrVK6=Mu()itn=-X0R}ph#_&!%v3oMt;US#13y~q-w%fThFV0PoW zMG-=G^~G9b!ZJJ64yPX> literal 0 HcmV?d00001 From ded69af24fac972bde187111723a6f5d2482a7a4 Mon Sep 17 00:00:00 2001 From: Radezolid Date: Tue, 17 Dec 2024 09:41:05 -0300 Subject: [PATCH 04/76] Add Interdyne clothes + contraband to the chemdrobe (#2355) * Add Interdyne clothes * Fix pixels * Typo + chemdrobe contraband * Eh, we don't need containers. * We do like containers --- .../VendingMachines/Inventories/chemdrobe.yml | 8 +++++- .../DeltaV/Entities/Clothing/Eyes/glasses.yml | 11 ++++++++ .../DeltaV/Entities/Clothing/Head/hoods.yml | 11 ++++++++ .../DeltaV/Entities/Clothing/Masks/masks.yml | 10 +++++++ .../Entities/Clothing/OuterClothing/misc.yml | 17 ++++++++++++ .../Entities/Clothing/Uniforms/jumpsuits.yml | 11 ++++++++ .../equipped-EYES.png | Bin 0 -> 291 bytes .../Glasses/interdynechemgoogles.rsi/icon.png | Bin 0 -> 330 bytes .../interdynechemgoogles.rsi/inhand-left.png | Bin 0 -> 348 bytes .../interdynechemgoogles.rsi/inhand-right.png | Bin 0 -> 356 bytes .../interdynechemgoogles.rsi/meta.json | 26 ++++++++++++++++++ .../interdynechemhood.rsi/equipped-HELMET.png | Bin 0 -> 591 bytes .../Head/Hoods/interdynechemhood.rsi/icon.png | Bin 0 -> 320 bytes .../interdynechemhood.rsi/inhand-left.png | Bin 0 -> 521 bytes .../interdynechemhood.rsi/inhand-right.png | Bin 0 -> 524 bytes .../Hoods/interdynechemhood.rsi/meta.json | 26 ++++++++++++++++++ .../interdynechemmask.rsi/equipped-MASK.png | Bin 0 -> 641 bytes .../Mask/interdynechemmask.rsi/icon.png | Bin 0 -> 430 bytes .../interdynechemmask.rsi/inhand-left.png | Bin 0 -> 436 bytes .../interdynechemmask.rsi/inhand-right.png | Bin 0 -> 468 bytes .../Mask/interdynechemmask.rsi/meta.json | 26 ++++++++++++++++++ .../equipped-OUTERCLOTHING.png | Bin 0 -> 1888 bytes .../Misc/interdynechemsuit.rsi/icon.png | Bin 0 -> 670 bytes .../interdynechemsuit.rsi/inhand-left.png | Bin 0 -> 568 bytes .../interdynechemsuit.rsi/inhand-right.png | Bin 0 -> 568 bytes .../Misc/interdynechemsuit.rsi/meta.json | 26 ++++++++++++++++++ .../equipped-INNERCLOTHING.png | Bin 0 -> 1452 bytes .../Jumpsuit/interdyneuniform.rsi/icon.png | Bin 0 -> 446 bytes .../interdyneuniform.rsi/inhand-left.png | Bin 0 -> 469 bytes .../interdyneuniform.rsi/inhand-right.png | Bin 0 -> 459 bytes .../Jumpsuit/interdyneuniform.rsi/meta.json | 26 ++++++++++++++++++ 31 files changed, 197 insertions(+), 1 deletion(-) create mode 100644 Resources/Prototypes/DeltaV/Entities/Clothing/Head/hoods.yml create mode 100644 Resources/Prototypes/DeltaV/Entities/Clothing/Masks/masks.yml create mode 100644 Resources/Textures/DeltaV/Clothing/Eyes/Glasses/interdynechemgoogles.rsi/equipped-EYES.png create mode 100644 Resources/Textures/DeltaV/Clothing/Eyes/Glasses/interdynechemgoogles.rsi/icon.png create mode 100644 Resources/Textures/DeltaV/Clothing/Eyes/Glasses/interdynechemgoogles.rsi/inhand-left.png create mode 100644 Resources/Textures/DeltaV/Clothing/Eyes/Glasses/interdynechemgoogles.rsi/inhand-right.png create mode 100644 Resources/Textures/DeltaV/Clothing/Eyes/Glasses/interdynechemgoogles.rsi/meta.json create mode 100644 Resources/Textures/DeltaV/Clothing/Head/Hoods/interdynechemhood.rsi/equipped-HELMET.png create mode 100644 Resources/Textures/DeltaV/Clothing/Head/Hoods/interdynechemhood.rsi/icon.png create mode 100644 Resources/Textures/DeltaV/Clothing/Head/Hoods/interdynechemhood.rsi/inhand-left.png create mode 100644 Resources/Textures/DeltaV/Clothing/Head/Hoods/interdynechemhood.rsi/inhand-right.png create mode 100644 Resources/Textures/DeltaV/Clothing/Head/Hoods/interdynechemhood.rsi/meta.json create mode 100644 Resources/Textures/DeltaV/Clothing/Mask/interdynechemmask.rsi/equipped-MASK.png create mode 100644 Resources/Textures/DeltaV/Clothing/Mask/interdynechemmask.rsi/icon.png create mode 100644 Resources/Textures/DeltaV/Clothing/Mask/interdynechemmask.rsi/inhand-left.png create mode 100644 Resources/Textures/DeltaV/Clothing/Mask/interdynechemmask.rsi/inhand-right.png create mode 100644 Resources/Textures/DeltaV/Clothing/Mask/interdynechemmask.rsi/meta.json create mode 100644 Resources/Textures/DeltaV/Clothing/OuterClothing/Misc/interdynechemsuit.rsi/equipped-OUTERCLOTHING.png create mode 100644 Resources/Textures/DeltaV/Clothing/OuterClothing/Misc/interdynechemsuit.rsi/icon.png create mode 100644 Resources/Textures/DeltaV/Clothing/OuterClothing/Misc/interdynechemsuit.rsi/inhand-left.png create mode 100644 Resources/Textures/DeltaV/Clothing/OuterClothing/Misc/interdynechemsuit.rsi/inhand-right.png create mode 100644 Resources/Textures/DeltaV/Clothing/OuterClothing/Misc/interdynechemsuit.rsi/meta.json create mode 100644 Resources/Textures/DeltaV/Clothing/Uniforms/Jumpsuit/interdyneuniform.rsi/equipped-INNERCLOTHING.png create mode 100644 Resources/Textures/DeltaV/Clothing/Uniforms/Jumpsuit/interdyneuniform.rsi/icon.png create mode 100644 Resources/Textures/DeltaV/Clothing/Uniforms/Jumpsuit/interdyneuniform.rsi/inhand-left.png create mode 100644 Resources/Textures/DeltaV/Clothing/Uniforms/Jumpsuit/interdyneuniform.rsi/inhand-right.png create mode 100644 Resources/Textures/DeltaV/Clothing/Uniforms/Jumpsuit/interdyneuniform.rsi/meta.json diff --git a/Resources/Prototypes/Catalog/VendingMachines/Inventories/chemdrobe.yml b/Resources/Prototypes/Catalog/VendingMachines/Inventories/chemdrobe.yml index 2323d2f88b6..6c9d9be433b 100644 --- a/Resources/Prototypes/Catalog/VendingMachines/Inventories/chemdrobe.yml +++ b/Resources/Prototypes/Catalog/VendingMachines/Inventories/chemdrobe.yml @@ -21,4 +21,10 @@ ClothingOuterApronChemist: 2 # Realistic PPE apron for chemistry ClothingEyesGlassesChemist: 2 # Safety glasses ClothingHandsGlovesChemist: 2 # Heavy duty chemistry gloves - # End of modified code \ No newline at end of file + # End of modified code + # Begin DeltaV modifications - Add contraband to the chemdrobe + contrabandInventory: + ClothingMaskInterdyneChemistry: 1 + ClothingOuterInterdyneChemistrySuit: 1 + ClothingUniformInterdyneChemist: 1 + # End of DeltaV modifications diff --git a/Resources/Prototypes/DeltaV/Entities/Clothing/Eyes/glasses.yml b/Resources/Prototypes/DeltaV/Entities/Clothing/Eyes/glasses.yml index 52c7a6f3821..01fb7dadafd 100644 --- a/Resources/Prototypes/DeltaV/Entities/Clothing/Eyes/glasses.yml +++ b/Resources/Prototypes/DeltaV/Entities/Clothing/Eyes/glasses.yml @@ -83,3 +83,14 @@ sprite: DeltaV/Clothing/Eyes/Glasses/presccorpsglasses.rsi - type: Clothing sprite: DeltaV/Clothing/Eyes/Glasses/presccorpsglasses.rsi + +- type: entity + parent: [ClothingEyesGlassesChemical, ShowMedicalIcons] + id: ClothingEyesGlassesChemicalInterdyne + name: interdyne chemical analysis goggles + description: Goggles engineered to be unable to get a stain on the lenses. It comes with a medical HUD incorporated. + components: + - type: Sprite + sprite: DeltaV/Clothing/Eyes/Glasses/interdynechemgoogles.rsi + - type: Clothing + sprite: DeltaV/Clothing/Eyes/Glasses/interdynechemgoogles.rsi diff --git a/Resources/Prototypes/DeltaV/Entities/Clothing/Head/hoods.yml b/Resources/Prototypes/DeltaV/Entities/Clothing/Head/hoods.yml new file mode 100644 index 00000000000..0decd805c60 --- /dev/null +++ b/Resources/Prototypes/DeltaV/Entities/Clothing/Head/hoods.yml @@ -0,0 +1,11 @@ +- type: entity + parent: ClothingHeadHatHoodBioGeneral + id: ClothingHeadHatInterdyneChemistryHood + categories: [ HideSpawnMenu ] + name: interdyne chemistry hood + description: A hood to complete the professional chemist look. + components: + - type: Sprite + sprite: DeltaV/Clothing/Head/Hoods/interdynechemhood.rsi + - type: Clothing + sprite: DeltaV/Clothing/Head/Hoods/interdynechemhood.rsi diff --git a/Resources/Prototypes/DeltaV/Entities/Clothing/Masks/masks.yml b/Resources/Prototypes/DeltaV/Entities/Clothing/Masks/masks.yml new file mode 100644 index 00000000000..7e024db5b13 --- /dev/null +++ b/Resources/Prototypes/DeltaV/Entities/Clothing/Masks/masks.yml @@ -0,0 +1,10 @@ +- type: entity + parent: ClothingMaskGas + id: ClothingMaskInterdyneChemistry + name: interdyne gas mask + description: A face-covering mask that can be connected to an air supply. + components: + - type: Sprite + sprite: DeltaV/Clothing/Mask/interdynechemmask.rsi + - type: Clothing + sprite: DeltaV/Clothing/Mask/interdynechemmask.rsi diff --git a/Resources/Prototypes/DeltaV/Entities/Clothing/OuterClothing/misc.yml b/Resources/Prototypes/DeltaV/Entities/Clothing/OuterClothing/misc.yml index 70354ccf836..4586c8318d0 100644 --- a/Resources/Prototypes/DeltaV/Entities/Clothing/OuterClothing/misc.yml +++ b/Resources/Prototypes/DeltaV/Entities/Clothing/OuterClothing/misc.yml @@ -13,3 +13,20 @@ modifiers: coefficients: Caustic: 0.25 + +- type: entity + parent: ClothingOuterBaseToggleable + id: ClothingOuterInterdyneChemistrySuit + name: interdyne chemistry suit + description: A spotless suit and durable, designed to protect you from chemical spills. + components: + - type: Sprite + sprite: DeltaV/Clothing/OuterClothing/Misc/interdynechemsuit.rsi + - type: Clothing + sprite: DeltaV/Clothing/OuterClothing/Misc/interdynechemsuit.rsi + - type: Armor + modifiers: + coefficients: + Caustic: 0.40 + - type: ToggleableClothing + clothingPrototype: ClothingHeadHatInterdyneChemistryHood diff --git a/Resources/Prototypes/DeltaV/Entities/Clothing/Uniforms/jumpsuits.yml b/Resources/Prototypes/DeltaV/Entities/Clothing/Uniforms/jumpsuits.yml index 3646bbe0c9c..46e7cf6aea3 100644 --- a/Resources/Prototypes/DeltaV/Entities/Clothing/Uniforms/jumpsuits.yml +++ b/Resources/Prototypes/DeltaV/Entities/Clothing/Uniforms/jumpsuits.yml @@ -418,3 +418,14 @@ sprite: DeltaV/Clothing/Uniforms/Jumpsuit/cybersunattorney.rsi - type: Clothing sprite: DeltaV/Clothing/Uniforms/Jumpsuit/cybersunattorney.rsi + +- type: entity + parent: ClothingUniformBase + id: ClothingUniformInterdyneChemist + name: interdyne chemist uniform + description: An impecable uniform, sign of a good chemist. + components: + - type: Sprite + sprite: DeltaV/Clothing/Uniforms/Jumpsuit/interdyneuniform.rsi + - type: Clothing + sprite: DeltaV/Clothing/Uniforms/Jumpsuit/interdyneuniform.rsi diff --git a/Resources/Textures/DeltaV/Clothing/Eyes/Glasses/interdynechemgoogles.rsi/equipped-EYES.png b/Resources/Textures/DeltaV/Clothing/Eyes/Glasses/interdynechemgoogles.rsi/equipped-EYES.png new file mode 100644 index 0000000000000000000000000000000000000000..d243af0061b2a7b70829a7f13b7c053d2c92f981 GIT binary patch literal 291 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=jKx9jP7LeL$-D$|?s~d7hE&XX zd&`jPkb%gtkLo+NJ_us*4rHImH&5w%LBZL84=PR0;q3g6S!IkYLfBaa12+`QE@2ft z+7Z(FKi^xtk z95dopNi9_{|p2<<~h5e^@1Vyl`jy3$K+v)$ewl;GCjh@2~lF`brU) b0Uu=3wKzPx$1W80eR9J=WlCes|P!xtgm4tK7ZJqOwYrMkyXOtWXE3`c z7ol6;AYHDukR`+=DJ?O{b#gi1dj5Ofj5e zvq{x;39k&C)SK-$cg~ULIf1p5we~l2V@#E%X{V1@Qkx)Zty{s`52@CgEXxkw_L&QU cAP54$53wy;p8~^|S literal 0 HcmV?d00001 diff --git a/Resources/Textures/DeltaV/Clothing/Eyes/Glasses/interdynechemgoogles.rsi/inhand-left.png b/Resources/Textures/DeltaV/Clothing/Eyes/Glasses/interdynechemgoogles.rsi/inhand-left.png new file mode 100644 index 0000000000000000000000000000000000000000..9efcae06ec0bef50ed16f00d291e3a500b9eadd1 GIT binary patch literal 348 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=jKx9jP7LeL$-D%z#XMacLn`LH zy`|W9$U)@T$9~@p9kY&pVVkkaFlNEJJd30En7mKiTcrMi)lBj6YlEp*Lay{xXq&lC ze(P}Q!~d7(u2-HsZTwjUXe37`{p5k*iw`yEDz5*z?N^ADy@X)J!e`E)qur$|xuR5nVZF<6So9)T-W`F+|KmFUi z`^ImC-b5Z%f6L&>rMQOg`DB%q{eiL9J%4GxnE3f}dF*u{cT$PPd=V#)d;cy8ryW?L z<1O9h7&$F-^UW3OUbp{$x_5h_jOko|LvM%!A&%7jb=CCfH;+$$8^R->eDl!K-0m)R mmGS%yxyU;_3DqnN6VB=Pluo$4NXV!Qq`}kG&t;ucLK6Vlbe`7$ literal 0 HcmV?d00001 diff --git a/Resources/Textures/DeltaV/Clothing/Eyes/Glasses/interdynechemgoogles.rsi/inhand-right.png b/Resources/Textures/DeltaV/Clothing/Eyes/Glasses/interdynechemgoogles.rsi/inhand-right.png new file mode 100644 index 0000000000000000000000000000000000000000..8800b0db496f50335683fe702db0f61832acf3cb GIT binary patch literal 356 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=jKx9jP7LeL$-D%zBF=ozfbvp9N>$@|2;CgFlc-xEKqd{j+EZwTshncd{S zvB`Ja*?;xhEqpeLVY{z@f8u=9@kEXY)>cUvle+ v#Hww+J^QLMn3sG5(!ajmUE0aWAhFK)yJY9>+qZ)jf;4%$`njxgN@xNAv2UUP literal 0 HcmV?d00001 diff --git a/Resources/Textures/DeltaV/Clothing/Eyes/Glasses/interdynechemgoogles.rsi/meta.json b/Resources/Textures/DeltaV/Clothing/Eyes/Glasses/interdynechemgoogles.rsi/meta.json new file mode 100644 index 00000000000..6e51cc72ef3 --- /dev/null +++ b/Resources/Textures/DeltaV/Clothing/Eyes/Glasses/interdynechemgoogles.rsi/meta.json @@ -0,0 +1,26 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Made by JustAnOrange", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "equipped-EYES", + "directions": 4 + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/DeltaV/Clothing/Head/Hoods/interdynechemhood.rsi/equipped-HELMET.png b/Resources/Textures/DeltaV/Clothing/Head/Hoods/interdynechemhood.rsi/equipped-HELMET.png new file mode 100644 index 0000000000000000000000000000000000000000..da2404a932aa21fe359016e235cf742f6cd63f85 GIT binary patch literal 591 zcmV-V0Px%2}wjjRCt{2+A)h7K@;Sw%tCT zAlRnOE0w@DNwW%uwaQ(Q5cO1;6o+$1^f+dB$K%NV2UF}D);Em2+2RdA^j}kXUW%f~ zq-koOo6RP=-EOYmy6^mzJjsI~KoA5w@k4Ba*4nh&Z76k}${2$*O-&rfe)C6BWJJX5 zn-dWeMbX~5vS_W1h?wzsyfZ|^Xsw;|KXQGc)oShC<=f(AtJP{w@w+&cz{fA+Li0t* zOyTF}3jjc)@xsQZ(;onU?=$!Rz-a?oHG`zUd{M2M!H0KGvDz$gT=`?;tCv+AS59!2 zxaW5&fjExUZFQ!#_I?OuSq7yPE*ER8HcLA$7i%b`kY$B`A|fIpA|fIpqK7MYCud)W$a{O*LvH8$0ow)idOZO6w;koZJ*Krb zoleI-*X#9z<+cmB*^=^}@D4ZIWCyt)u=V@mJnyTeE3y{n5|Eif^;;Fw={eTxToqKR z=xYT>M?j-dh4{W709^Ix-=EHb(`U%C44<4+maF@EgL?frfH~%#?pvL{bJagk;4_$vhBo1^#S#F}@Aokn47{GiVHnyk(38g}Hva0(+k;)xBO)RqA|fIp dA|iUQ{sJER8`MX6Ab|h?002ovPDHLkV1j+f6)*q* literal 0 HcmV?d00001 diff --git a/Resources/Textures/DeltaV/Clothing/Head/Hoods/interdynechemhood.rsi/icon.png b/Resources/Textures/DeltaV/Clothing/Head/Hoods/interdynechemhood.rsi/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..2e5d2a28396613ff0f6b177be61b3f61a8c37dcc GIT binary patch literal 320 zcmV-G0l)rPx#`bk7VR9J=Wls#_4FbsvCie8{g5OmdS<^oxDiXdZ7;B#ozlCj7sxb_0JX03&h zB}Y&u1-6p_rr@po04?Mb`Sb$AX*RSl$+Kt$+bgmdocgw8qB#Rww8 z{C})s;P=lw8okq$T+yy-007SEYZXnEf&KU5XBBBhH*m5yF!S5$%$!g5CMhX1P`D05 z9vflid>w}6#~$&yR2V`q*4hjJyQaaeX)teEhEWJ%@h_|%#joNuqgYWCMY#it0byh^ SSDxko0000Px$!%0LzRCt{2+P`btKoke??*%6$88T!kSj3Av7fJ$JJa;|3`cJsk^?%V@wfEoX z+BdcYJY|s$DazDlDa{YZ@G@Bqww%PdQ?Z-x2M(-vzLRv~-Et2gA|fIpA|fIpdR0sv zlX~wp&-3!S-EO1b??3xqq2pK4h&`eAUeh#1nx+f!=e&e-PP^SMjQRUlRYjiXnq^rn zix7?XUPVN!`b0#%_mzD!&N&qk9gRi{O+?f=_vrYS*or-2r_-tYO3UK&n$6})@la7y z;Pcl}P`_Ll{QPnW0BE(2%J}*D4*{_+kNab zcJXQW`1qHIngUstnPqwEoO^N;D~bZf7~EdpVKTib+wJuoj4>#RBIe`PLqrxf!m8LZ z)>;)29goLl6A`u6M&AI5h=_=Yh=_=Yh=}NQS?}ZKIaQ}lp-1M?>jUcIoYP*fS6(Mc zGW)sybpv&HczhO8HxRu(;9vTE`73yijY)xd{WR98|IRG`hu^;i*9~pV?rE*n!C(LYIM~}QV3BdWNQa00000 LNkvXXu0mjf3oia! literal 0 HcmV?d00001 diff --git a/Resources/Textures/DeltaV/Clothing/Head/Hoods/interdynechemhood.rsi/inhand-right.png b/Resources/Textures/DeltaV/Clothing/Head/Hoods/interdynechemhood.rsi/inhand-right.png new file mode 100644 index 0000000000000000000000000000000000000000..7f072169a9282ba5e0561aa8bbfdd4401af6b4db GIT binary patch literal 524 zcmV+n0`vWeP)Px$#z{m$RCt{2+A(k1Koke?|5Yfe7}L#Cv(P1DXs7GL9aqfezu8r$-fo4IgVq*aa@TX!zPG`b-P_Scb}@6p(qN=^L%suS(cfq zT4+vHEz7dtTvLdMsj7{~#9B$_;EbkWOxSg-yoP+m%`y#4ZIS50srb^S) zRMjSvNjX&2(lkAa{E3K&h=_=Yh=_=Y=-)ZG(-Z0>HNAuMr^@>QyAToU_xk|wuE*i>W>&{SL~L|*dDQ2?!6)_T>azUd-{uPdz+f=Ia5#M0PXQvLr{EW0Ug#`X=?i!O O0000Px%J4r-ARCt{2+A&M(P!tF7f5oYxxP{(DXh)HtICKyPMT8DcegKDj0lz?}egWOh zAUFwyfI~$@2kBTIgu(*{gHoXc5v0^LZ+J~#6n%Z?-sBz8^MgWZ!o4T|CO5-9fDqz4 zD^N~eY+L{U?7)lP9*Z28G*(`E%}vtzv(yRfz>8N_Hvj-d%ficO1OVuEy!f+(Krur( zIl1`uu;RCe6(7Ll`^xIZyLU#Grj4&NKPdp<_rDIHHvUY$kAKhA+Sazw@%NAeQ1eyT zfv4)FP~H6OpA|Oo47tdC67r8AadNo$>9NZ_ZsNmhbR^; z^zTFL?lo|7c#!)-IBk5L`N@l58wpnnzrm|M>^gyrX} zxSX2Pv@b#X5lCNrYhe5BVa0#AyVV`;pFP~&qCKqmt%2t?gW! zB<#S8$2|b){sbe&0lbVx*eOSE7;`KVoDLI@#*5JCtcgb+dq b@vZy<_>#bE%q2NeD||IOvPr|MW% zu4xi)YC=MSlGEAxh&liNfAgE#*x2~+aJT#RK#>KV&R3JYS4cFh5OC-#pOGrD&PB*Q z%wLo}#Lvlo7c}T<_j2!4m~fzXUFlb;z-7n8;kfnBfOB zJ|SUAmSw^BU#V=VzOigj5C1!DP^TXTo z<0a$l_VJ6mn@yh~ps-xyUw@9}Cglrf7k4oiSa2zKzrDRbP0l+XkK$>XN& literal 0 HcmV?d00001 diff --git a/Resources/Textures/DeltaV/Clothing/Mask/interdynechemmask.rsi/inhand-left.png b/Resources/Textures/DeltaV/Clothing/Mask/interdynechemmask.rsi/inhand-left.png new file mode 100644 index 0000000000000000000000000000000000000000..b84a0d107ca01170fe6ddd06d99ad3185ab805a7 GIT binary patch literal 436 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=jKx9jP7LeL$-D%z^E_P~Ln`LH zy=CZq*g=N%gSg;Ck(Xhzt0b&E6nUrg%+=A$`^)!JX6_OG3wvj_>Rmgjx+VCylFPxh zp07o-%mjBITN!lJLZzNt_5F6$mg%Pp%f00sTwtJbktgfSTz-atPj@Q{$``M_U%hMB zi8-7M6Q5>yMyB2N{yJ}Nh_W|O_C}t`{#ftSTfJ(p@(-V>w14Zxx|Xf#f8Lj~+se5a zzBx90JkdL`Xz5xbajhfHANTYxVtf#lb%KFKoq<8?s+8V*`RFXM1vN9U!xqL%+kU&2u)0iJoS1t*{pXJ*XH+uz9hH#4DejGR2bOt$6?FN{I9u(ayTD(| zU7kU;Eo=|jywm^y literal 0 HcmV?d00001 diff --git a/Resources/Textures/DeltaV/Clothing/Mask/interdynechemmask.rsi/inhand-right.png b/Resources/Textures/DeltaV/Clothing/Mask/interdynechemmask.rsi/inhand-right.png new file mode 100644 index 0000000000000000000000000000000000000000..cd2e818c3dae3de1a3a6ddd974f1db4e2e65c158 GIT binary patch literal 468 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=jKx9jP7LeL$-D%z`#fD7Ln`LH zy=9+$$U%bbgZk1bLYj9kIlYyC9l*ltam>dyX3m*cbIw0}qF!KLd~j)5k>FgJr3tN< zmToj-o$b41-OD8r28N88ytQ?~Mecpy5BT&8>yY+kk4N){h0R*L%6BxnkyIA<;yX=nf~yTCErIOK?Jy%-&s;BvVC5o0n=~h zYn{pG9VU240)6LynKf#2NU>p<&8FVE_08uF$Li=SG3U2m?+iZgATjYg1JFO}&oxgJ zF@63iZg)R-$12UEUwJy_Fc!X%R8UfidM~~I|77E}M`ykTMiYaltDnm{r-UW|m;1v} literal 0 HcmV?d00001 diff --git a/Resources/Textures/DeltaV/Clothing/Mask/interdynechemmask.rsi/meta.json b/Resources/Textures/DeltaV/Clothing/Mask/interdynechemmask.rsi/meta.json new file mode 100644 index 00000000000..3958cbbca08 --- /dev/null +++ b/Resources/Textures/DeltaV/Clothing/Mask/interdynechemmask.rsi/meta.json @@ -0,0 +1,26 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Made by JustAnOrange", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "equipped-MASK", + "directions": 4 + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/DeltaV/Clothing/OuterClothing/Misc/interdynechemsuit.rsi/equipped-OUTERCLOTHING.png b/Resources/Textures/DeltaV/Clothing/OuterClothing/Misc/interdynechemsuit.rsi/equipped-OUTERCLOTHING.png new file mode 100644 index 0000000000000000000000000000000000000000..afa3f44ef681950292b0ea0e03264871a7c7696c GIT binary patch literal 1888 zcmV-m2cP(fP)Px+8c9S!RCt{2ns00q=N-pC#wKJ&p6o~-*)boZN)sn+Q6xe*&@}3%iozzfX_3&- z_9m(dQD9VJ>F89AH(Nx)vQ9*+M8~=?LSf64$YU#1Rgo2>3FDBiqAMX;28p9woT4}u zf{;HBw-?#n>_C$|XOh0?ecqh!`Sbh!p5OiMp2znbSXfwCSXfwCSbRCLi8L;*+OPR5 zt0|iZQFrJyqi@rjztSSk05{)n;d<~bA)BK59=VWpMG944?K8@Qck>y&5oSEvBdqTb z5%*VCBg;Nc|89Wa|KX%|?bPfIc=c5PCVp{II1?6aq!0e!w_ceSc*&^}9=uBndS(48WewPL5o?%G24|9JzXxJ)NBZ zsIg%rNuqvt3I59JCFw610DxNmeL8~e2G*sje zj$EN5*p5=REv;_j>eXrIO4&9#g6)JOSJH0Rg;+EI;cys$xI7U*$&oA}*)MhD_)<*KS8NmAN*Dt{aJ3hSKtj5^Z$ zi85b59J#{w?c2%y+Sh^f42XR;LO60oSbxC)bT%JIi~7)T6qrkOebD+b8jTwD^ZS|Q z^X$Yv8zCph!#B^iGM$_x9v@#)zsIrUbpU|fZU^QDtCRX$uU}3EZVf*6XcnOW%+AgN zq)ml7;c(cfUrtgV#J2};v2nvw#<@OAh_L8GFcno*jr3Plm5yM$@jLalSWed1K$0XR zNn&(#)cC!|2=y_N^Qke z`fjqHa%iZ?A?Nx@>Mo3G&*f#Y5?N7PwO@NK zFN?Yhqgu}OlZGDv{>o}$AB5it!rb7yx+5HGY9tT{;E$c>!~SVArcCi+|1|#Cc>;j| z$C?`H>W(aVH+Vk60g&ancmJVK$S8BUTpWD9gq?+JO*tXL&cd}Ee7*#i%Vm`5zUaP* zAoNOXyOd1Z_YVXDY}s4}Kv#DJuh%Q=fGA$C7njRr=)(U4Q0u?XJt@g`0eiw3(A6E` z-gune-oCW*Et|`5yWOJZgmJswX@dvo?d{{W&Z!g?PAW7r*QR$m34$+d?*kGT`B+UBKM5*V%l)HZ?UxC=~iac7-~E?Sw)h zrlzLoY(8LXt0}dm`nXht0FH zX{#x2#VhHaG%qN*lGCT8-a5&7!$VjH<7G-2)#Q6RvnM^LydU1p@KvA|5C=VD5 zjhfnhn$zh-Q4|zKLDQChb*yQcq33iu(>{d@lm|3L*(zjDCgWUa}f=SGk5K-{vqjDmuEQ?^V6AaxP+(MSITAlUKO6}kGUTDtap zpF}V<3yisnIM&oiZ*L!Ct|GoMbIX)?ri{6Yc=?r=DJaNi%vA)07VR@1QvvYEg~W># z+=WTTF17N>$jbc_)cIs&8jlR_s-whLJMcKneVbr<9iZ>iKe(IO=dhXZ;BMUdHo(Fn aGyV%Dst4_`Uq31U0000Px%SV=@dR9J=Wls`xtQ5?rV=~-ygNkI%J_l6QA1?%LHp;S=_8J(o7i%Kjh^$&D% z7PKjq7Nji|jM#r99PJ{74t41v8A=zWPzZPAaSl2ZY=u^?gWQprYVHL(6!KZ_-S79_ z`+oVpy9X^=v}n;nfxeL`Z*-;PE#(%y>iSY{(HmVUd3_^O-dStUqD@6Sksd<`gS97R zo;`o+l}aW0`}~5|S*2IOd;@RFKEXxY&W^M-Cwrj*K%Ocx*L?S&#*yA|Yz+`5^OO4O7km_K4BVX6Q zd1Iiiw!V>PA=N=@e4fe7L_-q|6UZbEDVhc1@i;<=bLR>nh{xj;%>tRkVWX|X8SrDD zot}%>wvCkXuk)mo*tX5=^jxHRT_eu@3wGMBbMU=~z4Aewn6B$J@7263U#2VC!(LnM zI%NYNmv7g6$xg)vPNMcj{iki)LI3o+rVX4%)3iX$r+V!7RZuc;e0&T*GMTLFS(X*_ zRcQDTRwJbh;+IlVGz-DF`dCy@O29A-cE9cry>tcXR&X2#06o^tkE25j!%#M$lmNic z;4ngnK-_U0gb)l34l9d;Vgdj~vk;6QK3I<2xtsN@?N3dKLlX(;v2HX?!*yK%T-Qa@ zH1t^azc;Y9RYtlMx;kU*{Okna)r;4WuFe?Jt+2LLRyLq?1nuG)+tDPy_J7kZPHwq@ z>?7~Z{#7nUduSKouHU8&0PJqA24;M|eaP3}M{P)Px$@<~KNRCt{2+P`ZPVI0TtcS{=RkV2d!l7}pUD4p`d68sgjI0l65P7SR%ScU!r zqM$?+O9P6otz7~x(j_41pmA|&4H_gzkBXSFQ}J;qh7KaROYX|y=e1qn^S$T3Jonu2 z4Ty+{h=_=Yh=_>%M<#+OT5YuL_UjiEQ~SJgW1PBjjhD6D(DxcO@5SV}3sxI#Tbb$5 ztSL7Z5Vm4#@c||!n`f)wJ^p2aN*oV0E{sd_FB{y=KuK+qvrjHjkDNR zY?kj+Ia0mu;5XNG>GgWNojOlHHXUf*k3in52le|lb^OHO+TGpZ*3H{P-)q#o7h^vI z0364`7=ydJgE0ojaYD^|5l92l=`_G#;eW2f%6l=^GvKffAK&xn;p2%+Cgbbi8Z|$x zKpODs+cd{c<^XszS)~899co@gL_|bHL_|bHL`427ka=5J4v)l*%PvL)6H=0{Lu#csvdqJpA0;SzmP`+klnTCnS?e);HEHz}-9d zBK<}4rBp82ZntawZhwgI4gmO>IL-2ApI>LL9`#ZrvVH^Q-p9V^L+mvG0000}M{P)Px$@<~KNRCt{2+P`ZPVI0Ttcgi);!9vnSB6-Lnh!PiLEWsayf;a{Oadv8GH(Ry; zfLKr>7R7?1yHmkMx&#Cr+H|fBHAs#gbueS6;<>d^uhl#6LJmK#?RoA8pZoGW&+k6`pooD7a>S~tADU*<@q{V zAk*y}%sGxjx7+2z=oNa_Sfn5DuY%@q;Sl?LV$>XI&E|(kXgYPJRo8Pkl zZ@-L@K3xFd{YZ)4=T-y}qZ9Z1A|fIpA|fIpA|fIY3Ec1NZ#T#3-+^Cww#NSCd}Y>M zyq=~yu}yVio0qR%#Ikz?$F#aJcXD%*J;4L%;$|PF@0V)2S56WRi;)is7ajpg>#T!TrSqK<#FYR4T=@=TE~; z6$j<1vfJr&-11a8)>|OZ3IOPx)Oi4sRRCt{2noVdMM-<2ZG7=UxB*~t#nU;WBq-cJh)-NAh{xmlwW(B! zexN8a^D|hTo#GmkSKrt39s(CGVd!F6uODCYqWH%vlyYfqeK(JIxPK5mJrbtAo(muIDzQ{KxTdhOS@scE%P#iaQ`3z7cR9%KcXZkHoZ&? zRaGgXB#4M8q9jOFRlO}Xy-X1$K~C%U4oy;QdYNu_chl|eZc1U7ji4<$*T^zH6$dMHVzc1N8sGFK!bqOs&e-DJm-6ST3h zK}19w8ylpmDvc#4h=^!puIPvX%=u%<3DPvJ&JndR{n+$!Q~GU3HAa*KjSl#cd^`yN zSo--_Xqu+C|D^p0S(cH_X7zReNIss#=zt$~??OaL(DQgy*MGJ2i%DPhc=X?zrs@5X zk0{Y*KfAwQ*PmDa*r&kwnirXu z8MAOU3t5&;Wh39b%wVbG)FxgJur~Z=R+V6K(ScF z%E}6&(WqW7l}c8|Y#N`>M*ws^hOt~KmALe|I-fs(o;-$~SCS;;^Lf3zzrT<5_4SrH zK$c~aBuOv7d-o2Vot=6)pU)$k&9>$!%m{@-I5;@a1^s@1bs)DJZ{ED&9gdrPKCf@U z<#HKk&z=QPzY#Wzr9EJ4YYTvR1%yH&O9t>FNs?)@?04;IY?fos0Y)m7ihlR^_V%#2 zxaiv3+XDa`92}rhsc;*>i`(r+dwV+o=*zvmy&Z11rF+Tefd3-G0jF)iX(JrKdjWd_ zG+Xa9?4_&OdVxS75C{YUfj}T|jEItOJOXS7JN9sY!8OL|885#0z!gyvEy)Ww%!bw3 zDOYU(wABe3dZ^qOE?-<&ppm&E?d>FEiNpWLh@F^@|He`JdZ~K zRHLxh`uZ?B;K!Al53CGji7PiBV06HbYkhrsM3~vc3%3J$da8j5Cd~N#+ezHI8g6un zqujb0#%yvJz`viwnJvsV9&CLQ`{={>?ObjdV@`ry8!S1%so1|AWLY+a=&jns?SNb^ zkMT7xHp4O8ee~>9ouO$O?ml{k&2S9kYhL7XEshM`x*A4ieg;Dq%TUg|#*>j7+=5Q? zWaI{vGp{jpv5d_84EH|7y#g9d`ZQKSBTXwege#!-_g|a1e*LSu`amE6zu%9iPoHA= z{ylCZc=$~D6urH@*xK4MTF0000ZS7l literal 0 HcmV?d00001 diff --git a/Resources/Textures/DeltaV/Clothing/Uniforms/Jumpsuit/interdyneuniform.rsi/icon.png b/Resources/Textures/DeltaV/Clothing/Uniforms/Jumpsuit/interdyneuniform.rsi/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..ac35d5812297f3a5370c21c687a6b63bf7ab4534 GIT binary patch literal 446 zcmV;v0YUzWP)Px$cu7P-R9J=Wldn$$F%-u?BTFVwXC~(A4pR)t#1a%C$RX|zz$}E}afpd26d7j! z00|07Cdr+cMWNQ@L`6N~k|srvH5-R$7f{^CT;7j+ukYJeXlQ8o@3dl)<#6myN4Eg< zKVH3mxql46Vm{&R`5~(2-Y(4-^9fSQFTa#5<`V!;N4Ln~*!{@?Hc8Je$ZqbDQj*== zlb&7dQYIWZ9J}x2dG4|-b9tWEVlgTNDX^ZfC<^Zz34ub?bTwAKK%=9_uHjZ2cmrD^KFtJP}DPLjj{ zQ3nXVFCm2MbUJ?V0E{s;yQ(UbQo(hjcc9(=`o&u7o3DMl5WE9Qsa920XsxlPx$k4Z#9RCt{2+A(gzKoAAcapVioxTBym4QX-&4nPWX1QdmooPo-vk+?ymR8%Mj zFoh*5s#JF23ZG%6NwpS^3^vOUXQTfrJVwKKw66F>00000000000AOM?ne$?M8yz+)r;C0~ zL{7kAvvOwRVeP%yczE@&()}(GSwIv;OhmNX?J9MBt?zf$?>DgT``qjG*!O)-)3kC; zMAr^1-R~@sqcj){xZm%S>$;?rD(m_>&vVMMto3h6_q#;o709y8$@83)QdATLEtg9w zio$qU>3#qJ0000000000@E=%}A&_QWhCrHC83Ji_8G(d?JIx`0m%3Uy~^2PH0sdc00000 LNkvXXu0mjfU;NRy literal 0 HcmV?d00001 diff --git a/Resources/Textures/DeltaV/Clothing/Uniforms/Jumpsuit/interdyneuniform.rsi/inhand-right.png b/Resources/Textures/DeltaV/Clothing/Uniforms/Jumpsuit/interdyneuniform.rsi/inhand-right.png new file mode 100644 index 0000000000000000000000000000000000000000..2a31a54c67c7c444db26dd57518da64f709a1907 GIT binary patch literal 459 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=jKx9jP7LeL$-D%zTRmMILn`LH zy=mCj3_tNtuN;~~JsC2`7!pE+BtH|4BrHt?$0Y8{s%J>~ng zvn4Ty*2Xk{Y70EnG~;RIJs`hf!t=`MxdHc%rrp2$qJ(ofe?nSZ&bKI?#GHG}v(4-N z|9NG1yztDXoqlc4ww`CdpRa%Iz5o9cJJ#L)efINfcG+#&*$LM?d(UdyGPb|H6?HEC z61(1W5$n95|@n-v~x(y6}gvg9gLhD+Sb ziyvy|+n!gxy=`Ug?L578uXin5wQ5Tx@3ALS_c4WrMwZ3~-`;k`gm-DCm+$3_pU*qb zoaTo4GlA=})ML+?*ChPUZ8=sEw9NF__Z_$RPS3a|v3f^Fd#X=%&-;ZnOh77BQ~$u0 vV?P9e%&8jk(U+x?Lr<+|kcwdV(f^MjQ}|k<&y=UtAX7bE{an^LB{Ts5|6tD^ literal 0 HcmV?d00001 diff --git a/Resources/Textures/DeltaV/Clothing/Uniforms/Jumpsuit/interdyneuniform.rsi/meta.json b/Resources/Textures/DeltaV/Clothing/Uniforms/Jumpsuit/interdyneuniform.rsi/meta.json new file mode 100644 index 00000000000..50572b2b60c --- /dev/null +++ b/Resources/Textures/DeltaV/Clothing/Uniforms/Jumpsuit/interdyneuniform.rsi/meta.json @@ -0,0 +1,26 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Made by JustAnOrange", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "equipped-INNERCLOTHING", + "directions": 4 + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + } + ] +} From 886546cb59f828785cf28ee87ab5ea383415ee4c Mon Sep 17 00:00:00 2001 From: Delta-V bot <135767721+DeltaV-Bot@users.noreply.github.com> Date: Tue, 17 Dec 2024 13:41:24 +0100 Subject: [PATCH 05/76] Automatic changelog update --- Resources/Changelog/DeltaVChangelog.yml | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/Resources/Changelog/DeltaVChangelog.yml b/Resources/Changelog/DeltaVChangelog.yml index 914022a97d2..f09659ee9c6 100644 --- a/Resources/Changelog/DeltaVChangelog.yml +++ b/Resources/Changelog/DeltaVChangelog.yml @@ -1,11 +1,4 @@ Entries: -- author: Velcroboy - changes: - - message: Added magnet pickup to Ore Processors and Material Reclaimer - type: Add - id: 280 - time: '2024-03-17T13:38:11.0000000+00:00' - url: https://github.com/DeltaV-Station/Delta-v/pull/949 - author: DebugOk changes: - message: Merged upstream, please report any bugs or regressions @@ -3817,3 +3810,11 @@ id: 779 time: '2024-12-17T08:49:06.0000000+00:00' url: https://github.com/DeltaV-Station/Delta-v/pull/2452 +- author: JustAnOrange, Radezolid + changes: + - message: Added Interdyne chemistry clothes, obtain them at your nearest hacked + ChemDrobe! + type: Add + id: 780 + time: '2024-12-17T12:41:05.0000000+00:00' + url: https://github.com/DeltaV-Station/Delta-v/pull/2355 From e69fe967c690da9b915f47c2f6a2145329194526 Mon Sep 17 00:00:00 2001 From: rosieposie <52761126+rosieposieeee@users.noreply.github.com> Date: Tue, 17 Dec 2024 07:48:43 -0500 Subject: [PATCH 06/76] Flower Bushes (#2382) * initial commit * oops * Update flora.yml * Update flora.yml --- .../Entities/Objects/Decoration/flora.yml | 91 ++++++++++++++++++ .../Decoration/Flora/bush.rsi/base.png | Bin 0 -> 3553 bytes .../Decoration/Flora/bush.rsi/base_light.png | Bin 0 -> 3557 bytes .../Decoration/Flora/bush.rsi/hibiscus.png | Bin 0 -> 3323 bytes .../Decoration/Flora/bush.rsi/hydrangea.png | Bin 0 -> 3348 bytes .../Decoration/Flora/bush.rsi/meta.json | 23 +++++ 6 files changed, 114 insertions(+) create mode 100644 Resources/Prototypes/DeltaV/Entities/Objects/Decoration/flora.yml create mode 100644 Resources/Textures/DeltaV/Objects/Decoration/Flora/bush.rsi/base.png create mode 100644 Resources/Textures/DeltaV/Objects/Decoration/Flora/bush.rsi/base_light.png create mode 100644 Resources/Textures/DeltaV/Objects/Decoration/Flora/bush.rsi/hibiscus.png create mode 100644 Resources/Textures/DeltaV/Objects/Decoration/Flora/bush.rsi/hydrangea.png create mode 100644 Resources/Textures/DeltaV/Objects/Decoration/Flora/bush.rsi/meta.json diff --git a/Resources/Prototypes/DeltaV/Entities/Objects/Decoration/flora.yml b/Resources/Prototypes/DeltaV/Entities/Objects/Decoration/flora.yml new file mode 100644 index 00000000000..7f1275d763a --- /dev/null +++ b/Resources/Prototypes/DeltaV/Entities/Objects/Decoration/flora.yml @@ -0,0 +1,91 @@ +- type: entity + id: BushPlain + name: plain bush + description: A pretty bush. + placement: + mode: PlaceFree + components: + - type: SpriteFade + - type: Clickable + - type: InteractionOutline + - type: Sprite + noRot: true + sprite: DeltaV/Objects/Decoration/Flora/bush.rsi + state: base + drawdepth: Mobs + - type: Tag + tags: + - Structure + - type: Damageable + damageContainer: StructuralInorganic + damageModifierSet: Wood + - type: MeleeSound + soundGroups: + Brute: + path: /Audio/Effects/chop.ogg + params: + variation: 0.05 + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 10 + behaviors: + - !type:DoActsBehavior + acts: [ "Destruction" ] + - !type:PlaySoundBehavior + sound: + collection: WoodDestroy + - !type:SpawnEntitiesBehavior + spawn: + MaterialWoodPlank: + min: 0 + max: 1 + +- type: entity + parent: BushPlain + id: BushPlainLight + components: + - type: Sprite + layers: + - state: base_light + +- type: entity + parent: BushPlain + id: BushHibiscus + name: hibiscus bush + description: A pretty bush, with hibiscuses! + components: + - type: Sprite + layers: + - state: base + - state: hibiscus + +- type: entity + parent: BushHibiscus + id: BushHibiscusLight + components: + - type: Sprite + layers: + - state: base_light + - state: hibiscus + +- type: entity + parent: BushPlain + id: BushHydrangea + name: hydrangea bush + description: A pretty bush, with hydrangeas! + components: + - type: Sprite + layers: + - state: base + - state: hydrangea + +- type: entity + parent: BushHydrangea + id: BushHydrangeaLight + components: + - type: Sprite + layers: + - state: base_light + - state: hydrangea diff --git a/Resources/Textures/DeltaV/Objects/Decoration/Flora/bush.rsi/base.png b/Resources/Textures/DeltaV/Objects/Decoration/Flora/bush.rsi/base.png new file mode 100644 index 0000000000000000000000000000000000000000..e0b01438f1090733ab982e5d5c97294d5d30880f GIT binary patch literal 3553 zcmV<74Ic7|P)f6 zXi@@54ZTQ_E-Enz5K6$103tR-RB%L5k){YTDBysjLy@r}iiH7DvFijGMAUI`6dRUF zWUU$Bym{}eS9UO(Z2>7`&z9wUXbV-Il#&6`Y8GKGQ04S2&F6MJnWNa;Ck|;8QE#r9r;7G||@X{|> z%+C|c55>;RS}qbKr-&IQTvLXPlM{>K&(BTgi^a?^4mXV>;xX8n8Ce|RasXz}{8imI52H3ZN4bfe_i~WlJ|C&UW9+{8AKoW!}eExnGFE2re(F+`iE_46#!l9 z0Z_aBhs|Iw0E)7{bq;-T9=d#9QpDmcXDh4R++0fmpKB>E=%LdZt9g$j;($`3&Zthxi`{{&gM}5&R^+h%b~yM9Zd3AWW9ETgVfL z1(`yIK=_}U_z%PWq}jQaiQ4!P(3V&Nr6C$XejWfQDiI(Fdt@un?|lo#M+5oIi_w{w zo%_#%{(V=tO#a9gB!7-$M?^BX5>d|Vn*3S!?g~$*UQipUPL&zMmg;!4Do9IA%up=Rh? z=qPj=x&RGBx1dpI68aT-2O}^EromdU5o`ssU{5#*j)WJ%$?!5bA1;Eoz?EiTr=n?cd`V|I)p<|3Oju?MT93~aB0<#&j8`F+Cg&D?-VWzQItUA^l>xvD zRIYI4MQ`g1<+DyrL=EogS06Xii({| zv`U^zjmmKqDIK93(F5q|^fLNk`gQs{RV`IdRle#b)i%{Ds;|}NsClUI)k@Ub)kf6b zsWa4l)YH_rsduU0(?DsMX@qO!YV6TCtMPOWZH~(v?wpc2hv(eZgf-1HBQ#fN?$aF5 zoYvCT^3%%Fs?s{6^;Da#?V+8jy+iwi_M{F~$4y6|vqR^k&SQoO!;_KDsATjprgSxR z{dFa}^}2()GkV5)QF?`X?Rxk03HmJkB>f%wz4}uIItC#I1qQ7Kw+-=zEW;GTU55RJ zuZ@h2VvIHzbs0S}Rx=JT&Npr~zH34@aW`3J(qMAU6l2OVO*7qXdf5y%vo}jIt1%lg zhs_<#1?IcWhb_<+P8LFo28$a^64R5J!)#@aTGB0pEekEXET35!SjAgyv+B3{Xl-wu zZrx~o$A)4PXj5p@WAm%6nJw40#`fA=@?77!tLJvleQsxN$G6*KchjC~A7a13zSsVP zgQJ7Uq0M2^(ZDg$vDWbhi^d9LZDyT!LOXdmt#&%*^w!zIS?qk+`4<X~g?%56 z2@eae34a)26HyS+zks@6$%2*zuOhu7%OdYYnM6sVdZQJi6QY}=U&naIl*dS8tzuWk zUW(I*6U24LW8oFzvR(TOpM zEs5_rp_~TJ^wNN(wM(bCZ0;`Z6P^ce2XB(^$}i_nB)KM)Cp}7bP2Qe7nc|*Ok@8f) z7E}wKr~0SXrM^xJP1~RLDLp2=Jp-4Km~m7{5vB?IGPN`FGKaIwvx>8%%bb_(Ts9>N z5;bK**^9Ef#WdN^)PTf9vR*Qp{o-l7 zTcBI8wqSIn=gRt3(5j`YdRObOE?Pal#&6AmwS={4Ykw%TE-Wv6xh`g1Pmxy9nxe7w ze(PI{6^cd0H#WFzsN0CzDA+i-Y3`<~O&?2mB^OJrODjs>Z{}{k_?699m0x|@lC)*8 z%%N=0R?Jr6*6Z8cw;d=~F3&F?+a9vLa|dHb$&Qyhm+ZVyVOLSNi?B>BD~Ee(8aT1AWbo&CM;EEoH56tE6@EV8X%6-*|u1-NtOIZ>P7H z9s-9XhaP{M`0e$>L5F*fu#U8SXZT%h2eqT56Y5;vIn|ZYCGC#u9zGg)w718lr{jCe z@An_mJyvsE<#^c%!il02pHAkVoIaIx>gnm^(__6$dheWxJ#(!uyl?Pq(Ao3ne9xWf z_v}A;-u3*k3(gmgUSwVDy5w-FbHIL};|Kd6ItCpEJBJ*Hx-UCj?irppeBz4xmD5+f zub#UWaP88_{E^}7QP*$YNVp-r$-DXJR{E{yw{vdK+*xxMeYfPE(!GlNn)e%iH2tw% z>L5Kn>ODH}V8MesW8ASPKV|>)e!S=*`C-L`&P4Mg+egPHeJ3wJUif(YN!F8@r^P=j z|6Kdbc>FRj6+1QlT=e|YubW?}zu5oM?q%0Dy!50Qvv` z0D$NK0Cg|`0P0`>06Lfe02gqax=}m;000SaNLh0L04^f{04^f|c%?sf0000RbVXQn zQ*UN;cVTj607GSLb9r+hQ*?D?X>TA@Z*OeDr{R1600QkvL_t(oh3%KIP8&fGhQG7n z!o`h|+*k%7AryxqRa%PlH00^>5K)vANl%f2hKfjW5JEx$U1P}<7@NcPrZ~@eZf^Hb zB1LI3jqSbN{lEQZc216*bNtJQ{sa68z_T}--bD|`qv)>yH2X<0X|20K+)2Fivf+eT zIxT+Be@vbPss#|?weAK0aVKGSCk5d0stdsGPRjoFYR#9gU9#Z>pn$0Z2?8|xiSr59 z#r}2GjFK|D-goVY1yHu6GL0JOL)-rY$H%Qc7< z4M9lwAW8t*b|_n~H?x9v%*NofP25R}BGnKDfEIsybj!z2?Mm+LiEP*c)gf+Lhzfv+ z4o=$@7j*75h;|9`nz+1L+LfVR`#3K{c(>H?Hcfb3!n zH;+pIKp?COS{UH)Am2Qc77?^{BjehEhvU&I1&vm-)aP{}T1Tv{+HPOYMNsbpaCb5! zqPOlEttL?I`LdB+Z0&sc`nE`u6@k0~>HY$FdtQv^egN4-7TVjPAqS^zX6Y2&JuR#V z+E|=Va{vGfF-xZQUgQsi)MuG>NW?-e`3|8W zO4ksmTtyu^=TC)*-JJ}P;@f=uoLTN;r+BzXcc2lO=r zSd8ar7zr8or9#r6pV@i(Kmy^ev#59(MO(3h`ZUK2K_D%iH6dlffwh~Lc9W?AtdZ3q5Ru9p~j=dy#PR|D1G6B zu+MbPL*hXI$ejR?9wAW&rbAyfz$;!0Pytae7DB`tt!DmxDN1j>sP^Fgzw_U)1XB~C b)B55UQN4JPeT=7#00000NkvXXu0mjfW9G7R literal 0 HcmV?d00001 diff --git a/Resources/Textures/DeltaV/Objects/Decoration/Flora/bush.rsi/base_light.png b/Resources/Textures/DeltaV/Objects/Decoration/Flora/bush.rsi/base_light.png new file mode 100644 index 0000000000000000000000000000000000000000..d926c91cb0cf21daae4c8247eafaeea699858be0 GIT binary patch literal 3557 zcmVf6 zXi@@54ZTQ_E-Enz5K6$103tR-RB%L5k){YTDBysjLy@r}iiH7DvFijGMAUI`6dRUF zWUU$Bym{}eS9UO(Z2>7`&z9wUXbV-Il#&6`Y8GKGQ04S2&F6MJnWNa;Ck|;8QE#r9r;7G||@X{|> z%+C|c55>;RS}qbKr-&IQTvLXPlM{>K&(BTgi^a?^4mXV>;xX8n8Ce|RasXz}{8imI52H3ZN4bfe_i~WlJ|C&UW9+{8AKoW!}eExnGFE2re(F+`iE_46#!l9 z0Z_aBhs|Iw0E)7{bq;-T9=d#9QpDmcXDh4R++0fmpKB>E=%LdZt9g$j;($`3&Zthxi`{{&gM}5&R^+h%b~yM9Zd3AWW9ETgVfL z1(`yIK=_}U_z%PWq}jQaiQ4!P(3V&Nr6C$XejWfQDiI(Fdt@un?|lo#M+5oIi_w{w zo%_#%{(V=tO#a9gB!7-$M?^BX5>d|Vn*3S!?g~$*UQipUPL&zMmg;!4Do9IA%up=Rh? z=qPj=x&RGBx1dpI68aT-2O}^EromdU5o`ssU{5#*j)WJ%$?!5bA1;Eoz?EiTr=n?cd`V|I)p<|3Oju?MT93~aB0<#&j8`F+Cg&D?-VWzQItUA^l>xvD zRIYI4MQ`g1<+DyrL=EogS06Xii({| zv`U^zjmmKqDIK93(F5q|^fLNk`gQs{RV`IdRle#b)i%{Ds;|}NsClUI)k@Ub)kf6b zsWa4l)YH_rsduU0(?DsMX@qO!YV6TCtMPOWZH~(v?wpc2hv(eZgf-1HBQ#fN?$aF5 zoYvCT^3%%Fs?s{6^;Da#?V+8jy+iwi_M{F~$4y6|vqR^k&SQoO!;_KDsATjprgSxR z{dFa}^}2()GkV5)QF?`X?Rxk03HmJkB>f%wz4}uIItC#I1qQ7Kw+-=zEW;GTU55RJ zuZ@h2VvIHzbs0S}Rx=JT&Npr~zH34@aW`3J(qMAU6l2OVO*7qXdf5y%vo}jIt1%lg zhs_<#1?IcWhb_<+P8LFo28$a^64R5J!)#@aTGB0pEekEXET35!SjAgyv+B3{Xl-wu zZrx~o$A)4PXj5p@WAm%6nJw40#`fA=@?77!tLJvleQsxN$G6*KchjC~A7a13zSsVP zgQJ7Uq0M2^(ZDg$vDWbhi^d9LZDyT!LOXdmt#&%*^w!zIS?qk+`4<X~g?%56 z2@eae34a)26HyS+zks@6$%2*zuOhu7%OdYYnM6sVdZQJi6QY}=U&naIl*dS8tzuWk zUW(I*6U24LW8oFzvR(TOpM zEs5_rp_~TJ^wNN(wM(bCZ0;`Z6P^ce2XB(^$}i_nB)KM)Cp}7bP2Qe7nc|*Ok@8f) z7E}wKr~0SXrM^xJP1~RLDLp2=Jp-4Km~m7{5vB?IGPN`FGKaIwvx>8%%bb_(Ts9>N z5;bK**^9Ef#WdN^)PTf9vR*Qp{o-l7 zTcBI8wqSIn=gRt3(5j`YdRObOE?Pal#&6AmwS={4Ykw%TE-Wv6xh`g1Pmxy9nxe7w ze(PI{6^cd0H#WFzsN0CzDA+i-Y3`<~O&?2mB^OJrODjs>Z{}{k_?699m0x|@lC)*8 z%%N=0R?Jr6*6Z8cw;d=~F3&F?+a9vLa|dHb$&Qyhm+ZVyVOLSNi?B>BD~Ee(8aT1AWbo&CM;EEoH56tE6@EV8X%6-*|u1-NtOIZ>P7H z9s-9XhaP{M`0e$>L5F*fu#U8SXZT%h2eqT56Y5;vIn|ZYCGC#u9zGg)w718lr{jCe z@An_mJyvsE<#^c%!il02pHAkVoIaIx>gnm^(__6$dheWxJ#(!uyl?Pq(Ao3ne9xWf z_v}A;-u3*k3(gmgUSwVDy5w-FbHIL};|Kd6ItCpEJBJ*Hx-UCj?irppeBz4xmD5+f zub#UWaP88_{E^}7QP*$YNVp-r$-DXJR{E{yw{vdK+*xxMeYfPE(!GlNn)e%iH2tw% z>L5Kn>ODH}V8MesW8ASPKV|>)e!S=*`C-L`&P4Mg+egPHeJ3wJUif(YN!F8@r^P=j z|6Kdbc>FRj6+1QlT=e|YubW?}zu5oM?q%0Dy!50Qvv` z0D$NK0Cg|`0P0`>06Lfe02gqax=}m;000SaNLh0L04^f{04^f|c%?sf0000RbVXQn zQ*UN;cVTj607GSLb9r+hQ*?D?X>TA@Z*OeDr{R1600QwzL_t(oh3%I?Yg0iKh0oKH zCPE;AWRZjt2qd-(5$vuAw&2cf!2jS@e}&Mkg8x7i(oJ^(yD07&C|$HwD3nm&qJb2I zrVW*GG2Zvi+&A-zg1GT+Lg&rg^Ub+;W@u!L!M}{?Kfs>=JbW2>7wvDF=&t~j`^{uh zryXNu$v^LK44j-clE1%y{B|o)E`SJk+A#oNWeI52?YFaY``fAmy>7bZ(`O3;q%e6P zL4b0(Vbq=EHsK(UcGQ8$O1V5Y^OdIGUfy229#gGir>Un z761SQLc74ifGr6SE{h22zL9ZuV1Lu3B`DNN&OOhKs2$O^vfaL#iy-F#fWcM;QQ=9& z6lx^^**jkn>BZX4r;pMyX%WC)KzzRd_9)ILGe3YNk%jtnFywG#lkx4TVMS2K<-ybf z0Dy)#Ic+$O@NW2>@HOQ2Zo|nX>*WrRO?`M0yYe#z(0C3hw9su?p;A02? z^T`YhBO&9yQb-y2o1VuT5{T=aX_P!hi|bVbH6bJ_3-Gv~0 z-*ia-NJ(zuEBrW~WdZKqFPYG3;I}*^8Y%|^Umi>o@eBY%Na!S?`s+ENi-*O%005k( z^o0*Xf8&~m#Df5Ubpo)jBu5??2Ol*6Uh!N24Z<)QLc|KS66TXxBD&BhCfy#2-}>K> fVe%rhTVMPHVWu@&*u}(n00000NkvXXu0mjfODCex literal 0 HcmV?d00001 diff --git a/Resources/Textures/DeltaV/Objects/Decoration/Flora/bush.rsi/hibiscus.png b/Resources/Textures/DeltaV/Objects/Decoration/Flora/bush.rsi/hibiscus.png new file mode 100644 index 0000000000000000000000000000000000000000..1ac229d39a68261c6644dff0673d57a5f79f2d1e GIT binary patch literal 3323 zcmVf6 zXi@@54ZTQ_E-Enz5K6$103tR-RB%L5k){YTDBysjLy@r}iiH7DvFijGMAUI`6dRUF zWUU$Bym{}eS9UO(Z2>7`&z9wUXbV-Il#&6`Y8GKGQ04S2&F6MJnWNa;Ck|;8QE#r9r;7G||@X{|> z%+C|c55>;RS}qbKr-&IQTvLXPlM{>K&(BTgi^a?^4mXV>;xX8n8Ce|RasXz}{8imI52H3ZN4bfe_i~WlJ|C&UW9+{8AKoW!}eExnGFE2re(F+`iE_46#!l9 z0Z_aBhs|Iw0E)7{bq;-T9=d#9QpDmcXDh4R++0fmpKB>E=%LdZt9g$j;($`3&Zthxi`{{&gM}5&R^+h%b~yM9Zd3AWW9ETgVfL z1(`yIK=_}U_z%PWq}jQaiQ4!P(3V&Nr6C$XejWfQDiI(Fdt@un?|lo#M+5oIi_w{w zo%_#%{(V=tO#a9gB!7-$M?^BX5>d|Vn*3S!?g~$*UQipUPL&zMmg;!4Do9IA%up=Rh? z=qPj=x&RGBx1dpI68aT-2O}^EromdU5o`ssU{5#*j)WJ%$?!5bA1;Eoz?EiTr=n?cd`V|I)p<|3Oju?MT93~aB0<#&j8`F+Cg&D?-VWzQItUA^l>xvD zRIYI4MQ`g1<+DyrL=EogS06Xii({| zv`U^zjmmKqDIK93(F5q|^fLNk`gQs{RV`IdRle#b)i%{Ds;|}NsClUI)k@Ub)kf6b zsWa4l)YH_rsduU0(?DsMX@qO!YV6TCtMPOWZH~(v?wpc2hv(eZgf-1HBQ#fN?$aF5 zoYvCT^3%%Fs?s{6^;Da#?V+8jy+iwi_M{F~$4y6|vqR^k&SQoO!;_KDsATjprgSxR z{dFa}^}2()GkV5)QF?`X?Rxk03HmJkB>f%wz4}uIItC#I1qQ7Kw+-=zEW;GTU55RJ zuZ@h2VvIHzbs0S}Rx=JT&Npr~zH34@aW`3J(qMAU6l2OVO*7qXdf5y%vo}jIt1%lg zhs_<#1?IcWhb_<+P8LFo28$a^64R5J!)#@aTGB0pEekEXET35!SjAgyv+B3{Xl-wu zZrx~o$A)4PXj5p@WAm%6nJw40#`fA=@?77!tLJvleQsxN$G6*KchjC~A7a13zSsVP zgQJ7Uq0M2^(ZDg$vDWbhi^d9LZDyT!LOXdmt#&%*^w!zIS?qk+`4<X~g?%56 z2@eae34a)26HyS+zks@6$%2*zuOhu7%OdYYnM6sVdZQJi6QY}=U&naIl*dS8tzuWk zUW(I*6U24LW8oFzvR(TOpM zEs5_rp_~TJ^wNN(wM(bCZ0;`Z6P^ce2XB(^$}i_nB)KM)Cp}7bP2Qe7nc|*Ok@8f) z7E}wKr~0SXrM^xJP1~RLDLp2=Jp-4Km~m7{5vB?IGPN`FGKaIwvx>8%%bb_(Ts9>N z5;bK**^9Ef#WdN^)PTf9vR*Qp{o-l7 zTcBI8wqSIn=gRt3(5j`YdRObOE?Pal#&6AmwS={4Ykw%TE-Wv6xh`g1Pmxy9nxe7w ze(PI{6^cd0H#WFzsN0CzDA+i-Y3`<~O&?2mB^OJrODjs>Z{}{k_?699m0x|@lC)*8 z%%N=0R?Jr6*6Z8cw;d=~F3&F?+a9vLa|dHb$&Qyhm+ZVyVOLSNi?B>BD~Ee(8aT1AWbo&CM;EEoH56tE6@EV8X%6-*|u1-NtOIZ>P7H z9s-9XhaP{M`0e$>L5F*fu#U8SXZT%h2eqT56Y5;vIn|ZYCGC#u9zGg)w718lr{jCe z@An_mJyvsE<#^c%!il02pHAkVoIaIx>gnm^(__6$dheWxJ#(!uyl?Pq(Ao3ne9xWf z_v}A;-u3*k3(gmgUSwVDy5w-FbHIL};|Kd6ItCpEJBJ*Hx-UCj?irppeBz4xmD5+f zub#UWaP88_{E^}7QP*$YNVp-r$-DXJR{E{yw{vdK+*xxMeYfPE(!GlNn)e%iH2tw% z>L5Kn>ODH}V8MesW8ASPKV|>)e!S=*`C-L`&P4Mg+egPHeJ3wJUif(YN!F8@r^P=j z|6Kdbc>FRj6+1QlT=e|YubW?}zu5oM?q%0Dy!50Qvv` z0D$NK0Cg|`0P0`>06Lfe02gqax=}m;000SaNLh0L04^f{04^f|c%?sf0000RbVXQn zQ*UN;cVTj607GSLb9r+hQ*?D?X>TA@Z*OeDr{R1600IX|L_t(oh3%C;NFzZMhrd(` zffQ=?!dU~Hk)uwrkW|`Dai!~dC6Z*`wLK+CQ~+l>PN zZklHRY&Q!&ShY}#{`8tWP z=X2M-8nGDxkPiCY4ohp64%+W_SXtkQ1(2;<-nrD^!TBbIqHVM>0-Wx-`u!1vEUj4p z{CN#@8%)`>>`GL1>J*ALgO^8E-Fx1zcQyD#01Bd(w@}&iyB&akvcDY!BXb~UM^z8d z6?9J;BQ~*XC|jX|R-HO`?JHw&69oL7gSg=xD@0YN4#44sM=ft923G*JyoG9o1fO^d zq%(DIKR@K0QaMTrZn7O`H}zkTMr@MKQ~+w-)HX=TP79G5AgfGg1{hwougAZ6zuwg_ zK;n>Q0+87&p_xSO<^mvPdGPY6RT9jCGcy3S-%{zML<5PxWhQ`e5)J9HPYoa;l)4RX zM4I4J0Z543L4f)>f6 zXi@@54ZTQ_E-Enz5K6$103tR-RB%L5k){YTDBysjLy@r}iiH7DvFijGMAUI`6dRUF zWUU$Bym{}eS9UO(Z2>7`&z9wUXbV-Il#&6`Y8GKGQ04S2&F6MJnWNa;Ck|;8QE#r9r;7G||@X{|> z%+C|c55>;RS}qbKr-&IQTvLXPlM{>K&(BTgi^a?^4mXV>;xX8n8Ce|RasXz}{8imI52H3ZN4bfe_i~WlJ|C&UW9+{8AKoW!}eExnGFE2re(F+`iE_46#!l9 z0Z_aBhs|Iw0E)7{bq;-T9=d#9QpDmcXDh4R++0fmpKB>E=%LdZt9g$j;($`3&Zthxi`{{&gM}5&R^+h%b~yM9Zd3AWW9ETgVfL z1(`yIK=_}U_z%PWq}jQaiQ4!P(3V&Nr6C$XejWfQDiI(Fdt@un?|lo#M+5oIi_w{w zo%_#%{(V=tO#a9gB!7-$M?^BX5>d|Vn*3S!?g~$*UQipUPL&zMmg;!4Do9IA%up=Rh? z=qPj=x&RGBx1dpI68aT-2O}^EromdU5o`ssU{5#*j)WJ%$?!5bA1;Eoz?EiTr=n?cd`V|I)p<|3Oju?MT93~aB0<#&j8`F+Cg&D?-VWzQItUA^l>xvD zRIYI4MQ`g1<+DyrL=EogS06Xii({| zv`U^zjmmKqDIK93(F5q|^fLNk`gQs{RV`IdRle#b)i%{Ds;|}NsClUI)k@Ub)kf6b zsWa4l)YH_rsduU0(?DsMX@qO!YV6TCtMPOWZH~(v?wpc2hv(eZgf-1HBQ#fN?$aF5 zoYvCT^3%%Fs?s{6^;Da#?V+8jy+iwi_M{F~$4y6|vqR^k&SQoO!;_KDsATjprgSxR z{dFa}^}2()GkV5)QF?`X?Rxk03HmJkB>f%wz4}uIItC#I1qQ7Kw+-=zEW;GTU55RJ zuZ@h2VvIHzbs0S}Rx=JT&Npr~zH34@aW`3J(qMAU6l2OVO*7qXdf5y%vo}jIt1%lg zhs_<#1?IcWhb_<+P8LFo28$a^64R5J!)#@aTGB0pEekEXET35!SjAgyv+B3{Xl-wu zZrx~o$A)4PXj5p@WAm%6nJw40#`fA=@?77!tLJvleQsxN$G6*KchjC~A7a13zSsVP zgQJ7Uq0M2^(ZDg$vDWbhi^d9LZDyT!LOXdmt#&%*^w!zIS?qk+`4<X~g?%56 z2@eae34a)26HyS+zks@6$%2*zuOhu7%OdYYnM6sVdZQJi6QY}=U&naIl*dS8tzuWk zUW(I*6U24LW8oFzvR(TOpM zEs5_rp_~TJ^wNN(wM(bCZ0;`Z6P^ce2XB(^$}i_nB)KM)Cp}7bP2Qe7nc|*Ok@8f) z7E}wKr~0SXrM^xJP1~RLDLp2=Jp-4Km~m7{5vB?IGPN`FGKaIwvx>8%%bb_(Ts9>N z5;bK**^9Ef#WdN^)PTf9vR*Qp{o-l7 zTcBI8wqSIn=gRt3(5j`YdRObOE?Pal#&6AmwS={4Ykw%TE-Wv6xh`g1Pmxy9nxe7w ze(PI{6^cd0H#WFzsN0CzDA+i-Y3`<~O&?2mB^OJrODjs>Z{}{k_?699m0x|@lC)*8 z%%N=0R?Jr6*6Z8cw;d=~F3&F?+a9vLa|dHb$&Qyhm+ZVyVOLSNi?B>BD~Ee(8aT1AWbo&CM;EEoH56tE6@EV8X%6-*|u1-NtOIZ>P7H z9s-9XhaP{M`0e$>L5F*fu#U8SXZT%h2eqT56Y5;vIn|ZYCGC#u9zGg)w718lr{jCe z@An_mJyvsE<#^c%!il02pHAkVoIaIx>gnm^(__6$dheWxJ#(!uyl?Pq(Ao3ne9xWf z_v}A;-u3*k3(gmgUSwVDy5w-FbHIL};|Kd6ItCpEJBJ*Hx-UCj?irppeBz4xmD5+f zub#UWaP88_{E^}7QP*$YNVp-r$-DXJR{E{yw{vdK+*xxMeYfPE(!GlNn)e%iH2tw% z>L5Kn>ODH}V8MesW8ASPKV|>)e!S=*`C-L`&P4Mg+egPHeJ3wJUif(YN!F8@r^P=j z|6Kdbc>FRj6+1QlT=e|YubW?}zu5oM?q%0Dy!50Qvv` z0D$NK0Cg|`0P0`>06Lfe02gqax=}m;000SaNLh0L04^f{04^f|c%?sf0000RbVXQn zQ*UN;cVTj607GSLb9r+hQ*?D?X>TA@Z*OeDr{R1600JOML_t(oh3%HHN&`U%Gvuu)K~#Ui$XffT-h5Wzr*-~-rscAkZqab|Az za!F2XoNBYMH{Z_u^KVK?k{}fG_0t3Z-fs>|aveM{L6kfIN`}SC_r_~auL}f80nFD= z6G|4BtB5)+sNelAgA@Uw04RA}uJT^g?{WnQfI$j?U;vx^y0(Dbhc||Z%T=`};iiFL zfVs8(WM*X*@%j!Ylu6?C9R)+J`Mkfy$K!{*PRx9X{0IA-I5oA+(?Wyw1+pAGEt*}){8IgpD%T?9`CCy51 zp*gu3d8QA$!jDwemtC$Hu9}NL`b8mgb9pPbxop zCmYME8dCwV!3@KiiYsCxVB5aj0McMMoTr&u=V{0$&kZ0|P9vpU(z%(ZAx}Fa0puH@ zL^Xt<^{9s_6qx`aYn2vj_s50E4G{IaxZ10+kx&b0k7D-hxL^QbFcew;5j>$43ZUKt z{5({XBp(T2ApoT8wb>r<{_g@%1llo4@>~D}0T^=;6`3@7Zh$P1X_Ai(U_k)i-F_XQ e$oL2NbAT^i*KXe@F9|OI0000 Date: Tue, 17 Dec 2024 13:49:02 +0100 Subject: [PATCH 07/76] Automatic changelog update --- Resources/Changelog/DeltaVChangelog.yml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/Resources/Changelog/DeltaVChangelog.yml b/Resources/Changelog/DeltaVChangelog.yml index f09659ee9c6..bab04f8152a 100644 --- a/Resources/Changelog/DeltaVChangelog.yml +++ b/Resources/Changelog/DeltaVChangelog.yml @@ -1,11 +1,4 @@ Entries: -- author: DebugOk - changes: - - message: Merged upstream, please report any bugs or regressions - type: Add - id: 281 - time: '2024-03-17T17:09:43.0000000+00:00' - url: https://github.com/DeltaV-Station/Delta-v/pull/973 - author: DangerRevolution changes: - message: Harpies can now wear prison jumpskirt @@ -3818,3 +3811,10 @@ id: 780 time: '2024-12-17T12:41:05.0000000+00:00' url: https://github.com/DeltaV-Station/Delta-v/pull/2355 +- author: rosieposieeee + changes: + - message: Added flower bushes. + type: Add + id: 781 + time: '2024-12-17T12:48:43.0000000+00:00' + url: https://github.com/DeltaV-Station/Delta-v/pull/2382 From deda3b84ca09a1a039941cdda41ecc260d704a00 Mon Sep 17 00:00:00 2001 From: rosieposie <52761126+rosieposieeee@users.noreply.github.com> Date: Tue, 17 Dec 2024 07:49:39 -0500 Subject: [PATCH 08/76] Barrels & Kegs (#2378) * initial commit * fixes --- .../DeltaV/Catalog/Cargo/cargo_food.yml | 31 ++++ .../Structures/Storage/Crates/barrel.yml | 154 ++++++++++++++++++ .../DeltaV/Recipes/Crafting/Graphs/barrel.yml | 54 ++++++ .../DeltaV/Recipes/Crafting/barrel.yml | 25 +++ .../Objects/Storage/barrel.rsi/base.png | Bin 0 -> 1138 bytes .../Objects/Storage/barrel.rsi/closed.png | Bin 0 -> 339 bytes .../Objects/Storage/barrel.rsi/meta.json | 20 +++ .../Objects/Storage/barrel.rsi/open.png | Bin 0 -> 1138 bytes .../DeltaV/Objects/Storage/keg.rsi/base.png | Bin 0 -> 4087 bytes .../DeltaV/Objects/Storage/keg.rsi/meta.json | 15 ++ 10 files changed, 299 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/Objects/Storage/barrel.rsi/base.png create mode 100644 Resources/Textures/DeltaV/Objects/Storage/barrel.rsi/closed.png create mode 100644 Resources/Textures/DeltaV/Objects/Storage/barrel.rsi/meta.json create mode 100644 Resources/Textures/DeltaV/Objects/Storage/barrel.rsi/open.png create mode 100644 Resources/Textures/DeltaV/Objects/Storage/keg.rsi/base.png create mode 100644 Resources/Textures/DeltaV/Objects/Storage/keg.rsi/meta.json diff --git a/Resources/Prototypes/DeltaV/Catalog/Cargo/cargo_food.yml b/Resources/Prototypes/DeltaV/Catalog/Cargo/cargo_food.yml index f8645aa058a..7c4e08cfcf0 100644 --- a/Resources/Prototypes/DeltaV/Catalog/Cargo/cargo_food.yml +++ b/Resources/Prototypes/DeltaV/Catalog/Cargo/cargo_food.yml @@ -57,3 +57,34 @@ cost: 1500 category: Food group: market + +- type: cargoProduct + id: FoodBeerKeg + icon: + sprite: DeltaV/Objects/Storage/keg.rsi + state: base + product: WoodenKegBeer + cost: 500 + category: Food + group: market + +- type: cargoProduct + id: FoodRootBeerKeg + icon: + sprite: DeltaV/Objects/Storage/keg.rsi + state: base + product: WoodenKegRootBeer + cost: 500 + category: Food + group: market + +- type: cargoProduct + id: FoodWineBarrel + icon: + sprite: DeltaV/Objects/Storage/keg.rsi + state: base + product: WoodenKegWine + cost: 500 + category: Food + group: market + \ No newline at end of file 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..aa64c070024 --- /dev/null +++ b/Resources/Prototypes/DeltaV/Entities/Structures/Storage/Crates/barrel.yml @@ -0,0 +1,154 @@ +- type: entity + parent: CrateGeneric + id: WoodenBarrel + name: wooden barrel + description: A musty old wooden barrel. + components: + - type: Sprite + sprite: DeltaV/Objects/Storage/barrel.rsi + layers: + - state: base + map: ["enum.StorageVisualLayers.Base"] + - state: closed + map: ["enum.StorageVisualLayers.Door"] + - type: Icon + sprite: DeltaV/Objects/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: StaticPrice + price: 50 + - type: Fixtures + fixtures: + fix1: + shape: + !type:PhysShapeAabb + bounds: "-0.2,-0.3,0.2,0.4" + density: 150 + mask: + - SmallMobMask #this is so they can go under plastic flaps + layer: + - MachineLayer + - type: Climbable + +- type: entity + parent: StorageTank + id: WoodenKeg + name: wooden keg + description: A musty old wooden keg, with a tap attached to the front. + components: + - type: SolutionContainerManager + solutions: + tank: + maxVol: 500 + - type: ExaminableSolution + solution: tank + - type: UserInterface + interfaces: + enum.TransferAmountUiKey.Key: + type: TransferAmountBoundUserInterface + - type: DrawableSolution + solution: tank + - type: InjectableSolution + solution: tank + - type: Drink + solution: tank + - type: Spillable + solution: tank + - type: DumpableSolution + solution: tank + - type: Sprite + sprite: DeltaV/Objects/Storage/keg.rsi + layers: + - state: base + map: ["enum.StorageVisualLayers.Base"] + - type: Damageable + damageContainer: StructuralInorganic + damageModifierSet: Wood + - type: StaticPrice + price: 50 + - type: Construction + graph: WoodenKeg + node: woodenkeg + containers: + - entity_storage + - type: Fixtures + fixtures: + fix1: + shape: + !type:PhysShapeAabb + bounds: "-0.2,-0.3,0.2,0.4" + density: 200 + mask: + - SmallMobMask #this is so they can go under plastic flaps + layer: + - MachineLayer + - type: Transform + noRot: false + +- 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: + tank: + reagents: + - ReagentId: RootBeer + Quantity: 500 + +- 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: + tank: + reagents: + - ReagentId: Beer + Quantity: 500 + +- 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: + 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 new file mode 100644 index 00000000000..70476578317 --- /dev/null +++ b/Resources/Prototypes/DeltaV/Recipes/Crafting/Graphs/barrel.yml @@ -0,0 +1,54 @@ +- 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: 2 + 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: 2 + conditions: + - !type:SolutionEmpty + solution: tank + 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..a673b1215bb --- /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/Objects/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/Objects/Storage/keg.rsi + state: base + objectType: Structure diff --git a/Resources/Textures/DeltaV/Objects/Storage/barrel.rsi/base.png b/Resources/Textures/DeltaV/Objects/Storage/barrel.rsi/base.png new file mode 100644 index 0000000000000000000000000000000000000000..bfc92c166d4378a6145536c6386dd95e55c9ea7f GIT binary patch literal 1138 zcmV-&1daQNP)YAX9X8WNB|8RBvx=!KdMT000C1 zNkl*{Q&wL`~LRvcaw=0y=i5FNt2 z6}<4q8xizEuXZ!WypvuC_M%jZMb?6`!rCp9cG)UPld{C5Uon|!(vRas$T8`blaDIH z=juJ@JTK4hJnwrruSS+-o@HqMcYya^>{gv{xtV0GE81UeBHvnMk77#jZ zL|0<~%uNQlefvHD-`)vT1gQvc$z_#aJO4axcLUe1dsTCQ_x&Q5vl-d&vT5P)bsKiPCoi@ylnA&MD{dH-yCCZGRVY(H1VaoM+3Os4ZQu? zt*7Rdicd#e>^GV5?F#%l`F(8w$*f~w>;o+RALt%z$JQ+{^6t25;pv-W#8#sC{X6(} z1>)W*0-KrI0OwCOVKwRr3&RWz4Ut}$!0m3p)-3=ablQsML|0?XO$O2Tk1{_$j~Ml` zd9cS%iyPGgOeT{oiXDu$XIThrBev?;alMMe;Q+vHw-@C{A`$F%JCR6)*vvO92b1)k zHuHO;jrj-5Boc}00eyXaNRmX{JB72;!2aW10G5MEPC1Q5`G@a?*E76%`2w@v7!!Bz z)CM?b(~=TAbaizxI5^0oiLaGz9BVudfVr+-nX?esreA7C^THUR**T)=49@yB#+Q<{ z1NxY+IunY zYiRQrh;8Wr_{-)5U?;P~dVC!Kt^dcOC8-&3<^VJXo>*J4RfpB6FUpT6)51ftZPrN@Y3aG;*x*IKkDF>Js!z z&B{2H%CcqYARJz+9#Gf?R($lHHgm$HXUP{Y>PSBFZ=44#2a`w_M^*m=6#+!CgO(OE zk|fdiXs&2|3->```vY1x;Y5P1txeUpFAF$~0FWf9=((*e_dkgJ5o2$2lW-ydP*L%U z0q1O5Wjz4}Q!-Y37z|p~&#z)Y9&zR%H#Q16OyL0(D7u%7W>r7EssVWfK;Mbnu`GY| zl2f_o>sp!CtcH7ax$8=bR|Pl>DHW9#t{L!e$1?}~4bn|!-yh?@1poj507*qoM6N<$ Ef&g0-IRF3v literal 0 HcmV?d00001 diff --git a/Resources/Textures/DeltaV/Objects/Storage/barrel.rsi/closed.png b/Resources/Textures/DeltaV/Objects/Storage/barrel.rsi/closed.png new file mode 100644 index 0000000000000000000000000000000000000000..b111827b8e5ded4cdf0b14e4ed96426d126971bd GIT binary patch literal 339 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz&H|6fVg?31We{epSZZGe6qGJ; zjVKAuPb(=;EJ|f?PR%K?Mkcif|m#w)DIS4d7 zv~P915aGeH+SO4yy80snWBzkbn}#y8uxVV4Ax-|1+_pq;dm1bjA1_qV_#utx|9t_`@bP?!N22WQ%mvv4FO#mcBf<^!U literal 0 HcmV?d00001 diff --git a/Resources/Textures/DeltaV/Objects/Storage/barrel.rsi/meta.json b/Resources/Textures/DeltaV/Objects/Storage/barrel.rsi/meta.json new file mode 100644 index 00000000000..2ed4c3638b9 --- /dev/null +++ b/Resources/Textures/DeltaV/Objects/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/blob/master/icons/obj/objects.dmi, modified by rosieposieeee", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "base" + }, + { + "name": "open" + }, + { + "name": "closed" + } + ] +} diff --git a/Resources/Textures/DeltaV/Objects/Storage/barrel.rsi/open.png b/Resources/Textures/DeltaV/Objects/Storage/barrel.rsi/open.png new file mode 100644 index 0000000000000000000000000000000000000000..bfc92c166d4378a6145536c6386dd95e55c9ea7f GIT binary patch literal 1138 zcmV-&1daQNP)YAX9X8WNB|8RBvx=!KdMT000C1 zNkl*{Q&wL`~LRvcaw=0y=i5FNt2 z6}<4q8xizEuXZ!WypvuC_M%jZMb?6`!rCp9cG)UPld{C5Uon|!(vRas$T8`blaDIH z=juJ@JTK4hJnwrruSS+-o@HqMcYya^>{gv{xtV0GE81UeBHvnMk77#jZ zL|0<~%uNQlefvHD-`)vT1gQvc$z_#aJO4axcLUe1dsTCQ_x&Q5vl-d&vT5P)bsKiPCoi@ylnA&MD{dH-yCCZGRVY(H1VaoM+3Os4ZQu? zt*7Rdicd#e>^GV5?F#%l`F(8w$*f~w>;o+RALt%z$JQ+{^6t25;pv-W#8#sC{X6(} z1>)W*0-KrI0OwCOVKwRr3&RWz4Ut}$!0m3p)-3=ablQsML|0?XO$O2Tk1{_$j~Ml` zd9cS%iyPGgOeT{oiXDu$XIThrBev?;alMMe;Q+vHw-@C{A`$F%JCR6)*vvO92b1)k zHuHO;jrj-5Boc}00eyXaNRmX{JB72;!2aW10G5MEPC1Q5`G@a?*E76%`2w@v7!!Bz z)CM?b(~=TAbaizxI5^0oiLaGz9BVudfVr+-nX?esreA7C^THUR**T)=49@yB#+Q<{ z1NxY+IunY zYiRQrh;8Wr_{-)5U?;P~dVC!Kt^dcOC8-&3<^VJXo>*J4RfpB6FUpT6)51ftZPrN@Y3aG;*x*IKkDF>Js!z z&B{2H%CcqYARJz+9#Gf?R($lHHgm$HXUP{Y>PSBFZ=44#2a`w_M^*m=6#+!CgO(OE zk|fdiXs&2|3->```vY1x;Y5P1txeUpFAF$~0FWf9=((*e_dkgJ5o2$2lW-ydP*L%U z0q1O5Wjz4}Q!-Y37z|p~&#z)Y9&zR%H#Q16OyL0(D7u%7W>r7EssVWfK;Mbnu`GY| zl2f_o>sp!CtcH7ax$8=bR|Pl>DHW9#t{L!e$1?}~4bn|!-yh?@1poj507*qoM6N<$ Ef&g0-IRF3v literal 0 HcmV?d00001 diff --git a/Resources/Textures/DeltaV/Objects/Storage/keg.rsi/base.png b/Resources/Textures/DeltaV/Objects/Storage/keg.rsi/base.png new file mode 100644 index 0000000000000000000000000000000000000000..05686978222cf81f73140592730be7bb6c48dcea GIT binary patch literal 4087 zcmVYAX9X8WNB|8RBvx=!KdMT000ky zNklcb& zdhhCbSH~GK$j-&Q&X;y;XZ_-&`wFprtRgr6n{VNeS->1j0-1 zAMqR#5<;N%?jPIdujH5W`+dLXd!F;0=XcH%h1culZ`l+#1(>G*ReAcbHymhnD6Wgq z|1*BX0tnzzb21L6n>>@2fqoAF4yPLcy+%c&Wne)>=8G@z0FqObv|0xjgddRrRe5@E zR$3f-jS7d;O-Iid;yVy@O?>~cM7WXoa|$59TiTsul~t0nawPypqY;4K-d;Q&pC?$Y zRxB0^TyCZ?Tl1rc;EzvkF=n$FlgR{tQmI6z(*aNz6{{&{10s`77J?og&#!#m!UvDQ#>CaH#b*`4}JsigGGWLRsgM5>#eS?rm?Ys z;%qZ!&qV+lEdwE4u+*GP-_!(W$1>^f?;|B8mFDJV1_uWhB!X6}^%fTw%V!nEb&?tt z6BZx9qRgkc-9l+;8MU>wVe#h_AS)}Al-^DXvo!%hMu7Pf09aP6XJpXL*>ipL>oV!+ z=)5ig1b)%2sU&DsoNsmj1PA~G@Nziaw6r@T!k<+Dp}v^UFdgM*g8Pe*y;#lU@Hj2) zPSk28EE1!%Pp16hEW@l}4?%dBk^-~v^X>wNjSTP zg4SSRv#rH~Kyd;bw?*a!0^eVN*>ZqT`2JiiePh@r6tm(72~cU&dJD5P>^<+40*E=7 zS@i@uoeoR8h4{F5nF|QB*=$&?R^nT~nvMZ356vU6eVK-qcITWT_~RERAfHi~tzk6p z4ooIfNZiq}QOwz9dV726Jn)vp7Xr+NA0$A5F3G#GM8}`%`=$jj6tH>oX4=}?0LaP7 z0l?$&kkH)@Kzhm;*Dko|i}sSU>0avV>$&p9J^(4eu}ed9PJ;qnl6T$GBq;#Ek~{CG zyu6&YL!Xj5sbEoon(ltzv=~XxMyXT+1n@g}@E~gY1u4MK%2PSq)Ek5!BtTW3-Yaf0 z#&|L1EW@CRBPz$tEnR=1(J~OQ1oll$05CZ`E@MD~DwoguTr63#geza{!+$!>m6-VB z7bo~Sf91**?n+fN;=U|nKy+d(0I5+i@?OF1`;4D3)n>u&9>dypUiKvvevkmSYqZ`T zr5D?Tf{LYu7*ugMZ0BVl0^jl?mc~%mM6eVYWOH*f#uy(?Bpv|x1Sl>Bd>Ng8aGMJs zd;w5zT!!5}M%|?rj4@u)JPN*c&M^hFTCKcLv9yrrfh%$jrf+%-qtS@XW(zqF0T}~k zE`!46S`Pj3XD)*x1^^-P1-I@)@5&f3nY@I$OD(hFhfjol2txWbRa8_|;BKs?a%(n* z#pwZU?N@yyyD!_hcySa}X*G3qbvRBOkU?-kiBJgq{QP**a}59?c^u#0J}>+^1u$=} zra0CvfuDQo&rA$Q1+Ny$k`{3{-zxt>3{QAGH z(9zMkphPGuE0fA6H?n*8%XD^j^2a~E!8&!XBqIpzeBySVedP!M;+c^qLIVHQ=QgnC zt*<4%KL`J7p*-T}cP!_HkD9{b&zcD7l?s|ipk_-RtsR~6!4Bsr*0fdZ*s+609(e?S zr=NbBQ>RW*Hg;CFIp03aFaLQX5AQz8+H_w^I-f+yoEpbB-5%b5VLiY5{b816Cx#sD z*#vMnN6E{|q~^<3iW9)$i7*i=&?R~GN`>50`=;AN&6Ye4HML2_8{&#sxpJjkcL6DY z7@ZC4SMkz^b*xSIz08OglSn*3ynqS(7ay$P$kCHw=YLQ+?vgnpYNr*x*CAm+FIU!VZ8*7q@(jSfBgJ>-{`038e}#ovcUP`&--X> zX08s*E7!kXo9Q7lZNB)|bvP=>+~`i`c$aB|w0xJiT|*x)Pel4VX+Ox(~f80m|;)i7i&eXRp`D_TrWG zo?SIeo%$C0)o+;`i>J@iPx_|Euv)E@xX<(DsjKrAp(;=B-Li5qO{!&*OR6%3=(te~ zi*F-pg1+h)a+F zHLu){J$fshot;u)faOISx#iXsQdxh?sNN+HB!n80 z?!;79R(hX#<{9ei>p6P#C;;o%ucy4coY!7^O^Q&UOY(m4 zFqf>PyFZSOw!e^|Rbhxxa3-#dii!&Exy{Ct5AB&<00H{hx6?;V(TTC7M#Yez$|Wg1 z4g1w^gH-P@tf8W!B7kJs-8*UQ83+(SbiT8*6PwKzAb`NT15*{|WEC{Sbfn zWE7Lh6u`wFZ>A;W{~b$WCpmNWZ~zy8drP}{bjJtb1$gzj4FQq2&(lv!yOXjz@278S z3de~9L7<|umV>pdTb_=?>6Qt}ukKCZ*;kIRdh30%y2EC(@yRFqID7V-0-&hqR_}fH z-7kN$TCIGy{}Wz)ZUevlv|lD*dX0)>XSy+Ot_~2z-}Gy$NR5i3;fs9~W@|`QrUa}= z&%Sabasg(#wAE@2Iqy0QYkZ?)KY_#PCOR>e;fzWE2^wR}3fM^wB>+tCFi+Sz5L^Hf zyN)wCJdR$Y3cw4+MdS?-IAtOdVE48XUT>MgY&Mf|wTV7YKj2F-XM&0#@@l;Gp7XRaM>?y&fRoz)~E<0!%m@{OP~}g;uNezW>5{=>a*3C%M+@ z_SGQzrR5?>&m0VqvZpFj=vrKY#bRMsVH7WX)HJ&QTCLVwvn7v@?Y?D2ZNI>Z41;eP z%y<`wPK;%8cwCOQ#bTi-u2WWXx(o%3e1DCaCkvziWjQ(C*tj@c(NO`ld!i;#Jvqhr z*cc6MZBl@mH!qNI%OceF3)5AoW0{!EX6Y4zix?;|7^%t>PIuX5rOE>aH#J|j2JB%5 z3Gm{B71UmG)8F4Gt1|%k5Vie+ycVC}+neu6S^_}Y&=p2U#)(ge#p+a(kglQnRvj;W zSQpS)2;NAYd0lcj*ULz^6O+azpY4waFgh|GmS;y?Iw>isR4-KpaGBKu-f3|&GU6t~ z(ThTjEP0*zVDPI~Wyxn)7T>0E?Aj`qWJWcyoNspUO}8hY zcv`Pf@lnGyF7ys5L`~1ybY(!f{Ehh2RHJ1;auL|u$`(mXQDwR|UCFXyJ@L+Q8Z85} zatZ4JTQ_7fGU(=TQ?D#H1u&=j-pfnP$$Zps4M6_BZfR1)#SoF2f6>ITOG5!%wv{cC z{}!?IjRkPoSfV3At789=&iQ+Qa3TMS>u_^g1S?TpzL4U`aL*P+lMCUppeZmj@I=y? ph1?T~-AFDs4@PbZ@HZ~N{{gn|Ehg^L9e)4-002ovPDHLkV1jxWvIqbG literal 0 HcmV?d00001 diff --git a/Resources/Textures/DeltaV/Objects/Storage/keg.rsi/meta.json b/Resources/Textures/DeltaV/Objects/Storage/keg.rsi/meta.json new file mode 100644 index 00000000000..cbbc0d6e89f --- /dev/null +++ b/Resources/Textures/DeltaV/Objects/Storage/keg.rsi/meta.json @@ -0,0 +1,15 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Made by rosieposieeee", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "base", + "directions": 4 + } + ] +} From 55ae568ab2342f935c8d11977b37b5ddd5d2f79e Mon Sep 17 00:00:00 2001 From: Delta-V bot <135767721+DeltaV-Bot@users.noreply.github.com> Date: Tue, 17 Dec 2024 13:49:59 +0100 Subject: [PATCH 09/76] Automatic changelog update --- Resources/Changelog/DeltaVChangelog.yml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/Resources/Changelog/DeltaVChangelog.yml b/Resources/Changelog/DeltaVChangelog.yml index bab04f8152a..80c31975690 100644 --- a/Resources/Changelog/DeltaVChangelog.yml +++ b/Resources/Changelog/DeltaVChangelog.yml @@ -1,11 +1,4 @@ Entries: -- author: DangerRevolution - changes: - - message: Harpies can now wear prison jumpskirt - type: Fix - id: 282 - time: '2024-03-17T17:31:11.0000000+00:00' - url: https://github.com/DeltaV-Station/Delta-v/pull/975 - author: DangerRevolution changes: - message: Moths can now eat skirts @@ -3818,3 +3811,10 @@ id: 781 time: '2024-12-17T12:48:43.0000000+00:00' url: https://github.com/DeltaV-Station/Delta-v/pull/2382 +- author: rosieposieeee + changes: + - message: Added wooden barrels and wooden kegs. + type: Add + id: 782 + time: '2024-12-17T12:49:40.0000000+00:00' + url: https://github.com/DeltaV-Station/Delta-v/pull/2378 From 78c51b6e07201f57695303b1512a73c13b7cbacb Mon Sep 17 00:00:00 2001 From: deltanedas <39013340+deltanedas@users.noreply.github.com> Date: Tue, 17 Dec 2024 18:17:41 +0000 Subject: [PATCH 10/76] make some ores more common on lavaland planets (#2441) Co-authored-by: deltanedas <@deltanedas:kde.org> --- .../DeltaV/Procedural/biome_ore_templates.yml | 46 +++++++++++++++++++ Resources/Prototypes/DeltaV/planets.yml | 8 ++-- 2 files changed, 50 insertions(+), 4 deletions(-) create mode 100644 Resources/Prototypes/DeltaV/Procedural/biome_ore_templates.yml diff --git a/Resources/Prototypes/DeltaV/Procedural/biome_ore_templates.yml b/Resources/Prototypes/DeltaV/Procedural/biome_ore_templates.yml new file mode 100644 index 00000000000..b264f014844 --- /dev/null +++ b/Resources/Prototypes/DeltaV/Procedural/biome_ore_templates.yml @@ -0,0 +1,46 @@ +# these have higher group size so more ores spawns + +# Plasma +- type: biomeMarkerLayer + id: OrePlasma3 + entityMask: + AsteroidRock: AsteroidRockPlasma + WallRock: WallRockPlasma + WallRockBasalt: WallRockBasaltPlasma + WallRockChromite: WallRockChromitePlasma + WallRockSand: WallRockSandPlasma + WallRockSnow: WallRockSnowPlasma + maxCount: 12 + minGroupSize: 12 + maxGroupSize: 24 + radius: 4 + +# Uranium +- type: biomeMarkerLayer + id: OreUranium2 + entityMask: + AsteroidRock: AsteroidRockUranium + WallRock: WallRockUranium + WallRockBasalt: WallRockBasaltUranium + WallRockChromite: WallRockChromiteUranium + WallRockSand: WallRockSandUranium + WallRockSnow: WallRockSnowUranium + maxCount: 15 + minGroupSize: 8 + maxGroupSize: 16 + radius: 4 + +# Diamond +- type: biomeMarkerLayer + id: OreDiamond2 + entityMask: + AsteroidRock: AsteroidRockDiamond + WallRock: WallRockDiamond + WallRockBasalt: WallRockBasaltDiamond + WallRockChromite: WallRockChromiteDiamond + WallRockSand: WallRockSandDiamond + WallRockSnow: WallRockSnowDiamond + maxCount: 6 + minGroupSize: 2 + maxGroupSize: 4 + radius: 4 diff --git a/Resources/Prototypes/DeltaV/planets.yml b/Resources/Prototypes/DeltaV/planets.yml index 9491c621a89..77fbf10453f 100644 --- a/Resources/Prototypes/DeltaV/planets.yml +++ b/Resources/Prototypes/DeltaV/planets.yml @@ -20,9 +20,9 @@ - OreCoal - OreGold - OreSilver - - OrePlasma + - OrePlasma3 - OreUranium - - OreDiamond + - OreDiamond2 - OreArtifactFragment - type: planet @@ -47,7 +47,7 @@ - OreCoal - OreGold - OreSilver - - OrePlasma - - OreUranium + - OrePlasma3 + - OreUranium2 - OreDiamond - OreArtifactFragment From 7200dfbad6b657747c1732163a9793832d2f1ef0 Mon Sep 17 00:00:00 2001 From: Delta-V bot <135767721+DeltaV-Bot@users.noreply.github.com> Date: Tue, 17 Dec 2024 19:18:00 +0100 Subject: [PATCH 11/76] Automatic changelog update --- Resources/Changelog/DeltaVChangelog.yml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/Resources/Changelog/DeltaVChangelog.yml b/Resources/Changelog/DeltaVChangelog.yml index 80c31975690..8f49f7fea6a 100644 --- a/Resources/Changelog/DeltaVChangelog.yml +++ b/Resources/Changelog/DeltaVChangelog.yml @@ -1,11 +1,4 @@ Entries: -- author: DangerRevolution - changes: - - message: Moths can now eat skirts - type: Fix - id: 283 - time: '2024-03-17T17:45:11.0000000+00:00' - url: https://github.com/DeltaV-Station/Delta-v/pull/976 - author: UnicornOnLSD changes: - message: pebble minor patch 3 @@ -3818,3 +3811,10 @@ id: 782 time: '2024-12-17T12:49:40.0000000+00:00' url: https://github.com/DeltaV-Station/Delta-v/pull/2378 +- author: deltanedas + changes: + - message: Plasma and diamonds are more abundant on lavaland. + type: Tweak + id: 783 + time: '2024-12-17T18:17:41.0000000+00:00' + url: https://github.com/DeltaV-Station/Delta-v/pull/2441 From 9de9a172b33e1b29022f7bdfcbf34975a0ecc448 Mon Sep 17 00:00:00 2001 From: Blitz <73762869+BlitzTheSquishy@users.noreply.github.com> Date: Wed, 18 Dec 2024 12:12:44 +1100 Subject: [PATCH 12/76] New Blood Based Soda! (#2250) * NEW DRINKY!! * flavour is now not broken :) * AAAAAAAAAAAAAAAAAAAAAAAAAA * Milons annoyances :blunt: * "untouch" I dont like using the web interface, its also superfluous spaces Signed-off-by: Blitz <73762869+BlitzTheSquishy@users.noreply.github.com> * Update drinks_cans.yml Signed-off-by: Blitz <73762869+BlitzTheSquishy@users.noreply.github.com> * Update flavor-profiles.ftl Signed-off-by: Blitz <73762869+BlitzTheSquishy@users.noreply.github.com> * Update meta.json Signed-off-by: Blitz <73762869+BlitzTheSquishy@users.noreply.github.com> * deltanedas fix --------- Signed-off-by: Blitz <73762869+BlitzTheSquishy@users.noreply.github.com> Co-authored-by: Milon --- .../en-US/deltav/flavors/flavor-profiles.ftl | 1 + .../reagents/meta/consumable/drink/soda.ftl | 2 ++ .../VendingMachines/Inventories/gib.yml | 1 + .../Objects/Consumable/Drinks/drinks_cans.yml | 15 +++++++++++ .../Prototypes/DeltaV/Flavors/flavors.yml | 5 ++++ .../DeltaV/Reagents/Consumable/Drink/soda.yml | 22 +++++++++++++++ .../DeltaV/Recipes/Reactions/drinks.yml | 12 +++++++++ .../Drinks/drgibbbloodred.rsi/icon.png | Bin 0 -> 463 bytes .../Drinks/drgibbbloodred.rsi/icon_open.png | Bin 0 -> 493 bytes .../Drinks/drgibbbloodred.rsi/inhand-left.png | Bin 0 -> 435 bytes .../drgibbbloodred.rsi/inhand-right.png | Bin 0 -> 462 bytes .../Drinks/drgibbbloodred.rsi/meta.json | 25 ++++++++++++++++++ 12 files changed, 83 insertions(+) create mode 100644 Resources/Locale/en-US/deltav/reagents/meta/consumable/drink/soda.ftl create mode 100644 Resources/Prototypes/DeltaV/Entities/Objects/Consumable/Drinks/drinks_cans.yml create mode 100644 Resources/Prototypes/DeltaV/Reagents/Consumable/Drink/soda.yml create mode 100644 Resources/Textures/DeltaV/Objects/Consumable/Drinks/drgibbbloodred.rsi/icon.png create mode 100644 Resources/Textures/DeltaV/Objects/Consumable/Drinks/drgibbbloodred.rsi/icon_open.png create mode 100644 Resources/Textures/DeltaV/Objects/Consumable/Drinks/drgibbbloodred.rsi/inhand-left.png create mode 100644 Resources/Textures/DeltaV/Objects/Consumable/Drinks/drgibbbloodred.rsi/inhand-right.png create mode 100644 Resources/Textures/DeltaV/Objects/Consumable/Drinks/drgibbbloodred.rsi/meta.json diff --git a/Resources/Locale/en-US/deltav/flavors/flavor-profiles.ftl b/Resources/Locale/en-US/deltav/flavors/flavor-profiles.ftl index 6c93c98ed3c..51b345aa339 100644 --- a/Resources/Locale/en-US/deltav/flavors/flavor-profiles.ftl +++ b/Resources/Locale/en-US/deltav/flavors/flavor-profiles.ftl @@ -29,6 +29,7 @@ flavor-complex-blellow = like an impossible color flavor-complex-candy-strawberry = like strawberries flavor-complex-candy-bubblegum = like bubble gum flavor-complex-double-ice-cream = like ice cream, twice +flavor-complex-drgibbbloodred = like severe malpractice candy-flavor-profile = This one is supposed to taste {$flavor}. candy-flavor-profile-multiple = This one is supposed to taste {$flavors} and {$lastFlavor}. diff --git a/Resources/Locale/en-US/deltav/reagents/meta/consumable/drink/soda.ftl b/Resources/Locale/en-US/deltav/reagents/meta/consumable/drink/soda.ftl new file mode 100644 index 00000000000..156f8aaa73a --- /dev/null +++ b/Resources/Locale/en-US/deltav/reagents/meta/consumable/drink/soda.ftl @@ -0,0 +1,2 @@ +reagent-name-dr-gibb-blood-red = Dr. Gibb Blood Red +reagent-desc-dr-gibb-blood-red = A drink to quench YOUR blood thirst. diff --git a/Resources/Prototypes/Catalog/VendingMachines/Inventories/gib.yml b/Resources/Prototypes/Catalog/VendingMachines/Inventories/gib.yml index 98513a48a4a..171eb196f77 100644 --- a/Resources/Prototypes/Catalog/VendingMachines/Inventories/gib.yml +++ b/Resources/Prototypes/Catalog/VendingMachines/Inventories/gib.yml @@ -2,6 +2,7 @@ id: DrGibbInventory startingInventory: DrinkDrGibbCan: 4 + DrinkDrGibbBloodRedCan: 2 # Delta-V DrinkGrapeCan: 2 DrinkRootBeerCan: 2 DrinkIcedTeaCan: 2 diff --git a/Resources/Prototypes/DeltaV/Entities/Objects/Consumable/Drinks/drinks_cans.yml b/Resources/Prototypes/DeltaV/Entities/Objects/Consumable/Drinks/drinks_cans.yml new file mode 100644 index 00000000000..a7e16b8c33c --- /dev/null +++ b/Resources/Prototypes/DeltaV/Entities/Objects/Consumable/Drinks/drinks_cans.yml @@ -0,0 +1,15 @@ +- type: entity + parent: DrinkCanBaseFull + id: DrinkDrGibbBloodRedCan + name: Dr. Gibb Blood Red can + description: A drink to quench YOUR bloodthirst. + components: + - type: SolutionContainerManager + solutions: + drink: + maxVol: 30 + reagents: + - ReagentId: DrGibbBloodRed + Quantity: 30 + - type: Sprite + sprite: DeltaV/Objects/Consumable/Drinks/drgibbbloodred.rsi diff --git a/Resources/Prototypes/DeltaV/Flavors/flavors.yml b/Resources/Prototypes/DeltaV/Flavors/flavors.yml index 8d0d01efa0b..9ed9b3003f4 100644 --- a/Resources/Prototypes/DeltaV/Flavors/flavors.yml +++ b/Resources/Prototypes/DeltaV/Flavors/flavors.yml @@ -121,6 +121,11 @@ flavorType: Complex description: flavor-complex-blellow +- type: flavor + id: drgibbbloodred + flavorType: Complex + description: flavor-complex-drgibbbloodred + # this is prefixed with "candy" to avoid clashes with potential future strawberries upstream - type: flavor id: candystrawberry diff --git a/Resources/Prototypes/DeltaV/Reagents/Consumable/Drink/soda.yml b/Resources/Prototypes/DeltaV/Reagents/Consumable/Drink/soda.yml new file mode 100644 index 00000000000..42db09785bd --- /dev/null +++ b/Resources/Prototypes/DeltaV/Reagents/Consumable/Drink/soda.yml @@ -0,0 +1,22 @@ +- type: reagent + id: DrGibbBloodRed + name: reagent-name-dr-gibb-blood-red + parent: BaseSoda + desc: reagent-desc-dr-gibb-blood-red + physicalDesc: reagent-physical-desc-fizzy + flavor: drgibbbloodred + color: "#570303" + metabolisms: + Drink: + effects: + - !type:SatiateThirst + factor: 2.0 + conditions: + - !type:OrganType + type: Human + shouldHave: false + Food: + effects: + - !type:AdjustReagent + reagent: UncookedAnimalProteins + amount: 0.05 diff --git a/Resources/Prototypes/DeltaV/Recipes/Reactions/drinks.yml b/Resources/Prototypes/DeltaV/Recipes/Reactions/drinks.yml index 60bb26eaa2f..e64c347e445 100644 --- a/Resources/Prototypes/DeltaV/Recipes/Reactions/drinks.yml +++ b/Resources/Prototypes/DeltaV/Recipes/Reactions/drinks.yml @@ -100,3 +100,15 @@ amount: 1 products: DoubleIceCream: 3 + +- type: reaction + id: DrGibbBloodRed + reactants: + DrGibb: + amount: 3 + Blood: + amount: 2 + Sugar: + amount: 1 + products: + DrGibbBloodRed: 6 diff --git a/Resources/Textures/DeltaV/Objects/Consumable/Drinks/drgibbbloodred.rsi/icon.png b/Resources/Textures/DeltaV/Objects/Consumable/Drinks/drgibbbloodred.rsi/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..9c45adab3b8547003edc71893454616e795bf75d GIT binary patch literal 463 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz#^NA%Cx&(BWL^T<`JOJ0ArbD$ zDG~_>EDn4#?y*WRVR3U#$Y^s2NjqNujYiG8Hpv`*6#DxhU&BX7KBeP=D%J~@8#X_Dbagh5`Fp!0i_&j; zcNi7^ZTUA-rJc!>??Q3{!|}g;;qn1Z@=q2NxfgG^p~`ltt9+8|g;NI(1oSRt3rMGgNE+1uFAn;=$!zX=~JJp}N8{hF&C;}DST`|}3 zhTDwB+%mSqkJuIVU)E%C2;9)x*!VE`HDB9y_j^sc&uqd^Zut3B`IjrB1`CVD%mdT@ zd(A!gVTo<0W5?{)#80Q)zno;XPx$jY&j7R9Hu2WEfz;IKcKZj5=U61V%%EDj{(F`t|>snwn&pMV6+h%#Q!a<%gNE zGMHPC5=ydpBx?X!9vkM!ps%eCwsh5|-C%lJ|4fEkSND)?9!VNNmV1YnN zSWU}?A*(2zArPqQ($0Vc)-BGKywFNWME*JBQD4A?&}}8 zGmd_F24>U60iY20p#btP1l)V`i-GPAcp)yw@ZG4LLD)u^fo*mM!{P@ZztbrMKvA%T zfq~&u>kfvuN8W-h<~&!)u=(X9`b7aK1Ozylz?T0?ox$*=J&8exn}uQW%SW_NgrGFw z!@$5W*>fq_0g~6N=^F(w2dq(00Q(*k4c`x!(k}!+X#iw7EC+ySy5$0pWuVd!WPPlH z0>xPnWFAQ+AuR91ie%&hk<=0prk5-SU@3{o78-THXb6mk008w4n<3S}Y1#k)01jnX jNoGw=04e|g00;m8000000Mb*F00000NkvXXu0mjfO`*+K literal 0 HcmV?d00001 diff --git a/Resources/Textures/DeltaV/Objects/Consumable/Drinks/drgibbbloodred.rsi/inhand-left.png b/Resources/Textures/DeltaV/Objects/Consumable/Drinks/drgibbbloodred.rsi/inhand-left.png new file mode 100644 index 0000000000000000000000000000000000000000..aba54f1fbf748e0e5ca3ff1ed611f73fafce0987 GIT binary patch literal 435 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=jKx9jP7LeL$-D%zgFRgwLn`9l z&Qjz%6d>Tjex9?6Ekt(~3$s|Gnyr)bD(OqgCK)VZKEfv3x{SZD{P4G1wa@v`6Mue# znfq#Q&zh_FF@4&P--j7;93HXkVd~_5(7z!3fc69n#`O-5n11L#5dFZV;@7Z?Dff1p z&H4QvzxTNZicJ1oKhbjD&nHcfH(XxD+3ntWebvE_ftNPbPnF(%+3VN_U4gRF_S&t> zo*jGReYZ7x>#^QDGowtHBF-64dEYoon$hI5j?MkU|CucqZcJD%!g!~#fbE}j!z2FI zb*rRUm;+`@>|W2CARKynGh>!;^7pNbIg7F?%^Y%*-t04L@D0&D&$hz1=k9g34V|l= z-elO?x$*Zc2D8AeHqr~s49nuB52&r0md<=d&FtOj9kLV58Vb!7cpD1)75Ecg**4iU zto+V#i9tfXfH@%`Px$Zb?KzRCr$PnlWy|KoCVgJtyD{sobVUq9H9s>c~g1B5H(u1S@q4+N43EPV0&@ z_yqJD!3Abn#Q3lGyIrqm=FJ9H7mS+2!ISIoPb84Z~^oZ)Cgz<3MZfuC|m%2 z1vCO0fx-!xBhYnSsH*CQsqcH#b#3k$i)l)(QN`?+ZFo5~I4@g#o|>pVV?apBGrE}X z-7y@tEBt`>%kc(;&F+Zz?JByi=o{PlBK%zjdH}EU1)9qcU03vtzd-l`=mC5HSl?l3 zG=MQ?+9Rd_cu;1JAp@AZm=O z9go~(fCpvf7&3slJ07{o01wK{F=PO9cRX^F0Unf@VLjZC(Gw@UZIh+}IDgf)@Ijlc40yz|DeO z1E$_#tG<6stxiD-cRhgs000hUSV?A0O#mtY000O800000007cclK=n!07*qoM6N<$ Eg1^7E)Bpeg literal 0 HcmV?d00001 diff --git a/Resources/Textures/DeltaV/Objects/Consumable/Drinks/drgibbbloodred.rsi/meta.json b/Resources/Textures/DeltaV/Objects/Consumable/Drinks/drgibbbloodred.rsi/meta.json new file mode 100644 index 00000000000..27218dea25f --- /dev/null +++ b/Resources/Textures/DeltaV/Objects/Consumable/Drinks/drgibbbloodred.rsi/meta.json @@ -0,0 +1,25 @@ +{ + "version": 1, + "size": { + "x": 32, + "y": 32 + }, + "license": "CC-BY-SA-3.0", + "copyright": "https://github.com/discordia-space/CEV-Eris/raw/9c980cb9bc84d07b1c210c5447798af525185f80/icons/obj/food.dmi, Edit by Yuukitten", + "states": [ + { + "name": "icon" + }, + { + "name": "icon_open" + }, + { + "name": "inhand-right", + "directions": 4 + }, + { + "name": "inhand-left", + "directions": 4 + } + ] + } From b84986e4fb01bc6fae1fc41424ef6034a2b7937f Mon Sep 17 00:00:00 2001 From: Delta-V bot <135767721+DeltaV-Bot@users.noreply.github.com> Date: Wed, 18 Dec 2024 02:13:03 +0100 Subject: [PATCH 13/76] Automatic changelog update --- Resources/Changelog/DeltaVChangelog.yml | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/Resources/Changelog/DeltaVChangelog.yml b/Resources/Changelog/DeltaVChangelog.yml index 8f49f7fea6a..c5ac5676c34 100644 --- a/Resources/Changelog/DeltaVChangelog.yml +++ b/Resources/Changelog/DeltaVChangelog.yml @@ -1,11 +1,4 @@ Entries: -- author: UnicornOnLSD - changes: - - message: pebble minor patch 3 - type: Tweak - id: 284 - time: '2024-03-18T18:35:38.0000000+00:00' - url: https://github.com/DeltaV-Station/Delta-v/pull/977 - author: DangerRevolution and Noctis changes: - message: Added lunchboxes to the chefvend and dinnerwarevend for the Chef to fill @@ -3818,3 +3811,11 @@ id: 783 time: '2024-12-17T18:17:41.0000000+00:00' url: https://github.com/DeltaV-Station/Delta-v/pull/2441 +- author: BlitzTheSquishy & Yuukitten + changes: + - message: Brand new drink from the people that brought you Dr. Gibb, Dr Gibb Blood-Red! + In a Dr. Gibb vendor near you! + type: Add + id: 784 + time: '2024-12-18T01:12:44.0000000+00:00' + url: https://github.com/DeltaV-Station/Delta-v/pull/2250 From 63b9a0516922db9b1482148738643d6dff6c7eab Mon Sep 17 00:00:00 2001 From: Stop-Signs Date: Tue, 17 Dec 2024 19:26:18 -0600 Subject: [PATCH 14/76] Emag for fugi (#2374) * Meow * Meow --- Resources/Locale/en-US/deltav/fugitive/sets.ftl | 6 ++++++ .../Prototypes/DeltaV/Catalog/fugitive_sets.yml | 12 ++++++++++++ .../DeltaV/Entities/Objects/Specific/fugitive.yml | 2 ++ 3 files changed, 20 insertions(+) diff --git a/Resources/Locale/en-US/deltav/fugitive/sets.ftl b/Resources/Locale/en-US/deltav/fugitive/sets.ftl index bc1361dc352..cb4bb4e735f 100644 --- a/Resources/Locale/en-US/deltav/fugitive/sets.ftl +++ b/Resources/Locale/en-US/deltav/fugitive/sets.ftl @@ -22,3 +22,9 @@ fugitive-set-infiltrator-name = infiltrator's kit fugitive-set-infiltrator-description = Use an Agent ID to steal access from others and go anywhere. Your freedom implanter can be used as a plan B if all else fails. + +fugitive-set-disruptor-name = disruptor's kit +fugitive-set-disruptor-description = + Hack the stations various systems and use them to your advantage. + Comes with a cryptographic sequencer and camera bug. + diff --git a/Resources/Prototypes/DeltaV/Catalog/fugitive_sets.yml b/Resources/Prototypes/DeltaV/Catalog/fugitive_sets.yml index 4dc38e493c2..aad6f781bd0 100644 --- a/Resources/Prototypes/DeltaV/Catalog/fugitive_sets.yml +++ b/Resources/Prototypes/DeltaV/Catalog/fugitive_sets.yml @@ -59,3 +59,15 @@ - AgentIDCard - FreedomImplanter - ClothingMaskGasSyndicate + +- type: thiefBackpackSet + id: FugitiveDisruptor + name: fugitive-set-disruptor-name + description: fugitive-set-disruptor-description + sprite: + sprite: Objects/Tools/emag.rsi + state: icon + content: + - Emag + - CameraBug + diff --git a/Resources/Prototypes/DeltaV/Entities/Objects/Specific/fugitive.yml b/Resources/Prototypes/DeltaV/Entities/Objects/Specific/fugitive.yml index 305a9a801d3..7558a322c00 100644 --- a/Resources/Prototypes/DeltaV/Entities/Objects/Specific/fugitive.yml +++ b/Resources/Prototypes/DeltaV/Entities/Objects/Specific/fugitive.yml @@ -13,3 +13,5 @@ - FugitiveGhost - FugitiveLeverage - FugitiveInfiltrator + - FugitiveDisruptor + From 2d96bb3b83b223336ec68d24d27cceb04015f243 Mon Sep 17 00:00:00 2001 From: Delta-V bot <135767721+DeltaV-Bot@users.noreply.github.com> Date: Wed, 18 Dec 2024 02:26:38 +0100 Subject: [PATCH 15/76] Automatic changelog update --- Resources/Changelog/DeltaVChangelog.yml | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/Resources/Changelog/DeltaVChangelog.yml b/Resources/Changelog/DeltaVChangelog.yml index c5ac5676c34..8681734abc6 100644 --- a/Resources/Changelog/DeltaVChangelog.yml +++ b/Resources/Changelog/DeltaVChangelog.yml @@ -1,12 +1,4 @@ Entries: -- author: DangerRevolution and Noctis - changes: - - message: Added lunchboxes to the chefvend and dinnerwarevend for the Chef to fill - or hand out pre-made! - type: Add - id: 285 - time: '2024-03-19T11:39:39.0000000+00:00' - url: https://github.com/DeltaV-Station/Delta-v/pull/980 - author: rosieposieeee changes: - message: Added Corpsman-only access and airlocks. @@ -3819,3 +3811,10 @@ id: 784 time: '2024-12-18T01:12:44.0000000+00:00' url: https://github.com/DeltaV-Station/Delta-v/pull/2250 +- author: Stop-Signs + changes: + - message: A new loadout is available in the fugitives stash + type: Add + id: 785 + time: '2024-12-18T01:26:19.0000000+00:00' + url: https://github.com/DeltaV-Station/Delta-v/pull/2374 From 85a29fbdf4773dd7b266b335a45db94d8dc4ad76 Mon Sep 17 00:00:00 2001 From: deltanedas <39013340+deltanedas@users.noreply.github.com> Date: Wed, 18 Dec 2024 01:27:23 +0000 Subject: [PATCH 16/76] add ash storms to lavaland (#2445) * add SaturationLoss to LungComponent * add code for ash storms * add ash storms to lavaland * add ashwalker mob * :trollface: --------- Co-authored-by: deltanedas <@deltanedas:kde.org> --- .../Body/Components/LungComponent.cs | 7 ++ .../Body/Systems/RespiratorSystem.cs | 10 ++- .../DeltaV/Weather/WeatherEffectsSystem.cs | 82 +++++++++++++++++++ .../Weather/WeatherSchedulerComponent.cs | 58 +++++++++++++ .../DeltaV/Weather/WeatherSchedulerSystem.cs | 75 +++++++++++++++++ .../Components/AshStormImmuneComponent.cs | 9 ++ Content.Shared/Weather/SharedWeatherSystem.cs | 1 + Content.Shared/Weather/WeatherComponent.cs | 12 +++ Content.Shared/Weather/WeatherPrototype.cs | 15 ++++ .../Locale/en-US/deltav/weather/ashstorm.ftl | 3 + .../DeltaV/Body/Organs/ashwalker.yml | 9 ++ .../DeltaV/Body/Prototypes/ashwalker.yml | 50 +++++++++++ .../Entities/Mobs/Species/ashwalker.yml | 11 +++ Resources/Prototypes/DeltaV/planets.yml | 20 +++++ Resources/Prototypes/weather.yml | 6 ++ 15 files changed, 367 insertions(+), 1 deletion(-) create mode 100644 Content.Server/DeltaV/Weather/WeatherEffectsSystem.cs create mode 100644 Content.Server/DeltaV/Weather/WeatherSchedulerComponent.cs create mode 100644 Content.Server/DeltaV/Weather/WeatherSchedulerSystem.cs create mode 100644 Content.Shared/DeltaV/Weather/Components/AshStormImmuneComponent.cs create mode 100644 Resources/Locale/en-US/deltav/weather/ashstorm.ftl create mode 100644 Resources/Prototypes/DeltaV/Body/Organs/ashwalker.yml create mode 100644 Resources/Prototypes/DeltaV/Body/Prototypes/ashwalker.yml create mode 100644 Resources/Prototypes/DeltaV/Entities/Mobs/Species/ashwalker.yml diff --git a/Content.Server/Body/Components/LungComponent.cs b/Content.Server/Body/Components/LungComponent.cs index 72af4d9e63a..256c6d67298 100644 --- a/Content.Server/Body/Components/LungComponent.cs +++ b/Content.Server/Body/Components/LungComponent.cs @@ -34,4 +34,11 @@ public sealed partial class LungComponent : Component /// [DataField] public ProtoId Alert = "LowOxygen"; + + /// + /// DeltaV: Multiplier on saturation passively lost. + /// Higher values require more air, lower require less. + /// + [DataField] + public float SaturationLoss = 1f; } diff --git a/Content.Server/Body/Systems/RespiratorSystem.cs b/Content.Server/Body/Systems/RespiratorSystem.cs index 6209f00419d..b5975326b3e 100644 --- a/Content.Server/Body/Systems/RespiratorSystem.cs +++ b/Content.Server/Body/Systems/RespiratorSystem.cs @@ -74,7 +74,15 @@ public override void Update(float frameTime) if (_mobState.IsDead(uid)) continue; - UpdateSaturation(uid, -(float) respirator.UpdateInterval.TotalSeconds, respirator); + // Begin DeltaV Code: Addition: + var organs = _bodySystem.GetBodyOrganEntityComps((uid, body)); + var multiplier = -1f; + foreach (var (_, lung, _) in organs) + { + multiplier *= lung.SaturationLoss; + } + // End DeltaV Code + UpdateSaturation(uid, multiplier * (float) respirator.UpdateInterval.TotalSeconds, respirator); // DeltaV: use multiplier instead of negating if (!_mobState.IsIncapacitated(uid)) // cannot breathe in crit. { diff --git a/Content.Server/DeltaV/Weather/WeatherEffectsSystem.cs b/Content.Server/DeltaV/Weather/WeatherEffectsSystem.cs new file mode 100644 index 00000000000..11a29e05cc8 --- /dev/null +++ b/Content.Server/DeltaV/Weather/WeatherEffectsSystem.cs @@ -0,0 +1,82 @@ +using Content.Shared.Damage; +using Content.Shared.Mobs; +using Content.Shared.Mobs.Components; +using Content.Shared.Weather; +using Content.Shared.Whitelist; +using Robust.Shared.Map.Components; +using Robust.Shared.Prototypes; +using Robust.Shared.Timing; + +namespace Content.Shared.DeltaV.Weather; + +/// +/// Handles weather damage for exposed entities. +/// +public sealed partial class WeatherEffectsSystem : EntitySystem +{ + [Dependency] private readonly DamageableSystem _damageable = default!; + [Dependency] private readonly EntityWhitelistSystem _whitelist = default!; + [Dependency] private readonly IGameTiming _timing = default!; + [Dependency] private readonly IPrototypeManager _proto = default!; + [Dependency] private readonly SharedMapSystem _map = default!; + [Dependency] private readonly SharedWeatherSystem _weather = default!; + + private EntityQuery _gridQuery; + + public override void Initialize() + { + base.Initialize(); + + _gridQuery = GetEntityQuery(); + } + + public override void Update(float frameTime) + { + base.Update(frameTime); + + var now = _timing.CurTime; + var query = EntityQueryEnumerator(); + while (query.MoveNext(out var map, out var weather)) + { + if (now < weather.NextUpdate) + continue; + + weather.NextUpdate = now + weather.UpdateDelay; + + foreach (var (id, data) in weather.Weather) + { + // start and end do no damage + if (data.State != WeatherState.Running) + continue; + + UpdateDamage(map, id); + } + } + } + + private void UpdateDamage(EntityUid map, ProtoId id) + { + var weather = _proto.Index(id); + if (weather.Damage is not {} damage) + return; + + var query = EntityQueryEnumerator(); + while (query.MoveNext(out var uid, out var mob, out var xform)) + { + // don't give dead bodies 10000 burn, that's not fun for anyone + if (xform.MapUid != map || mob.CurrentState == MobState.Dead) + continue; + + // if not in space, check for being indoors + if (xform.GridUid is {} gridUid && _gridQuery.TryComp(gridUid, out var grid)) + { + var tile = _map.GetTileRef((gridUid, grid), xform.Coordinates); + if (!_weather.CanWeatherAffect(gridUid, grid, tile)) + continue; + } + + if (_whitelist.IsBlacklistFailOrNull(weather.DamageBlacklist, uid)) + _damageable.TryChangeDamage(uid, damage, interruptsDoAfters: false); + } + } +} diff --git a/Content.Server/DeltaV/Weather/WeatherSchedulerComponent.cs b/Content.Server/DeltaV/Weather/WeatherSchedulerComponent.cs new file mode 100644 index 00000000000..ac69c957057 --- /dev/null +++ b/Content.Server/DeltaV/Weather/WeatherSchedulerComponent.cs @@ -0,0 +1,58 @@ +using Content.Shared.Destructible.Thresholds; +using Content.Shared.Weather; +using Robust.Shared.Prototypes; +using Robust.Shared.Serialization; +using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom; + +namespace Content.Server.DeltaV.Weather; + +/// +/// Makes weather randomly happen every so often. +/// +[RegisterComponent, Access(typeof(WeatherSchedulerSystem))] +[AutoGenerateComponentPause] +public sealed partial class WeatherSchedulerComponent : Component +{ + /// + /// Weather stages to schedule. + /// + [DataField(required: true)] + public List Stages = new(); + + /// + /// The index of to use next, wraps back to the start. + /// + [DataField] + public int Stage; + + /// + /// When to go to the next step of the schedule. + /// + [DataField(customTypeSerializer: typeof(TimeOffsetSerializer)), AutoPausedField] + public TimeSpan NextUpdate; +} + +/// +/// A stage in a weather schedule. +/// +[Serializable, DataDefinition] +public partial struct WeatherStage +{ + /// + /// A range of how long the stage can last for, in seconds. + /// + [DataField(required: true)] + public MinMax Duration = new(0, 0); + + /// + /// The weather prototype to add, or null for clear weather. + /// + [DataField] + public ProtoId? Weather; + + /// + /// Alert message to send in chat for players on the map when it starts. + /// + [DataField] + public LocId? Message; +} diff --git a/Content.Server/DeltaV/Weather/WeatherSchedulerSystem.cs b/Content.Server/DeltaV/Weather/WeatherSchedulerSystem.cs new file mode 100644 index 00000000000..a19a2f3787d --- /dev/null +++ b/Content.Server/DeltaV/Weather/WeatherSchedulerSystem.cs @@ -0,0 +1,75 @@ +using Content.Server.Chat.Managers; +using Content.Shared.Chat; +using Content.Shared.Weather; +using Robust.Shared.Map.Components; +using Robust.Shared.Player; +using Robust.Shared.Prototypes; +using Robust.Shared.Random; +using Robust.Shared.Timing; + +namespace Content.Server.DeltaV.Weather; + +public sealed class WeatherSchedulerSystem : EntitySystem +{ + [Dependency] private readonly IChatManager _chat = default!; + [Dependency] private readonly IGameTiming _timing = default!; + [Dependency] private readonly IPrototypeManager _proto = default!; + [Dependency] private readonly IRobustRandom _random = default!; + [Dependency] private readonly SharedWeatherSystem _weather = default!; + + public override void Update(float frameTime) + { + base.Update(frameTime); + + var now = _timing.CurTime; + var query = EntityQueryEnumerator(); + while (query.MoveNext(out var map, out var comp)) + { + if (now < comp.NextUpdate) + continue; + + if (comp.Stage >= comp.Stages.Count) + comp.Stage = 0; + + var stage = comp.Stages[comp.Stage++]; + var duration = stage.Duration.Next(_random); + comp.NextUpdate = now + TimeSpan.FromSeconds(duration); + + var mapId = Comp(map).MapId; + if (stage.Weather is {} weather) + { + var ending = comp.NextUpdate; + // crossfade weather so as one ends the next starts + if (HasWeather(comp, comp.Stage - 1)) + ending += WeatherComponent.ShutdownTime; + if (HasWeather(comp, comp.Stage + 1)) + ending += WeatherComponent.StartupTime; + _weather.SetWeather(mapId, _proto.Index(weather), ending); + } + + if (stage.Message is {} message) + { + var msg = Loc.GetString(message); + _chat.ChatMessageToManyFiltered( + Filter.BroadcastMap(mapId), + ChatChannel.Radio, + msg, + msg, + map, + false, + true, + null); + } + } + } + + private bool HasWeather(WeatherSchedulerComponent comp, int stage) + { + if (stage < 0) + stage = comp.Stages.Count + stage; + else if (stage >= comp.Stages.Count) + stage %= comp.Stages.Count; + + return comp.Stages[stage].Weather != null; + } +} diff --git a/Content.Shared/DeltaV/Weather/Components/AshStormImmuneComponent.cs b/Content.Shared/DeltaV/Weather/Components/AshStormImmuneComponent.cs new file mode 100644 index 00000000000..ec2c272695b --- /dev/null +++ b/Content.Shared/DeltaV/Weather/Components/AshStormImmuneComponent.cs @@ -0,0 +1,9 @@ +using Robust.Shared.GameStates; + +namespace Content.Shared.DeltaV.Weather.Components; + +/// +/// Makes an entity not take damage from ash storms. +/// +[RegisterComponent, NetworkedComponent] +public sealed partial class AshStormImmuneComponent : Component; diff --git a/Content.Shared/Weather/SharedWeatherSystem.cs b/Content.Shared/Weather/SharedWeatherSystem.cs index acd43055388..95c089fa10e 100644 --- a/Content.Shared/Weather/SharedWeatherSystem.cs +++ b/Content.Shared/Weather/SharedWeatherSystem.cs @@ -36,6 +36,7 @@ private void OnWeatherUnpaused(EntityUid uid, WeatherComponent component, ref En if (weather.EndTime != null) weather.EndTime = weather.EndTime.Value + args.PausedTime; } + component.NextUpdate += args.PausedTime; // DeltaV } public bool CanWeatherAffect(EntityUid uid, MapGridComponent grid, TileRef tileRef) diff --git a/Content.Shared/Weather/WeatherComponent.cs b/Content.Shared/Weather/WeatherComponent.cs index eaf901fb424..e16fe978fa6 100644 --- a/Content.Shared/Weather/WeatherComponent.cs +++ b/Content.Shared/Weather/WeatherComponent.cs @@ -14,6 +14,18 @@ public sealed partial class WeatherComponent : Component [DataField] public Dictionary, WeatherData> Weather = new(); + /// + /// DeltaV: How long to wait between updating weather effects. + /// + [DataField] + public TimeSpan UpdateDelay = TimeSpan.FromSeconds(1); + + /// + /// DeltaV: When to next update weather effects (damage). + /// + [DataField(customTypeSerializer: typeof(TimeOffsetSerializer))] + public TimeSpan NextUpdate = TimeSpan.Zero; + public static readonly TimeSpan StartupTime = TimeSpan.FromSeconds(15); public static readonly TimeSpan ShutdownTime = TimeSpan.FromSeconds(15); } diff --git a/Content.Shared/Weather/WeatherPrototype.cs b/Content.Shared/Weather/WeatherPrototype.cs index 3803c37d4ce..af585d8d7c4 100644 --- a/Content.Shared/Weather/WeatherPrototype.cs +++ b/Content.Shared/Weather/WeatherPrototype.cs @@ -1,3 +1,5 @@ +using Content.Shared.Damage; +using Content.Shared.Whitelist; using Robust.Shared.Audio; using Robust.Shared.Prototypes; using Robust.Shared.Utility; @@ -20,4 +22,17 @@ public sealed partial class WeatherPrototype : IPrototype /// [ViewVariables(VVAccess.ReadWrite), DataField("sound")] public SoundSpecifier? Sound; + + /// + /// DeltaV: Damage you can take from being in this weather. + /// Only applies when weather has fully set in. + /// + [DataField] + public DamageSpecifier? Damage; + + /// + /// DeltaV: Don't damage entities that match this blacklist. + /// + [DataField] + public EntityWhitelist? DamageBlacklist; } diff --git a/Resources/Locale/en-US/deltav/weather/ashstorm.ftl b/Resources/Locale/en-US/deltav/weather/ashstorm.ftl new file mode 100644 index 00000000000..49778522502 --- /dev/null +++ b/Resources/Locale/en-US/deltav/weather/ashstorm.ftl @@ -0,0 +1,3 @@ +ash-storm-telegraph = [color=red][bold]An eerie moan rises on the wind. Sheets of burning ash blacken the horizon. Seek shelter.[/bold][/color] +ash-storm-alert = [color=red][bolditalic]Smoldering clouds of scorching ash billow down around you! Get inside![/bolditalic][/color] +ash-storm-clearing = [color=red]The shrieking wind whips away the last of the ash and falls to its usual murmur. It should be safe to go outside now.[/color] diff --git a/Resources/Prototypes/DeltaV/Body/Organs/ashwalker.yml b/Resources/Prototypes/DeltaV/Body/Organs/ashwalker.yml new file mode 100644 index 00000000000..c0388ffd0ee --- /dev/null +++ b/Resources/Prototypes/DeltaV/Body/Organs/ashwalker.yml @@ -0,0 +1,9 @@ +- type: entity + parent: OrganAnimalLungs + id: OrganAshWalkerLungs + name: ashwalker lungs + description: These lungs are adapted from isolation in lavaland, capable of withstanding the low oxygen content and ash storms. + components: + - type: Lung + saturationLoss: 0.5 + # TODO SHITMED: add AshStormImmune when transplanted diff --git a/Resources/Prototypes/DeltaV/Body/Prototypes/ashwalker.yml b/Resources/Prototypes/DeltaV/Body/Prototypes/ashwalker.yml new file mode 100644 index 00000000000..59c55e89f4e --- /dev/null +++ b/Resources/Prototypes/DeltaV/Body/Prototypes/ashwalker.yml @@ -0,0 +1,50 @@ +# TODO: will need updating with shitmed +- type: body + name: ashwalker + id: AshWalker + root: torso + slots: + head: + part: HeadReptilian + connections: + - torso + organs: + brain: OrganHumanBrain + eyes: OrganHumanEyes + torso: + part: TorsoReptilian + organs: + heart: OrganAnimalHeart + lungs: OrganAshWalkerLungs + stomach: OrganReptilianStomach + liver: OrganAnimalLiver + kidneys: OrganHumanKidneys + connections: + - right arm + - left arm + - right leg + - left leg + right arm: + part: RightArmReptilian + connections: + - right hand + left arm: + part: LeftArmReptilian + connections: + - left hand + right hand: + part: RightHandReptilian + left hand: + part: LeftHandReptilian + right leg: + part: RightLegReptilian + connections: + - right foot + left leg: + part: LeftLegReptilian + connections: + - left foot + right foot: + part: RightFootReptilian + left foot: + part: LeftFootReptilian diff --git a/Resources/Prototypes/DeltaV/Entities/Mobs/Species/ashwalker.yml b/Resources/Prototypes/DeltaV/Entities/Mobs/Species/ashwalker.yml new file mode 100644 index 00000000000..4a397caaa37 --- /dev/null +++ b/Resources/Prototypes/DeltaV/Entities/Mobs/Species/ashwalker.yml @@ -0,0 +1,11 @@ +- type: entity + save: false + parent: MobReptilian + id: MobAshWalker + name: Urist McAsh + suffix: "" + components: + - type: Body + prototype: AshWalker + - type: AshStormImmune + # TODO: shitmed stuff so you can steal ashwalker lungs diff --git a/Resources/Prototypes/DeltaV/planets.yml b/Resources/Prototypes/DeltaV/planets.yml index 77fbf10453f..7229f5a7917 100644 --- a/Resources/Prototypes/DeltaV/planets.yml +++ b/Resources/Prototypes/DeltaV/planets.yml @@ -8,6 +8,26 @@ whitelist: components: - MiningShuttle + - type: WeatherScheduler # Regular ash storms + stages: + - duration: # 5-10 minutes of calm + min: 300 + max: 600 + - weather: AshfallLight # ash starts to fall, 30 second warning + message: ash-storm-telegraph + duration: + min: 30 + max: 30 + - weather: Ashfall # 1-2 minutes of damaging storm + message: ash-storm-alert + duration: + min: 60 + max: 120 + - weather: AshfallLight # ash clears away for 30 seconds + message: ash-storm-clearing + duration: + min: 30 + max: 30 atmosphere: volume: 2500 temperature: 353.15 # 80C diff --git a/Resources/Prototypes/weather.yml b/Resources/Prototypes/weather.yml index a71e59354af..896df8641a1 100644 --- a/Resources/Prototypes/weather.yml +++ b/Resources/Prototypes/weather.yml @@ -8,6 +8,12 @@ params: loop: true volume: -6 + damage: # DeltaV + types: + Heat: 4 + damageBlacklist: # DeltaV + components: + - AshStormImmune - type: weather id: AshfallLight From 56254283fb898d0c34fd4801d38553d16586c558 Mon Sep 17 00:00:00 2001 From: Delta-V bot <135767721+DeltaV-Bot@users.noreply.github.com> Date: Wed, 18 Dec 2024 02:27:42 +0100 Subject: [PATCH 17/76] Automatic changelog update --- Resources/Changelog/DeltaVChangelog.yml | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/Resources/Changelog/DeltaVChangelog.yml b/Resources/Changelog/DeltaVChangelog.yml index 8681734abc6..cb74d1712e1 100644 --- a/Resources/Changelog/DeltaVChangelog.yml +++ b/Resources/Changelog/DeltaVChangelog.yml @@ -1,11 +1,4 @@ Entries: -- author: rosieposieeee - changes: - - message: Added Corpsman-only access and airlocks. - type: Add - id: 286 - time: '2024-03-19T12:13:13.0000000+00:00' - url: https://github.com/DeltaV-Station/Delta-v/pull/892 - author: rosieposieeee changes: - message: Submarine has received another batch of design tweaks and revisions. @@ -3818,3 +3811,11 @@ id: 785 time: '2024-12-18T01:26:19.0000000+00:00' url: https://github.com/DeltaV-Station/Delta-v/pull/2374 +- author: deltanedas + changes: + - message: Ash storms can now happen on lavaland, run for shelter if you get caught + in one! + type: Add + id: 786 + time: '2024-12-18T01:27:23.0000000+00:00' + url: https://github.com/DeltaV-Station/Delta-v/pull/2445 From 6fd816ce9cacb7e71f5bc0a8807c108631cd7cbd Mon Sep 17 00:00:00 2001 From: Radezolid Date: Tue, 17 Dec 2024 22:29:09 -0300 Subject: [PATCH 18/76] Remove justice lockers from upstream files and add DeltaV base lockers. (#2460) * Remove from upstream files * Create base lockers --- .../Storage/Closets/Lockers/lockers.yml | 23 ++++++++++++------ .../Structures/Storage/closet.rsi/cj.png | Bin .../Structures/Storage/closet.rsi/cj_door.png | Bin .../Structures/Storage/closet.rsi/cj_open.png | Bin .../Structures/Storage/closet.rsi/clerk.png | Bin .../Storage/closet.rsi/clerk_door.png | Bin .../Storage/closet.rsi/clerk_open.png | Bin .../Structures/Storage/closet.rsi/meta.json | 20 ++++++++++++++- .../Structures/Storage/closet.rsi/meta.json | 20 +-------------- 9 files changed, 36 insertions(+), 27 deletions(-) rename Resources/Textures/{ => DeltaV}/Structures/Storage/closet.rsi/cj.png (100%) rename Resources/Textures/{ => DeltaV}/Structures/Storage/closet.rsi/cj_door.png (100%) rename Resources/Textures/{ => DeltaV}/Structures/Storage/closet.rsi/cj_open.png (100%) rename Resources/Textures/{ => DeltaV}/Structures/Storage/closet.rsi/clerk.png (100%) rename Resources/Textures/{ => DeltaV}/Structures/Storage/closet.rsi/clerk_door.png (100%) rename Resources/Textures/{ => DeltaV}/Structures/Storage/closet.rsi/clerk_open.png (100%) diff --git a/Resources/Prototypes/DeltaV/Entities/Structures/Storage/Closets/Lockers/lockers.yml b/Resources/Prototypes/DeltaV/Entities/Structures/Storage/Closets/Lockers/lockers.yml index d442b0cf3f5..bb388fe66d4 100644 --- a/Resources/Prototypes/DeltaV/Entities/Structures/Storage/Closets/Lockers/lockers.yml +++ b/Resources/Prototypes/DeltaV/Entities/Structures/Storage/Closets/Lockers/lockers.yml @@ -1,19 +1,30 @@ +- type: entity + parent: LockerBase + id: LockerBaseDeltaV + components: + - type: Sprite + sprite: DeltaV/Structures/Storage/closet.rsi + +- type: entity + parent: [ LockerBaseDeltaV, LockerBaseSecure ] + id: LockerBaseSecureDeltaV + - type: entity id: LockerChiefJustice - parent: LockerBaseSecure + parent: LockerBaseSecureDeltaV name: chief justice's locker components: - type: Appearance - type: EntityStorageVisuals - stateBaseClosed: cj + stateBaseClosed: cj stateDoorOpen: cj_open stateDoorClosed: cj_door - type: AccessReader access: [["ChiefJustice"]] - + - type: entity id: LockerClerk - parent: LockerBaseSecure + parent: LockerBaseSecureDeltaV name: clerk's locker components: - type: Appearance @@ -25,12 +36,10 @@ access: [["Clerk"]] - type: entity - parent: LockerBaseSecure + parent: LockerBaseSecureDeltaV id: LockerPsychologist name: psychologist's locker components: - - type: Sprite - sprite: DeltaV/Structures/Storage/closet.rsi - type: EntityStorageVisuals stateBaseClosed: psych stateDoorOpen: psych_open diff --git a/Resources/Textures/Structures/Storage/closet.rsi/cj.png b/Resources/Textures/DeltaV/Structures/Storage/closet.rsi/cj.png similarity index 100% rename from Resources/Textures/Structures/Storage/closet.rsi/cj.png rename to Resources/Textures/DeltaV/Structures/Storage/closet.rsi/cj.png diff --git a/Resources/Textures/Structures/Storage/closet.rsi/cj_door.png b/Resources/Textures/DeltaV/Structures/Storage/closet.rsi/cj_door.png similarity index 100% rename from Resources/Textures/Structures/Storage/closet.rsi/cj_door.png rename to Resources/Textures/DeltaV/Structures/Storage/closet.rsi/cj_door.png diff --git a/Resources/Textures/Structures/Storage/closet.rsi/cj_open.png b/Resources/Textures/DeltaV/Structures/Storage/closet.rsi/cj_open.png similarity index 100% rename from Resources/Textures/Structures/Storage/closet.rsi/cj_open.png rename to Resources/Textures/DeltaV/Structures/Storage/closet.rsi/cj_open.png diff --git a/Resources/Textures/Structures/Storage/closet.rsi/clerk.png b/Resources/Textures/DeltaV/Structures/Storage/closet.rsi/clerk.png similarity index 100% rename from Resources/Textures/Structures/Storage/closet.rsi/clerk.png rename to Resources/Textures/DeltaV/Structures/Storage/closet.rsi/clerk.png diff --git a/Resources/Textures/Structures/Storage/closet.rsi/clerk_door.png b/Resources/Textures/DeltaV/Structures/Storage/closet.rsi/clerk_door.png similarity index 100% rename from Resources/Textures/Structures/Storage/closet.rsi/clerk_door.png rename to Resources/Textures/DeltaV/Structures/Storage/closet.rsi/clerk_door.png diff --git a/Resources/Textures/Structures/Storage/closet.rsi/clerk_open.png b/Resources/Textures/DeltaV/Structures/Storage/closet.rsi/clerk_open.png similarity index 100% rename from Resources/Textures/Structures/Storage/closet.rsi/clerk_open.png rename to Resources/Textures/DeltaV/Structures/Storage/closet.rsi/clerk_open.png diff --git a/Resources/Textures/DeltaV/Structures/Storage/closet.rsi/meta.json b/Resources/Textures/DeltaV/Structures/Storage/closet.rsi/meta.json index 3f969bf17f7..98a03e8e481 100644 --- a/Resources/Textures/DeltaV/Structures/Storage/closet.rsi/meta.json +++ b/Resources/Textures/DeltaV/Structures/Storage/closet.rsi/meta.json @@ -4,7 +4,7 @@ "x": 32, "y": 32 }, - "copyright": "Taken from tgstation, added psych locker based on medical locker by Radezolid", + "copyright": "Taken from tgstation, added psych locker based on medical locker by Radezolid, CJ and Clerk lockers edited by Timemaster99 (Discord)", "license": "CC-BY-SA-3.0", "states": [ { @@ -36,6 +36,24 @@ }, { "name": "generic_icon" + }, + { + "name": "cj" + }, + { + "name": "cj_door" + }, + { + "name": "cj_open" + }, + { + "name": "clerk" + }, + { + "name": "clerk_door" + }, + { + "name": "clerk_open" } ] } diff --git a/Resources/Textures/Structures/Storage/closet.rsi/meta.json b/Resources/Textures/Structures/Storage/closet.rsi/meta.json index d26d0c6545d..5600268fde3 100644 --- a/Resources/Textures/Structures/Storage/closet.rsi/meta.json +++ b/Resources/Textures/Structures/Storage/closet.rsi/meta.json @@ -4,7 +4,7 @@ "x": 32, "y": 32 }, - "copyright": "Taken from tgstation, brigmedic locker is a resprited CMO locker by PuroSlavKing (Github), n2 sprites based on fire and emergency sprites | CJ and Clerk lockers edited by Timemaster99 (Discord)", + "copyright": "Taken from tgstation, brigmedic locker is a resprited CMO locker by PuroSlavKing (Github), n2 sprites based on fire and emergency sprites", "license": "CC-BY-SA-3.0", "states": [ { @@ -163,24 +163,6 @@ { "name": "chemical_door" }, - { - "name": "cj" - }, - { - "name": "cj_door" - }, - { - "name": "cj_open" - }, - { - "name": "clerk" - }, - { - "name": "clerk_door" - }, - { - "name": "clerk_open" - }, { "name": "cmo" }, From 6b8375402aaaba2ed836492e49c42691bb54d759 Mon Sep 17 00:00:00 2001 From: Unkn0wn_Gh0st Date: Tue, 17 Dec 2024 19:30:21 -0600 Subject: [PATCH 19/76] Frontier Port: Pretty Money (#2398) * Frontier Port: Pretty Money * Update Resources/Prototypes/Entities/Objects/Misc/space_cash.yml Co-authored-by: Whatstone <166147148+whatston3@users.noreply.github.com> Signed-off-by: Unkn0wn_Gh0st * Updated 100k texture --------- Signed-off-by: Unkn0wn_Gh0st Co-authored-by: Whatstone <166147148+whatston3@users.noreply.github.com> --- Content.Client/Stack/StackSystem.cs | 23 +-- .../_NF/Stack/StackSystem.Layers.cs | 56 ++++++++ .../Properties/launchSettings.json | 8 ++ Content.Shared/Stacks/StackComponent.cs | 10 +- .../StackLayerThresholdComponent.cs | 13 ++ .../_NF/Stacks/StackLayerFunction.cs | 7 + .../Entities/Objects/Misc/space_cash.yml | 47 +++--- .../_NF/Entities/Objects/Misc/space_cash.yml | 21 +++ .../_NF/Objects/Economy/cash.rsi/cash.png | Bin 0 -> 286 bytes .../_NF/Objects/Economy/cash.rsi/cash_10.png | Bin 0 -> 292 bytes .../_NF/Objects/Economy/cash.rsi/cash_100.png | Bin 0 -> 291 bytes .../Objects/Economy/cash.rsi/cash_1000.png | Bin 0 -> 290 bytes .../Objects/Economy/cash.rsi/cash_10000.png | Bin 0 -> 695 bytes .../Objects/Economy/cash.rsi/cash_100000.png | Bin 0 -> 797 bytes .../Objects/Economy/cash.rsi/cash_25000.png | Bin 0 -> 681 bytes .../Objects/Economy/cash.rsi/cash_250000.png | Bin 0 -> 1145 bytes .../_NF/Objects/Economy/cash.rsi/cash_500.png | Bin 0 -> 299 bytes .../Objects/Economy/cash.rsi/cash_5000.png | Bin 0 -> 231 bytes .../Objects/Economy/cash.rsi/cash_50000.png | Bin 0 -> 701 bytes .../_NF/Objects/Economy/cash.rsi/meta.json | 136 ++++++++++++++++++ 20 files changed, 292 insertions(+), 29 deletions(-) create mode 100644 Content.Client/_NF/Stack/StackSystem.Layers.cs create mode 100644 Content.Packaging/Properties/launchSettings.json create mode 100644 Content.Shared/_NF/Stacks/Components/StackLayerThresholdComponent.cs create mode 100644 Content.Shared/_NF/Stacks/StackLayerFunction.cs create mode 100644 Resources/Prototypes/_NF/Entities/Objects/Misc/space_cash.yml create mode 100644 Resources/Textures/_NF/Objects/Economy/cash.rsi/cash.png create mode 100644 Resources/Textures/_NF/Objects/Economy/cash.rsi/cash_10.png create mode 100644 Resources/Textures/_NF/Objects/Economy/cash.rsi/cash_100.png create mode 100644 Resources/Textures/_NF/Objects/Economy/cash.rsi/cash_1000.png create mode 100644 Resources/Textures/_NF/Objects/Economy/cash.rsi/cash_10000.png create mode 100644 Resources/Textures/_NF/Objects/Economy/cash.rsi/cash_100000.png create mode 100644 Resources/Textures/_NF/Objects/Economy/cash.rsi/cash_25000.png create mode 100644 Resources/Textures/_NF/Objects/Economy/cash.rsi/cash_250000.png create mode 100644 Resources/Textures/_NF/Objects/Economy/cash.rsi/cash_500.png create mode 100644 Resources/Textures/_NF/Objects/Economy/cash.rsi/cash_5000.png create mode 100644 Resources/Textures/_NF/Objects/Economy/cash.rsi/cash_50000.png create mode 100644 Resources/Textures/_NF/Objects/Economy/cash.rsi/meta.json diff --git a/Content.Client/Stack/StackSystem.cs b/Content.Client/Stack/StackSystem.cs index 7e681aeba3e..f57f4d4e170 100644 --- a/Content.Client/Stack/StackSystem.cs +++ b/Content.Client/Stack/StackSystem.cs @@ -8,7 +8,7 @@ namespace Content.Client.Stack { [UsedImplicitly] - public sealed class StackSystem : SharedStackSystem + public sealed partial class StackSystem : SharedStackSystem // Frontier: add partial to class definition { [Dependency] private readonly AppearanceSystem _appearanceSystem = default!; [Dependency] private readonly ItemCounterSystem _counterSystem = default!; @@ -44,7 +44,7 @@ public override void SetCount(EntityUid uid, int amount, StackComponent? compone // TODO PREDICT ENTITY DELETION: This should really just be a normal entity deletion call. if (component.Count <= 0 && !component.Lingering) { - Xform.DetachEntity(uid, Transform(uid)); + Xform.DetachParentToNull(uid, Transform(uid)); return; } @@ -56,20 +56,25 @@ private void OnAppearanceChange(EntityUid uid, StackComponent comp, ref Appearan if (args.Sprite == null || comp.LayerStates.Count < 1) return; + StackLayerData data = new StackLayerData(); // Frontier: use structure to store StackLayerData + // Skip processing if no actual - if (!_appearanceSystem.TryGetData(uid, StackVisuals.Actual, out var actual, args.Component)) + if (!_appearanceSystem.TryGetData(uid, StackVisuals.Actual, out data.Actual, args.Component)) return; - if (!_appearanceSystem.TryGetData(uid, StackVisuals.MaxCount, out var maxCount, args.Component)) - maxCount = comp.LayerStates.Count; + if (!_appearanceSystem.TryGetData(uid, StackVisuals.MaxCount, out data.MaxCount, args.Component)) + data.MaxCount = comp.LayerStates.Count; + + if (!_appearanceSystem.TryGetData(uid, StackVisuals.Hide, out data.Hidden, args.Component)) + data.Hidden = false; - if (!_appearanceSystem.TryGetData(uid, StackVisuals.Hide, out var hidden, args.Component)) - hidden = false; + if (comp.LayerFunction != StackLayerFunction.None) // Frontier: use stack layer function to modify appearance if provided. + ApplyLayerFunction(uid, comp, ref data); // Frontier: definition in _NF/Stack/StackSystem.Layers.cs if (comp.IsComposite) - _counterSystem.ProcessCompositeSprite(uid, actual, maxCount, comp.LayerStates, hidden, sprite: args.Sprite); + _counterSystem.ProcessCompositeSprite(uid, data.Actual, data.MaxCount, comp.LayerStates, data.Hidden, sprite: args.Sprite); else - _counterSystem.ProcessOpaqueSprite(uid, comp.BaseLayer, actual, maxCount, comp.LayerStates, hidden, sprite: args.Sprite); + _counterSystem.ProcessOpaqueSprite(uid, comp.BaseLayer, data.Actual, data.MaxCount, comp.LayerStates, data.Hidden, sprite: args.Sprite); } } } diff --git a/Content.Client/_NF/Stack/StackSystem.Layers.cs b/Content.Client/_NF/Stack/StackSystem.Layers.cs new file mode 100644 index 00000000000..2893d32d3f5 --- /dev/null +++ b/Content.Client/_NF/Stack/StackSystem.Layers.cs @@ -0,0 +1,56 @@ +using Content.Shared.Stacks.Components; +using Content.Shared.Stacks; + +namespace Content.Client.Stack +{ + /// + /// Data used to determine which layers of a stack's sprite are visible. + /// + public struct StackLayerData + { + public int Actual; + public int MaxCount; + public bool Hidden; + } + + public sealed partial class StackSystem : SharedStackSystem + { + // Modifies a given stack component to adjust the layers to display. + private bool ApplyLayerFunction(EntityUid uid, StackComponent comp, ref StackLayerData data) + { + switch (comp.LayerFunction) + { + case StackLayerFunction.Threshold: + if (TryComp(uid, out var threshold)) + { + ApplyThreshold(threshold, ref data); + return true; + } + break; + } + // No function applied. + return false; + } + + /// + /// Sets Actual to the number of thresholds that Actual exceeds from the beginning of the list. + /// Sets MaxCount to the total number of thresholds plus one (for values under thresholds). + /// + private static void ApplyThreshold(StackLayerThresholdComponent comp, ref StackLayerData data) + { + // We must stop before we run out of thresholds or layers, whichever's smaller. + data.MaxCount = Math.Min(comp.Thresholds.Count + 1, data.MaxCount); + int newActual = 0; + foreach (var threshold in comp.Thresholds) + { + //If our value exceeds threshold, the next layer should be displayed. + //Note: we must ensure actual <= MaxCount. + if (data.Actual >= threshold && newActual < data.MaxCount) + newActual++; + else + break; + } + data.Actual = newActual; + } + } +} diff --git a/Content.Packaging/Properties/launchSettings.json b/Content.Packaging/Properties/launchSettings.json new file mode 100644 index 00000000000..33504c948ad --- /dev/null +++ b/Content.Packaging/Properties/launchSettings.json @@ -0,0 +1,8 @@ +{ + "profiles": { + "WSL": { + "commandName": "WSL2", + "distributionName": "" + } + } +} \ No newline at end of file diff --git a/Content.Shared/Stacks/StackComponent.cs b/Content.Shared/Stacks/StackComponent.cs index 7137f8c0c22..b18f9b0d051 100644 --- a/Content.Shared/Stacks/StackComponent.cs +++ b/Content.Shared/Stacks/StackComponent.cs @@ -24,7 +24,7 @@ public sealed partial class StackComponent : Component /// [ViewVariables(VVAccess.ReadOnly)] [DataField("maxCountOverride")] - public int? MaxCountOverride { get; set; } + public int? MaxCountOverride { get; set; } /// /// Set to true to not reduce the count when used. @@ -78,6 +78,14 @@ public sealed partial class StackComponent : Component [DataField("layerStates")] [ViewVariables(VVAccess.ReadWrite)] public List LayerStates = new(); + + // Frontier: transforming Amount, MaxCount in speso stacks + /// + /// An optional function to adjust the layers used for a stack's appearance. + /// + [DataField] + public StackLayerFunction LayerFunction = StackLayerFunction.None; + // End Frontier } [Serializable, NetSerializable] diff --git a/Content.Shared/_NF/Stacks/Components/StackLayerThresholdComponent.cs b/Content.Shared/_NF/Stacks/Components/StackLayerThresholdComponent.cs new file mode 100644 index 00000000000..98d3bb0e61f --- /dev/null +++ b/Content.Shared/_NF/Stacks/Components/StackLayerThresholdComponent.cs @@ -0,0 +1,13 @@ +namespace Content.Shared.Stacks.Components; + +[RegisterComponent] +public sealed partial class StackLayerThresholdComponent : Component +{ + /// + /// A list of thresholds to check against the number of things in the stack. + /// Each exceeded threshold will cause the next layer to be displayed. + /// Should be sorted in ascending order. + /// + [DataField(required: true)] + public List Thresholds = new List(); +} diff --git a/Content.Shared/_NF/Stacks/StackLayerFunction.cs b/Content.Shared/_NF/Stacks/StackLayerFunction.cs new file mode 100644 index 00000000000..c655f3f76c2 --- /dev/null +++ b/Content.Shared/_NF/Stacks/StackLayerFunction.cs @@ -0,0 +1,7 @@ +namespace Content.Shared.Stacks; + +public enum StackLayerFunction +{ + None, + Threshold +} diff --git a/Resources/Prototypes/Entities/Objects/Misc/space_cash.yml b/Resources/Prototypes/Entities/Objects/Misc/space_cash.yml index 57dfb400984..5321a20fa72 100644 --- a/Resources/Prototypes/Entities/Objects/Misc/space_cash.yml +++ b/Resources/Prototypes/Entities/Objects/Misc/space_cash.yml @@ -25,9 +25,17 @@ - cash_100 - cash_500 - cash_1000 - - cash_1000000 + - cash_5000 # Frontier: larger denominations + - cash_10000 # Frontier: larger denominations + - cash_25000 # Frontier: larger denominations + - cash_50000 # Frontier: larger denominations + - cash_100000 # Frontier: larger denominations + - cash_250000 # Frontier: larger denominations (cash_1000000czH&sY$$Bay^!}nd$O=`|>(|$0ExHJsFL432|L|G7_`SXB)g0c38`9@lN@^$+OiU PXEJ!Y`njxgN@xNAi{)a9 literal 0 HcmV?d00001 diff --git a/Resources/Textures/_NF/Objects/Economy/cash.rsi/cash_10.png b/Resources/Textures/_NF/Objects/Economy/cash.rsi/cash_10.png new file mode 100644 index 0000000000000000000000000000000000000000..05c477501682b5b2bd84e241465690655a617e43 GIT binary patch literal 292 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE3?yBabR7dyjKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCijS1AIbU6KpwIEL{2A6L*%1J2g&J&8a)LPhju#^2?_cnN{_Gsy-#{*bbz) zOM?7@|HA=;mp|htpfG2FM`SSr1K(i~W;~w1A_XW|>gnPbV&VU`{~+IC0}f~It%@iA z*B9(&E%FF^8@2N5QLeg(l~WJCY} literal 0 HcmV?d00001 diff --git a/Resources/Textures/_NF/Objects/Economy/cash.rsi/cash_1000.png b/Resources/Textures/_NF/Objects/Economy/cash.rsi/cash_1000.png new file mode 100644 index 0000000000000000000000000000000000000000..6a5688cd866d413a9e40239c01388bd43c060164 GIT binary patch literal 290 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE3?yBabR7dyjKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCijS1AIbU6KpwMnVDmln0A(mck61G$jhJGC$M*V`Q_7!>g+5)RcDU6_W&vG zk|4j}|8T(I<8F~A3d{^HCE!x^RG$Igq<|mWA`h6 UX5A}07ic|$r>mdKI;Vst04zjh5&!@I literal 0 HcmV?d00001 diff --git a/Resources/Textures/_NF/Objects/Economy/cash.rsi/cash_10000.png b/Resources/Textures/_NF/Objects/Economy/cash.rsi/cash_10000.png new file mode 100644 index 0000000000000000000000000000000000000000..3400ef8a0a2e3fd72274d9947b709e01455e9f31 GIT binary patch literal 695 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H3?#oinD`S&DF*n2xF*}%WQZeW4?B1dl z1)dgvea5Qy{|}h{5NAnRo>6FZ+9x`fPsI=K z==ok{pmzCP_j-mS=d9&4EN~#em%~l%Jj`}h#ccZiHJss_kB>5YWNey@ zSU};luPdeGAO8xovz)qK+aa4(%X-05rjvYLKaGx`5VxBi+VE)GGubIx8;)v=Uii6` zYsH@;)<4^tS4P}Rx4!e}GXML}*$L;T=Y0CQBjxuSsTXzPYaZ{FUCMn&ES_QCwU4*@ zCb7Qjwts4$xStW?S}1ArbmflyMnS*!ugaSnw0)Vq!?JpTt7{+f_Z0r!wXgrx%@6E% z*35rfv+WOK^McY$8^MB#v{`u)wC2Lu2{5pqM@)G|XmNK#bKlp)t(XR9B8;{5* z9JZgqck&B=&7a}}@(uPMF1OrfN3rw6l;w~9o$`47-(_!FVP*N9SNt6}m(?G*Wv}st z-{t>-FYHSWAAH3x@Hg&!|6jqIx4(PcKQ0^fYkwHyt+I@7;sK8iJo$GZhHuoFU%5kHtlI1!w0!8}x)9fx@Uq&x_W5b;1z)RIGI`b?loh@3>+Zjr z1AjQ1S2OOq&)WNIzvP0@|K`jg=g&Wj=lk#+lmZ>f8}irrxrgO0?rQ~k*wfX|Wt~$( F69CToKhFRF literal 0 HcmV?d00001 diff --git a/Resources/Textures/_NF/Objects/Economy/cash.rsi/cash_100000.png b/Resources/Textures/_NF/Objects/Economy/cash.rsi/cash_100000.png new file mode 100644 index 0000000000000000000000000000000000000000..707382f69b63b9987106ce907fbf69410b3097e4 GIT binary patch literal 797 zcmeAS@N?(olHy`uVBq!ia0vp^4M4nrgBeJE_L*`XNGS&Rgt!9fNizC7l&yD`ia!p@ zy4<04ZlAzCtBA{|6(a;?fU@1K=e&RvcS(?6@P9a9@bYK;#K6F`z|+Msq+-t7Io$cp z20Sg&uWWAp|KHrs*=oaY)#z|Fb=Hw*7Jnagt}8G7RS|C^$D+W%$l<`iBx1kc?3ujW ze8w{d{m-8#ome(k{69lSY1p2L3ThRc2gSM9d{nUOxqo-Z#T=1xzdbvI4!qV+{oojW z{kVph$D=sTrPA^yw|D2=dD%L76_ee{20N#n%=^O_Uzx4i9ToI{r z$}g-sAoM;&;cR|rLT5AAjvdW~tG2F{J@#XVVD{_%A7`z6l6S-D_f6+3^um8K zEkByx5N^AP^<4M;r!zn7a%5lQW4o%7PZ;ChB%>}k{M1%CZ= z2sse&U;cr72t((-{@pIW{xkevu)L;7k-^n=CfkMAAH)~ z@b7@p=U(=|jL2U3W5@8f@%-+`FKQag1Q`CVzj?#n<8Qm$e}_5EznM4KFOcO^sDD-9 z@SJ;=^_R$Y)+_(da;f}t+Rfxz&v5O#hTRdV<{Ho6+_Ro@Kls_;dH3*VW; z{9iB|mxTvzuJ5X5NY`GR+wi8wVfAi1Yx{;T`#a|ce9(2cCBJ}6=EeUXoU8}rGfJMn zU(s-0o8fEiYG}m)JWL)E`*)uclQs_!$!)QQh|!=J-6 p=Pi&}qn&%k{xvk-9uzg$uX4U|6>kmD z%5#uEw@+a2^zzH673KL^fT|8k@V5df?vfzC;Qw&I;N{QwiGhJh$J50zq+-t7*$?v$ zEAX^A&S{eU7=(suW?6hV;<@}R z(^S3Ah3lVZ-D5KO`jOA`HG^);O6FU#msT@hxqkP~;eC3Qt+DKBYiih++&#F;|IVGp zRo$`rQS3E}U+x`${*F(3?qeQjf8!J7K*RsO%YX2#+)?uU*Hy6(jA|KwXg%H-XUZM3 zy#AE>!&*>4A;6C*`A5H7FSe5RxOedcdrNlx{_CF)pWsjXfA2iIOZoQDx(hp^UH^yf z+i;%!$&{J{7lOB5YCN^S`|W$zw+>VFSIB0(p2~OSpM7P`;s3|Wq<%JfUv;Z{Q1h=; zLEgdcL*BusSZ%v@|Ml+stM{)j-#_)&yxn@wxuwe2K4q@_f9KwR^Yi>GcE2y(moQ&` zLM5xV{ELzmJ08y|n6c|x~H3;v4Sn2iJ|FjRR_$}V``Lb*Mm)pYfWGTCkj<eF9F66IFBSTur<6<%?PLS(sJzI2bftSX>jB z5?z^@W0;sa4ZF$}E4p>HOXTHsnRV6KSzN&&JUl!vFR!7YK}}6f$e3Bem03Sd%DO;> zN0G%^iaAJyInP19H9$+ApG8|++sVlZs6H(%O+-Xwl8pWiW$SxZ5s!niA_Qf2d0*HI zbhAZCkYDhBynq3xtcK1T0|o|W4^J1zkc`H+(|i4H8;G`+L(((RZ7p^{l>S z&1t!tzt?Y$UA|4#dge0E&Lb-F+AkWk>;FAb*m?1KqcE!j1B(O09_Iu18~)p@|6fqL zR@rA~nO&LjCBbDqbAI05*k_RXhB1lh=*du>$Jz>h4EzQUf1do3rlfu##8xih*yqhZ z-};I}&VMHxKHZ0?#VJiQ=srgGnHhUvx% zVT!K|9E#bFXw+HpT$saX*d;G-@FO}!DW{lG?U0#x0*E2+qjY-?tKBS@ZI++s1KBYR zX9ND9JgmyVqyRXp>3mMw zVVZI~d&FARlV2})J+Ca4(`63g%b9S`lrNSoNYdoD`!nV%|D>6>)_-_mG@^J)`w&oRY=Jo+;q$ksccR%6f6zyL#a49<78=9ya^n$r7u+j~C^bOb9GI&k_qm(^4pj1NS)&hkjiHRWpd5A8$Cb@xe3S*&a*8GDH z@+Wp~ILkVN0~l8zMvZxAPO;dJM4_9{&ipq4vKh@D{&obVPYC+L{6cnxxXnCZge{-P zXnOzs>(3jfeci}*&h!`Cob0$Qc5_wz5}2;fWBeK^{b0qn{^Iv+OJuejoGIF7&|t@$ zB=MCO5~5$Zf20cCyr%!4fB$#B7q*N74F4G)n4hk%nl|5Zp$srzGI+ZBxvXjB5_gu0cN%t;D^{G_C$M*V`Q_7!lU%3hGV1~r)>K-k z11X-8Aiv=M2*4n8|J*sCIA?)JWHAE+-(e7DJf6QI1t?hI>Eak-;s3V(piqMXhYNF} z=HLJS&kEUO_+C%TvNhP$FFO6x0{M(8Wdq)d<{MM@7@03-USyzgQma8Oo#jeMNJMz+ zjD*9XO>;O|td*9vSoIq>YFAE8n3xbYe{&{#{NI1#3!h9~A<6jU!Xwk?X)G5^?>#@Z d!k=O3n_YV9CDpgX+<|Uj@O1TaS?83{1ON@*Z1eyC literal 0 HcmV?d00001 diff --git a/Resources/Textures/_NF/Objects/Economy/cash.rsi/cash_5000.png b/Resources/Textures/_NF/Objects/Economy/cash.rsi/cash_5000.png new file mode 100644 index 0000000000000000000000000000000000000000..36ff38c4d47c3d5e5b265adf17a86e7a6293a64d GIT binary patch literal 231 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE3?yBabR7dyiUB?$t_ilBuCA`(;o&<=#TyzL z^78V|?GxBLz5McNMKv`wpelpMS2=+ccS(?6@P9a9@bYK;1QgElba4!^=zTlkHdlj! zfXm)DXQKZ9KbZTFYo*{`R#OF@qHj7<*JiiKSLhn>Te;_Xv~o7Y}ovUtB{b9eO)Qz^T%OqTn0 z{E+psS+o90d(L%67N^qO6oyS3J-d)^iM$FRC@v;Bgn>|bM6gpj1Ke?S)FTJdKsc-O?xrX)CKZd>g9eR)FtgS!r zBSO#h|8YL1$p7l%c<_tYD(&G;u0^M;>?aosoeHikzvCI4^!_{}+A4rJ#t=0D7r7CAd^{8F$L#P@Xd Kb6Mw<&;$VBi#yx^ literal 0 HcmV?d00001 diff --git a/Resources/Textures/_NF/Objects/Economy/cash.rsi/meta.json b/Resources/Textures/_NF/Objects/Economy/cash.rsi/meta.json new file mode 100644 index 00000000000..ab0be10c51b --- /dev/null +++ b/Resources/Textures/_NF/Objects/Economy/cash.rsi/meta.json @@ -0,0 +1,136 @@ +{ + "version": 1, + "size": { + "x": 32, + "y": 32 + }, + "license": "CC-BY-NC-SA-3.0", + "copyright": "Modified by EmoGarbage404 and taken from https://github.com/goonstation/goonstation at commit b951a2c12d967af1295a3e6d33a861e7e1f21299. cash_5000, cash_10000, cash_25000, cash_50000, cash_100000, cash_250000 modified by Whatstone (Discord)", + "states": [ + { + "name": "cash" + }, + { + "name": "cash_10" + }, + { + "name": "cash_100" + }, + { + "name": "cash_500" + }, + { + "name": "cash_1000" + }, + { + "name": "cash_5000" + }, + { + "name": "cash_10000", + "delays": [ + [ + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2 + ] + ] + }, + { + "name": "cash_25000", + "delays": [ + [ + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2 + ] + ] + }, + { + "name": "cash_50000", + "delays": [ + [ + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2 + ] + ] + }, + { + "name": "cash_100000", + "delays": [ + [ + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2 + ] + ] + }, + { + "name": "cash_250000", + "delays": [ + [ + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2 + ] + ] + } + ] +} From 26239359cf1e813a91f8fafd8f0888811cec245c Mon Sep 17 00:00:00 2001 From: Velcroboy <107660393+IamVelcroboy@users.noreply.github.com> Date: Tue, 17 Dec 2024 22:12:48 -0600 Subject: [PATCH 20/76] Updates Maintenance Lights (#2465) * Updates Maintenance Lights * 1 char typo Signed-off-by: deltanedas <39013340+deltanedas@users.noreply.github.com> --------- Signed-off-by: deltanedas <39013340+deltanedas@users.noreply.github.com> Co-authored-by: Velcroboy Co-authored-by: deltanedas <39013340+deltanedas@users.noreply.github.com> --- Resources/Migrations/deltaMigrations.yml | 5 ++ .../Catalog/Fills/Boxes/general.yml | 2 +- .../Markers/Spawners/Random/randomitems.yml | 2 +- .../Entities/Objects/Power/lights.yml | 32 +++----- .../Structures/Lighting/base_lighting.yml | 79 +++++++++++-------- 5 files changed, 64 insertions(+), 56 deletions(-) diff --git a/Resources/Migrations/deltaMigrations.yml b/Resources/Migrations/deltaMigrations.yml index bab6685466a..18a7472447d 100644 --- a/Resources/Migrations/deltaMigrations.yml +++ b/Resources/Migrations/deltaMigrations.yml @@ -123,3 +123,8 @@ VendingMachineAutomatrobe: null # 2024-11-08 SuitStorageSec: SuitStorageSecDeltaV + +# 2024-12-17 +LightBulbMaintenanceRed: DimLightBulb +PoweredSmallLightMaintenanceRed: PoweredDimSmallLight +AlwaysPoweredSmallLightMaintenanceRed: PoweredDimSmallLight diff --git a/Resources/Prototypes/Nyanotrasen/Catalog/Fills/Boxes/general.yml b/Resources/Prototypes/Nyanotrasen/Catalog/Fills/Boxes/general.yml index ceb66ae1204..d45e562b962 100644 --- a/Resources/Prototypes/Nyanotrasen/Catalog/Fills/Boxes/general.yml +++ b/Resources/Prototypes/Nyanotrasen/Catalog/Fills/Boxes/general.yml @@ -34,7 +34,7 @@ contents: - id: LightBulbMaintenance amount: 6 - - id: LightBulbMaintenanceRed + - id: DimLightBulb amount: 6 - type: Sprite layers: diff --git a/Resources/Prototypes/Nyanotrasen/Entities/Markers/Spawners/Random/randomitems.yml b/Resources/Prototypes/Nyanotrasen/Entities/Markers/Spawners/Random/randomitems.yml index 749a7a417f4..77c4521717a 100644 --- a/Resources/Prototypes/Nyanotrasen/Entities/Markers/Spawners/Random/randomitems.yml +++ b/Resources/Prototypes/Nyanotrasen/Entities/Markers/Spawners/Random/randomitems.yml @@ -166,7 +166,7 @@ - id: ColoredLightTubeRed - id: ColoredLightTubeFrostyBlue - id: ColoredLightTubeBlackLight - - id: LightBulbMaintenanceRed + - id: DimLightBulb - id: LightBulbBroken - id: LightTubeBroken - id: LedLightBulb diff --git a/Resources/Prototypes/Nyanotrasen/Entities/Objects/Power/lights.yml b/Resources/Prototypes/Nyanotrasen/Entities/Objects/Power/lights.yml index 91eff1a68ca..533fc3cea5d 100644 --- a/Resources/Prototypes/Nyanotrasen/Entities/Objects/Power/lights.yml +++ b/Resources/Prototypes/Nyanotrasen/Entities/Objects/Power/lights.yml @@ -14,7 +14,7 @@ PowerUse: 75 - type: Sprite sprite: Objects/Power/light_tube.rsi - state: normal + state: normal - type: entity parent: BaseLightbulb @@ -26,9 +26,13 @@ - type: LightBulb bulb: Bulb color: "#FFD1A3" # 4000K color temp - lightEnergy: 0.7 - lightRadius: 1.5 - lightSoftness: 1.1 + lightEnergy: 0.05 + lightRadius: 5 + lightSoftness: 7 + - type: Tag + tags: + - LightBulb + - Trash # Colored @@ -47,7 +51,7 @@ PowerUse: 25 - type: Sprite sprite: Objects/Power/light_tube.rsi - state: normal + state: normal - type: entity parent: BaseLightbulb @@ -64,8 +68,8 @@ PowerUse: 25 - type: Sprite sprite: Objects/Power/light_tube.rsi - state: normal - + state: normal + - type: entity parent: BaseLightbulb name: black light tube @@ -82,17 +86,3 @@ - type: Sprite sprite: Objects/Power/light_tube.rsi state: normal - -- type: entity - parent: BaseLightbulb - name: incandescent light bulb - suffix: Maintenance, Red - id: LightBulbMaintenanceRed - description: A dim light bulb. These emit a red hue. - components: - - type: LightBulb - bulb: Bulb - color: "#FF6666" # 4000K color temp - lightEnergy: 1.1 - lightRadius: 1.5 - lightSoftness: 1.1 diff --git a/Resources/Prototypes/Nyanotrasen/Entities/Structures/Lighting/base_lighting.yml b/Resources/Prototypes/Nyanotrasen/Entities/Structures/Lighting/base_lighting.yml index f9a6007c405..1bbf28e64fc 100644 --- a/Resources/Prototypes/Nyanotrasen/Entities/Structures/Lighting/base_lighting.yml +++ b/Resources/Prototypes/Nyanotrasen/Entities/Structures/Lighting/base_lighting.yml @@ -6,10 +6,16 @@ components: - type: PoweredLight hasLampOnSpawn: BlueLightTube + - type: PointLight + radius: 12 + energy: 3 + softness: 0.5 + color: "#B4FCF0" - type: DamageOnInteract damage: types: - Heat: 0.2 + Heat: 2 + popupText: powered-light-component-burn-hand - type: entity parent: AlwaysPoweredWallLight @@ -31,10 +37,16 @@ components: - type: PoweredLight hasLampOnSpawn: LightBulbMaintenance + - type: PointLight + radius: 5 + energy: 0.05 + softness: 7 + color: "#FFD1A3" - type: DamageOnInteract damage: types: - Heat: 0.2 + Heat: 2 + popupText: powered-light-component-burn-hand - type: entity parent: SmallLight @@ -43,9 +55,9 @@ description: "A light fixture. Draws power and produces light when equipped with a light tube." components: - type: PointLight - radius: 1.5 - energy: 0.7 - softness: 1.1 + radius: 5 + energy: 0.05 + softness: 7 color: "#FFD1A3" #Colored lights @@ -58,10 +70,16 @@ components: - type: PoweredLight hasLampOnSpawn: ColoredLightTubeRed + - type: PointLight + radius: 10 + energy: 0.9 + softness: 0.5 + color: "#FF6666" - type: DamageOnInteract damage: types: - Heat: 0.2 + Heat: 2 + popupText: powered-light-component-burn-hand - type: entity id: AlwaysPoweredLightColoredRed @@ -83,10 +101,16 @@ components: - type: PoweredLight hasLampOnSpawn: ColoredLightTubeFrostyBlue + - type: PointLight + radius: 10 + energy: 0.8 + softness: 1 + color: "#00FFFF" - type: DamageOnInteract damage: types: - Heat: 0.2 + Heat: 2 + popupText: powered-light-component-burn-hand - type: entity id: AlwaysPoweredLightColoredFrostyBlue @@ -108,10 +132,16 @@ components: - type: PoweredLight hasLampOnSpawn: ColoredLightTubeBlackLight + - type: PointLight + radius: 10 + energy: 1.1 + softness: 1 + color: "#5D0CED" - type: DamageOnInteract damage: types: - Heat: 0.2 + Heat: 2 + popupText: powered-light-component-burn-hand - type: entity id: AlwaysPoweredLightColoredBlack @@ -136,10 +166,18 @@ state: base - type: PoweredLight hasLampOnSpawn: ColoredLightTubeRed + - type: PointLight + enabled: true + radius: 10 + energy: 0.9 + softness: 1 + offset: "0, -0.5" + color: "#FF6666" - type: DamageOnInteract damage: types: Heat: 2 + popupText: powered-light-component-burn-hand - type: StaticPrice price: 75 @@ -158,28 +196,3 @@ softness: 1 offset: "0, -0.5" color: "#FF6666" - -- type: entity - parent: PoweredSmallLight - id: PoweredSmallLightMaintenanceRed - suffix: Maintenance, Red - description: "A light fixture. Draws power and produces light when equipped with a light bulb." - components: - - type: PoweredLight - hasLampOnSpawn: LightBulbMaintenanceRed - - type: DamageOnInteract - damage: - types: - Heat: 0.2 - -- type: entity - parent: SmallLight - id: AlwaysPoweredSmallLightMaintenanceRed - suffix: Always Powered, Maintenance, Red - description: "A light fixture. Draws power and produces light when equipped with a light tube." - components: - - type: PointLight - radius: 1.5 - energy: 1.1 - softness: 1.1 - color: "#FF6666" From f416875713a99629c1d4815e9f4803ac993005b4 Mon Sep 17 00:00:00 2001 From: paige404 <59348003+paige404@users.noreply.github.com> Date: Wed, 18 Dec 2024 02:03:37 -0500 Subject: [PATCH 21/76] Fix Rodentia Bat snouts to properly mirror left and right face (#2470) --- .../Rodentia/snout_markings.rsi/bat.png | Bin 305 -> 397 bytes .../Rodentia/snout_markings.rsi/bat_nose.png | Bin 270 -> 318 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/Resources/Textures/DeltaV/Mobs/Customization/Rodentia/snout_markings.rsi/bat.png b/Resources/Textures/DeltaV/Mobs/Customization/Rodentia/snout_markings.rsi/bat.png index 08096103534f643d150b7eccb7e39988fea6a137..d3b67e9dd4bd5588b459242935fdc28be475fbdb 100644 GIT binary patch literal 397 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=oCO|{#S9F52SJ!|$HeTn3=E9+ zo-U3d6>)EG9pr3w5NLhq>%l0uH@Yo>KTIVoQSzHYh4|_ZN;eumdMdezq=a~!*e}kx zW3%!7H9Ox}9d}@0WD#&Upb`)onm_A@>*Ty^F|(G=lv6FKd1 zh;4nP`V59wyUH8|b|i}T`2S5)XkcLCz(XAP&lyt~QRV7WdaT4^*VRiZp1*!>{CRV2 zc+T3wv^&nve|=6W4YIi-Jfq0^_qhY1*|uwDo%UN@aaZ(%&3RGRMBd$&`lpS=T_?WY zb*?q>$H#d^8=Gd^GnUp^mV`STU7lH$k-k<_V_8ym@6(9Wsrl?@tQX|o&OEK%XmkF! x>3WTSv1hcu{g4+p{&CB`qC}j|d?Qf7q~4jU&$jt&D=>T+JYD@<);T3K0RXO1n*0C& delta 269 zcmeBW-pDjTGLo5rfno0U#y3EUu{g-xiDBJ2nU_EgOS+@4BLl<6e(pbstU$hKfKQ0) zg$oy6ym+y8?b=0)7VX`;x4ym}DAQzPcLYeWmjw9*{|5sGDQ{-CiHhR&43j)v977`9 z-%fMnJD|Y966yN?{}Zp%3x#~LW~te}iD_X<{<`GL^neeI3DFX43>9CdL@KbRewKgs zO-t$O;>x}LlGy|Ft;Lzyk_?}(lR@~avX%$jH PH#2y;`njxgN@xNA`ax}X diff --git a/Resources/Textures/DeltaV/Mobs/Customization/Rodentia/snout_markings.rsi/bat_nose.png b/Resources/Textures/DeltaV/Mobs/Customization/Rodentia/snout_markings.rsi/bat_nose.png index 957bd20691b15984e2141a96055aef748744d47d..563a40e61ad9d9f35f7582b1f256441c4f6f2501 100644 GIT binary patch delta 282 zcmeBU+Q&3Ol7o$bfnil<;k}7@67?TET^vIy;@;lc$lGinz#5=_ieXC6K^C2Z4m}4& zbQ)dGOH9dec;w-z85G&>vcx@k)^9ue>CdOsuy6<{I4tl;h@7@}#Rn(X?U&-NmD=*f zUoS26d-*T0^!ud+mGkZ|oxjz@U6zpvthj*z3!|QiSS zpEKZDnR|OnZuF~NdQUz)^yN} Date: Wed, 18 Dec 2024 08:03:56 +0100 Subject: [PATCH 22/76] Automatic changelog update --- Resources/Changelog/DeltaVChangelog.yml | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/Resources/Changelog/DeltaVChangelog.yml b/Resources/Changelog/DeltaVChangelog.yml index cb74d1712e1..92c0b6da0a9 100644 --- a/Resources/Changelog/DeltaVChangelog.yml +++ b/Resources/Changelog/DeltaVChangelog.yml @@ -1,12 +1,4 @@ Entries: -- author: rosieposieeee - changes: - - message: Submarine has received another batch of design tweaks and revisions. - The deepest recesses of the station are shifting... - type: Tweak - id: 287 - time: '2024-03-19T23:50:03.0000000+00:00' - url: https://github.com/DeltaV-Station/Delta-v/pull/809 - author: Rose changes: - message: Added Submarine Station back to the map pool (for real this time) @@ -3819,3 +3811,10 @@ id: 786 time: '2024-12-18T01:27:23.0000000+00:00' url: https://github.com/DeltaV-Station/Delta-v/pull/2445 +- author: paige404 + changes: + - message: Rodentia with bat snouts now look correct no matter their facing. + type: Fix + id: 787 + time: '2024-12-18T07:03:37.0000000+00:00' + url: https://github.com/DeltaV-Station/Delta-v/pull/2470 From 9146ee34d6f4f777bb9f60dc2f21e67221514c12 Mon Sep 17 00:00:00 2001 From: deltanedas <39013340+deltanedas@users.noreply.github.com> Date: Wed, 18 Dec 2024 07:13:39 +0000 Subject: [PATCH 23/76] remove constant shuttle spam from survival (#2471) Co-authored-by: deltanedas <@deltanedas:kde.org> --- Resources/Prototypes/game_presets.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Resources/Prototypes/game_presets.yml b/Resources/Prototypes/game_presets.yml index dc5663c0882..f27d5599f5b 100644 --- a/Resources/Prototypes/game_presets.yml +++ b/Resources/Prototypes/game_presets.yml @@ -9,7 +9,7 @@ - MeteorSwarmScheduler - RampingStationEventScheduler - SpaceTrafficControlEventScheduler - - SpaceTrafficControlFriendlyEventScheduler + #- SpaceTrafficControlFriendlyEventScheduler # DeltaV: spam of garbage roles nobody takes every 10-20 minutes - BasicRoundstartVariation - GlimmerEventScheduler # DeltaV From 94b2542165554db48bc78937d8cedde02d2427ec Mon Sep 17 00:00:00 2001 From: SolStar <44028047+ewokswagger@users.noreply.github.com> Date: Wed, 18 Dec 2024 02:25:22 -0500 Subject: [PATCH 24/76] Add error logging for Auto ACO procedure. (#2450) * Add error logging for Auto ACO procedure. * type --- .../DeltaV/Station/Components/CaptainStateComponent.cs | 6 +++--- Content.Server/DeltaV/Station/Systems/CaptainStateSystem.cs | 6 ++++++ 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/Content.Server/DeltaV/Station/Components/CaptainStateComponent.cs b/Content.Server/DeltaV/Station/Components/CaptainStateComponent.cs index 96d7c441071..d432e9ea6d0 100644 --- a/Content.Server/DeltaV/Station/Components/CaptainStateComponent.cs +++ b/Content.Server/DeltaV/Station/Components/CaptainStateComponent.cs @@ -18,7 +18,7 @@ public sealed partial class CaptainStateComponent : Component /// Assume no captain unless specified /// [DataField] - public bool HasCaptain; + public bool HasCaptain = false; /// /// The localization ID used for announcing the cancellation of ACO requests @@ -42,13 +42,13 @@ public sealed partial class CaptainStateComponent : Component /// Set after ACO has been requested to avoid duplicate calls /// [DataField] - public bool IsACORequestActive; + public bool IsACORequestActive = false; /// /// Used to denote that AA has been brought into the round either from captain or safe. /// [DataField] - public bool IsAAInPlay; + public bool IsAAInPlay = false; /// /// The localization ID for announcing that AA has been unlocked for ACO diff --git a/Content.Server/DeltaV/Station/Systems/CaptainStateSystem.cs b/Content.Server/DeltaV/Station/Systems/CaptainStateSystem.cs index 38475da89be..c790b22f782 100644 --- a/Content.Server/DeltaV/Station/Systems/CaptainStateSystem.cs +++ b/Content.Server/DeltaV/Station/Systems/CaptainStateSystem.cs @@ -46,6 +46,12 @@ public override void Update(float frameTime) var query = EntityQueryEnumerator(); while (query.MoveNext(out var station, out var captainState)) { + if (currentTime < _acoDelay && captainState.IsACORequestActive == true) // Avoid timing issues. No need to run before _acoDelay is reached anyways. + { + Log.Error($"{captainState} IsACORequestActive true before ACO request time."); + captainState.IsACORequestActive = false; + } + if (captainState.HasCaptain) HandleHasCaptain(station, captainState); else From ee4fca43f4090fe50d714bd112407df9c9891326 Mon Sep 17 00:00:00 2001 From: deltanedas <39013340+deltanedas@users.noreply.github.com> Date: Wed, 18 Dec 2024 11:22:19 +0000 Subject: [PATCH 25/76] cleanup and carrying refactor (#2466) * remove evil file * clean up fugi emag lines * clean up barrel/keg yml and meta * surface-level refactor of deep fryer component * move carrying to shared and fully refactor --------- Co-authored-by: deltanedas <@deltanedas:kde.org> --- .../Properties/launchSettings.json | 8 - .../DeltaV/GlimmerWisp/LifeDrainerSystem.cs | 2 +- .../Carrying/BeingCarriedComponent.cs | 11 - .../Carrying/CarriableComponent.cs | 17 - .../Nyanotrasen/Carrying/CarryingComponent.cs | 11 - .../Nyanotrasen/Carrying/CarryingSystem.cs | 432 ------------------ .../Item/PseudoItem/PseudoItemSystem.cs | 2 +- .../Kitchen/Components/DeepFryerComponent.cs | 402 ++++++++-------- .../EntitySystems/DeepFryerSystem.Results.cs | 25 +- .../Kitchen/EntitySystems/DeepFryerSystem.cs | 9 - .../Resist/EscapeInventorySystem.cs | 9 - .../DeltaV/Carrying/BeingCarriedComponent.cs | 14 + .../DeltaV/Carrying/CarriableComponent.cs | 14 + .../DeltaV/Carrying/CarryDoAfterEvent.cs | 7 + .../DeltaV/Carrying/CarryingComponent.cs | 14 + .../Carrying/CarryingSlowdownComponent.cs | 14 + .../DeltaV/Carrying/CarryingSlowdownSystem.cs | 29 ++ .../DeltaV/Carrying/CarryingSystem.cs | 384 ++++++++++++++++ .../Carrying/CarryingDoAfterEvent.cs | 10 - .../Carrying/CarryingSlowdownComponent.cs | 28 -- .../Carrying/CarryingSlowdownSystem.cs | 47 -- .../Locale/en-US/deltav/fugitive/sets.ftl | 1 - .../DeltaV/Catalog/Cargo/cargo_food.yml | 1 - .../DeltaV/Catalog/fugitive_sets.yml | 1 - .../Entities/Objects/Specific/fugitive.yml | 1 - .../Objects/Storage/barrel.rsi/meta.json | 34 +- .../DeltaV/Objects/Storage/keg.rsi/meta.json | 26 +- 27 files changed, 701 insertions(+), 852 deletions(-) delete mode 100644 Content.Packaging/Properties/launchSettings.json delete mode 100644 Content.Server/Nyanotrasen/Carrying/BeingCarriedComponent.cs delete mode 100644 Content.Server/Nyanotrasen/Carrying/CarriableComponent.cs delete mode 100644 Content.Server/Nyanotrasen/Carrying/CarryingComponent.cs delete mode 100644 Content.Server/Nyanotrasen/Carrying/CarryingSystem.cs create mode 100644 Content.Shared/DeltaV/Carrying/BeingCarriedComponent.cs create mode 100644 Content.Shared/DeltaV/Carrying/CarriableComponent.cs create mode 100644 Content.Shared/DeltaV/Carrying/CarryDoAfterEvent.cs create mode 100644 Content.Shared/DeltaV/Carrying/CarryingComponent.cs create mode 100644 Content.Shared/DeltaV/Carrying/CarryingSlowdownComponent.cs create mode 100644 Content.Shared/DeltaV/Carrying/CarryingSlowdownSystem.cs create mode 100644 Content.Shared/DeltaV/Carrying/CarryingSystem.cs delete mode 100644 Content.Shared/Nyanotrasen/Carrying/CarryingDoAfterEvent.cs delete mode 100644 Content.Shared/Nyanotrasen/Carrying/CarryingSlowdownComponent.cs delete mode 100644 Content.Shared/Nyanotrasen/Carrying/CarryingSlowdownSystem.cs diff --git a/Content.Packaging/Properties/launchSettings.json b/Content.Packaging/Properties/launchSettings.json deleted file mode 100644 index 33504c948ad..00000000000 --- a/Content.Packaging/Properties/launchSettings.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "profiles": { - "WSL": { - "commandName": "WSL2", - "distributionName": "" - } - } -} \ No newline at end of file diff --git a/Content.Server/DeltaV/GlimmerWisp/LifeDrainerSystem.cs b/Content.Server/DeltaV/GlimmerWisp/LifeDrainerSystem.cs index ec800db2a30..079ec77bbf3 100644 --- a/Content.Server/DeltaV/GlimmerWisp/LifeDrainerSystem.cs +++ b/Content.Server/DeltaV/GlimmerWisp/LifeDrainerSystem.cs @@ -1,5 +1,6 @@ using Content.Shared.ActionBlocker; using Content.Shared.Damage; +using Content.Shared.DeltaV.Carrying; using Content.Shared.DoAfter; using Content.Shared.Interaction; using Content.Shared.Mobs.Systems; @@ -11,7 +12,6 @@ using Content.Shared.Verbs; using Content.Shared.Whitelist; using Content.Server.NPC.Components; -using Content.Server.Carrying; using Robust.Shared.Audio.Systems; using Robust.Shared.Player; using Robust.Shared.Utility; diff --git a/Content.Server/Nyanotrasen/Carrying/BeingCarriedComponent.cs b/Content.Server/Nyanotrasen/Carrying/BeingCarriedComponent.cs deleted file mode 100644 index afc78978c86..00000000000 --- a/Content.Server/Nyanotrasen/Carrying/BeingCarriedComponent.cs +++ /dev/null @@ -1,11 +0,0 @@ -namespace Content.Server.Carrying -{ - /// - /// Stores the carrier of an entity being carried. - /// - [RegisterComponent] - public sealed partial class BeingCarriedComponent : Component - { - public EntityUid Carrier = default!; - } -} diff --git a/Content.Server/Nyanotrasen/Carrying/CarriableComponent.cs b/Content.Server/Nyanotrasen/Carrying/CarriableComponent.cs deleted file mode 100644 index f4fd1fa6d56..00000000000 --- a/Content.Server/Nyanotrasen/Carrying/CarriableComponent.cs +++ /dev/null @@ -1,17 +0,0 @@ -using System.Threading; - -namespace Content.Server.Carrying -{ - [RegisterComponent] - public sealed partial class CarriableComponent : Component - { - /// - /// Number of free hands required - /// to carry the entity - /// - [DataField("freeHandsRequired")] - public int FreeHandsRequired = 2; - - public CancellationTokenSource? CancelToken; - } -} diff --git a/Content.Server/Nyanotrasen/Carrying/CarryingComponent.cs b/Content.Server/Nyanotrasen/Carrying/CarryingComponent.cs deleted file mode 100644 index e79460595b9..00000000000 --- a/Content.Server/Nyanotrasen/Carrying/CarryingComponent.cs +++ /dev/null @@ -1,11 +0,0 @@ -namespace Content.Server.Carrying -{ - /// - /// Added to an entity when they are carrying somebody. - /// - [RegisterComponent] - public sealed partial class CarryingComponent : Component - { - public EntityUid Carried = default!; - } -} diff --git a/Content.Server/Nyanotrasen/Carrying/CarryingSystem.cs b/Content.Server/Nyanotrasen/Carrying/CarryingSystem.cs deleted file mode 100644 index 0faff7d8078..00000000000 --- a/Content.Server/Nyanotrasen/Carrying/CarryingSystem.cs +++ /dev/null @@ -1,432 +0,0 @@ -using System.Numerics; -using System.Threading; -using Content.Server.DoAfter; -using Content.Server.Body.Systems; -using Content.Server.Hands.Systems; -using Content.Server.Resist; -using Content.Server.Popups; -using Content.Server.Inventory; -using Content.Server.Nyanotrasen.Item.PseudoItem; -using Content.Shared.Climbing; // Shared instead of Server -using Content.Shared.Mobs; -using Content.Shared.DoAfter; -using Content.Shared.Buckle.Components; -using Content.Shared.Hands.Components; -using Content.Shared.Hands; -using Content.Shared.Stunnable; -using Content.Shared.Interaction.Events; -using Content.Shared.Verbs; -using Content.Shared.Climbing.Events; // Added this. -using Content.Shared.Carrying; -using Content.Shared.Movement.Events; -using Content.Shared.Movement.Systems; -using Content.Shared.Pulling; -using Content.Shared.Standing; -using Content.Shared.ActionBlocker; -using Content.Shared.Inventory.VirtualItem; -using Content.Shared.Item; -using Content.Shared.Throwing; -using Content.Shared.Mobs.Systems; -using Content.Shared.Movement.Pulling.Components; -using Content.Shared.Movement.Pulling.Events; -using Content.Shared.Movement.Pulling.Systems; -using Content.Shared.Nyanotrasen.Item.PseudoItem; -using Content.Shared.Storage; -using Robust.Shared.Map.Components; -using Robust.Shared.Physics.Components; - -namespace Content.Server.Carrying -{ - public sealed class CarryingSystem : EntitySystem - { - [Dependency] private readonly VirtualItemSystem _virtualItemSystem = default!; - [Dependency] private readonly CarryingSlowdownSystem _slowdown = default!; - [Dependency] private readonly DoAfterSystem _doAfterSystem = default!; - [Dependency] private readonly StandingStateSystem _standingState = default!; - [Dependency] private readonly ActionBlockerSystem _actionBlockerSystem = default!; - [Dependency] private readonly PullingSystem _pullingSystem = default!; - [Dependency] private readonly MobStateSystem _mobStateSystem = default!; - [Dependency] private readonly EscapeInventorySystem _escapeInventorySystem = default!; - [Dependency] private readonly PopupSystem _popupSystem = default!; - [Dependency] private readonly MovementSpeedModifierSystem _movementSpeed = default!; - [Dependency] private readonly RespiratorSystem _respirator = default!; - [Dependency] private readonly SharedTransformSystem _transform = default!; - [Dependency] private readonly PseudoItemSystem _pseudoItem = default!; // Needed for fitting check - - public override void Initialize() - { - base.Initialize(); - SubscribeLocalEvent>(AddCarryVerb); - SubscribeLocalEvent>(AddInsertCarriedVerb); - SubscribeLocalEvent(OnVirtualItemDeleted); - SubscribeLocalEvent(OnThrow); - SubscribeLocalEvent(OnParentChanged); - SubscribeLocalEvent(OnMobStateChanged); - SubscribeLocalEvent(OnInteractionAttempt); - SubscribeLocalEvent(OnMoveInput); - SubscribeLocalEvent(OnMoveAttempt); - SubscribeLocalEvent(OnStandAttempt); - SubscribeLocalEvent(OnInteractedWith); - SubscribeLocalEvent(OnPullAttempt); - SubscribeLocalEvent(OnStartClimb); - SubscribeLocalEvent(OnBuckleChange); - SubscribeLocalEvent(OnBuckleChange); - SubscribeLocalEvent(OnBuckleChange); - SubscribeLocalEvent(OnBuckleChange); - SubscribeLocalEvent(OnDoAfter); - } - - private void AddCarryVerb(EntityUid uid, CarriableComponent component, GetVerbsEvent args) - { - if (!args.CanInteract || !args.CanAccess) - return; - - if (!CanCarry(args.User, uid, component)) - return; - - if (HasComp(args.User)) // yeah not dealing with that - return; - - if (HasComp(args.User) || HasComp(args.Target)) - return; - - if (!_mobStateSystem.IsAlive(args.User)) - return; - - if (args.User == args.Target) - return; - - AlternativeVerb verb = new() - { - Act = () => - { - StartCarryDoAfter(args.User, uid, component); - }, - Text = Loc.GetString("carry-verb"), - Priority = 2 - }; - args.Verbs.Add(verb); - } - - private void AddInsertCarriedVerb(EntityUid uid, CarryingComponent component, GetVerbsEvent args) - { - // If the person is carrying someone, and the carried person is a pseudo-item, and the target entity is a storage, - // then add an action to insert the carried entity into the target - var toInsert = args.Using; - if (toInsert is not { Valid: true } || !args.CanAccess || !TryComp(toInsert, out var pseudoItem)) - return; - - if (!TryComp(args.Target, out var storageComp)) - return; - - if (!_pseudoItem.CheckItemFits((toInsert.Value, pseudoItem), (args.Target, storageComp))) - return; - - InnateVerb verb = new() - { - Act = () => - { - DropCarried(uid, toInsert.Value); - _pseudoItem.TryInsert(args.Target, toInsert.Value, pseudoItem, storageComp); - }, - Text = Loc.GetString("action-name-insert-other", ("target", toInsert)), - Priority = 2 - }; - args.Verbs.Add(verb); - } - - /// - /// Since the carried entity is stored as 2 virtual items, when deleted we want to drop them. - /// - private void OnVirtualItemDeleted(EntityUid uid, CarryingComponent component, VirtualItemDeletedEvent args) - { - if (!HasComp(args.BlockingEntity)) - return; - - DropCarried(uid, args.BlockingEntity); - } - - /// - /// Basically using virtual item passthrough to throw the carried person. A new age! - /// Maybe other things besides throwing should use virt items like this... - /// - private void OnThrow(EntityUid uid, CarryingComponent component, BeforeThrowEvent args) - { - if (!TryComp(args.ItemUid, out var virtItem) || !HasComp(virtItem.BlockingEntity)) - return; - - args.ItemUid = virtItem.BlockingEntity; - - var multiplier = MassContest(uid, virtItem.BlockingEntity); - args.ThrowSpeed = 5f * multiplier; - } - - private void OnParentChanged(EntityUid uid, CarryingComponent component, ref EntParentChangedMessage args) - { - var xform = Transform(uid); - if (xform.MapUid != args.OldMapId) - return; - - // Do not drop the carried entity if the new parent is a grid - if (xform.ParentUid == xform.GridUid) - return; - - DropCarried(uid, component.Carried); - } - - private void OnMobStateChanged(EntityUid uid, CarryingComponent component, MobStateChangedEvent args) - { - DropCarried(uid, component.Carried); - } - - /// - /// Only let the person being carried interact with their carrier and things on their person. - /// - private void OnInteractionAttempt(EntityUid uid, BeingCarriedComponent component, InteractionAttemptEvent args) - { - if (args.Target == null) - return; - - var targetParent = Transform(args.Target.Value).ParentUid; - - if (args.Target.Value != component.Carrier && targetParent != component.Carrier && targetParent != uid) - args.Cancelled = true; - } - - /// - /// Try to escape via the escape inventory system. - /// - private void OnMoveInput(EntityUid uid, BeingCarriedComponent component, ref MoveInputEvent args) - { - if (!TryComp(uid, out var escape)) - return; - - if (!args.HasDirectionalMovement) - return; - - if (_actionBlockerSystem.CanInteract(uid, component.Carrier)) - { - // Note: the mass contest is inverted because weaker entities are supposed to take longer to escape - _escapeInventorySystem.AttemptEscape(uid, component.Carrier, escape, MassContest(component.Carrier, uid)); - } - } - - private void OnMoveAttempt(EntityUid uid, BeingCarriedComponent component, UpdateCanMoveEvent args) - { - args.Cancel(); - } - - private void OnStandAttempt(EntityUid uid, BeingCarriedComponent component, StandAttemptEvent args) - { - args.Cancel(); - } - - private void OnInteractedWith(EntityUid uid, BeingCarriedComponent component, GettingInteractedWithAttemptEvent args) - { - if (args.Uid != component.Carrier) - args.Cancelled = true; - } - - private void OnPullAttempt(EntityUid uid, BeingCarriedComponent component, PullAttemptEvent args) - { - args.Cancelled = true; - } - - private void OnStartClimb(EntityUid uid, BeingCarriedComponent component, ref StartClimbEvent args) - { - DropCarried(component.Carrier, uid); - } - - private void OnBuckleChange(EntityUid uid, BeingCarriedComponent component, TEvent args) // Augh - { - DropCarried(component.Carrier, uid); - } - - private void OnDoAfter(EntityUid uid, CarriableComponent component, CarryDoAfterEvent args) - { - component.CancelToken = null; - if (args.Handled || args.Cancelled) - return; - - if (!CanCarry(args.Args.User, uid, component)) - return; - - Carry(args.Args.User, uid); - args.Handled = true; - } - private void StartCarryDoAfter(EntityUid carrier, EntityUid carried, CarriableComponent component) - { - TimeSpan length = GetPickupDuration(carrier, carried); - - if (length >= TimeSpan.FromSeconds(9)) - { - _popupSystem.PopupEntity(Loc.GetString("carry-too-heavy"), carried, carrier, Shared.Popups.PopupType.SmallCaution); - return; - } - - if (!HasComp(carried)) - length *= 2f; - - component.CancelToken = new CancellationTokenSource(); - - var ev = new CarryDoAfterEvent(); - var args = new DoAfterArgs(EntityManager, carrier, length, ev, carried, target: carried) - { - BreakOnMove = true, - NeedHand = true - }; - - _doAfterSystem.TryStartDoAfter(args); - - // Show a popup to the person getting picked up - _popupSystem.PopupEntity(Loc.GetString("carry-started", ("carrier", carrier)), carried, carried); - } - - private void Carry(EntityUid carrier, EntityUid carried) - { - if (TryComp(carried, out var pullable)) - _pullingSystem.TryStopPull(carried, pullable); - - var carrierXform = Transform(carrier); - var xform = Transform(carried); - _transform.AttachToGridOrMap(carrier, carrierXform); - _transform.AttachToGridOrMap(carried, xform); - xform.Coordinates = carrierXform.Coordinates; - _transform.SetParent(carried, xform, carrier, carrierXform); - - _virtualItemSystem.TrySpawnVirtualItemInHand(carried, carrier); - _virtualItemSystem.TrySpawnVirtualItemInHand(carried, carrier); - var carryingComp = EnsureComp(carrier); - ApplyCarrySlowdown(carrier, carried); - var carriedComp = EnsureComp(carried); - EnsureComp(carried); - - carryingComp.Carried = carried; - carriedComp.Carrier = carrier; - - _actionBlockerSystem.UpdateCanMove(carried); - } - - public bool TryCarry(EntityUid carrier, EntityUid toCarry, CarriableComponent? carriedComp = null) - { - if (!Resolve(toCarry, ref carriedComp, false)) - return false; - - if (!CanCarry(carrier, toCarry, carriedComp)) - return false; - - // The second one means that carrier is a pseudo-item and is inside a bag. - if (HasComp(carrier) || HasComp(carrier)) - return false; - - if (GetPickupDuration(carrier, toCarry) > TimeSpan.FromSeconds(9)) - return false; - - Carry(carrier, toCarry); - - return true; - } - - public void DropCarried(EntityUid carrier, EntityUid carried) - { - RemComp(carrier); // get rid of this first so we don't recusrively fire that event - RemComp(carrier); - RemComp(carried); - RemComp(carried); - _actionBlockerSystem.UpdateCanMove(carried); - _virtualItemSystem.DeleteInHandsMatching(carrier, carried); - Transform(carried).AttachToGridOrMap(); - _standingState.Stand(carried); - _movementSpeed.RefreshMovementSpeedModifiers(carrier); - } - - private void ApplyCarrySlowdown(EntityUid carrier, EntityUid carried) - { - var massRatio = MassContest(carrier, carried); - - if (massRatio == 0) - massRatio = 1; - - var massRatioSq = Math.Pow(massRatio, 2); - var modifier = (1 - (0.15 / massRatioSq)); - modifier = Math.Max(0.1, modifier); - var slowdownComp = EnsureComp(carrier); - _slowdown.SetModifier(carrier, (float) modifier, (float) modifier, slowdownComp); - } - - public bool CanCarry(EntityUid carrier, EntityUid carried, CarriableComponent? carriedComp = null) - { - if (!Resolve(carried, ref carriedComp, false)) - return false; - - if (carriedComp.CancelToken != null) - return false; - - if (!HasComp(Transform(carrier).ParentUid)) - return false; - - if (HasComp(carrier) || HasComp(carried)) - return false; - - // if (_respirator.IsReceivingCPR(carried)) - // return false; - - if (!TryComp(carrier, out var hands)) - return false; - - if (hands.CountFreeHands() < carriedComp.FreeHandsRequired) - return false; - - return true; - } - - private float MassContest(EntityUid roller, EntityUid target, PhysicsComponent? rollerPhysics = null, PhysicsComponent? targetPhysics = null) - { - if (!Resolve(roller, ref rollerPhysics, false) || !Resolve(target, ref targetPhysics, false)) - return 1f; - - if (targetPhysics.FixturesMass == 0) - return 1f; - - return rollerPhysics.FixturesMass / targetPhysics.FixturesMass; - } - - private TimeSpan GetPickupDuration(EntityUid carrier, EntityUid carried) - { - var length = TimeSpan.FromSeconds(3); - - var mod = MassContest(carrier, carried); - if (mod != 0) - length /= mod; - - return length; - } - - public override void Update(float frameTime) - { - var query = EntityQueryEnumerator(); - while (query.MoveNext(out var carried, out var comp)) - { - var carrier = comp.Carrier; - if (carrier is not { Valid: true } || carried is not { Valid: true }) - continue; - - // SOMETIMES - when an entity is inserted into disposals, or a cryosleep chamber - it can get re-parented without a proper reparent event - // when this happens, it needs to be dropped because it leads to weird behavior - if (Transform(carried).ParentUid != carrier) - { - DropCarried(carrier, carried); - continue; - } - - // Make sure the carried entity is always centered relative to the carrier, as gravity pulls can offset it otherwise - var xform = Transform(carried); - if (!xform.LocalPosition.Equals(Vector2.Zero)) - { - xform.LocalPosition = Vector2.Zero; - } - } - query.Dispose(); - } - } -} diff --git a/Content.Server/Nyanotrasen/Item/PseudoItem/PseudoItemSystem.cs b/Content.Server/Nyanotrasen/Item/PseudoItem/PseudoItemSystem.cs index 6df387e6ba8..7437d293da6 100644 --- a/Content.Server/Nyanotrasen/Item/PseudoItem/PseudoItemSystem.cs +++ b/Content.Server/Nyanotrasen/Item/PseudoItem/PseudoItemSystem.cs @@ -1,9 +1,9 @@ -using Content.Server.Carrying; using Content.Server.DoAfter; using Content.Server.Item; using Content.Server.Popups; using Content.Server.Storage.EntitySystems; using Content.Shared.Bed.Sleep; +using Content.Shared.DeltaV.Carrying; using Content.Shared.DoAfter; using Content.Shared.IdentityManagement; using Content.Shared.Item; diff --git a/Content.Server/Nyanotrasen/Kitchen/Components/DeepFryerComponent.cs b/Content.Server/Nyanotrasen/Kitchen/Components/DeepFryerComponent.cs index d77bec6b1ae..faf27484ce9 100644 --- a/Content.Server/Nyanotrasen/Kitchen/Components/DeepFryerComponent.cs +++ b/Content.Server/Nyanotrasen/Kitchen/Components/DeepFryerComponent.cs @@ -11,230 +11,184 @@ using Robust.Shared.Containers; using Robust.Shared.Prototypes; using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom; -using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype; -using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype.Set; -namespace Content.Server.Nyanotrasen.Kitchen.Components +namespace Content.Server.Nyanotrasen.Kitchen.Components; + +// TODO: move to shared and get rid of SharedDeepFryerComponent +[RegisterComponent, Access(typeof(SharedDeepfryerSystem))] +public sealed partial class DeepFryerComponent : SharedDeepFryerComponent { - [RegisterComponent] - [Access(typeof(SharedDeepfryerSystem))] - // This line appears to be depracted: [ComponentReference(typeof(SharedDeepFryerComponent))] - public sealed partial class DeepFryerComponent : SharedDeepFryerComponent - { - // There are three levels to how the deep fryer treats entities. - // - // 1. An entity can be rejected by the blacklist and be untouched by - // anything other than heat damage. - // - // 2. An entity can be deep-fried but not turned into an edible. The - // change will be mostly cosmetic. Any entity that does not match - // the blacklist will fall into this category. - // - // 3. An entity can be deep-fried and turned into something edible. The - // change will permit the item to be permanently destroyed by eating - // it. - - /// - /// When will the deep fryer layer on the next stage of crispiness? - /// - [DataField("nextFryTime", customTypeSerializer: typeof(TimeOffsetSerializer))] - public TimeSpan NextFryTime { get; set; } - - /// - /// How much waste needs to be added at the next update interval? - /// - public FixedPoint2 WasteToAdd { get; set; } = FixedPoint2.Zero; - - /// - /// How often are items in the deep fryer fried? - /// - [ViewVariables(VVAccess.ReadWrite)] - [DataField("fryInterval")] - public TimeSpan FryInterval { get; set; } = TimeSpan.FromSeconds(5); - - /// - /// What entities cannot be deep-fried no matter what? - /// - [ViewVariables(VVAccess.ReadWrite)] - [DataField("blacklist")] - public EntityWhitelist? Blacklist { get; set; } - - /// - /// What entities can be deep-fried into being edible? - /// - [ViewVariables(VVAccess.ReadWrite)] - [DataField("whitelist")] - public EntityWhitelist? Whitelist { get; set; } - - /// - /// What are over-cooked and burned entities turned into? - /// - /// - /// To prevent unwanted destruction of items, only food can be turned - /// into this. - /// - [ViewVariables(VVAccess.ReadWrite)] - [DataField("charredPrototype", customTypeSerializer: typeof(PrototypeIdSerializer))] - public string? CharredPrototype { get; set; } - - /// - /// What reagents are considered valid cooking oils? - /// - [ViewVariables(VVAccess.ReadWrite)] - [DataField("fryingOils", customTypeSerializer: typeof(PrototypeIdHashSetSerializer))] - public HashSet FryingOils { get; set; } = new(); - - /// - /// What reagents are added to tasty deep-fried food? - /// JJ Comment: I removed Solution from this. Unsure if I need to replace it with something. - /// - [ViewVariables(VVAccess.ReadWrite)] - [DataField("goodReagents")] - public List GoodReagents { get; set; } = new(); - - /// - /// What reagents are added to terrible deep-fried food? - /// JJ Comment: I removed Solution from this. Unsure if I need to replace it with something. - /// - [ViewVariables(VVAccess.ReadWrite)] - [DataField("badReagents")] - public List BadReagents { get; set; } = new(); - - /// - /// What reagents replace every 1 unit of oil spent on frying? - /// JJ Comment: I removed Solution from this. Unsure if I need to replace it with something. - /// - [ViewVariables(VVAccess.ReadWrite)] - [DataField("wasteReagents")] - public List WasteReagents { get; set; } = new(); - - /// - /// What flavors go well with deep frying? - /// - [ViewVariables(VVAccess.ReadWrite)] - [DataField("goodFlavors", customTypeSerializer: typeof(PrototypeIdHashSetSerializer))] - public HashSet GoodFlavors { get; set; } = new(); - - /// - /// What flavors don't go well with deep frying? - /// - [ViewVariables(VVAccess.ReadWrite)] - [DataField("badFlavors", customTypeSerializer: typeof(PrototypeIdHashSetSerializer))] - public HashSet BadFlavors { get; set; } = new(); - - /// - /// How much is the price coefficiency of a food changed for each good flavor? - /// - [ViewVariables(VVAccess.ReadWrite)] - [DataField("goodFlavorPriceBonus")] - public float GoodFlavorPriceBonus { get; set; } = 0.2f; - - /// - /// How much is the price coefficiency of a food changed for each bad flavor? - /// - [ViewVariables(VVAccess.ReadWrite)] - [DataField("badFlavorPriceMalus")] - public float BadFlavorPriceMalus { get; set; } = -0.3f; - - /// - /// What is the name of the solution container for the fryer's oil? - /// - [ViewVariables(VVAccess.ReadWrite)] - [DataField("solution")] - public string SolutionName { get; set; } = "vat_oil"; - - public Solution Solution { get; set; } = default!; - - /// - /// What is the name of the entity container for items inside the deep fryer? - /// - [DataField("storage")] - public string StorageName { get; set; } = "vat_entities"; - - public BaseContainer Storage { get; set; } = default!; - - /// - /// How much solution should be imparted based on an item's size? - /// - [ViewVariables(VVAccess.ReadWrite)] - [DataField("solutionSizeCoefficient")] - public FixedPoint2 SolutionSizeCoefficient { get; set; } = 1f; - - /// - /// What's the maximum amount of solution that should ever be imparted? - /// - [ViewVariables(VVAccess.ReadWrite)] - [DataField("solutionSplitMax")] - public FixedPoint2 SolutionSplitMax { get; set; } = 10f; - - /// - /// What percent of the fryer's solution has to be oil in order for it to fry? - /// - /// - /// The chef will have to clean it out occasionally, and if too much - /// non-oil reagents are added, the vat will have to be drained. - /// - [ViewVariables(VVAccess.ReadWrite)] - [DataField("fryingOilThreshold")] - public FixedPoint2 FryingOilThreshold { get; set; } = 0.5f; - - /// - /// What is the bare minimum number of oil units to prevent the fryer - /// from unsafe operation? - /// - [ViewVariables(VVAccess.ReadWrite)] - [DataField("safeOilVolume")] - public FixedPoint2 SafeOilVolume { get; set; } = 10f; - - [ViewVariables(VVAccess.ReadWrite)] - [DataField("unsafeOilVolumeEffects")] - public List UnsafeOilVolumeEffects = new(); - - /// - /// What is the temperature of the vat when the deep fryer is powered? - /// - [ViewVariables(VVAccess.ReadWrite)] - [DataField("poweredTemperature")] - public float PoweredTemperature = 550.0f; - - /// - /// How many entities can this deep fryer hold? - /// - [ViewVariables(VVAccess.ReadWrite)] - public int StorageMaxEntities = 4; - - /// - /// How many entities can be held, at a minimum? - /// - [ViewVariables(VVAccess.ReadWrite)] - [DataField("baseStorageMaxEntities")] - public int BaseStorageMaxEntities = 4; - - // /// - // /// What upgradeable machine part dictates the quality of the storage size? - // /// - // [DataField("machinePartStorageMax", customTypeSerializer: typeof(PrototypeIdSerializer))] - // public string MachinePartStorageMax = "MatterBin"; - - /// - /// How much extra storage is added per part rating? - /// - [ViewVariables(VVAccess.ReadWrite)] - [DataField("storagePerPartRating")] - public int StoragePerPartRating = 4; - - /// - /// What sound is played when an item is inserted into hot oil? - /// - [ViewVariables(VVAccess.ReadWrite)] - [DataField("soundInsertItem")] - public SoundSpecifier SoundInsertItem = new SoundPathSpecifier("/Audio/Nyanotrasen/Machines/deepfryer_basket_add_item.ogg"); - - /// - /// What sound is played when an item is removed? - /// - [ViewVariables(VVAccess.ReadWrite)] - [DataField("soundRemoveItem")] - public SoundSpecifier SoundRemoveItem = new SoundPathSpecifier("/Audio/Nyanotrasen/Machines/deepfryer_basket_remove_item.ogg"); - } + // There are three levels to how the deep fryer treats entities. + // + // 1. An entity can be rejected by the blacklist and be untouched by + // anything other than heat damage. + // + // 2. An entity can be deep-fried but not turned into an edible. The + // change will be mostly cosmetic. Any entity that does not match + // the blacklist will fall into this category. + // + // 3. An entity can be deep-fried and turned into something edible. The + // change will permit the item to be permanently destroyed by eating + // it. + + /// + /// When will the deep fryer layer on the next stage of crispiness? + /// + [DataField(customTypeSerializer: typeof(TimeOffsetSerializer))] + public TimeSpan NextFryTime; + + /// + /// How much waste needs to be added at the next update interval? + /// + [DataField] + public FixedPoint2 WasteToAdd = FixedPoint2.Zero; + + /// + /// How often are items in the deep fryer fried? + /// + [DataField] + public TimeSpan FryInterval = TimeSpan.FromSeconds(5); + + /// + /// What entities cannot be deep-fried no matter what? + /// + [DataField] + public EntityWhitelist? Blacklist; + + /// + /// What entities can be deep-fried into being edible? + /// + [DataField] + public EntityWhitelist? Whitelist; + + /// + /// What are over-cooked and burned entities turned into? + /// + /// + /// To prevent unwanted destruction of items, only food can be turned + /// into this. + /// + [DataField] + public EntProtoId? CharredPrototype; + + /// + /// What reagents are considered valid cooking oils? + /// + [DataField] + public HashSet> FryingOils = new(); + + /// + /// What reagents are added to tasty deep-fried food? + /// + [DataField] + public List GoodReagents = new(); + + /// + /// What reagents are added to terrible deep-fried food? + /// + [DataField] + public List BadReagents = new(); + + /// + /// What reagents replace every 1 unit of oil spent on frying? + /// + [DataField] + public List WasteReagents = new(); + + /// + /// What flavors go well with deep frying? + /// + [DataField] + public HashSet> GoodFlavors = new(); + + /// + /// What flavors don't go well with deep frying? + /// + [DataField] + public HashSet> BadFlavors = new(); + + /// + /// How much is the price coefficiency of a food changed for each good flavor? + /// + [DataField] + public float GoodFlavorPriceBonus = 0.2f; + + /// + /// How much is the price coefficiency of a food changed for each bad flavor? + /// + [DataField] + public float BadFlavorPriceMalus = -0.3f; + + /// + /// What is the name of the solution container for the fryer's oil? + /// + [DataField] + public string SolutionName = "vat_oil"; + + // TODO: Entity + public Solution Solution = default!; + + /// + /// What is the name of the entity container for items inside the deep fryer? + /// + [DataField("storage")] + public string StorageName = "vat_entities"; + + public BaseContainer Storage = default!; + + /// + /// How much solution should be imparted based on an item's size? + /// + [DataField] + public FixedPoint2 SolutionSizeCoefficient = 1f; + + /// + /// What's the maximum amount of solution that should ever be imparted? + /// + [DataField] + public FixedPoint2 SolutionSplitMax = 10f; + + /// + /// What percent of the fryer's solution has to be oil in order for it to fry? + /// + /// + /// The chef will have to clean it out occasionally, and if too much + /// non-oil reagents are added, the vat will have to be drained. + /// + [DataField] + public FixedPoint2 FryingOilThreshold = 0.5f; + + /// + /// What is the bare minimum number of oil units to prevent the fryer + /// from unsafe operation? + /// + [DataField] + public FixedPoint2 SafeOilVolume = 10f; + + [DataField] + public List UnsafeOilVolumeEffects = new(); + + /// + /// What is the temperature of the vat when the deep fryer is powered? + /// + [DataField] + public float PoweredTemperature = 550.0f; + + /// + /// How many entities can this deep fryer hold? + /// + [DataField] + public int StorageMaxEntities = 4; + + /// + /// What sound is played when an item is inserted into hot oil? + /// + [DataField] + public SoundSpecifier SoundInsertItem = new SoundPathSpecifier("/Audio/Nyanotrasen/Machines/deepfryer_basket_add_item.ogg"); + + /// + /// What sound is played when an item is removed? + /// + [DataField] + public SoundSpecifier SoundRemoveItem = new SoundPathSpecifier("/Audio/Nyanotrasen/Machines/deepfryer_basket_remove_item.ogg"); } diff --git a/Content.Server/Nyanotrasen/Kitchen/EntitySystems/DeepFryerSystem.Results.cs b/Content.Server/Nyanotrasen/Kitchen/EntitySystems/DeepFryerSystem.Results.cs index 3f93787934c..fa2807509a6 100644 --- a/Content.Server/Nyanotrasen/Kitchen/EntitySystems/DeepFryerSystem.Results.cs +++ b/Content.Server/Nyanotrasen/Kitchen/EntitySystems/DeepFryerSystem.Results.cs @@ -11,15 +11,20 @@ using Content.Shared.FixedPoint; using Content.Shared.Mobs.Components; using Content.Shared.NPC; +using Content.Shared.Nutrition; using Content.Shared.Nutrition.Components; using Content.Shared.Nyanotrasen.Kitchen.Components; using Content.Shared.Paper; +using Robust.Shared.Prototypes; using Robust.Shared.Random; namespace Content.Server.Nyanotrasen.Kitchen.EntitySystems; public sealed partial class DeepFryerSystem { + private HashSet> _badFlavors = new(); + private HashSet> _goodFlavors = new(); + /// /// Make an item look deep-fried. /// @@ -129,33 +134,33 @@ private void MakeEdible(EntityUid uid, DeepFryerComponent component, EntityUid i var extraSolution = new Solution(); if (TryComp(item, out FlavorProfileComponent? flavorProfileComponent)) { - HashSet goodFlavors = new(flavorProfileComponent.Flavors); - goodFlavors.IntersectWith(component.GoodFlavors); + _goodFlavors.Clear(); + _goodFlavors.IntersectWith(component.GoodFlavors); - HashSet badFlavors = new(flavorProfileComponent.Flavors); - badFlavors.IntersectWith(component.BadFlavors); + _badFlavors.Clear(); + _badFlavors.IntersectWith(component.BadFlavors); deepFriedComponent.PriceCoefficient = Math.Max(0.01f, 1.0f - + goodFlavors.Count * component.GoodFlavorPriceBonus - - badFlavors.Count * component.BadFlavorPriceMalus); + + _goodFlavors.Count * component.GoodFlavorPriceBonus + - _badFlavors.Count * component.BadFlavorPriceMalus); - if (goodFlavors.Count > 0) + if (_goodFlavors.Count > 0) { foreach (var reagent in component.GoodReagents) { - extraSolution.AddReagent(reagent.Reagent.ToString(), reagent.Quantity * goodFlavors.Count); + extraSolution.AddReagent(reagent.Reagent.ToString(), reagent.Quantity * _goodFlavors.Count); // Mask the taste of "medicine." flavorProfileComponent.IgnoreReagents.Add(reagent.Reagent.ToString()); } } - if (badFlavors.Count > 0) + if (_badFlavors.Count > 0) { foreach (var reagent in component.BadReagents) { - extraSolution.AddReagent(reagent.Reagent.ToString(), reagent.Quantity * badFlavors.Count); + extraSolution.AddReagent(reagent.Reagent.ToString(), reagent.Quantity * _badFlavors.Count); } } } diff --git a/Content.Server/Nyanotrasen/Kitchen/EntitySystems/DeepFryerSystem.cs b/Content.Server/Nyanotrasen/Kitchen/EntitySystems/DeepFryerSystem.cs index 40a658f0c44..4ac8684a7a3 100644 --- a/Content.Server/Nyanotrasen/Kitchen/EntitySystems/DeepFryerSystem.cs +++ b/Content.Server/Nyanotrasen/Kitchen/EntitySystems/DeepFryerSystem.cs @@ -105,7 +105,6 @@ public override void Initialize() SubscribeLocalEvent(OnInitDeepFryer); SubscribeLocalEvent(OnPowerChange); - // SubscribeLocalEvent(OnRefreshParts); SubscribeLocalEvent(OnDeconstruct); SubscribeLocalEvent(OnDestruction); SubscribeLocalEvent(OnThrowHitBy); @@ -437,14 +436,6 @@ private void OnDestruction(EntityUid uid, DeepFryerComponent component, Destruct _containerSystem.EmptyContainer(component.Storage, true); } - // private void OnRefreshParts(EntityUid uid, DeepFryerComponent component, RefreshPartsEvent args) - // { - // var ratingStorage = args.PartRatings[component.MachinePartStorageMax]; - // - // component.StorageMaxEntities = component.BaseStorageMaxEntities + - // (int) (component.StoragePerPartRating * (ratingStorage - 1)); - // } - /// /// Allow thrown items to land in a basket. /// diff --git a/Content.Server/Resist/EscapeInventorySystem.cs b/Content.Server/Resist/EscapeInventorySystem.cs index 93a83465861..eec8ebb5072 100644 --- a/Content.Server/Resist/EscapeInventorySystem.cs +++ b/Content.Server/Resist/EscapeInventorySystem.cs @@ -1,6 +1,5 @@ using Content.Server.Popups; using Content.Shared.Storage; -using Content.Server.Carrying; // Carrying system from Nyanotrasen. using Content.Shared.Inventory; using Content.Shared.Hands.EntitySystems; using Content.Shared.Storage.Components; @@ -25,7 +24,6 @@ public sealed class EscapeInventorySystem : EntitySystem [Dependency] private readonly SharedContainerSystem _containerSystem = default!; [Dependency] private readonly ActionBlockerSystem _actionBlockerSystem = default!; [Dependency] private readonly SharedHandsSystem _handsSystem = default!; - [Dependency] private readonly CarryingSystem _carryingSystem = default!; // Carrying system from Nyanotrasen. [Dependency] private readonly SharedActionsSystem _actions = default!; // DeltaV /// @@ -109,13 +107,6 @@ private void OnEscape(EntityUid uid, CanEscapeInventoryComponent component, Esca if (args.Handled || args.Cancelled) return; - if (TryComp(uid, out var carried)) // Start of carrying system of nyanotrasen. - { - _carryingSystem.DropCarried(carried.Carrier, uid); - return; - } // End of carrying system of nyanotrasen. - - _containerSystem.AttachParentToContainerOrGrid((uid, Transform(uid))); args.Handled = true; } diff --git a/Content.Shared/DeltaV/Carrying/BeingCarriedComponent.cs b/Content.Shared/DeltaV/Carrying/BeingCarriedComponent.cs new file mode 100644 index 00000000000..7e519e7e04b --- /dev/null +++ b/Content.Shared/DeltaV/Carrying/BeingCarriedComponent.cs @@ -0,0 +1,14 @@ +using Robust.Shared.GameStates; + +namespace Content.Shared.DeltaV.Carrying; + +/// +/// Stores the carrier of an entity being carried. +/// +[RegisterComponent, NetworkedComponent, Access(typeof(CarryingSystem))] +[AutoGenerateComponentState] +public sealed partial class BeingCarriedComponent : Component +{ + [DataField, AutoNetworkedField] + public EntityUid Carrier; +} diff --git a/Content.Shared/DeltaV/Carrying/CarriableComponent.cs b/Content.Shared/DeltaV/Carrying/CarriableComponent.cs new file mode 100644 index 00000000000..ad1968aec62 --- /dev/null +++ b/Content.Shared/DeltaV/Carrying/CarriableComponent.cs @@ -0,0 +1,14 @@ +using Robust.Shared.GameStates; + +namespace Content.Shared.DeltaV.Carrying; + +[RegisterComponent, NetworkedComponent, Access(typeof(CarryingSystem))] +public sealed partial class CarriableComponent : Component +{ + /// + /// Number of free hands required + /// to carry the entity + /// + [DataField] + public int FreeHandsRequired = 2; +} diff --git a/Content.Shared/DeltaV/Carrying/CarryDoAfterEvent.cs b/Content.Shared/DeltaV/Carrying/CarryDoAfterEvent.cs new file mode 100644 index 00000000000..7ea0375518a --- /dev/null +++ b/Content.Shared/DeltaV/Carrying/CarryDoAfterEvent.cs @@ -0,0 +1,7 @@ +using Content.Shared.DoAfter; +using Robust.Shared.Serialization; + +namespace Content.Shared.DeltaV.Carrying; + +[Serializable, NetSerializable] +public sealed partial class CarryDoAfterEvent : SimpleDoAfterEvent; diff --git a/Content.Shared/DeltaV/Carrying/CarryingComponent.cs b/Content.Shared/DeltaV/Carrying/CarryingComponent.cs new file mode 100644 index 00000000000..e6661da0e04 --- /dev/null +++ b/Content.Shared/DeltaV/Carrying/CarryingComponent.cs @@ -0,0 +1,14 @@ +using Robust.Shared.GameStates; + +namespace Content.Shared.DeltaV.Carrying; + +/// +/// Added to an entity when they are carrying somebody. +/// +[RegisterComponent, NetworkedComponent, Access(typeof(CarryingSystem))] +[AutoGenerateComponentState] +public sealed partial class CarryingComponent : Component +{ + [DataField, AutoNetworkedField] + public EntityUid Carried; +} diff --git a/Content.Shared/DeltaV/Carrying/CarryingSlowdownComponent.cs b/Content.Shared/DeltaV/Carrying/CarryingSlowdownComponent.cs new file mode 100644 index 00000000000..9e1be89370c --- /dev/null +++ b/Content.Shared/DeltaV/Carrying/CarryingSlowdownComponent.cs @@ -0,0 +1,14 @@ +using Robust.Shared.GameStates; + +namespace Content.Shared.DeltaV.Carrying; + +[RegisterComponent, NetworkedComponent, Access(typeof(CarryingSlowdownSystem))] +[AutoGenerateComponentState] +public sealed partial class CarryingSlowdownComponent : Component +{ + /// + /// Modifier for both walk and sprint speed. + /// + [DataField, AutoNetworkedField] + public float Modifier = 1.0f; +} diff --git a/Content.Shared/DeltaV/Carrying/CarryingSlowdownSystem.cs b/Content.Shared/DeltaV/Carrying/CarryingSlowdownSystem.cs new file mode 100644 index 00000000000..677c53eedc0 --- /dev/null +++ b/Content.Shared/DeltaV/Carrying/CarryingSlowdownSystem.cs @@ -0,0 +1,29 @@ +using Content.Shared.Movement.Systems; + +namespace Content.Shared.DeltaV.Carrying; + +public sealed class CarryingSlowdownSystem : EntitySystem +{ + [Dependency] private readonly MovementSpeedModifierSystem _movementSpeed = default!; + + public override void Initialize() + { + base.Initialize(); + + SubscribeLocalEvent(OnRefreshMoveSpeed); + } + + public void SetModifier(Entity ent, float modifier) + { + ent.Comp ??= EnsureComp(ent); + ent.Comp.Modifier = modifier; + Dirty(ent, ent.Comp); + + _movementSpeed.RefreshMovementSpeedModifiers(ent); + } + + private void OnRefreshMoveSpeed(Entity ent, ref RefreshMovementSpeedModifiersEvent args) + { + args.ModifySpeed(ent.Comp.Modifier, ent.Comp.Modifier); + } +} diff --git a/Content.Shared/DeltaV/Carrying/CarryingSystem.cs b/Content.Shared/DeltaV/Carrying/CarryingSystem.cs new file mode 100644 index 00000000000..2b47c49abd1 --- /dev/null +++ b/Content.Shared/DeltaV/Carrying/CarryingSystem.cs @@ -0,0 +1,384 @@ +using Content.Shared.ActionBlocker; +using Content.Shared.Buckle.Components; +using Content.Shared.Climbing.Events; +using Content.Shared.DoAfter; +using Content.Shared.Hands; +using Content.Shared.Hands.Components; +using Content.Shared.Interaction.Events; +using Content.Shared.Inventory.VirtualItem; +using Content.Shared.Item; +using Content.Shared.Mobs; +using Content.Shared.Movement.Events; +using Content.Shared.Movement.Pulling.Components; +using Content.Shared.Movement.Pulling.Events; +using Content.Shared.Movement.Pulling.Systems; +using Content.Shared.Movement.Systems; +using Content.Shared.Nyanotrasen.Item.PseudoItem; +using Content.Shared.Popups; +using Content.Shared.Pulling; +using Content.Shared.Resist; +using Content.Shared.Standing; +using Content.Shared.Storage; +using Content.Shared.Stunnable; +using Content.Shared.Throwing; +using Content.Shared.Verbs; +using Robust.Shared.Map.Components; +using Robust.Shared.Network; +using Robust.Shared.Physics.Components; +using System.Numerics; + +namespace Content.Shared.DeltaV.Carrying; + +public sealed class CarryingSystem : EntitySystem +{ + [Dependency] private readonly ActionBlockerSystem _actionBlocker = default!; + [Dependency] private readonly CarryingSlowdownSystem _slowdown = default!; + [Dependency] private readonly INetManager _net = default!; + [Dependency] private readonly MovementSpeedModifierSystem _movementSpeed = default!; + [Dependency] private readonly PullingSystem _pulling = default!; + [Dependency] private readonly SharedDoAfterSystem _doAfter = default!; + [Dependency] private readonly SharedPopupSystem _popup = default!; + [Dependency] private readonly SharedPseudoItemSystem _pseudoItem = default!; + [Dependency] private readonly SharedTransformSystem _transform = default!; + [Dependency] private readonly StandingStateSystem _standingState = default!; + [Dependency] private readonly SharedVirtualItemSystem _virtualItem = default!; + + private EntityQuery _physicsQuery; + + public override void Initialize() + { + base.Initialize(); + + _physicsQuery = GetEntityQuery(); + + SubscribeLocalEvent>(AddCarryVerb); + SubscribeLocalEvent>(AddInsertCarriedVerb); + SubscribeLocalEvent(OnVirtualItemDeleted); + SubscribeLocalEvent(OnThrow); + SubscribeLocalEvent(OnParentChanged); + SubscribeLocalEvent(OnMobStateChanged); + SubscribeLocalEvent(OnInteractionAttempt); + SubscribeLocalEvent(OnMoveAttempt); + SubscribeLocalEvent(OnStandAttempt); + SubscribeLocalEvent(OnInteractedWith); + SubscribeLocalEvent(OnPullAttempt); + SubscribeLocalEvent(OnDrop); + SubscribeLocalEvent(OnDrop); + SubscribeLocalEvent(OnDrop); + SubscribeLocalEvent(OnDrop); + SubscribeLocalEvent(OnDrop); + SubscribeLocalEvent(OnDrop); + SubscribeLocalEvent(OnDoAfter); + } + + private void AddCarryVerb(Entity ent, ref GetVerbsEvent args) + { + var user = args.User; + var target = args.Target; + if (!args.CanInteract || !args.CanAccess || user == target) + return; + + if (!CanCarry(user, ent)) + return; + + args.Verbs.Add(new AlternativeVerb() + { + Act = () => StartCarryDoAfter(user, ent), + Text = Loc.GetString("carry-verb"), + Priority = 2 + }); + } + + private void AddInsertCarriedVerb(Entity ent, ref GetVerbsEvent args) + { + // If the person is carrying someone, and the carried person is a pseudo-item, and the target entity is a storage, + // then add an action to insert the carried entity into the target + // AKA put carried felenid into a duffelbag + if (args.Using is not {} carried || !args.CanAccess || !TryComp(carried, out var pseudoItem)) + return; + + var target = args.Target; + if (!TryComp(target, out var storageComp)) + return; + + if (!_pseudoItem.CheckItemFits((carried, pseudoItem), (target, storageComp))) + return; + + args.Verbs.Add(new InnateVerb() + { + Act = () => + { + DropCarried(ent, carried); + _pseudoItem.TryInsert(target, carried, pseudoItem, storageComp); + }, + Text = Loc.GetString("action-name-insert-other", ("target", carried)), + Priority = 2 + }); + } + + /// + /// Since the carried entity is stored as 2 virtual items, when deleted we want to drop them. + /// + private void OnVirtualItemDeleted(Entity ent, ref VirtualItemDeletedEvent args) + { + if (HasComp(args.BlockingEntity)) + DropCarried(ent, args.BlockingEntity); + } + + /// + /// Basically using virtual item passthrough to throw the carried person. A new age! + /// Maybe other things besides throwing should use virt items like this... + /// + private void OnThrow(Entity ent, ref BeforeThrowEvent args) + { + if (!TryComp(args.ItemUid, out var virtItem) || !HasComp(virtItem.BlockingEntity)) + return; + + var carried = virtItem.BlockingEntity; + args.ItemUid = carried; + + args.ThrowSpeed = 5f * MassContest(ent, carried); + } + + private void OnParentChanged(Entity ent, ref EntParentChangedMessage args) + { + var xform = Transform(ent); + if (xform.MapUid != args.OldMapId) + return; + + // Do not drop the carried entity if the new parent is a grid + if (xform.ParentUid == xform.GridUid) + return; + + DropCarried(ent, ent.Comp.Carried); + } + + private void OnMobStateChanged(Entity ent, ref MobStateChangedEvent args) + { + DropCarried(ent, ent.Comp.Carried); + } + + /// + /// Only let the person being carried interact with their carrier and things on their person. + /// + private void OnInteractionAttempt(Entity ent, ref InteractionAttemptEvent args) + { + if (args.Target is not {} target) + return; + + var targetParent = Transform(target).ParentUid; + + var carrier = ent.Comp.Carrier; + if (target != carrier && targetParent != carrier && targetParent != ent.Owner) + args.Cancelled = true; + } + + private void OnMoveAttempt(Entity ent, ref UpdateCanMoveEvent args) + { + args.Cancel(); + } + + private void OnStandAttempt(Entity ent, ref StandAttemptEvent args) + { + args.Cancel(); + } + + private void OnInteractedWith(Entity ent, ref GettingInteractedWithAttemptEvent args) + { + if (args.Uid != ent.Comp.Carrier) + args.Cancelled = true; + } + + private void OnPullAttempt(Entity ent, ref PullAttemptEvent args) + { + args.Cancelled = true; + } + + private void OnDrop(Entity ent, ref TEvent args) // Augh + { + DropCarried(ent.Comp.Carrier, ent); + } + + private void OnDoAfter(Entity ent, ref CarryDoAfterEvent args) + { + if (args.Handled || args.Cancelled) + return; + + if (!CanCarry(args.Args.User, ent)) + return; + + Carry(args.Args.User, ent); + args.Handled = true; + } + + private void StartCarryDoAfter(EntityUid carrier, Entity carried) + { + TimeSpan length = GetPickupDuration(carrier, carried); + + if (length.TotalSeconds >= 9f) + { + _popup.PopupClient(Loc.GetString("carry-too-heavy"), carried, carrier, PopupType.SmallCaution); + return; + } + + if (!HasComp(carried)) + length *= 2f; + + var ev = new CarryDoAfterEvent(); + var args = new DoAfterArgs(EntityManager, carrier, length, ev, carried, target: carried) + { + BreakOnMove = true, + NeedHand = true + }; + + _doAfter.TryStartDoAfter(args); + + // Show a popup to the person getting picked up + _popup.PopupEntity(Loc.GetString("carry-started", ("carrier", carrier)), carried, carried); + } + + private void Carry(EntityUid carrier, EntityUid carried) + { + if (TryComp(carried, out var pullable)) + _pulling.TryStopPull(carried, pullable); + + var carrierXform = Transform(carrier); + var xform = Transform(carried); + _transform.AttachToGridOrMap(carrier, carrierXform); + _transform.AttachToGridOrMap(carried, xform); + _transform.SetParent(carried, xform, carrier, carrierXform); + + var carryingComp = EnsureComp(carrier); + carryingComp.Carried = carried; + Dirty(carrier, carryingComp); + var carriedComp = EnsureComp(carried); + carriedComp.Carrier = carrier; + Dirty(carried, carriedComp); + EnsureComp(carried); + + ApplyCarrySlowdown(carrier, carried); + + _actionBlocker.UpdateCanMove(carried); + + if (_net.IsClient) // no spawning prediction + return; + + _virtualItem.TrySpawnVirtualItemInHand(carried, carrier); + _virtualItem.TrySpawnVirtualItemInHand(carried, carrier); + } + + public bool TryCarry(EntityUid carrier, Entity toCarry) + { + if (!Resolve(toCarry, ref toCarry.Comp, false)) + return false; + + if (!CanCarry(carrier, (toCarry, toCarry.Comp))) + return false; + + // The second one means that carrier is a pseudo-item and is inside a bag. + if (HasComp(carrier) || HasComp(carrier)) + return false; + + if (GetPickupDuration(carrier, toCarry).TotalSeconds > 9f) + return false; + + Carry(carrier, toCarry); + return true; + } + + public void DropCarried(EntityUid carrier, EntityUid carried) + { + Drop(carried); + RemComp(carrier); // get rid of this first so we don't recursively fire that event + RemComp(carrier); + _virtualItem.DeleteInHandsMatching(carrier, carried); + _movementSpeed.RefreshMovementSpeedModifiers(carrier); + } + + private void Drop(EntityUid carried) + { + RemComp(carried); + RemComp(carried); // TODO SHITMED: make sure this doesnt let you make someone with no legs walk + _actionBlocker.UpdateCanMove(carried); + Transform(carried).AttachToGridOrMap(); + _standingState.Stand(carried); + } + + private void ApplyCarrySlowdown(EntityUid carrier, EntityUid carried) + { + var massRatio = MassContest(carrier, carried); + + if (massRatio == 0) + massRatio = 1; + + var massRatioSq = Math.Pow(massRatio, 2); + var modifier = (1 - (0.15 / massRatioSq)); + modifier = Math.Max(0.1, modifier); + _slowdown.SetModifier(carrier, (float) modifier); + } + + public bool CanCarry(EntityUid carrier, Entity carried) + { + return + carrier != carried.Owner && + // can't carry multiple people, even if you have 4 hands it will break invariants when removing carryingcomponent for first carried person + !HasComp(carrier) && + // can't carry someone in a locker, buckled, etc + HasComp(Transform(carrier).ParentUid) && + // no tower of spacemen or stack overflow + !HasComp(carrier) && + !HasComp(carried) && + // finally check that there are enough free hands + TryComp(carrier, out var hands) && + hands.CountFreeHands() >= carried.Comp.FreeHandsRequired; + } + + private float MassContest(EntityUid roller, EntityUid target) + { + if (!_physicsQuery.TryComp(roller, out var rollerPhysics) || !_physicsQuery.TryComp(target, out var targetPhysics)) + return 1f; + + if (targetPhysics.FixturesMass == 0) + return 1f; + + return rollerPhysics.FixturesMass / targetPhysics.FixturesMass; + } + + private TimeSpan GetPickupDuration(EntityUid carrier, EntityUid carried) + { + var length = TimeSpan.FromSeconds(3); + + var mod = MassContest(carrier, carried); + if (mod != 0) + length /= mod; + + return length; + } + + public override void Update(float frameTime) + { + base.Update(frameTime); + + var query = EntityQueryEnumerator(); + while (query.MoveNext(out var carried, out var comp, out var xform)) + { + var carrier = comp.Carrier; + if (TerminatingOrDeleted(carrier)) + { + RemCompDeferred(carried); + continue; + } + + // SOMETIMES - when an entity is inserted into disposals, or a cryosleep chamber - it can get re-parented without a proper reparent event + // when this happens, it needs to be dropped because it leads to weird behavior + if (xform.ParentUid != carrier) + { + DropCarried(carrier, carried); + continue; + } + + // Make sure the carried entity is always centered relative to the carrier, as gravity pulls can offset it otherwise + _transform.SetLocalPosition(carried, Vector2.Zero); + } + } +} diff --git a/Content.Shared/Nyanotrasen/Carrying/CarryingDoAfterEvent.cs b/Content.Shared/Nyanotrasen/Carrying/CarryingDoAfterEvent.cs deleted file mode 100644 index 6acd6b775f3..00000000000 --- a/Content.Shared/Nyanotrasen/Carrying/CarryingDoAfterEvent.cs +++ /dev/null @@ -1,10 +0,0 @@ -using Robust.Shared.Serialization; -using Content.Shared.DoAfter; - -namespace Content.Shared.Carrying -{ - [Serializable, NetSerializable] - public sealed partial class CarryDoAfterEvent : SimpleDoAfterEvent - { - } -} diff --git a/Content.Shared/Nyanotrasen/Carrying/CarryingSlowdownComponent.cs b/Content.Shared/Nyanotrasen/Carrying/CarryingSlowdownComponent.cs deleted file mode 100644 index aabde66af0d..00000000000 --- a/Content.Shared/Nyanotrasen/Carrying/CarryingSlowdownComponent.cs +++ /dev/null @@ -1,28 +0,0 @@ -using Robust.Shared.GameStates; -using Robust.Shared.Serialization; - -namespace Content.Shared.Carrying -{ - [RegisterComponent, NetworkedComponent, Access(typeof(CarryingSlowdownSystem))] - - public sealed partial class CarryingSlowdownComponent : Component - { - [DataField("walkModifier", required: true)] [ViewVariables(VVAccess.ReadWrite)] - public float WalkModifier = 1.0f; - - [DataField("sprintModifier", required: true)] [ViewVariables(VVAccess.ReadWrite)] - public float SprintModifier = 1.0f; - } - - [Serializable, NetSerializable] - public sealed class CarryingSlowdownComponentState : ComponentState - { - public float WalkModifier; - public float SprintModifier; - public CarryingSlowdownComponentState(float walkModifier, float sprintModifier) - { - WalkModifier = walkModifier; - SprintModifier = sprintModifier; - } - } -} diff --git a/Content.Shared/Nyanotrasen/Carrying/CarryingSlowdownSystem.cs b/Content.Shared/Nyanotrasen/Carrying/CarryingSlowdownSystem.cs deleted file mode 100644 index 9b9c8cec10f..00000000000 --- a/Content.Shared/Nyanotrasen/Carrying/CarryingSlowdownSystem.cs +++ /dev/null @@ -1,47 +0,0 @@ -using Content.Shared.Movement.Systems; -using Robust.Shared.GameStates; - -namespace Content.Shared.Carrying -{ - public sealed class CarryingSlowdownSystem : EntitySystem - { - [Dependency] private readonly MovementSpeedModifierSystem _movementSpeed = default!; - - public override void Initialize() - { - base.Initialize(); - SubscribeLocalEvent(OnGetState); - SubscribeLocalEvent(OnHandleState); - SubscribeLocalEvent(OnRefreshMoveSpeed); - } - - public void SetModifier(EntityUid uid, float walkSpeedModifier, float sprintSpeedModifier, CarryingSlowdownComponent? component = null) - { - if (!Resolve(uid, ref component)) - return; - - component.WalkModifier = walkSpeedModifier; - component.SprintModifier = sprintSpeedModifier; - _movementSpeed.RefreshMovementSpeedModifiers(uid); - } - private void OnGetState(EntityUid uid, CarryingSlowdownComponent component, ref ComponentGetState args) - { - args.State = new CarryingSlowdownComponentState(component.WalkModifier, component.SprintModifier); - } - - private void OnHandleState(EntityUid uid, CarryingSlowdownComponent component, ref ComponentHandleState args) - { - if (args.Current is CarryingSlowdownComponentState state) - { - component.WalkModifier = state.WalkModifier; - component.SprintModifier = state.SprintModifier; - - _movementSpeed.RefreshMovementSpeedModifiers(uid); - } - } - private void OnRefreshMoveSpeed(EntityUid uid, CarryingSlowdownComponent component, RefreshMovementSpeedModifiersEvent args) - { - args.ModifySpeed(component.WalkModifier, component.SprintModifier); - } - } -} diff --git a/Resources/Locale/en-US/deltav/fugitive/sets.ftl b/Resources/Locale/en-US/deltav/fugitive/sets.ftl index cb4bb4e735f..e353fd38de7 100644 --- a/Resources/Locale/en-US/deltav/fugitive/sets.ftl +++ b/Resources/Locale/en-US/deltav/fugitive/sets.ftl @@ -27,4 +27,3 @@ fugitive-set-disruptor-name = disruptor's kit fugitive-set-disruptor-description = Hack the stations various systems and use them to your advantage. Comes with a cryptographic sequencer and camera bug. - diff --git a/Resources/Prototypes/DeltaV/Catalog/Cargo/cargo_food.yml b/Resources/Prototypes/DeltaV/Catalog/Cargo/cargo_food.yml index 7c4e08cfcf0..325eb6e078a 100644 --- a/Resources/Prototypes/DeltaV/Catalog/Cargo/cargo_food.yml +++ b/Resources/Prototypes/DeltaV/Catalog/Cargo/cargo_food.yml @@ -87,4 +87,3 @@ cost: 500 category: Food group: market - \ No newline at end of file diff --git a/Resources/Prototypes/DeltaV/Catalog/fugitive_sets.yml b/Resources/Prototypes/DeltaV/Catalog/fugitive_sets.yml index aad6f781bd0..b2e2328693a 100644 --- a/Resources/Prototypes/DeltaV/Catalog/fugitive_sets.yml +++ b/Resources/Prototypes/DeltaV/Catalog/fugitive_sets.yml @@ -70,4 +70,3 @@ content: - Emag - CameraBug - diff --git a/Resources/Prototypes/DeltaV/Entities/Objects/Specific/fugitive.yml b/Resources/Prototypes/DeltaV/Entities/Objects/Specific/fugitive.yml index 7558a322c00..b23f4635421 100644 --- a/Resources/Prototypes/DeltaV/Entities/Objects/Specific/fugitive.yml +++ b/Resources/Prototypes/DeltaV/Entities/Objects/Specific/fugitive.yml @@ -14,4 +14,3 @@ - FugitiveLeverage - FugitiveInfiltrator - FugitiveDisruptor - diff --git a/Resources/Textures/DeltaV/Objects/Storage/barrel.rsi/meta.json b/Resources/Textures/DeltaV/Objects/Storage/barrel.rsi/meta.json index 2ed4c3638b9..30f4889fd7e 100644 --- a/Resources/Textures/DeltaV/Objects/Storage/barrel.rsi/meta.json +++ b/Resources/Textures/DeltaV/Objects/Storage/barrel.rsi/meta.json @@ -1,20 +1,20 @@ { - "version": 1, - "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation PR https://github.com/tgstation/tgstation/blob/master/icons/obj/objects.dmi, modified by rosieposieeee", - "size": { - "x": 32, - "y": 32 - }, - "states": [ - { - "name": "base" + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from tgstation PR https://github.com/tgstation/tgstation/blob/master/icons/obj/objects.dmi, modified by rosieposieeee", + "size": { + "x": 32, + "y": 32 }, - { - "name": "open" - }, - { - "name": "closed" - } - ] + "states": [ + { + "name": "base" + }, + { + "name": "open" + }, + { + "name": "closed" + } + ] } diff --git a/Resources/Textures/DeltaV/Objects/Storage/keg.rsi/meta.json b/Resources/Textures/DeltaV/Objects/Storage/keg.rsi/meta.json index cbbc0d6e89f..ef539daf601 100644 --- a/Resources/Textures/DeltaV/Objects/Storage/keg.rsi/meta.json +++ b/Resources/Textures/DeltaV/Objects/Storage/keg.rsi/meta.json @@ -1,15 +1,15 @@ { - "version": 1, - "license": "CC-BY-SA-3.0", - "copyright": "Made by rosieposieeee", - "size": { - "x": 32, - "y": 32 - }, - "states": [ - { - "name": "base", - "directions": 4 - } - ] + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Made by rosieposieeee", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "base", + "directions": 4 + } + ] } From 8ac8da72374eb4964d067c70ebaee4a37d3423d6 Mon Sep 17 00:00:00 2001 From: Delta-V bot <135767721+DeltaV-Bot@users.noreply.github.com> Date: Wed, 18 Dec 2024 12:22:38 +0100 Subject: [PATCH 26/76] Automatic changelog update --- Resources/Changelog/DeltaVChangelog.yml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/Resources/Changelog/DeltaVChangelog.yml b/Resources/Changelog/DeltaVChangelog.yml index 92c0b6da0a9..effea4ae9de 100644 --- a/Resources/Changelog/DeltaVChangelog.yml +++ b/Resources/Changelog/DeltaVChangelog.yml @@ -1,11 +1,4 @@ Entries: -- author: Rose - changes: - - message: Added Submarine Station back to the map pool (for real this time) - type: Add - id: 288 - time: '2024-03-20T22:49:59.0000000+00:00' - url: https://github.com/DeltaV-Station/Delta-v/pull/984 - author: rosieposieeee changes: - message: More fixes for Submarine! Thank you everyone for your feedback. @@ -3818,3 +3811,10 @@ id: 787 time: '2024-12-18T07:03:37.0000000+00:00' url: https://github.com/DeltaV-Station/Delta-v/pull/2470 +- author: deltanedas + changes: + - message: Fixed not being able to throw felenids... + type: Fix + id: 788 + time: '2024-12-18T11:22:19.0000000+00:00' + url: https://github.com/DeltaV-Station/Delta-v/pull/2466 From dce230fdb20e38b658e61c3bf85e193068f3611f Mon Sep 17 00:00:00 2001 From: deltanedas <39013340+deltanedas@users.noreply.github.com> Date: Wed, 18 Dec 2024 11:33:37 +0000 Subject: [PATCH 27/76] port ore bag magnet toggle from white dream (#2467) * add on textures for ore bags * add code for toggling magnet and working in-hand * update ore bag yml --------- Co-authored-by: deltanedas <@deltanedas:kde.org> --- .../Components/ItemToggleExamineComponent.cs | 17 +++++++++++++ .../Systems/ItemToggleExamineSystem.cs | 23 ++++++++++++++++++ .../EntitySystems/MagnetPickupSystem.cs | 15 +++++++++--- .../Objects/Specific/Salvage/ore_bag.yml | 23 +++++++++++++++++- .../Specific/Mining/ore_bag.rsi/icon_on.png | Bin 0 -> 1344 bytes .../Specific/Mining/ore_bag.rsi/meta.json | 15 +++++++++++- .../Mining/ore_bag_holding.rsi/icon_on.png | Bin 0 -> 2162 bytes .../Mining/ore_bag_holding.rsi/meta.json | 21 +++++++++++++++- 8 files changed, 108 insertions(+), 6 deletions(-) create mode 100644 Content.Shared/DeltaV/Item/ItemToggle/Components/ItemToggleExamineComponent.cs create mode 100644 Content.Shared/DeltaV/Item/ItemToggle/Systems/ItemToggleExamineSystem.cs create mode 100644 Resources/Textures/Objects/Specific/Mining/ore_bag.rsi/icon_on.png create mode 100644 Resources/Textures/Objects/Specific/Mining/ore_bag_holding.rsi/icon_on.png diff --git a/Content.Shared/DeltaV/Item/ItemToggle/Components/ItemToggleExamineComponent.cs b/Content.Shared/DeltaV/Item/ItemToggle/Components/ItemToggleExamineComponent.cs new file mode 100644 index 00000000000..e8064d79456 --- /dev/null +++ b/Content.Shared/DeltaV/Item/ItemToggle/Components/ItemToggleExamineComponent.cs @@ -0,0 +1,17 @@ +using Content.Shared.DeltaV.Item.ItemToggle.Systems; +using Robust.Shared.GameStates; + +namespace Content.Shared.DeltaV.Item.ItemToggle.Components; + +/// +/// Adds examine text when the item is on or off. +/// +[RegisterComponent, NetworkedComponent, Access(typeof(ItemToggleExamineSystem))] +public sealed partial class ItemToggleExamineComponent : Component +{ + [DataField(required: true)] + public LocId On; + + [DataField(required: true)] + public LocId Off; +} diff --git a/Content.Shared/DeltaV/Item/ItemToggle/Systems/ItemToggleExamineSystem.cs b/Content.Shared/DeltaV/Item/ItemToggle/Systems/ItemToggleExamineSystem.cs new file mode 100644 index 00000000000..5abb0aec78b --- /dev/null +++ b/Content.Shared/DeltaV/Item/ItemToggle/Systems/ItemToggleExamineSystem.cs @@ -0,0 +1,23 @@ +using Content.Shared.DeltaV.Item.ItemToggle.Components; +using Content.Shared.Examine; +using Content.Shared.Item.ItemToggle; + +namespace Content.Shared.DeltaV.Item.ItemToggle.Systems; + +public sealed class ItemToggleExamineSystem : EntitySystem +{ + [Dependency] private readonly ItemToggleSystem _toggle = default!; + + public override void Initialize() + { + base.Initialize(); + + SubscribeLocalEvent(OnExamined); + } + + private void OnExamined(Entity ent, ref ExaminedEvent args) + { + var msg = _toggle.IsActivated(ent.Owner) ? ent.Comp.On : ent.Comp.Off; + args.PushMarkup(Loc.GetString(msg)); + } +} diff --git a/Content.Shared/Storage/EntitySystems/MagnetPickupSystem.cs b/Content.Shared/Storage/EntitySystems/MagnetPickupSystem.cs index 7a8961485d6..5cc24992d31 100644 --- a/Content.Shared/Storage/EntitySystems/MagnetPickupSystem.cs +++ b/Content.Shared/Storage/EntitySystems/MagnetPickupSystem.cs @@ -1,5 +1,6 @@ using Content.Server.Storage.Components; using Content.Shared.Inventory; +using Content.Shared.Item.ItemToggle; // DeltaV using Content.Shared.Whitelist; using Robust.Shared.Map; using Robust.Shared.Physics.Components; @@ -15,6 +16,7 @@ public sealed class MagnetPickupSystem : EntitySystem [Dependency] private readonly IGameTiming _timing = default!; [Dependency] private readonly EntityLookupSystem _lookup = default!; [Dependency] private readonly InventorySystem _inventory = default!; + [Dependency] private readonly ItemToggleSystem _toggle = default!; // DeltaV [Dependency] private readonly SharedTransformSystem _transform = default!; [Dependency] private readonly SharedStorageSystem _storage = default!; [Dependency] private readonly EntityWhitelistSystem _whitelistSystem = default!; @@ -49,11 +51,18 @@ public override void Update(float frameTime) comp.NextScan += ScanDelay; - if (!_inventory.TryGetContainingSlot((uid, xform, meta), out var slotDef)) + // Begin DeltaV Addition: Make ore bags use ItemToggle + if (!_toggle.IsActivated(uid)) continue; + // End DeltaV Addition - if ((slotDef.SlotFlags & comp.SlotFlags) == 0x0) - continue; + // Begin DeltaV Removals: Allow ore bags to work inhand + //if (!_inventory.TryGetContainingSlot((uid, xform, meta), out var slotDef)) + // continue; + + //if ((slotDef.SlotFlags & comp.SlotFlags) == 0x0) + // continue; + // End DeltaV Removals // No space if (!_storage.HasSpace((uid, storage))) diff --git a/Resources/Prototypes/Entities/Objects/Specific/Salvage/ore_bag.yml b/Resources/Prototypes/Entities/Objects/Specific/Salvage/ore_bag.yml index e73f9d7ba47..0306a7dc147 100644 --- a/Resources/Prototypes/Entities/Objects/Specific/Salvage/ore_bag.yml +++ b/Resources/Prototypes/Entities/Objects/Specific/Salvage/ore_bag.yml @@ -7,7 +7,10 @@ - type: MagnetPickup - type: Sprite sprite: Objects/Specific/Mining/ore_bag.rsi - state: icon + #state: icon # DeltaV: use a layer instead + layers: # DeltaV + - state: icon + map: [ "enum.ToggleVisuals.Layer" ] - type: Clothing sprite: Objects/Specific/Mining/ore_bag.rsi quickEquip: false @@ -26,6 +29,24 @@ - ArtifactFragment - Ore - type: Dumpable + # Begin DeltaV Additions: toggle magnet from White Dream + - type: ItemToggle + soundActivate: &soundActivate + collection: sparks + params: + variation: 0.25 + soundDeactivate: *soundActivate + - type: ItemToggleExamine + on: magnet-pickup-component-magnet-on + off: magnet-pickup-component-magnet-off + - type: Appearance + - type: GenericVisualizer + visuals: + enum.ToggleVisuals.Toggled: + enum.ToggleVisuals.Layer: + True: { state: icon_on } + False: { state: icon } + # End DeltaV Additions - type: ReverseEngineering # DeltaV difficulty: 2 recipes: diff --git a/Resources/Textures/Objects/Specific/Mining/ore_bag.rsi/icon_on.png b/Resources/Textures/Objects/Specific/Mining/ore_bag.rsi/icon_on.png new file mode 100644 index 0000000000000000000000000000000000000000..b39ff0e6da1fe642fd03c64720177c8f27416f92 GIT binary patch literal 1344 zcmV-G1;6@% z!T&&4!Bs&J6hXw%+1DZ^p4$o)X>YhWKfZgv!^sy2Oeec38(1N0yv;`$a8C*R<4(=xKQ@)>ZER z^Yk*qL*?$RacFoBg7+S1+=b#!5PTm8LGc8_PjH#9_*W&T(NEELDq8dqBAal2Rnd$+ zxY&ZuM@M({k`$I5%4Fc}4B8f;{T7;+%31xMbNT?u4f#bkuzvu(azC>C19)v{L8LgM zWB>pF32;bRa{vG?BLDy{BLR4&KXw2B19?eAK~#8N?V3$%6G0fqrxK|~OIn&kt5BsP zR0Yx8L@%w-s|bR(;?Zv)egg60C-5M>c@i%kl(rY4Hx8K|C2o1 z>5}ZTFPSdV{|}bT%QN#ELMF2_yT%Yg2qAaQYSX_PKka9Adb+i^v}7eSLAusl zw&h2w$2+ZRt)zp{pr3wU{zF=T3*?)n!#3U6*b2)fjXD{i59p`A-+pz5favl9sw0(9 z?516k%)lhjPk*$mUw$iY9z@H&cJiG$nd_W%%y{POKnVg5zq zoO#ulv=`D+ju^yB9&}s6l0rZIKK(r>02W0#b-PrsS*E0sMzJ^^K@Lkwck#_b~u zaejR9cOF~_V~g-VoIe(hVZZ$Veq1sM_uCKPmq}2BALQ}(yf?xOoDDV~FN2MQJB!ev z?7ATa_!6Wn8Y_LIy$?+4hZ_{(cR8qjOg{Vx6yb;abNzI#-(TzsfDOlNX9q5u3NY1N zwnF&_LVBw6Ai|AB+ua8f=}F=TMfrt;?3W*Z5q`My{{GY_!QDC-4a%;X59a3GZJU2K zKV(cfh^y;u(?UP}QTpkRodB|n#;$s-a|Sy*h#mH@nYp!L9zPneXS0=ZJ03G`ZPkRa z?q(zl^wSS~`qg7lARXa|$?X(!dFUWl@{elmF>;yok zxUWJ-B9~n`z$0i}0_qThSUG}{`?xI7Prq-!`Yw4f zPrq-!Iz4xH-|Y_F_pO^l?b$c5y|br{#M+I>ipd52^!xOyGc)>5MjEgTWu5&3{q+0v zCmLMVxA`=AQs}2&i|Izc{Dcrf2qA~Rh literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Specific/Mining/ore_bag.rsi/meta.json b/Resources/Textures/Objects/Specific/Mining/ore_bag.rsi/meta.json index 39303046bb7..355ad48c8e8 100644 --- a/Resources/Textures/Objects/Specific/Mining/ore_bag.rsi/meta.json +++ b/Resources/Textures/Objects/Specific/Mining/ore_bag.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Homegrown by @ninruB#7795, inhand sprites by lzk228(discord 455630609641897984)", + "copyright": "Homegrown by @ninruB#7795, inhand sprites by lzk228(discord 455630609641897984) | icon_on state by @kilath", "size": { "x": 32, "y": 32 @@ -21,6 +21,19 @@ { "name": "inhand-right", "directions": 4 + }, + { + "name": "icon_on", + "delays": [ + [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ] + ] } ] } diff --git a/Resources/Textures/Objects/Specific/Mining/ore_bag_holding.rsi/icon_on.png b/Resources/Textures/Objects/Specific/Mining/ore_bag_holding.rsi/icon_on.png new file mode 100644 index 0000000000000000000000000000000000000000..42382c71f40a67ee22a68449e79aad6679455901 GIT binary patch literal 2162 zcmaJ?dpOg58~;gd$ea>2=i<#Hhv*R%?~lYBvZ3T`mL)<)#Zu2E(fbr{q#lyPWKud! z2SZ}!oRp0zL(au8!Wf(JZavrY{PAAb`~LC0ug`VgpZorNzu)V+@B4-a5&@Hg%K-oY zb8$ZE1prb>Vyr6z5nGLCly723bcBP0M?`2S02toBc)P}}(L=R`NWD3FP2te**4W3R zA&#m|o<@_!3Khu|0~hoWFNdsMqefNMG780M6#9mp58c~dN!7lI$^Np-ps-(Vdqhmt zL9p&Jt?|9OjJsbcwU%Z@LZmL~Sp z`CP0h=_-`H=-#lqbWG4-0XrU9N5%(KHFj`*8QDET@PVk-oqX&0UA>uYK{SlNb0b!! ztk8d1QG?jqQBB2>a4f3a_c@y>H~;R{YQM6eS2gp_`&=|(*Ea3-U1=)$Zt!}lj-C~B z-FyDtLcDM5c0_hQUg&7z{N)WReKO*b@n`SZjYXbCqr~|gjOm|C;6#gL?4*-y-E=TQ8 z;DfmZsBqN;)z+bZ=s87A8x&Ks{4?*XMAmPHZ(~k9(0$;^JnLdsR{q}J^%ou^(0D22 z@(-3>nyfb}y3feGG)FrXMY+*D)*ck`x=D%xH@FIfOfz!o%6~%tVJ9LV@&2T@WjDezE6Bj|_iFB!b=H`0)_wSF7H4c8aaw9bC z%$f5o1Jjx0z{y7vp^Q!v-xgr>^%;@LWD6^+J#N{?%7MP}Fxd9Q8yHG@dU|g~d%G)} z8l9JKd->!g_j7;cp>Y6<#cC5QO>+g~<0Zoitl{CJuY&^SoW;TJkT2@)L3bi)&t6X> zPJ5VE#JdCq1sy_EGf?7RlNOB4t7`&)qIQ+g**2^ilf67nTOgoQqs*rxKgNB#>)d@p z*UEHH$zW8%>30W=R@X>81FWkG2d?5y5EcBEfUWNM;xWhGKn}%t?R|`?D8m%+@XI8j zr5+j?xX+T63x}69R&I1yE*5}jhpx(vlGRcQ@*W(14A$K>%?1;Tj;I6>4_Lm#L@ITz z>nwY>E%@hB=&v{0`nNB%$4MZO#RGY@7hr|Lp~{xIM6_{L(jM0(ljP$W|a@m7(bKRL$BPpdd#);UN8KI&Pe}|P!Q&F>p9gj1Xx}E0Qx*k z5OW+DHN@q&ZTwS_^-4Uh;-}g@aZl) zuheH-inz?B<)L5EdBLy-_`W0?VP_s?vi7l*^y5I{d+GYCkeTu=SkDgLjZN_KMuj5d z(PgsK;TfQP*EtYg9vXcMH$(V!ST!InWo)@0l7Gsmbum3w7%h#&Kt0rAh0G+ac;K{h zr4Fq3Pe)AHIpeccacQjQIPlTD6P?oT@WQ84=yBV}9WE4SwF zrD;uzu5U4!E0l+3o{>PUcbPKK%otikJ#NGDju@T+;rj-1=JXq+#@QJV`2>dMVDcgt zA$?uwbRMt45UcN)C5OF~ZhI|3`#+Zb$>ZBCa&h9i?42qj}QfvW?y3s5E z*WDC&Iwfak&NhpI)%$H}VYO6ye`?)ne$S&@v8n+nPNqb+#h~fz9DZAi!<}_ew3%PR z=ry}|!lL}z_x#4%(J?!P{DryJga4}G;B++(i-fVCMp`a|L7nv(=M}65g$LK=*Q_US zW3{Blf`nR0bT(XN^~LM18l4HvS#0-Ixw`mD`Hf%u-yEEAEEI{kWN3fziBj5dUcI_m z@LejE%8ReuX`WLzPqB#|SQBCr!MM9y#hoqg+x1lbgch(eBXdQ2 z%jbDJ`g|v{4K)U~FLN=PsDcsx@s}aCBD)4z^VTTT#HE!V7$(WRKvt3qeinB#WpGmi zMRz2@1%=khs{OaHOQ_d$4dQD-a*{Tb`Ox!pG3G?}PbE+^zp{03ldJo!A}aM{eBDbo zi0QCr3L-UlSB3zJZGKTQu>Ka+(%SmrK0!giQJ2i514Pf}YPZ{7%<<+Ups3Hhx`;&J z-aCaa6iu1vLf7@#0~}0E6$nDE-U%V4)qrSf=Ff)jrj-+x$hsEnAFK3a#T^&qc~5mf z_?DmJ@d^X|7F~N3hecn Date: Wed, 18 Dec 2024 12:33:57 +0100 Subject: [PATCH 28/76] Automatic changelog update --- Resources/Changelog/DeltaVChangelog.yml | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/Resources/Changelog/DeltaVChangelog.yml b/Resources/Changelog/DeltaVChangelog.yml index effea4ae9de..05c14075390 100644 --- a/Resources/Changelog/DeltaVChangelog.yml +++ b/Resources/Changelog/DeltaVChangelog.yml @@ -1,11 +1,4 @@ Entries: -- author: rosieposieeee - changes: - - message: More fixes for Submarine! Thank you everyone for your feedback. - type: Fix - id: 289 - time: '2024-03-21T06:10:41.0000000+00:00' - url: https://github.com/DeltaV-Station/Delta-v/pull/987 - author: DangerRevolution changes: - message: Added lunchboxes to various staff lockers @@ -3818,3 +3811,11 @@ id: 788 time: '2024-12-18T11:22:19.0000000+00:00' url: https://github.com/DeltaV-Station/Delta-v/pull/2466 +- author: Hell_Cat, deltanedas + changes: + - message: Ore bag magnet can now be turned on without being worn as a belt. Mining + borgs rejoice! + type: Tweak + id: 789 + time: '2024-12-18T11:33:37.0000000+00:00' + url: https://github.com/DeltaV-Station/Delta-v/pull/2467 From 600ef0e5a6cf4fc2cf4073fa019db6438a21121a Mon Sep 17 00:00:00 2001 From: BarryNorfolk Date: Wed, 18 Dec 2024 14:36:06 +0100 Subject: [PATCH 29/76] Add history tab to bounty console (#2473) * Add struct for holding historical data on cargo bounties * Add localisation strings for bounty history * Add new XAML entry for display bounty history * Expand cargo bounty menu to include tabs * Ensure station databases hold historical bounty data * Add to the bounty history when removing one from active * Feed bounty history into cargo's bounty system --- .../CargoBountyConsoleBoundUserInterface.cs | 2 +- .../Cargo/UI/BountyHistoryEntry.xaml | 23 ++++++++ .../Cargo/UI/BountyHistoryEntry.xaml.cs | 54 +++++++++++++++++++ Content.Client/Cargo/UI/CargoBountyMenu.xaml | 29 ++++++---- .../Cargo/UI/CargoBountyMenu.xaml.cs | 12 ++++- .../StationCargoBountyDatabaseComponent.cs | 7 +++ .../Cargo/Systems/CargoSystem.Bounty.cs | 26 ++++++--- .../Cargo/CargoBountyHistoryData.cs | 46 ++++++++++++++++ .../Components/CargoBountyConsoleComponent.cs | 4 +- .../en-US/cargo/cargo-bounty-console.ftl | 7 +++ 10 files changed, 191 insertions(+), 19 deletions(-) create mode 100644 Content.Client/Cargo/UI/BountyHistoryEntry.xaml create mode 100644 Content.Client/Cargo/UI/BountyHistoryEntry.xaml.cs create mode 100644 Content.Shared/Cargo/CargoBountyHistoryData.cs diff --git a/Content.Client/Cargo/BUI/CargoBountyConsoleBoundUserInterface.cs b/Content.Client/Cargo/BUI/CargoBountyConsoleBoundUserInterface.cs index 44c40143d83..04075000f5b 100644 --- a/Content.Client/Cargo/BUI/CargoBountyConsoleBoundUserInterface.cs +++ b/Content.Client/Cargo/BUI/CargoBountyConsoleBoundUserInterface.cs @@ -39,6 +39,6 @@ protected override void UpdateState(BoundUserInterfaceState message) if (message is not CargoBountyConsoleState state) return; - _menu?.UpdateEntries(state.Bounties, state.UntilNextSkip); + _menu?.UpdateEntries(state.Bounties, state.History, state.UntilNextSkip); } } diff --git a/Content.Client/Cargo/UI/BountyHistoryEntry.xaml b/Content.Client/Cargo/UI/BountyHistoryEntry.xaml new file mode 100644 index 00000000000..eee8c5cc165 --- /dev/null +++ b/Content.Client/Cargo/UI/BountyHistoryEntry.xaml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + diff --git a/Content.Client/Cargo/UI/BountyHistoryEntry.xaml.cs b/Content.Client/Cargo/UI/BountyHistoryEntry.xaml.cs new file mode 100644 index 00000000000..f3c9bbfafb1 --- /dev/null +++ b/Content.Client/Cargo/UI/BountyHistoryEntry.xaml.cs @@ -0,0 +1,54 @@ +using Content.Client.Message; +using Content.Shared.Cargo; +using Content.Shared.Cargo.Prototypes; +using Robust.Client.AutoGenerated; +using Robust.Client.UserInterface.Controls; +using Robust.Client.UserInterface.XAML; +using Robust.Shared.Prototypes; +using Robust.Shared.Timing; + +namespace Content.Client.Cargo.UI; + +[GenerateTypedNameReferences] +public sealed partial class BountyHistoryEntry : BoxContainer +{ + [Dependency] private readonly IPrototypeManager _prototype = default!; + + public BountyHistoryEntry(CargoBountyHistoryData bounty) + { + RobustXamlLoader.Load(this); + IoCManager.InjectDependencies(this); + + if (!_prototype.TryIndex(bounty.Bounty, out var bountyPrototype)) + return; + + var items = new List(); + foreach (var entry in bountyPrototype.Entries) + { + items.Add(Loc.GetString("bounty-console-manifest-entry", + ("amount", entry.Amount), + ("item", Loc.GetString(entry.Name)))); + } + ManifestLabel.SetMarkup(Loc.GetString("bounty-console-manifest-label", ("item", string.Join(", ", items)))); + RewardLabel.SetMarkup(Loc.GetString("bounty-console-reward-label", ("reward", bountyPrototype.Reward))); + IdLabel.SetMarkup(Loc.GetString("bounty-console-id-label", ("id", bounty.Id))); + + var stationTime = bounty.Timestamp.ToString("hh\\:mm\\:ss"); + if (bounty.ActorName == null) + { + StatusLabel.SetMarkup(Loc.GetString("bounty-console-history-completed-label")); + NoticeLabel.SetMarkup(Loc.GetString("bounty-console-history-notice-completed-label", ("time", stationTime))); + } + else + { + StatusLabel.SetMarkup(Loc.GetString("bounty-console-history-skipped-label")); + NoticeLabel.SetMarkup(Loc.GetString("bounty-console-history-notice-skipped-label", + ("id", bounty.ActorName), + ("time", stationTime))); + } + } + protected override void FrameUpdate(FrameEventArgs args) + { + base.FrameUpdate(args); + } +} diff --git a/Content.Client/Cargo/UI/CargoBountyMenu.xaml b/Content.Client/Cargo/UI/CargoBountyMenu.xaml index bb263ff6c4a..0f093d5f8e7 100644 --- a/Content.Client/Cargo/UI/CargoBountyMenu.xaml +++ b/Content.Client/Cargo/UI/CargoBountyMenu.xaml @@ -11,15 +11,26 @@ - - - - + + + + + + + + + + diff --git a/Content.Client/Cargo/UI/CargoBountyMenu.xaml.cs b/Content.Client/Cargo/UI/CargoBountyMenu.xaml.cs index 3767b45e4be..0717aacc5e6 100644 --- a/Content.Client/Cargo/UI/CargoBountyMenu.xaml.cs +++ b/Content.Client/Cargo/UI/CargoBountyMenu.xaml.cs @@ -17,8 +17,11 @@ public CargoBountyMenu() RobustXamlLoader.Load(this); } - public void UpdateEntries(List bounties, TimeSpan untilNextSkip) + public void UpdateEntries(List bounties, List history, TimeSpan untilNextSkip) { + MasterTabContainer.SetTabTitle(0, Loc.GetString("bounty-console-tab-available-label")); + MasterTabContainer.SetTabTitle(1, Loc.GetString("bounty-console-tab-history-label")); + BountyEntriesContainer.Children.Clear(); foreach (var b in bounties) { @@ -32,5 +35,12 @@ public void UpdateEntries(List bounties, TimeSpan untilNextSkip { MinHeight = 10 }); + + BountyHistoryContainer.Children.Clear(); + foreach (var h in history) + { + var entry = new BountyHistoryEntry(h); + BountyHistoryContainer.AddChild(entry); + } } } diff --git a/Content.Server/Cargo/Components/StationCargoBountyDatabaseComponent.cs b/Content.Server/Cargo/Components/StationCargoBountyDatabaseComponent.cs index a7735787cbb..f58b5450ba4 100644 --- a/Content.Server/Cargo/Components/StationCargoBountyDatabaseComponent.cs +++ b/Content.Server/Cargo/Components/StationCargoBountyDatabaseComponent.cs @@ -21,6 +21,13 @@ public sealed partial class StationCargoBountyDatabaseComponent : Component [DataField, ViewVariables(VVAccess.ReadWrite)] public List Bounties = new(); + /// + /// A list of all the bounties that have been completed or + /// skipped for a station. + /// + [DataField, ViewVariables(VVAccess.ReadWrite)] + public List History = new(); + /// /// Used to determine unique order IDs /// diff --git a/Content.Server/Cargo/Systems/CargoSystem.Bounty.cs b/Content.Server/Cargo/Systems/CargoSystem.Bounty.cs index 373e8e243ba..236b018a9da 100644 --- a/Content.Server/Cargo/Systems/CargoSystem.Bounty.cs +++ b/Content.Server/Cargo/Systems/CargoSystem.Bounty.cs @@ -8,6 +8,7 @@ using Content.Shared.Cargo.Components; using Content.Shared.Cargo.Prototypes; using Content.Shared.Database; +using Content.Shared.IdentityManagement; using Content.Shared.NameIdentifier; using Content.Shared.Paper; using Content.Shared.Stacks; @@ -16,6 +17,7 @@ using Robust.Server.Containers; using Robust.Shared.Containers; using Robust.Shared.Random; +using Robust.Shared.Timing; using Robust.Shared.Utility; namespace Content.Server.Cargo.Systems; @@ -25,6 +27,7 @@ public sealed partial class CargoSystem [Dependency] private readonly ContainerSystem _container = default!; [Dependency] private readonly NameIdentifierSystem _nameIdentifier = default!; [Dependency] private readonly EntityWhitelistSystem _whitelistSys = default!; + [Dependency] private readonly IGameTiming _gameTiming = default!; [ValidatePrototypeId] private const string BountyNameIdentifierGroup = "Bounty"; @@ -54,7 +57,7 @@ private void OnBountyConsoleOpened(EntityUid uid, CargoBountyConsoleComponent co return; var untilNextSkip = bountyDb.NextSkipTime - _timing.CurTime; - _uiSystem.SetUiState(uid, CargoConsoleUiKey.Bounty, new CargoBountyConsoleState(bountyDb.Bounties, untilNextSkip)); + _uiSystem.SetUiState(uid, CargoConsoleUiKey.Bounty, new CargoBountyConsoleState(bountyDb.Bounties, bountyDb.History, untilNextSkip)); } private void OnPrintLabelMessage(EntityUid uid, CargoBountyConsoleComponent component, BountyPrintLabelMessage args) @@ -95,13 +98,13 @@ private void OnSkipBountyMessage(EntityUid uid, CargoBountyConsoleComponent comp return; } - if (!TryRemoveBounty(station, bounty.Value)) + if (!TryRemoveBounty(station, bounty.Value, null, args.Actor)) return; FillBountyDatabase(station); db.NextSkipTime = _timing.CurTime + db.SkipDelay; var untilNextSkip = db.NextSkipTime - _timing.CurTime; - _uiSystem.SetUiState(uid, CargoConsoleUiKey.Bounty, new CargoBountyConsoleState(db.Bounties, untilNextSkip)); + _uiSystem.SetUiState(uid, CargoConsoleUiKey.Bounty, new CargoBountyConsoleState(db.Bounties, db.History, untilNextSkip)); _audio.PlayPvs(component.SkipSound, uid); } @@ -434,15 +437,15 @@ public bool TryAddBounty(EntityUid uid, CargoBountyPrototype bounty, StationCarg } [PublicAPI] - public bool TryRemoveBounty(EntityUid uid, string dataId, StationCargoBountyDatabaseComponent? component = null) + public bool TryRemoveBounty(EntityUid uid, string dataId, StationCargoBountyDatabaseComponent? component = null, EntityUid? actor = null) { if (!TryGetBountyFromId(uid, dataId, out var data, component)) return false; - return TryRemoveBounty(uid, data.Value, component); + return TryRemoveBounty(uid, data.Value, component, actor); } - public bool TryRemoveBounty(EntityUid uid, CargoBountyData data, StationCargoBountyDatabaseComponent? component = null) + public bool TryRemoveBounty(EntityUid uid, CargoBountyData data, StationCargoBountyDatabaseComponent? component = null, EntityUid? actor = null) { if (!Resolve(uid, ref component)) return false; @@ -451,6 +454,15 @@ public bool TryRemoveBounty(EntityUid uid, CargoBountyData data, StationCargoBou { if (component.Bounties[i].Id == data.Id) { + string? actorName = default; + if (actor != null) + { + var getIdentityEvent = new TryGetIdentityShortInfoEvent(uid, actor.Value); + RaiseLocalEvent(getIdentityEvent); + actorName = getIdentityEvent.Title; + } + + component.History.Add(new CargoBountyHistoryData(data, _gameTiming.CurTime, actorName)); component.Bounties.RemoveAt(i); return true; } @@ -492,7 +504,7 @@ public void UpdateBountyConsoles() } var untilNextSkip = db.NextSkipTime - _timing.CurTime; - _uiSystem.SetUiState((uid, ui), CargoConsoleUiKey.Bounty, new CargoBountyConsoleState(db.Bounties, untilNextSkip)); + _uiSystem.SetUiState((uid, ui), CargoConsoleUiKey.Bounty, new CargoBountyConsoleState(db.Bounties, db.History, untilNextSkip)); } } diff --git a/Content.Shared/Cargo/CargoBountyHistoryData.cs b/Content.Shared/Cargo/CargoBountyHistoryData.cs new file mode 100644 index 00000000000..43da42d5587 --- /dev/null +++ b/Content.Shared/Cargo/CargoBountyHistoryData.cs @@ -0,0 +1,46 @@ +using Robust.Shared.Serialization; +using Content.Shared.Cargo.Prototypes; +using Robust.Shared.Prototypes; + +namespace Content.Shared.Cargo; + +/// +/// A data structure for storing historical information about bounties. +/// +[DataDefinition, NetSerializable, Serializable] +public readonly partial record struct CargoBountyHistoryData +{ + /// + /// A unique id used to identify the bounty + /// + [DataField, ViewVariables(VVAccess.ReadWrite)] + public string Id { get; init; } = string.Empty; + + /// + /// Optional name of the actor that skipped the bounty. + /// Only set when the bounty has been skipped. + /// + [DataField, ViewVariables(VVAccess.ReadWrite)] + public string? ActorName { get; init; } = default; + + /// + /// Time when this bounty was completed or skipped + /// + [DataField, ViewVariables(VVAccess.ReadWrite)] + public TimeSpan Timestamp { get; init; } = TimeSpan.MinValue; + + /// + /// The prototype containing information about the bounty. + /// + [ViewVariables(VVAccess.ReadWrite)] + [DataField(required: true)] + public ProtoId Bounty { get; init; } = string.Empty; + + public CargoBountyHistoryData(CargoBountyData bounty, TimeSpan timestamp, string? actorName) + { + Bounty = bounty.Bounty; + Id = bounty.Id; + ActorName = actorName; + Timestamp = timestamp; + } +} diff --git a/Content.Shared/Cargo/Components/CargoBountyConsoleComponent.cs b/Content.Shared/Cargo/Components/CargoBountyConsoleComponent.cs index bf82a08127e..8c78312be19 100644 --- a/Content.Shared/Cargo/Components/CargoBountyConsoleComponent.cs +++ b/Content.Shared/Cargo/Components/CargoBountyConsoleComponent.cs @@ -50,11 +50,13 @@ public sealed partial class CargoBountyConsoleComponent : Component public sealed class CargoBountyConsoleState : BoundUserInterfaceState { public List Bounties; + public List History; public TimeSpan UntilNextSkip; - public CargoBountyConsoleState(List bounties, TimeSpan untilNextSkip) + public CargoBountyConsoleState(List bounties, List history, TimeSpan untilNextSkip) { Bounties = bounties; + History = history; UntilNextSkip = untilNextSkip; } } diff --git a/Resources/Locale/en-US/cargo/cargo-bounty-console.ftl b/Resources/Locale/en-US/cargo/cargo-bounty-console.ftl index 4314cbf4496..4d849c5bdab 100644 --- a/Resources/Locale/en-US/cargo/cargo-bounty-console.ftl +++ b/Resources/Locale/en-US/cargo/cargo-bounty-console.ftl @@ -18,3 +18,10 @@ bounty-console-flavor-right = v1.4 bounty-manifest-header = [font size=14][bold]Official cargo bounty manifest[/bold] (ID#{$id})[/font] bounty-manifest-list-start = Item manifest: + +bounty-console-tab-available-label = Available +bounty-console-tab-history-label = History +bounty-console-history-notice-completed-label = {$time} - Completed +bounty-console-history-notice-skipped-label = {$time} - Skipped by {$id} +bounty-console-history-completed-label = [color=limegreen]Completed[/color] +bounty-console-history-skipped-label = [color=red]Skipped[/color] From f49142ca8d7ceac483094444c372e849309dc02b Mon Sep 17 00:00:00 2001 From: Delta-V bot <135767721+DeltaV-Bot@users.noreply.github.com> Date: Wed, 18 Dec 2024 14:36:25 +0100 Subject: [PATCH 30/76] Automatic changelog update --- Resources/Changelog/DeltaVChangelog.yml | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/Resources/Changelog/DeltaVChangelog.yml b/Resources/Changelog/DeltaVChangelog.yml index 05c14075390..db32d37ed23 100644 --- a/Resources/Changelog/DeltaVChangelog.yml +++ b/Resources/Changelog/DeltaVChangelog.yml @@ -1,11 +1,4 @@ Entries: -- author: DangerRevolution - changes: - - message: Added lunchboxes to various staff lockers - type: Add - id: 290 - time: '2024-03-21T18:46:44.0000000+00:00' - url: https://github.com/DeltaV-Station/Delta-v/pull/989 - author: Velcroboy changes: - message: Reverted AME buff. AME will require more than 1 core again to function @@ -3819,3 +3812,11 @@ id: 789 time: '2024-12-18T11:33:37.0000000+00:00' url: https://github.com/DeltaV-Station/Delta-v/pull/2467 +- author: BarryNorfolk + changes: + - message: Added a history tab to the bounty computer, showing all past completed + and skipped orders (and who skipped them). + type: Add + id: 790 + time: '2024-12-18T13:36:06.0000000+00:00' + url: https://github.com/DeltaV-Station/Delta-v/pull/2473 From 747837cf776d310e3d2a5a2ddcc31bd4b83eafbf Mon Sep 17 00:00:00 2001 From: deltanedas <39013340+deltanedas@users.noreply.github.com> Date: Thu, 19 Dec 2024 03:10:43 +0000 Subject: [PATCH 31/76] buff ore box (#2468) Co-authored-by: deltanedas <@deltanedas:kde.org> --- Resources/Prototypes/Entities/Structures/Storage/ore_box.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Resources/Prototypes/Entities/Structures/Storage/ore_box.yml b/Resources/Prototypes/Entities/Structures/Storage/ore_box.yml index a23818ee466..5bb0344e438 100644 --- a/Resources/Prototypes/Entities/Structures/Storage/ore_box.yml +++ b/Resources/Prototypes/Entities/Structures/Storage/ore_box.yml @@ -51,7 +51,7 @@ False: { visible: true } - type: Storage grid: - - 0,0,9,5 + - 0,0,19,9 # DeltaV: Expanded to ore bag of holding storage maxItemSize: Normal storageOpenSound: /Audio/Effects/closetopen.ogg storageCloseSound: /Audio/Effects/closetclose.ogg From c4cce14d771a2655817cbfb14b2e73cb44e6c7e6 Mon Sep 17 00:00:00 2001 From: Delta-V bot <135767721+DeltaV-Bot@users.noreply.github.com> Date: Thu, 19 Dec 2024 04:11:02 +0100 Subject: [PATCH 32/76] Automatic changelog update --- Resources/Changelog/DeltaVChangelog.yml | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/Resources/Changelog/DeltaVChangelog.yml b/Resources/Changelog/DeltaVChangelog.yml index db32d37ed23..d28ee05ca3b 100644 --- a/Resources/Changelog/DeltaVChangelog.yml +++ b/Resources/Changelog/DeltaVChangelog.yml @@ -1,12 +1,4 @@ Entries: -- author: Velcroboy - changes: - - message: Reverted AME buff. AME will require more than 1 core again to function - properly. - type: Tweak - id: 291 - time: '2024-03-23T00:16:26.0000000+00:00' - url: https://github.com/DeltaV-Station/Delta-v/pull/996 - author: NullWanderer changes: - message: The maximum amount of unwhitelist players on Periapsis has been increased @@ -3820,3 +3812,10 @@ id: 790 time: '2024-12-18T13:36:06.0000000+00:00' url: https://github.com/DeltaV-Station/Delta-v/pull/2473 +- author: deltanedas + changes: + - message: Made the ore box hold much more ore. + type: Tweak + id: 791 + time: '2024-12-19T03:10:43.0000000+00:00' + url: https://github.com/DeltaV-Station/Delta-v/pull/2468 From 6ff1185659d758eb9d5846d00559c45f12b42438 Mon Sep 17 00:00:00 2001 From: Velcroboy <107660393+IamVelcroboy@users.noreply.github.com> Date: Wed, 18 Dec 2024 21:11:39 -0600 Subject: [PATCH 33/76] Centcomm Hotfix (#2480) Co-authored-by: Velcroboy --- Resources/Maps/DeltaV/centcomm.yml | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/Resources/Maps/DeltaV/centcomm.yml b/Resources/Maps/DeltaV/centcomm.yml index de085904d4b..5b367f2a7f4 100644 --- a/Resources/Maps/DeltaV/centcomm.yml +++ b/Resources/Maps/DeltaV/centcomm.yml @@ -3240,12 +3240,6 @@ entities: - type: Transform pos: 33.5,-5.5 parent: 1668 - - type: Door - secondsUntilStateChange: -3769.445 - state: Opening - - type: DeviceLinkSource - lastSignals: - DoorStatus: True - proto: AirlockEngineeringGlassLocked entities: - uid: 5175 @@ -28750,6 +28744,8 @@ entities: - type: Transform pos: 21.5,8.5 parent: 1668 + missingComponents: + - WarpPoint - proto: PlushieAtmosian entities: - uid: 6890 From a7625b6c9eb0ac18d8f23ffed7859fd4f645264e Mon Sep 17 00:00:00 2001 From: Velcroboy <107660393+IamVelcroboy@users.noreply.github.com> Date: Wed, 18 Dec 2024 21:12:41 -0600 Subject: [PATCH 34/76] Map Edits: Temporary Mining Shuttle Edits (#2479) * Map Edits: Temporary Mining Shuttle Edits * winterDrobe --------- Co-authored-by: Velcroboy --- Resources/Maps/arena.yml | 1548 +++++++++++++----------- Resources/Maps/hammurabi.yml | 807 +++++++------ Resources/Maps/hive.yml | 2191 +++++++++++++++++----------------- Resources/Maps/tortuga.yml | 630 +++++----- 4 files changed, 2742 insertions(+), 2434 deletions(-) diff --git a/Resources/Maps/arena.yml b/Resources/Maps/arena.yml index 948411a6fd3..ca0fd4dfaeb 100644 --- a/Resources/Maps/arena.yml +++ b/Resources/Maps/arena.yml @@ -240,7 +240,7 @@ entities: version: 6 -1,3: ind: -1,3 - tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAfgAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAfgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAfgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAfgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAfgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAfgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAfgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + tiles: AAAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAfgAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAfgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAfgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAfgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAfgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAfgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAfgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA version: 6 -3,-1: ind: -3,-1 @@ -8953,7 +8953,8 @@ entities: -4,1: 0: 3569 -5,1: - 0: 32767 + 0: 16383 + 1: 16384 -4,2: 0: 241 -5,2: @@ -9146,35 +9147,35 @@ entities: 0: 30591 -4,6: 0: 307 - 1: 34952 + 2: 34952 -5,6: 0: 65535 -4,7: - 1: 63624 + 2: 63624 -4,8: - 1: 4369 + 2: 4369 0: 61166 -3,5: 0: 65535 -3,6: - 1: 4369 + 2: 4369 0: 140 -3,7: - 1: 29457 + 2: 29457 -3,8: 0: 13115 - 1: 17476 + 2: 17476 -2,5: 0: 65535 -2,6: 0: 19 - 1: 34944 + 2: 34944 -2,8: 0: 28799 -1,5: 0: 4095 -1,6: - 1: 30576 + 2: 30576 -1,7: 0: 13107 -1,8: @@ -9439,18 +9440,18 @@ entities: 0: 65535 15,0: 0: 4369 - 1: 49164 + 2: 49164 15,1: 0: 28672 - 1: 8 + 2: 8 15,2: 0: 61559 15,-1: 0: 4369 16,0: - 1: 61455 + 2: 61455 16,1: - 1: 15 + 2: 15 0: 65280 16,2: 0: 57599 @@ -9633,7 +9634,7 @@ entities: -1,-7: 0: 65535 -1,-6: - 2: 65520 + 3: 65520 0: 4 -1,-9: 0: 64160 @@ -9644,7 +9645,7 @@ entities: 0,-7: 0: 57305 0,-6: - 2: 4368 + 3: 4368 0: 52416 -8,-8: 0: 65535 @@ -9716,7 +9717,7 @@ entities: 0: 65535 -12,-1: 0: 63247 - 3: 2048 + 4: 2048 -13,0: 0: 65528 -12,1: @@ -9731,7 +9732,7 @@ entities: 0: 63231 -12,4: 0: 63 - 1: 2048 + 2: 2048 -11,0: 0: 61183 -11,1: @@ -9740,11 +9741,11 @@ entities: 0: 24695 -11,3: 0: 255 - 1: 49152 + 2: 49152 -11,-1: 0: 65294 -11,4: - 1: 53198 + 2: 53198 -10,0: 0: 60943 -10,1: @@ -9753,11 +9754,11 @@ entities: 0: 4095 -10,3: 0: 255 - 1: 28672 + 2: 28672 -10,-1: 0: 65473 -10,4: - 1: 4471 + 2: 4471 0: 51336 -8,-16: 0: 4080 @@ -9837,7 +9838,7 @@ entities: 0: 61166 14,-8: 0: 65416 - 1: 1 + 2: 1 14,-7: 0: 15 14,-6: @@ -9860,7 +9861,7 @@ entities: 0: 16383 16,-8: 0: 65416 - 1: 1 + 2: 1 16,-7: 0: 34831 8,-12: @@ -9915,17 +9916,17 @@ entities: 0: 61166 14,-10: 0: 14 - 1: 256 + 2: 256 14,-13: 0: 52428 - 1: 256 + 2: 256 15,-12: 0: 65535 15,-11: 0: 65535 15,-10: 0: 15 - 1: 256 + 2: 256 15,-13: 0: 20479 16,-12: @@ -10063,19 +10064,19 @@ entities: -1,9: 0: 65535 0,10: - 1: 29760 + 2: 29760 0: 34944 0,11: 0: 153 - 1: 29542 + 2: 29542 -1,10: - 1: 61440 + 2: 61440 -1,11: 0: 52462 - 1: 13073 + 2: 13073 0,12: 0: 785 - 1: 29794 + 2: 29794 1,10: 0: 4912 1,11: @@ -10092,89 +10093,89 @@ entities: 0: 3272 8,9: 0: 816 - 1: 2176 + 2: 2176 8,10: 0: 30583 8,11: 0: 880 - 1: 128 + 2: 128 7,12: - 1: 8 + 2: 8 8,12: - 1: 4371 + 2: 4371 9,9: - 1: 4080 + 2: 4080 9,10: - 4: 273 - 5: 1092 + 5: 273 + 6: 1092 9,11: - 1: 240 + 2: 240 10,9: - 1: 4080 + 2: 4080 10,10: - 6: 273 - 7: 1092 + 7: 273 + 8: 1092 10,11: - 1: 752 + 2: 752 0: 28672 10,12: 0: 119 11,9: - 1: 4080 + 2: 4080 11,10: - 7: 1365 + 8: 1365 11,11: - 1: 35056 + 2: 35056 12,9: - 1: 4080 + 2: 4080 12,10: - 7: 273 + 8: 273 0: 34816 12,11: - 1: 5936 + 2: 5936 0: 136 11,12: - 1: 34952 + 2: 34952 -4,9: - 1: 143 + 2: 143 -4,10: - 1: 49152 + 2: 49152 -4,11: - 1: 33860 + 2: 33860 0: 2184 -3,9: - 1: 13175 + 2: 13175 0: 8 -3,10: - 1: 62259 + 2: 62259 -3,11: 0: 947 - 1: 29772 + 2: 29772 -2,9: 0: 15 -2,10: - 1: 63616 + 2: 63616 -2,11: - 1: 32863 + 2: 32863 0: 160 -1,12: - 1: 61457 + 2: 61457 0: 4078 0,13: - 1: 13107 + 2: 13107 0,14: - 1: 51 + 2: 51 -2,12: - 1: 34944 + 2: 34944 -1,13: - 1: 13107 + 2: 13107 -1,14: - 1: 51 + 2: 51 -12,-4: 0: 65134 -13,-4: 0: 56780 - 1: 1 + 2: 1 -12,-3: 0: 65103 -13,-3: @@ -10312,13 +10313,13 @@ entities: -12,-7: 0: 26214 -13,-7: - 1: 52431 + 2: 52431 -12,-6: 0: 26214 -13,-6: - 1: 52974 + 2: 52974 -13,-5: - 1: 8140 + 2: 8140 0: 49152 -11,-8: 0: 48050 @@ -10354,10 +10355,10 @@ entities: 0: 34952 16,-5: 0: 136 - 1: 16384 + 2: 16384 16,-9: 0: 34952 - 1: 8192 + 2: 8192 17,-8: 0: 65315 17,-7: @@ -10368,7 +10369,7 @@ entities: 0: 52479 17,-9: 0: 13107 - 1: 32768 + 2: 32768 17,-4: 0: 204 18,-8: @@ -10383,22 +10384,22 @@ entities: 0: 61166 19,-7: 0: 28672 - 1: 32 + 2: 32 19,-5: 0: 7 - 1: 4608 + 2: 4608 16,-11: 0: 61166 16,-10: 0: 14 - 1: 8448 + 2: 8448 17,-12: 0: 61439 17,-11: 0: 61166 17,-10: 0: 14 - 1: 33024 + 2: 33024 17,-13: 0: 43690 18,-12: @@ -10411,13 +10412,13 @@ entities: 0: 61440 19,-11: 0: 15 - 1: 2048 + 2: 2048 19,-10: 0: 61440 - 1: 136 + 2: 136 19,-9: 0: 15 - 1: 512 + 2: 512 20,-12: 0: 28672 20,-11: @@ -10449,7 +10450,8 @@ entities: 11,-14: 0: 47872 12,-14: - 0: 47872 + 0: 47360 + 9: 512 12,-13: 0: 3003 4,-20: @@ -10471,10 +10473,10 @@ entities: 5,-18: 0: 47887 5,-20: - 1: 1 + 2: 1 0: 34952 5,-21: - 1: 4369 + 2: 4369 0: 34816 6,-20: 0: 57297 @@ -10514,22 +10516,22 @@ entities: 0: 30476 -13,-12: 0: 28535 - 1: 8 + 2: 8 -12,-11: 0: 65319 -13,-11: 0: 56640 - 1: 16 + 2: 16 -12,-10: 0: 65295 -13,-10: 0: 52236 - 1: 4097 + 2: 4097 -13,-9: 0: 52364 -12,-13: 0: 25275 - 1: 4096 + 2: 4096 -11,-11: 0: 65280 -11,-10: @@ -10552,7 +10554,7 @@ entities: 0: 47935 -13,-16: 0: 52972 - 1: 12560 + 2: 12560 -12,-15: 0: 6827 -13,-15: @@ -10563,10 +10565,10 @@ entities: 0: 36588 -13,-13: 0: 26608 - 1: 38912 + 2: 38912 -12,-17: 0: 60544 - 1: 15 + 2: 15 -11,-16: 0: 65518 -11,-15: @@ -10621,7 +10623,7 @@ entities: 0: 30578 2,-21: 0: 17408 - 1: 238 + 2: 238 -5,-20: 0: 44643 -4,-19: @@ -10672,16 +10674,16 @@ entities: 0: 3 -17,3: 0: 15 - 1: 34816 + 2: 34816 -15,0: 0: 65399 -15,1: 0: 1911 -15,-1: 0: 28672 - 1: 68 + 2: 68 -15,2: - 1: 17476 + 2: 17476 -15,3: 0: 34944 -14,0: @@ -10701,9 +10703,9 @@ entities: -13,4: 0: 255 -13,3: - 1: 512 + 2: 512 -16,-4: - 1: 4096 + 2: 4096 -16,-2: 0: 4915 -17,-2: @@ -10711,12 +10713,12 @@ entities: -17,-1: 0: 47295 -15,-2: - 1: 19456 + 2: 19456 -14,-4: - 1: 1 + 2: 1 0: 65024 -14,-5: - 1: 7953 + 2: 7953 0: 204 -14,-3: 0: 65166 @@ -10726,19 +10728,19 @@ entities: 0: 13056 13,-13: 0: 819 - 1: 2048 + 2: 2048 14,-14: 0: 49152 15,-14: 0: 61440 16,-13: - 1: 10 + 2: 10 17,-14: 0: 43680 18,-13: - 1: 2 + 2: 2 19,-13: - 1: 8448 + 2: 8448 0,-23: 0: 8191 -1,-23: @@ -10750,41 +10752,41 @@ entities: 1,-22: 0: 4369 1,-24: - 1: 17988 + 2: 17988 1,-25: - 1: 61263 + 2: 61263 2,-23: - 1: 63624 + 2: 63624 2,-22: - 1: 59528 + 2: 59528 2,-24: - 1: 34952 + 2: 34952 2,-25: - 1: 36623 + 2: 36623 3,-24: - 1: 16 + 2: 16 0: 3822 3,-23: - 1: 16 + 2: 16 0: 3822 3,-22: - 1: 16 + 2: 16 0: 3822 3,-21: - 1: 16 + 2: 16 0: 3822 4,-24: 0: 1911 - 1: 128 + 2: 128 4,-23: 0: 1911 - 1: 128 + 2: 128 4,-22: 0: 1911 - 1: 128 + 2: 128 4,-21: 0: 1911 - 1: 128 + 2: 128 -4,-24: 0: 65382 -4,-23: @@ -10809,7 +10811,7 @@ entities: 0: 57580 -2,-25: 0: 57344 - 1: 3822 + 2: 3822 -1,-24: 0: 272 -1,-22: @@ -10865,23 +10867,23 @@ entities: -6,-18: 0: 16352 -12,-20: - 1: 46 + 2: 46 -13,-20: 0: 34952 - 1: 35 + 2: 35 -13,-19: 0: 34952 - 1: 4896 + 2: 4896 -12,-19: - 1: 36384 + 2: 36384 -12,-18: 0: 3891 - 1: 32904 + 2: 32904 -13,-18: 0: 3276 - 1: 4369 + 2: 4369 -13,-17: - 1: 15 + 2: 15 -11,-18: 0: 52673 -11,-19: @@ -10893,105 +10895,105 @@ entities: -10,-20: 0: 32768 16,-4: - 1: 32768 + 2: 32768 16,-3: - 1: 8 + 2: 8 17,-3: 0: 65518 17,-2: 0: 239 16,-2: - 1: 2048 + 2: 2048 18,-3: 0: 13073 - 1: 4 + 2: 4 18,-2: 0: 19 - 1: 1024 + 2: 1024 18,-4: - 1: 16384 + 2: 16384 -16,-7: - 1: 1103 + 2: 1103 -17,-7: - 1: 15 + 2: 15 -16,-6: - 1: 1525 + 2: 1525 -17,-6: - 1: 1525 + 2: 1525 -16,-8: 0: 3822 - 1: 16384 + 2: 16384 -16,-9: 0: 61152 - 1: 4 + 2: 4 -15,-7: - 1: 47 + 2: 47 0: 34816 -15,-6: - 1: 20016 + 2: 20016 0: 8 -15,-8: 0: 3822 - 1: 16384 + 2: 16384 -15,-9: 0: 61152 - 1: 4 + 2: 4 -15,-5: - 1: 19524 + 2: 19524 -14,-7: - 1: 15 + 2: 15 0: 65472 -14,-6: 0: 52431 - 1: 4352 + 2: 4352 -14,-8: 0: 3822 - 1: 16384 + 2: 16384 -14,-9: 0: 61152 - 1: 4 + 2: 4 -16,-12: - 1: 29218 + 2: 29218 -17,-12: - 1: 63078 + 2: 63078 -16,-11: - 1: 30562 + 2: 30562 -17,-11: - 1: 65382 + 2: 65382 -16,-10: - 1: 61444 + 2: 61444 -17,-10: - 1: 61440 + 2: 61440 -16,-13: - 1: 61440 + 2: 61440 0: 4081 -15,-10: - 1: 61440 + 2: 61440 0: 14 -15,-12: - 1: 819 + 2: 819 -15,-13: - 1: 61442 + 2: 61442 0: 4080 -15,-11: 0: 61152 -14,-10: - 1: 61452 + 2: 61452 -14,-12: - 1: 36650 + 2: 36650 -14,-13: - 1: 61440 + 2: 61440 0: 4080 -14,-11: - 1: 192 + 2: 192 0: 52224 12,12: - 1: 28945 + 2: 28945 13,9: 0: 26470 13,10: 0: 65286 - 1: 240 + 2: 240 13,11: 0: 4095 13,12: @@ -11000,81 +11002,81 @@ entities: 0: 32628 14,10: 0: 4352 - 1: 26208 + 2: 26208 14,11: 0: 17 - 1: 1638 + 2: 1638 15,9: 0: 65520 15,10: 0: 65535 16,9: - 1: 240 + 2: 240 0: 13056 16,10: 0: 13107 12,13: - 1: 61713 + 2: 61713 11,13: - 1: 63624 + 2: 63624 12,14: - 1: 31 + 2: 31 11,14: - 1: 63624 + 2: 63624 13,13: - 1: 61440 + 2: 61440 13,14: - 1: 15 + 2: 15 14,13: - 1: 62063 + 2: 62063 14,14: - 1: 255 + 2: 255 14,12: - 1: 24576 + 2: 24576 15,13: - 1: 15 + 2: 15 15,14: - 1: 15 + 2: 15 16,13: - 1: 15 + 2: 15 16,14: - 1: 15 + 2: 15 -20,-6: - 1: 2296 + 2: 2296 -21,-6: - 1: 240 + 2: 240 -19,-6: - 1: 2039 + 2: 2039 -19,-8: - 1: 40857 + 2: 40857 -19,-9: - 1: 39417 + 2: 39417 -19,-7: - 1: 4383 + 2: 4383 -18,-7: - 1: 17487 + 2: 17487 -18,-6: - 1: 244 + 2: 244 -18,-8: 0: 3822 - 1: 16384 + 2: 16384 -18,-9: 0: 61152 - 1: 4 + 2: 4 -17,-8: 0: 3822 - 1: 16384 + 2: 16384 -17,-9: 0: 61152 - 1: 4 + 2: 4 -10,5: 0: 52972 -10,6: 0: 136 -16,-20: - 1: 15 + 2: 15 -17,-20: - 1: 8 + 2: 8 -16,-19: 0: 54519 -17,-19: @@ -11090,7 +11092,7 @@ entities: -16,-16: 0: 3942 -15,-20: - 1: 7 + 2: 7 -15,-19: 0: 65280 -15,-18: @@ -11098,7 +11100,7 @@ entities: -15,-17: 0: 63675 -15,-21: - 1: 17408 + 2: 17408 0: 287 -14,-19: 0: 4096 @@ -11107,49 +11109,49 @@ entities: -14,-17: 0: 273 -14,-20: - 1: 8 + 2: 8 -13,-21: 0: 36863 -16,-22: - 1: 15 + 2: 15 0: 61184 -17,-22: - 1: 34952 + 2: 34952 -16,-21: 0: 3838 -17,-21: - 1: 34952 + 2: 34952 -15,-22: - 1: 1095 + 2: 1095 0: 4352 -14,-21: 0: 15 -14,-22: - 1: 1216 + 2: 1216 -13,-22: 0: 61440 -12,-22: 0: 61440 - 1: 128 + 2: 128 -12,-21: 0: 1911 -11,-22: - 1: 16 + 2: 16 0: 61440 -10,-22: 0: 64704 - 1: 17 + 2: 17 -10,-23: - 1: 61440 + 2: 61440 -10,-21: - 1: 61712 + 2: 61712 0: 204 -9,-23: - 1: 12288 + 2: 12288 -9,-21: - 1: 12834 + 2: 12834 -9,-22: - 1: 8738 + 2: 8738 -17,-16: 0: 28671 -16,-15: @@ -11160,17 +11162,17 @@ entities: 0: 13117 -17,-13: 0: 4086 - 1: 61440 + 2: 61440 -15,-16: 0: 25344 - 1: 2048 + 2: 2048 -15,-14: 0: 3 - 1: 8736 + 2: 8736 -15,-15: 0: 26214 -14,-16: - 1: 36608 + 2: 36608 -20,-20: 0: 65280 -20,-19: @@ -11219,83 +11221,83 @@ entities: 0: 60943 9,-24: 0: 4369 - 1: 136 + 2: 136 9,-23: 0: 24593 9,-22: 0: 61159 9,-25: - 1: 53007 + 2: 53007 10,-24: - 1: 9010 + 2: 9010 10,-23: - 1: 30498 + 2: 30498 10,-22: 0: 13104 10,-25: - 1: 26487 + 2: 26487 5,-24: - 1: 39385 + 2: 39385 5,-23: - 1: 7577 + 2: 7577 5,-22: - 1: 4369 + 2: 4369 0: 3276 5,-25: - 1: 57231 + 2: 57231 6,-23: - 1: 256 + 2: 256 0: 49356 6,-22: 0: 52703 6,-24: 0: 52428 -2,-26: - 1: 57344 + 2: 57344 -1,-25: - 1: 3855 + 2: 3855 0,-25: - 1: 3855 + 2: 3855 3,-25: - 1: 3855 + 2: 3855 4,-25: - 1: 3855 + 2: 3855 6,-25: - 1: 7951 + 2: 7951 7,-25: - 1: 3855 + 2: 3855 8,-25: - 1: 3855 + 2: 3855 10,-26: - 1: 28672 + 2: 28672 -16,4: - 1: 16 + 2: 16 -15,5: - 1: 4 + 2: 4 8,13: - 1: 63249 + 2: 63249 7,13: - 1: 34816 + 2: 34816 8,14: - 1: 50247 + 2: 50247 7,14: - 1: 8 + 2: 8 8,15: - 1: 50244 + 2: 50244 8,16: - 1: 50244 + 2: 50244 9,13: - 1: 12288 + 2: 12288 0: 52224 9,14: - 1: 12288 + 2: 12288 0: 52236 9,15: - 1: 12288 + 2: 12288 0: 52236 9,16: 0: 52236 - 1: 12288 + 2: 12288 10,13: 0: 65280 10,14: @@ -11305,41 +11307,41 @@ entities: 10,16: 0: 65295 11,15: - 1: 63624 + 2: 63624 11,16: - 1: 63624 + 2: 63624 -20,-11: - 1: 2184 + 2: 2184 -19,-11: - 1: 65331 + 2: 65331 -19,-12: - 1: 61713 + 2: 61713 -19,-13: - 1: 61940 + 2: 61940 -19,-10: - 1: 61713 + 2: 61713 -18,-12: - 1: 62259 + 2: 62259 -18,-11: - 1: 65331 + 2: 65331 -18,-10: - 1: 62532 + 2: 62532 -18,-13: 0: 65528 -24,-6: - 1: 497 + 2: 497 -23,-6: - 1: 240 + 2: 240 -22,-6: - 1: 240 + 2: 240 -25,-6: - 1: 1863 + 2: 1863 -20,0: - 1: 49664 + 2: 49664 -20,1: - 1: 2 + 2: 2 -19,0: - 1: 4096 + 2: 4096 0: 52428 -19,1: 0: 3276 @@ -11354,15 +11356,15 @@ entities: -18,2: 0: 12 -17,4: - 1: 72 + 2: 72 -17,-4: - 1: 16384 + 2: 16384 -17,-3: - 1: 2184 + 2: 2184 17,0: - 1: 61999 + 2: 61999 17,1: - 1: 15 + 2: 15 0: 56576 17,2: 0: 61661 @@ -11371,9 +11373,9 @@ entities: 17,4: 0: 36863 18,0: - 1: 61455 + 2: 61455 18,1: - 1: 15 + 2: 15 0: 30464 18,2: 0: 12407 @@ -11382,19 +11384,19 @@ entities: 18,4: 0: 3067 19,0: - 1: 12847 + 2: 12847 19,1: - 1: 13107 + 2: 13107 19,2: - 1: 3891 + 2: 3891 19,3: 0: 1911 19,4: 0: 52733 20,0: - 1: 15 + 2: 15 20,3: - 1: 4096 + 2: 4096 16,7: 0: 61166 16,8: @@ -11405,7 +11407,7 @@ entities: 0: 4369 17,8: 0: 4369 - 1: 50176 + 2: 50176 17,5: 0: 3276 18,5: @@ -11414,41 +11416,41 @@ entities: 0: 30583 20,4: 0: 4369 - 1: 3808 + 2: 3808 17,9: - 1: 244 + 2: 244 18,8: - 1: 61440 + 2: 61440 18,9: - 1: 245 + 2: 245 19,8: - 1: 61440 + 2: 61440 19,9: - 1: 36080 + 2: 36080 20,8: - 1: 61440 + 2: 61440 20,9: - 1: 40176 + 2: 40176 8,17: - 1: 60996 + 2: 60996 8,18: - 1: 14 + 2: 14 9,17: - 1: 61440 + 2: 61440 0: 12 10,17: 0: 15 - 1: 61440 + 2: 61440 11,17: - 1: 64648 + 2: 64648 11,18: - 1: 12 + 2: 12 12,17: - 1: 4352 + 2: 4352 12,18: - 1: 1 + 2: 1 21,4: - 1: 36856 + 2: 36856 21,5: 0: 52428 21,6: @@ -11456,7 +11458,7 @@ entities: 21,3: 0: 52428 22,4: - 1: 36856 + 2: 36856 22,5: 0: 56797 22,6: @@ -11464,7 +11466,7 @@ entities: 22,3: 0: 56797 23,4: - 1: 36856 + 2: 36856 23,5: 0: 56797 23,6: @@ -11472,7 +11474,7 @@ entities: 23,3: 0: 56797 24,4: - 1: 36856 + 2: 36856 24,5: 0: 56797 24,6: @@ -11480,150 +11482,150 @@ entities: 24,3: 0: 56797 25,4: - 1: 4080 + 2: 4080 25,5: 0: 4369 25,6: 0: 17 27,7: - 1: 25668 + 2: 25668 27,8: - 1: 29783 + 2: 29783 27,4: - 1: 17476 + 2: 17476 27,3: - 1: 17476 + 2: 17476 27,5: - 1: 17476 + 2: 17476 27,6: - 1: 17476 + 2: 17476 21,0: - 1: 15 + 2: 15 21,2: 0: 52224 22,0: - 1: 143 + 2: 143 22,2: 0: 56576 22,-1: - 1: 32768 + 2: 32768 23,0: - 1: 62335 + 2: 62335 23,2: 0: 56576 23,-1: - 1: 29491 + 2: 29491 24,0: - 1: 61455 + 2: 61455 24,2: 0: 56576 24,-1: - 1: 17476 + 2: 17476 25,0: - 1: 61455 + 2: 61455 25,2: 0: 4352 25,3: 0: 4369 26,0: - 1: 61455 + 2: 61455 26,1: - 1: 140 + 2: 140 27,0: - 1: 29303 + 2: 29303 27,1: - 1: 26452 + 2: 26452 27,-1: - 1: 28672 + 2: 28672 27,2: - 1: 17476 + 2: 17476 23,-4: - 1: 13107 + 2: 13107 23,-5: - 1: 13107 + 2: 13107 23,-3: - 1: 13107 + 2: 13107 23,-2: - 1: 13299 + 2: 13299 24,-2: - 1: 17524 + 2: 17524 23,-6: - 1: 61440 + 2: 61440 24,-6: - 1: 28672 + 2: 28672 24,-4: - 1: 17476 + 2: 17476 24,-5: - 1: 17476 + 2: 17476 24,-3: - 1: 17476 + 2: 17476 24,8: - 1: 61440 + 2: 61440 23,8: - 1: 61440 + 2: 61440 24,9: - 1: 240 + 2: 240 23,9: - 1: 240 + 2: 240 25,8: - 1: 61440 + 2: 61440 25,9: - 1: 240 + 2: 240 26,8: - 1: 64640 + 2: 64640 26,9: - 1: 240 + 2: 240 27,9: - 1: 116 + 2: 116 20,10: - 1: 35051 + 2: 35051 21,8: - 1: 61440 + 2: 61440 21,9: - 1: 9968 + 2: 9968 20,11: - 1: 34952 + 2: 34952 20,12: - 1: 51336 + 2: 51336 21,10: - 1: 8814 + 2: 8814 21,11: - 1: 8738 + 2: 8738 21,12: - 1: 12834 + 2: 12834 22,8: - 1: 61440 + 2: 61440 22,9: - 1: 14064 + 2: 14064 22,10: - 1: 1 + 2: 1 17,13: - 1: 15 + 2: 15 17,14: - 1: 15 + 2: 15 18,13: - 1: 15 + 2: 15 18,14: - 1: 15 + 2: 15 19,13: - 1: 15 + 2: 15 19,14: - 1: 15 + 2: 15 20,13: - 1: 51407 + 2: 51407 20,14: - 1: 207 + 2: 207 21,13: - 1: 4115 + 2: 4115 21,14: - 1: 17 + 2: 17 -21,-16: 0: 14 -19,-15: 0: 26214 -19,-14: 0: 12 - 1: 17472 + 2: 17472 -18,-15: 0: 4095 -18,-14: @@ -11648,6 +11650,21 @@ entities: - 0 - 0 - 0 + - volume: 2500 + temperature: 293.14975 + moles: + - 21.824879 + - 82.10312 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 - volume: 2500 immutable: True moles: @@ -11753,6 +11770,21 @@ entities: - 0 - 0 - 0 + - volume: 2500 + temperature: 293.1495 + moles: + - 20.078888 + - 75.53487 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 chunkSize: 4 - type: OccluderTree - type: GridPathfinding @@ -14665,6 +14697,14 @@ entities: rot: 3.141592653589793 rad pos: 21.5,36.5 parent: 6747 +- proto: AirlockExternalGlassShuttleMiningFilled + entities: + - uid: 17305 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -11.5,50.5 + parent: 6747 - proto: AirlockExternalGlassShuttleShipyard entities: - uid: 1047 @@ -20569,7 +20609,7 @@ entities: - uid: 17306 components: - type: Transform - parent: 17305 + parent: 136 - type: Physics canCollide: False - type: InsideEntityStorage @@ -59586,27 +59626,6 @@ entities: - type: Transform pos: -28.5,-39.5 parent: 6747 - - uid: 17305 - components: - - type: Transform - pos: 49.5,-53.5 - parent: 6747 - - type: ContainerContainer - containers: - entity_storage: !type:Container - showEnts: False - occludes: True - ents: - - 17319 - - 17306 - - 17307 - - 17308 - - 17317 - - 17318 - paper_label: !type:ContainerSlot - showEnts: False - occludes: True - ent: null - uid: 21078 components: - type: Transform @@ -60634,7 +60653,7 @@ entities: - uid: 17319 components: - type: Transform - parent: 17305 + parent: 136 - type: Physics canCollide: False - type: InsideEntityStorage @@ -60841,7 +60860,7 @@ entities: - uid: 17318 components: - type: Transform - parent: 17305 + parent: 136 - type: Physics canCollide: False - type: InsideEntityStorage @@ -60863,7 +60882,7 @@ entities: - uid: 17307 components: - type: Transform - parent: 17305 + parent: 136 - type: Physics canCollide: False - type: InsideEntityStorage @@ -60880,7 +60899,7 @@ entities: - uid: 17317 components: - type: Transform - parent: 17305 + parent: 136 - type: Physics canCollide: False - type: InsideEntityStorage @@ -63542,6 +63561,13 @@ entities: - type: Transform pos: 67.5,14.5 parent: 6747 +- proto: DefaultStationBeaconAnchor + entities: + - uid: 29475 + components: + - type: Transform + pos: 77.5,14.5 + parent: 6747 - proto: DefaultStationBeaconAnomalyGenerator entities: - uid: 27409 @@ -75134,11 +75160,6 @@ entities: parent: 6747 - proto: DresserFilled entities: - - uid: 136 - components: - - type: Transform - pos: -15.5,6.5 - parent: 6747 - uid: 4272 components: - type: Transform @@ -127461,10 +127482,10 @@ entities: parent: 6747 - proto: LockerDetectiveFilled entities: - - uid: 15707 + - uid: 8609 components: - type: Transform - pos: -17.5,7.5 + pos: -15.5,6.5 parent: 6747 - proto: LockerEngineerFilled entities: @@ -127697,6 +127718,47 @@ entities: - type: Transform pos: 20.5,-34.5 parent: 6747 +- proto: LockerPsychologistFilled + entities: + - uid: 136 + components: + - type: Transform + pos: 49.5,-53.5 + parent: 6747 + - type: EntityStorage + air: + volume: 200 + immutable: False + temperature: 293.1465 + moles: + - 1.7459903 + - 6.568249 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - type: ContainerContainer + containers: + entity_storage: !type:Container + showEnts: False + occludes: True + ents: + - 17318 + - 17317 + - 17308 + - 17307 + - 17306 + - 17319 + paper_label: !type:ContainerSlot + showEnts: False + occludes: True + ent: null - proto: LockerQuarterMasterFilled entities: - uid: 9424 @@ -136462,7 +136524,7 @@ entities: - type: MetaData name: pill canister (dump me) - type: Transform - parent: 17305 + parent: 136 - type: ContainerContainer containers: storagebase: !type:Container @@ -138372,6 +138434,325 @@ entities: rot: 1.5707963267948966 rad pos: -71.5,-57.5 parent: 6747 +- proto: PoweredDimSmallLight + entities: + - uid: 8815 + components: + - type: Transform + pos: 35.5,-55.5 + parent: 6747 + - type: PointLight + enabled: False + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 9046 + components: + - type: Transform + pos: 4.5,5.5 + parent: 6747 + - type: PointLight + enabled: False + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 11158 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 53.5,-18.5 + parent: 6747 + - type: PointLight + enabled: False + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 11845 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 34.5,22.5 + parent: 6747 + - type: PointLight + enabled: False + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 11848 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 55.5,21.5 + parent: 6747 + - type: PointLight + enabled: False + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 11869 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 11.5,0.5 + parent: 6747 + - type: PointLight + enabled: False + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 11871 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -5.5,-70.5 + parent: 6747 + - type: PointLight + enabled: False + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 11873 + components: + - type: Transform + pos: -0.5,-63.5 + parent: 6747 + - type: PointLight + enabled: False + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 12024 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.5,-67.5 + parent: 6747 + - type: PointLight + enabled: False + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 13045 + components: + - type: Transform + pos: -33.5,-57.5 + parent: 6747 + - type: PointLight + enabled: False + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 13047 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -35.5,-58.5 + parent: 6747 + - type: PointLight + enabled: False + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 13049 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -38.5,-42.5 + parent: 6747 + - type: PointLight + enabled: False + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 13237 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 30.5,-73.5 + parent: 6747 + - type: PointLight + enabled: False + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 13239 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 32.5,-70.5 + parent: 6747 + - type: PointLight + enabled: False + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 13255 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 37.5,-69.5 + parent: 6747 + - type: PointLight + enabled: False + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 13258 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 35.5,-86.5 + parent: 6747 + - type: PointLight + enabled: False + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 13963 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 26.5,-88.5 + parent: 6747 + - type: PointLight + enabled: False + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 13978 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 51.5,-39.5 + parent: 6747 + - type: PointLight + enabled: False + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 14033 + components: + - type: Transform + pos: 43.5,-37.5 + parent: 6747 + - type: PointLight + enabled: False + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 14054 + components: + - type: Transform + pos: 59.5,-5.5 + parent: 6747 + - type: PointLight + enabled: False + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 16010 + components: + - type: Transform + pos: 30.5,-63.5 + parent: 6747 + - type: PointLight + enabled: False + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 16171 + components: + - type: Transform + pos: 2.5,-30.5 + parent: 6747 + - type: PointLight + enabled: False + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 16172 + components: + - type: Transform + pos: 48.5,4.5 + parent: 6747 + - type: PointLight + enabled: False + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 16173 + components: + - type: Transform + pos: 5.5,-17.5 + parent: 6747 + - type: PointLight + enabled: False + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 16174 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 52.5,-1.5 + parent: 6747 + - type: PointLight + enabled: False + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 16176 + components: + - type: Transform + pos: 1.5,-14.5 + parent: 6747 + - type: PointLight + enabled: False + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 16289 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -41.5,11.5 + parent: 6747 + - type: PointLight + enabled: False + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 16290 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -44.5,11.5 + parent: 6747 + - type: PointLight + enabled: False + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 16293 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -51.5,-5.5 + parent: 6747 + - type: PointLight + enabled: False + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 16296 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 2.5,-28.5 + parent: 6747 + - type: PointLight + enabled: False + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 16799 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 42.5,-54.5 + parent: 6747 + - type: PointLight + enabled: False + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 16802 + components: + - type: Transform + pos: 53.5,-12.5 + parent: 6747 + - type: PointLight + enabled: False + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 27533 + components: + - type: Transform + pos: -44.5,16.5 + parent: 6747 + - type: PointLight + enabled: False + - type: ApcPowerReceiver + powerLoad: 0 - proto: Poweredlight entities: - uid: 683 @@ -143089,325 +143470,6 @@ entities: enabled: False - type: ApcPowerReceiver powerLoad: 0 -- proto: PoweredSmallLightMaintenanceRed - entities: - - uid: 8815 - components: - - type: Transform - pos: 35.5,-55.5 - parent: 6747 - - type: PointLight - enabled: False - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 9046 - components: - - type: Transform - pos: 4.5,5.5 - parent: 6747 - - type: PointLight - enabled: False - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 11158 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 53.5,-18.5 - parent: 6747 - - type: PointLight - enabled: False - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 11845 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 34.5,22.5 - parent: 6747 - - type: PointLight - enabled: False - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 11848 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 55.5,21.5 - parent: 6747 - - type: PointLight - enabled: False - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 11869 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 11.5,0.5 - parent: 6747 - - type: PointLight - enabled: False - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 11871 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: -5.5,-70.5 - parent: 6747 - - type: PointLight - enabled: False - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 11873 - components: - - type: Transform - pos: -0.5,-63.5 - parent: 6747 - - type: PointLight - enabled: False - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 12024 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: -0.5,-67.5 - parent: 6747 - - type: PointLight - enabled: False - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 13045 - components: - - type: Transform - pos: -33.5,-57.5 - parent: 6747 - - type: PointLight - enabled: False - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 13047 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: -35.5,-58.5 - parent: 6747 - - type: PointLight - enabled: False - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 13049 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: -38.5,-42.5 - parent: 6747 - - type: PointLight - enabled: False - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 13237 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 30.5,-73.5 - parent: 6747 - - type: PointLight - enabled: False - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 13239 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 32.5,-70.5 - parent: 6747 - - type: PointLight - enabled: False - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 13255 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 37.5,-69.5 - parent: 6747 - - type: PointLight - enabled: False - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 13258 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 35.5,-86.5 - parent: 6747 - - type: PointLight - enabled: False - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 13963 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 26.5,-88.5 - parent: 6747 - - type: PointLight - enabled: False - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 13978 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 51.5,-39.5 - parent: 6747 - - type: PointLight - enabled: False - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 14033 - components: - - type: Transform - pos: 43.5,-37.5 - parent: 6747 - - type: PointLight - enabled: False - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 14054 - components: - - type: Transform - pos: 59.5,-5.5 - parent: 6747 - - type: PointLight - enabled: False - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 16010 - components: - - type: Transform - pos: 30.5,-63.5 - parent: 6747 - - type: PointLight - enabled: False - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 16171 - components: - - type: Transform - pos: 2.5,-30.5 - parent: 6747 - - type: PointLight - enabled: False - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 16172 - components: - - type: Transform - pos: 48.5,4.5 - parent: 6747 - - type: PointLight - enabled: False - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 16173 - components: - - type: Transform - pos: 5.5,-17.5 - parent: 6747 - - type: PointLight - enabled: False - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 16174 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 52.5,-1.5 - parent: 6747 - - type: PointLight - enabled: False - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 16176 - components: - - type: Transform - pos: 1.5,-14.5 - parent: 6747 - - type: PointLight - enabled: False - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 16289 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: -41.5,11.5 - parent: 6747 - - type: PointLight - enabled: False - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 16290 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: -44.5,11.5 - parent: 6747 - - type: PointLight - enabled: False - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 16293 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: -51.5,-5.5 - parent: 6747 - - type: PointLight - enabled: False - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 16296 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 2.5,-28.5 - parent: 6747 - - type: PointLight - enabled: False - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 16799 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 42.5,-54.5 - parent: 6747 - - type: PointLight - enabled: False - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 16802 - components: - - type: Transform - pos: 53.5,-12.5 - parent: 6747 - - type: PointLight - enabled: False - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 27533 - components: - - type: Transform - pos: -44.5,16.5 - parent: 6747 - - type: PointLight - enabled: False - - type: ApcPowerReceiver - powerLoad: 0 - proto: PresentRandom entities: - uid: 22513 @@ -144685,24 +144747,6 @@ entities: - type: Transform pos: -14.5,31.5 parent: 6747 - - uid: 8608 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: -12.5,47.5 - parent: 6747 - - uid: 8609 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: -11.5,47.5 - parent: 6747 - - uid: 8610 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: -10.5,47.5 - parent: 6747 - uid: 8611 components: - type: Transform @@ -144735,8 +144779,8 @@ entities: - uid: 8622 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -9.5,45.5 + rot: -1.5707963267948966 rad + pos: -12.5,48.5 parent: 6747 - uid: 23831 components: @@ -144804,6 +144848,24 @@ entities: rot: 3.141592653589793 rad pos: 79.5,19.5 parent: 6747 + - uid: 29470 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -12.5,49.5 + parent: 6747 + - uid: 29471 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -10.5,48.5 + parent: 6747 + - uid: 29472 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -10.5,49.5 + parent: 6747 - proto: RailingCorner entities: - uid: 379 @@ -144957,11 +145019,22 @@ entities: parent: 6747 - proto: RailingCornerSmall entities: + - uid: 8610 + components: + - type: Transform + pos: -12.5,47.5 + parent: 6747 + - uid: 15707 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -10.5,47.5 + parent: 6747 - uid: 15900 components: - type: Transform rot: -1.5707963267948966 rad - pos: -9.5,44.5 + pos: -9.5,45.5 parent: 6747 - uid: 17802 components: @@ -167863,6 +167936,13 @@ entities: - type: Transform pos: 24.5,-58.5 parent: 6747 +- proto: VendingMachineDetDrobe + entities: + - uid: 8608 + components: + - type: Transform + pos: -17.5,7.5 + parent: 6747 - proto: VendingMachineDinnerware entities: - uid: 2713 @@ -178696,6 +178776,18 @@ entities: - type: Transform pos: -55.5,-73.5 parent: 6747 + - uid: 29473 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -12.5,50.5 + parent: 6747 + - uid: 29474 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -10.5,50.5 + parent: 6747 - proto: WallRiveted entities: - uid: 22305 diff --git a/Resources/Maps/hammurabi.yml b/Resources/Maps/hammurabi.yml index 33e760d7a2e..995367bb209 100644 --- a/Resources/Maps/hammurabi.yml +++ b/Resources/Maps/hammurabi.yml @@ -384,7 +384,7 @@ entities: version: 6 0,2: ind: 0,2 - tiles: fwAAAAAAfwAAAAAAJQAAAAAAJQAAAAAAJQAAAAADUAAAAAAAfwAAAAAAfwAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfwAAAAAAJQAAAAADJQAAAAABJQAAAAABUAAAAAAAfwAAAAAAfwAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfwAAAAAAfwAAAAAAJQAAAAADJQAAAAACUAAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAATwAAAAABTwAAAAAAQwAAAAAATwAAAAAATwAAAAAATwAAAAAATwAAAAAAUAAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAaQAAAAAATwAAAAABTwAAAAABQwAAAAAATwAAAAACTwAAAAABQwAAAAAAQwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAaQAAAAADQwAAAAAAQwAAAAAATwAAAAACTwAAAAAATwAAAAADTwAAAAAATwAAAAACUAAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfwAAAAAATwAAAAACTwAAAAADTwAAAAABTwAAAAABTwAAAAADTwAAAAADTwAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAJQAAAAABJQAAAAABfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfwAAAAAAAAAAAAAAfwAAAAAAJQAAAAADJQAAAAAAfwAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAUAAAAAAAAAAAAAAAUAAAAAAAJQAAAAADJQAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAUAAAAAAAJQAAAAADJQAAAAADUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAUAAAAAAAJQAAAAAAJQAAAAABUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfwAAAAAAfgAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAAAAAAAAAfgAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAfgAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAfgAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + tiles: fwAAAAAAfwAAAAAAJQAAAAAAJQAAAAAAJQAAAAADUAAAAAAAfwAAAAAAfwAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfwAAAAAAJQAAAAADJQAAAAABJQAAAAABUAAAAAAAfwAAAAAAfwAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfwAAAAAAfwAAAAAAJQAAAAADJQAAAAACUAAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAATwAAAAABTwAAAAAAQwAAAAAATwAAAAAATwAAAAAATwAAAAAATwAAAAAAUAAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAaQAAAAAATwAAAAABTwAAAAABQwAAAAAATwAAAAACTwAAAAABQwAAAAAAQwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAaQAAAAADQwAAAAAAQwAAAAAATwAAAAACTwAAAAAATwAAAAADTwAAAAAATwAAAAACUAAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfwAAAAAATwAAAAACTwAAAAADTwAAAAABTwAAAAABTwAAAAADTwAAAAADTwAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAJQAAAAABJQAAAAABfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfwAAAAAAAAAAAAAAfwAAAAAAJQAAAAADJQAAAAAAfwAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAUAAAAAAAAAAAAAAAUAAAAAAAJQAAAAADJQAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAUAAAAAAAJQAAAAADJQAAAAADUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAUAAAAAAAJQAAAAAAJQAAAAABUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfwAAAAAAfgAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAAAAAAAAAfgAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAfgAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAfgAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA version: 6 -2,2: ind: -2,2 @@ -548,7 +548,7 @@ entities: version: 6 0,3: ind: 0,3 - tiles: fwAAAAAAAAAAAAAAUAAAAAAAfwAAAAAAfwAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfwAAAAAAAAAAAAAAUAAAAAAAfwAAAAAAfwAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfwAAAAAAAAAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + tiles: fwAAAAAAAAAAAAAAUAAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfwAAAAAAAAAAAAAAUAAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfwAAAAAAAAAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAfwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA version: 6 -1,3: ind: -1,3 @@ -13102,7 +13102,8 @@ entities: -3,-6: 0: 61183 -3,-9: - 0: 53691 + 0: 53689 + 3: 2 -2,-8: 0: 3583 -2,-7: @@ -14153,12 +14154,12 @@ entities: -7,-14: 0: 65039 -7,-16: - 3: 3822 + 4: 3822 -7,-17: - 3: 57344 + 4: 57344 2: 255 -6,-16: - 3: 819 + 4: 819 0: 136 2: 32768 -6,-15: @@ -14167,7 +14168,7 @@ entities: -6,-14: 0: 15 -6,-17: - 3: 12288 + 4: 12288 0: 34944 -5,-17: 0: 65496 @@ -15136,7 +15137,7 @@ entities: -24,-13: 0: 12288 2: 34952 - 3: 34 + 4: 34 -25,-12: 0: 65535 -24,-11: @@ -15626,7 +15627,7 @@ entities: 2: 2 -28,-13: 2: 33280 - 3: 128 + 4: 128 -27,-11: 0: 13107 -27,-10: @@ -15635,18 +15636,18 @@ entities: 0: 3822 -27,-13: 0: 57344 - 3: 48 - 4: 136 + 4: 48 + 5: 136 -26,-12: 0: 4095 -26,-11: - 3: 1911 + 4: 1911 -26,-10: 0: 61168 -26,-13: 0: 61440 - 4: 17 - 5: 204 + 5: 17 + 6: 204 -25,-13: 0: 62702 -40,-1: @@ -16204,14 +16205,14 @@ entities: 2: 3840 -28,-16: 0: 15 - 3: 1792 + 4: 1792 -28,-17: 0: 65391 -28,-15: - 6: 7 - 3: 1792 + 7: 7 + 4: 1792 -28,-14: - 3: 7 + 4: 7 0: 34816 -27,-16: 0: 65535 @@ -16246,18 +16247,18 @@ entities: -27,-20: 2: 1 0: 4352 - 3: 52224 + 4: 52224 -27,-19: 0: 4371 - 3: 204 + 4: 204 2: 49152 -27,-18: 0: 4369 2: 52428 -26,-20: - 3: 30464 + 4: 30464 -26,-19: - 3: 119 + 4: 119 2: 28672 -26,-18: 2: 30583 @@ -17111,6 +17112,21 @@ entities: - 0 - 0 - 0 + - volume: 2500 + temperature: 293.1495 + moles: + - 20.078888 + - 75.53487 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 - volume: 2500 temperature: 293.15 moles: @@ -20986,6 +21002,16 @@ entities: - DoorStatus: DoorBolt 10226: - DoorStatus: DoorBolt + - uid: 11352 + components: + - type: Transform + pos: 5.5,48.5 + parent: 1 + - uid: 11629 + components: + - type: Transform + pos: 5.5,49.5 + parent: 1 - uid: 23891 components: - type: Transform @@ -21737,6 +21763,14 @@ entities: rot: 3.141592653589793 rad pos: -72.5,45.5 parent: 1 +- proto: AirlockExternalGlassShuttleMiningFilled + entities: + - uid: 13128 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 8.5,51.5 + parent: 1 - proto: AirlockExternalGlassShuttleShipyard entities: - uid: 14485 @@ -86169,25 +86203,6 @@ entities: - type: Transform pos: 23.5,-28.5 parent: 1 - - uid: 28497 - components: - - type: Transform - pos: -10.5,-35.5 - parent: 1 - - type: ContainerContainer - containers: - entity_storage: !type:Container - showEnts: False - occludes: True - ents: - - 28501 - - 28498 - - 28499 - - 28500 - paper_label: !type:ContainerSlot - showEnts: False - occludes: True - ent: null - uid: 30777 components: - type: Transform @@ -87051,7 +87066,7 @@ entities: - uid: 28500 components: - type: Transform - parent: 28497 + parent: 11350 - type: Physics canCollide: False - type: InsideEntityStorage @@ -87256,7 +87271,7 @@ entities: - uid: 28498 components: - type: Transform - parent: 28497 + parent: 11350 - type: Physics canCollide: False - type: InsideEntityStorage @@ -187943,11 +187958,6 @@ entities: - type: Transform pos: 5.5,28.5 parent: 1 - - uid: 11629 - components: - - type: Transform - pos: 5.5,49.5 - parent: 1 - uid: 11632 components: - type: Transform @@ -188338,11 +188348,6 @@ entities: - type: Transform pos: 2.5,48.5 parent: 1 - - uid: 13128 - components: - - type: Transform - pos: 5.5,48.5 - parent: 1 - uid: 13148 components: - type: Transform @@ -194278,6 +194283,21 @@ entities: - type: Transform pos: 57.5,-37.5 parent: 1 + - uid: 44018 + components: + - type: Transform + pos: 7.5,51.5 + parent: 1 + - uid: 44024 + components: + - type: Transform + pos: 9.5,48.5 + parent: 1 + - uid: 44025 + components: + - type: Transform + pos: 9.5,49.5 + parent: 1 - proto: GrilleBroken entities: - uid: 12229 @@ -197692,6 +197712,45 @@ entities: - type: Transform pos: 1.5,-40.5 parent: 1 +- proto: LockerPsychologistFilled + entities: + - uid: 11350 + components: + - type: Transform + pos: -10.5,-35.5 + parent: 1 + - type: EntityStorage + air: + volume: 200 + immutable: False + temperature: 293.1465 + moles: + - 1.7459903 + - 6.568249 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - type: ContainerContainer + containers: + entity_storage: !type:Container + showEnts: False + occludes: True + ents: + - 28500 + - 28499 + - 28498 + - 28501 + paper_label: !type:ContainerSlot + showEnts: False + occludes: True + ent: null - proto: LockerQuarterMasterFilled entities: - uid: 13174 @@ -210846,7 +210905,7 @@ entities: - uid: 28499 components: - type: Transform - parent: 28497 + parent: 11350 - type: Physics canCollide: False - type: InsideEntityStorage @@ -212437,6 +212496,292 @@ entities: - type: Transform pos: 35.55366,-29.443964 parent: 1 +- proto: PoweredDimSmallLight + entities: + - uid: 818 + components: + - type: Transform + pos: -20.5,-17.5 + parent: 1 + - uid: 2374 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 26.5,13.5 + parent: 1 + - uid: 12954 + components: + - type: Transform + pos: -21.5,-69.5 + parent: 1 + - uid: 13158 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 10.5,-28.5 + parent: 1 + - uid: 15217 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -18.5,27.5 + parent: 1 + - uid: 15269 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 18.5,13.5 + parent: 1 + - uid: 15288 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 13.5,8.5 + parent: 1 + - uid: 15292 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -14.5,11.5 + parent: 1 + - uid: 15298 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -19.5,14.5 + parent: 1 + - uid: 15309 + components: + - type: Transform + pos: -47.5,12.5 + parent: 1 + - uid: 15326 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -62.5,-8.5 + parent: 1 + - uid: 15360 + components: + - type: Transform + pos: -87.5,23.5 + parent: 1 + - uid: 15362 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -100.5,15.5 + parent: 1 + - uid: 15409 + components: + - type: Transform + pos: -77.5,-42.5 + parent: 1 + - uid: 15414 + components: + - type: Transform + pos: -67.5,-56.5 + parent: 1 + - uid: 15415 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -55.5,-67.5 + parent: 1 + - uid: 15417 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -40.5,-77.5 + parent: 1 + - uid: 15420 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -46.5,-77.5 + parent: 1 + - uid: 15426 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -45.5,-50.5 + parent: 1 + - uid: 15427 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -36.5,-36.5 + parent: 1 + - uid: 15432 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -44.5,-77.5 + parent: 1 + - uid: 15433 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -51.5,-73.5 + parent: 1 + - uid: 15447 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 11.5,-42.5 + parent: 1 + - uid: 15449 + components: + - type: Transform + pos: -2.5,-41.5 + parent: 1 + - uid: 15492 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -97.5,15.5 + parent: 1 + - uid: 15499 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -58.5,-28.5 + parent: 1 + - uid: 15501 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -50.5,-77.5 + parent: 1 + - uid: 15554 + components: + - type: Transform + pos: 15.5,-28.5 + parent: 1 + - uid: 16378 + components: + - type: Transform + pos: -41.5,-74.5 + parent: 1 + - uid: 16420 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 20.5,6.5 + parent: 1 + - uid: 31551 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 27.5,5.5 + parent: 1 + - uid: 36312 + components: + - type: Transform + pos: 27.5,9.5 + parent: 1 + - uid: 41005 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 39.5,-51.5 + parent: 1 + - uid: 41082 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -106.5,-6.5 + parent: 1 + - uid: 41135 + components: + - type: Transform + pos: -137.5,-30.5 + parent: 1 + - uid: 41136 + components: + - type: Transform + pos: -134.5,-30.5 + parent: 1 + - uid: 41138 + components: + - type: Transform + pos: -108.5,-45.5 + parent: 1 + - uid: 41139 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -111.5,-47.5 + parent: 1 + - uid: 41140 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -102.5,-32.5 + parent: 1 + - uid: 41142 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -96.5,-26.5 + parent: 1 + - uid: 41143 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -116.5,-52.5 + parent: 1 + - uid: 41145 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -118.5,-67.5 + parent: 1 + - uid: 41147 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -111.5,-83.5 + parent: 1 + - uid: 41149 + components: + - type: Transform + pos: -96.5,-79.5 + parent: 1 + - uid: 41151 + components: + - type: Transform + pos: -90.5,-68.5 + parent: 1 + - uid: 41152 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -90.5,-70.5 + parent: 1 + - uid: 41154 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -78.5,-59.5 + parent: 1 + - uid: 41158 + components: + - type: Transform + pos: -27.5,-69.5 + parent: 1 + - uid: 41159 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -28.5,-54.5 + parent: 1 + - uid: 42043 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -81.5,-40.5 + parent: 1 - proto: Poweredlight entities: - uid: 4066 @@ -216783,292 +217128,6 @@ entities: - type: Transform pos: 23.5,6.5 parent: 1 -- proto: PoweredSmallLightMaintenanceRed - entities: - - uid: 818 - components: - - type: Transform - pos: -20.5,-17.5 - parent: 1 - - uid: 2374 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 26.5,13.5 - parent: 1 - - uid: 12954 - components: - - type: Transform - pos: -21.5,-69.5 - parent: 1 - - uid: 13158 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 10.5,-28.5 - parent: 1 - - uid: 15217 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: -18.5,27.5 - parent: 1 - - uid: 15269 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 18.5,13.5 - parent: 1 - - uid: 15288 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 13.5,8.5 - parent: 1 - - uid: 15292 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: -14.5,11.5 - parent: 1 - - uid: 15298 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: -19.5,14.5 - parent: 1 - - uid: 15309 - components: - - type: Transform - pos: -47.5,12.5 - parent: 1 - - uid: 15326 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: -62.5,-8.5 - parent: 1 - - uid: 15360 - components: - - type: Transform - pos: -87.5,23.5 - parent: 1 - - uid: 15362 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: -100.5,15.5 - parent: 1 - - uid: 15409 - components: - - type: Transform - pos: -77.5,-42.5 - parent: 1 - - uid: 15414 - components: - - type: Transform - pos: -67.5,-56.5 - parent: 1 - - uid: 15415 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: -55.5,-67.5 - parent: 1 - - uid: 15417 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: -40.5,-77.5 - parent: 1 - - uid: 15420 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: -46.5,-77.5 - parent: 1 - - uid: 15426 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: -45.5,-50.5 - parent: 1 - - uid: 15427 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: -36.5,-36.5 - parent: 1 - - uid: 15432 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: -44.5,-77.5 - parent: 1 - - uid: 15433 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: -51.5,-73.5 - parent: 1 - - uid: 15447 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 11.5,-42.5 - parent: 1 - - uid: 15449 - components: - - type: Transform - pos: -2.5,-41.5 - parent: 1 - - uid: 15492 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: -97.5,15.5 - parent: 1 - - uid: 15499 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: -58.5,-28.5 - parent: 1 - - uid: 15501 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: -50.5,-77.5 - parent: 1 - - uid: 15554 - components: - - type: Transform - pos: 15.5,-28.5 - parent: 1 - - uid: 16378 - components: - - type: Transform - pos: -41.5,-74.5 - parent: 1 - - uid: 16420 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 20.5,6.5 - parent: 1 - - uid: 31551 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 27.5,5.5 - parent: 1 - - uid: 36312 - components: - - type: Transform - pos: 27.5,9.5 - parent: 1 - - uid: 41005 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 39.5,-51.5 - parent: 1 - - uid: 41082 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: -106.5,-6.5 - parent: 1 - - uid: 41135 - components: - - type: Transform - pos: -137.5,-30.5 - parent: 1 - - uid: 41136 - components: - - type: Transform - pos: -134.5,-30.5 - parent: 1 - - uid: 41138 - components: - - type: Transform - pos: -108.5,-45.5 - parent: 1 - - uid: 41139 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: -111.5,-47.5 - parent: 1 - - uid: 41140 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: -102.5,-32.5 - parent: 1 - - uid: 41142 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: -96.5,-26.5 - parent: 1 - - uid: 41143 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: -116.5,-52.5 - parent: 1 - - uid: 41145 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: -118.5,-67.5 - parent: 1 - - uid: 41147 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: -111.5,-83.5 - parent: 1 - - uid: 41149 - components: - - type: Transform - pos: -96.5,-79.5 - parent: 1 - - uid: 41151 - components: - - type: Transform - pos: -90.5,-68.5 - parent: 1 - - uid: 41152 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: -90.5,-70.5 - parent: 1 - - uid: 41154 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: -78.5,-59.5 - parent: 1 - - uid: 41158 - components: - - type: Transform - pos: -27.5,-69.5 - parent: 1 - - uid: 41159 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: -28.5,-54.5 - parent: 1 - - uid: 42043 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: -81.5,-40.5 - parent: 1 - proto: Protolathe entities: - uid: 9039 @@ -232251,21 +232310,11 @@ entities: - type: Transform pos: 2.5,42.5 parent: 1 - - uid: 11350 - components: - - type: Transform - pos: 5.5,48.5 - parent: 1 - uid: 11351 components: - type: Transform pos: 5.5,41.5 parent: 1 - - uid: 11352 - components: - - type: Transform - pos: 5.5,49.5 - parent: 1 - uid: 11356 components: - type: Transform @@ -235196,6 +235245,21 @@ entities: - type: Transform pos: 57.5,-37.5 parent: 1 + - uid: 44019 + components: + - type: Transform + pos: 7.5,51.5 + parent: 1 + - uid: 44026 + components: + - type: Transform + pos: 9.5,48.5 + parent: 1 + - uid: 44027 + components: + - type: Transform + pos: 9.5,49.5 + parent: 1 - proto: RemoteSignaller entities: - uid: 2874 @@ -247987,7 +248051,7 @@ entities: - uid: 28501 components: - type: Transform - parent: 28497 + parent: 11350 - type: Physics canCollide: False - type: InsideEntityStorage @@ -253436,6 +253500,13 @@ entities: - type: Transform pos: -86.5,-23.5 parent: 1 +- proto: VendingMachineWinter + entities: + - uid: 44028 + components: + - type: Transform + pos: -43.5,-10.5 + parent: 1 - proto: VendingMachineYouTool entities: - uid: 9352 @@ -268437,6 +268508,12 @@ entities: - type: Transform pos: -114.5,-70.5 parent: 1 + - uid: 28497 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,51.5 + parent: 1 - uid: 28525 components: - type: Transform @@ -270362,6 +270439,32 @@ entities: - type: Transform pos: -66.5,-40.5 parent: 1 + - uid: 44017 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 6.5,51.5 + parent: 1 + - uid: 44020 + components: + - type: Transform + pos: 9.5,50.5 + parent: 1 + - uid: 44021 + components: + - type: Transform + pos: 9.5,47.5 + parent: 1 + - uid: 44022 + components: + - type: Transform + pos: 8.5,47.5 + parent: 1 + - uid: 44023 + components: + - type: Transform + pos: 7.5,47.5 + parent: 1 - proto: WallSolid entities: - uid: 301 @@ -278589,7 +278692,7 @@ entities: lastSignals: DoorStatus: True - type: Door - secondsUntilStateChange: -38865.67 + secondsUntilStateChange: -39100.785 state: Opening - type: Airlock autoClose: False diff --git a/Resources/Maps/hive.yml b/Resources/Maps/hive.yml index 4f410be15f6..b2e86c71e92 100644 --- a/Resources/Maps/hive.yml +++ b/Resources/Maps/hive.yml @@ -347,7 +347,7 @@ entities: version: 6 -3,-4: ind: -3,-4 - tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAewAAAAAAewAAAAAAewAAAAAAewAAAAAAewAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAewAAAAAAewAAAAAAewAAAAAAewAAAAAAewAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAewAAAAAAewAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAewAAAAAAewAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAAAAAAAAAAAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAewAAAAAAewAAAAAAewAAAAAAewAAAAAAewAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAewAAAAAAewAAAAAAewAAAAAAewAAAAAAewAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAewAAAAAAewAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAewAAAAAAewAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA version: 6 5,1: ind: 5,1 @@ -8616,7 +8616,7 @@ entities: 0: 65039 0,4: 0: 33279 - 2: 12288 + 1: 12288 0,-1: 0: 61166 1,0: @@ -8715,17 +8715,17 @@ entities: 0: 39743 -8,-9: 0: 65280 - 1: 4 + 2: 4 -9,-8: 0: 65416 -8,-7: 0: 4369 - 1: 52428 + 2: 52428 -9,-7: 0: 48056 -8,-6: 0: 4593 - 1: 49152 + 2: 49152 -9,-6: 0: 63931 -8,-5: @@ -8737,13 +8737,13 @@ entities: -7,-8: 0: 21839 -7,-7: - 1: 65521 + 2: 65521 0: 4 -7,-6: - 1: 65535 + 2: 65535 -7,-5: 0: 61681 - 1: 14 + 2: 14 -7,-9: 0: 65535 -7,-4: @@ -8751,24 +8751,24 @@ entities: -6,-8: 0: 65535 -6,-7: - 1: 65520 + 2: 65520 -6,-6: - 1: 16383 + 2: 16383 -6,-5: - 1: 1 + 2: 1 0: 47290 -6,-9: 0: 65297 - 1: 4 + 2: 4 -6,-4: 0: 65225 -5,-8: 0: 13119 - 1: 34816 + 2: 34816 -5,-7: - 1: 30712 + 2: 30712 -5,-6: - 1: 7 + 2: 7 0: 60928 -5,-5: 0: 53631 @@ -8778,7 +8778,7 @@ entities: 0: 57309 -4,-8: 0: 15 - 1: 65280 + 2: 65280 -4,-6: 0: 65294 -4,-5: @@ -8909,7 +8909,7 @@ entities: 0: 63351 -8,-1: 0: 21572 - 1: 17 + 2: 17 -9,0: 0: 65501 -8,1: @@ -8918,15 +8918,15 @@ entities: 0: 56831 -8,2: 0: 17477 - 1: 4352 + 2: 4352 -9,2: 0: 284 - 1: 52224 + 2: 52224 -8,3: - 1: 23 + 2: 23 0: 31744 -9,3: - 1: 255 + 2: 255 0: 53504 -8,4: 0: 57460 @@ -8971,19 +8971,19 @@ entities: -4,3: 0: 65287 -9,-4: - 1: 65248 + 2: 65248 -8,-3: 0: 17873 - 1: 4096 + 2: 4096 -9,-3: - 1: 65535 + 2: 65535 -8,-2: - 1: 30583 + 2: 30583 -9,-2: - 1: 52462 + 2: 52462 0: 785 -9,-1: - 1: 204 + 2: 204 0: 49425 -7,-3: 0: 30591 @@ -9013,10 +9013,10 @@ entities: 0: 61160 -1,4: 0: 4607 - 2: 49152 + 1: 49152 -9,4: 0: 196 - 1: 61713 + 2: 61713 -8,5: 0: 65534 -8,6: @@ -9029,48 +9029,48 @@ entities: 0: 56558 -8,8: 0: 141 - 1: 57856 + 2: 57856 -7,5: 0: 511 - 1: 49152 + 2: 49152 -7,7: 0: 12289 - 1: 35054 + 2: 35054 -7,6: - 1: 61166 + 2: 61166 -7,8: 0: 55 - 1: 63624 + 2: 63624 -6,5: 0: 3827 -6,6: - 1: 30481 + 2: 30481 0: 102 -6,7: - 1: 65527 + 2: 65527 -6,8: - 1: 65535 + 2: 65535 -5,5: 0: 15344 -5,6: 0: 49151 -5,7: - 1: 65328 + 2: 65328 0: 8 -5,8: - 1: 8191 + 2: 8191 -4,5: 0: 52700 -4,6: 0: 65311 -4,7: 0: 79 - 1: 28928 + 2: 28928 0,5: - 2: 51 + 1: 51 0: 63628 -1,5: - 2: 204 + 1: 204 0: 61457 0,6: 0: 62702 @@ -9078,12 +9078,12 @@ entities: 0: 62347 0,7: 0: 3087 - 1: 13056 + 2: 13056 -1,7: 0: 13103 - 1: 34816 + 2: 34816 0,8: - 1: 4095 + 2: 4095 1,5: 0: 61183 1,6: @@ -9091,7 +9091,7 @@ entities: 1,7: 0: 53007 1,8: - 1: 273 + 2: 273 0: 3276 2,5: 0: 56575 @@ -9121,21 +9121,21 @@ entities: 0: 58976 -3,-8: 0: 3299 - 1: 4096 + 2: 4096 -3,-7: - 1: 52479 + 2: 52479 0: 4096 -3,-6: 0: 65281 - 1: 12 + 2: 12 -3,-9: 0: 40160 -2,-8: 0: 20465 -2,-7: - 1: 65393 + 2: 65393 -2,-6: - 1: 15 + 2: 15 0: 65280 -2,-9: 0: 56784 @@ -9143,18 +9143,18 @@ entities: 0: 49136 -1,-7: 0: 3 - 1: 65408 + 2: 65408 -1,-6: - 1: 15 + 2: 15 0: 65280 -1,-9: 0: 48058 0,-8: 0: 4080 0,-7: - 1: 16382 + 2: 16382 0,-6: - 1: 3 + 2: 3 0: 65292 0,-9: 0: 61199 @@ -9189,7 +9189,7 @@ entities: 4,-6: 0: 65295 -4,8: - 1: 4095 + 2: 4095 -3,5: 0: 54551 -3,6: @@ -9197,7 +9197,7 @@ entities: -3,7: 0: 33727 -3,8: - 1: 4095 + 2: 4095 -2,5: 0: 55807 -2,6: @@ -9205,10 +9205,10 @@ entities: -2,7: 0: 28783 -2,8: - 1: 247 + 2: 247 0: 10240 -1,8: - 1: 248 + 2: 248 0: 16640 -12,0: 0: 32767 @@ -9230,7 +9230,7 @@ entities: 0: 15291 -12,4: 0: 7 - 1: 61064 + 2: 61064 -11,0: 0: 65535 -11,1: @@ -9242,7 +9242,7 @@ entities: -11,-1: 0: 64796 -11,4: - 1: 65535 + 2: 65535 -10,0: 0: 61438 -10,1: @@ -9252,30 +9252,30 @@ entities: -10,3: 0: 35591 -10,4: - 1: 65535 + 2: 65535 -10,-1: 0: 36591 4,8: 0: 819 - 1: 2184 + 2: 2184 5,5: 0: 49617 5,6: 0: 64433 5,7: 0: 783 - 1: 52224 + 2: 52224 5,8: - 1: 4095 + 2: 4095 6,5: 0: 48120 6,6: 0: 16305 6,7: 0: 79 - 1: 28928 + 2: 28928 6,8: - 1: 255 + 2: 255 0: 10240 7,5: 0: 47931 @@ -9283,9 +9283,9 @@ entities: 0: 33720 7,7: 0: 959 - 1: 32768 + 2: 32768 7,8: - 1: 255 + 2: 255 0: 16640 8,4: 0: 65485 @@ -9295,9 +9295,9 @@ entities: 0: 63803 8,7: 0: 15 - 1: 65024 + 2: 65024 8,8: - 1: 255 + 2: 255 0: 3840 9,4: 0: 65535 @@ -9310,7 +9310,7 @@ entities: 9,3: 0: 65359 9,8: - 1: 30719 + 2: 30719 10,4: 0: 65535 10,5: @@ -9319,20 +9319,20 @@ entities: 0: 65520 10,7: 0: 271 - 1: 60928 + 2: 60928 10,3: 0: 65294 10,8: - 1: 51 + 2: 51 0: 63616 11,4: 0: 53213 11,6: 0: 4371 - 1: 52360 + 2: 52360 11,7: 0: 1 - 1: 4044 + 2: 4044 11,3: 0: 53709 11,5: @@ -9343,9 +9343,9 @@ entities: 0: 30583 12,5: 0: 7 - 1: 15872 + 2: 15872 12,6: - 1: 3 + 2: 3 0: 61320 12,7: 0: 18190 @@ -9354,20 +9354,20 @@ entities: 12,8: 0: 65535 13,4: - 1: 29491 + 2: 29491 0: 136 13,5: - 1: 1911 + 2: 1911 13,6: 0: 48059 13,7: 0: 65419 13,3: - 1: 13107 + 2: 13107 0: 32844 13,8: 0: 13107 - 1: 34944 + 2: 34944 14,4: 0: 48059 14,5: @@ -9376,7 +9376,7 @@ entities: 0: 65535 14,7: 0: 287 - 1: 1024 + 2: 1024 14,3: 0: 16360 15,4: @@ -9387,7 +9387,7 @@ entities: 0: 48059 15,7: 0: 139 - 1: 512 + 2: 512 15,3: 0: 7163 16,4: @@ -9436,17 +9436,17 @@ entities: 0: 55807 13,2: 0: 49629 - 1: 12288 + 2: 12288 13,-1: 0: 56592 - 1: 15 + 2: 15 14,0: 0: 65435 14,1: 0: 47359 14,2: 0: 35003 - 1: 12288 + 2: 12288 14,-1: 0: 48014 15,0: @@ -9491,25 +9491,25 @@ entities: 0: 65535 11,-5: 0: 61440 - 1: 238 + 2: 238 12,-4: 0: 4096 - 1: 35942 + 2: 35942 12,-3: 0: 28531 12,-2: 0: 26215 12,-5: - 1: 26163 + 2: 26163 0: 76 13,-4: 0: 15 - 1: 30464 + 2: 30464 13,-3: - 1: 8743 + 2: 8743 0: 2048 13,-2: - 1: 30583 + 2: 30583 13,-5: 0: 15245 14,-4: @@ -9543,33 +9543,33 @@ entities: 7,-8: 0: 49136 8,-7: - 1: 65534 + 2: 65534 7,-7: - 1: 65408 + 2: 65408 0: 3 8,-6: - 1: 15 + 2: 15 0: 65280 7,-6: - 1: 15 + 2: 15 0: 65280 9,-8: 0: 1775 9,-7: - 1: 8191 + 2: 8191 9,-6: - 1: 1 + 2: 1 0: 65422 9,-9: 0: 64733 10,-8: 0: 61439 10,-7: - 1: 18224 + 2: 18224 0: 8 10,-6: 0: 61699 - 1: 204 + 2: 204 10,-9: 0: 4369 11,-8: @@ -9577,7 +9577,7 @@ entities: 11,-7: 0: 61247 11,-6: - 1: 58992 + 2: 58992 0: 128 12,-8: 0: 65535 @@ -9585,24 +9585,24 @@ entities: 0: 65295 12,-6: 0: 51258 - 1: 12288 + 2: 12288 4,-9: 0: 48027 5,-8: 0: 4080 5,-7: - 1: 53247 + 2: 53247 5,-6: 0: 65283 - 1: 12 + 2: 12 5,-9: 0: 47931 6,-8: 0: 20466 6,-7: - 1: 65393 + 2: 65393 6,-6: - 1: 15 + 2: 15 0: 65280 6,-9: 0: 30471 @@ -9633,64 +9633,64 @@ entities: 18,4: 0: 14327 19,0: - 1: 15 + 2: 15 0: 65280 19,1: 0: 12543 - 1: 32768 + 2: 32768 19,2: 0: 65283 - 1: 8 + 2: 8 19,3: 0: 30479 19,-1: - 1: 61440 + 2: 61440 0: 191 19,4: 0: 1919 20,0: - 1: 15 + 2: 15 0: 65280 20,1: 0: 255 - 1: 61440 + 2: 61440 20,2: - 1: 1 + 2: 1 0: 56576 20,3: 0: 65309 20,-1: - 1: 61440 + 2: 61440 0: 187 20,4: 0: 64511 21,0: - 1: 15 + 2: 15 0: 65280 21,1: 0: 255 - 1: 61440 + 2: 61440 21,2: 0: 4352 - 1: 34952 + 2: 34952 21,3: 0: 54721 21,-1: - 1: 63488 + 2: 63488 0: 55 21,4: 0: 56541 22,0: - 1: 3 + 2: 3 0: 65416 22,1: 0: 51455 - 1: 4096 + 2: 4096 22,2: - 1: 12561 + 2: 12561 0: 32972 22,-1: - 1: 13107 + 2: 13107 0: 34952 22,3: 0: 43688 @@ -9762,7 +9762,7 @@ entities: 0: 45311 0,-13: 0: 65280 - 1: 7 + 2: 7 -1,-12: 0: 57583 0,-11: @@ -9781,7 +9781,7 @@ entities: 0: 56575 1,-13: 0: 65281 - 1: 12 + 2: 12 2,-12: 0: 55551 2,-11: @@ -9790,7 +9790,7 @@ entities: 0: 8191 2,-13: 0: 65280 - 1: 15 + 2: 15 3,-12: 0: 45567 3,-11: @@ -9799,7 +9799,7 @@ entities: 0: 36863 3,-13: 0: 65280 - 1: 15 + 2: 15 4,-12: 0: 63743 4,-11: @@ -9810,7 +9810,7 @@ entities: 0: 47359 8,-13: 0: 28672 - 1: 200 + 2: 200 7,-12: 0: 53631 8,-11: @@ -9829,15 +9829,15 @@ entities: 0: 56829 10,-12: 0: 4352 - 1: 35023 + 2: 35023 10,-11: 0: 12561 - 1: 35016 + 2: 35016 10,-10: 0: 13107 - 1: 34952 + 2: 34952 10,-13: - 1: 43694 + 2: 43694 4,12: 0: 3838 5,9: @@ -9936,7 +9936,7 @@ entities: 0: 61951 13,-7: 0: 13070 - 1: 2048 + 2: 2048 13,-6: 0: 56559 13,-8: @@ -9945,7 +9945,7 @@ entities: 0: 65523 14,-7: 0: 34831 - 1: 768 + 2: 768 14,-6: 0: 47935 14,-9: @@ -9966,7 +9966,7 @@ entities: 0: 4380 16,-9: 0: 4352 - 1: 19456 + 2: 19456 17,-8: 0: 4401 17,-7: @@ -9988,26 +9988,26 @@ entities: 20,-5: 0: 4092 8,-14: - 1: 36608 + 2: 36608 7,-14: - 1: 3584 + 2: 3584 9,-14: - 1: 3840 + 2: 3840 9,-13: - 1: 272 + 2: 272 10,-14: - 1: 28416 + 2: 28416 11,-14: - 1: 4352 + 2: 4352 11,-13: - 1: 17 + 2: 17 4,-14: 0: 43520 4,-13: 0: 65450 5,-13: 0: 65280 - 1: 14 + 2: 14 5,-12: 0: 64767 6,-13: @@ -10018,25 +10018,25 @@ entities: 0: 65535 7,-13: 0: 30464 - 1: 8 + 2: 8 -1,-13: - 1: 8 + 2: 8 0: 65282 1,-14: 0: 4096 -4,-14: - 1: 61440 + 2: 61440 -5,-14: - 1: 61440 + 2: 61440 -3,-14: - 1: 28672 + 2: 28672 -3,-13: - 1: 498 + 2: 498 0: 49152 -3,-12: 0: 14206 -2,-13: - 1: 18 + 2: 18 0: 56320 -2,-12: 0: 65295 @@ -10062,26 +10062,26 @@ entities: 0: 63351 -9,-9: 0: 32768 - 1: 17 + 2: 17 -8,-10: - 1: 17484 + 2: 17484 -8,-12: - 1: 34952 + 2: 34952 -8,-13: - 1: 34956 + 2: 34956 -8,-11: - 1: 34952 + 2: 34952 -7,-10: 0: 65280 -6,-10: 0: 4352 - 1: 17478 + 2: 17478 -6,-12: - 1: 8738 + 2: 8738 -6,-13: - 1: 8743 + 2: 8743 -6,-11: - 1: 8738 + 2: 8738 5,-11: 0: 52511 5,-10: @@ -10112,7 +10112,7 @@ entities: 0: 7631 23,-2: 0: 49425 - 1: 68 + 2: 68 24,-4: 0: 61438 24,-3: @@ -10166,37 +10166,37 @@ entities: 21,-6: 0: 47359 21,-8: - 1: 3822 + 2: 3822 0: 24576 21,-7: 0: 36590 22,-8: - 1: 49971 + 2: 49971 22,-7: 0: 273 - 1: 49152 + 2: 49152 22,-6: - 1: 3720 + 2: 3720 22,-9: - 1: 8738 + 2: 8738 23,-8: - 1: 61440 + 2: 61440 23,-7: - 1: 29218 + 2: 29218 23,-6: - 1: 256 + 2: 256 0: 3264 23,-5: 0: 3822 24,-8: - 1: 61440 + 2: 61440 24,-5: 0: 33655 8,12: 0: 6015 9,9: 0: 65280 - 1: 6 + 2: 6 9,10: 0: 48015 9,11: @@ -10207,12 +10207,12 @@ entities: 0: 4095 10,10: 0: 12288 - 1: 34 + 2: 34 10,11: 0: 13107 10,12: 0: 273 - 1: 16384 + 2: 16384 11,9: 0: 34944 11,10: @@ -10231,15 +10231,15 @@ entities: 0: 8 9,13: 0: 819 - 1: 32768 + 2: 32768 9,14: - 1: 12 + 2: 12 10,13: - 1: 61998 + 2: 61998 11,13: - 1: 64719 + 2: 64719 12,13: - 1: 61455 + 2: 61455 -4,9: 0: 52701 -5,9: @@ -10276,27 +10276,27 @@ entities: 0: 30576 -9,9: 0: 35071 - 1: 12288 + 2: 12288 -8,10: 0: 207 -9,10: 0: 8 - 1: 48 + 2: 48 -8,11: - 1: 28672 + 2: 28672 -9,11: - 1: 61696 + 2: 61696 -8,12: - 1: 35946 + 2: 35946 -7,9: - 1: 255 + 2: 255 0: 33536 -7,10: 0: 14591 -7,11: 0: 61439 -6,9: - 1: 119 + 2: 119 0: 28672 -6,10: 0: 14335 @@ -10307,13 +10307,13 @@ entities: -5,12: 0: 52364 -7,12: - 1: 12560 + 2: 12560 -7,13: - 1: 2246 + 2: 2246 -6,13: - 1: 3840 + 2: 3840 -5,13: - 1: 25360 + 2: 25360 0: 140 -4,13: 0: 4095 @@ -10362,33 +10362,33 @@ entities: 13,10: 0: 119 14,8: - 1: 16 + 2: 16 0: 57344 14,9: 0: 65534 14,10: 0: 61183 14,11: - 1: 32768 + 2: 32768 14,12: - 1: 4972 + 2: 4972 15,11: - 1: 8030 + 2: 8030 15,10: - 1: 32768 + 2: 32768 16,10: - 1: 5100 + 2: 5100 16,11: - 1: 3968 + 2: 3968 -12,-4: 0: 255 - 1: 57344 + 2: 57344 -12,-5: 0: 65520 -13,-4: 0: 62327 -12,-3: - 1: 35054 + 2: 35054 0: 28672 -13,-3: 0: 63487 @@ -10400,18 +10400,18 @@ entities: 0: 48051 -11,-4: 0: 255 - 1: 61440 + 2: 61440 -11,-3: - 1: 65535 + 2: 65535 -11,-2: 0: 65520 -11,-5: 0: 65520 -10,-4: - 1: 61440 + 2: 61440 0: 238 -10,-3: - 1: 65535 + 2: 65535 -10,-2: 0: 30576 -10,-5: @@ -10419,7 +10419,7 @@ entities: -16,-4: 0: 61030 -17,-4: - 1: 2296 + 2: 2296 -16,-3: 0: 61166 -16,-2: @@ -10459,32 +10459,32 @@ entities: -13,-5: 0: 63346 -20,-4: - 1: 4097 + 2: 4097 -20,-5: - 1: 4096 + 2: 4096 -20,-3: - 1: 61299 + 2: 61299 -21,-4: - 1: 62225 + 2: 62225 -21,-3: - 1: 4528 + 2: 4528 -20,-1: 0: 65329 - 1: 8 + 2: 8 -21,-1: 0: 31 - 1: 4576 + 2: 4576 -20,0: 0: 43955 - 1: 4096 + 2: 4096 -20,-2: - 1: 34956 + 2: 34956 -19,-3: - 1: 4096 + 2: 4096 -19,-2: - 1: 4369 + 2: 4369 -19,-1: - 1: 1 + 2: 1 0: 48896 -19,0: 0: 65522 @@ -10493,45 +10493,45 @@ entities: -18,0: 0: 64434 -18,-4: - 1: 17604 + 2: 17604 -18,-5: - 1: 17476 + 2: 17476 -18,-3: - 1: 12 + 2: 12 -17,-3: - 1: 1 + 2: 1 -17,0: 0: 64441 -21,0: 0: 9 - 1: 37142 + 2: 37142 -20,1: - 1: 16 + 2: 16 0: 15274 -21,1: - 1: 4496 + 2: 4496 0: 9 -20,2: 0: 15291 -21,2: 0: 4105 - 1: 57622 + 2: 57622 -20,3: 0: 1 - 1: 34952 + 2: 34952 -21,3: 0: 255 - 1: 4864 + 2: 4864 -19,1: 0: 4095 -19,2: 0: 187 -19,3: - 1: 4369 + 2: 4369 -20,4: - 1: 32748 + 2: 32748 -19,4: - 1: 17 + 2: 17 -18,1: 0: 3007 -18,2: @@ -10550,7 +10550,7 @@ entities: 0: 40951 -16,4: 0: 36044 - 1: 4368 + 2: 4368 -15,1: 0: 45277 -15,2: @@ -10570,15 +10570,15 @@ entities: -13,4: 0: 65407 -16,-8: - 1: 39 + 2: 39 0: 34816 -17,-8: - 1: 15 + 2: 15 -16,-7: - 1: 4384 + 2: 4384 0: 51336 -16,-6: - 1: 4369 + 2: 4369 0: 52236 -15,-8: 0: 65520 @@ -10599,7 +10599,7 @@ entities: -13,-6: 0: 32631 -13,-9: - 1: 51200 + 2: 51200 0: 8 -12,-8: 0: 64988 @@ -10608,7 +10608,7 @@ entities: -12,-6: 0: 65295 -12,-9: - 1: 4352 + 2: 4352 0: 52431 -11,-8: 0: 65523 @@ -10627,25 +10627,25 @@ entities: -10,-9: 0: 30579 -17,4: - 1: 128 + 2: 128 -16,5: - 1: 4369 + 2: 4369 0: 34952 -16,6: - 1: 817 + 2: 817 0: 32904 -17,5: - 1: 32768 + 2: 32768 -17,6: - 1: 2063 + 2: 2063 -16,7: 0: 52367 - 1: 4352 + 2: 4352 -17,7: 0: 26120 - 1: 7 + 2: 7 -16,8: - 1: 17153 + 2: 17153 0: 140 -15,5: 0: 4369 @@ -10681,7 +10681,7 @@ entities: 0: 65280 -12,5: 0: 65280 - 1: 14 + 2: 14 -12,6: 0: 65535 -12,7: @@ -10693,7 +10693,7 @@ entities: 3: 4 0: 65280 -11,5: - 1: 3 + 2: 3 0: 65292 -11,6: 0: 65535 @@ -10705,7 +10705,7 @@ entities: 0: 65484 -10,5: 0: 65283 - 1: 12 + 2: 12 -10,6: 0: 65535 -10,7: @@ -10713,47 +10713,47 @@ entities: -10,8: 0: 30591 -9,5: - 1: 1 + 2: 1 0: 17732 -17,8: - 1: 3840 + 2: 3840 0: 6 -16,9: - 1: 29696 + 2: 29696 -16,10: - 1: 36079 + 2: 36079 -17,9: - 1: 61440 + 2: 61440 -15,9: 0: 4095 -15,10: - 1: 4097 + 2: 4097 -15,11: - 1: 35939 + 2: 35939 -14,9: 0: 3569 -14,11: - 1: 12834 + 2: 12834 -14,10: - 1: 8743 + 2: 8743 -14,12: - 1: 8866 + 2: 8866 0: 2056 -13,9: 0: 3568 -13,10: - 1: 132 + 2: 132 0: 8 -12,9: 0: 4080 -12,10: 0: 19655 - 1: 9008 + 2: 9008 -12,11: 0: 17476 -12,12: 0: 17733 - 1: 176 + 2: 176 -11,9: 0: 4080 -11,10: @@ -10762,19 +10762,19 @@ entities: 0: 6128 -10,10: 0: 819 - 1: 34952 + 2: 34952 -10,11: - 1: 34956 + 2: 34956 -10,12: - 1: 35000 + 2: 35000 0: 771 -9,12: - 1: 1 + 2: 1 -12,-12: - 1: 48 + 2: 48 0: 52416 -13,-12: - 1: 20208 + 2: 20208 -12,-11: 0: 30576 -13,-11: @@ -10785,81 +10785,81 @@ entities: 0: 35071 -11,-12: 0: 13104 - 1: 52428 + 2: 52428 -11,-11: 0: 48051 - 1: 8 + 2: 8 -11,-10: 0: 48059 -11,-13: - 1: 52241 + 2: 52241 0: 238 -10,-12: 0: 48048 - 1: 17472 + 2: 17472 -10,-11: 0: 65467 - 1: 68 + 2: 68 -10,-10: 0: 191 - 1: 47872 + 2: 47872 -9,-12: 0: 4368 -9,-11: 0: 13105 -9,-10: 0: 51 - 1: 4352 + 2: 4352 -13,12: 0: 3855 - 1: 240 + 2: 240 -12,13: 0: 17733 - 1: 176 + 2: 176 -13,13: 0: 3855 - 1: 240 + 2: 240 -12,14: 0: 17733 - 1: 176 + 2: 176 -13,14: 0: 3855 - 1: 240 + 2: 240 -12,15: 0: 325 - 1: 17584 + 2: 17584 -13,15: 0: 3855 - 1: 240 + 2: 240 -12,16: - 1: 61444 + 2: 61444 -11,12: - 1: 240 + 2: 240 0: 3855 -11,13: - 1: 240 + 2: 240 0: 3855 -11,14: - 1: 240 + 2: 240 0: 3855 -11,15: - 1: 240 + 2: 240 0: 3855 -10,13: 0: 771 - 1: 35000 + 2: 35000 -10,14: 0: 771 - 1: 35000 + 2: 35000 -10,15: 0: 771 - 1: 35000 + 2: 35000 -10,16: - 1: 64648 + 2: 64648 -12,-13: - 1: 255 + 2: 255 -13,-13: - 1: 204 + 2: 204 0: 51 -11,-14: 0: 57344 @@ -10877,70 +10877,70 @@ entities: 0: 12526 21,8: 0: 19 - 1: 29696 + 2: 29696 22,6: 0: 13311 22,7: 0: 3 - 1: 36352 + 2: 36352 22,5: 0: 3816 23,7: - 1: 36608 + 2: 36608 22,8: - 1: 234 + 2: 234 23,5: 0: 1646 23,6: - 1: 10 + 2: 10 24,5: 0: 4087 24,7: - 1: 36608 + 2: 36608 23,8: - 1: 248 + 2: 248 24,6: 0: 238 25,5: 0: 8184 25,6: 0: 17 - 1: 1028 + 2: 1028 25,7: - 1: 36608 + 2: 36608 24,8: - 1: 248 + 2: 248 26,5: 0: 30590 26,6: 0: 30706 26,7: 0: 7 - 1: 36608 + 2: 36608 25,8: - 1: 248 + 2: 248 27,5: 0: 1 - 1: 63232 + 2: 63232 27,6: 0: 30576 27,7: 0: 7 - 1: 36608 + 2: 36608 26,8: - 1: 248 + 2: 248 28,4: 0: 4351 - 1: 8192 + 2: 8192 28,5: - 1: 63630 + 2: 63630 28,6: - 1: 117 + 2: 117 0: 12288 28,7: - 1: 36672 + 2: 36672 27,8: - 1: 248 + 2: 248 25,-4: 0: 52243 25,-3: @@ -10959,10 +10959,10 @@ entities: 0: 3581 26,-5: 0: 63255 - 1: 8 + 2: 8 27,-4: 0: 15 - 1: 8704 + 2: 8704 27,-3: 0: 65504 27,-2: @@ -10971,7 +10971,7 @@ entities: 0: 4095 27,-5: 0: 61440 - 1: 15 + 2: 15 28,-4: 0: 34959 28,-3: @@ -10982,10 +10982,10 @@ entities: 0: 2039 28,-5: 0: 65024 - 1: 1 + 2: 1 29,-4: 0: 62225 - 1: 4 + 2: 4 29,-3: 0: 29371 29,-2: @@ -10994,15 +10994,15 @@ entities: 0: 65399 29,-5: 0: 4352 - 1: 50176 + 2: 50176 29,0: 0: 65535 30,-4: 0: 4096 - 1: 33010 + 2: 33010 30,-3: 0: 28979 - 1: 136 + 2: 136 30,-2: 0: 63255 30,-1: @@ -11010,11 +11010,11 @@ entities: 30,0: 0: 65535 30,-5: - 1: 28672 + 2: 28672 31,-4: - 1: 240 + 2: 240 31,-3: - 1: 61441 + 2: 61441 31,-2: 0: 65520 31,-1: @@ -11022,15 +11022,15 @@ entities: 31,0: 0: 65535 32,-4: - 1: 20222 + 2: 20222 32,-3: - 1: 63044 + 2: 63044 32,-2: 0: 4368 - 1: 17476 + 2: 17476 32,-1: 0: 13185 - 1: 12 + 2: 12 28,3: 0: 34952 29,1: @@ -11041,561 +11041,561 @@ entities: 0: 16382 29,4: 0: 3 - 1: 4096 + 2: 4096 30,1: 0: 65535 30,2: 0: 3839 30,3: 0: 273 - 1: 50252 + 2: 50252 31,1: 0: 61135 31,3: - 1: 61440 + 2: 61440 32,0: 0: 13107 32,1: 0: 13065 - 1: 50368 + 2: 50368 32,3: - 1: 62528 + 2: 62528 29,5: - 1: 61441 + 2: 61441 29,7: - 1: 36608 + 2: 36608 28,8: - 1: 248 + 2: 248 30,5: - 1: 61440 + 2: 61440 30,7: - 1: 36608 + 2: 36608 29,8: - 1: 248 + 2: 248 31,5: - 1: 61440 + 2: 61440 31,7: - 1: 36608 + 2: 36608 30,8: - 1: 248 + 2: 248 32,5: - 1: 63044 + 2: 63044 32,7: - 1: 1860 + 2: 1860 31,8: - 1: 248 + 2: 248 32,6: - 1: 50246 + 2: 50246 32,4: - 1: 17476 + 2: 17476 33,5: - 1: 4369 + 2: 4369 33,6: - 1: 4369 + 2: 4369 33,4: - 1: 4373 + 2: 4373 33,3: - 1: 30020 + 2: 30020 33,7: - 1: 1 + 2: 1 33,1: 0: 3 - 1: 12848 + 2: 12848 33,0: 0: 43690 33,-1: 0: 43568 - 1: 3 + 2: 3 33,2: - 1: 17408 + 2: 17408 34,0: 0: 30719 34,-1: 0: 30464 35,0: 0: 17 - 2: 65262 + 1: 65262 35,1: - 2: 15 + 1: 15 34,1: - 1: 2048 + 2: 2048 35,-1: - 2: 61424 + 1: 61424 36,0: - 2: 4369 + 1: 4369 0: 52462 36,1: - 2: 1 - 1: 512 + 1: 1 + 2: 512 32,-5: - 1: 17484 + 2: 17484 33,-4: - 1: 9011 + 2: 9011 33,-3: - 1: 12834 + 2: 12834 33,-5: - 1: 8739 + 2: 8739 33,-2: - 1: 2 + 2: 2 34,-2: - 1: 32768 + 2: 32768 36,-1: - 2: 4368 + 1: 4368 0: 52224 32,-7: - 1: 61440 + 2: 61440 31,-7: - 1: 61440 + 2: 61440 32,-6: - 1: 18176 + 2: 18176 31,-6: - 1: 3976 + 2: 3976 33,-7: - 1: 12288 + 2: 12288 33,-6: - 1: 8706 + 2: 8706 24,-7: - 1: 30498 + 2: 30498 24,-6: 0: 12000 25,-8: - 1: 62532 + 2: 62532 25,-7: - 1: 65252 + 2: 65252 25,-6: - 1: 3722 + 2: 3722 25,-9: - 1: 50244 + 2: 50244 26,-8: - 1: 4369 + 2: 4369 26,-7: - 1: 61713 + 2: 61713 26,-6: - 1: 36744 + 2: 36744 26,-9: - 1: 4369 + 2: 4369 27,-7: - 1: 61440 + 2: 61440 27,-6: - 1: 3976 + 2: 3976 28,-7: - 1: 61440 + 2: 61440 28,-6: - 1: 8072 + 2: 8072 29,-7: - 1: 61440 + 2: 61440 29,-6: - 1: 3976 + 2: 3976 30,-7: - 1: 61440 + 2: 61440 30,-6: - 1: 3976 + 2: 3976 -20,5: - 1: 19 + 2: 19 -21,4: - 1: 45329 + 2: 45329 -21,5: - 1: 5104 + 2: 5104 -20,6: - 1: 17 + 2: 17 -21,6: - 1: 241 + 2: 241 -19,5: - 1: 19456 + 2: 19456 -19,6: - 1: 17484 + 2: 17484 -19,7: - 1: 19660 + 2: 19660 -19,8: - 1: 19660 + 2: 19660 -18,6: - 1: 15 + 2: 15 -18,7: - 1: 36092 + 2: 36092 -18,8: - 1: 3324 + 2: 3324 -19,9: - 1: 52292 + 2: 52292 -19,10: - 1: 3148 + 2: 3148 -18,9: - 1: 61440 + 2: 61440 20,9: 0: 4099 - 1: 26112 + 2: 26112 19,9: 0: 255 - 1: 61440 + 2: 61440 20,10: - 1: 17478 + 2: 17478 20,11: - 1: 1996 + 2: 1996 19,11: - 1: 3840 + 2: 3840 21,11: - 1: 1 + 2: 1 21,10: - 1: 16034 + 2: 16034 21,9: - 1: 8738 + 2: 8738 22,10: - 1: 19 + 2: 19 22,9: - 1: 8192 + 2: 8192 16,9: - 1: 35012 + 2: 35012 17,9: - 1: 41728 + 2: 41728 0: 142 17,10: - 1: 4371 + 2: 4371 17,11: - 1: 3889 + 2: 3889 18,9: 0: 255 - 1: 61440 + 2: 61440 18,11: - 1: 3840 + 2: 3840 -14,-12: - 1: 128 + 2: 128 -14,-11: 0: 2048 -14,-10: 0: 8 -14,13: - 1: 8866 + 2: 8866 0: 2056 -14,14: - 1: 8866 + 2: 8866 0: 2056 -14,15: - 1: 8866 + 2: 8866 0: 2056 -14,16: - 1: 58914 + 2: 58914 -13,16: - 1: 61440 + 2: 61440 -12,17: - 1: 240 + 2: 240 -13,17: - 1: 240 + 2: 240 -11,16: - 1: 61440 + 2: 61440 -11,17: - 1: 240 + 2: 240 -10,17: - 1: 242 + 2: 242 17,-9: - 1: 3840 + 2: 3840 18,-9: - 1: 3840 + 2: 3840 19,-9: - 1: 3954 + 2: 3954 19,-12: - 1: 8738 + 2: 8738 19,-13: - 1: 8738 + 2: 8738 19,-11: - 1: 8738 + 2: 8738 19,-10: - 1: 8738 + 2: 8738 20,-9: - 1: 3840 + 2: 3840 32,8: - 1: 240 + 2: 240 33,8: - 1: 17 + 2: 17 13,13: - 1: 4975 + 2: 4975 13,12: - 1: 32768 + 2: 32768 -14,17: - 1: 232 + 2: 232 -8,-14: - 1: 49152 + 2: 49152 -7,-14: - 1: 61440 + 2: 61440 -7,-13: - 1: 1 + 2: 1 -6,-14: - 1: 61440 + 2: 61440 20,-12: 0: 49344 - 1: 3072 + 2: 3072 20,-11: 0: 49344 - 1: 3072 + 2: 3072 20,-10: 0: 49344 - 1: 3072 + 2: 3072 21,-12: 0: 61680 - 1: 3840 + 2: 3840 21,-11: 0: 61680 - 1: 3840 + 2: 3840 21,-10: 0: 61680 - 1: 3840 + 2: 3840 21,-9: - 1: 256 + 2: 256 22,-12: - 1: 12066 + 2: 12066 0: 32896 22,-11: - 1: 12066 + 2: 12066 0: 32896 22,-10: - 1: 12066 + 2: 12066 0: 32896 22,-13: - 1: 12066 + 2: 12066 0: 32896 23,-12: 0: 61680 - 1: 3840 + 2: 3840 23,-11: 0: 61680 - 1: 3840 + 2: 3840 23,-10: 0: 61680 - 1: 3840 + 2: 3840 24,-12: 0: 4112 - 1: 256 + 2: 256 24,-11: 0: 4112 - 1: 256 + 2: 256 24,-10: 0: 4112 - 1: 256 + 2: 256 19,-15: - 1: 62960 + 2: 62960 19,-14: - 1: 8743 + 2: 8743 20,-15: - 1: 62704 + 2: 62704 -24,0: 0: 22355 - 1: 8236 + 2: 8236 -24,-1: 0: 4415 - 1: 192 + 2: 192 -25,0: 0: 61166 - 1: 1 + 2: 1 -24,1: 0: 22353 - 1: 8238 + 2: 8238 -25,1: 0: 61166 - 1: 1 + 2: 1 -24,2: 0: 12563 - 1: 49164 + 2: 49164 -25,2: 0: 61166 - 1: 1 + 2: 1 -24,3: 0: 255 - 1: 2048 + 2: 2048 -25,3: 0: 140 -23,0: 0: 32769 - 1: 4382 + 2: 4382 -23,1: 0: 137 - 1: 4374 + 2: 4374 -23,2: 0: 24065 - 1: 41246 + 2: 41246 -23,3: 0: 255 - 1: 4864 + 2: 4864 -23,-1: - 1: 4512 + 2: 4512 0: 3679 -23,4: - 1: 12561 + 2: 12561 -22,0: 0: 12289 - 1: 286 + 2: 286 -22,1: 0: 51 - 1: 4364 + 2: 4364 -22,2: 0: 19969 - 1: 45342 + 2: 45342 -22,3: 0: 511 - 1: 2048 + 2: 2048 -22,-1: - 1: 4528 + 2: 4528 0: 3663 -24,-4: - 1: 63744 + 2: 63744 -25,-4: - 1: 52360 + 2: 52360 -24,-2: 0: 61440 - 1: 2048 + 2: 2048 -25,-2: 0: 32768 - 1: 1 + 2: 1 -25,-1: 0: 61164 -23,-4: - 1: 62225 + 2: 62225 -24,-3: - 1: 128 + 2: 128 -23,-3: - 1: 4400 + 2: 4400 -23,-2: - 1: 785 + 2: 785 0: 61440 -23,-5: - 1: 61440 + 2: 61440 -22,-4: - 1: 63488 + 2: 63488 -22,-2: 0: 61696 - 1: 2048 + 2: 2048 -22,-3: - 1: 128 + 2: 128 -21,-2: - 1: 785 + 2: 785 0: 61440 -21,-5: - 1: 61440 + 2: 61440 -27,-3: - 1: 17484 + 2: 17484 -27,-2: - 1: 17484 + 2: 17484 -27,-1: - 1: 17484 + 2: 17484 -27,0: - 1: 17484 + 2: 17484 -26,-2: - 1: 17511 + 2: 17511 -26,-1: - 1: 17479 + 2: 17479 -26,-3: - 1: 59392 + 2: 59392 -26,0: - 1: 25671 + 2: 25671 -26,-4: - 1: 8 + 2: 8 -26,-5: - 1: 32768 + 2: 32768 -25,-3: - 1: 14326 + 2: 14326 -25,-5: - 1: 61440 + 2: 61440 -27,1: - 1: 17484 + 2: 17484 -27,2: - 1: 17484 + 2: 17484 -27,3: - 1: 17484 + 2: 17484 -27,4: - 1: 17484 + 2: 17484 -26,1: - 1: 17511 + 2: 17511 -26,2: - 1: 17479 + 2: 17479 -26,3: - 1: 25671 + 2: 25671 -26,4: - 1: 2279 + 2: 2279 -24,5: - 1: 2544 + 2: 2544 -25,5: - 1: 36038 + 2: 36038 -24,6: - 1: 240 + 2: 240 -25,6: - 1: 248 + 2: 248 -24,4: - 1: 32768 + 2: 32768 -23,5: - 1: 5104 + 2: 5104 -23,6: - 1: 241 + 2: 241 -22,5: - 1: 2288 + 2: 2288 -22,6: - 1: 240 + 2: 240 -22,4: - 1: 32768 + 2: 32768 -27,5: - 1: 12 + 2: 12 -25,4: - 1: 63281 + 2: 63281 -26,6: - 1: 136 + 2: 136 20,-13: 0: 49344 - 1: 3072 + 2: 3072 21,-15: - 1: 62704 + 2: 62704 21,-13: 0: 61680 - 1: 3840 + 2: 3840 22,-15: - 1: 62704 + 2: 62704 22,-14: - 1: 8192 + 2: 8192 23,-15: - 1: 62704 + 2: 62704 23,-13: 0: 61680 - 1: 3840 + 2: 3840 24,-15: - 1: 62704 + 2: 62704 24,-13: 0: 4112 - 1: 256 + 2: 256 25,-12: - 1: 50244 + 2: 50244 25,-13: - 1: 50244 + 2: 50244 25,-11: - 1: 50244 + 2: 50244 25,-10: - 1: 50244 + 2: 50244 26,-12: - 1: 4369 + 2: 4369 26,-11: - 1: 4369 + 2: 4369 26,-10: - 1: 4369 + 2: 4369 26,-13: - 1: 4369 + 2: 4369 25,-15: - 1: 62576 + 2: 62576 25,-14: - 1: 50244 + 2: 50244 26,-15: - 1: 4368 + 2: 4368 26,-14: - 1: 4369 + 2: 4369 -18,-8: - 1: 17484 + 2: 17484 -18,-9: - 1: 17600 + 2: 17600 -18,-7: - 1: 17476 + 2: 17476 -18,-6: - 1: 17476 + 2: 17476 -17,-9: - 1: 16 + 2: 16 37,0: 0: 36607 37,1: 0: 3822 37,2: - 1: 2053 + 2: 2053 37,-1: 0: 59630 38,0: @@ -11605,7 +11605,7 @@ entities: 38,-1: 0: 61559 38,2: - 1: 1024 + 2: 1024 39,1: 0: 4095 39,0: @@ -11613,30 +11613,30 @@ entities: 39,-1: 0: 61183 39,2: - 1: 516 + 2: 516 40,0: 0: 57343 40,1: 0: 825 36,-2: - 1: 8192 + 2: 8192 37,-2: - 1: 80 + 2: 80 4: 57344 37,-3: - 1: 32768 + 2: 32768 38,-2: 5: 28672 38,-3: - 1: 16384 + 2: 16384 39,-2: 0: 61440 - 1: 64 + 2: 64 39,-3: - 1: 8192 + 2: 8192 40,-2: 0: 12288 - 1: 16 + 2: 16 40,-1: 0: 64915 -14,-14: @@ -11646,36 +11646,36 @@ entities: -13,-14: 0: 12288 40,2: - 1: 2561 + 2: 2561 41,0: 0: 29298 41,1: 0: 7 - 1: 19968 + 2: 19968 41,-1: 0: 30576 41,2: - 1: 516 + 2: 516 42,0: - 1: 3089 + 2: 3089 42,1: - 1: 193 + 2: 193 42,2: - 1: 12 + 2: 12 40,-3: - 1: 40960 + 2: 40960 41,-3: - 1: 8192 + 2: 8192 41,-2: - 1: 58432 + 2: 58432 42,-1: - 1: 49180 + 2: 49180 42,-2: - 1: 192 + 2: 192 -24,-5: - 1: 61440 + 2: 61440 -22,-5: - 1: 61440 + 2: 61440 uniqueMixes: - volume: 2500 temperature: 293.15 @@ -11693,10 +11693,10 @@ entities: - 0 - 0 - volume: 2500 - immutable: True + temperature: 235 moles: - - 0 - - 0 + - 21.824879 + - 82.10312 - 0 - 0 - 0 @@ -11708,10 +11708,10 @@ entities: - 0 - 0 - volume: 2500 - temperature: 235 + immutable: True moles: - - 21.824879 - - 82.10312 + - 0 + - 0 - 0 - 0 - 0 @@ -14801,6 +14801,13 @@ entities: rot: -1.5707963267948966 rad pos: 81.5,-30.5 parent: 1 +- proto: AirlockExternalGlassShuttleMiningFilled + entities: + - uid: 19218 + components: + - type: Transform + pos: -46.5,-52.5 + parent: 1 - proto: AirlockExternalGlassShuttleShipyard entities: - uid: 6293 @@ -17380,13 +17387,6 @@ entities: - type: Transform pos: 12.5,45.5 parent: 1 -- proto: AlwaysPoweredSmallLightMaintenanceRed - entities: - - uid: 25397 - components: - - type: Transform - pos: -62.5,-8.5 - parent: 1 - proto: AmeController entities: - uid: 5808 @@ -64188,6 +64188,13 @@ entities: - type: Transform pos: 75.5,-22.5 parent: 1 +- proto: CrateNitrogenInternals + entities: + - uid: 20996 + components: + - type: Transform + pos: -0.5,-9.5 + parent: 1 - proto: CrateNPCChicken entities: - uid: 1184 @@ -64384,13 +64391,6 @@ entities: - type: Transform pos: 41.5,44.5 parent: 1 -- proto: CrateSlimepersonLifeSupport - entities: - - uid: 20996 - components: - - type: Transform - pos: -0.5,-9.5 - parent: 1 - proto: CrateTrainingBombs entities: - uid: 25232 @@ -65554,6 +65554,25 @@ entities: rot: -1.5707963267948966 rad pos: 120.467674,14.534573 parent: 1 +- proto: DimLightBulb + entities: + - uid: 13934 + components: + - type: Transform + pos: -7.290815,-33.503067 + parent: 1 + - uid: 13935 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -7.551232,-33.51349 + parent: 1 + - uid: 22745 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -17.71097,48.727478 + parent: 1 - proto: DiseaseDiagnoser entities: - uid: 9894 @@ -82546,6 +82565,11 @@ entities: - type: Transform pos: 58.153984,43.567505 parent: 1 + - uid: 18827 + components: + - type: Transform + pos: 76.67503,-5.5288234 + parent: 1 - uid: 20642 components: - type: Transform @@ -128438,6 +128462,16 @@ entities: - type: Transform pos: 129.5,-4.5 parent: 1 + - uid: 18828 + components: + - type: Transform + pos: -45.5,-52.5 + parent: 1 + - uid: 18829 + components: + - type: Transform + pos: -47.5,-52.5 + parent: 1 - uid: 19930 components: - type: Transform @@ -132963,25 +132997,6 @@ entities: rot: 1.5707963267948966 rad pos: -17.49222,48.425186 parent: 1 -- proto: LightBulbMaintenanceRed - entities: - - uid: 13934 - components: - - type: Transform - pos: -7.290815,-33.503067 - parent: 1 - - uid: 13935 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: -7.551232,-33.51349 - parent: 1 - - uid: 22745 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: -17.71097,48.727478 - parent: 1 - proto: Lighter entities: - uid: 4003 @@ -133607,6 +133622,13 @@ entities: - type: Transform pos: 86.5,-12.5 parent: 1 +- proto: LockerPsychologistFilled + entities: + - uid: 18826 + components: + - type: Transform + pos: 77.5,-6.5 + parent: 1 - proto: LockerQuarterMasterFilled entities: - uid: 6768 @@ -139152,6 +139174,461 @@ entities: - type: Transform pos: 101.5,-19.5 parent: 1 +- proto: PoweredDimSmallLight + entities: + - uid: 680 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -61.5,16.5 + parent: 1 + - uid: 910 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -2.5,26.5 + parent: 1 + - uid: 1032 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -5.5,26.5 + parent: 1 + - uid: 3822 + components: + - type: Transform + pos: -62.5,-3.5 + parent: 1 + - uid: 3823 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -64.5,15.5 + parent: 1 + - uid: 5634 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 96.5,17.5 + parent: 1 + - uid: 7627 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 55.5,-9.5 + parent: 1 + - uid: 14412 + components: + - type: Transform + pos: 3.5,-23.5 + parent: 1 + - uid: 14413 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -16.5,-38.5 + parent: 1 + - uid: 14480 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 6.5,-33.5 + parent: 1 + - uid: 14481 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 6.5,-32.5 + parent: 1 + - uid: 14482 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 17.5,-32.5 + parent: 1 + - uid: 14483 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 17.5,-33.5 + parent: 1 + - uid: 14592 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 56.5,-15.5 + parent: 1 + - uid: 16380 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -18.5,21.5 + parent: 1 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 16949 + components: + - type: Transform + pos: 20.5,-23.5 + parent: 1 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 17212 + components: + - type: Transform + pos: -11.5,-41.5 + parent: 1 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 17214 + components: + - type: Transform + pos: -14.5,-31.5 + parent: 1 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 17215 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -2.5,-30.5 + parent: 1 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 17219 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -35.5,-29.5 + parent: 1 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 17220 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -31.5,-23.5 + parent: 1 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 17223 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -27.5,-9.5 + parent: 1 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 17225 + components: + - type: Transform + pos: -10.5,-20.5 + parent: 1 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 17226 + components: + - type: Transform + pos: -2.5,-18.5 + parent: 1 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 17236 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -41.5,-3.5 + parent: 1 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 17246 + components: + - type: Transform + pos: -31.5,32.5 + parent: 1 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 17248 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -22.5,18.5 + parent: 1 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 17249 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -26.5,13.5 + parent: 1 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 17254 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -11.5,26.5 + parent: 1 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 17262 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 25.5,27.5 + parent: 1 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 17265 + components: + - type: Transform + pos: 39.5,28.5 + parent: 1 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 17266 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 49.5,13.5 + parent: 1 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 17273 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 51.5,-9.5 + parent: 1 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 17275 + components: + - type: Transform + pos: 36.5,-20.5 + parent: 1 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 17276 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 40.5,-21.5 + parent: 1 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 17277 + components: + - type: Transform + pos: 30.5,-19.5 + parent: 1 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 17285 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 29.5,-30.5 + parent: 1 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 17287 + components: + - type: Transform + pos: 41.5,-36.5 + parent: 1 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 17289 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 41.5,-40.5 + parent: 1 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 17295 + components: + - type: Transform + pos: 50.5,-24.5 + parent: 1 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 17304 + components: + - type: Transform + pos: 89.5,-14.5 + parent: 1 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 17315 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 51.5,32.5 + parent: 1 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 17321 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 33.5,38.5 + parent: 1 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 17322 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 39.5,46.5 + parent: 1 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 17326 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -17.5,44.5 + parent: 1 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 17330 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -21.5,42.5 + parent: 1 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 17332 + components: + - type: Transform + pos: -10.5,40.5 + parent: 1 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 17334 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -31.5,27.5 + parent: 1 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 17339 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 91.5,19.5 + parent: 1 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 17341 + components: + - type: Transform + pos: 93.5,22.5 + parent: 1 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 20591 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 100.5,21.5 + parent: 1 + - uid: 20603 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 91.5,11.5 + parent: 1 + - uid: 20610 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 117.5,-13.5 + parent: 1 + - uid: 21455 + components: + - type: Transform + pos: 97.5,-12.5 + parent: 1 + - uid: 22568 + components: + - type: Transform + pos: 111.5,17.5 + parent: 1 + - uid: 22619 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 105.5,-17.5 + parent: 1 + - uid: 22620 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 106.5,23.5 + parent: 1 + - uid: 22621 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 104.5,23.5 + parent: 1 + - uid: 23489 + components: + - type: Transform + pos: 28.5,30.5 + parent: 1 + - uid: 23927 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 45.5,-13.5 + parent: 1 + - uid: 25317 + components: + - type: Transform + pos: 75.5,-24.5 + parent: 1 + - uid: 25397 + components: + - type: Transform + pos: -62.5,-8.5 + parent: 1 + - uid: 26840 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 97.5,-15.5 + parent: 1 + - uid: 26841 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 101.5,-19.5 + parent: 1 + - uid: 26880 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 113.5,-17.5 + parent: 1 + - uid: 26881 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 116.5,-17.5 + parent: 1 + - uid: 26882 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 95.5,-15.5 + parent: 1 - proto: Poweredlight entities: - uid: 110 @@ -142400,456 +142877,6 @@ entities: rot: 3.141592653589793 rad pos: -64.5,-1.5 parent: 1 -- proto: PoweredSmallLightMaintenanceRed - entities: - - uid: 680 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: -61.5,16.5 - parent: 1 - - uid: 910 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: -2.5,26.5 - parent: 1 - - uid: 1032 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: -5.5,26.5 - parent: 1 - - uid: 3822 - components: - - type: Transform - pos: -62.5,-3.5 - parent: 1 - - uid: 3823 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: -64.5,15.5 - parent: 1 - - uid: 5634 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 96.5,17.5 - parent: 1 - - uid: 7627 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 55.5,-9.5 - parent: 1 - - uid: 14412 - components: - - type: Transform - pos: 3.5,-23.5 - parent: 1 - - uid: 14413 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: -16.5,-38.5 - parent: 1 - - uid: 14480 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 6.5,-33.5 - parent: 1 - - uid: 14481 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 6.5,-32.5 - parent: 1 - - uid: 14482 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 17.5,-32.5 - parent: 1 - - uid: 14483 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 17.5,-33.5 - parent: 1 - - uid: 14592 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 56.5,-15.5 - parent: 1 - - uid: 16380 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: -18.5,21.5 - parent: 1 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 16949 - components: - - type: Transform - pos: 20.5,-23.5 - parent: 1 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 17212 - components: - - type: Transform - pos: -11.5,-41.5 - parent: 1 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 17214 - components: - - type: Transform - pos: -14.5,-31.5 - parent: 1 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 17215 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: -2.5,-30.5 - parent: 1 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 17219 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: -35.5,-29.5 - parent: 1 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 17220 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: -31.5,-23.5 - parent: 1 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 17223 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: -27.5,-9.5 - parent: 1 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 17225 - components: - - type: Transform - pos: -10.5,-20.5 - parent: 1 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 17226 - components: - - type: Transform - pos: -2.5,-18.5 - parent: 1 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 17236 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: -41.5,-3.5 - parent: 1 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 17246 - components: - - type: Transform - pos: -31.5,32.5 - parent: 1 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 17248 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: -22.5,18.5 - parent: 1 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 17249 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: -26.5,13.5 - parent: 1 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 17254 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: -11.5,26.5 - parent: 1 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 17262 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 25.5,27.5 - parent: 1 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 17265 - components: - - type: Transform - pos: 39.5,28.5 - parent: 1 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 17266 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 49.5,13.5 - parent: 1 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 17273 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 51.5,-9.5 - parent: 1 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 17275 - components: - - type: Transform - pos: 36.5,-20.5 - parent: 1 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 17276 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 40.5,-21.5 - parent: 1 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 17277 - components: - - type: Transform - pos: 30.5,-19.5 - parent: 1 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 17285 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 29.5,-30.5 - parent: 1 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 17287 - components: - - type: Transform - pos: 41.5,-36.5 - parent: 1 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 17289 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 41.5,-40.5 - parent: 1 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 17295 - components: - - type: Transform - pos: 50.5,-24.5 - parent: 1 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 17304 - components: - - type: Transform - pos: 89.5,-14.5 - parent: 1 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 17315 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 51.5,32.5 - parent: 1 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 17321 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 33.5,38.5 - parent: 1 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 17322 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 39.5,46.5 - parent: 1 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 17326 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: -17.5,44.5 - parent: 1 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 17330 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: -21.5,42.5 - parent: 1 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 17332 - components: - - type: Transform - pos: -10.5,40.5 - parent: 1 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 17334 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: -31.5,27.5 - parent: 1 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 17339 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 91.5,19.5 - parent: 1 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 17341 - components: - - type: Transform - pos: 93.5,22.5 - parent: 1 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 20591 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 100.5,21.5 - parent: 1 - - uid: 20603 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 91.5,11.5 - parent: 1 - - uid: 20610 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 117.5,-13.5 - parent: 1 - - uid: 21455 - components: - - type: Transform - pos: 97.5,-12.5 - parent: 1 - - uid: 22568 - components: - - type: Transform - pos: 111.5,17.5 - parent: 1 - - uid: 22619 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 105.5,-17.5 - parent: 1 - - uid: 22620 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 106.5,23.5 - parent: 1 - - uid: 22621 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 104.5,23.5 - parent: 1 - - uid: 23489 - components: - - type: Transform - pos: 28.5,30.5 - parent: 1 - - uid: 23927 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 45.5,-13.5 - parent: 1 - - uid: 25317 - components: - - type: Transform - pos: 75.5,-24.5 - parent: 1 - - uid: 26840 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 97.5,-15.5 - parent: 1 - - uid: 26841 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 101.5,-19.5 - parent: 1 - - uid: 26880 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 113.5,-17.5 - parent: 1 - - uid: 26881 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 116.5,-17.5 - parent: 1 - - uid: 26882 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 95.5,-15.5 - parent: 1 - proto: PresentRandom entities: - uid: 22566 @@ -150785,6 +150812,16 @@ entities: - type: Transform pos: -63.5,-8.5 parent: 1 + - uid: 18830 + components: + - type: Transform + pos: -47.5,-52.5 + parent: 1 + - uid: 19217 + components: + - type: Transform + pos: -45.5,-52.5 + parent: 1 - uid: 20148 components: - type: Transform @@ -165475,6 +165512,7 @@ entities: actions: - ActionVendingThrow - ActionVendingThrow + - ActionVendingThrow - proto: VendingMachineClothing entities: - uid: 1697 @@ -165498,6 +165536,7 @@ entities: actions: - ActionVendingThrow - ActionVendingThrow + - ActionVendingThrow - proto: VendingMachineCondiments entities: - uid: 1019 @@ -187675,7 +187714,7 @@ entities: lastSignals: DoorStatus: True - type: Door - secondsUntilStateChange: -121221.1 + secondsUntilStateChange: -121432.9 state: Opening - uid: 5096 components: @@ -187697,7 +187736,7 @@ entities: lastSignals: DoorStatus: True - type: Door - secondsUntilStateChange: -121221.1 + secondsUntilStateChange: -121432.9 state: Opening - uid: 5498 components: @@ -187713,7 +187752,7 @@ entities: lastSignals: DoorStatus: True - type: Door - secondsUntilStateChange: -120944.72 + secondsUntilStateChange: -121156.516 state: Opening - uid: 8696 components: @@ -187746,7 +187785,7 @@ entities: lastSignals: DoorStatus: True - type: Door - secondsUntilStateChange: -120942.836 + secondsUntilStateChange: -121154.63 state: Opening - uid: 18835 components: @@ -187758,7 +187797,7 @@ entities: lastSignals: DoorStatus: True - type: Door - secondsUntilStateChange: -120939.836 + secondsUntilStateChange: -121151.63 state: Opening - uid: 23917 components: diff --git a/Resources/Maps/tortuga.yml b/Resources/Maps/tortuga.yml index f7c004a8c62..37b4562d381 100644 --- a/Resources/Maps/tortuga.yml +++ b/Resources/Maps/tortuga.yml @@ -449,7 +449,7 @@ entities: version: 6 3,-1: ind: 3,-1 - tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAAAAewAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAewAAAAAAAAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAAAAewAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAAAAAAAAAAAAAAAAAfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAewAAAAAAewAAAAAAewAAAAAAewAAAAAAewAAAAAAewAAAAAAewAAAAAAewAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAewAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAewAAAAAAewAAAAAAewAAAAAAAAAAAAAAewAAAAAAewAAAAAAfAAAAAAAewAAAAAAAAAAAAAAAAAAAAAAewAAAAAAewAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAAAAewAAAAAAewAAAAAAAAAAAAAAewAAAAAAewAAAAAAAAAAAAAAewAAAAAAAAAAAAAAewAAAAAAewAAAAAAewAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAAAAewAAAAAAewAAAAAAewAAAAAAewAAAAAAewAAAAAAewAAAAAAewAAAAAAewAAAAAAewAAAAAAfAAAAAAAfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAAAAewAAAAAAewAAAAAAewAAAAAAewAAAAAAewAAAAAAewAAAAAAewAAAAAAewAAAAAAewAAAAAAfAAAAAAAfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAAAAewAAAAAAewAAAAAAewAAAAAAewAAAAAAewAAAAAAewAAAAAAewAAAAAAewAAAAAAewAAAAAAfAAAAAAAfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAewAAAAAAewAAAAAAewAAAAAAAAAAAAAAewAAAAAAewAAAAAAAAAAAAAAewAAAAAAAAAAAAAAewAAAAAAewAAAAAAewAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAewAAAAAAewAAAAAAewAAAAAAAAAAAAAAewAAAAAAewAAAAAAAAAAAAAAewAAAAAAAAAAAAAAAAAAAAAAewAAAAAAewAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAewAAAAAAewAAAAAAewAAAAAAAAAAAAAAewAAAAAAewAAAAAAfAAAAAAAewAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAewAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAewAAAAAAewAAAAAAewAAAAAAewAAAAAAewAAAAAAewAAAAAAewAAAAAAewAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAAAAewAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAewAAAAAAAAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAAAAewAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAAAAAAAAAAAAAAAAAfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAewAAAAAAewAAAAAAewAAAAAAewAAAAAAewAAAAAAewAAAAAAewAAAAAAewAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAewAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAewAAAAAAewAAAAAAewAAAAAAAAAAAAAAewAAAAAAewAAAAAAfAAAAAAAewAAAAAAAAAAAAAAAAAAAAAAewAAAAAAewAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAAAAewAAAAAAewAAAAAAAAAAAAAAewAAAAAAewAAAAAAAAAAAAAAewAAAAAAAAAAAAAAewAAAAAAewAAAAAAewAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAAAAewAAAAAAewAAAAAAewAAAAAAewAAAAAAewAAAAAAewAAAAAAewAAAAAAewAAAAAAewAAAAAAfAAAAAAAfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAAAAewAAAAAAewAAAAAAewAAAAAAewAAAAAAewAAAAAAewAAAAAAewAAAAAAewAAAAAAewAAAAAAfAAAAAAAfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAAAAewAAAAAAewAAAAAAewAAAAAAewAAAAAAewAAAAAAewAAAAAAewAAAAAAewAAAAAAewAAAAAAfAAAAAAAfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAewAAAAAAewAAAAAAewAAAAAAAAAAAAAAewAAAAAAewAAAAAAAAAAAAAAewAAAAAAAAAAAAAAewAAAAAAewAAAAAAewAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAewAAAAAAewAAAAAAewAAAAAAAAAAAAAAewAAAAAAewAAAAAAAAAAAAAAewAAAAAAAAAAAAAAAAAAAAAAewAAAAAAewAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAewAAAAAAewAAAAAAewAAAAAAAAAAAAAAewAAAAAAewAAAAAAfAAAAAAAewAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAewAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAewAAAAAAewAAAAAAewAAAAAAewAAAAAAewAAAAAAewAAAAAAewAAAAAAewAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAAAAAAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAAAAAAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATgAAAAAAAAAAAAAAewAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAewAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA version: 6 -1,7: ind: -1,7 @@ -10133,7 +10133,8 @@ entities: -13,-1: 0: 33791 -12,0: - 0: 30583 + 0: 14199 + 2: 16384 -12,-5: 0: 59630 -11,-4: @@ -10982,10 +10983,10 @@ entities: 0: 65473 -4,14: 0: 4371 - 2: 52352 + 3: 52352 -4,15: 0: 56705 - 2: 12 + 3: 12 -4,16: 0: 61129 -3,12: @@ -10993,10 +10994,10 @@ entities: -3,13: 0: 65422 -3,14: - 2: 30512 + 3: 30512 0: 8 -3,15: - 2: 7 + 3: 7 0: 13056 -3,11: 0: 61198 @@ -11011,7 +11012,7 @@ entities: 1: 61440 -2,11: 0: 65281 - 2: 12 + 3: 12 -1,12: 0: 65521 -1,13: @@ -11023,7 +11024,7 @@ entities: 1: 61440 -1,11: 0: 65518 - 2: 1 + 3: 1 0,12: 0: 65520 0,13: @@ -11063,7 +11064,7 @@ entities: 0: 30583 -6,23: 0: 61527 - 3: 32 + 4: 32 -6,19: 0: 30711 -6,24: @@ -11199,8 +11200,8 @@ entities: 0: 65535 7,16: 0: 255 - 4: 32768 - 5: 8192 + 5: 32768 + 6: 8192 8,12: 0: 30583 8,13: @@ -11337,11 +11338,11 @@ entities: 0: 26214 -1,9: 0: 15 - 2: 65280 + 3: 65280 0,10: 0: 30566 -1,10: - 2: 4607 + 3: 4607 0: 60928 0,7: 0: 60637 @@ -11668,8 +11669,8 @@ entities: 0: 4359 8,16: 0: 255 - 6: 8192 - 7: 32768 + 7: 8192 + 8: 32768 9,12: 0: 14327 9,13: @@ -11682,7 +11683,7 @@ entities: 0: 30583 9,16: 0: 255 - 7: 40960 + 8: 40960 10,12: 0: 2032 10,13: @@ -11695,7 +11696,7 @@ entities: 0: 65535 10,16: 0: 255 - 7: 40960 + 8: 40960 11,12: 0: 30583 11,13: @@ -11730,10 +11731,10 @@ entities: 0: 64443 -2,9: 0: 5003 - 2: 52224 + 3: 52224 -2,10: 0: 4400 - 2: 52428 + 3: 52428 -2,7: 0: 47359 -3,5: @@ -12237,11 +12238,11 @@ entities: 23,13: 0: 4369 8,17: - 6: 34 - 7: 136 + 7: 34 + 8: 136 7,17: - 4: 136 - 5: 34 + 5: 136 + 6: 34 8,18: 1: 65311 7,18: @@ -12255,7 +12256,7 @@ entities: 9,19: 1: 29936 9,17: - 7: 170 + 8: 170 9,20: 1: 62579 10,18: @@ -12263,7 +12264,7 @@ entities: 10,19: 1: 17532 10,17: - 7: 170 + 8: 170 10,20: 1: 29764 11,18: @@ -13091,6 +13092,21 @@ entities: - 0 - 0 - 0 + - volume: 2500 + temperature: 293.1495 + moles: + - 20.078888 + - 75.53487 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 - volume: 2500 temperature: 235 moles: @@ -16798,6 +16814,14 @@ entities: rot: 1.5707963267948966 rad pos: 59.5,-20.5 parent: 33 +- proto: AirlockExternalGlassShuttleMiningFilled + entities: + - uid: 33525 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 53.5,-0.5 + parent: 33 - proto: AirlockExternalGlassShuttleShipyard entities: - uid: 1495 @@ -67196,22 +67220,6 @@ entities: - type: Transform pos: -45.5,64.5 parent: 33 - - uid: 8928 - components: - - type: Transform - pos: -45.5,3.5 - parent: 33 - - type: ContainerContainer - containers: - entity_storage: !type:Container - showEnts: False - occludes: True - ents: - - 9007 - paper_label: !type:ContainerSlot - showEnts: False - occludes: True - ent: null - uid: 18499 components: - type: Transform @@ -72863,6 +72871,26 @@ entities: - type: Transform pos: -47.132412,74.153694 parent: 33 +- proto: DimLightBulb + entities: + - uid: 10634 + components: + - type: Transform + parent: 10633 + - type: Physics + canCollide: False + - uid: 10923 + components: + - type: Transform + parent: 10633 + - type: Physics + canCollide: False + - uid: 17651 + components: + - type: Transform + parent: 10633 + - type: Physics + canCollide: False - proto: DiseaseDiagnoser entities: - uid: 30498 @@ -142126,6 +142154,16 @@ entities: - type: Transform pos: -19.5,-97.5 parent: 33 + - uid: 33528 + components: + - type: Transform + pos: 52.5,-0.5 + parent: 33 + - uid: 33529 + components: + - type: Transform + pos: 54.5,-0.5 + parent: 33 - proto: GrilleBroken entities: - uid: 5569 @@ -144700,26 +144738,6 @@ entities: rot: -1.5707963267948966 rad pos: 6.222972,-33.428795 parent: 33 -- proto: LightBulbMaintenanceRed - entities: - - uid: 10634 - components: - - type: Transform - parent: 10633 - - type: Physics - canCollide: False - - uid: 10923 - components: - - type: Transform - parent: 10633 - - type: Physics - canCollide: False - - uid: 17651 - components: - - type: Transform - parent: 10633 - - type: Physics - canCollide: False - proto: Lighter entities: - uid: 4387 @@ -145462,6 +145480,42 @@ entities: showEnts: False occludes: True ent: null +- proto: LockerPsychologistFilled + entities: + - uid: 8928 + components: + - type: Transform + pos: -45.5,3.5 + parent: 33 + - type: EntityStorage + air: + volume: 200 + immutable: False + temperature: 293.1465 + moles: + - 1.7459903 + - 6.568249 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - type: ContainerContainer + containers: + entity_storage: !type:Container + showEnts: False + occludes: True + ents: + - 9007 + paper_label: !type:ContainerSlot + showEnts: False + occludes: True + ent: null - proto: LockerQuarterMasterFilled entities: - uid: 11309 @@ -160018,6 +160072,223 @@ entities: parent: 31478 - type: Physics canCollide: False +- proto: PoweredDimSmallLight + entities: + - uid: 1132 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -16.5,54.5 + parent: 33 + - uid: 5193 + components: + - type: Transform + pos: -39.5,-19.5 + parent: 33 + - uid: 5930 + components: + - type: Transform + pos: 16.5,6.5 + parent: 33 + - uid: 5936 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 28.5,36.5 + parent: 33 + - uid: 5937 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 17.5,2.5 + parent: 33 + - uid: 5938 + components: + - type: Transform + pos: 38.5,50.5 + parent: 33 + - uid: 5939 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 22.5,55.5 + parent: 33 + - uid: 5941 + components: + - type: Transform + pos: 7.5,72.5 + parent: 33 + - uid: 5946 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,35.5 + parent: 33 + - uid: 5947 + components: + - type: Transform + pos: 2.5,47.5 + parent: 33 + - uid: 5949 + components: + - type: Transform + pos: -16.5,56.5 + parent: 33 + - uid: 5954 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 36.5,-1.5 + parent: 33 + - uid: 5957 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 18.5,17.5 + parent: 33 + - uid: 5960 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 27.5,25.5 + parent: 33 + - uid: 9778 + components: + - type: Transform + pos: 14.5,52.5 + parent: 33 + - uid: 9809 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 7.5,74.5 + parent: 33 + - uid: 9810 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,85.5 + parent: 33 + - uid: 9811 + components: + - type: Transform + pos: 9.5,82.5 + parent: 33 + - uid: 12710 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -86.5,-10.5 + parent: 33 + - uid: 12711 + components: + - type: Transform + pos: -88.5,-0.5 + parent: 33 + - uid: 12738 + components: + - type: Transform + pos: -58.5,24.5 + parent: 33 + - uid: 12740 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -35.5,26.5 + parent: 33 + - uid: 12741 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -38.5,26.5 + parent: 33 + - uid: 12742 + components: + - type: Transform + pos: -42.5,26.5 + parent: 33 + - uid: 12747 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -15.5,86.5 + parent: 33 + - uid: 12759 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,25.5 + parent: 33 + - uid: 12760 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -10.5,47.5 + parent: 33 + - uid: 12766 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -7.5,61.5 + parent: 33 + - uid: 18480 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -43.5,-30.5 + parent: 33 + - uid: 18501 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -92.5,-22.5 + parent: 33 + - uid: 18508 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -94.5,6.5 + parent: 33 + - uid: 20879 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -69.5,18.5 + parent: 33 + - uid: 26813 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -92.5,-25.5 + parent: 33 + - uid: 28833 + components: + - type: Transform + pos: -21.5,96.5 + parent: 33 + - uid: 28834 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -21.5,98.5 + parent: 33 + - uid: 28835 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -20.5,97.5 + parent: 33 + - uid: 28836 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -22.5,97.5 + parent: 33 + - uid: 30544 + components: + - type: Transform + pos: -72.5,19.5 + parent: 33 - proto: Poweredlight entities: - uid: 459 @@ -163802,223 +164073,6 @@ entities: rot: 3.141592653589793 rad pos: -83.5,12.5 parent: 33 -- proto: PoweredSmallLightMaintenanceRed - entities: - - uid: 1132 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: -16.5,54.5 - parent: 33 - - uid: 5193 - components: - - type: Transform - pos: -39.5,-19.5 - parent: 33 - - uid: 5930 - components: - - type: Transform - pos: 16.5,6.5 - parent: 33 - - uid: 5936 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 28.5,36.5 - parent: 33 - - uid: 5937 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 17.5,2.5 - parent: 33 - - uid: 5938 - components: - - type: Transform - pos: 38.5,50.5 - parent: 33 - - uid: 5939 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 22.5,55.5 - parent: 33 - - uid: 5941 - components: - - type: Transform - pos: 7.5,72.5 - parent: 33 - - uid: 5946 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 2.5,35.5 - parent: 33 - - uid: 5947 - components: - - type: Transform - pos: 2.5,47.5 - parent: 33 - - uid: 5949 - components: - - type: Transform - pos: -16.5,56.5 - parent: 33 - - uid: 5954 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 36.5,-1.5 - parent: 33 - - uid: 5957 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 18.5,17.5 - parent: 33 - - uid: 5960 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 27.5,25.5 - parent: 33 - - uid: 9778 - components: - - type: Transform - pos: 14.5,52.5 - parent: 33 - - uid: 9809 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 7.5,74.5 - parent: 33 - - uid: 9810 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 3.5,85.5 - parent: 33 - - uid: 9811 - components: - - type: Transform - pos: 9.5,82.5 - parent: 33 - - uid: 12710 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: -86.5,-10.5 - parent: 33 - - uid: 12711 - components: - - type: Transform - pos: -88.5,-0.5 - parent: 33 - - uid: 12738 - components: - - type: Transform - pos: -58.5,24.5 - parent: 33 - - uid: 12740 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: -35.5,26.5 - parent: 33 - - uid: 12741 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: -38.5,26.5 - parent: 33 - - uid: 12742 - components: - - type: Transform - pos: -42.5,26.5 - parent: 33 - - uid: 12747 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: -15.5,86.5 - parent: 33 - - uid: 12759 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 3.5,25.5 - parent: 33 - - uid: 12760 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: -10.5,47.5 - parent: 33 - - uid: 12766 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: -7.5,61.5 - parent: 33 - - uid: 18480 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: -43.5,-30.5 - parent: 33 - - uid: 18501 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: -92.5,-22.5 - parent: 33 - - uid: 18508 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: -94.5,6.5 - parent: 33 - - uid: 20879 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: -69.5,18.5 - parent: 33 - - uid: 26813 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: -92.5,-25.5 - parent: 33 - - uid: 28833 - components: - - type: Transform - pos: -21.5,96.5 - parent: 33 - - uid: 28834 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: -21.5,98.5 - parent: 33 - - uid: 28835 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: -20.5,97.5 - parent: 33 - - uid: 28836 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: -22.5,97.5 - parent: 33 - - uid: 30544 - components: - - type: Transform - pos: -72.5,19.5 - parent: 33 - proto: PresentRandom entities: - uid: 2958 @@ -174192,6 +174246,16 @@ entities: - type: Transform pos: -42.5,-70.5 parent: 33 + - uid: 33526 + components: + - type: Transform + pos: 52.5,-0.5 + parent: 33 + - uid: 33527 + components: + - type: Transform + pos: 54.5,-0.5 + parent: 33 - proto: RemoteSignaller entities: - uid: 27714 @@ -205446,6 +205510,16 @@ entities: - type: Transform pos: -49.5,-41.5 parent: 33 + - uid: 33523 + components: + - type: Transform + pos: 51.5,-0.5 + parent: 33 + - uid: 33524 + components: + - type: Transform + pos: 55.5,-0.5 + parent: 33 - proto: WallReinforcedRust entities: - uid: 31423 From df61a6b4fc6fa961d1eded21b9d86859c9f090de Mon Sep 17 00:00:00 2001 From: Radezolid Date: Thu, 19 Dec 2024 00:19:51 -0300 Subject: [PATCH 35/76] Add External access to the prison guard role (#2476) added access --- .../Prototypes/Nyanotrasen/Roles/Jobs/Security/prisonguard.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/Resources/Prototypes/Nyanotrasen/Roles/Jobs/Security/prisonguard.yml b/Resources/Prototypes/Nyanotrasen/Roles/Jobs/Security/prisonguard.yml index ae458736491..a4f1af721d7 100644 --- a/Resources/Prototypes/Nyanotrasen/Roles/Jobs/Security/prisonguard.yml +++ b/Resources/Prototypes/Nyanotrasen/Roles/Jobs/Security/prisonguard.yml @@ -20,6 +20,7 @@ - Security #- Brig #Delta V: Removed brig access - Maintenance + - External # DeltaV - Added external access special: - !type:AddImplantSpecial implants: [ MindShieldImplant ] From 44ee1c58257dbb3b237104cf48dac4d894f73156 Mon Sep 17 00:00:00 2001 From: Delta-V bot <135767721+DeltaV-Bot@users.noreply.github.com> Date: Thu, 19 Dec 2024 04:20:12 +0100 Subject: [PATCH 36/76] Automatic changelog update --- Resources/Changelog/DeltaVChangelog.yml | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/Resources/Changelog/DeltaVChangelog.yml b/Resources/Changelog/DeltaVChangelog.yml index d28ee05ca3b..e3b75db64e8 100644 --- a/Resources/Changelog/DeltaVChangelog.yml +++ b/Resources/Changelog/DeltaVChangelog.yml @@ -1,12 +1,4 @@ Entries: -- author: NullWanderer - changes: - - message: The maximum amount of unwhitelist players on Periapsis has been increased - to 35 until this can be properly re-evaluated. - type: Tweak - id: 292 - time: '2024-03-24T16:03:52.018326+00:00' - url: null - author: FluffiestFloof changes: - message: Changed lunchbox size. @@ -3819,3 +3811,10 @@ id: 791 time: '2024-12-19T03:10:43.0000000+00:00' url: https://github.com/DeltaV-Station/Delta-v/pull/2468 +- author: Radezolid + changes: + - message: Prison guards now have External access. + type: Tweak + id: 792 + time: '2024-12-19T03:19:52.0000000+00:00' + url: https://github.com/DeltaV-Station/Delta-v/pull/2476 From 8b3bd377cabef21d30987d137a7e43bcd8c43aeb Mon Sep 17 00:00:00 2001 From: Radezolid Date: Thu, 19 Dec 2024 00:32:16 -0300 Subject: [PATCH 37/76] Add a light to the paramedic's helmet + removal of paramedic suit storage from upstream files. (#2343) * Added the paramed helmet * Fix! * I totally didn't forget the meta.json * Nuke the suit storage in the wrong spot + add access reader to the new one. * Hide the original one from the spawn menu * Hear me out... Inheritance. * It wasn't for this PR. * It kinda is a hardsuit helmet isn't it? * Forgor the resistances * It's a hardsuit helmet now, can't be picked up * Before Milon notices --- .../Catalog/Fills/Lockers/suit_storage.yml | 17 ------ .../Catalog/Fills/Lockers/suit_storage.yml | 22 ++++++++ .../Clothing/Head/hardsuit-helmets.yml | 23 ++++++++ .../Entities/Clothing/Head/eva-helmets.yml | 1 + .../Clothing/OuterClothing/softsuits.yml | 2 +- .../Helmets/paramedhelm.rsi/icon-flash.png | Bin 0 -> 908 bytes .../Head/Helmets/paramedhelm.rsi/icon.png | Bin 0 -> 750 bytes .../Helmets/paramedhelm.rsi/inhand-left.png | Bin 0 -> 1030 bytes .../Helmets/paramedhelm.rsi/inhand-right.png | Bin 0 -> 1069 bytes .../Head/Helmets/paramedhelm.rsi/meta.json | 50 ++++++++++++++++++ .../off-equipped-HELMET-vox.png | Bin 0 -> 1431 bytes .../off-equipped-HELMET-vulpkanin.png | Bin 0 -> 1394 bytes .../paramedhelm.rsi/off-equipped-HELMET.png | Bin 0 -> 1283 bytes .../on-equipped-HELMET-vox.png | Bin 0 -> 1629 bytes .../on-equipped-HELMET-vulpkanin.png | Bin 0 -> 1533 bytes .../paramedhelm.rsi/on-equipped-HELMET.png | Bin 0 -> 1428 bytes 16 files changed, 97 insertions(+), 18 deletions(-) create mode 100644 Resources/Textures/DeltaV/Clothing/Head/Helmets/paramedhelm.rsi/icon-flash.png create mode 100644 Resources/Textures/DeltaV/Clothing/Head/Helmets/paramedhelm.rsi/icon.png create mode 100644 Resources/Textures/DeltaV/Clothing/Head/Helmets/paramedhelm.rsi/inhand-left.png create mode 100644 Resources/Textures/DeltaV/Clothing/Head/Helmets/paramedhelm.rsi/inhand-right.png create mode 100644 Resources/Textures/DeltaV/Clothing/Head/Helmets/paramedhelm.rsi/meta.json create mode 100644 Resources/Textures/DeltaV/Clothing/Head/Helmets/paramedhelm.rsi/off-equipped-HELMET-vox.png create mode 100644 Resources/Textures/DeltaV/Clothing/Head/Helmets/paramedhelm.rsi/off-equipped-HELMET-vulpkanin.png create mode 100644 Resources/Textures/DeltaV/Clothing/Head/Helmets/paramedhelm.rsi/off-equipped-HELMET.png create mode 100644 Resources/Textures/DeltaV/Clothing/Head/Helmets/paramedhelm.rsi/on-equipped-HELMET-vox.png create mode 100644 Resources/Textures/DeltaV/Clothing/Head/Helmets/paramedhelm.rsi/on-equipped-HELMET-vulpkanin.png create mode 100644 Resources/Textures/DeltaV/Clothing/Head/Helmets/paramedhelm.rsi/on-equipped-HELMET.png diff --git a/Resources/Prototypes/Catalog/Fills/Lockers/suit_storage.yml b/Resources/Prototypes/Catalog/Fills/Lockers/suit_storage.yml index 59f0c33f1ca..6a254afc0bc 100644 --- a/Resources/Prototypes/Catalog/Fills/Lockers/suit_storage.yml +++ b/Resources/Prototypes/Catalog/Fills/Lockers/suit_storage.yml @@ -238,23 +238,6 @@ - type: AccessReader access: [["Salvage"]] -# DeltaV - Adding Paramedic Suit Storage Unit -#Paramedic hardsuit -- type: entity - id: SuitStorageParamedic - parent: SuitStorageBase - suffix: Paramedic - components: - - type: StorageFill - contents: - - id: NitrogenTankFilled - - id: OxygenTankFilled - - id: ClothingOuterHardsuitVoidParamed - - id: ClothingHeadHelmetVoidParamed - - id: ClothingMaskBreathMedical - - type: AccessReader - access: [ [ "Paramedic" ] ] - # DeltaV - Adding Corpsman Suit Storage Unit - type: entity id: SuitStorageCorpsman diff --git a/Resources/Prototypes/DeltaV/Catalog/Fills/Lockers/suit_storage.yml b/Resources/Prototypes/DeltaV/Catalog/Fills/Lockers/suit_storage.yml index ab0542d0df2..b0bcd6aad9f 100644 --- a/Resources/Prototypes/DeltaV/Catalog/Fills/Lockers/suit_storage.yml +++ b/Resources/Prototypes/DeltaV/Catalog/Fills/Lockers/suit_storage.yml @@ -15,3 +15,25 @@ amount: 2 - id: JetpackSecurityFilled amount: 2 + +#Paramedic hardsuit +- type: entityTable + id: ParamedicSuitStorageFill + table: !type:AllSelector + children: + - id: NitrogenTankFilled + - id: OxygenTankFilled + - id: ClothingOuterHardsuitVoidParamed + - id: ClothingMaskBreathMedical + +- type: entity + parent: SuitStorageBase + id: SuitStorageParamedic + suffix: Paramedic + components: + - type: EntityTableContainerFill + containers: + entity_storage: !type:NestedSelector + tableId: ParamedicSuitStorageFill + - type: AccessReader + access: [["Paramedic"]] diff --git a/Resources/Prototypes/DeltaV/Entities/Clothing/Head/hardsuit-helmets.yml b/Resources/Prototypes/DeltaV/Entities/Clothing/Head/hardsuit-helmets.yml index 6bae05ae307..1505dec5d7f 100644 --- a/Resources/Prototypes/DeltaV/Entities/Clothing/Head/hardsuit-helmets.yml +++ b/Resources/Prototypes/DeltaV/Entities/Clothing/Head/hardsuit-helmets.yml @@ -135,3 +135,26 @@ sprite: DeltaV/Clothing/Head/Hardsuits/Combat/hos.rsi - type: Clothing sprite: DeltaV/Clothing/Head/Hardsuits/Combat/hos.rsi + +#Paramedic Void Helmet +- type: entity + parent: ClothingHeadHardsuitWithLightBase + id: ClothingHeadHelmetVoidParamedDeltaV + name: paramedic void helmet + components: + - type: Sprite + sprite: DeltaV/Clothing/Head/Helmets/paramedhelm.rsi + - type: Clothing + sprite: DeltaV/Clothing/Head/Helmets/paramedhelm.rsi + - type: ToggleableLightVisuals + - type: PointLight + radius: 6 + color: "#addbff" + - type: TemperatureProtection + heatingCoefficient: 0.1 + coolingCoefficient: 0.1 + - type: Armor + modifiers: + coefficients: + Heat: 0.90 + Radiation: 0.75 diff --git a/Resources/Prototypes/Entities/Clothing/Head/eva-helmets.yml b/Resources/Prototypes/Entities/Clothing/Head/eva-helmets.yml index c38c869f2e9..6e5e61cce74 100644 --- a/Resources/Prototypes/Entities/Clothing/Head/eva-helmets.yml +++ b/Resources/Prototypes/Entities/Clothing/Head/eva-helmets.yml @@ -54,6 +54,7 @@ - type: entity parent: ClothingHeadEVAHelmetBase id: ClothingHeadHelmetVoidParamed + categories: [ HideSpawnMenu ] # DeltaV name: paramedic void helmet description: A void helmet made for paramedics. components: diff --git a/Resources/Prototypes/Entities/Clothing/OuterClothing/softsuits.yml b/Resources/Prototypes/Entities/Clothing/OuterClothing/softsuits.yml index db13ae3cc5e..07edfa2164c 100644 --- a/Resources/Prototypes/Entities/Clothing/OuterClothing/softsuits.yml +++ b/Resources/Prototypes/Entities/Clothing/OuterClothing/softsuits.yml @@ -125,7 +125,7 @@ - type: StealTarget stealGroup: ClothingOuterHardsuitVoidParamed - type: ToggleableClothing - clothingPrototype: ClothingHeadHelmetVoidParamed + clothingPrototype: ClothingHeadHelmetVoidParamedDeltaV # DeltaV - Added light to the paramedic void suit slot: head - type: ContainerContainer containers: diff --git a/Resources/Textures/DeltaV/Clothing/Head/Helmets/paramedhelm.rsi/icon-flash.png b/Resources/Textures/DeltaV/Clothing/Head/Helmets/paramedhelm.rsi/icon-flash.png new file mode 100644 index 0000000000000000000000000000000000000000..2c0ff73c793e7130630a21f7c35a89ee8a490b52 GIT binary patch literal 908 zcmV;719SX|P)%RqfA%&w@98bsI692TGNWgB{wz|Xz?on>%u_r* zngIBt!S%@OikdicSiI9QfptWS;b;8HvinfcMJG#p&egP&4gMZumVeKU<}?Q+TRa%ey30Q0vpZ1&@t6##tG>ADeFbpHe1%S-N3yiY+a{CA0AN`b>2#Ve zzP&+ZXU{3Qd4$lon|E5yla7bYz|b)z5L`I_D%ot7bUIBgmjfV?NMPGGsZ@&3zFwf@ z=DD}|OGmLgGMb*ARze6I$6)$V95R^xoeoF ziES_AI1ZYop=lbHWntUPn5J1v{=lalI(iQ*E-r|%vFCU7*45Q@Ha7kO!1L}mkzHI| i_*ajaF1qOAKgT~ZPc~GW@>bFS0000+!(qck+3I*47qBCh~a$Z#o4oC=LyiOU>JIZA;U2>XHC(yId%Wg2&^*J$N2Tl4$82 z0Qq3?jBgP@P>d{6C=@VFlaghz`t_Zyj%@`DJxhz)Sst>e{9D)`6J zsS2*5D0Zox88~tCKG`?VaJyW8OziryT){8=ewwCPjtL*r|af- zWME+6f&dsFA0r-*qpB)CpRYVG%QA^X0$tY$1OkLYvj8kDeW;t?(PgA4yLUk-G>fXL z#9}LGnuaXP$g)f{8YLE6K~>eV_})A9;OKuK9G;Vghc8xKEXib=Oy(y5rnz;%Y&bmU gxW5``pn-piUl_t5(b)@4b-W@(${HqFhwH#t5uy=!gLN_Lcmoex~dJty~f&+kX> zA94;TilQirq9}@@D2k#e_ZLk@5aaT&Xgf3J#(MFKpGAwdJM@q5#QycUVi(7Sr@hVH zuM`ZXKe^x@pPznJgk#@J8T%0#LEin;azDo|j_*l+yM1R8^*s8-c~KbuZcqEE(=Utp z-+#~m-v3NW?f|q%iv)D`oD~2i%h|K-?60T0HzxdkKc;D77>2uzf(%h($W2N-6C}N#)QY?!!QhN+s3wSzB*CHvMg-d#xM*# z9v=fAd@ZuMoQz=uk}iRzd%PCfRbs`mHi8&QXw}zMSgva&aN)EKew`iGZ$yWG!Klk zlFf3&<8k-3+Px&2oFYDOZtK^vn#7hd=o%@PK>PVONvG4~^Ld;~1t&2}e<8v19R~e{ z1kPL>r&0kRmzml34(8Z49*++IpU;OS!0Ywm^?Lc}m2&`;tqNtcNch5AGKLLED!|Ey zBIGhN+IDi${s6kJlS-w~b)Cl^4x&*%d1`&j3zyvf_tHLI53lmZ1389%n$iH47cObJ z%#5Z#(kElsfTZ_;Z6hNiB9%&!NX!!q1{fNOF*!L+sbmt3oU%&Uaa98_41;2^NVO{5XE|`sC9f!oq9}@@D2k#eilQirqTFwq>Tl|ozMOWa-xH%B zyX^flx!Sn&J|u<_o)$UQ7P6tG~2(t>M^BQGm@% zoVDyNsI59_x&8;oI>Kz0Oj?5hSiVWQVjU7?e@#( z$Gy3S+yjy%Ns=TVP&K9<QkX2s-xC%@6Z`6RWf`?(7ubK|=${aw$V7jx4; zDgf_Ye~^Y_^B{kqPXOpM#rgP1EedFbuq2FRdrSTjF;BBv@EG*07tH<-0rio=)Xqtx8>7nO? zuf<9#WzTZ~ET-!z+?k@G-b=wMP|~spQJH5dxq^Fdb9yL7YzBXG6RWGM0DRjCm*>lu zx@negaes3&e=Xf)Dbr}ra{=gvMa#-vv|^Fe_!#N?YxrAQ>_MqylEST7vWBr|2|cVM zcmG7ww2D6EpWm`jbd1@aGv%veHHx)qj02$Y!kfh7ank8Dg<_FHWQNX6gqMzLbY>zH zZp~6C76C{tPt@cOVIq+rZ0Ezh#CAB=E zs84p-^C}V=92^v}Sd2(y4xi6Ue}9 zuM9PfTrNkcB4xfJ;rSDuKxpEJLAgk-U9owF8RXb5%x(TiaTPD(Tlc4n3 z?FOHBXOZoZstQmnnjBiZjRI{^-N_-Jf;ltATB-bgUU9l`_>b*sppQybw?M(N(Dm|e zk;aRcDV9nFkH>>&;SZd*=kWbLLi_#g_ZrojstS-=o=^ML7NwFv n2*LWgPBc2bZx%z6bb$R0w!*Va8frA>00000NkvXXu0mjf*%ku* literal 0 HcmV?d00001 diff --git a/Resources/Textures/DeltaV/Clothing/Head/Helmets/paramedhelm.rsi/meta.json b/Resources/Textures/DeltaV/Clothing/Head/Helmets/paramedhelm.rsi/meta.json new file mode 100644 index 00000000000..d33d71b631e --- /dev/null +++ b/Resources/Textures/DeltaV/Clothing/Head/Helmets/paramedhelm.rsi/meta.json @@ -0,0 +1,50 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from paradise station at commit https://github.com/ParadiseSS13/Paradise/commit/e5e584804b4b0b373a6a69d23afb73fd3c094365, redrawn by Ubaser. vox state by Flareguy, modified by Radezolid to add light", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "icon-flash" + }, + { + "name": "off-equipped-HELMET", + "directions": 4 + }, + { + "name": "off-equipped-HELMET-vox", + "directions": 4 + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + }, + { + "name": "off-equipped-HELMET-vulpkanin", + "directions": 4 + }, + { + "name": "on-equipped-HELMET-vulpkanin", + "directions": 4 + }, + { + "name": "on-equipped-HELMET-vox", + "directions": 4 + }, + { + "name": "on-equipped-HELMET", + "directions": 4 + } + + ] +} diff --git a/Resources/Textures/DeltaV/Clothing/Head/Helmets/paramedhelm.rsi/off-equipped-HELMET-vox.png b/Resources/Textures/DeltaV/Clothing/Head/Helmets/paramedhelm.rsi/off-equipped-HELMET-vox.png new file mode 100644 index 0000000000000000000000000000000000000000..52483c501ec390924cc90a34f0bc4e30b88e503b GIT binary patch literal 1431 zcmV;I1!($-P)E6T^#%PrUdd zi5h)UF%bhnjLE`a4-jw)tP{2|Y1fU6Qn2*jy}j-2@u9ny6;SV;8wufjk|ymr=l;Iu z_v`Q6+w}JX$Ou9L}R?3b?V_;9VPb1dwZB}KVZGEI_+1Oe{f3zCThrT@r|nV_KO@cDcIycbv5 z({u+#2)6wEn-Xl@EDCxKfY7QI1{~USlmRCXzN`SewYL)K)%p;v=?GirWoS)DSW_5A znKC~cSed1&sy%izwSe#L1(-UX96PW4^v+9;v(Qz#hQlw2aJY>~WRR||ZNy?RLZJ{R zPyRwU+{VDb5dHnXJ+>c2GlA>PwzqE-EiEBNMq+H)(#h%5y;z?wUOe|iIS9sjqK%A|01VBoc{4B9TZW5{X12kw_#@C)4^fGZ5?$H-1>giq~THSpB+o*6etF z*82o@9O)HTPkm3W@1i|s)hVY_m2!PSuywNtEDW&rnKJzo_v#NLF=ge9V zb{y#yno%O!eT=5W&HEFRb=u_ZBxBcmTxmNhjagXr_k1=B)RE8TY;hJrIh96h^0VVe zuYj5B8nNtYMu~DNP4?FdWGCn5&!1O$Gnoa8mv@SZ8@-NoT{TE}y(*1e`%pTznYR+R zZBdJCK3@sKWW$8D@&Cg^&gb*h3xogxo{igS?AnLdt3JxiKjJC?09y1Cg}Y+_l+3a{ zu8s_I_v$%-84JRL&I7iFMae8vGEKDGF|_C<*BY);bn)^|(b!Or0^~Kls!%z{>jl7Q zS;^9MTLJJi-LL2O9N6MYYxAe4?Z8>ikM?z=jtm1-Rih2Vpl+@Y0c5f{X6*=+ibXW7 z(tP0GwI5|lvy`)zHUbQx+$m9lv8P<-N)R>01)jyW?ygFdzAAYj|cy*{Qzj1 zPN`UQrQ_-*n4Ihp09f0$g8mZ)drnnVN~VdTD0qghF~{p=6sQ|I!}@R=QCHi7_38wX zZ$2WwY7^?nFeTH(R22J>XSKxutZZ9B{|Oyk*IhpfT?N2m?0Sz{y9F}-OIWzyFH^NF`iG-^qzBn z_xJmq-~F9Gx#s{Bgu>k<6z(Rp_v%F>?60AHAQ%i%)z_PP+vnT_2}S4NvQ?;ooiUzVx^a^=`iI22&rsic6tVW!HT|e=UUB;s|7VRiZuX2!GJT) zd=~?bPFQJf2f^$0A`}c@?(PWg=G$u0?HT|@)zCgO1=%p*@pzCOz6fdd0YdHVj!brX z8v6Jcnil%tx~Y3q4RmAO)IG?s-tc0$g|R4}yoj;ReZYc@mP?|#gDj707ic^5CPYz$ zBuU8Sa?lL}dSVo@d;$m7%ZTL@(8tH18-^p3%}G=ZbR(0=002s51Az6W%LL$g9z4(E zXDjsyJoB zU`?xbj}FIr2>=`yz32<%z!8G|zg^|Rv0gHnyx`d1z4a3^UW0BbhX)1*NGg>=B5@0T zzkvPwdoVOK3`J29k8eXX8pY|;ryCLk0O;@UCznSbRMk%=FK}DB4wBu^K7ql(K`Q%H z!twYE#P1i-(GkV%+bI-_1+=uRb;_z*!r0i=h6SJzP%VWMiEA8S4K&4K5vEBX%d#^# z{nr}LU@#aA27|$1Fc=I5gTY|@525~sw{#D_QJ=zVlK5Cqu2)v&7FVaI_DAq3ud4+8HY9LM3;V?B>08(#i$m;lx;we-X10D$cM+BQR% zLX`n_#6ufG*0})=AcQ!3bhcxSWT}m`m_}MmquDPwKGNu;3V^-$K3^y-{1-u_Je0ET z{Cdw0H7p3dXNSmQTc(tE?md{5(AwHct&=JM9*-BTue=4W`(S2z<~~3O3W`E)v|bbx zwW92M@pahe7;1&8&u)qxApDLlpo!0HoxZZ^?wn<8?cui{I`zx9XfpmmJiZO*&!4Z$ zn9$ePM-qu!&^;TgYyrT$qQcYh48U>FCvGD%@kh;esRlvAD5H7uZ*ah-q~bxdp94S~ zM{IWP+>UTKOrv^5B9RCHVB|)=!j^8BX!2M|?7Jrd07^!=TEPlXbpc(|pe&?a+u@@y zOjFklvqFY9rw|T@A&MfEBP$__A|jCpcykJdNuV1h7TfiDy#TCC(3d$ov=XaY2nm9K zogbaV*rz9*`gK0ZnGwdvM;bC6?%44>v2Dzi0#3ahfP6mxcostGiHqFzGbcCL<-NPw zoyIRcJ5*0>-GmVA-SzN@&SdfexA<@b4Uhb$_Uze9Op|~Rg86v`$>jBhE{3|go+Hi8 zerN4*<;tIIOP;}CFc=I5gTY`h7z_r3!C=(PzxcXCEe57`jsO4v07*qoM6N<$f^Z(6 Ah5!Hn literal 0 HcmV?d00001 diff --git a/Resources/Textures/DeltaV/Clothing/Head/Helmets/paramedhelm.rsi/off-equipped-HELMET.png b/Resources/Textures/DeltaV/Clothing/Head/Helmets/paramedhelm.rsi/off-equipped-HELMET.png new file mode 100644 index 0000000000000000000000000000000000000000..07450df725f365e06d66cea3f5c61fb476d18bd3 GIT binary patch literal 1283 zcmV+e1^oJnP)DEhP^zWAc7FMHXG zf{MP?7m$-TMvCdY@gckBM(y|o$0&Idv`=bn6j ze{#>chx<4 zxJtkhZJ}NPpqussuV+$YRY}5=UHgS7=c%i!!!Qgi%W|&y{eDzcW!=U;asA4uC;K&S z2F=dhVDpDxi#oLdJu!aYF?wR0mUS;UNm^~JViun-fTn3!mW5?me7U}eX_{D;g{Eov zd;vCp@RgX$WL)dIx&vmi4cJ%Cv!+4CwrtAU0zxd0Gc!Af-&;(cDH?ecQ~LzfvdSD*P5;ppc@wLbJx*IB{HKUWN*#W*52-1&&p>#-!POLKI`|gJWRh$)i(M*V$HwW-#dxVj zqdOPFzBGYdDgjWfH6Wc%Q#30!0)YUgsLXx8-_Nl_y8$SgC5lF#=EHBh)^(MD&JAHQ zsWD|KxM;UZBoZN!NDzrc*!oluh3W;*qIP=fjHCZvGQb3v5qRZ`QKw2B8~DiSUrAxc(`#{nQ1>1Y3Wqp)!lWbIfe^x} z(JeVvP42c4S|6gdrJ2^2<`q?@Jtbh>#y$a1SXiL)okwJI=%(#__M957S`zl08Wwlj zDra+~uBDj2mBlWVX>4rtoCHq^@c9BX9(V_(cVBvT?gj|Kg06duVij4?Z&#ypxg2#b zzDAwe;7P;N2@wGO>IJC1eG(u$c@~sjr@bbqdX;odIh$J+^nCo+<-Sc{@T}=60i}{j z{mfq|&=J>t)CU#J@$<}=D`jiNS4&M>t7j+NQbC&8f!XqgyPV5b|4U_t)0G1sVt}y*XfM*@Vh4$+|zk$oWkTJ22U*O z4+H`L6m$dI@^U=F;~J1jjVXpU4yUEA9cLJ$gtNG6jjk#t2enIs$z zBZOer_S;8vX5vH2OnhiXdyxOUaoM?ZmnfG7LI?^4op}6WRX0Ohwrmsi^+9Lvaqir2 tvLr8&NF)-8L?V$$Boc{4B9Ta3^ADYQ9&ssVo815a002ovPDHLkV1jS!WrY9$ literal 0 HcmV?d00001 diff --git a/Resources/Textures/DeltaV/Clothing/Head/Helmets/paramedhelm.rsi/on-equipped-HELMET-vox.png b/Resources/Textures/DeltaV/Clothing/Head/Helmets/paramedhelm.rsi/on-equipped-HELMET-vox.png new file mode 100644 index 0000000000000000000000000000000000000000..bc97bd641ff6ff59880d773d6d7159236cc74449 GIT binary patch literal 1629 zcmV-j2BP_iP))|Ib@UxetH`q{qw$d5Ke)?FsL#eTE$i{&`JBqE!Nu#HqH7cBcH2Ch8yZJDA z>-m;Y(>TD%8F|M<*!87HW%}jcf2_Rci$iki!f63;?1ZD(0r0qS9t!tM0L>_rulDUB zx?4U+ptgo=dbJRM*s!O|Q0765%1Yo%wIr;%71$Ow+_PO@4Dv9>Xv& zO_NL}gV*b$_eZ~#iDc5TT}M;kU#U6@SKp_;&QHNCP|U0$Wl8L!X(FXWA_4CvLUV^< zl&0hFy5Q)Hs3;3HH?ul-p1E|;u{}p`fTo)?C9Y#x*2n6Wk}Kr2Ji4x9<~6iz4&XX) z#&Itk(AwHcFjyIw5CS0tyDz;7tiK%>Ct1ttj_o=UAo%E$#N%;NsT9evQF3z^%5{@h zVQ#qak6@WZ%| z!;Lo)QZo4JIT7yKC-Zt1fJk>I7aiJk^ah-M=Ia9Bdry{>-lb2|m5#B$DMME}MsNNK z@BHl*dbh3JvF$IpFfO1p`Zgn}W?otiv9Ub4FfRW3)K?wvgU&ZhAR7I$j7EEi#ike< zdYJk7c_NVrr%%5|G}^<(i_=U@oO5OKe~s(T_Vw+Rot+V8XXhCl9N>*N#;~8yo_+gM z6+CQ00GqzPy)v6!qpq(0QyI8Ip-?Ck3WY+UP$(1%g+lQe<^TS_ypyx?h<$&kQ~Y78 z?QcqeP`F=S{Zl&~hvv&=b@%ttd*E?i86MaYQ8xw-JZRsH#-@f(z3@x2@0~4I+IdPl zci;v`nW2q@yY|V@_7G1$YtY)(S}spfN}C^eZcJ{K2CxO{JDnlGAhwmc{j}V~+j0Iw0Zo`e+zBg6MzPT29;m zS$Q5|EtjL1N~0MC01iAi=K8?GN4d1{;V@7RzE~_)Hjok|c=kR*!_X1DUf(B~`H#2~ z06?2NPkv*>)G?4H|>>_$VL@gI^qbio%Ao z3Wi}2sP!X(%v#pf6mYc&7EBXO(+Sl22_8I3{qny&n~5+J#LMgU-U zPX`mH^5r_8&qu+s5JKRYzD$+Z%QYY{{U#4Ydzf?8E$~kKg)@KrIlWK(nAOBGR#ny#*V`b#!px{Bo;cp^fhho8FF6Ow2NB*BB9Sn#!0cj?yMr2mKrKQD zAYYN0-pq&49s3mS>)R`BQKHcvMn*yh5Q+C=?2XLZMJ76bgkx bu_gQ)zGAIqc79G~00000NkvXXu0mjf<6|$W literal 0 HcmV?d00001 diff --git a/Resources/Textures/DeltaV/Clothing/Head/Helmets/paramedhelm.rsi/on-equipped-HELMET-vulpkanin.png b/Resources/Textures/DeltaV/Clothing/Head/Helmets/paramedhelm.rsi/on-equipped-HELMET-vulpkanin.png new file mode 100644 index 0000000000000000000000000000000000000000..2a475a9e4636d815b02600fcdaa42604d7b2526c GIT binary patch literal 1533 zcmV_$0>g zqA$h|koZuWKupkxMQD>gNQ!~dj|C%L*lf#3*=_fGW_M=y_^_SnH?vc^B*yzoCOh}e znRD+s_uM--doG{@yQ7xuj#`>tf7U}y^@m%i{%{MO^-z-@oeR;v*0aZvr}u@Dl9DOq zaf7#P-S;Y9+FcI-hjQtJ>FsOPYr$y=M7kTPaAPZHchr*7$cnd{k;i3T-BMKno7IB+ zXb47&1wu56Ba9`bFi={lTBfB}FH#~1pa6+P0%o&$iqQZdiXwQP zSIh66)U+Ky77myVAt|f(aw-iX$|9B)2D8}=Q4}Fb(u`+3&m-Sx)TK{z4R|>62vr|^ zPi8(7euB4m%JchUVZ;+ji18?rLL8DHpu6u@m9AcBu=@RP$Y!&_9|$56i9nJhNRota zpGzQ_oQTj!Bm#rMgsNlT(TLxlm2S-l@B|AW-?@%O1)1=YB^l{RG&AY|+~Ek)f(RSM zkQWMp<2bbaeqla#&WY&lMIHcqNf82p007{0C2;U|ChQa^m`o+k?AdTUNR? z9UzDjN=F_bl1jl~Fu>o{iQw2M?4_lu%*F1DkO%s}^E?a&0~Sx3iwnWx2lo&`W`rlh zjju&6cPIL)wgTfaQoxOw6J&NYr+{tGe)xPo1cN~Y0s+XW6y*M1REGPpb4di1;eN;i zeUMWrRmL9(>M~G^;o)HbKq8p}kQwPD0Y;+{MxzlQ@7=1(CXy*6#2AY99mqb335j+{B6z31i`Ih6))%m)#HQfb(Viva+mV?h)a7V6fi%K-+135E4d;A(db zKOA`k5FsiEx*L5`;)zT;oYI8w=tQc_yyJB!=NPg@_ZlGF?E&&9PGLlU`2pB_Xrg@n z6soJ&lFPLUZEbA}vL-Y%G|=%q>rk_EKZNx!!|{wA#kNIA2kzs{r^hpC`HJTu4EE^O zt;+$aR1#LtKj47nZovSng#$o{o&dfzwSs4J}dgo=V2QWB(UA^=N z@(r0FHsA9B01~O>>`LZ9mjh%;f*^>nT6oy@9z>%3Cz*)yl}-SFG5r7z#~S#2K3yGo z96p~9Wo2a;7`TMLE?-hlrzn_ACICQO5FyWUcIa`;Ya_(-JZe5_LEjfGYW-q!Q2ind z4D{sWbGT;BI#SvQC5qH~#R1`P_~~qfhHiIqH%_)JRmz(;l&Z#0ADx9n(M?3yykX*q zj>p~3O+Fl|ca(R3adsr2B&s<-K&j&*DT&}4Lx?+ahGRr}fLsWN-Iql;di+%X(zeJjz+h4=S`$`W zw_fCSeEgT~%dfppOz!(i19;|5U$p~JC3EnW=xPB_uuI-+X{4F1wg@#wh}m3j9nc0m zKA03+WMZGsWnK4(wq<=H6bfNk7N%)>FUztp41>01eL^;_uLhhrd5WIrJ`f?JmO^U( z!o-#|P!rOr4Fw4qVP+2LqW@{-O-a}ojLCGmmHfIr{(rjTn2)9hRN`t_K73Wvc%A;Wb@KHBx zovM7*ZM$-cwlp_$?#Nz_e_6#kptpKFz%7j^g6AV$` z)Wo^d8R{AujsxGz6n8%D?d_PR=@kp0{eCU#O^h(!b6e%xaXNt`5!cr#(6Igy(&;qW zY?hMiQkvLLcW#0^mY7&S3^4ZjAi1-rNgq5w`?Ahq;KPf35uBNsp=i4R=(>(AAQ%i1 z3zT^68Kxapc%=DO+nI6*sdb=qYYXbhSAAc?X@FQe5@I>lncRnx^sf zlYNW+RCq8cwv0?n_5+Nkjxn+QMenoug&P@CkHrC^-D^cO7UiioY}#Y(2qC;Rx_jRp zm0q5fF<<y>KdX;qckmPq-jZ`w|p-{ssZ!s?{l-WRQ~1>+1!HP3#@&6 zcu|@#m=s%v_Wsh}Twh0>5u#i!BT6n0KEI7KXS0;tGWGTK(oK+RKp>z~f8Q3g)pyOD zIC%<$V75?@tK=eb-Lm&Sm&*~l{Q*KotyBzO%j17kIIS>e#QOfZfA8sSZ@3>w4w$fgAn`e_5;suz^cLS$eNtK{OhbNGXw!^d+566N|+VLa^qBR&RSU zF{C9ELl-m$`PUPdRjbyBa# Date: Thu, 19 Dec 2024 04:32:35 +0100 Subject: [PATCH 38/76] Automatic changelog update --- Resources/Changelog/DeltaVChangelog.yml | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/Resources/Changelog/DeltaVChangelog.yml b/Resources/Changelog/DeltaVChangelog.yml index e3b75db64e8..faf8af8feed 100644 --- a/Resources/Changelog/DeltaVChangelog.yml +++ b/Resources/Changelog/DeltaVChangelog.yml @@ -1,11 +1,4 @@ Entries: -- author: FluffiestFloof - changes: - - message: Changed lunchbox size. - type: Tweak - id: 293 - time: '2024-03-25T15:13:19.0000000+00:00' - url: https://github.com/DeltaV-Station/Delta-v/pull/998 - author: UnicornOnLSD changes: - message: tortuga's cryogenics adjusted not to be of harm to patients @@ -3818,3 +3811,11 @@ id: 792 time: '2024-12-19T03:19:52.0000000+00:00' url: https://github.com/DeltaV-Station/Delta-v/pull/2476 +- author: Radezolid + changes: + - message: Paramedics void helmets now come with a flashlight attached for better + search and rescue. + type: Tweak + id: 793 + time: '2024-12-19T03:32:16.0000000+00:00' + url: https://github.com/DeltaV-Station/Delta-v/pull/2343 From 5da943a9c69459d6641e054682bf908e8451f310 Mon Sep 17 00:00:00 2001 From: Stop-Signs Date: Wed, 18 Dec 2024 21:34:10 -0600 Subject: [PATCH 39/76] New weapon - I.C.E.E. (#2170) * Update hitscan.yml * All the things * Fixing the cold * Fixed sprite and some formatting * im dumb * Revert "Fixed sprite and some formatting" This reverts commit 2550f41240d7d5713c10523f8288bbdf5d1c0dd1. * Reapply "Fixed sprite and some formatting" This reverts commit 3f4d5eaade54de778e4c98f8aa7a681ddc76e854. * Revert "im dumb" This reverts commit 9056ca3507780c5a9586093a637445234808dcc7. * names * Reviewed Changes * Reviewed Changes * Fixed for Milon * delta changes --------- Signed-off-by: Stop-Signs --- .../Weapons/Ranged/Systems/GunSystem.cs | 7 ++ .../Weapons/Ranged/HitscanPrototype.cs | 6 ++ .../en-US/deltav/research/technologies.ftl | 1 + .../Weapons/Guns/Battery/battery_guns.yml | 24 +++++ .../Weapons/Guns/Projectiles/hitscan.yml | 16 ++++ .../DeltaV/Recipes/Lathes/security.yml | 10 +++ .../Prototypes/DeltaV/Research/arsenal.yml | 12 +++ .../Entities/Structures/Machines/lathe.yml | 3 + .../Battery/cold_cannon.rsi/0-inhand-left.png | Bin 0 -> 723 bytes .../cold_cannon.rsi/0-inhand-right.png | Bin 0 -> 702 bytes .../cold_cannon.rsi/25-inhand-left.png | Bin 0 -> 732 bytes .../cold_cannon.rsi/25-inhand-right.png | Bin 0 -> 720 bytes .../cold_cannon.rsi/50-inhand-left.png | Bin 0 -> 735 bytes .../cold_cannon.rsi/50-inhand-right.png | Bin 0 -> 726 bytes .../cold_cannon.rsi/75-inhand-left.png | Bin 0 -> 729 bytes .../cold_cannon.rsi/75-inhand-right.png | Bin 0 -> 717 bytes .../Guns/Battery/cold_cannon.rsi/base.png | Bin 0 -> 699 bytes .../cold_cannon.rsi/equipped-BACKPACK.png | Bin 0 -> 1584 bytes .../cold_cannon.rsi/equipped-SUITSTORAGE.png | Bin 0 -> 1584 bytes .../Guns/Battery/cold_cannon.rsi/icon.png | Bin 0 -> 741 bytes .../Battery/cold_cannon.rsi/inhand-left.png | Bin 0 -> 762 bytes .../Battery/cold_cannon.rsi/inhand-right.png | Bin 0 -> 747 bytes .../cold_cannon.rsi/mag-unshaded-1.png | Bin 0 -> 306 bytes .../cold_cannon.rsi/mag-unshaded-2.png | Bin 0 -> 318 bytes .../cold_cannon.rsi/mag-unshaded-3.png | Bin 0 -> 351 bytes .../cold_cannon.rsi/mag-unshaded-4.png | Bin 0 -> 363 bytes .../Guns/Battery/cold_cannon.rsi/meta.json | 85 ++++++++++++++++++ .../cold_cannon.rsi/wielded-inhand-left.png | Bin 0 -> 999 bytes .../cold_cannon.rsi/wielded-inhand-right.png | Bin 0 -> 975 bytes 29 files changed, 164 insertions(+) create mode 100644 Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/0-inhand-left.png create mode 100644 Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/0-inhand-right.png create mode 100644 Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/25-inhand-left.png create mode 100644 Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/25-inhand-right.png create mode 100644 Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/50-inhand-left.png create mode 100644 Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/50-inhand-right.png create mode 100644 Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/75-inhand-left.png create mode 100644 Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/75-inhand-right.png create mode 100644 Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/base.png create mode 100644 Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/equipped-BACKPACK.png create mode 100644 Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/equipped-SUITSTORAGE.png create mode 100644 Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/icon.png create mode 100644 Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/inhand-left.png create mode 100644 Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/inhand-right.png create mode 100644 Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/mag-unshaded-1.png create mode 100644 Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/mag-unshaded-2.png create mode 100644 Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/mag-unshaded-3.png create mode 100644 Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/mag-unshaded-4.png create mode 100644 Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/meta.json create mode 100644 Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/wielded-inhand-left.png create mode 100644 Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/wielded-inhand-right.png diff --git a/Content.Server/Weapons/Ranged/Systems/GunSystem.cs b/Content.Server/Weapons/Ranged/Systems/GunSystem.cs index 03e529c4398..011a17c018f 100644 --- a/Content.Server/Weapons/Ranged/Systems/GunSystem.cs +++ b/Content.Server/Weapons/Ranged/Systems/GunSystem.cs @@ -2,6 +2,8 @@ using System.Numerics; using Content.Server.Cargo.Systems; using Content.Server.Power.EntitySystems; +using Content.Server.Stunnable; +using Content.Server.Temperature.Systems; // DeltaV Heat Change system using Content.Server.Weapons.Ranged.Components; using Content.Shared.Damage; using Content.Shared.Damage.Systems; @@ -38,6 +40,7 @@ public sealed partial class GunSystem : SharedGunSystem [Dependency] private readonly SharedTransformSystem _transform = default!; [Dependency] private readonly StaminaSystem _stamina = default!; [Dependency] private readonly SharedContainerSystem _container = default!; + [Dependency] private readonly TemperatureSystem _temperature = default!; // DeltaV Heat change system private const float DamagePitchVariation = 0.05f; @@ -217,6 +220,10 @@ public override void Shoot(EntityUid gunUid, GunComponent gun, List<(EntityUid? if (hitscan.StaminaDamage > 0f) _stamina.TakeProjectileStaminaDamage(hitEntity, hitscan.StaminaDamage, source: user); // DeltaV - Cope with hitscan not being an entity + // DeltaV: Changes the target's temperature by this amount when hit + if (hitscan.HeatChange != 0f) + _temperature.ChangeHeat(hitEntity, hitscan.HeatChange, true); + var dmg = hitscan.Damage; var hitName = ToPrettyString(hitEntity); diff --git a/Content.Shared/Weapons/Ranged/HitscanPrototype.cs b/Content.Shared/Weapons/Ranged/HitscanPrototype.cs index a5063e3ab5b..665dbbf464d 100644 --- a/Content.Shared/Weapons/Ranged/HitscanPrototype.cs +++ b/Content.Shared/Weapons/Ranged/HitscanPrototype.cs @@ -17,6 +17,12 @@ public sealed partial class HitscanPrototype : IPrototype, IShootable [ViewVariables(VVAccess.ReadWrite), DataField("staminaDamage")] public float StaminaDamage; + /// + /// DeltaV: Changes the target's temperature by this amount when hit. + /// + [DataField] + public float HeatChange; + [ViewVariables(VVAccess.ReadWrite), DataField("damage")] public DamageSpecifier? Damage; diff --git a/Resources/Locale/en-US/deltav/research/technologies.ftl b/Resources/Locale/en-US/deltav/research/technologies.ftl index ae1a8fe69ab..aa0e121ef57 100644 --- a/Resources/Locale/en-US/deltav/research/technologies.ftl +++ b/Resources/Locale/en-US/deltav/research/technologies.ftl @@ -6,3 +6,4 @@ research-technology-energy-gun-advance = Advanced Energy Manipulation research-technology-advance-laser = Advanced Laser Manipulation research-technology-robust-melee = Robust Melee research-technology-syringe-gun = Syringe Gun +research-technology-ionized-cryogenic-emission-equipment = Ionized Cryogenic Emission Equipment diff --git a/Resources/Prototypes/DeltaV/Entities/Objects/Weapons/Guns/Battery/battery_guns.yml b/Resources/Prototypes/DeltaV/Entities/Objects/Weapons/Guns/Battery/battery_guns.yml index 8885134daef..6cdeba10d4c 100644 --- a/Resources/Prototypes/DeltaV/Entities/Objects/Weapons/Guns/Battery/battery_guns.yml +++ b/Resources/Prototypes/DeltaV/Entities/Objects/Weapons/Guns/Battery/battery_guns.yml @@ -262,6 +262,30 @@ zeroVisible: true - type: Appearance +- type: entity + parent: [ BaseWeaponBattery, BaseGunWieldable, BaseSecurityContraband ] + id: WeaponColdCannon + name: I.C.E.E. + description: It's cooler than a normal gun. + components: + - type: Sprite + sprite: DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi + layers: + - state: base + map: ["enum.GunVisualLayers.Base"] + - state: mag-unshaded-4 + map: ["enum.GunVisualLayers.MagUnshaded"] + shader: unshaded + - type: Clothing + sprite: DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi + - type: Gun + fireRate: 1.5 + soundGunshot: + path: /Audio/Weapons/Guns/Gunshots/laser_cannon.ogg + - type: HitscanBatteryAmmoProvider + proto: ColdLaser + fireCost: 100 + - type: entity parent: [ BaseWeaponBattery, BaseGunWieldable, BaseSecurityContraband ] id: WeaponBeamCannon diff --git a/Resources/Prototypes/DeltaV/Entities/Objects/Weapons/Guns/Projectiles/hitscan.yml b/Resources/Prototypes/DeltaV/Entities/Objects/Weapons/Guns/Projectiles/hitscan.yml index d2420ca3bfb..f7daf83b424 100644 --- a/Resources/Prototypes/DeltaV/Entities/Objects/Weapons/Guns/Projectiles/hitscan.yml +++ b/Resources/Prototypes/DeltaV/Entities/Objects/Weapons/Guns/Projectiles/hitscan.yml @@ -14,6 +14,21 @@ sprite: Objects/Weapons/Guns/Projectiles/projectiles.rsi state: impact_omni +- type: hitscan + id: ColdLaser + damage: + types: + Cold: 20 + muzzleFlash: + sprite: Objects/Weapons/Guns/Projectiles/projectiles.rsi + state: muzzle_omni + travelFlash: + sprite: Objects/Weapons/Guns/Projectiles/projectiles.rsi + state: beam_omni + impactFlash: + sprite: Objects/Weapons/Guns/Projectiles/projectiles.rsi + state: impact_omni + heatChange: -50000 - type: hitscan id: BeamLaser damage: @@ -44,3 +59,4 @@ impactFlash: sprite: DeltaV/Objects/Weapons/Guns/Projectiles/projectiles.rsi state: impact_laser + diff --git a/Resources/Prototypes/DeltaV/Recipes/Lathes/security.yml b/Resources/Prototypes/DeltaV/Recipes/Lathes/security.yml index 022049ccee3..b831986c3cd 100644 --- a/Resources/Prototypes/DeltaV/Recipes/Lathes/security.yml +++ b/Resources/Prototypes/DeltaV/Recipes/Lathes/security.yml @@ -224,6 +224,16 @@ Steel: 1000 Plastic: 800 +- type: latheRecipe + parent: BaseWeaponRecipeLong + id: WeaponColdCannon + result: WeaponColdCannon + materials: + Steel: 1500 + Glass: 600 + Plastic: 400 + Silver: 300 + - type: latheRecipe parent: BaseWeaponRecipeLong id: WeaponBeamCannon diff --git a/Resources/Prototypes/DeltaV/Research/arsenal.yml b/Resources/Prototypes/DeltaV/Research/arsenal.yml index d604eb80568..5a0dfda8883 100644 --- a/Resources/Prototypes/DeltaV/Research/arsenal.yml +++ b/Resources/Prototypes/DeltaV/Research/arsenal.yml @@ -52,3 +52,15 @@ cost: 12500 recipeUnlocks: - AdvancedTruncheon + +- type: technology + id: IonizedCryogenicEmissionEquiplment + name: research-technology-ionized-cryogenic-emission-equipment + icon: + sprite: DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi + state: icon + discipline: Arsenal + tier: 3 + cost: 10000 + recipeUnlocks: + - WeaponColdCannon diff --git a/Resources/Prototypes/Entities/Structures/Machines/lathe.yml b/Resources/Prototypes/Entities/Structures/Machines/lathe.yml index 3bec2417ef1..d58d5f4f75a 100644 --- a/Resources/Prototypes/Entities/Structures/Machines/lathe.yml +++ b/Resources/Prototypes/Entities/Structures/Machines/lathe.yml @@ -440,7 +440,9 @@ - AdvancedTruncheon - LauncherSyringe - MiniSyringe + - WeaponColdCannon - WeaponBeamCannon + # End DeltaV additions - type: entity @@ -896,6 +898,7 @@ - ClothingOuterHardsuitSyndieReverseEngineered - ClothingShoesBootsSecurityMagboots - AdvancedTruncheon + - WeaponColdCannon - WeaponBeamCannon # End DeltaV additions - type: MaterialStorage diff --git a/Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/0-inhand-left.png b/Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/0-inhand-left.png new file mode 100644 index 0000000000000000000000000000000000000000..2ff89ccdee03966fa1229bec9f15e27b266318ae GIT binary patch literal 723 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=jKx9jP7LeL$-HD>VCwO7aSW-5 zdpm2RACsd%Tf6y!tt?JGy__m#$KGjdv5Vp^GAR=ivpFDYcSw*cdfoO1T*ApYJ_;KR z+Zg6<+jDT{%@kpmiFbF;75#RsrESfdfA{|wN56@0YWhEwYn{9VgY|+3EIU}a@)+cr z?l9e9VpTt&8&JUfLHB^J!$qd8QMz-_rd2au|DhOIvo)&qXAPg4Vt}J6wV720WJ!CL~;OoE;VWGho-|L!b9-iP2-Oi&`tz|32FHl7G&YF23aWT2T?=+J;7i!b zdhD^`1BZ~756(7xL37j#WhT#^{H9%%qf%R;&k|JAsjyUH9FXj8oMx-_uz z^7f9ek{k9ZcI9lp&2;GRTz2;3+nJc^{{O6Eem=cZz+Q&WQ+r>XUJ?5V-oj1(YQhd1 z-O~j_v_uPyAAIjV%5+a|HBMpFciGQ^@u4+J<2HL=Ox9_v+WW zoQk-gtnGOFf4kT1Z5C7iN;Gh(PQSi^IcD9uF0(QcIVIRulNtAJz7t_$kozli2A0JqAjXmTs!=`6UB}dk$aTv5T%Kz+H z_t`o{-&wMV(dxO`EJcHN3^|NvV;uB8RvNP$WArf9+Q}gMG(?igh#~0CvY3W-Kid1X zckHV$o2RJ2zClxb0ds?qvjZPP>%VE-7Z@F8DsEtMa9{IwE6)M5kFmG=WjADtZmgYm d$oc`dok39mZ>ak+U?OGkboFyt=akUI000pMDFOfh literal 0 HcmV?d00001 diff --git a/Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/0-inhand-right.png b/Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/0-inhand-right.png new file mode 100644 index 0000000000000000000000000000000000000000..e4fbbd6142d6f5b6f949ab3246d32598945ebc35 GIT binary patch literal 702 zcmV;v0zv(WP)Px%cu7P-RCr$Pnz2s8P!xtw-+Fz)` z<7NVhi!lTkU3r6=bCYYTE$zK+>1}V12?OOy`+xs`4#PPHwEWL#xqcu3lz^5Kpb}_# z0H_I42~Y{NoB)+T%L72a0#pJbCD8Bp!`*JDC9F(QD8AS0!G6DoCP0uiD-{42-|2K< zyx2q)?}OtwFc=J&^G)gcSxMuK93gDCTkHj>_t#Vd#eaW1 z!u>i9CyZ!h0NZZevVzY5xl6$L{8L`ms-juN1&v!c2v z0ivXIJx2-9)mc$plmJmux}Kv1=<2MfE=qtXDP7M|0(5m&R2L;cl$5ULC;_@UE2=A3 z0-7==6M-NNK;^!`Il$)vfb&9}8do_!VJq8J$PIuC%bLH- z0;qadp)i1GB9i9sG5}QUDwGD`)cjorfQns((g2{)r1`rH02R9mr2>!Px%l}SWFRCr$Pn!joSK@i5rH?U2qB9bPcU>A}~i}Ys|NFjHRkirMJB9Cx~MIe>e zr_d^rPEbe_MAR~^Z*XB2HW-QMo;#D38^K0TXTIP3*l=%-1-PZ z!+D=K*@|*#BcBTQEPl^Q+eIP*z{RR?<|G}!N!!I((g7}3g)=AV08ZL2#*z+ju_~N7 zNe6J!b}^Q8fQwb(%t<63TIBz0i3icV`aTMv)%z&6FCLWDV_xD0PsST z>skw;Y4LaqjdzizrVQ%fd&w7Ds9Y9uJfQk5R4*{Am@U5@WP5y`M zW+;O%z$9<09s=tffFoe&3osIo58Lz*SO=ih9ODZxQBLI{AOoPq?ehhgil_1rkOSD~ z3orpd=^-EofI|QB1(*P!^boKBFcHiBtN`F9?pi$Q0M{zQolovN;2VdBcu*JBhot}j O002ovPDHLkV1fX@TsS5G literal 0 HcmV?d00001 diff --git a/Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/25-inhand-right.png b/Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/25-inhand-right.png new file mode 100644 index 0000000000000000000000000000000000000000..8a383b120ae759ef7a8e6211efaec79d3a629b6a GIT binary patch literal 720 zcmV;>0x$iEP)Px%ib+I4RCr$Pn!jqoP!z^b-oUk^ib$7&LbqZk9lGmO=pe}>bnpQ(^bryq3Z2Z} z!AzBIfpTF0FVPpPJl|F zbDh?GFRUiUVejgqh;MWOgwtp?le7K#8tHd!YDaPgH& z1s01%c>tKE>5a!@z|5m~$8jQ^B2r3O#9$JK!y$}DqfiY8Cv{!-dc7V@r&HMP_v~<8 zw@?6rWf0V3+xCHu|0lfW`~y1H8z2PBvV8HfwUtG-@t(ow>~_1JVHhl#Gvg6fxAz$G zM|1FlhgWr7_r+u5Yq#5lEP;N%?_uA^KgXrU{KkgJr%bT|dfc zypbb>^?HrH0QLGw)lmG;*E2jkxlH_IGAU%nqd=g}!C=53yuWtg>gI*%)Uf04c02f< z8SG@M)jHZSqi&Mt>!@?NTmmNhx?@4LT4g#l?2`C_U;JF%7OLaRK)-9wJ)UGtI{qst zD^?T?0T3mnY8*L0)y#_OA_s_)QZpwO`S zy9|IVb`{PFKt^m{VhKQAGLhADkOQ(JpO^cV-T}X7%5_k*X>cF_0000Px%nMp)JRCr$Pn!ip0K@i5rH=wlyLWqqK5<4Rm6!u4JL5?Rd7CgWe#wXxHVaxRv zP+{y$z}Of(gQCugYPA|?G8w>ctyY6xuLofm z?%dD!{dj#nSN2iU&VZ=GSA#_e&1UmQeDM*Am3J6lR<`b0d>h2$!3Fr^y98Rh-G+X@ zpRDJCU>v||3k-)tz=61g5QggKP5Z|9qwo7m@i<6voFb?1lUjU^Fl!pK>Us3$N7pTSo?CT4lh+p*(pa}!N z>KdK$9=4kysxN>Nv}q54@e05eAo>C*`i*-Ci~~?=bbJ96#`0I*H`zwIX#@ZU0GJD${6z&F(beo#J* R6(Ils002ovPDHLkV1k-yK4Aa= literal 0 HcmV?d00001 diff --git a/Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/50-inhand-right.png b/Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/50-inhand-right.png new file mode 100644 index 0000000000000000000000000000000000000000..b76af8dae06238d26f8838beda33b3bd3be49382 GIT binary patch literal 726 zcmV;{0xA88P)Px%k4Z#9RCr$Pnz3raU=YVIPf*v6Dk5D<72JwWI&{~m&_T=-lny>XhSDd9I21aW zy@O6lH$h96QbZlQ+9yc44?amSn(vD-F<(v)Omdq1fA_z0xYHozFD>QzfdG&LQci$M zAms+2CP*bfC6ICgR01hC0R0P435b+HKA*Rj%cYXAd_|%7TrLNz)e4dTK{ign}*J38DaUjFQ2?Gviz8z2PJG`HeqYb%ay<2{|vS+Cb^UDsJMC;C17 zjBfxQFI<|P2X=8fc8SNvS1y+mSpv;w)5gAqW$c1bsUfGWZuS9#Ez1JKFrZK-#y4H*$oqSS+v?px$j#H5C8*^#pehBPM<@7$h>|ejre1tJPu<-e2o*dHu|EYS{7D z>ot5&bat{-D(&r!@=+p93cQs%krEFMj+~64mi#px+j!Hcv7p z9sd=S6)Osc0Em)OHI5vhYGy@skpo0YsTxNPP&Kony2t^dq*RR~2dJ7^QC;K!QBtbL zkpooCtf($>fG8!>JAO|F6OeO+B8bF-;0;d2U2msCtacUgp_>6-Odr~b8 zfZGa3O&r3Z`MZb>55=5%S0OL}96jUm1itw`f!F-~7ywc1Do6v6oxcYLa9~#<@Nas2 zQ5t}=1VrZV0UtK9U4_5^xG=x@yDWgHcNLBX;B9J>mk0oXTxmjMvRu0m)4 zP^j1ZT?RlLy9%KKkP&+>u>{~;G7;BvkOSf(e=he;y#xLM3afumV4CRZ;uum9 z_jcCCEG9>Rw&Us@xn80ZO%%CaHm%&^Q6JVQ^2pZF;~{g5;3pP!vBr?N`A(}nb~Ut_ zD0W0GGxaY>6cg*wcvodDeRp<4Z_b^+`+ufyyJ63)`Tz8i7<&VTGKW)~1>8&SFxar{ zWZl6UVwCXbKPf+jDf1wkthByBX{ zdYHg)V%jGg{b>TT&Z=#>ott{YQQ*kkyz48P&9?6Pw6G-Ib!}Mp=9@YXmdCAk-haQ{ zZ~5lZ{b8#`*RNZ?$}a0xl|t;p)9tPt``&YZbp9{3FYX*eUccG)l@{WyhJ3 zC~+vkK;ZRC1qt>IcbFDm_$SQ2zn&OY z^EKuP-vsGLDf0ct8{F={D@VNU@w2ted zj6I?SuatQ>pMQOQCo0e*uW^a!#=rl=GH;75-z3i*u<*$zsj`OCS3@rz<0Fluef93w zmuGe`m)Uwua#A^|BEjCkzi8XMtpc+|`qy9hA+}QblmVZDr=G)cRwL(z{`DGl*V#iJ zGnAcWebEtrP9TAU+5VGc?DO&yacx_Q8LgI^%~3RX$B@IgHpao}qo*;;F-8wtt(^?A zZ$l)Rj2MFMEQ@JaSFwtR(Xzo8D9SKJlBtM6qa;?(ft?|>?En{p?8a@^jTmkp`JQWE lc3@xVk#Chj?;GO#;@bk^#I0TdQ!0a}tDnm{r-UX31^{EbJemLi literal 0 HcmV?d00001 diff --git a/Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/75-inhand-right.png b/Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/75-inhand-right.png new file mode 100644 index 0000000000000000000000000000000000000000..09d2a6c646899ee6c0cb7efd1a5f3a4a99ad19d8 GIT binary patch literal 717 zcmV;;0y6!HP)Px%hDk(0RCr$Pnz2s8U=YWzPavx!5JFsxkhmF~%HR%@i36ceU>taW4#p=aVK8x` zy8}!THxn=}h7e$M#V4q_FZr;9(tcklwEcP{9cT~Q|L^{H9qu&9_(#jQejotkfQ%EM z63Dm#s0mUDPzhw50F^+-4M1-JDgluaC>D#(d_GqaR-h;pUnmq{u~)ZIdxrk48vf_92vJT zeY*g-KiSay|HVT*Hoj`Ln#vMrG#U=}Ei7X{2n+xQ+qMm+X+o(~Vwq1%*AH?UZ{!GJ zHk)BDK)vgvYAF8a>j7@=hD?0F-%n-6gFv9pX0yp4yguu2dj80CYS{6Y%O!k|40f_o zsqE~SK{rYAb<{bTOaPO8R zfG8!>JC{bCNis}LFhj-GLO0uR1V;5C2W2f#6Q6{G>k&fh}=@Yz)e{huB`lm_4~0g?H8 zsE0k`u0m)4Tv*WjT^7KxcNO*q;C6)9{9Oh>9J>mU0oXNvmjMvRu0mu0P^j1ZT?RlL zy9$v4kP(}dSOSogOvLpZi(64C#0000Px%b4f%&R9HvtRWXYiVGx}K5hPK>U?GtpieQ?s3R);w2>t|xKw2$qa*fSaRu-u) zjYY1pwhW{a6s`#TuL_`xTH@r!{&F6VuHX(2+_BG$KJ2UUio7r839vI34 z^OG&WcEEPPcEEPPcHsYTAQFif;;%TH&CZIdR;$KnG$K`1Ib7Fu@_N0Nf2cRtWsVKJ zcti1coHR{S6p-g~IkQNo(;>IpeN;3WjnZ^FrDCy2!{LyVfo``;?RMLei}`%sIDD#e z-t+7`N+y%k@Avt4Y!nIwlW;H?umHc`PwVxX1UUjKl?o@xUANn9OAh4odHVRiXgUB+ z761pr;V?g#&*$WDI4GOVo)m@MrBaFN^&ef_20Hp3#0Xr^G%^Li0jN_Hg=VuE1%p9y zI-Oig?sU7|a#EwwpwEvk>B*%+UoH$jU8UFTlnjjQHXa|Y_|{if$sFg21F&CogRTLL z0s_kAGPPPQI$XUq$sr>6?Se-pfOt*QI0sGO6cA1Qtf%k}q|<3yE|-)@Bxtc%(9=MG zCWjMH4*?#JhdFw^o}#L%0jtrK0LTO& zPS~BvWX?Ju$k_q819UFPaUTLElZlc_rT9Z791wGrPYBU<-O@Kf<~%C^Px)>PbXFRCr$PT3<+XMHC+&6eScBtwf~7|7d~B8c zZ9Oam_8@@}_^`f6^yCIYLR7-CWSA(J#HT6#X+I_M&hMO=opXxV1HXzMxc#gEK!E`d908>e7#SJim6erjYHCVpd@eDaoSfw6 z=jZI=;)2c2&Pw%_4uCNL!0Yugzu&JkK34#|*1FE|?eQ=EVoOU))&UR-h4}jVx{|^{`fg-0gx%%*Vo7Y{pWAn0f>F{l)1isMSO>hC$Gcv$H&KURfEBx)EUwNGQ;uS zVr*`1PRTZ zzI&6cuC8V*PX!oCdSpBdJ~=rNv0qnL$5cE|-^oZ}7!N^LS63_&iDV>8#c&$q^ZEGR z-d;TE0RW%R$HL(-)_*NMv<4fMB;)aHadFYK938_kc4A^efR5!(B;9-CvGKvPtN=hU z@A=`K|9Rf)^>SS$R6&4jm&+Aj@5y+~pP89qo12^3j?kWfB((bOPbp&_9lpq0n5wFtg5QYQV?tb0N#NI8yXq}HptS9X`eugQz%@Ahlc_{fSWe}Aa-kN zYU0Y9iB|#<`+VdQ0035CC9oT>A- zFjJUN3Bhz@J`Du;msOvLQXTaS;K&S@WdNWYjpZdB0NLmeNd#hi{4@T-i_f$Dy{97H zDF*-ml*+>4u++iQ0WOzIG)aO|sQ{1_Of&UzviXmnJmJwt@3DzL4%ml}J`i>o0YJ#A zRE?wnP-P|+02F^vAX^U}ja?YjC6dh!5hU7|YU`4+4apkeii$B9i+jcZ&=TnP`&m;{ zlh_R9^0z>`l?DvJCW!h6RF*<111JF@6z;n-l;_xy{A4oWFcr^}93^9Vdwcoq?X4(K zI&~XN22t}Q^$^GalLCNB420Cz*NY^$^z)Clc7w_kmc0i6NP_4iz$L39r3HYDM@5!u z{`tTF7_Qn&AO(PG^rfYx?E3ne?e6YMStIk3o$p&)TX|Vo8N0c;i5F7Su|R4J6(fxu z8&(xPtp*}dN0maV6aXk`Y<8e#1*?^}LY^5tl>s0Ho$7tkPnW4m09fH2r^+Y*;8f3K iORoY0vW2u$zw;l2l literal 0 HcmV?d00001 diff --git a/Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/equipped-SUITSTORAGE.png b/Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/equipped-SUITSTORAGE.png new file mode 100644 index 0000000000000000000000000000000000000000..cc367b8352e8499a301bb2aa59843e86ffcde16c GIT binary patch literal 1584 zcmV-02G9A4P)Px)>PbXFRCr$PT3<+XMHC+&6eScBtwf~7|7d~B8c zZ9Oam_8@@}_^`f6^yCIYLR7-CWSA(J#HT6#X+I_M&hMO=opXxV1HXzMxc#gEK!E`d908>e7#SJim6erjYHCVpd@eDaoSfw6 z=jZI=;)2c2&Pw%_4uCNL!0Yugzu&JkK34#|*1FE|?eQ=EVoOU))&UR-h4}jVx{|^{`fg-0gx%%*Vo7Y{pWAn0f>F{l)1isMSO>hC$Gcv$H&KURfEBx)EUwNGQ;uS zVr*`1PRTZ zzI&6cuC8V*PX!oCdSpBdJ~=rNv0qnL$5cE|-^oZ}7!N^LS63_&iDV>8#c&$q^ZEGR z-d;TE0RW%R$HL(-)_*NMv<4fMB;)aHadFYK938_kc4A^efR5!(B;9-CvGKvPtN=hU z@A=`K|9Rf)^>SS$R6&4jm&+Aj@5y+~pP89qo12^3j?kWfB((bOPbp&_9lpq0n5wFtg5QYQV?tb0N#NI8yXq}HptS9X`eugQz%@Ahlc_{fSWe}Aa-kN zYU0Y9iB|#<`+VdQ0035CC9oT>A- zFjJUN3Bhz@J`Du;msOvLQXTaS;K&S@WdNWYjpZdB0NLmeNd#hi{4@T-i_f$Dy{97H zDF*-ml*+>4u++iQ0WOzIG)aO|sQ{1_Of&UzviXmnJmJwt@3DzL4%ml}J`i>o0YJ#A zRE?wnP-P|+02F^vAX^U}ja?YjC6dh!5hU7|YU`4+4apkeii$B9i+jcZ&=TnP`&m;{ zlh_R9^0z>`l?DvJCW!h6RF*<111JF@6z;n-l;_xy{A4oWFcr^}93^9Vdwcoq?X4(K zI&~XN22t}Q^$^GalLCNB420Cz*NY^$^z)Clc7w_kmc0i6NP_4iz$L39r3HYDM@5!u z{`tTF7_Qn&AO(PG^rfYx?E3ne?e6YMStIk3o$p&)TX|Vo8N0c;i5F7Su|R4J6(fxu z8&(xPtp*}dN0maV6aXk`Y<8e#1*?^}LY^5tl>s0Ho$7tkPnW4m09fH2r^+Y*;8f3K iORoY0vW2u$zw;l2l literal 0 HcmV?d00001 diff --git a/Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/icon.png b/Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..38e4e876632e641c769a3d950a7e4620e8aa96bc GIT binary patch literal 741 zcmVPx%pGibPR9HvtR?mwPVHkb~L|95u%Y$SfE0SHxUC@JqfiQo9LJ*xA4|{13ZHGB| z>JS~ai-+tW9rfHvP}-v&v<};b%raCGYOSJ$$BE~)&&K?L8^Ly%_wqU4kN0`r=Xt*w zCA#2{E*PII0+s@n0+s@n0+s^*hXTQ1&=6lmP19DAIyg8mTCEmEA`#xM>pGQRJ|il) zh?L=UB%&L4TJ+(~bPtCzr1XPF^yS@Se)QdXN;^9{q^hbU0X&sT&GuHSRdP5Sb6@FD zC`9dcn=+XU4F&^pyWPBAtJSFT_Bve+-KVeZS92rQ&2#eYPc-@XgwNefzMyC{N{vQ? zKgWhF%QL{!(^Dqk^?Iq_?~?$>hP}N#K4gwRpI80A0O0$h?2G^~nE({n-rnW~fZJ>~ zN+y#Fc_6oRn@ zFoDmP4(ZCFMBnxe9=DW-EUSoR%3Pilc=`L5!ge;B%|!(uzet3t5wHRTve_(^N+q6~ z6rRt(LBjuIpY1|`psK2T21Q^LA&UByPvRbk$K%xPc4>EampYveUGw>-RgXq_?T}=AP`tO7K=r`ZQKK>dORM(0-g+q!-mJ>p|i6yf;Hk+^m;ue03z!G z@*idI%_(HI>+b6s<#M^-1dz-O4kf@I1e{JMW7X?*DH4eoxE-i!nb#mEu literal 0 HcmV?d00001 diff --git a/Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/inhand-left.png b/Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/inhand-left.png new file mode 100644 index 0000000000000000000000000000000000000000..b9e81e9b496de069cfe2ff729506e873eab38df0 GIT binary patch literal 762 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=jKx9jP7LeL$-HD>VA|s8;uum9 z_jZ<{f0CoX@#FpqM@_?-6rZg#a7tSGag}@FTvn6vPS%H^(~dRqJ0$9?uWC8;WL@K- zcU*C$&(`f?(G!z$Zn$)e$^M}6=95w?LgfkR{@;5!c_VNB{r}8<^U;6T6`s~-YhLGP za*&x&#B_;C)4YMlF_ST~af$PsApOJ;-RRv76uHw%DBU`Y*-68olYwA1ipw z6bl?v83VMYCRojlYW2DT!?z#PTs^4J1h(cn7X~T z+hRWBXX!;JvbL^L_+!KU;P11}riT0XYV)$=Q#q2Te|-u<0oor^w(9a!0KU^3^v`R#LE zhl;q@L_WBQoD9NVcIyS%f5gNJ=RP8l6LdFq{<$^Q2{)V91a*WOab9D5 z(7a-Gx^By|qmQ*s_PGW*OI~AKGl_e_4u^D(4i=%Yl0C3#Cqvhdn>>td1|JsB zzo@zY@HZoubF2Y=xt7iecNuRmEs0?W-1C;Fv6LaI-&3z)(Ohlk18ff6(Nnk=bUi;M zuz@)O$YOYK2FP+)c>XDq27`q$iyuS4kzH}x3^Bs>xxYJ^Px%q)9|URCr$PnlVqpP!PwjpFjo|M3s4D<4P2c6z;@lCXS5q4-oP1^s>>q5wfQ zSyKUU@rgtNTCG-m08}a!r&g;0W*)^i8Vz5kh?G(oF_^?+u?XdI*;B)hlciG0$>nm; zY&Kyy9J0fsCcx>^gy!!r7b9o+whagCH)HYG__En-BugNl&pX(+u#7o`+qXmbJkTc~ zFaQ|*dUgWG_7h|>8J78|bbUXk@kWjiy4@~Z8QZXNemPF6hT=b7&tU)9X5#DhdL%RM z2Lg2#3Izt??#h6bjdP|`!;U`~4B-92WG8i9|FvWK-DHukqt14_4Vdh;T?>-QB-5#3 zm&7mp;$vqkQXO9g`p)XJ!;_3j$G3vAVnx9a08vt^#*qV5&8(;{a)2l)RpZD3s%BPH z7db$bl&W#$097+9s*4;TN=nr@a)7Ft71c!!5GAE*963PM%!=v?EoEpz_e8$1gdQvS7fZGa3O&r3s`MZb>r^WpDu0mh{IC{qA2|V~df!F-~ zF97DTs~`;JdspGl0Njr7 zn!n2c2xC`aW&nPhzsmp!V^?8j08psc{9Oh>7`qBH1t24KQDO`v%3u*^JM3=AX9@`H{}?|1T>8 z4~O~zmP4!${3mc4G!`)VD8w+tF{%NDKwQQO))@@KP!*yHK-oDC-&vNOFWmY#@^V#J z^tE?;cE7(E`{U!S_4O~`SFgKu?46A@L%DcZ{rtN}85GnS7?T#16-p$O8x8?TlsW!s5pm3kkF**(@LbV*$Nv5;w^d1NTO9OxLJgexO&qutE+j}sbu4T$kgRzUUno6!hwr;@pLTQY z-}T|WKJ$f!4=i&Wb};;7ncE=D;eUX$h5Lc#1E5d^lb=EigFmDC1C~R=1xyc_D!42d z)h{SDUM`Qxi~qWBebz4j>tABpS@RMmi@z}6Uic$sRp0Yh>(5Jld;S0K#_U7$UrW?C ziZMwY@L`g2(DwLj+K|`qESupj!`bT$yBKG!XDnehiD!Pnma&iR0`G+y-UZSNeo8r* fI}oMN-e!@gqnQ^|H82DiJYD@<);T3KF)#oC>lJw7 literal 0 HcmV?d00001 diff --git a/Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/mag-unshaded-3.png b/Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/mag-unshaded-3.png new file mode 100644 index 0000000000000000000000000000000000000000..78b1d7ca2945f3fe6535d5a68cbebc3d3d8d937b GIT binary patch literal 351 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=jKx9jP7LeL$-D%z#XVgdLn`9l zPTk0R$U(%pzAS-tiWt|c4NTk{n6nj@B`~IWIJz?C9^uNIq41)~#k2U(rZ4wHJ(tX> z{r1~a_+*Pqy!$^={qFNq7hVft%2cr znaDi_hl!guv$0rgU;KfMv1`g)Q-uRNWn0ZT0+zg4!^n8?&t;ucLK6c60I}DD761SM literal 0 HcmV?d00001 diff --git a/Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/mag-unshaded-4.png b/Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/mag-unshaded-4.png new file mode 100644 index 0000000000000000000000000000000000000000..90b5b23a2153f1f7ad74923068e96fafac089989 GIT binary patch literal 363 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=jKx9jP7LeL$-D%zRXklBLn`9l zPTk0R$U(%pUTwiit`4y*uCxTkv;_`6jYrr-bPjMCFmCDK6%g?eD0w+yfmLGUFa5Ks z6NP@i`94`~lDzMyzwC?-4xd;g8lNzH5KIBloCZuM86W5$;4om?%9#^)H>0fc`KIpU zHJA3UjhX(qO6vRb)ZVKHCT+_Ke*5Ld)U$SZzcbpq>w3SM-8%g9^S#>ewV}7KZhx-p z`!{*<{(GJbr?$v$RXDIwbg4Q=z_Pb1SQ-1)YS=n980EU_aunpazT{+@l4+gg*pRI4 zPx&pGibPRCr$PS}}+kK@^>9t>nn1NOcD%kqBWej({m*3cG7ktc`7Ka)DH)FpW(t zau5i_G^R~+7HLdnv)2gWib&vs;Vi5b#47EEH}GW~cfFatWgXbrX4iFQ-v95v8HNA$ zSjw-xl;_VZ0agJiXTWZOlncNff_4koEs$~s>=sD50PL?o;1;;JxbP>F3H$h?#0B#F zL5KZ*`!^aXCr>c<^Fuhip3&-K0ZEX)oOLMrsFt1DQq+vDQ~x^^JF!*+ii|7 z$0d&22&&O&_$MbPY%mzG?|*81?2AX=*mAiH+%4H`mcKtbI^sa>c6&80lgY3`p}?-L zu9z+Xh@so*oKI5=SQ`J91( z)6-Md@AuhoI8;uiR4VzH*K9V|)TBZp;unb{0#MK(LPH7YcDwA?zjr+EV&*-+Q?;Q6 zJky=Xaa|W6Jb5Akm5f6Hl}g1Q3WvkWl%jGijJdcU@*=!bwMSDL;ra078SPXDrX8MzgR5Tcsy2$6>*l!Wu>u* zL3vLir_Xki9KCa$Aun7;|1lf-OJn<6S@;V)=tqMS^ z86fBcqsxncWUl~qjHxw_@liU$av_KS6+96W&#@9PolcqKIBNt1sRjg4YrI;mYI_2< z5fFwadJzZ{V|6;w+6sVIK=cNXM*!Xc3h40gP}>s_M!+^a(ThNsu_^$IL5jUzkH?23 z>5_c{@CSeZ$S;Z~AgIdX86@J77lH6FmoQ^h00l*7L9JF>`2}R307#-1IUR&LdohRr zYRSW&5QGQyiLQ|-xXM3+uIusx@$BpjhKbcYSW@U9jN2n1n>0F|&YCYlCLqdx2xS7o z7Ei(>AY;dgd1nHmux`>EOMpq$*hMT>0lQ$`BuuLSld7?cSgZne!MaJ9saL>%p3dq} Vf-FLy00000NkvXXu0mjf000*U$F%?e literal 0 HcmV?d00001 diff --git a/Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/wielded-inhand-right.png b/Resources/Textures/DeltaV/Objects/Weapons/Guns/Battery/cold_cannon.rsi/wielded-inhand-right.png new file mode 100644 index 0000000000000000000000000000000000000000..f181078b55ea7a0f493a4cf2368e79e09b051b0e GIT binary patch literal 975 zcmV;=12FuFP)Px&heb}#I!M8#S+cq6(zRJ?p_3ibC6hyiLZNm^ zSC?eyVy6sEhYH0(DfnSg(5XW$;^dlgLvMI}%};;jL0*>dB`@#Xd+xc<5AL}m8Nco_ zo<9);2nA%E0nq{(7l1efMGJ@)$T$O{1u`xG@hjll0<~JrL1oP6b8n4d7|wdVc3;hA zGxGiAb5B4&zSPKr$8!Sr_P3{`UaylkpPKIb_b+~tPNx&Q-Dn(DRbzk0syQeRdR-s^ zjYfkk77KDb9=-LdsuCbzv)Q=M4u^wp2jy}(_xZ>BCmsRQ>68oxgUDohy`BTu&)ycv z@2^ti`luFG6vY8-x{#3sG@DJQ)oPLPc}-g}w=_)gdL$b=wZ zS(g7J0G`MB9;!|!+wb=s$YU~@_+p1D0GPw%;jSnOF-_A;5EKB_#yhKu+3}U9fO83u zW!bSTE0REV-N_1o$XV8)H{rRi>%J-gg8Z%|{g2-R)+yhy_@HLLTyR~W0{nUg4;5$y zzpGd*65F=6SQxD z^$Wn?;1Rf#0uU1v06v8ZJPlP!EiWqKQ&D=R&KEth5b~bN8pxTflFeZO+b?WBY0dZ2;i|Qw~R?B x;FfIjh$R%jV^wY$lTg4d+2#=|^9uL_O}zV12JTj|00000NkvXXu0mjf000q)vPb{` literal 0 HcmV?d00001 From 60780ad1da7a63316c5db8c06ce6aff045e941e1 Mon Sep 17 00:00:00 2001 From: Delta-V bot <135767721+DeltaV-Bot@users.noreply.github.com> Date: Thu, 19 Dec 2024 04:34:29 +0100 Subject: [PATCH 40/76] Automatic changelog update --- Resources/Changelog/DeltaVChangelog.yml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/Resources/Changelog/DeltaVChangelog.yml b/Resources/Changelog/DeltaVChangelog.yml index faf8af8feed..6d8d9433df8 100644 --- a/Resources/Changelog/DeltaVChangelog.yml +++ b/Resources/Changelog/DeltaVChangelog.yml @@ -1,11 +1,4 @@ Entries: -- author: UnicornOnLSD - changes: - - message: tortuga's cryogenics adjusted not to be of harm to patients - type: Fix - id: 294 - time: '2024-03-25T16:21:20.0000000+00:00' - url: https://github.com/DeltaV-Station/Delta-v/pull/1003 - author: NullWanderer changes: - message: Periapsis whitelist has now been completely disabled @@ -3819,3 +3812,10 @@ id: 793 time: '2024-12-19T03:32:16.0000000+00:00' url: https://github.com/DeltaV-Station/Delta-v/pull/2343 +- author: Stop-Signs + changes: + - message: I.C.E.E, a laser that deals cold, is now available for epi to research + type: Add + id: 794 + time: '2024-12-19T03:34:10.0000000+00:00' + url: https://github.com/DeltaV-Station/Delta-v/pull/2170 From 61cad3c30443ef07a74de802715c370318bfc2f6 Mon Sep 17 00:00:00 2001 From: deltanedas <39013340+deltanedas@users.noreply.github.com> Date: Thu, 19 Dec 2024 03:43:18 +0000 Subject: [PATCH 41/76] make glimmer events trigger psionic artifacts (#2440) * make glimmer events trigger psionic artifacts * :trollface: --------- Co-authored-by: deltanedas <@deltanedas:kde.org> --- .../Systems/ArtifactMetapsionicTriggerSystem.cs | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/Content.Server/DeltaV/Xenoarchaeology/XenoArtifacts/Triggers/Systems/ArtifactMetapsionicTriggerSystem.cs b/Content.Server/DeltaV/Xenoarchaeology/XenoArtifacts/Triggers/Systems/ArtifactMetapsionicTriggerSystem.cs index 8d9a216d658..37143aacd1e 100644 --- a/Content.Server/DeltaV/Xenoarchaeology/XenoArtifacts/Triggers/Systems/ArtifactMetapsionicTriggerSystem.cs +++ b/Content.Server/DeltaV/Xenoarchaeology/XenoArtifacts/Triggers/Systems/ArtifactMetapsionicTriggerSystem.cs @@ -1,5 +1,6 @@ using Content.Server.DeltaV.Xenoarchaeology.XenoArtifacts.Triggers.Components; -using Content.Server.Xenoarchaeology.XenoArtifacts.Triggers.Systems; +using Content.Server.Nyanotrasen.StationEvents.Events; +using Content.Server.Xenoarchaeology.XenoArtifacts.Triggers.Systems; using Content.Shared.Abilities.Psionics; namespace Content.Server.Xenoarchaeology.XenoArtifacts.Triggers.Systems; @@ -13,10 +14,21 @@ public override void Initialize() base.Initialize(); SubscribeLocalEvent(OnPowerDetected); + + SubscribeLocalEvent(OnGlimmerEventEnded); } private void OnPowerDetected(Entity ent, ref PsionicPowerDetectedEvent args) { _artifact.TryActivateArtifact(ent); } + + private void OnGlimmerEventEnded(GlimmerEventEndedEvent args) + { + var query = EntityQueryEnumerator(); + while (query.MoveNext(out var uid, out _)) + { + _artifact.TryActivateArtifact(uid); + } + } } From 6e72bdebb6ee18b87a428ea3ea4e84d1425fd9a3 Mon Sep 17 00:00:00 2001 From: Delta-V bot <135767721+DeltaV-Bot@users.noreply.github.com> Date: Thu, 19 Dec 2024 04:43:37 +0100 Subject: [PATCH 42/76] Automatic changelog update --- Resources/Changelog/DeltaVChangelog.yml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/Resources/Changelog/DeltaVChangelog.yml b/Resources/Changelog/DeltaVChangelog.yml index 6d8d9433df8..2a3982cedd9 100644 --- a/Resources/Changelog/DeltaVChangelog.yml +++ b/Resources/Changelog/DeltaVChangelog.yml @@ -1,11 +1,4 @@ Entries: -- author: NullWanderer - changes: - - message: Periapsis whitelist has now been completely disabled - type: Remove - id: 295 - time: '2024-03-27T08:05:10.761803+00:00' - url: null - author: rosieposieeee changes: - message: Total re-make of Submarine's engineering department. Goodbye, AME! @@ -3819,3 +3812,10 @@ id: 794 time: '2024-12-19T03:34:10.0000000+00:00' url: https://github.com/DeltaV-Station/Delta-v/pull/2170 +- author: deltanedas + changes: + - message: Psionic discharges now trigger metapsionic artifacts. + type: Tweak + id: 795 + time: '2024-12-19T03:43:18.0000000+00:00' + url: https://github.com/DeltaV-Station/Delta-v/pull/2440 From d5716a8d4189edc528407d4c3014c8da46b30bfd Mon Sep 17 00:00:00 2001 From: SolStar <44028047+ewokswagger@users.noreply.github.com> Date: Wed, 18 Dec 2024 22:55:15 -0500 Subject: [PATCH 43/76] New psionic ablility: Precognition (#2131) * TESTING enable events for dev enviroment * Add NextEventComponent * Check for schedulers NextEventComponent * Seperate gernateing event to its own method * Add NextEventSystem and use in BasicStationEventSchedulerSystem * TESTING: Override time and player restrictions * Stash events in NextEventComponent (#1) * Add NextEventComponent * Check for schedulers NextEventComponent * Seperate gernateing event to its own method * Add NextEventSystem and use in BasicStationEventSchedulerSystem * Format code * Add nextEvent time perdiction * Use RunTime instead of float minutes * Bug fixes * Add NextEvent to Ramping and Meteors * Fix timing on BasticStationEvents * initialize NextEventComponent when created * Event scheduler caching (#2) * Check for schedulers NextEventComponent * Seperate gernateing event to its own method * Add NextEventSystem and use in BasicStationEventSchedulerSystem * Format code * Add nextEvent time perdiction * Use RunTime instead of float minutes * Bug fixes * Add NextEvent to Ramping and Meteors * Fix timing on BasticStationEvents * initialize NextEventComponent when created --------- Signed-off-by: SolStar <44028047+ewokswagger@users.noreply.github.com> * Revert "Event scheduler caching (#2)" This reverts commit bf9cd26ed4761b2e47f0259d576d15526844793b. * Revert "Merge branch 'seer' into stash-next-event" This reverts commit 656ca26173ff8cbd5237ec9b390b5cb658a49366, reversing changes made to 36f45be10e6f327780e7f2892399686813fad2e9. * Revert "Caching next exent" This reverts commit 9f1bee41310bd68cb2b5b0a2883649cfb5e9c55e, reversing changes made to 82678d9c183c43bf024c1c2c1b8ce81bd8bf7b98. * Reapply "Event scheduler caching (#2)" This reverts commit 82678d9c183c43bf024c1c2c1b8ce81bd8bf7b98. * More merge conflict nonsence * oops * oops 2 * Oops 3 * Precognition Psionic ability (#3) * Precognition ability added * Precog get next event * Get soonest event and display * update prototypes with precog results * Add random * Use Timespan for UseDelay * Damage breaks doafter * typo * fix localization * fix do after * Add effects durring do after * Revert "TESTING enable events for dev enviroment" This reverts commit 03453133bd374fe4055e03704c119e4cf28bcac3. * Revert testing changes * add deltav comments * Cleaning up! * Move NextEvent to server space * Fix NextEventId init value * Reverted upstream file to block scoped namespace * Add precognitnon result messages * reverting testing changes for real * Add admin alert for upcoming events * Add sound effect * make alert more subtule * extended max window size * fix message mixup * yaml fixes * more yaml fixes * Delta Changes * totaly a yaml error trust * remove unsessesary weights --------- Signed-off-by: SolStar <44028047+ewokswagger@users.noreply.github.com> --- .../Psionics/PrecognitionPowerSystem.cs | 232 ++++++++++++++++++ .../NextEvent/NextEventComponent.cs | 19 ++ .../NextEvent/NextEventSystem.cs | 18 ++ .../BasicStationEventSchedulerSystem.cs | 33 +++ .../StationEvents/EventManagerSystem.cs | 73 ++++-- .../RampingStationEventSchedulerSystem.cs | 33 +++ .../Psionics/PrecognitionPowerComponent.cs | 33 +++ .../Psionics/PrecognitionResultComponent.cs | 11 + .../Events/PrecognitionPowerActionEvent.cs | 3 + Content.Shared/Nyanotrasen/Psionics/Events.cs | 20 ++ .../Locale/en-US/deltav/abilities/psionic.ftl | 46 ++++ .../station-events/station-event-system.ftl | 1 + Resources/Prototypes/DeltaV/Actions/types.yml | 16 +- .../Prototypes/DeltaV/GameRules/events.yml | 12 + .../DeltaV/GameRules/glimmer_events.yml | 1 + .../DeltaV/GameRules/unknown_shuttles.yml | 4 + .../Prototypes/GameRules/cargo_gifts.yml | 2 + Resources/Prototypes/GameRules/events.yml | 48 ++++ .../Prototypes/GameRules/meteorswarms.yml | 9 + Resources/Prototypes/GameRules/pests.yml | 10 + .../Prototypes/GameRules/random_sentience.yml | 4 +- Resources/Prototypes/GameRules/roundstart.yml | 4 + .../Prototypes/GameRules/unknown_shuttles.yml | 6 + .../Prototypes/Nyanotrasen/psionicPowers.yml | 1 + .../Actions/actions_psionics.rsi/meta.json | 14 ++ .../actions_psionics.rsi/precognition.png | Bin 0 -> 1510 bytes 26 files changed, 637 insertions(+), 16 deletions(-) create mode 100644 Content.Server/DeltaV/Abilities/Psionics/PrecognitionPowerSystem.cs create mode 100644 Content.Server/DeltaV/StationEvents/NextEvent/NextEventComponent.cs create mode 100644 Content.Server/DeltaV/StationEvents/NextEvent/NextEventSystem.cs create mode 100644 Content.Shared/DeltaV/Abilities/Psionics/PrecognitionPowerComponent.cs create mode 100644 Content.Shared/DeltaV/Abilities/Psionics/PrecognitionResultComponent.cs create mode 100644 Content.Shared/DeltaV/Actions/Events/PrecognitionPowerActionEvent.cs create mode 100644 Resources/Locale/en-US/deltav/abilities/psionic.ftl create mode 100644 Resources/Locale/en-US/deltav/station-events/station-event-system.ftl create mode 100644 Resources/Textures/DeltaV/Interface/Actions/actions_psionics.rsi/meta.json create mode 100644 Resources/Textures/DeltaV/Interface/Actions/actions_psionics.rsi/precognition.png diff --git a/Content.Server/DeltaV/Abilities/Psionics/PrecognitionPowerSystem.cs b/Content.Server/DeltaV/Abilities/Psionics/PrecognitionPowerSystem.cs new file mode 100644 index 00000000000..23fe9d7e3eb --- /dev/null +++ b/Content.Server/DeltaV/Abilities/Psionics/PrecognitionPowerSystem.cs @@ -0,0 +1,232 @@ +using Content.Server.Chat.Managers; +using Content.Server.DoAfter; +using Content.Server.DeltaV.StationEvents.NextEvent; +using Content.Server.GameTicking; +using Content.Server.Mind; +using Content.Shared.Abilities.Psionics; +using Content.Shared.Actions.Events; +using Content.Shared.Actions; +using Content.Shared.DoAfter; +using Content.Shared.Eye.Blinding.Components; +using Content.Shared.Popups; +using Content.Shared.Psionics.Events; +using Content.Shared.StatusEffect; +using Content.Shared.Stunnable; +using Robust.Shared.Audio.Systems; +using Robust.Shared.Prototypes; +using Robust.Shared.Random; +using Robust.Shared.Timing; +using Robust.Shared.Player; + +namespace Content.Server.Abilities.Psionics; + +public sealed class PrecognitionPowerSystem : EntitySystem +{ + [Dependency] private readonly DoAfterSystem _doAfterSystem = default!; + [Dependency] private readonly GameTicker _gameTicker = default!; + [Dependency] private readonly MindSystem _mind = default!; + [Dependency] private readonly SharedActionsSystem _actions = default!; + [Dependency] private readonly SharedAudioSystem _audio = default!; + [Dependency] private readonly SharedPopupSystem _popups = default!; + [Dependency] private readonly SharedPsionicAbilitiesSystem _psionics = default!; + [Dependency] private readonly StatusEffectsSystem _statusEffects = default!; + [Dependency] private readonly IChatManager _chat = default!; + [Dependency] private readonly IComponentFactory _factory = default!; + [Dependency] private readonly IGameTiming _gameTiming = default!; + [Dependency] private readonly IPrototypeManager _prototype = default!; + [Dependency] private readonly IRobustRandom _random = default!; + + public override void Initialize() + { + base.Initialize(); + SubscribeLocalEvent(OnMapInit); + SubscribeLocalEvent(OnShutdown); + SubscribeLocalEvent(OnPowerUsed); + SubscribeLocalEvent(OnDoAfter); + } + + private void OnMapInit(Entity ent, ref MapInitEvent args) + { + ent.Comp.AllResults = GetAllPrecognitionResults(); + _actions.AddAction(ent, ref ent.Comp.PrecognitionActionEntity, ent.Comp.PrecognitionActionId); + _actions.StartUseDelay(ent.Comp.PrecognitionActionEntity); + if (TryComp(ent, out var psionic) && psionic.PsionicAbility == null) + { + psionic.PsionicAbility = ent.Comp.PrecognitionActionEntity; + psionic.ActivePowers.Add(ent.Comp); + } + } + + private void OnShutdown(EntityUid uid, PrecognitionPowerComponent component, ComponentShutdown args) + { + _actions.RemoveAction(uid, component.PrecognitionActionEntity); + if (TryComp(uid, out var psionic)) + psionic.ActivePowers.Remove(component); + } + + private void OnPowerUsed(EntityUid uid, PrecognitionPowerComponent component, PrecognitionPowerActionEvent args) + { + var ev = new PrecognitionDoAfterEvent(_gameTiming.CurTime); + var doAfterArgs = new DoAfterArgs(EntityManager, uid, component.UseDelay, ev, uid) + { + BreakOnDamage = true + }; + + // A custom shader for seeing visions would be nice but this will do for now. + _statusEffects.TryAddStatusEffect(uid, "TemporaryBlindness", component.UseDelay, true); + _statusEffects.TryAddStatusEffect(uid, "SlowedDown", component.UseDelay, true); + + _doAfterSystem.TryStartDoAfter(doAfterArgs, out var doAfterId); + component.DoAfter = doAfterId; + + var player = _audio.PlayGlobal(component.VisionSound, Filter.Entities(uid), true); + if (player != null) + component.SoundStream = player.Value.Entity; + _psionics.LogPowerUsed(uid, "Precognition"); + args.Handled = true; + } + + /// + /// Upon completion will send a message to the user corrosponding to the next station event to occour. + /// + /// + /// + /// + private void OnDoAfter(EntityUid uid, PrecognitionPowerComponent component, PrecognitionDoAfterEvent args) + { + if (args.Handled) + return; + + if (args.Cancelled) + { + // Need to clean up the applied effects in case of cancel and alert the player. + component.SoundStream = _audio.Stop(component.SoundStream); + _statusEffects.TryRemoveStatusEffect(uid, "TemporaryBlindness"); + _statusEffects.TryRemoveStatusEffect(uid, "SlowedDown"); + + _popups.PopupEntity( + Loc.GetString("psionic-power-precognition-failure-by-damage"), + uid, + uid, + PopupType.SmallCaution); + + if (_actions.TryGetActionData(component.PrecognitionActionEntity, out var actionData)) + // If canceled give a short delay before being able to try again + actionData.Cooldown = + (_gameTicker.RoundDuration(), + _gameTicker.RoundDuration() + TimeSpan.FromSeconds(15)); + return; + } + + // Determines the window that will be looked at for events, avoiding events that are too close or too far to be useful. + var minDetectWindow = TimeSpan.FromSeconds(30); + var maxDetectWindow = TimeSpan.FromMinutes(10); + string? message = null; + + if (!_mind.TryGetMind(uid, out _, out var mindComponent) || mindComponent.Session == null) + return; + + var nextEvent = (FindEarliestNextEvent(minDetectWindow, maxDetectWindow)); + if (nextEvent == null) // A special message given if there is no event within the time window. + message = "psionic-power-precognition-no-event-result-message"; + + if (nextEvent != null && nextEvent.NextEventId != null) + message = GetResultMessage(nextEvent.NextEventId, component); + + if (_random.Prob(component.RandomResultChance)) // This will replace the proper result message with a random one occasionaly to simulate some unreliablity. + message = GetRandomResult(); + + if (string.IsNullOrEmpty(message)) // If there is no message to send don't bother trying to send it. + return; + + // Send a message describing the vision they see + message = Loc.GetString(message); + _chat.ChatMessageToOne(Shared.Chat.ChatChannel.Server, + message, + Loc.GetString("chat-manager-server-wrap-message", ("message", message)), + uid, + false, + mindComponent.Session.Channel, + Color.PaleVioletRed); + + component.DoAfter = null; + } + + /// + /// Gets the precognition result message corosponding to the passed event id. + /// + /// message string corosponding to the event id passed + private string GetResultMessage(EntProtoId? eventId, PrecognitionPowerComponent component) + { + foreach (var (eventProto, precognitionResult) in component.AllResults) + { + if (eventProto.ID == eventId && precognitionResult != null) + return precognitionResult.Message; + } + Log.Error($"Prototype {eventId} does not have an associated precognitionResult!"); + return string.Empty; + } + + /// + /// + /// The localized string of a weighted randomly chosen precognition result + public string? GetRandomResult() + { + var precognitionResults = GetAllPrecognitionResults(); + var sumOfWeights = 0; + foreach (var precognitionResult in precognitionResults.Values) + sumOfWeights += (int)precognitionResult.Weight; + + sumOfWeights = _random.Next(sumOfWeights); + foreach (var precognitionResult in precognitionResults.Values) + { + sumOfWeights -= (int)precognitionResult.Weight; + + if (sumOfWeights <= 0) + return precognitionResult.Message; + } + + Log.Error("Result was not found after weighted pick process!"); + return null; + } + + /// + /// Gets the soonest nextEvent to occur within the window. + /// + /// The earliest reletive time that will be return a nextEvent + /// The latest reletive latest time that will be return a nextEvent + /// Component for the next event to occour if one exists in the window. + private NextEventComponent? FindEarliestNextEvent(TimeSpan minDetectWindow, TimeSpan maxDetectWindow) + { + TimeSpan? earliestNextEventTime = null; + NextEventComponent? earliestNextEvent = null; + var query = EntityQueryEnumerator(); + while (query.MoveNext(out var nextEventComponent)) + { + // Update if the event is the most recent event that isnt too close or too far from happening to be of use + if (nextEventComponent.NextEventTime > _gameTicker.RoundDuration() + minDetectWindow + && nextEventComponent.NextEventTime < _gameTicker.RoundDuration() + maxDetectWindow + && earliestNextEvent == null + || nextEventComponent.NextEventTime < earliestNextEventTime) + earliestNextEvent ??= nextEventComponent; + } + return earliestNextEvent; + } + + public Dictionary GetAllPrecognitionResults() + { + var allEvents = new Dictionary(); + foreach (var prototype in _prototype.EnumeratePrototypes()) + { + if (prototype.Abstract) + continue; + + if (!prototype.TryGetComponent(out var precognitionResult, _factory)) + continue; + + allEvents.Add(prototype, precognitionResult); + } + + return allEvents; + } +} diff --git a/Content.Server/DeltaV/StationEvents/NextEvent/NextEventComponent.cs b/Content.Server/DeltaV/StationEvents/NextEvent/NextEventComponent.cs new file mode 100644 index 00000000000..78fa5a2f067 --- /dev/null +++ b/Content.Server/DeltaV/StationEvents/NextEvent/NextEventComponent.cs @@ -0,0 +1,19 @@ +using Robust.Shared.Prototypes; + +namespace Content.Server.DeltaV.StationEvents.NextEvent; + +[RegisterComponent, Access(typeof(NextEventSystem))] +public sealed partial class NextEventComponent : Component +{ + /// + /// Id of the next event that will be run by EventManagerSystem. + /// + [DataField] + public EntProtoId? NextEventId; + + /// + /// Round time of the scheduler's next station event. + /// + [DataField] + public TimeSpan NextEventTime; +} diff --git a/Content.Server/DeltaV/StationEvents/NextEvent/NextEventSystem.cs b/Content.Server/DeltaV/StationEvents/NextEvent/NextEventSystem.cs new file mode 100644 index 00000000000..72c4a8a6f0d --- /dev/null +++ b/Content.Server/DeltaV/StationEvents/NextEvent/NextEventSystem.cs @@ -0,0 +1,18 @@ +using Content.Server.DeltaV.StationEvents.NextEvent; +using Robust.Shared.Prototypes; + +namespace Content.Server.DeltaV.StationEvents.NextEvent; + +public sealed class NextEventSystem : EntitySystem +{ + /// + /// Updates the NextEventComponent with the provided id and time and returns the previously stored id. + /// + public EntProtoId? UpdateNextEvent(NextEventComponent component, EntProtoId newEventId, TimeSpan newEventTime) + { + EntProtoId? oldEventId = component.NextEventId; // Store components current NextEventId for return + component.NextEventId = newEventId; + component.NextEventTime = newEventTime; + return oldEventId; + } +} diff --git a/Content.Server/StationEvents/BasicStationEventSchedulerSystem.cs b/Content.Server/StationEvents/BasicStationEventSchedulerSystem.cs index bdc9a47e186..882d841b24f 100644 --- a/Content.Server/StationEvents/BasicStationEventSchedulerSystem.cs +++ b/Content.Server/StationEvents/BasicStationEventSchedulerSystem.cs @@ -1,5 +1,7 @@ using System.Linq; using Content.Server.Administration; +using Content.Server.Chat.Managers; // DeltaV +using Content.Server.DeltaV.StationEvents.NextEvent; // DeltaV using Content.Server.GameTicking; using Content.Server.GameTicking.Rules; using Content.Server.StationEvents.Components; @@ -9,6 +11,7 @@ using JetBrains.Annotations; using Robust.Shared.Prototypes; using Robust.Shared.Random; +using Robust.Shared.Timing; // DeltaV using Robust.Shared.Toolshed; using Robust.Shared.Utility; @@ -21,14 +24,27 @@ namespace Content.Server.StationEvents [UsedImplicitly] public sealed class BasicStationEventSchedulerSystem : GameRuleSystem { + [Dependency] private readonly IChatManager _chatManager = default!; // DeltaV + [Dependency] private readonly IGameTiming _timing = default!; // DeltaV [Dependency] private readonly IRobustRandom _random = default!; [Dependency] private readonly EventManagerSystem _event = default!; + [Dependency] private readonly NextEventSystem _next = default!; // DeltaV protected override void Started(EntityUid uid, BasicStationEventSchedulerComponent component, GameRuleComponent gameRule, GameRuleStartedEvent args) { // A little starting variance so schedulers dont all proc at once. component.TimeUntilNextEvent = RobustRandom.NextFloat(component.MinimumTimeUntilFirstEvent, component.MinimumTimeUntilFirstEvent + 120); + + // DeltaV - end init NextEventComp + if (TryComp(uid, out var nextEventComponent) + && _event.TryGenerateRandomEvent(component.ScheduledGameRules, out string? firstEvent, TimeSpan.FromSeconds(component.TimeUntilNextEvent)) + && firstEvent != null) + { + _chatManager.SendAdminAlert(Loc.GetString("station-event-system-run-event-delayed", ("eventName", firstEvent), ("seconds", (int)component.TimeUntilNextEvent))); + _next.UpdateNextEvent(nextEventComponent, firstEvent, TimeSpan.FromSeconds(component.TimeUntilNextEvent)); + } + // DeltaV - end init NextEventComp } protected override void Ended(EntityUid uid, BasicStationEventSchedulerComponent component, GameRuleComponent gameRule, @@ -57,6 +73,23 @@ public override void Update(float frameTime) continue; } + // DeltaV events using NextEventComponent + if (TryComp(uid, out var nextEventComponent)) // If there is a nextEventComponent use the stashed event instead of running it directly. + { + ResetTimer(eventScheduler); // Time needs to be reset ahead of time since we need to chose events based on the next time it will run. + var nextEventTime = _timing.CurTime + TimeSpan.FromSeconds(eventScheduler.TimeUntilNextEvent); + if (!_event.TryGenerateRandomEvent(eventScheduler.ScheduledGameRules, out string? generatedEvent, nextEventTime)) + continue; + _chatManager.SendAdminAlert(Loc.GetString("station-event-system-run-event-delayed", ("eventName", generatedEvent), ("seconds", (int)eventScheduler.TimeUntilNextEvent))); + // Cycle the stashed event with the new generated event and time. + string? storedEvent = _next.UpdateNextEvent(nextEventComponent, generatedEvent, nextEventTime); + if (string.IsNullOrEmpty(storedEvent)) //If there was no stored event don't try to run it. + continue; + GameTicker.AddGameRule(storedEvent); + continue; + } + // DeltaV end events using NextEventComponent + _event.RunRandomEvent(eventScheduler.ScheduledGameRules); ResetTimer(eventScheduler); } diff --git a/Content.Server/StationEvents/EventManagerSystem.cs b/Content.Server/StationEvents/EventManagerSystem.cs index 741b95d969c..eadacdbbadf 100644 --- a/Content.Server/StationEvents/EventManagerSystem.cs +++ b/Content.Server/StationEvents/EventManagerSystem.cs @@ -11,7 +11,8 @@ using Content.Shared.EntityTable.EntitySelectors; using Content.Shared.EntityTable; using Content.Server.Psionics.Glimmer; // DeltaV -using Content.Shared.Psionics.Glimmer; // DeltaV +using Content.Shared.Psionics.Glimmer; +using System.Diagnostics.CodeAnalysis; // DeltaV namespace Content.Server.StationEvents; @@ -59,37 +60,67 @@ public void RunRandomEvent() /// public void RunRandomEvent(EntityTableSelector limitedEventsTable) { - if (!TryBuildLimitedEvents(limitedEventsTable, out var limitedEvents)) + if (TryGenerateRandomEvent(limitedEventsTable, out string? randomLimitedEvent)) // DeltaV - seperated into own method + GameTicker.AddGameRule(randomLimitedEvent); + } + + // DeltaV - overloaded for backwards compatiblity + public bool TryGenerateRandomEvent(EntityTableSelector limitedEventsTable, [NotNullWhen(true)] out string? randomLimitedEvent) + { + return TryGenerateRandomEvent(limitedEventsTable, out randomLimitedEvent, null); + } + // DeltaV - end overloaded for backwards compatiblity + + // DeltaV - separate event generation method + /// + /// Returns a random event from the list of events given that can be run at a given time. + /// + /// The list of events that can be chosen. + /// Generated event + /// The time to use for checking time restrictions. Uses current time if null. + /// + public bool TryGenerateRandomEvent(EntityTableSelector limitedEventsTable, [NotNullWhen(true)] out string? randomLimitedEvent, TimeSpan? eventRunTime) + { + randomLimitedEvent = null; + if (!TryBuildLimitedEvents(limitedEventsTable, out var limitedEvents, eventRunTime)) { Log.Warning("Provided event table could not build dict!"); - return; + return false; } - var randomLimitedEvent = FindEvent(limitedEvents); // this picks the event, It might be better to use the GetSpawns to do it, but that will be a major rebalancing fuck. + randomLimitedEvent = FindEvent(limitedEvents); // this picks the event, It might be better to use the GetSpawns to do it, but that will be a major rebalancing fuck. + // DeltaV - randomLimitedEvent declared by enclosing method if (randomLimitedEvent == null) { Log.Warning("The selected random event is null!"); - return; + return false; } if (!_prototype.TryIndex(randomLimitedEvent, out _)) { Log.Warning("A requested event is not available!"); - return; + return false; } - GameTicker.AddGameRule(randomLimitedEvent); + return true; + } + // DeltaV - end separate event generation method + + // DeltaV - overloaded for backwards compatiblity + public bool TryBuildLimitedEvents(EntityTableSelector limitedEventsTable, out Dictionary limitedEvents) + { + return TryBuildLimitedEvents(limitedEventsTable, out limitedEvents, null); } + // DeltaV - end overloaded for backwards compatiblity /// /// Returns true if the provided EntityTableSelector gives at least one prototype with a StationEvent comp. /// - public bool TryBuildLimitedEvents(EntityTableSelector limitedEventsTable, out Dictionary limitedEvents) + public bool TryBuildLimitedEvents(EntityTableSelector limitedEventsTable, out Dictionary limitedEvents, TimeSpan? eventRunTime) // DeltaV - Add a time overide { limitedEvents = new Dictionary(); - - var availableEvents = AvailableEvents(); // handles the player counts and individual event restrictions - + // DeltaV - Overide time for stashing events + var availableEvents = AvailableEvents(eventRunTime); // handles the player counts and individual event restrictions if (availableEvents.Count == 0) { Log.Warning("No events were available to run!"); @@ -175,6 +206,16 @@ public bool TryBuildLimitedEvents(EntityTableSelector limitedEventsTable, out Di return null; } + // DeltaV - overloaded for backwards compatiblity + public Dictionary AvailableEvents( + bool ignoreEarliestStart = false, + int? playerCountOverride = null, + TimeSpan? currentTimeOverride = null) + { + return AvailableEvents(null, ignoreEarliestStart, playerCountOverride, currentTimeOverride); + } + // DeltaV - end overloaded for backwards compatiblity + /// /// Gets the events that have met their player count, time-until start, etc. /// @@ -182,6 +223,7 @@ public bool TryBuildLimitedEvents(EntityTableSelector limitedEventsTable, out Di /// Override for round time, if using this to simulate events rather than in an actual round. /// public Dictionary AvailableEvents( + TimeSpan? eventRunTime, bool ignoreEarliestStart = false, int? playerCountOverride = null, TimeSpan? currentTimeOverride = null) @@ -189,9 +231,12 @@ public Dictionary AvailableEvents( var playerCount = playerCountOverride ?? _playerManager.PlayerCount; // playerCount does a lock so we'll just keep the variable here - var currentTime = currentTimeOverride ?? (!ignoreEarliestStart - ? GameTicker.RoundDuration() - : TimeSpan.Zero); + var currentTime = currentTimeOverride ?? ( + (!ignoreEarliestStart + ? eventRunTime // DeltaV - Use eventRunTime instead of RoundDuration if provided + ?? GameTicker.RoundDuration() + : TimeSpan.Zero) + ); var result = new Dictionary(); diff --git a/Content.Server/StationEvents/RampingStationEventSchedulerSystem.cs b/Content.Server/StationEvents/RampingStationEventSchedulerSystem.cs index a5dbe102ca1..67c8f9fb5d4 100644 --- a/Content.Server/StationEvents/RampingStationEventSchedulerSystem.cs +++ b/Content.Server/StationEvents/RampingStationEventSchedulerSystem.cs @@ -1,16 +1,22 @@ +using Content.Server.Chat.Managers; // DeltaV +using Content.Server.DeltaV.StationEvents.NextEvent; // DeltaV using Content.Server.GameTicking; using Content.Server.GameTicking.Rules; using Content.Server.StationEvents.Components; using Content.Shared.GameTicking.Components; using Robust.Shared.Random; +using Robust.Shared.Timing; // DeltaV namespace Content.Server.StationEvents; public sealed class RampingStationEventSchedulerSystem : GameRuleSystem { + [Dependency] private readonly IChatManager _chatManager = default!; // DeltaV + [Dependency] private readonly IGameTiming _timing = default!; // DeltaV [Dependency] private readonly IRobustRandom _random = default!; [Dependency] private readonly EventManagerSystem _event = default!; [Dependency] private readonly GameTicker _gameTicker = default!; + [Dependency] private readonly NextEventSystem _next = default!; // DeltaV /// /// Returns the ChaosModifier which increases as round time increases to a point. @@ -36,6 +42,16 @@ protected override void Started(EntityUid uid, RampingStationEventSchedulerCompo component.StartingChaos = component.MaxChaos / 10; PickNextEventTime(uid, component); + + // DeltaV - end init NextEventComp + if (TryComp(uid, out var nextEventComponent) + && _event.TryGenerateRandomEvent(component.ScheduledGameRules, out string? firstEvent, TimeSpan.FromSeconds(component.TimeUntilNextEvent)) + && firstEvent != null) + { + _chatManager.SendAdminAlert(Loc.GetString("station-event-system-run-event-delayed", ("eventName", firstEvent), ("seconds", (int)component.TimeUntilNextEvent))); + _next.UpdateNextEvent(nextEventComponent, firstEvent, TimeSpan.FromSeconds(component.TimeUntilNextEvent)); + } + // DeltaV - end init NextEventComp } public override void Update(float frameTime) @@ -57,6 +73,23 @@ public override void Update(float frameTime) continue; } + // DeltaV events using NextEventComponent + if (TryComp(uid, out var nextEventComponent)) // If there is a nextEventComponent use the stashed event instead of running it directly. + { + PickNextEventTime(uid, scheduler); + var nextEventTime = _timing.CurTime + TimeSpan.FromSeconds(scheduler.TimeUntilNextEvent); + if (!_event.TryGenerateRandomEvent(scheduler.ScheduledGameRules, out string? generatedEvent, nextEventTime) || generatedEvent == null) + continue; + _chatManager.SendAdminAlert(Loc.GetString("station-event-system-run-event-delayed", ("eventName", generatedEvent), ("seconds", (int)scheduler.TimeUntilNextEvent))); + // Cycle the stashed event with the new generated event and time. + string? storedEvent = _next.UpdateNextEvent(nextEventComponent, generatedEvent, nextEventTime); + if (string.IsNullOrEmpty(storedEvent)) //If there was no stored event don't try to run it. + continue; + GameTicker.AddGameRule(storedEvent); + continue; + } + // DeltaV end events using NextEventComponent + PickNextEventTime(uid, scheduler); _event.RunRandomEvent(scheduler.ScheduledGameRules); } diff --git a/Content.Shared/DeltaV/Abilities/Psionics/PrecognitionPowerComponent.cs b/Content.Shared/DeltaV/Abilities/Psionics/PrecognitionPowerComponent.cs new file mode 100644 index 00000000000..26ecf48f7aa --- /dev/null +++ b/Content.Shared/DeltaV/Abilities/Psionics/PrecognitionPowerComponent.cs @@ -0,0 +1,33 @@ +using Content.Shared.DoAfter; +using Robust.Shared.Audio; +using Robust.Shared.Prototypes; + +namespace Content.Shared.Abilities.Psionics; + +[RegisterComponent] +public sealed partial class PrecognitionPowerComponent : Component +{ + [DataField] + public float RandomResultChance = 0.2F; + + [DataField] + public Dictionary AllResults; + + [DataField] + public SoundSpecifier VisionSound = new SoundPathSpecifier("/Audio/DeltaV/Effects/clang2.ogg"); + + [DataField] + public EntityUid? SoundStream; + + [DataField] + public DoAfterId? DoAfter; + + [DataField] + public TimeSpan UseDelay = TimeSpan.FromSeconds(8.35); // The length of the sound effect + + [DataField] + public EntProtoId PrecognitionActionId = "ActionPrecognition"; + + [DataField] + public EntityUid? PrecognitionActionEntity; +} diff --git a/Content.Shared/DeltaV/Abilities/Psionics/PrecognitionResultComponent.cs b/Content.Shared/DeltaV/Abilities/Psionics/PrecognitionResultComponent.cs new file mode 100644 index 00000000000..34a8979f4fa --- /dev/null +++ b/Content.Shared/DeltaV/Abilities/Psionics/PrecognitionResultComponent.cs @@ -0,0 +1,11 @@ +namespace Content.Shared.Abilities.Psionics; + +[RegisterComponent] +public sealed partial class PrecognitionResultComponent : Component +{ + [DataField] + public string Message = default!; + + [DataField] + public float Weight = 1; +} diff --git a/Content.Shared/DeltaV/Actions/Events/PrecognitionPowerActionEvent.cs b/Content.Shared/DeltaV/Actions/Events/PrecognitionPowerActionEvent.cs new file mode 100644 index 00000000000..addc4712f2e --- /dev/null +++ b/Content.Shared/DeltaV/Actions/Events/PrecognitionPowerActionEvent.cs @@ -0,0 +1,3 @@ +namespace Content.Shared.Actions.Events; + +public sealed partial class PrecognitionPowerActionEvent : InstantActionEvent; diff --git a/Content.Shared/Nyanotrasen/Psionics/Events.cs b/Content.Shared/Nyanotrasen/Psionics/Events.cs index cf9a50c6e18..3837e3d0ee9 100644 --- a/Content.Shared/Nyanotrasen/Psionics/Events.cs +++ b/Content.Shared/Nyanotrasen/Psionics/Events.cs @@ -21,6 +21,26 @@ public PsionicRegenerationDoAfterEvent(TimeSpan startedAt) public override DoAfterEvent Clone() => this; } + // DeltaV Precognition + [Serializable, NetSerializable] + public sealed partial class PrecognitionDoAfterEvent : SimpleDoAfterEvent + { + [DataField("startedAt", required: true)] + public TimeSpan StartedAt; + + private PrecognitionDoAfterEvent() + { + } + + public PrecognitionDoAfterEvent(TimeSpan startedAt) + { + StartedAt = startedAt; + } + + public override DoAfterEvent Clone() => this; + } + // DeltaV End Precognition + [Serializable, NetSerializable] public sealed partial class GlimmerWispDrainDoAfterEvent : SimpleDoAfterEvent { diff --git a/Resources/Locale/en-US/deltav/abilities/psionic.ftl b/Resources/Locale/en-US/deltav/abilities/psionic.ftl new file mode 100644 index 00000000000..677c0b19def --- /dev/null +++ b/Resources/Locale/en-US/deltav/abilities/psionic.ftl @@ -0,0 +1,46 @@ +psionic-power-precognition-failure-by-damage = Your concentration was broken! You fail to decipher anything of use. +psionic-power-precognition-no-event-result-message = You see a vision of an undisturbed lake. + +psionic-power-precognition-xeno-vents-result-message = You see a vision, peering around a corner you see a strange, squelching beast tear at the insides of one of your coworkers as they let out a bloodcurdling scream. +psionic-power-precognition-mothroach-spawn-result-message = You see a hungering mass of newborns, chittering and screeching as they sink their mandibles into the station's knitwork. +psionic-power-precognition-listening-post-result-message = you hear a cacophony of foreign voices speaking over radio static; you wake with a creeping sense of paranoia. +psionic-power-precognition-paradox-anomaly-result-message = You see your coworker splitting in two. Where there was one, there are now two. You are unsure which of the beings is truly your coworker. +psionic-power-precognition-fugitive-result-message = You see hounds around every corner all hunting for someone who does not belong. +psionic-power-precognition-syndicate-recruiter-result-message = You see someone cutting ties on a chain-link fence and reforging its now disparate parts under a new oath of blood. +psionic-power-precognition-synthesis-specialist-result-message = You smell a dangerous mixture of chemicals in the air; the distant sound of a small plasma engine roars to life. +psionic-power-precognition-cargo-gifts-base-result-message = You see a vision of yourself, gathered for a time-old tradition of receiving gifts. You didn't ask for these, but you must pretend to appreciate nonetheless. +psionic-power-precognition-anomoly-spawn-result-message = You attempt to look forward, but the future is distorted by a blast of noöspheric energies converging on a single point. +psionic-power-precognition-bluespace-artifact-result-message = You attempt to look forward but are blinded by noöspheric energies coalescing into an object beyond comprehension. +psionic-power-precognition-bluespace-locker-result-message = You attempt to look forward, but the noösphere seems distorted by a constantly shifting bluespace energy. +psionic-power-precognition-breaker-flip-result-message = You see torches snuff around you and keepers rekindling the lost flames. +psionic-power-precognition-bureaucratic-error-result-message = You see a vision of yourself trapped in a room, trying to solve a puzzle with both missing and duplicate pieces. +psionic-power-precognition-clerical-error-result-message = You see faces you once knew being obscured in a fog of static, identities lost. +psionic-power-precognition-closet-skeleton-result-message = You hear a crackling laugh echo and clinking bones in the dusty recesses of the station. +psionic-power-precognition-dragon-spawn-result-message = Reality around you bulges and breaks as a great beast cries for war. The smell of salty sea and blood fills the air. +psionic-power-precognition-ninja-spawn-result-message = You see a vision of shadows brought to life, hounds of war howling their cries as they chase it through dark corners of the station. +psionic-power-precognition-revenant-spawn-result-message = The shadows around you grow threefold taller and threefold darker. Something lurks within them, a predator stalking you in the darkness. +psionic-power-precognition-gas-leak-result-message = For but a moment, it feels as if you cannot breathe. With a blink, everything returns to normal. +psionic-power-precognition-kudzu-growth-result-message = Leaves and vines pierce through the dusty tiles of the station, crawling about your ankles, trying to drag you down with them. +psionic-power-precognition-power-grid-check-result-message = You see torches snuff around you only to spontaneously ignite moments later. +psionic-power-precognition-solar-flare-result-message = The stars look beautiful tonight, shrinking and growing and shooting great bolts like fireworks into the sky. +psionic-power-precognition-vent-clog-result-message = You smell something horrific on the artificial breeze of the station, for a moment your eyes fill with fog. When you blink it away, the smell is gone. +psionic-power-precognition-slimes-spawn-result-message = Something lurks deep within the darkest corners of the station, crying for blood. Soft squelches and bubbling howls accompany the call. +psionic-power-precognition-snake-spawn-result-message = Something lurks deep within the darkest corners of the station, crying for blood. The sounds of hissing growls accompany the call. +psionic-power-precognition-spider-spawn-result-message = Something lurks deep within the darkest corners of the station, crying for blood. A symphony of clicks and chitters accompanies the call. +psionic-power-precognition-spider-clown-spawn-result-message = Something lurks deep within the darkest corners of the station, crying for blood. An unholy mass of honks accompanies the call. +psionic-power-precognition-zombie-outbreak-result-message = Your coworker lies on the cold ground before you; skull ripped open, eyes blank. You think you see the body twitch. +psionic-power-precognition-lone-ops-spawn-result-message = You see a vision of a beast with a blood-red carapace, laughing as it eats through the station, bite by bite. +psionic-power-precognition-sleeper-agents-result-message = You see a vision of life through the eyes of a non-descript coworker, a soft but dangerous buzzing accompanies you at the base of their skull. It sounds like radio static. +psionic-power-precognition-mass-hallucinations-result-message = You attempt to see a vision of the future, but all you see is a phantasmagoria of chaotic shapes. +psionic-power-precognition-ion-storm-result-message = You see a vision of the rigid being destroyed and reshaped into something new and wrong. +psionic-power-precognition-meteor-swarm-result-message = You see a fiery vision of shooting stars falling from the sky, colorful trails shooting through the station you call home. +psionic-power-precognition-game-rule-urist-swarm-result-message = You see a fiery vision of... PEOPLE falling from the sky! colorful trails shooting through the station you call home. +psionic-power-precognition-immovable-rod-spawn-result-message = You see a fiery vision of a MASSIVE star falling from the sky! colorful trails shooting through the station you call home. +psionic-power-precognition-mouse-migration-result-message = You see a vision of living as a simplistic creature, scurrying underfoot of creatures beyond your comprehension. +psionic-power-precognition-king-rat-migration-result-message = You see a vision of living as a simplistic creature, scurrying underfoot of creatures beyond your comprehension. +psionic-power-precognition-cockroach-migration-result-message = You see a vision of living as a simplistic creature, scurrying underfoot of creatures beyond your comprehension. +psionic-power-precognition-snail-migration-result-message = You see a vision of living as a simplistic creature, scurrying underfoot of creatures beyond your comprehension. +psionic-power-precognition-random-sentience-result-message = Something bright and beautiful sparks to life within your third eye. Nothing brings wonder quite like new life. +psionic-power-precognition-unknown-shuttle-cargo-lost-result-message = You see a vision of a simple ship of old Terra, adrift of the sea, far away from home. +psionic-power-precognition-unknown-shuttle-traveling-cuisine-result-message = You see a vision of peace, a cozy meal sizzling on a warm stove. A delicious smells wafts through the air. +psionic-power-precognition-unknown-shuttle-disaster-evac-pod-result-message = You see a vision of death and blood, of a destruction so complete only few survive, drifting through the coldness of space. diff --git a/Resources/Locale/en-US/deltav/station-events/station-event-system.ftl b/Resources/Locale/en-US/deltav/station-events/station-event-system.ftl new file mode 100644 index 00000000000..d845303ee26 --- /dev/null +++ b/Resources/Locale/en-US/deltav/station-events/station-event-system.ftl @@ -0,0 +1 @@ +station-event-system-run-event-delayed = Running event {$eventName} in {$seconds} seconds diff --git a/Resources/Prototypes/DeltaV/Actions/types.yml b/Resources/Prototypes/DeltaV/Actions/types.yml index d1c7ac7ca35..8e8218a0798 100644 --- a/Resources/Prototypes/DeltaV/Actions/types.yml +++ b/Resources/Prototypes/DeltaV/Actions/types.yml @@ -1,4 +1,4 @@ -- type: entity +- type: entity id: ActionOpenRadioImplant name: Open Radio Implant description: Opens the bluespace key compartment of the radio implant embedded in your skull. @@ -34,3 +34,17 @@ sprite: Structures/Furniture/Tables/generic.rsi state: full event: !type:ToggleCrawlingStateEvent + +- type: entity + id: ActionPrecognition + name: Precognition + description: See into the future to get a hint about the next random event. + components: + - type: InstantAction + icon: + sprite: DeltaV/Interface/Actions/actions_psionics.rsi + state: precognition + useDelay: 240 + checkCanInteract: false + checkConsciousness: false + event: !type:PrecognitionPowerActionEvent diff --git a/Resources/Prototypes/DeltaV/GameRules/events.yml b/Resources/Prototypes/DeltaV/GameRules/events.yml index 9e4496cf0ab..45a6a1d0237 100644 --- a/Resources/Prototypes/DeltaV/GameRules/events.yml +++ b/Resources/Prototypes/DeltaV/GameRules/events.yml @@ -30,6 +30,8 @@ params: volume: -4 duration: null #ending is handled by MeteorSwarmRule + - type: PrecognitionResult + message: psionic-power-precognition-meteor-swarm-result-message - type: MeteorSwarmRule - type: entity @@ -44,6 +46,8 @@ minimumPlayers: 20 weight: 1 duration: 60 + - type: PrecognitionResult + message: psionic-power-precognition-xeno-vents-result-message - type: VentCrittersRule entries: - id: MobXeno @@ -72,6 +76,8 @@ minimumPlayers: 15 weight: 4 duration: 60 + - type: PrecognitionResult + message: psionic-power-precognition-mothroach-spawn-result-message - type: VentCrittersRule entries: - id: MobMothroach @@ -87,6 +93,8 @@ minimumPlayers: 25 maxOccurrences: 1 duration: null + - type: PrecognitionResult + message: psionic-power-precognition-listening-post-result-message - type: RuleGrids - type: LoadFarGridRule path: /Maps/Shuttles/DeltaV/listening_post.yml @@ -146,6 +154,8 @@ components: - type: StationEvent duration: null + - type: PrecognitionResult + message: psionic-power-precognition-paradox-anomaly-result-message - type: ParadoxClonerRule - type: AntagObjectives objectives: @@ -169,6 +179,8 @@ - type: StationEvent minimumPlayers: 40 # it's really easy to find fugitives on lowpop duration: null + - type: PrecognitionResult + message: psionic-power-precognition-fugitive-result-message - type: FugitiveRule - type: AntagLoadProfileRule - type: AntagObjectives diff --git a/Resources/Prototypes/DeltaV/GameRules/glimmer_events.yml b/Resources/Prototypes/DeltaV/GameRules/glimmer_events.yml index dc940422f8c..2d972f9809a 100644 --- a/Resources/Prototypes/DeltaV/GameRules/glimmer_events.yml +++ b/Resources/Prototypes/DeltaV/GameRules/glimmer_events.yml @@ -17,6 +17,7 @@ parent: BaseGameRule id: GlimmerEventScheduler components: + - type: NextEvent - type: BasicStationEventScheduler minMaxEventTiming: min: 300 diff --git a/Resources/Prototypes/DeltaV/GameRules/unknown_shuttles.yml b/Resources/Prototypes/DeltaV/GameRules/unknown_shuttles.yml index 2959bebcc0b..38ec9d0df36 100644 --- a/Resources/Prototypes/DeltaV/GameRules/unknown_shuttles.yml +++ b/Resources/Prototypes/DeltaV/GameRules/unknown_shuttles.yml @@ -14,6 +14,8 @@ minimumPlayers: 20 maxOccurrences: 1 duration: null + - type: PrecognitionResult + message: psionic-power-precognition-syndicate-recruiter-result-message - type: RuleGrids - type: LoadMapRule preloadedGrid: SyndieRecruiterShip @@ -56,6 +58,8 @@ minimumPlayers: 20 maxOccurrences: 1 duration: null + - type: PrecognitionResult + message: psionic-power-precognition-synthesis-specialist-result-message - type: RuleGrids - type: LoadMapRule preloadedGrid: SyndieSynthesisShip diff --git a/Resources/Prototypes/GameRules/cargo_gifts.yml b/Resources/Prototypes/GameRules/cargo_gifts.yml index f4e4a5bf8fc..001334162ec 100644 --- a/Resources/Prototypes/GameRules/cargo_gifts.yml +++ b/Resources/Prototypes/GameRules/cargo_gifts.yml @@ -26,6 +26,8 @@ delay: min: 10 max: 10 + - type: PrecognitionResult # DeltaV - Precogniton + message: psionic-power-precognition-cargo-gifts-base-result-message - type: StationEvent startColor: "#18abf5" startAudio: diff --git a/Resources/Prototypes/GameRules/events.yml b/Resources/Prototypes/GameRules/events.yml index 698ee7d4774..b22bc621c80 100644 --- a/Resources/Prototypes/GameRules/events.yml +++ b/Resources/Prototypes/GameRules/events.yml @@ -83,6 +83,8 @@ path: /Audio/Announcements/announce.ogg weight: 12 # DeltaV - was 8 duration: 35 + - type: PrecognitionResult # DeltaV - Precogniton + message: psionic-power-precognition-anomoly-spawn-result-message - type: AnomalySpawnRule - type: entity @@ -99,6 +101,8 @@ path: /Audio/Announcements/announce.ogg weight: 8 duration: 35 + - type: PrecognitionResult # DeltaV - Precogniton + message: psionic-power-precognition-bluespace-artifact-result-message - type: BluespaceArtifactRule - type: entity @@ -110,6 +114,8 @@ reoccurrenceDelay: 5 earliestStart: 1 duration: 1 + - type: PrecognitionResult # DeltaV - Precogniton + message: psionic-power-precognition-bluespace-locker-result-message - type: BluespaceLockerRule - type: entity @@ -120,6 +126,8 @@ weight: 10 duration: 1 minimumPlayers: 15 + - type: PrecognitionResult # DeltaV - Precogniton + message: psionic-power-precognition-breaker-flip-result-message - type: BreakerFlipRule - type: entity @@ -133,6 +141,8 @@ minimumPlayers: 25 weight: 5 duration: 1 + - type: PrecognitionResult # DeltaV - Precogniton + message: psionic-power-precognition-bureaucratic-error-result-message - type: BureaucraticErrorRule ignoredJobs: - StationAi @@ -146,6 +156,8 @@ minimumPlayers: 15 weight: 5 duration: 1 + - type: PrecognitionResult # DeltaV - Precogniton + message: psionic-power-precognition-clerical-error-result-message - type: ClericalErrorRule - type: entity @@ -156,6 +168,8 @@ weight: 8 # DeltaV - was 10 duration: 1 minimumPlayers: 10 + - type: PrecognitionResult # DeltaV - Precogniton + message: psionic-power-precognition-closet-skeleton-result-message - type: RandomEntityStorageSpawnRule prototype: MobSkeletonCloset @@ -169,6 +183,8 @@ reoccurrenceDelay: 20 minimumPlayers: 45 # DeltaV - was 20 duration: null + - type: PrecognitionResult # DeltaV - Precogniton + message: psionic-power-precognition-dragon-spawn-result-message - type: SpaceSpawnRule spawnDistance: 0 - type: AntagSpawner @@ -198,6 +214,8 @@ earliestStart: 30 reoccurrenceDelay: 60 # DeltaV - was 20 minimumPlayers: 40 # DeltaV - was 30 + - type: PrecognitionResult # DeltaV - Precogniton + message: psionic-power-precognition-ninja-spawn-result-message - type: SpaceSpawnRule - type: AntagLoadProfileRule - type: AntagObjectives @@ -253,6 +271,8 @@ duration: 1 earliestStart: 45 minimumPlayers: 20 + - type: PrecognitionResult # DeltaV - Precogniton + message: psionic-power-precognition-revenant-spawn-result-message - type: RandomSpawnRule prototype: MobRevenant @@ -277,6 +297,8 @@ path: /Audio/Announcements/gas_leak.ogg # DeltaV - custom announcer endAnnouncement: station-event-gas-leak-end-announcement weight: 10 # DeltaV - was 8 + - type: PrecognitionResult # DeltaV - Precogniton + message: psionic-power-precognition-gas-leak-result-message - type: GasLeakRule - type: entity @@ -288,6 +310,8 @@ minimumPlayers: 10 # DeltaV - Was 15 weight: 5 # DeltaV - was 7 duration: 240 + - type: PrecognitionResult # DeltaV - Precogniton + message: psionic-power-precognition-kudzu-growth-result-message - type: KudzuGrowthRule - type: entity @@ -304,6 +328,8 @@ volume: -4 duration: 60 maxDuration: 120 + - type: PrecognitionResult # DeltaV - Precogniton + message: psionic-power-precognition-power-grid-check-result-message - type: PowerGridCheckRule - type: entity @@ -318,6 +344,8 @@ path: /Audio/Announcements/attention.ogg duration: 120 maxDuration: 240 + - type: PrecognitionResult # DeltaV - Precogniton + message: psionic-power-precognition-solar-flare-result-message - type: SolarFlareRule onlyJamHeadsets: true affectedChannels: @@ -346,6 +374,8 @@ minimumPlayers: 15 weight: 7.5 # DeltaV - was 5 duration: 60 + - type: PrecognitionResult # DeltaV - Precogniton + message: psionic-power-precognition-vent-clog-result-message - type: VentClogRule - type: entity @@ -360,6 +390,8 @@ minimumPlayers: 15 weight: 5 duration: 60 + - type: PrecognitionResult # DeltaV - Precogniton + message: psionic-power-precognition-slimes-spawn-result-message - type: VentCrittersRule entries: - id: MobAdultSlimesBlueAngry @@ -381,6 +413,8 @@ minimumPlayers: 15 weight: 5 duration: 60 + - type: PrecognitionResult # DeltaV - Precogniton + message: psionic-power-precognition-snake-spawn-result-message - type: VentCrittersRule entries: - id: MobPurpleSnake @@ -402,6 +436,8 @@ minimumPlayers: 15 weight: 5 duration: 60 + - type: PrecognitionResult # DeltaV - Precogniton + message: psionic-power-precognition-spider-spawn-result-message - type: VentCrittersRule entries: - id: MobGiantSpiderAngry @@ -419,6 +455,8 @@ minimumPlayers: 30 # DeltaV - was 20 weight: 1 # DeltaV - was 1.5 duration: 60 + - type: PrecognitionResult # DeltaV - Precogniton + message: psionic-power-precognition-spider-clown-spawn-result-message - type: VentCrittersRule entries: - id: MobClownSpider @@ -433,6 +471,8 @@ minimumPlayers: 40 weight: 1 # Zombies was happening basically every single survival round, so now it's super rare duration: 1 + - type: PrecognitionResult # DeltaV - Precogniton + message: psionic-power-precognition-zombie-outbreak-result-message - type: ZombieRule - type: AntagSelection definitions: @@ -467,6 +507,8 @@ minimumPlayers: 30 # DeltaV - was 20 reoccurrenceDelay: 30 duration: 1 + - type: PrecognitionResult # DeltaV - Precogniton + message: psionic-power-precognition-lone-ops-spawn-result-message - type: RuleGrids - type: LoadMapRule mapPath: /Maps/Shuttles/ShuttleEvent/striker.yml @@ -507,6 +549,8 @@ path: /Audio/Announcements/attention.ogg # DeltaV - Use the generic announcement sound duration: null # the rule has to last the whole round not 1 second occursDuringRoundEnd: false + - type: PrecognitionResult # DeltaV - Precogniton + message: psionic-power-precognition-sleeper-agents-result-message - type: AlertLevelInterceptionRule - type: AntagSelection definitions: @@ -529,6 +573,8 @@ weight: 10 duration: 150 maxDuration: 300 + - type: PrecognitionResult # DeltaV - Precogniton + message: psionic-power-precognition-mass-hallucinations-result-message - type: MassHallucinationsRule minTimeBetweenIncidents: 30 # DeltaV - was 0.1 maxTimeBetweenIncidents: 300 @@ -544,6 +590,8 @@ weight: 10 reoccurrenceDelay: 30 #DeltaV - Was 20 #20 mins feels too short, and can scramble borgs way too much duration: 1 + - type: PrecognitionResult # DeltaV - Precogniton + message: psionic-power-precognition-ion-storm-result-message - type: IonStormRule # DeltaV - Disable Mimic event. It causes a ton of heisentests, and does practially nothing in game diff --git a/Resources/Prototypes/GameRules/meteorswarms.yml b/Resources/Prototypes/GameRules/meteorswarms.yml index 95f9985b6a2..ab8bf899204 100644 --- a/Resources/Prototypes/GameRules/meteorswarms.yml +++ b/Resources/Prototypes/GameRules/meteorswarms.yml @@ -55,6 +55,7 @@ parent: BaseGameRule id: MeteorSwarmScheduler components: + - type: NextEvent # DeltaV: Queue Event - type: GameRule - type: BasicStationEventScheduler minimumTimeUntilFirstEvent: 600 # 10 min @@ -68,6 +69,7 @@ parent: BaseGameRule id: MeteorSwarmMildScheduler components: + - type: NextEvent # DeltaV: Queue Event - type: GameRule - type: BasicStationEventScheduler minimumTimeUntilFirstEvent: 600 # 10 min @@ -82,6 +84,7 @@ parent: BaseGameRule id: KesslerSyndromeScheduler components: + - type: NextEvent # DeltaV: Queue Event - type: GameRule - type: RampingStationEventScheduler scheduledGameRules: !type:NestedSelector @@ -99,6 +102,8 @@ reoccurrenceDelay: 1 earliestStart: 12 minimumPlayers: 25 + - type: PrecognitionResult # DeltaV - Precogniton + message: psionic-power-precognition-meteor-swarm-result-message - type: MeteorSwarm - type: entity @@ -184,6 +189,8 @@ components: - type: StationEvent weight: 0.05 + - type: PrecognitionResult # DeltaV - Precogniton + message: psionic-power-precognition-game-rule-urist-swarm-result-message - type: MeteorSwarm announcement: station-event-meteor-urist-start-announcement announcementSound: /Audio/Announcements/attention.ogg @@ -209,6 +216,8 @@ duration: 1 earliestStart: 30 minimumPlayers: 25 + - type: PrecognitionResult # DeltaV - Precogniton + message: psionic-power-precognition-immovable-rod-spawn-result-message - type: ImmovableRodRule rodPrototypes: - id: ImmovableRodKeepTilesStill diff --git a/Resources/Prototypes/GameRules/pests.yml b/Resources/Prototypes/GameRules/pests.yml index 354a7423a9c..0bc1e582e37 100644 --- a/Resources/Prototypes/GameRules/pests.yml +++ b/Resources/Prototypes/GameRules/pests.yml @@ -28,6 +28,8 @@ earliestStart: 15 weight: 6 duration: 50 + - type: PrecognitionResult # DeltaV - Precogniton + message: psionic-power-precognition-mouse-migration-result-message - type: VentCrittersRule entries: - id: MobMouse @@ -52,6 +54,8 @@ weight: 6 duration: 50 minimumPlayers: 30 # Hopefully this is enough for the Rat King's potential Army (it was not, raised from 15 -> 30) + - type: PrecognitionResult # DeltaV - Precogniton + message: psionic-power-precognition-king-rat-migration-result-message - type: VentCrittersRule entries: - id: MobMouse @@ -76,6 +80,8 @@ path: /Audio/Announcements/attention.ogg weight: 6 duration: 50 + - type: PrecognitionResult # DeltaV - Precogniton + message: psionic-power-precognition-cockroach-migration-result-message - type: VentCrittersRule entries: - id: MobCockroach @@ -93,6 +99,8 @@ path: /Audio/Announcements/attention.ogg weight: 6 duration: 50 + - type: PrecognitionResult # DeltaV - Precogniton + message: psionic-power-precognition-snail-migration-result-message - type: VentCrittersRule entries: - id: MobSnail @@ -114,6 +122,8 @@ weight: 6 duration: 50 minimumPlayers: 30 + - type: PrecognitionResult # DeltaV - Precogniton + message: psionic-power-precognition-snail-migration-result-message - type: VentCrittersRule entries: - id: MobSnail diff --git a/Resources/Prototypes/GameRules/random_sentience.yml b/Resources/Prototypes/GameRules/random_sentience.yml index a2c749000a6..eec41bf45ec 100644 --- a/Resources/Prototypes/GameRules/random_sentience.yml +++ b/Resources/Prototypes/GameRules/random_sentience.yml @@ -8,6 +8,8 @@ maxOccurrences: 1 # this event has diminishing returns on interesting-ness, so we cap it startAudio: path: /Audio/Announcements/attention.ogg + - type: PrecognitionResult # DeltaV - Precogniton + message: psionic-power-precognition-random-sentience-result-message - type: RandomSentienceRule minSentiences: 2 maxSentiences: 5 @@ -22,4 +24,4 @@ id: RandomSentienceEventStrength values: prefix: random-sentience-event-strength- - count: 8 \ No newline at end of file + count: 8 diff --git a/Resources/Prototypes/GameRules/roundstart.yml b/Resources/Prototypes/GameRules/roundstart.yml index 50de7c4b746..dac93f951f5 100644 --- a/Resources/Prototypes/GameRules/roundstart.yml +++ b/Resources/Prototypes/GameRules/roundstart.yml @@ -313,6 +313,7 @@ id: BasicStationEventScheduler parent: BaseGameRule components: + - type: NextEvent # DeltaV: Queue Event for precognition - type: BasicStationEventScheduler minMaxEventTiming: # DeltaV min: 300 # DeltaV - 5 mins, was 3 @@ -324,6 +325,7 @@ id: RampingStationEventScheduler parent: BaseGameRule components: + - type: NextEvent # DeltaV: Queue Event for precognition - type: RampingStationEventScheduler averageChaos: 4.5 # DeltaV averageEndTime: 180 # DeltaV @@ -334,6 +336,7 @@ id: SpaceTrafficControlEventScheduler # iff we make a selector for EntityTables that can respect StationEventComp restrictions, or somehow impliment them otherwise in said tables, parent: BaseGameRule # we can remerge this with the other schedulers, but it will silently fail due to that limitation without a separate scheduler to balance atm. components: + - type: NextEvent # DeltaV: Queue Event for precognition - type: BasicStationEventScheduler minimumTimeUntilFirstEvent: 2700 # 45 mins #shows up like half way through shift. minMaxEventTiming: @@ -346,6 +349,7 @@ id: SpaceTrafficControlFriendlyEventScheduler parent: BaseGameRule components: + - type: NextEvent # DeltaV: Queue Event for precognition - type: BasicStationEventScheduler minimumTimeUntilFirstEvent: 1200 # 20 mins minMaxEventTiming: diff --git a/Resources/Prototypes/GameRules/unknown_shuttles.yml b/Resources/Prototypes/GameRules/unknown_shuttles.yml index c2962e25072..e5c939edbb3 100644 --- a/Resources/Prototypes/GameRules/unknown_shuttles.yml +++ b/Resources/Prototypes/GameRules/unknown_shuttles.yml @@ -59,6 +59,8 @@ components: - type: StationEvent maxOccurrences: 2 # should be the same as [copies] in shuttle_incoming_event.yml + - type: PrecognitionResult # DeltaV - Precogniton + message: psionic-power-precognition-unknown-shuttle-cargo-lost-result-message - type: LoadMapRule preloadedGrid: ShuttleCargoLost @@ -69,6 +71,8 @@ - type: StationEvent startAnnouncement: station-event-unknown-shuttle-incoming maxOccurrences: 2 # should be the same as [copies] in shuttle_incoming_event.yml + - type: PrecognitionResult # DeltaV - Precogniton + message: psionic-power-precognition-unknown-shuttle-traveling-cuisine-result-message - type: LoadMapRule preloadedGrid: TravelingCuisine @@ -79,6 +83,8 @@ - type: StationEvent startAnnouncement: station-event-unknown-shuttle-incoming maxOccurrences: 3 # should be the same as [copies] in shuttle_incoming_event.yml + - type: PrecognitionResult # DeltaV - Precogniton + message: psionic-power-precognition-unknown-shuttle-disaster-evac-pod-result-message - type: LoadMapRule preloadedGrid: DisasterEvacPod diff --git a/Resources/Prototypes/Nyanotrasen/psionicPowers.yml b/Resources/Prototypes/Nyanotrasen/psionicPowers.yml index 4dff75d9867..145d77a245d 100644 --- a/Resources/Prototypes/Nyanotrasen/psionicPowers.yml +++ b/Resources/Prototypes/Nyanotrasen/psionicPowers.yml @@ -5,6 +5,7 @@ DispelPower: 1 TelegnosisPower: 1 PsionicRegenerationPower: 1 + PrecognitionPower: 1 # DeltaV MassSleepPower: 0.3 NoosphericZapPower: 0.3 # PsionicInvisibilityPower: 0.15 diff --git a/Resources/Textures/DeltaV/Interface/Actions/actions_psionics.rsi/meta.json b/Resources/Textures/DeltaV/Interface/Actions/actions_psionics.rsi/meta.json new file mode 100644 index 00000000000..e0c9ccac8c5 --- /dev/null +++ b/Resources/Textures/DeltaV/Interface/Actions/actions_psionics.rsi/meta.json @@ -0,0 +1,14 @@ +{ + "version": 1, + "license": "CC-BY-SA-4.0", + "copyright": "Sprited by chamomileteatime on Discord for DeltaV", + "size": { + "x": 64, + "y": 64 + }, + "states": [ + { + "name": "precognition" + } + ] +} diff --git a/Resources/Textures/DeltaV/Interface/Actions/actions_psionics.rsi/precognition.png b/Resources/Textures/DeltaV/Interface/Actions/actions_psionics.rsi/precognition.png new file mode 100644 index 0000000000000000000000000000000000000000..1bf396261e9bca89f61bc0fb58c14d97a6631b15 GIT binary patch literal 1510 zcmVPx)hDk(0RCt{2TfJ@@M-cuP*a*TjNkmn~(NIHxwHg5`2|j|Mx8Mt?VdEFjTM&K( zf~5d8stK?$tSc!eRhYsBQ!sO!o15L4y*plPNFN}G+}qpPnVsL=CGd(@ylC{gBzAF@ z?LGZIf6Y6a*PE^g5oVJiZm!NN?Td#k*7*+0&2y*o`KeQCK#+L=7-#*ir_;Rvh}qEh zu2I_rq&;_Ow{6m|B>*Bm9Sr~g%gr+`&a%Cngyr9P2dW{&I1h`lRrb~trT{*F&3hMT+5Rx#k-5dgwxj{H zvUjT|EH~vOMfQn-w19u-bxDA*Q1N?p9CHxu)gWwKE;P~_JZ+p_1 zb-pVlOZ2}DBncoyl&|VI>tp`uOGOCld{^qH**LYyG#l{Sv@{_LNr_ObUcbM+EYy>P z0HDG&{YmgPiUgARl-2hpLT(L6RXHvM`c6*Mjsk;{x)c3VXn`pJ&+4!99j;f8#b@4^ zKHprOWB%!jIkBVqmzn2C(E`gEx-=k0jEAJ(e|g(mZl3p4wD48uxdK58Y2|Qx6awqh z1F*M*;MD?`0GxYuy}$nXR%%%1J1npbhOSWiA@u3F1knQEvT+NI_5_79+e1u>YJI}} z?WHRj;!sw(LZ=B_TUen<(+cwE#4z9J(8i*7DTfF_Izk$ok6~?)NN~SUF@e~w3?~X4 znc*q%0^4Zprn+J_8JbxgjlqQ=^9wmAE(}dDa!wTi%s;$W!<4q#vKsVmag(F-ngic4 z;x!1R)_fdGDf(PS3c7i_Li?C1YTi!u+Ddw=ZE}4(^PI^9wC@ffamxC3gTXb zZ2YL!gJ8(A%p@jkZ`SC}1hp+|3C;vQ+8n6HZ{Efya*91XE?h}Z z&MCEMs|bM7P!7&0cZgbOULRwDaj`z%;485M;6B zb%GpLHQ1;Y5T?@m@2_MIO)fnIHa`nGZNMb}r(N&g{q}S5MeYV`s}*XWjs{jrdzxZM zL+nHtsP5Tuo8_S{R2)fYp)uALf_Hb=eJ)^WLCE19+Xlr6a>z77MU+gIyq?~(HSW#? zz1vWsjZ8{=>6w+K$yJwCp*2@8k`6{JqGTpkc#<}*wZ+EpFnE%K5lajB;RW@N!75m! z5ZYdSprwnFwEC0}G}*&rYF@k(a)@o54kaCoSgX$=RJvgP;0XJrep)-dqnS%=l~Zqs zxWl0LDB9|$9ec^!W^K^|S_p#{AyB6sB7b2&k-}!HbzBjyh z0d)Sm!5=B1dc`YV0R9ER-8iOFba!C@000hUSV?A0O#mtY000O800000007cclK=n! M07*qoM6N<$f`skVkpKVy literal 0 HcmV?d00001 From b1479628eae987f9282e4c99bd63714c89831c40 Mon Sep 17 00:00:00 2001 From: Delta-V bot <135767721+DeltaV-Bot@users.noreply.github.com> Date: Thu, 19 Dec 2024 04:55:35 +0100 Subject: [PATCH 44/76] Automatic changelog update --- Resources/Changelog/DeltaVChangelog.yml | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/Resources/Changelog/DeltaVChangelog.yml b/Resources/Changelog/DeltaVChangelog.yml index 2a3982cedd9..c7787aed0ee 100644 --- a/Resources/Changelog/DeltaVChangelog.yml +++ b/Resources/Changelog/DeltaVChangelog.yml @@ -1,11 +1,4 @@ Entries: -- author: rosieposieeee - changes: - - message: Total re-make of Submarine's engineering department. Goodbye, AME! - type: Tweak - id: 296 - time: '2024-03-27T16:57:09.0000000+00:00' - url: https://github.com/DeltaV-Station/Delta-v/pull/988 - author: NullWanderer changes: - message: Merged master, please report any bugs @@ -3819,3 +3812,11 @@ id: 795 time: '2024-12-19T03:43:18.0000000+00:00' url: https://github.com/DeltaV-Station/Delta-v/pull/2440 +- author: SolStar, chamomileteatime + changes: + - message: 'New psionic ability: Precognition - See into the future to get a hint + about the next random event.' + type: Add + id: 796 + time: '2024-12-19T03:55:15.0000000+00:00' + url: https://github.com/DeltaV-Station/Delta-v/pull/2131 From 6391624a48f0186c3d548a287eeea3d817a66d2f Mon Sep 17 00:00:00 2001 From: Radezolid Date: Thu, 19 Dec 2024 01:55:03 -0300 Subject: [PATCH 45/76] Add a bread knife exclusive to perma (#2304) * Added knife * Add knife to prisoner's locker + better comment. --------- Co-authored-by: Milon --- .../Catalog/Fills/Lockers/wardrobe_job.yml | 5 +++- .../Entities/Objects/Weapons/Melee/knife.yml | 18 ++++++++++++ .../Melee/prison_knife.rsi/equipped-BELT.png | Bin 0 -> 161 bytes .../Weapons/Melee/prison_knife.rsi/icon.png | Bin 0 -> 198 bytes .../Melee/prison_knife.rsi/inhand-left.png | Bin 0 -> 199 bytes .../Melee/prison_knife.rsi/inhand-right.png | Bin 0 -> 182 bytes .../Weapons/Melee/prison_knife.rsi/meta.json | 26 ++++++++++++++++++ 7 files changed, 48 insertions(+), 1 deletion(-) create mode 100644 Resources/Prototypes/DeltaV/Entities/Objects/Weapons/Melee/knife.yml create mode 100644 Resources/Textures/DeltaV/Objects/Weapons/Melee/prison_knife.rsi/equipped-BELT.png create mode 100644 Resources/Textures/DeltaV/Objects/Weapons/Melee/prison_knife.rsi/icon.png create mode 100644 Resources/Textures/DeltaV/Objects/Weapons/Melee/prison_knife.rsi/inhand-left.png create mode 100644 Resources/Textures/DeltaV/Objects/Weapons/Melee/prison_knife.rsi/inhand-right.png create mode 100644 Resources/Textures/DeltaV/Objects/Weapons/Melee/prison_knife.rsi/meta.json diff --git a/Resources/Prototypes/Catalog/Fills/Lockers/wardrobe_job.yml b/Resources/Prototypes/Catalog/Fills/Lockers/wardrobe_job.yml index 13b100f8ec5..0a133d070cd 100644 --- a/Resources/Prototypes/Catalog/Fills/Lockers/wardrobe_job.yml +++ b/Resources/Prototypes/Catalog/Fills/Lockers/wardrobe_job.yml @@ -13,7 +13,10 @@ - id: ClothingShoesColorBlack amount: 2 - id: ClothingMaskMuzzle - - id: ClothingHeadsetPrison #DV - Added prisoner headsets + # Begin DeltaV modifications + - id: ClothingHeadsetPrison # Added prisoner headsets + - id: PrisonKnife # Bread cutting knife, does 4 damage total. + # End DeltaV modifications #- type: entity # id: WardrobePajamaFilled diff --git a/Resources/Prototypes/DeltaV/Entities/Objects/Weapons/Melee/knife.yml b/Resources/Prototypes/DeltaV/Entities/Objects/Weapons/Melee/knife.yml new file mode 100644 index 00000000000..b19fa1dbfe5 --- /dev/null +++ b/Resources/Prototypes/DeltaV/Entities/Objects/Weapons/Melee/knife.yml @@ -0,0 +1,18 @@ +- type: entity + parent: KitchenKnife + id: PrisonKnife + name: prisoner's knife + description: A slightly dulled bread knife + components: + - type: Sprite + sprite: DeltaV/Objects/Weapons/Melee/prison_knife.rsi + state: icon + - type: Item + sprite: DeltaV/Objects/Weapons/Melee/prison_knife.rsi + - type: MeleeWeapon + damage: + types: + Slash: 3 + Blunt: 1 + - type: Execution + doAfterDuration: 10.0 # Duller knife. diff --git a/Resources/Textures/DeltaV/Objects/Weapons/Melee/prison_knife.rsi/equipped-BELT.png b/Resources/Textures/DeltaV/Objects/Weapons/Melee/prison_knife.rsi/equipped-BELT.png new file mode 100644 index 0000000000000000000000000000000000000000..8b714d814ea80e4441d8982fe6591fca2697dd82 GIT binary patch literal 161 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=8J;eVAr*7p-ZB(yaNu!07~H_b zlECh|oRxKpg+thibqg2oO8mF3Y0nnVY@lie`M1%lZyNh-&R=^?wS@8F$I#H{rQz@0 z?=c-&evJR(N01T*hCM$dJ#1&YA9s)MTl~2FMFj&x-3vzj$<9+e&nWqU6nMJ&xvXH$6>u0T3Dv%uBUck_xdBaojwDLybX{WD`r!HSxw}9!- hCkIiMC+!vt3~zri&R(G(@f&CugQu&X%Q~loCIB=oN5udD literal 0 HcmV?d00001 diff --git a/Resources/Textures/DeltaV/Objects/Weapons/Melee/prison_knife.rsi/inhand-left.png b/Resources/Textures/DeltaV/Objects/Weapons/Melee/prison_knife.rsi/inhand-left.png new file mode 100644 index 0000000000000000000000000000000000000000..b885d1e17688f93f08beef141d9ee0e824cd444c GIT binary patch literal 199 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I3?%1nZ+ru!gaUj*T!D05UEPu;ON@++l7Sos zhPG{2!hsZ9NswPK!+#K{s(kPdC=%!C;usRq`u3V3-vI?4=Rl_K`;C(piY#TF&Sm(= zJhk&=niE5VVD*gU-*vB9&YE}OUA?Er_P>)RJdqCjvHtB|Muvv@m8EM!wv>L2(NKN= pR-5zh_Xl1#f-k;b|H1dbL?b0T2G4*RFH?{kJYD@<);T3K0RU}#OQHY( literal 0 HcmV?d00001 diff --git a/Resources/Textures/DeltaV/Objects/Weapons/Melee/prison_knife.rsi/inhand-right.png b/Resources/Textures/DeltaV/Objects/Weapons/Melee/prison_knife.rsi/inhand-right.png new file mode 100644 index 0000000000000000000000000000000000000000..bd9c42937ad47ab52c7ee888f0a385ec1df23592 GIT binary patch literal 182 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I3?%1nZ+ru!cmjMvT>t<7UsqRm|Nea=Bcs4e zFLQw6EG0pH!3;o&&AJX9Kz^vFi(^Pc>)UINd<+5t&Vh&jzSk+^Smbu-(f-=(GEpXm zD`#eQE;FCu8tyz>pV#x$a=rTF|9Ee0WnkE27L}E{_xDr1DSzdkPHnsSX|;Vv@aym& c;t%2_l|C_eo?=os1+;*{)78&qol`;+0E@3iSpWb4 literal 0 HcmV?d00001 diff --git a/Resources/Textures/DeltaV/Objects/Weapons/Melee/prison_knife.rsi/meta.json b/Resources/Textures/DeltaV/Objects/Weapons/Melee/prison_knife.rsi/meta.json new file mode 100644 index 00000000000..751fedd5216 --- /dev/null +++ b/Resources/Textures/DeltaV/Objects/Weapons/Melee/prison_knife.rsi/meta.json @@ -0,0 +1,26 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken/modified from desertrose at https://github.com/DesertRose2/desertrose/pull/378/commits/9e081bd2a0d7614be5a9dabbca34886ce204105d, modified into bread knife by Radezolid", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + }, + { + "name": "equipped-BELT", + "directions": 4 + } + ] +} From 7c89e13d8ee8d98362ff724ac8f032bda2a86b84 Mon Sep 17 00:00:00 2001 From: Delta-V bot <135767721+DeltaV-Bot@users.noreply.github.com> Date: Thu, 19 Dec 2024 05:55:22 +0100 Subject: [PATCH 46/76] Automatic changelog update --- Resources/Changelog/DeltaVChangelog.yml | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/Resources/Changelog/DeltaVChangelog.yml b/Resources/Changelog/DeltaVChangelog.yml index c7787aed0ee..0d4851667ab 100644 --- a/Resources/Changelog/DeltaVChangelog.yml +++ b/Resources/Changelog/DeltaVChangelog.yml @@ -1,11 +1,4 @@ Entries: -- author: NullWanderer - changes: - - message: Merged master, please report any bugs - type: Add - id: 297 - time: '2024-03-27T18:23:58.0000000+00:00' - url: https://github.com/DeltaV-Station/Delta-v/pull/1000 - author: deltanedas changes: - message: Reworked Submarine's atmos, notably the TEG is now good, easy to set @@ -3820,3 +3813,11 @@ id: 796 time: '2024-12-19T03:55:15.0000000+00:00' url: https://github.com/DeltaV-Station/Delta-v/pull/2131 +- author: Radezolid + changes: + - message: Added a prisoner's knife, it's purpose is of a tool and it's damage is + minimal + type: Add + id: 797 + time: '2024-12-19T04:55:03.0000000+00:00' + url: https://github.com/DeltaV-Station/Delta-v/pull/2304 From b35c4dd133de27a27b0137f1e232e714b037391c Mon Sep 17 00:00:00 2001 From: Unkn0wn_Gh0st Date: Wed, 18 Dec 2024 22:56:54 -0600 Subject: [PATCH 47/76] Gorlex Girlfriends Mail (#2463) * Gorlex Girlfriends Mail * Yaml Fix * Requested Changes --- .../en-US/deltav/paper/book-salvage.ftl | 6 +++ .../Locale/en-US/deltav/paper/paper-misc.ftl | 11 ++++- .../DeltaV/Catalog/Fills/Paper/manuals.yml | 14 +++++- .../DeltaV/Entities/Objects/Misc/books.yml | 40 ++++++++++++++++++ .../Entities/Objects/Specific/Mail/mail.yml | 10 +++++ .../Prototypes/DeltaV/Mail/mailDeliveries.yml | 1 + .../Objects/Misc/gorlex_magazine.rsi/icon.png | Bin 0 -> 2941 bytes .../Misc/gorlex_magazine.rsi/meta.json | 14 ++++++ 8 files changed, 94 insertions(+), 2 deletions(-) create mode 100644 Resources/Textures/DeltaV/Objects/Misc/gorlex_magazine.rsi/icon.png create mode 100644 Resources/Textures/DeltaV/Objects/Misc/gorlex_magazine.rsi/meta.json diff --git a/Resources/Locale/en-US/deltav/paper/book-salvage.ftl b/Resources/Locale/en-US/deltav/paper/book-salvage.ftl index 1daf8bd3db0..007699f1121 100644 --- a/Resources/Locale/en-US/deltav/paper/book-salvage.ftl +++ b/Resources/Locale/en-US/deltav/paper/book-salvage.ftl @@ -50,3 +50,9 @@ book-text-vulpkanin = Vulpkanin for Dummies, an Exhaustive Guide How to Kiss: Kiss Don't Underestimate Them: Vulpkanin may look cute and cuddly, but they can be fierce fighters when provoked. Treat them with respect and avoid unnecessary conflict. + +book-text-gorlexgirlfriend = It's the 197th version of the infamous Gorlex Girlfriends magazine. This issue includes several pictures and interviews of multiple agents working in the syndicate alongside actors who work on the Syndicate TV show "Nukies". The best part by far was about Operative November who is the star of this edition, with her picture being on the cover. + + Most of the magazine is either Syndicate propaganda or advertisements for Syndicate-branded items like soda or merch from the show. At least there are some coupons on the back for them. + + On the last page is an ad for the Gorlex Girlfriends dating app... and the Gorlex Girlfriends Hotline. diff --git a/Resources/Locale/en-US/deltav/paper/paper-misc.ftl b/Resources/Locale/en-US/deltav/paper/paper-misc.ftl index 69b0d09c0b1..84587f30d7b 100644 --- a/Resources/Locale/en-US/deltav/paper/paper-misc.ftl +++ b/Resources/Locale/en-US/deltav/paper/paper-misc.ftl @@ -9,4 +9,13 @@ book-text-lunchbox-healthy = Hello Honey! book-text-lunchbox-unhealthy = Hello Honey! I've packed you something fun for this shift! I hope you enjoy it!! Love you so so much, - - Mum. \ No newline at end of file + - Mum. +book-text-subscription-notice = [head=2]Greetings loyal subscriber,[/head] + + We hope you enjoy this months edition of Gorlex Girlfriends™ sponsored by the Syndicate. + + With this months issue we will be heading behind the scenes with some of our famous actors working on the amazing "[color=#780606]Nukies[/color]" TV show and maybe show some teasers for next season. Read up on the personal interview with beloved Operative November as she explains the troubles of fake blood getting in her hair! + + All that and more waiting for you inside! + + Signing off, diff --git a/Resources/Prototypes/DeltaV/Catalog/Fills/Paper/manuals.yml b/Resources/Prototypes/DeltaV/Catalog/Fills/Paper/manuals.yml index fcb93c1c918..bafae422037 100644 --- a/Resources/Prototypes/DeltaV/Catalog/Fills/Paper/manuals.yml +++ b/Resources/Prototypes/DeltaV/Catalog/Fills/Paper/manuals.yml @@ -23,4 +23,16 @@ suffix: Lunchbox, Unhealthy components: - type: Paper - content: book-text-lunchbox-unhealthy \ No newline at end of file + content: book-text-lunchbox-unhealthy + +- type: entity + parent: Paper + id: PaperWrittenSubscriptionNotice + name: "subscription notice" + description: "Thank you for your purchase" + components: + - type: Paper + content: book-text-subscription-notice + stampedBy: + - stampedColor: "#850000" + stampedName: stamp-component-stamped-name-syndicate diff --git a/Resources/Prototypes/DeltaV/Entities/Objects/Misc/books.yml b/Resources/Prototypes/DeltaV/Entities/Objects/Misc/books.yml index 012f46ae10e..6ad247ca1f8 100644 --- a/Resources/Prototypes/DeltaV/Entities/Objects/Misc/books.yml +++ b/Resources/Prototypes/DeltaV/Entities/Objects/Misc/books.yml @@ -44,3 +44,43 @@ color: "#2c5491" - type: Paper content: book-text-vulpkanin + +- type: entity + parent: BaseItem + id: BookGorlexGirlfriends + name: Gorlex Girlfriends + description: Issue 197 - Starring Operative November + components: + - type: Sprite + sprite: DeltaV/Objects/Misc/gorlex_magazine.rsi + state: icon + - type: Paper + contentSize: 12000 + content: book-text-gorlexgirlfriend + stampedBy: + - stampedColor: "#850000" + stampedName: stamp-component-stamped-name-syndicate + - type: ActivatableUI + key: enum.PaperUiKey.Key + requiresComplex: false + - type: UserInterface + interfaces: + enum.PaperUiKey.Key: + type: PaperBoundUserInterface + - type: Tag + tags: + - Book + - type: PaperVisuals + backgroundImagePath: "/Textures/Interface/Paper/paper_background_book.svg.96dpi.png" + backgroundPatchMargin: 23.0, 16.0, 14.0, 15.0 + contentMargin: 20.0, 20.0, 20.0, 20.0 + - type: MeleeWeapon + soundHit: + collection: Punch + damage: + types: + Blunt: 1 + - type: DamageOtherOnHit + damage: + types: + Blunt: 1 diff --git a/Resources/Prototypes/DeltaV/Entities/Objects/Specific/Mail/mail.yml b/Resources/Prototypes/DeltaV/Entities/Objects/Specific/Mail/mail.yml index 9bb228637a3..09b3a8ae88f 100644 --- a/Resources/Prototypes/DeltaV/Entities/Objects/Specific/Mail/mail.yml +++ b/Resources/Prototypes/DeltaV/Entities/Objects/Specific/Mail/mail.yml @@ -1741,3 +1741,13 @@ - type: Mail contents: - id: ClothingBeltFoamSheathFilled + +- type: entity + parent: BaseMail + id: MailGorlexGirlfriends + suffix: Gorlex Girlfriends + components: + - type: Mail + contents: + - id: PaperWrittenSubscriptionNotice + - id: BookGorlexGirlfriends diff --git a/Resources/Prototypes/DeltaV/Mail/mailDeliveries.yml b/Resources/Prototypes/DeltaV/Mail/mailDeliveries.yml index d7cd57d75bf..c8593060b70 100644 --- a/Resources/Prototypes/DeltaV/Mail/mailDeliveries.yml +++ b/Resources/Prototypes/DeltaV/Mail/mailDeliveries.yml @@ -66,6 +66,7 @@ MailFoamSabre: 0.1 # Mainly for Glacier MailWinterCoat: 1.5 + MailGorlexGirlfriends: 0.5 # Department and job-specific mail can have slightly higher weights, # since they'll be merged with the everyone pool. diff --git a/Resources/Textures/DeltaV/Objects/Misc/gorlex_magazine.rsi/icon.png b/Resources/Textures/DeltaV/Objects/Misc/gorlex_magazine.rsi/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..45e7840d9635ad7c652e8801dea1c9f7d285972a GIT binary patch literal 2941 zcmcImX>1f#9G_B-rC1b1XbR|b@B@dlbL=@I3zTl5i!Ro7YZpR@Z)e_YM|NkXGqc@o z8?=g=5TY^BAVCNX^n-q|Da11nC@Nkk8pSVw5eP9cfTBeK!{M7frY*FzUX$$3oAK-Dj0S{t(8OafE-L}zm%RrFTowaFqbE#<6BC&W8zA(ch1xaWEJd;c)2A>HKS-m`3TiX`Jtw}Xiqe&e`wM`ym z0AU*r+ct*uC7HBM7-n?~3L_85klaS3RfAL=G}M$X!0Hy{=A1$_hFJ&u@f?LXVz-4& zSsF&xq6`WOX5?X5EsD*m@l`qmrm9C&HBl&@+5(C=>v4MUxs9?Ss%c}M6+>PC27w6! z1S%vqDj|~bMHnyd^6`v!0nP9V}7-s^*Y)+fYB!6%6% z=Xd)^j&pfQ;Er(uphZ@q#e#fL6;f8QS@OBY6IB7}=(oyoJ_foF7%|jZq{r*_lSrdP zN(|>0B^G)C=Pzh`M3+(TgTz3smRBOu$ccVhf;3A432>yyy3xuDMKTt1u?+3!SkVIs z+{!kO)F79D)n5UE$!|ujs!ODDn?9CC55-vjdHSjm=>6mdMMe;_1a8$!4%K=zyAZ5i zkH_W7@7Ky1n1}{tgpQGQ#8r^UQdSM7Sfk8pHoitSP|daGXH7k9&aVh7Cqgl@_QE$b|-U zfDRw18v#Pn)g%ryEg=ipf}~m$F+bAn9>Gl&@9)@Q?TAp92f#MaitPgaAKDu+NuwJS z!_?RRmn6zMQ*)g|-P}~U?_dteWmayo#|}SK`;4{*(K*DUsb|l@zc;aR_SJto`K+qR z20q|&QP@H^7HetWmC%QM+ky%zZXMmF9QxD`Fsw)q1uG-b=gx25y`s2sTJ@#kcP3R# zJor@4?wX(O?0WZ=&KJVHAJ<)|ns%f2$&%w8Z{l4Wr*Gcf)6>VL_xMiC4%Y3fa6EVz z##_AYU+wd$HBkC)(c6uElRJwq--pfE^{D6k@8|lie7=9JdcJ-3YPNkv`UtoKoExL@ zWzlDQu4J~E?{Bzpef&pLI!dpd{p|jU>sRb3+Ue*hUw>j&qO`A>!OD)NwvVma`os?G zwQDCGoj;az621GzV#nt1zjr77{HaqP?nyObm*(TxoD0|g*b+GuKR07s?7}tdi7T!tfR*00w`qFCysJmXb-u-S vOg=eb@AmJF(&jP8&@Ff}jE1Ce7@LpQ4(nQso^R@3wqBv?mBH?%k3aJlyt351 literal 0 HcmV?d00001 diff --git a/Resources/Textures/DeltaV/Objects/Misc/gorlex_magazine.rsi/meta.json b/Resources/Textures/DeltaV/Objects/Misc/gorlex_magazine.rsi/meta.json new file mode 100644 index 00000000000..3ce9554c33f --- /dev/null +++ b/Resources/Textures/DeltaV/Objects/Misc/gorlex_magazine.rsi/meta.json @@ -0,0 +1,14 @@ +{ + "version": 1, + "license": "CC-BY-SA-4.0", + "copyright": "Done by Kr8art on github", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + } + ] +} From 98f554a8ba9bd4337a0af8947dcde131ec2b0823 Mon Sep 17 00:00:00 2001 From: deltanedas <39013340+deltanedas@users.noreply.github.com> Date: Fri, 20 Dec 2024 05:28:42 +0000 Subject: [PATCH 48/76] make wrecks cost mining points to pull (#2457) * add UserHasPoints helper method * add cost to wreck pulls * implement wreck pull cost --------- Co-authored-by: deltanedas <@deltanedas:kde.org> --- .../UI/SalvageMagnetBoundUserInterface.cs | 21 +++++++++++++++++++ .../Salvage/SalvageSystem.Magnet.cs | 8 +++++-- Content.Server/Salvage/SalvageSystem.cs | 2 ++ .../Salvage/Systems/MiningPointsSystem.cs | 11 ++++++++++ .../Salvage/Magnet/AsteroidOffering.cs | 2 ++ .../Salvage/Magnet/DebrisOffering.cs | 2 ++ .../Salvage/Magnet/ISalvageMagnetOffering.cs | 7 +++++-- .../Salvage/Magnet/SalvageOffering.cs | 2 ++ .../en-US/deltav/salvage/salvage-magnet.ftl | 2 ++ 9 files changed, 53 insertions(+), 4 deletions(-) diff --git a/Content.Client/Salvage/UI/SalvageMagnetBoundUserInterface.cs b/Content.Client/Salvage/UI/SalvageMagnetBoundUserInterface.cs index d691f9acef3..64fc975b98c 100644 --- a/Content.Client/Salvage/UI/SalvageMagnetBoundUserInterface.cs +++ b/Content.Client/Salvage/UI/SalvageMagnetBoundUserInterface.cs @@ -1,7 +1,9 @@ using System.Linq; using Content.Client.Message; +using Content.Shared.DeltaV.Salvage.Systems; // DeltaV using Content.Shared.Salvage; using Content.Shared.Salvage.Magnet; +using Robust.Client.Player; // DeltaV using Robust.Client.UserInterface; using Robust.Client.UserInterface.Controls; @@ -10,12 +12,16 @@ namespace Content.Client.Salvage.UI; public sealed class SalvageMagnetBoundUserInterface : BoundUserInterface { [Dependency] private readonly IEntityManager _entManager = default!; + [Dependency] private readonly IPlayerManager _player = default!; // DeltaV + + private readonly MiningPointsSystem _points; // DeltaV private OfferingWindow? _window; public SalvageMagnetBoundUserInterface(EntityUid owner, Enum uiKey) : base(owner, uiKey) { IoCManager.InjectDependencies(this); + _points = _entManager.System(); // DeltaV } protected override void Open() @@ -61,6 +67,21 @@ protected override void UpdateState(BoundUserInterfaceState state) }); }; + // Begin DeltaV Additions: Mining points cost for wrecks + if (offer.Cost > 0) + { + if (_player.LocalSession?.AttachedEntity is not {} user || !_points.UserHasPoints(user, offer.Cost)) + option.Disabled = true; + + var label = new Label + { + Text = Loc.GetString("salvage-magnet-mining-points-cost", ("points", offer.Cost)), + HorizontalAlignment = Control.HAlignment.Center + }; + option.AddContent(label); + } + // End DeltaV Additions + switch (offer) { case AsteroidOffering asteroid: diff --git a/Content.Server/Salvage/SalvageSystem.Magnet.cs b/Content.Server/Salvage/SalvageSystem.Magnet.cs index 81db78fb201..4ae1a06d176 100644 --- a/Content.Server/Salvage/SalvageSystem.Magnet.cs +++ b/Content.Server/Salvage/SalvageSystem.Magnet.cs @@ -45,7 +45,7 @@ private void OnMagnetClaim(EntityUid uid, SalvageMagnetComponent component, ref return; } - TakeMagnetOffer((station.Value, dataComp), args.Index, (uid, component)); + TakeMagnetOffer((station.Value, dataComp), args.Index, (uid, component), args.Actor); // DeltaV: pass the user entity } private void OnMagnetStartup(EntityUid uid, SalvageMagnetComponent component, ComponentStartup args) @@ -250,11 +250,15 @@ private void UpdateMagnetUIs(Entity data) } } - private async Task TakeMagnetOffer(Entity data, int index, Entity magnet) + private async Task TakeMagnetOffer(Entity data, int index, Entity magnet, EntityUid user) // DeltaV: add user param { var seed = data.Comp.Offered[index]; var offering = GetSalvageOffering(seed); + // Begin DeltaV Addition: make wrecks cost mining points to pull + if (offering.Cost > 0 && !(_points.TryFindIdCard(user) is {} idCard && _points.RemovePoints(idCard, offering.Cost))) + return; + // End DeltaV Addition var salvMap = _mapSystem.CreateMap(); var salvMapXform = Transform(salvMap); diff --git a/Content.Server/Salvage/SalvageSystem.cs b/Content.Server/Salvage/SalvageSystem.cs index eb5719c892f..7610b05d7da 100644 --- a/Content.Server/Salvage/SalvageSystem.cs +++ b/Content.Server/Salvage/SalvageSystem.cs @@ -4,6 +4,7 @@ using Content.Server.Construction; using Content.Server.GameTicking; using Content.Server.Radio.EntitySystems; +using Content.Shared.DeltaV.Salvage.Systems; // DeltaV using Content.Shared.Examine; using Content.Shared.Interaction; using Content.Shared.Popups; @@ -52,6 +53,7 @@ public sealed partial class SalvageSystem : SharedSalvageSystem [Dependency] private readonly LabelSystem _labelSystem = default!; [Dependency] private readonly MapLoaderSystem _map = default!; [Dependency] private readonly MetaDataSystem _metaData = default!; + [Dependency] private readonly MiningPointsSystem _points = default!; // DeltaV [Dependency] private readonly RadioSystem _radioSystem = default!; [Dependency] private readonly SharedAudioSystem _audio = default!; [Dependency] private readonly SharedTransformSystem _transform = default!; diff --git a/Content.Shared/DeltaV/Salvage/Systems/MiningPointsSystem.cs b/Content.Shared/DeltaV/Salvage/Systems/MiningPointsSystem.cs index 33dca3ee019..e3e5c0655ec 100644 --- a/Content.Shared/DeltaV/Salvage/Systems/MiningPointsSystem.cs +++ b/Content.Shared/DeltaV/Salvage/Systems/MiningPointsSystem.cs @@ -61,6 +61,17 @@ private void OnClaimMiningPoints(Entity ent, ref Lat return (idCard, comp); } + /// + /// Returns true if the user has at least some number of points on their ID card. + /// + public bool UserHasPoints(EntityUid user, uint points) + { + if (TryFindIdCard(user)?.Comp is not {} comp) + return false; + + return comp.Points >= points; + } + /// /// Removes points from a holder, returning true if it succeeded. /// diff --git a/Content.Shared/Salvage/Magnet/AsteroidOffering.cs b/Content.Shared/Salvage/Magnet/AsteroidOffering.cs index 38da94afee2..42592d8a015 100644 --- a/Content.Shared/Salvage/Magnet/AsteroidOffering.cs +++ b/Content.Shared/Salvage/Magnet/AsteroidOffering.cs @@ -15,4 +15,6 @@ public record struct AsteroidOffering : ISalvageMagnetOffering /// Calculated marker layers for the asteroid. /// public Dictionary MarkerLayers; + + uint ISalvageMagnetOffering.Cost => 0; // DeltaV } diff --git a/Content.Shared/Salvage/Magnet/DebrisOffering.cs b/Content.Shared/Salvage/Magnet/DebrisOffering.cs index 953b9dcad9f..7f88c085977 100644 --- a/Content.Shared/Salvage/Magnet/DebrisOffering.cs +++ b/Content.Shared/Salvage/Magnet/DebrisOffering.cs @@ -6,4 +6,6 @@ namespace Content.Shared.Salvage.Magnet; public record struct DebrisOffering : ISalvageMagnetOffering { public string Id; + + uint ISalvageMagnetOffering.Cost => 0; // DeltaV: Debris is a very good source of materials for the station, so no cost } diff --git a/Content.Shared/Salvage/Magnet/ISalvageMagnetOffering.cs b/Content.Shared/Salvage/Magnet/ISalvageMagnetOffering.cs index 7d002fe679e..8aae2981fdb 100644 --- a/Content.Shared/Salvage/Magnet/ISalvageMagnetOffering.cs +++ b/Content.Shared/Salvage/Magnet/ISalvageMagnetOffering.cs @@ -2,5 +2,8 @@ namespace Content.Shared.Salvage.Magnet; public interface ISalvageMagnetOffering { - -} \ No newline at end of file + /// + /// DeltaV: How many mining points this offering costs to accept. + /// + public uint Cost { get; } +} diff --git a/Content.Shared/Salvage/Magnet/SalvageOffering.cs b/Content.Shared/Salvage/Magnet/SalvageOffering.cs index c49f1ff4022..a30328a6fa6 100644 --- a/Content.Shared/Salvage/Magnet/SalvageOffering.cs +++ b/Content.Shared/Salvage/Magnet/SalvageOffering.cs @@ -6,4 +6,6 @@ namespace Content.Shared.Salvage.Magnet; public record struct SalvageOffering : ISalvageMagnetOffering { public SalvageMapPrototype SalvageMap; + + uint ISalvageMagnetOffering.Cost => 1000; // DeltaV: Station gets next to no benefit from you pulling wrecks, force you to mine first. } diff --git a/Resources/Locale/en-US/deltav/salvage/salvage-magnet.ftl b/Resources/Locale/en-US/deltav/salvage/salvage-magnet.ftl index d2d7ad97289..ed67706ee08 100644 --- a/Resources/Locale/en-US/deltav/salvage/salvage-magnet.ftl +++ b/Resources/Locale/en-US/deltav/salvage/salvage-magnet.ftl @@ -1 +1,3 @@ salvage-map-wreck-size-unknown = [color=purple]Unidentified[/color] + +salvage-magnet-mining-points-cost = Cost: {$points} Mining Points From 666357b4292cb2d462aacdcbce2c13e1ea2853f4 Mon Sep 17 00:00:00 2001 From: Delta-V bot <135767721+DeltaV-Bot@users.noreply.github.com> Date: Fri, 20 Dec 2024 06:29:02 +0100 Subject: [PATCH 49/76] Automatic changelog update --- Resources/Changelog/DeltaVChangelog.yml | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/Resources/Changelog/DeltaVChangelog.yml b/Resources/Changelog/DeltaVChangelog.yml index 0d4851667ab..c87d1c7f8af 100644 --- a/Resources/Changelog/DeltaVChangelog.yml +++ b/Resources/Changelog/DeltaVChangelog.yml @@ -1,12 +1,4 @@ Entries: -- author: deltanedas - changes: - - message: Reworked Submarine's atmos, notably the TEG is now good, easy to set - up and has a guide next to it. - type: Tweak - id: 298 - time: '2024-03-28T15:27:57.0000000+00:00' - url: https://github.com/DeltaV-Station/Delta-v/pull/1022 - author: FluffiestFloof changes: - message: Felinids, Harpies and Vulpkanin should now Weh accordingly. @@ -3821,3 +3813,10 @@ id: 797 time: '2024-12-19T04:55:03.0000000+00:00' url: https://github.com/DeltaV-Station/Delta-v/pull/2304 +- author: deltanedas + changes: + - message: Pulling wrecks on the salvage magnet now costs mining points. GO MINE!!! + type: Tweak + id: 798 + time: '2024-12-20T05:28:43.0000000+00:00' + url: https://github.com/DeltaV-Station/Delta-v/pull/2457 From 586df36b08d500abb0fce6cb022b3d6b0ef5f6c4 Mon Sep 17 00:00:00 2001 From: boogiebogus <53976699+boogiebogus@users.noreply.github.com> Date: Fri, 20 Dec 2024 00:31:17 -0500 Subject: [PATCH 50/76] Add luna moth wings to moths (#2478) * add selene wings * brighten primary and secondary recolorable sprites * correct meta.json whitespace * bruh * hopefully correct for real this time --- .../Locale/en-US/deltav/markings/moth.ftl | 6 ++++ .../Mobs/Customization/Markings/moth.yml | 27 +++++++++++++++++ .../Moth/moth_wings.rsi/meta.json | 28 ++++++++++++++++++ .../Moth/moth_wings.rsi/selene.png | Bin 0 -> 1209 bytes .../Moth/moth_wings.rsi/selene_primary.png | Bin 0 -> 938 bytes .../Moth/moth_wings.rsi/selene_secondary.png | Bin 0 -> 724 bytes .../Moth/moth_wings.rsi/selene_tertiary.png | Bin 0 -> 602 bytes 7 files changed, 61 insertions(+) create mode 100644 Resources/Locale/en-US/deltav/markings/moth.ftl create mode 100644 Resources/Prototypes/DeltaV/Entities/Mobs/Customization/Markings/moth.yml create mode 100644 Resources/Textures/DeltaV/Mobs/Customization/Moth/moth_wings.rsi/meta.json create mode 100644 Resources/Textures/DeltaV/Mobs/Customization/Moth/moth_wings.rsi/selene.png create mode 100644 Resources/Textures/DeltaV/Mobs/Customization/Moth/moth_wings.rsi/selene_primary.png create mode 100644 Resources/Textures/DeltaV/Mobs/Customization/Moth/moth_wings.rsi/selene_secondary.png create mode 100644 Resources/Textures/DeltaV/Mobs/Customization/Moth/moth_wings.rsi/selene_tertiary.png diff --git a/Resources/Locale/en-US/deltav/markings/moth.ftl b/Resources/Locale/en-US/deltav/markings/moth.ftl new file mode 100644 index 00000000000..59ecbdae659 --- /dev/null +++ b/Resources/Locale/en-US/deltav/markings/moth.ftl @@ -0,0 +1,6 @@ +marking-MothWingsClassicSelene = Wings (Selene, Classic) + +marking-MothWingsSelene-selene_primary = Primary +marking-MothWingsSelene-selene_secondary = Secondary +marking-MothWingsSelene-selene_tertiary = Tertiary +marking-MothWingsSelene = Wings (Selene) diff --git a/Resources/Prototypes/DeltaV/Entities/Mobs/Customization/Markings/moth.yml b/Resources/Prototypes/DeltaV/Entities/Mobs/Customization/Markings/moth.yml new file mode 100644 index 00000000000..7097be16ffa --- /dev/null +++ b/Resources/Prototypes/DeltaV/Entities/Mobs/Customization/Markings/moth.yml @@ -0,0 +1,27 @@ +- type: marking + id: MothWingsClassicSelene + bodyPart: Tail + markingCategory: Tail + forcedColoring: true + speciesRestriction: [Moth] + coloring: + default: + type: + !type:SimpleColoring + color: "#FFFFFF" + sprites: + - sprite: DeltaV/Mobs/Customization/Moth/moth_wings.rsi + state: selene + +- type: marking + id: MothWingsSelene + bodyPart: Tail + markingCategory: Tail + speciesRestriction: [Moth] + sprites: + - sprite: DeltaV/Mobs/Customization/Moth/moth_wings.rsi + state: selene_primary + - sprite: DeltaV/Mobs/Customization/Moth/moth_wings.rsi + state: selene_secondary + - sprite: DeltaV/Mobs/Customization/Moth/moth_wings.rsi + state: selene_tertiary diff --git a/Resources/Textures/DeltaV/Mobs/Customization/Moth/moth_wings.rsi/meta.json b/Resources/Textures/DeltaV/Mobs/Customization/Moth/moth_wings.rsi/meta.json new file mode 100644 index 00000000000..cab0153f68d --- /dev/null +++ b/Resources/Textures/DeltaV/Mobs/Customization/Moth/moth_wings.rsi/meta.json @@ -0,0 +1,28 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Selene wings by @bogus_0451 on discord", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "selene", + "directions": 4 + }, + { + "name": "selene_primary", + "directions": 4 + }, + { + "name": "selene_secondary", + "directions": 4 + }, + { + "name": "selene_tertiary", + "directions": 4 + } + ] +} + diff --git a/Resources/Textures/DeltaV/Mobs/Customization/Moth/moth_wings.rsi/selene.png b/Resources/Textures/DeltaV/Mobs/Customization/Moth/moth_wings.rsi/selene.png new file mode 100644 index 0000000000000000000000000000000000000000..ba9a5c4e262762fdea1b3c11e8fa2f5528f48224 GIT binary patch literal 1209 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I3?%1nZ+ru!7>k44ofy`glX(f`u%tWsIx;Y9 z?C1WI$O_~e1o(uw_9Ry?t(vp`MJ-aCbWlt4+4U+{la!0O>_%)r2R5QG_bOw4`@6qG1& zjVKAuPb(=;EJ|evNX*PD(erZ+Q83jr)H6)l8pH!svn@5kGtJXei-7~kVP%kFWMyCk zvb=y;8p;OwQiG8hEY1XE8!|F62mt9QAkJ)O0gGn=*&uMUjFI65Ffd>=nxzatsR`^1 zEI^e8M#ct=3m~R~Y-C*kF=+~r4FXI+bD6*@gDfq8ET}F+0|St3XyP`cl&D3H5FO^--ONGrsQEfe}QM(nV-{tvHq!N zaGqLsu_E$!c>qgvcD%sh){Q?GZCiinhfC~VK?8lU-qO#!2Yf#7IrF(B(&_#B<+H_~ z%cL#%zpm8PX8D=RRzG+TY~;L{FlF`Xo*$jx+tu`Avcg!W2tHqS=cVzcH7o+tQp>m> zIjf5_OuS=ua)+;UN<}ExuF(D_$nc<*eoKr;d*R6()4F}eB*-Be6 z*4+wQ$H+hPd;Ip0THD(lY^$#b9x1L>`xbiezRVwm>N__jwujDV5LPu>!+haz#6H(= zy$_Ey%T)2X9lvtq_%VTx0{YPcJy%s%^t%Tz>j-hWzi z_xHu?89X`T|Hm#5wyxvS^kf#1|IWhj{Gxh;S(Qz-j6vyJO;Lxh(g|O-&OUmY=S1WB zO$rPRKQ78M=)Nnq;pEzJB%UGusqj9<&g?f*j8}J_d-2Keq3N=UkM0b00>5}J)P?vk zHcZf~WBwo;{xEiWocJG=n#;G!{=1)lFu9KLzsv*0w`OdWzZsca52>!$GGU{Kbou@x zYI9B8riMM9`A7ZiIdi9Xsl5h5ZSxX8u_tSC{)!cj^(j0YR-J#>?D!q?v)jELat}Uv zv2E>je%=j_?q4%Ly70^i<@c8!DRQZO$~Rrjw1r{9-v3+gzjCNLdXcHP`Oo<|Uqu91 zSe^FiFiiezA9OuDGtap(K>2gzn#+IwiX_a@oqZx*MgEvQ>x6*M)0ldm)lZtwP@=@$ zB6C`pi$TVo$-rUy1xA^=KRh!Otr@H@NU_YE?|gp=D-+k0J?(59oj>E#YXrGjrm@R5 z7>ThS*`@sPb&tN&+zsnj7!>VY-Ef4f;U_Ro#5p)tH7KRLZ*MR>$j=}!k1>y%XW4)D zU11!|2bN!-_211%NXkK__4|^4fp#jH--8t<8 literal 0 HcmV?d00001 diff --git a/Resources/Textures/DeltaV/Mobs/Customization/Moth/moth_wings.rsi/selene_primary.png b/Resources/Textures/DeltaV/Mobs/Customization/Moth/moth_wings.rsi/selene_primary.png new file mode 100644 index 0000000000000000000000000000000000000000..034e3ebbc1e97e9a71def05236f9926f23cea577 GIT binary patch literal 938 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I3?%1nZ+ru!7>k44ofy`glX(f`u%tWsIx;Y9 z?C1WI$O`031o(uw?%ut7)~s14PoBJT<;s&MPqu8?^7H3Upyalve$qgSqa?^L_&)?N z+-u$&2^8Zj@Q5sCVBk9h!i=ICUJXD&i4xa{lHmNblJdl&REB`W%)AmkKi3ciQ$0gH z!=$Z2JU}(uQX@RmJUz7-IDi~h1}R2X21X#u3y7tmY>+QB7@5K1OhC3FBNKxFkd6Z4 z%yt&AcovWi0-wql8D0QA3!~92WdKS|U}sjH>LQ-Ev`U;>)U z1XdYjX#r$Gbr~8MfMjcCJ^6k1XqY`voua3UV@QPi+v&H94lD4u?Bw|I-~Qb?2ZcL3 z)Glu~JIy1;A)8#FBXmpuD`O4AmHkXD7CqM%bz8Bum~aYyGZ25k_3N6SqA$anm;3ql z1m|h;GO10tAor@lMEmMe&**@!mLLA{zJ2(f;pxWstIy5fGxFARsfx#?-Dh~xFs&&x zEA#$@pMk5cox9Jd`8exi7VDSZu4q3e5~QvVX_Pko8{O;ckujhiMB+vdi@UvsBnK`pFh33ovZ>v5@;gdMDGiAKw`Q zKeU~&bLTfWe>eDu&JDMdv+px+Sig&H+yC%XPX?8ne}oU%nkBAp-^#L|<=yHpW7 zRxIUzz`Wp}%!7CBdoty>F#NdXHvL@QRA#ny{2y2{?rFTfT(`RGOP5iU@Pz75wk!(w zo@FuAXr8oXEMSsaAjJ@OkNJlON3qj)%?6g!(XtDE&VM4@!1sjFaWg(5Q|FUzx3ChHVPjq9xy}*KY4XY`2XSpKaCS_Yi28~ zbqTiJ^j&g+`VTo1v5nm;-#eV>JG{tdf#OfO6+eFP9{5tf;BU(VhQMtv?`T&X>fv;J yCf~$k44ofy`glX(f`u%tWsIx;Y9 z?C1WI$O`211o(uwUb}Yf?c2AfPMrb@bQEaRg4C4+`33*~|DVA@YvmUppR>RtvY3H^ z?+^$xifVW@00kvVTq8kOkFcXkY-6 zt(o=Y_t~Ri_Q2qa_H=O!iEw{A?e(T+1)i3Ld;VL`kD1Nd>GZn)vSj%(p-FGj-}rj} z4&s0CouM^#Bj{VzcQ|jy>2wG!LLznRsZxCrIDu+o#q*G1i3REjhntWXHk4o z%e04s>s&k-EY&~NY>+bu^Lek6|Oxw+@4=kCZ>Zm=h ld}c#$bo2QypBt|IV_;mQC;D(+Hz>pzJYD@<);T3K0RVWL^e_Mb literal 0 HcmV?d00001 diff --git a/Resources/Textures/DeltaV/Mobs/Customization/Moth/moth_wings.rsi/selene_tertiary.png b/Resources/Textures/DeltaV/Mobs/Customization/Moth/moth_wings.rsi/selene_tertiary.png new file mode 100644 index 0000000000000000000000000000000000000000..71cf6555e6d26ed27a14d60c0d569ce70726cb86 GIT binary patch literal 602 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I3?%1nZ+ru!7>k44ofy`glX(f`u%tWsIx;Y9 z?C1WI$O_~O1^9%xo;r2v)vH$z9z3{u_3EBIdw{|xExZkZ6kAD+ zXMsm#F#`kNVGw3Kp1&dmC@4|l8c`CQpH@cG@7LhK>tr*XJ7%UFfcMUU|aw(6{Lf80mP&!KsE?40nK3os|>QV0J5OE z3=IrGveG4&r(EG^;|4Nsdb&7|Oe!Qa-^{M)j8Cw^{?S z1YxURdmNS4JTgxEX`RDuwDO?glDEG;H%*zZQ6zVNVqw^Xn#@wu7;C3?ps5^=96bUy zejhTWgJ&&?YS?$w#h9~d{awLVJn9ETWPE?GRhaF1%3;EVeH-kHKJ(qteZw$o+qE0o zO1-Rm-x%F{R^Id~BK^kp? Date: Thu, 19 Dec 2024 21:31:36 -0800 Subject: [PATCH 51/76] Increase round restart time for Peri and Horizon (#2229) Increase round restart time (time spent at CentComm) for Peri and Horizon --- Resources/ConfigPresets/DeltaV/horizon.toml | 5 +++-- Resources/ConfigPresets/DeltaV/periapsis.toml | 5 +++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/Resources/ConfigPresets/DeltaV/horizon.toml b/Resources/ConfigPresets/DeltaV/horizon.toml index 96fc9aeb5b8..5ba5501c2e0 100644 --- a/Resources/ConfigPresets/DeltaV/horizon.toml +++ b/Resources/ConfigPresets/DeltaV/horizon.toml @@ -1,6 +1,7 @@ [game] -hostname = "[EN][MRP] Delta-v (Ψ) | Horizon [US East 3]" -soft_max_players = 80 +hostname = "[EN][MRP] Delta-v (Ψ) | Horizon [US East 3]" +soft_max_players = 80 +round_restart_time = 300 [vote] preset_enabled = true diff --git a/Resources/ConfigPresets/DeltaV/periapsis.toml b/Resources/ConfigPresets/DeltaV/periapsis.toml index 77ea036dc76..172ba3cc63f 100644 --- a/Resources/ConfigPresets/DeltaV/periapsis.toml +++ b/Resources/ConfigPresets/DeltaV/periapsis.toml @@ -1,6 +1,7 @@ [game] -hostname = "[EN][MRP] Delta-v (Ψ) | Periapsis [US East 2]" -soft_max_players = 50 +hostname = "[EN][MRP] Delta-v (Ψ) | Periapsis [US East 2]" +soft_max_players = 50 +round_restart_time = 300 [server] rules_file = "DeltaVRuleset" From f552fd6a1d84b49568058c477c36515d58457613 Mon Sep 17 00:00:00 2001 From: Delta-V bot <135767721+DeltaV-Bot@users.noreply.github.com> Date: Fri, 20 Dec 2024 06:31:55 +0100 Subject: [PATCH 52/76] Automatic changelog update --- Resources/Changelog/DeltaVChangelog.yml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/Resources/Changelog/DeltaVChangelog.yml b/Resources/Changelog/DeltaVChangelog.yml index c87d1c7f8af..5426b4c45d0 100644 --- a/Resources/Changelog/DeltaVChangelog.yml +++ b/Resources/Changelog/DeltaVChangelog.yml @@ -1,11 +1,4 @@ Entries: -- author: FluffiestFloof - changes: - - message: Felinids, Harpies and Vulpkanin should now Weh accordingly. - type: Fix - id: 299 - time: '2024-03-28T18:27:42.0000000+00:00' - url: https://github.com/DeltaV-Station/Delta-v/pull/992 - author: deltanedas changes: - message: Reworked Shoukou's atmospherics setup. The Gas Recycler is now usable @@ -3820,3 +3813,10 @@ id: 798 time: '2024-12-20T05:28:43.0000000+00:00' url: https://github.com/DeltaV-Station/Delta-v/pull/2457 +- author: makyo + changes: + - message: round restart time + type: Tweak + id: 799 + time: '2024-12-20T05:31:37.0000000+00:00' + url: https://github.com/DeltaV-Station/Delta-v/pull/2229 From 90bba4fafa101e193587a824e4841b2007e722b9 Mon Sep 17 00:00:00 2001 From: deltanedas <39013340+deltanedas@users.noreply.github.com> Date: Fri, 20 Dec 2024 05:34:54 +0000 Subject: [PATCH 53/76] disable vent fauna events (#2474) Co-authored-by: deltanedas <@deltanedas:kde.org> --- Resources/Prototypes/GameRules/events.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Resources/Prototypes/GameRules/events.yml b/Resources/Prototypes/GameRules/events.yml index b22bc621c80..3ef440f531a 100644 --- a/Resources/Prototypes/GameRules/events.yml +++ b/Resources/Prototypes/GameRules/events.yml @@ -20,11 +20,11 @@ - id: MouseMigration - id: PowerGridCheck #- id: RandomSentience # DeltaV - replaced with RandomSentienceGlimmer - - id: SlimesSpawn + #- id: SlimesSpawn # DeltaV - disabled hostile fauna events - id: SolarFlare - - id: SnakeSpawn - - id: SpiderClownSpawn - - id: SpiderSpawn + #- id: SnakeSpawn # DeltaV + #- id: SpiderClownSpawn # DeltaV + #- id: SpiderSpawn # DeltaV - id: VentClog - type: entityTable From 50dfb55bb325798be44d3a5152c8119b3139f603 Mon Sep 17 00:00:00 2001 From: Delta-V bot <135767721+DeltaV-Bot@users.noreply.github.com> Date: Fri, 20 Dec 2024 06:35:13 +0100 Subject: [PATCH 54/76] Automatic changelog update --- Resources/Changelog/DeltaVChangelog.yml | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/Resources/Changelog/DeltaVChangelog.yml b/Resources/Changelog/DeltaVChangelog.yml index 5426b4c45d0..ffe2d27292a 100644 --- a/Resources/Changelog/DeltaVChangelog.yml +++ b/Resources/Changelog/DeltaVChangelog.yml @@ -1,12 +1,4 @@ Entries: -- author: deltanedas - changes: - - message: Reworked Shoukou's atmospherics setup. The Gas Recycler is now usable - among other things. - type: Tweak - id: 300 - time: '2024-04-03T02:10:51.0000000+00:00' - url: https://github.com/DeltaV-Station/Delta-v/pull/1049 - author: rosieposieeee changes: - message: Submarine has, once again, had some minor issues quashed, and small improvements @@ -3820,3 +3812,10 @@ id: 799 time: '2024-12-20T05:31:37.0000000+00:00' url: https://github.com/DeltaV-Station/Delta-v/pull/2229 +- author: deltanedas + changes: + - message: Removed vent fauna (spiders, slimes, snakes) events pending rework. + type: Remove + id: 800 + time: '2024-12-20T05:34:54.0000000+00:00' + url: https://github.com/DeltaV-Station/Delta-v/pull/2474 From 9f39931732046ca52b837f05bef0d7e3d18f633c Mon Sep 17 00:00:00 2001 From: deltanedas <39013340+deltanedas@users.noreply.github.com> Date: Fri, 20 Dec 2024 05:38:08 +0000 Subject: [PATCH 55/76] early merge of rebalanced salv weapon researching (#2077) * add fauna protection module * re-add crusher recipes to secfab, move pka to secfab, t1 -> t2 * remove shovel from mining module, add recipes to emagged lathes * you have died of dissin terry * add an icon * re-add crusher recipes to secfab, move pka to secfab, t1 -> t2 --------- Signed-off-by: deltanedas <39013340+deltanedas@users.noreply.github.com> Co-authored-by: deltanedas <@deltanedas:kde.org> --- .../Locale/en-US/research/technologies.ftl | 2 +- .../Specific/Robotics/borg_modules.yml | 18 ++++++++- .../Objects/Weapons/Guns/Basic/pka.yml | 16 ++++++++ .../Entities/Structures/Machines/lathe.yml | 11 ++++- .../Prototypes/Recipes/Lathes/devices.yml | 10 ----- .../Prototypes/Recipes/Lathes/robotics.yml | 7 ++++ .../Prototypes/Recipes/Lathes/security.yml | 38 ++++++++++++++++++ Resources/Prototypes/Research/arsenal.yml | 33 +++++++-------- .../Actions/actions_borg.rsi/fauna-module.png | Bin 0 -> 456 bytes .../Actions/actions_borg.rsi/meta.json | 5 ++- .../Robotics/borgmodule.rsi/icon-carp.png | Bin 0 -> 253 bytes .../Robotics/borgmodule.rsi/meta.json | 5 ++- 12 files changed, 114 insertions(+), 31 deletions(-) create mode 100644 Resources/Textures/Interface/Actions/actions_borg.rsi/fauna-module.png create mode 100644 Resources/Textures/Objects/Specific/Robotics/borgmodule.rsi/icon-carp.png diff --git a/Resources/Locale/en-US/research/technologies.ftl b/Resources/Locale/en-US/research/technologies.ftl index 0b0970ec08f..91a803da6ea 100644 --- a/Resources/Locale/en-US/research/technologies.ftl +++ b/Resources/Locale/en-US/research/technologies.ftl @@ -22,7 +22,6 @@ research-technology-portable-fission = Portable Fission research-technology-space-scanning = Space Scanning research-technology-excavation = Mass Excavation -research-technology-salvage-weapons = Salvage Weapons research-technology-draconic-munitions = Draconic Munitions research-technology-uranium-munitions = Uranium Munitions research-technology-explosive-technology = Explosive Technology @@ -32,6 +31,7 @@ research-technology-nonlethal-ammunition = Nonlethal Ammunition research-technology-practice-ammunition = Practice Ammunition research-technology-concentrated-laser-weaponry = Concentrated Laser Weaponry research-technology-wave-particle-harnessing = Wave Particle Harnessing +research-technology-experimental-salvage-weaponry = Experimental Salvage Weaponry research-technology-advanced-riot-control = Advanced Riot Control research-technology-portable-microfusion-weaponry = Portable Microfusion Weaponry research-technology-experimental-battery-ammo = Experimental Battery Ammo diff --git a/Resources/Prototypes/Entities/Objects/Specific/Robotics/borg_modules.yml b/Resources/Prototypes/Entities/Objects/Specific/Robotics/borg_modules.yml index c37189f4148..b179c7aa042 100644 --- a/Resources/Prototypes/Entities/Objects/Specific/Robotics/borg_modules.yml +++ b/Resources/Prototypes/Entities/Objects/Specific/Robotics/borg_modules.yml @@ -220,7 +220,6 @@ - type: ItemBorgModule items: - MiningDrill - - Shovel - MineralScannerUnpowered - OreBag - Crowbar @@ -244,6 +243,23 @@ - type: BorgModuleIcon icon: { sprite: Interface/Actions/actions_borg.rsi, state: grappling-module } +- type: entity + parent: [ BaseBorgModuleCargo, BaseProviderBorgModule ] + id: BorgModuleFauna + name: fauna protection module + description: A borg module for protection from deadly space fauna. + components: + - type: Sprite + layers: + - state: cargo + - state: icon-carp + - type: ItemBorgModule + items: + - WeaponProtoKineticAcceleratorOneHanded + - WeaponCrusherDagger + - type: BorgModuleIcon + icon: { sprite: Interface/Actions/actions_borg.rsi, state: fauna-module } + # engineering modules - type: entity id: BorgModuleAdvancedTool diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Basic/pka.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Basic/pka.yml index 409f622f89c..9bbc8129a4b 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Basic/pka.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Basic/pka.yml @@ -13,3 +13,19 @@ map: [ "empty-icon" ] # todo: add itemcomponent with inhandVisuals states using unused texture and animation assets in kinetic_accelerator.rsi # todo: add clothingcomponent with clothingVisuals states using unused texture and animations assets in kinetic_accelerator.rsi + +- type: entity + parent: WeaponProtoKineticAccelerator + id: WeaponProtoKineticAcceleratorOneHanded + suffix: One-Handed, DO NOT MAP + description: Fires low-damage kinetic bolts at a short range. This kind has a gyroscope to keep a cyborg's aim steady. + components: + - type: GunWieldBonus + wieldBonusExamineMessage: null + minAngle: 0 + maxAngle: 0 + - type: Gun + minAngle: 1 + maxAngle: 2 + - type: UseDelay + delay: 0 # You can't dual wield this as a borg so no need for a delay diff --git a/Resources/Prototypes/Entities/Structures/Machines/lathe.yml b/Resources/Prototypes/Entities/Structures/Machines/lathe.yml index d58d5f4f75a..0806d6e99c4 100644 --- a/Resources/Prototypes/Entities/Structures/Machines/lathe.yml +++ b/Resources/Prototypes/Entities/Structures/Machines/lathe.yml @@ -232,6 +232,7 @@ - RiotShield - SpeedLoaderMagnum - SpeedLoaderMagnumEmpty + - WeaponProtoKineticAccelerator # DeltaV - .38 special ammo - Add .38 special lethals to emagged autolathe - SpeedLoaderSpecial - SpeedLoaderSpecialEmpty @@ -350,7 +351,6 @@ - SyringeBluespace #- WeaponForceGun # DeltaV - WeaponLaserSvalinn - - WeaponProtoKineticAccelerator - WeaponGrapplingGun #- WeaponTetherGun # DeltaV - ClothingBackpackHolding @@ -377,6 +377,7 @@ # End DeltaV additions - type: EmagLatheRecipes emagDynamicRecipes: + - BorgModuleFauna - BoxBeanbag - BoxShotgunIncendiary - BoxShotgunUranium @@ -416,6 +417,9 @@ - WeaponLaserCannon - WeaponLaserCarbine - WeaponXrayCannon + - WeaponCrusher + - WeaponCrusherDagger + - WeaponCrusherGlaive # Begin DeltaV additions - BoxShellSoulbreaker # Nyanotrasen - Shotgun shell to get rid of psionics - WeaponEnergyGun # Energy Gun @@ -807,6 +811,7 @@ - WeaponDisablerPractice - WeaponFlareGunSecurity - WeaponLaserCarbinePractice + - WeaponProtoKineticAccelerator - Zipties # Begin DeltaV additions - ClothingNeckShockCollar # Nyanotrasen - Shock Collar recipe @@ -821,6 +826,7 @@ # End DeltaV additions dynamicRecipes: - EncryptionKeySyndie # Nyano + - BorgModuleFauna - BoxBeanbag - BoxShotgunIncendiary - BoxShotgunUranium @@ -871,6 +877,9 @@ - WeaponLaserCarbine - WeaponXrayCannon - ClothingBackpackElectropack + - WeaponCrusher + - WeaponCrusherDagger + - WeaponCrusherGlaive # Begin DeltaV additions - BoxShellSoulbreaker # Nyanotrasen - Shotgun shell to get rid of psionics - ClothingHeadHelmetInsulated # Nyanotrasen - Insulative headgear diff --git a/Resources/Prototypes/Recipes/Lathes/devices.yml b/Resources/Prototypes/Recipes/Lathes/devices.yml index 88ea4459dc9..368ddf7bacc 100644 --- a/Resources/Prototypes/Recipes/Lathes/devices.yml +++ b/Resources/Prototypes/Recipes/Lathes/devices.yml @@ -175,16 +175,6 @@ Glass: 100 Uranium: 100 -- type: latheRecipe - id: WeaponProtoKineticAccelerator - result: WeaponProtoKineticAccelerator - category: Weapons - completetime: 5 - materials: - Steel: 1000 - Glass: 500 - Silver: 100 - #- type: latheRecipe #DeltaV - LRP # id: WeaponTetherGun # result: WeaponTetherGun diff --git a/Resources/Prototypes/Recipes/Lathes/robotics.yml b/Resources/Prototypes/Recipes/Lathes/robotics.yml index a4413e01ebe..36ceff065b3 100644 --- a/Resources/Prototypes/Recipes/Lathes/robotics.yml +++ b/Resources/Prototypes/Recipes/Lathes/robotics.yml @@ -146,6 +146,13 @@ id: BorgModuleTool result: BorgModuleTool +# Mining Modules + +- type: latheRecipe + parent: BaseGoldBorgModuleRecipe + id: BorgModuleFauna + result: BorgModuleFauna + # Engineering Modules - type: latheRecipe diff --git a/Resources/Prototypes/Recipes/Lathes/security.yml b/Resources/Prototypes/Recipes/Lathes/security.yml index f6f303e5e3b..ac695f314a0 100644 --- a/Resources/Prototypes/Recipes/Lathes/security.yml +++ b/Resources/Prototypes/Recipes/Lathes/security.yml @@ -106,6 +106,44 @@ Plastic: 250 Gold: 100 +- type: latheRecipe + parent: BaseWeaponRecipeLong + id: WeaponProtoKineticAccelerator + result: WeaponProtoKineticAccelerator + materials: + Steel: 1000 + Glass: 500 + Gold: 100 + +- type: latheRecipe + parent: BaseWeaponRecipeLong + id: WeaponCrusher + result: WeaponCrusher + materials: + Steel: 1500 + Glass: 500 + Plastic: 250 + Gold: 100 + +- type: latheRecipe + parent: BaseWeaponRecipe + id: WeaponCrusherDagger + result: WeaponCrusherDagger + materials: + Steel: 750 + Glass: 300 + Gold: 200 + +- type: latheRecipe + parent: BaseWeaponRecipeLong + id: WeaponCrusherGlaive + result: WeaponCrusherGlaive + materials: + Steel: 2000 + Glass: 500 + Silver: 250 + Gold: 250 + - type: latheRecipe id: ClothingBackpackElectropack result: ClothingBackpackElectropack diff --git a/Resources/Prototypes/Research/arsenal.yml b/Resources/Prototypes/Research/arsenal.yml index c7409565dd4..a768ac45639 100644 --- a/Resources/Prototypes/Research/arsenal.yml +++ b/Resources/Prototypes/Research/arsenal.yml @@ -1,19 +1,5 @@ # Tier 1 -- type: technology - id: SalvageWeapons - name: research-technology-salvage-weapons - icon: - sprite: Objects/Weapons/Guns/Basic/kinetic_accelerator.rsi - state: icon - discipline: Arsenal - tier: 1 - cost: 5000 - recipeUnlocks: - - WeaponProtoKineticAccelerator - - ShuttleGunKineticCircuitboard - # These are roundstart but not replenishable for salvage - - type: technology id: DraconicMunitions name: research-technology-draconic-munitions @@ -174,6 +160,22 @@ # recipeUnlocks: # - WeaponXrayCannon +- type: technology + id: ExperimentalSalvageWeaponry + name: research-technology-experimental-salvage-weaponry + icon: + sprite: Objects/Weapons/Melee/crusher_glaive.rsi + state: icon + discipline: Arsenal + tier: 2 + cost: 10000 + recipeUnlocks: + - WeaponCrusher + - WeaponCrusherDagger + - WeaponCrusherGlaive + - BorgModuleFauna + - ShuttleGunKineticCircuitboard + - type: technology id: BasicShuttleArmament name: research-technology-basic-shuttle-armament @@ -193,8 +195,7 @@ - ShuttleGunSvalinnMachineGunCircuitboard - ShuttleGunPerforatorCircuitboard - ShuttleGunFriendshipCircuitboard - technologyPrerequisites: - - SalvageWeapons + technologyPrerequisites: # DeltaV: added prerequesite - ExplosiveTechnology # Tier 3 diff --git a/Resources/Textures/Interface/Actions/actions_borg.rsi/fauna-module.png b/Resources/Textures/Interface/Actions/actions_borg.rsi/fauna-module.png new file mode 100644 index 0000000000000000000000000000000000000000..888ddb464e67de02f8a203988866ef04c4b597bd GIT binary patch literal 456 zcmV;(0XP1MP)NCu5t(CbZ2X@dmYzL(mJ!1NFw23GG_@RP4~ipL z&|JpAz$Zy--@_e&;Q%n;5ut7Pe|nC>#dN@zH*`&e!!HC}H8~k}U;hs0U!5Arpq;&* zJ|W<${EtC|pN*kJhMmDqn}^}Xqpz4|(kcW%J{RF+Wsqk72e$ms)h`TUyo?0Rq)G_D zd@jxY18zCpLI9i3K{T;uQWOHXd=3I2-+MbdFld(_rdhphwp4}hdp+PO5 y6BPnI$5F-5`J-(@s)qomy-u%=$)M?)jRF93<<|v5Z(mmc0000 Date: Fri, 20 Dec 2024 06:38:27 +0100 Subject: [PATCH 56/76] Automatic changelog update --- Resources/Changelog/DeltaVChangelog.yml | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/Resources/Changelog/DeltaVChangelog.yml b/Resources/Changelog/DeltaVChangelog.yml index ffe2d27292a..f7bee8f7f4f 100644 --- a/Resources/Changelog/DeltaVChangelog.yml +++ b/Resources/Changelog/DeltaVChangelog.yml @@ -1,12 +1,4 @@ Entries: -- author: rosieposieeee - changes: - - message: Submarine has, once again, had some minor issues quashed, and small improvements - made. Go check out the park! - type: Tweak - id: 301 - time: '2024-04-03T19:44:14.0000000+00:00' - url: https://github.com/DeltaV-Station/Delta-v/pull/1053 - author: NullWanderer changes: - message: Merged master, please report bugs or regressions @@ -3819,3 +3811,15 @@ id: 800 time: '2024-12-20T05:34:54.0000000+00:00' url: https://github.com/DeltaV-Station/Delta-v/pull/2474 +- author: deltanedas + changes: + - message: Changed Salvage Weapons to be a tier 2 tech, Experimental Salvage Weaponry. + type: Tweak + - message: Crusher weapons are researchable again, PKA is roundstart. + type: Tweak + - message: Added the Fauna Protection Module for borgs, it has a PKA and crusher + dagger. + type: Add + id: 801 + time: '2024-12-20T05:38:08.0000000+00:00' + url: https://github.com/DeltaV-Station/Delta-v/pull/2077 From 763a2aa124b0d5dce009cefde30db7c248b027d3 Mon Sep 17 00:00:00 2001 From: Stop-Signs Date: Fri, 20 Dec 2024 11:22:58 -0600 Subject: [PATCH 57/76] Fix Sleepers getting nukies as kill targets (#2483) * Fix tha shitcode * Delta please dont smite me --- Resources/Prototypes/GameRules/roundstart.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Resources/Prototypes/GameRules/roundstart.yml b/Resources/Prototypes/GameRules/roundstart.yml index dac93f951f5..7982c1e2b78 100644 --- a/Resources/Prototypes/GameRules/roundstart.yml +++ b/Resources/Prototypes/GameRules/roundstart.yml @@ -107,6 +107,7 @@ - RoleSurvivalNukie components: - type: NukeOperative + - type: TargetObjectiveImmune # DeltaV - Makes sleepers unable to get nukie kill objectives - type: RandomMetadata nameSegments: - nukeops-role-commander @@ -124,6 +125,7 @@ - RoleSurvivalNukie components: - type: NukeOperative + - type: TargetObjectiveImmune # DeltaV - Makes sleepers unable to get nukie kill objectives - type: RandomMetadata nameSegments: - nukeops-role-agent @@ -143,6 +145,7 @@ - RoleSurvivalNukie components: - type: NukeOperative + - type: TargetObjectiveImmune # DeltaV - Makes sleepers unable to get nukie kill objectives - type: RandomMetadata nameSegments: - nukeops-role-operator From cf61fb7f0a0a83ea5b6c0359397b5b395efe786b Mon Sep 17 00:00:00 2001 From: Delta-V bot <135767721+DeltaV-Bot@users.noreply.github.com> Date: Fri, 20 Dec 2024 18:23:17 +0100 Subject: [PATCH 58/76] Automatic changelog update --- Resources/Changelog/DeltaVChangelog.yml | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/Resources/Changelog/DeltaVChangelog.yml b/Resources/Changelog/DeltaVChangelog.yml index f7bee8f7f4f..6e9e12986c2 100644 --- a/Resources/Changelog/DeltaVChangelog.yml +++ b/Resources/Changelog/DeltaVChangelog.yml @@ -1,13 +1,4 @@ Entries: -- author: NullWanderer - changes: - - message: Merged master, please report bugs or regressions - type: Add - - message: Mail containing books has been temporarily removed - type: Remove - id: 302 - time: '2024-04-09T07:49:38.080075+00:00' - url: null - author: deltanedas changes: - message: Lighthouse is BACK! @@ -3823,3 +3814,10 @@ id: 801 time: '2024-12-20T05:38:08.0000000+00:00' url: https://github.com/DeltaV-Station/Delta-v/pull/2077 +- author: Stop-Signs + changes: + - message: sleepers will no longer receive nukies as kill targets + type: Fix + id: 802 + time: '2024-12-20T17:22:58.0000000+00:00' + url: https://github.com/DeltaV-Station/Delta-v/pull/2483 From e5bbbb165d5a4186e82152f602fe305549fa26ef Mon Sep 17 00:00:00 2001 From: Aikakakah <145503852+Aikakakah@users.noreply.github.com> Date: Fri, 20 Dec 2024 13:00:22 -0500 Subject: [PATCH 59/76] Drink flavors (#2462) * Added flavors * Added the flavors for real this time * Fixed the spaces * Removed xenobasher (it already existed and I missed that) * Fixed acidspit * DEFINITELY fixed acidspit --------- Signed-off-by: Aikakakah <145503852+Aikakakah@users.noreply.github.com> --- .../en-US/deltav/flavors/flavor-profiles.ftl | 47 ++++ .../Prototypes/DeltaV/Flavors/flavors.yml | 226 ++++++++++++++++++ .../Reagents/Consumable/Drink/drinks.yml | 4 +- .../Reagents/Consumable/Drink/alcohol.yml | 82 +++---- .../Reagents/Consumable/Drink/drinks.yml | 2 +- 5 files changed, 317 insertions(+), 44 deletions(-) diff --git a/Resources/Locale/en-US/deltav/flavors/flavor-profiles.ftl b/Resources/Locale/en-US/deltav/flavors/flavor-profiles.ftl index 51b345aa339..c324675f688 100644 --- a/Resources/Locale/en-US/deltav/flavors/flavor-profiles.ftl +++ b/Resources/Locale/en-US/deltav/flavors/flavor-profiles.ftl @@ -31,6 +31,53 @@ flavor-complex-candy-bubblegum = like bubble gum flavor-complex-double-ice-cream = like ice cream, twice flavor-complex-drgibbbloodred = like severe malpractice +## Delta-V additional drink flavors +flavor-complex-absinthe = like green death +flavor-complex-blue-curacao = like fermented oranges +flavor-complex-deadrum = like a botched murder +flavor-complex-n-t-cahors = five hundred dollars too expensive +flavor-complex-poison-wine = like a dark velvet +flavor-complex-acidspit = like stomach acid +flavor-complex-allies-cocktail = like wartime camaraderie +flavor-complex-amasec = like a smoking gun +flavor-complex-andalusia = like summer +flavor-complex-b52 = like a nuclear arms race +flavor-complex-bahama-mama = like a tropical vacation +flavor-complex-barefoot = like berry-picking, but without the shoes +flavor-complex-booger = like no one is watching +flavor-complex-brave-bull = like you're seeing red +flavor-complex-demons-blood = like brimstone +flavor-complex-devils-kiss = like temptation +flavor-complex-doctors-delight = like a medical miracle +flavor-complex-driest-martini = like a dry sense of humor +flavor-complex-erika-surprise = like a green dream, perfect for a warm day +flavor-complex-gin-fizz = like a fizzy lemon +flavor-complex-gildlager = like a spicy secret told over spring break +flavor-complex-grog = like a day on the high seas +flavor-complex-hippies-delight = like, totally trippy, man +flavor-complex-hooch = like homemade firewater +flavor-complex-irish-cream = like whiskey and cream +flavor-complex-kira-special = kawaii +flavor-complex-manhattan = dark and mysterious +flavor-complex-manhattan-project = like two minutes to midnight +flavor-complex-margarita = like a paradise in space +flavor-complex-martini = like a sense of humor +flavor-complex-mojito = minty fresh, and a little sweet +flavor-complex-neurotoxin = like a trip to the ER +flavor-complex-patron = like luxury +flavor-complex-red-mead = like fermented honey with a splash of blood +flavor-complex-rewriter = like an all-nighter +flavor-complex-sbiten = like you'll need a glass of milk +flavor-complex-silencer = like a broken vow +flavor-complex-snow-white = like a mistake +flavor-complex-sui-dream = like a fruit salad, perfect for the working lady +flavor-complex-syndicate-bomb = like it will blow your mind +flavor-complex-toxins-special = like a plasma fire +flavor-complex-vodka-martini = shaken, not stirred +flavor-complex-vodka-tonic = like depression in denial +flavor-complex-kvass = like bread tossed into a blender +flavor-complex-mothamphetamine = like there are buzzing wings in your mouth + candy-flavor-profile = This one is supposed to taste {$flavor}. candy-flavor-profile-multiple = This one is supposed to taste {$flavors} and {$lastFlavor}. candy-flavor-profile-unknown = You have no idea what this one is supposed to taste like. diff --git a/Resources/Prototypes/DeltaV/Flavors/flavors.yml b/Resources/Prototypes/DeltaV/Flavors/flavors.yml index 9ed9b3003f4..3dc68673b0d 100644 --- a/Resources/Prototypes/DeltaV/Flavors/flavors.yml +++ b/Resources/Prototypes/DeltaV/Flavors/flavors.yml @@ -121,6 +121,232 @@ flavorType: Complex description: flavor-complex-blellow +#Delta-V additional drink flavors +- type: flavor + id: absinthe + flavorType: Complex + description: flavor-complex-absinthe + +- type: flavor + id: blue-curacao + flavorType: Complex + description: flavor-complex-blue-curacao + +- type: flavor + id: deadrum + flavorType: Complex + description: flavor-complex-deadrum + +- type: flavor + id: n-t-cahors + flavorType: Complex + description: flavor-complex-n-t-cahors + +- type: flavor + id: poison-wine + flavorType: Complex + description: flavor-complex-poison-wine + +- type: flavor + id: acidspit + flavorType: Complex + description: flavor-complex-acidspit + +- type: flavor + id: allies-cocktail + flavorType: Complex + description: flavor-complex-allies-cocktail + +- type: flavor + id: amasec + flavorType: Complex + description: flavor-complex-amasec + +- type: flavor + id: andalusia + flavorType: Complex + description: flavor-complex-andalusia + +- type: flavor + id: b52 + flavorType: Complex + description: flavor-complex-b52 + +- type: flavor + id: bahama-mama + flavorType: Complex + description: flavor-complex-bahama-mama + +- type: flavor + id: barefoot + flavorType: Complex + description: flavor-complex-barefoot + +- type: flavor + id: booger + flavorType: Complex + description: flavor-complex-booger + +- type: flavor + id: brave-bull + flavorType: Complex + description: flavor-complex-brave-bull + +- type: flavor + id: demons-blood + flavorType: Complex + description: flavor-complex-demons-blood + +- type: flavor + id: devils-kiss + flavorType: Complex + description: flavor-complex-devils-kiss + +- type: flavor + id: doctors-delight + flavorType: Complex + description: flavor-complex-doctors-delight + +- type: flavor + id: driest-martini + flavorType: Complex + description: flavor-complex-driest-martini + +- type: flavor + id: erika-surprise + flavorType: Complex + description: flavor-complex-erika-surprise + +- type: flavor + id: gin-fizz + flavorType: Complex + description: flavor-complex-gin-fizz + +- type: flavor + id: gildlager + flavorType: Complex + description: flavor-complex-gildlager + +- type: flavor + id: grog + flavorType: Complex + description: flavor-complex-grog + +- type: flavor + id: hippies-delight + flavorType: Complex + description: flavor-complex-hippies-delight + +- type: flavor + id: hooch + flavorType: Complex + description: flavor-complex-hooch + +- type: flavor + id: irish-cream + flavorType: Complex + description: flavor-complex-irish-cream + +- type: flavor + id: kira-special + flavorType: Complex + description: flavor-complex-kira-special + +- type: flavor + id: manhattan + flavorType: Complex + description: flavor-complex-manhattan + +- type: flavor + id: manhattan-project + flavorType: Complex + description: flavor-complex-manhattan-project + +- type: flavor + id: margarita + flavorType: Complex + description: flavor-complex-margarita + +- type: flavor + id: martini + flavorType: Complex + description: flavor-complex-martini + +- type: flavor + id: mojito + flavorType: Complex + description: flavor-complex-mojito + +- type: flavor + id: neurotoxin + flavorType: Complex + description: flavor-complex-neurotoxin + +- type: flavor + id: patron + flavorType: Complex + description: flavor-complex-patron + +- type: flavor + id: red-mead + flavorType: Complex + description: flavor-complex-red-mead + +- type: flavor + id: rewriter + flavorType: Complex + description: flavor-complex-rewriter + +- type: flavor + id: sbiten + flavorType: Complex + description: flavor-complex-sbiten + +- type: flavor + id: silencer + flavorType: Complex + description: flavor-complex-silencer + +- type: flavor + id: snow-white + flavorType: Complex + description: flavor-complex-snow-white + +- type: flavor + id: sui-dream + flavorType: Complex + description: flavor-complex-sui-dream + +- type: flavor + id: syndicate-bomb + flavorType: Complex + description: flavor-complex-syndicate-bomb + +- type: flavor + id: toxins-special + flavorType: Complex + description: flavor-complex-toxins-special + +- type: flavor + id: vodka-martini + flavorType: Complex + description: flavor-complex-vodka-martini + +- type: flavor + id: vodka-tonic + flavorType: Complex + description: flavor-complex-vodka-tonic + +- type: flavor + id: kvass + flavorType: Complex + description: flavor-complex-kvass + +- type: flavor + id: mothamphetamine + flavorType: Complex + description: flavor-complex-mothamphetamine + - type: flavor id: drgibbbloodred flavorType: Complex diff --git a/Resources/Prototypes/DeltaV/Reagents/Consumable/Drink/drinks.yml b/Resources/Prototypes/DeltaV/Reagents/Consumable/Drink/drinks.yml index d2e297f926a..ff847f2ac8b 100644 --- a/Resources/Prototypes/DeltaV/Reagents/Consumable/Drink/drinks.yml +++ b/Resources/Prototypes/DeltaV/Reagents/Consumable/Drink/drinks.yml @@ -171,7 +171,7 @@ parent: BaseDrink desc: reagent-desc-kvass physicalDesc: reagent-physical-desc-bubbly - flavor: bread + flavor: kvass #Delta-V Flavor additions color: "#381600" metamorphicSprite: sprite: DeltaV/Objects/Consumable/Drinks/kvass.rsi @@ -186,7 +186,7 @@ parent: BaseDrink desc: reagent-desc-mothamphetamine physicalDesc: reagent-physical-desc-fuzzy - flavor: cotton + flavor: mothamphetamine #Delta-V Flavor additions color: "#2fa1ef" metamorphicSprite: sprite: DeltaV/Objects/Consumable/Drinks/mothamphetamine.rsi diff --git a/Resources/Prototypes/Reagents/Consumable/Drink/alcohol.yml b/Resources/Prototypes/Reagents/Consumable/Drink/alcohol.yml index 6617791a633..47e1371a41f 100644 --- a/Resources/Prototypes/Reagents/Consumable/Drink/alcohol.yml +++ b/Resources/Prototypes/Reagents/Consumable/Drink/alcohol.yml @@ -7,7 +7,7 @@ parent: BaseAlcohol desc: reagent-desc-absinthe physicalDesc: reagent-physical-desc-strong-smelling - flavor: alcohol + flavor: absinthe #Delta-V Flavor additions color: "#33EE00" metamorphicSprite: sprite: Objects/Consumable/Drinks/absintheglass.rsi @@ -64,7 +64,7 @@ parent: BaseAlcohol desc: reagent-desc-blue-curacao physicalDesc: reagent-physical-desc-strong-smelling - flavor: alcohol + flavor: blue-curacao #Delta-V Flavor additions color: "#0099FF" metamorphicSprite: sprite: Objects/Consumable/Drinks/thin_glass.rsi @@ -131,7 +131,7 @@ parent: BaseAlcohol desc: reagent-desc-dead-rum physicalDesc: reagent-physical-desc-strong-smelling - flavor: rum + flavor: deadrum #Delta-V Flavor additions color: "#664300" metamorphicSprite: sprite: Objects/Consumable/Drinks/rumglass.rsi @@ -264,7 +264,7 @@ parent: BaseAlcohol desc: reagent-desc-n-t-cahors physicalDesc: reagent-physical-desc-strong-smelling - flavor: bitter + flavor: n-t-cahors #Delta-V Flavor additions color: "#7E4043" metamorphicSprite: sprite: Objects/Consumable/Drinks/wineglass.rsi @@ -279,7 +279,7 @@ parent: BaseAlcohol desc: reagent-desc-poison-wine physicalDesc: reagent-physical-desc-strong-smelling - flavor: bitter + flavor: poison-wine #Delta-V Flavor additions color: "#990066" metamorphicSprite: sprite: Objects/Consumable/Drinks/pwineglass.rsi @@ -471,7 +471,7 @@ parent: BaseAlcohol desc: reagent-desc-acid-spit physicalDesc: reagent-physical-desc-strong-smelling - flavor: alcohol + flavor: acidspit #Delta-V Flavor additions color: "#365000" metamorphicSprite: sprite: Objects/Consumable/Drinks/acidspitglass.rsi @@ -486,7 +486,7 @@ parent: BaseAlcohol desc: reagent-desc-allies-cocktail physicalDesc: reagent-physical-desc-strong-smelling - flavor: alcohol + flavor: allies-cocktail #Delta-V Flavor additions color: "#00664d" metamorphicSprite: sprite: Objects/Consumable/Drinks/alliescocktail.rsi @@ -516,7 +516,7 @@ parent: BaseAlcohol desc: reagent-desc-amasec physicalDesc: reagent-physical-desc-strong-smelling - flavor: alcohol + flavor: amasec #Delta-V Flavor additions color: "#124da7" metamorphicSprite: sprite: Objects/Consumable/Drinks/amasecglass.rsi @@ -531,7 +531,7 @@ parent: BaseAlcohol desc: reagent-desc-andalusia physicalDesc: reagent-physical-desc-strong-smelling - flavor: alcohol + flavor: andalusia #Delta-V Flavor additions color: "#665700" metamorphicSprite: sprite: Objects/Consumable/Drinks/andalusia.rsi @@ -595,7 +595,7 @@ parent: BaseAlcohol desc: reagent-desc-b52 physicalDesc: reagent-physical-desc-bubbly - flavor: alcohol + flavor: b52 #Delta-V Flavor additions color: "#664300" metamorphicSprite: sprite: Objects/Consumable/Drinks/b52glass.rsi @@ -618,7 +618,7 @@ parent: BaseAlcohol desc: reagent-desc-bahama-mama physicalDesc: reagent-physical-desc-strong-smelling - flavor: alcohol + flavor: bahama-mama #Delta-V Flavor additions color: "#FF7F3B" metamorphicSprite: sprite: Objects/Consumable/Drinks/bahama_mama.rsi @@ -648,7 +648,7 @@ parent: BaseAlcohol desc: reagent-desc-barefoot physicalDesc: reagent-physical-desc-strong-smelling - flavor: alcohol + flavor: barefoot #Delta-V Flavor additions color: "#ff66cc" metamorphicSprite: sprite: Objects/Consumable/Drinks/b&p.rsi @@ -725,7 +725,7 @@ parent: BaseAlcohol desc: reagent-desc-booger physicalDesc: reagent-physical-desc-strong-smelling - flavor: alcohol + flavor: booger #Delta-V Flavor additions color: "#99ff00" metamorphicSprite: sprite: Objects/Consumable/Drinks/booger.rsi @@ -740,7 +740,7 @@ parent: BaseAlcohol desc: reagent-desc-brave-bull physicalDesc: reagent-physical-desc-strong-smelling - flavor: alcohol + flavor: brave-bull #Delta-V Flavor additions color: "#664300" metamorphicSprite: sprite: Objects/Consumable/Drinks/bravebullglass.rsi @@ -827,7 +827,7 @@ parent: BaseAlcohol desc: reagent-desc-demons-blood physicalDesc: reagent-physical-desc-strong-smelling - flavor: alcohol + flavor: demons-blood #Delta-V Flavor additions color: "#a70000" metamorphicSprite: sprite: Objects/Consumable/Drinks/demonsblood.rsi @@ -843,7 +843,7 @@ parent: BaseAlcohol desc: reagent-desc-devils-kiss physicalDesc: reagent-physical-desc-strong-smelling - flavor: alcohol + flavor: devils-kiss #Delta-V Flavor additions color: "#ff0033" metamorphicSprite: sprite: Objects/Consumable/Drinks/devilskiss.rsi @@ -858,7 +858,7 @@ parent: BaseDrink desc: reagent-desc-doctors-delight physicalDesc: reagent-physical-desc-strong-smelling - flavor: medicine + flavor: doctors-delight #Delta-V Flavor additions color: "#FF8CFF" metamorphicSprite: sprite: Objects/Consumable/Drinks/doctorsdelightglass.rsi @@ -890,7 +890,7 @@ parent: BaseAlcohol desc: reagent-desc-driest-martini physicalDesc: reagent-physical-desc-strong-smelling - flavor: alcohol + flavor: driest-martini #Delta-V Flavor additions color: "#2E6671" metamorphicSprite: sprite: Objects/Consumable/Drinks/driestmartiniglass.rsi @@ -913,7 +913,7 @@ parent: BaseAlcohol desc: reagent-desc-erika-surprise physicalDesc: reagent-physical-desc-strong-smelling - flavor: alcohol + flavor: erika-surprise #Delta-V Flavor additions color: "#67bc50" metamorphicSprite: sprite: Objects/Consumable/Drinks/beerstein.rsi @@ -952,7 +952,7 @@ parent: BaseAlcohol desc: reagent-desc-gin-fizz physicalDesc: reagent-physical-desc-strong-smelling - flavor: alcohol + flavor: gin-fizz #Delta-V Flavor additions color: "#664300" metamorphicSprite: sprite: Objects/Consumable/Drinks/ginfizzglass.rsi @@ -1000,7 +1000,7 @@ parent: BaseAlcohol desc: reagent-desc-gildlager physicalDesc: reagent-physical-desc-strong-smelling - flavor: alcohol + flavor: gildlager #Delta-V Flavor additions color: "#FFFF91" metamorphicSprite: sprite: Objects/Consumable/Drinks/gildlagerglass.rsi @@ -1023,7 +1023,7 @@ parent: BaseAlcohol desc: reagent-desc-grog physicalDesc: reagent-physical-desc-strong-smelling - flavor: alcohol + flavor: grog #Delta-V Flavor additions color: "#e3e77b" metamorphicSprite: sprite: Objects/Consumable/Drinks/beerstein.rsi @@ -1038,7 +1038,7 @@ parent: BaseAlcohol desc: reagent-desc-hippies-delight physicalDesc: reagent-physical-desc-strong-smelling - flavor: alcohol + flavor: hippies-delight #Delta-V Flavor additions color: "#6eaa0c" metamorphicSprite: sprite: Objects/Consumable/Drinks/hippiesdelightglass.rsi @@ -1053,7 +1053,7 @@ parent: BaseAlcohol desc: reagent-desc-hooch physicalDesc: reagent-physical-desc-strong-smelling - flavor: alcohol + flavor: hooch #Delta-V Flavor additions color: "#664e00" - type: reagent @@ -1101,7 +1101,7 @@ parent: BaseAlcohol desc: reagent-desc-irish-cream physicalDesc: reagent-physical-desc-creamy - flavor: creamy + flavor: irish-cream #Delta-V Flavor additions color: "#664300" metamorphicSprite: sprite: Objects/Consumable/Drinks/irishcreamglass.rsi @@ -1170,7 +1170,7 @@ parent: BaseAlcohol desc: reagent-desc-manhattan physicalDesc: reagent-physical-desc-strong-smelling - flavor: alcohol + flavor: manhattan #Delta-V Flavor additions color: "#664300" metamorphicSprite: sprite: Objects/Consumable/Drinks/manhattanglass.rsi @@ -1185,7 +1185,7 @@ parent: BaseAlcohol desc: reagent-desc-manhattan-project physicalDesc: reagent-physical-desc-strong-smelling - flavor: alcohol + flavor: manhattan-project #Delta-V Flavor additions color: "#664300" metamorphicSprite: sprite: Objects/Consumable/Drinks/proj_manhattanglass.rsi @@ -1216,7 +1216,7 @@ parent: BaseAlcohol desc: reagent-desc-margarita physicalDesc: reagent-physical-desc-strong-smelling - flavor: alcohol + flavor: margarita #Delta-V Flavor additions color: "#8CFF8C" metamorphicSprite: sprite: Objects/Consumable/Drinks/margaritaglass.rsi @@ -1231,7 +1231,7 @@ parent: BaseAlcohol desc: reagent-desc-martini physicalDesc: reagent-physical-desc-strong-smelling - flavor: alcohol + flavor: martini #Delta-V Flavor additions color: "#664300" metamorphicSprite: sprite: Objects/Consumable/Drinks/martiniglass.rsi @@ -1270,7 +1270,7 @@ parent: BaseAlcohol desc: reagent-desc-mojito physicalDesc: reagent-physical-desc-strong-smelling - flavor: alcohol + flavor: mojito #Delta-V Flavor additions color: "#3ea99888" metamorphicSprite: sprite: Objects/Consumable/Drinks/mojito.rsi @@ -1309,7 +1309,7 @@ parent: BaseAlcohol desc: reagent-desc-neurotoxin physicalDesc: reagent-physical-desc-strong-smelling - flavor: alcohol + flavor: neurotoxin #Delta-V Flavor additions color: "#2E2E61" metamorphicSprite: sprite: Objects/Consumable/Drinks/neurotoxinglass.rsi @@ -1358,7 +1358,7 @@ parent: BaseAlcohol desc: reagent-desc-patron physicalDesc: reagent-physical-desc-metallic - flavor: alcohol + flavor: patron #Delta-V Flavor additions color: "#585840" metamorphicSprite: sprite: Objects/Consumable/Drinks/patronglass.rsi @@ -1381,7 +1381,7 @@ parent: BaseAlcohol desc: reagent-desc-red-mead physicalDesc: reagent-physical-desc-strong-smelling - flavor: alcohol + flavor: red-mead #Delta-V Flavor additions color: "#bc5550" metamorphicSprite: sprite: Objects/Consumable/Drinks/beerstein.rsi @@ -1409,7 +1409,7 @@ parent: BaseAlcohol desc: reagent-desc-sbiten physicalDesc: reagent-physical-desc-strong-smelling - flavor: alcohol + flavor: sbiten #Delta-V Flavor additions color: "#004166" metamorphicSprite: sprite: Objects/Consumable/Drinks/sbitenglass.rsi @@ -1473,7 +1473,7 @@ parent: BaseAlcohol desc: reagent-desc-silencer physicalDesc: reagent-physical-desc-strong-smelling - flavor: nothing + flavor: silencer #Delta-V Flavor additions color: "#878787" metamorphicSprite: sprite: Objects/Consumable/Drinks/silencerglass.rsi @@ -1511,7 +1511,7 @@ parent: BaseAlcohol desc: reagent-desc-snow-white physicalDesc: reagent-physical-desc-bubbly - flavor: alcohol + flavor: snow-white #Delta-V Flavor additions color: "#FFFFFF" metamorphicSprite: sprite: Objects/Consumable/Drinks/snowwhite.rsi @@ -1527,7 +1527,7 @@ parent: BaseAlcohol desc: reagent-desc-sui-dream physicalDesc: reagent-physical-desc-strong-smelling - flavor: alcohol + flavor: sui-dream #Delta-V Flavor additions color: "#00A86B" metamorphicSprite: sprite: Objects/Consumable/Drinks/sdreamglass.rsi @@ -1543,7 +1543,7 @@ parent: BaseAlcohol desc: reagent-desc-syndicate-bomb physicalDesc: reagent-physical-desc-opaque - flavor: syndiebomb + flavor: syndicate-bomb #Delta-V Flavor additions color: "#e3e77b" metamorphicSprite: sprite: Objects/Consumable/Drinks/syndicatebomb.rsi @@ -1624,7 +1624,7 @@ parent: BaseAlcohol desc: reagent-desc-toxins-special physicalDesc: reagent-physical-desc-strong-smelling - flavor: alcohol + flavor: toxins-special #Delta-V Flavor additions color: "#665c00" metamorphicSprite: sprite: Objects/Consumable/Drinks/toxinsspecialglass.rsi @@ -1639,7 +1639,7 @@ parent: BaseAlcohol desc: reagent-desc-vodka-martini physicalDesc: reagent-physical-desc-strong-smelling - flavor: alcohol + flavor: vodka-martini #Delta-V Flavor additions color: "#004666" metamorphicSprite: sprite: Objects/Consumable/Drinks/martiniglass.rsi @@ -1662,7 +1662,7 @@ parent: BaseAlcohol desc: reagent-desc-vodka-tonic physicalDesc: reagent-physical-desc-strong-smelling - flavor: alcohol + flavor: vodka-tonic #Delta-V Flavor additions color: "#0064C8" metamorphicSprite: sprite: Objects/Consumable/Drinks/gintonicglass.rsi # they look the same diff --git a/Resources/Prototypes/Reagents/Consumable/Drink/drinks.yml b/Resources/Prototypes/Reagents/Consumable/Drink/drinks.yml index 3f9fb7b53d2..ad680a5fbcc 100644 --- a/Resources/Prototypes/Reagents/Consumable/Drink/drinks.yml +++ b/Resources/Prototypes/Reagents/Consumable/Drink/drinks.yml @@ -562,7 +562,7 @@ parent: BaseDrink desc: reagent-desc-rewriter physicalDesc: reagent-physical-desc-strong-smelling - flavor: sweet + flavor: rewriter #Delta-V Flavor additions color: "#485000" metamorphicSprite: sprite: Objects/Consumable/Drinks/beerstein.rsi From 2b70beec0c9844252f4200ddddab38f480347eac Mon Sep 17 00:00:00 2001 From: Michelle Szinger Date: Fri, 20 Dec 2024 11:49:04 -0700 Subject: [PATCH 60/76] Psychologist Loadout Improvements (#2459) * Add new sprites for alternative psychologist PDAs * Add localizations for alternative psychologist job names * Add localizations for additional psychologist loadout groups * Expand psychologist loadout options Adds three new alternative job title PDAs: - Psychiatrist - Therapist (req. 4hrs psych) - Social Worker (req. 4hrs service) Adds head, outer clothing, scarf, and shoe loadout groups to the psychologist. Adds a blue folder to the psychologist's starting equipment. * Restore erroneous whitespace I hate YAML. This whitespace should not exist, but removing it would cause merge conflicts or something equally stupid. Signed-off-by: Michelle Szinger * Restore erroneous trailing whitespace I hate YAML. This whitespace should not exist, but its removal would lead to merge conflicts or diff messiness or other such nonsense, so. Signed-off-by: Michelle Szinger * Remove erroneously restored erroneous whitespace This one is actually my bad. Apologies. Signed-off-by: Michelle Szinger * De-dent erroneously indented lines I hate YAML. Not even sure how this particular mistake happened, but I hate YAML. Note to self: stop using Rider for YAML changes. --------- Signed-off-by: Michelle Szinger --- .../Locale/en-US/deltav/job/job-names.ftl | 4 + .../deltav/preferences/loadout-groups.ftl | 5 ++ .../DeltaV/Entities/Objects/Devices/pda.yml | 32 ++++++++ .../Objects/Misc/identification_cards.yml | 26 ++++++ .../Loadouts/Jobs/Medical/psychologist.yml | 74 ++++++++++++++++++ .../DeltaV/Loadouts/loadout_groups.yml | 41 ++++++++++ .../Prototypes/Loadouts/role_loadouts.yml | 5 ++ .../Roles/Jobs/Wildcards/psychologist.yml | 5 +- .../DeltaV/Objects/Devices/pda.rsi/meta.json | 11 ++- .../Devices/pda.rsi/pda-psychiatrist.png | Bin 0 -> 460 bytes .../Devices/pda.rsi/pda-socialworker.png | Bin 0 -> 730 bytes .../Objects/Devices/pda.rsi/pda-therapist.png | Bin 0 -> 508 bytes 12 files changed, 200 insertions(+), 3 deletions(-) create mode 100644 Resources/Prototypes/DeltaV/Loadouts/Jobs/Medical/psychologist.yml create mode 100644 Resources/Textures/DeltaV/Objects/Devices/pda.rsi/pda-psychiatrist.png create mode 100644 Resources/Textures/DeltaV/Objects/Devices/pda.rsi/pda-socialworker.png create mode 100644 Resources/Textures/DeltaV/Objects/Devices/pda.rsi/pda-therapist.png diff --git a/Resources/Locale/en-US/deltav/job/job-names.ftl b/Resources/Locale/en-US/deltav/job/job-names.ftl index e08645c5ea6..90307cc2d61 100644 --- a/Resources/Locale/en-US/deltav/job/job-names.ftl +++ b/Resources/Locale/en-US/deltav/job/job-names.ftl @@ -55,6 +55,10 @@ job-alt-title-fool = Fool job-alt-title-hygiene-technician = Hygiene Technician +job-alt-title-psychiatrist = Psychiatrist +job-alt-title-social-worker = Social Worker +job-alt-title-therapist = Therapist + # Role timers JobMedicalBorg = Medical Cyborg JobCourier = Courier diff --git a/Resources/Locale/en-US/deltav/preferences/loadout-groups.ftl b/Resources/Locale/en-US/deltav/preferences/loadout-groups.ftl index 9d0b06d8804..f761cd45830 100644 --- a/Resources/Locale/en-US/deltav/preferences/loadout-groups.ftl +++ b/Resources/Locale/en-US/deltav/preferences/loadout-groups.ftl @@ -62,6 +62,11 @@ loadout-group-medical-doctor-neck = Medical Doctor neck loadout-group-medical-intern-id-delta = Medical Intern PDA +loadout-group-psychologist-head = Psychologist head +loadout-group-psychologist-outerclothing = Psychologist outer clothing +loadout-group-psychologist-shoes = Psychologist shoes +loadout-group-psychologist-id-delta = Psychologist PDA + # Miscellaneous loadout-group-scarfs = Scarf diff --git a/Resources/Prototypes/DeltaV/Entities/Objects/Devices/pda.yml b/Resources/Prototypes/DeltaV/Entities/Objects/Devices/pda.yml index 8b4478d804c..a9ddeb881da 100644 --- a/Resources/Prototypes/DeltaV/Entities/Objects/Devices/pda.yml +++ b/Resources/Prototypes/DeltaV/Entities/Objects/Devices/pda.yml @@ -310,6 +310,38 @@ id: ClinicianIDCard state: pda-phys # - aPDA Sprite Rework +# Psychologist + +- type: entity + parent: PsychologistPDA + id: PsychiatristPDA + name: psychiatrist PDA + description: Sterile-smelling and neutrally colored. + components: + - type: Pda + id: PsychiatristIDCard + state: pda-psychiatrist + +- type: entity + parent: PsychologistPDA + id: TherapistPDA + name: therapist PDA + description: Covered in a rubberized case in a reassuring shade of brown. + components: + - type: Pda + id: TherapistIDCard + state: pda-therapist + +- type: entity + parent: PsychologistPDA + id: SocialWorkerPDA + name: social worker PDA + description: Dented and scratched. It's been well-used. + components: + - type: Pda + id: SocialWorkerIDCard + state: pda-socialworker + # Atmospherics Technician - type: entity diff --git a/Resources/Prototypes/DeltaV/Entities/Objects/Misc/identification_cards.yml b/Resources/Prototypes/DeltaV/Entities/Objects/Misc/identification_cards.yml index 8c93b96d4e6..47449201b6a 100644 --- a/Resources/Prototypes/DeltaV/Entities/Objects/Misc/identification_cards.yml +++ b/Resources/Prototypes/DeltaV/Entities/Objects/Misc/identification_cards.yml @@ -150,6 +150,32 @@ - type: IdCard jobTitle: job-alt-title-clinician +# Psychologist + +- type: entity + parent: PsychologistIDCard + id: PsychiatristIDCard + name: psychiatrist ID card + components: + - type: IdCard + jobTitle: job-alt-title-psychiatrist + +- type: entity + parent: PsychologistIDCard + id: TherapistIDCard + name: therapist ID card + components: + - type: IdCard + jobTitle: job-alt-title-therapist + +- type: entity + parent: PsychologistIDCard + id: SocialWorkerIDCard + name: social worker ID card + components: + - type: IdCard + jobTitle: job-alt-title-social-worker + # Atmospheric Technician - type: entity diff --git a/Resources/Prototypes/DeltaV/Loadouts/Jobs/Medical/psychologist.yml b/Resources/Prototypes/DeltaV/Loadouts/Jobs/Medical/psychologist.yml new file mode 100644 index 00000000000..c7e252151ca --- /dev/null +++ b/Resources/Prototypes/DeltaV/Loadouts/Jobs/Medical/psychologist.yml @@ -0,0 +1,74 @@ +# PDA +- type: loadout + id: PsychologistPDA + equipment: + id: PsychologistPDA + +- type: loadout + id: PsychiatristPDA + equipment: + id: PsychiatristPDA + +- type: loadout + id: TherapistPDA + equipment: + id: TherapistPDA + effects: + - !type:JobRequirementLoadoutEffect + requirement: + !type:RoleTimeRequirement + role: JobPsychologist + time: 14400 # 4 hours psychologist + +- type: loadout + id: SocialWorkerPDA + equipment: + id: SocialWorkerPDA + effects: + - !type:JobRequirementLoadoutEffect + requirement: + !type:DepartmentTimeRequirement + department: Civilian + time: 14400 # 4 hours service + +# Head +- type: loadout + id: PsychologistFrenchBeret + equipment: + head: ClothingHeadHatBeretFrench + +- type: loadout + id: PsychologistGreyFlatcap + equipment: + head: ClothingHeadHatGreyFlatcap + +- type: loadout + id: PsychologistBrownFlatcap + equipment: + head: ClothingHeadHatBrownFlatcap + +# OuterClothing +- type: loadout + id: PsychologistMedicalWinterCoat + equipment: + outerClothing: ClothingOuterWinterMed + +- type: loadout + id: PsychologistWinterCoat + equipment: + outerClothing: ClothingOuterWinterCoat + +- type: loadout + id: PsychologistWinterCoatPlaid + equipment: + outerClothing: ClothingOuterWinterCoatPlaid + +- type: loadout + id: PsychologistCoatBomber + equipment: + outerClothing: ClothingOuterCoatBomber + +- type: loadout + id: PsychologistSweater + equipment: + outerClothing: ClothingOuterCoatHyenhSweater diff --git a/Resources/Prototypes/DeltaV/Loadouts/loadout_groups.yml b/Resources/Prototypes/DeltaV/Loadouts/loadout_groups.yml index 8b5b827e09a..2bf3ae86d50 100644 --- a/Resources/Prototypes/DeltaV/Loadouts/loadout_groups.yml +++ b/Resources/Prototypes/DeltaV/Loadouts/loadout_groups.yml @@ -211,6 +211,38 @@ - SecurityFirearmSpeedLoaderSpecialRubber - SecurityFirearmSpeedLoaderSpecial +# Medical +## Psychologist +- type: loadoutGroup + id: PsychologistHead + name: loadout-group-psychologist-head + minLimit: 0 + loadouts: + - MedicalBeret + - PsychologistFrenchBeret + - PsychologistGreyFlatcap + - PsychologistBrownFlatcap + +- type: loadoutGroup + id: PsychologistOuterClothing + name: loadout-group-psychologist-outerclothing + minLimit: 0 + loadouts: + - PsychologistMedicalWinterCoat + - PsychologistWinterCoat + - PsychologistWinterCoatPlaid + - PsychologistCoatBomber + - PsychologistSweater + +- type: loadoutGroup + id: PsychologistShoes + name: loadout-group-psychologist-shoes + loadouts: + - LeatherShoes + - LaceupShoes + - MedicalWinterBoots + - WinterBoots + # Justice ## Chief Justice - type: loadoutGroup @@ -446,6 +478,15 @@ - JanitorPDA - HygieneTechnicianPDA +- type: loadoutGroup + id: PsychologistPDADelta + name: loadout-group-psychologist-id-delta + loadouts: + - PsychologistPDA + - PsychiatristPDA + - TherapistPDA + - SocialWorkerPDA + # Misc - type: loadoutGroup id: Scarfs diff --git a/Resources/Prototypes/Loadouts/role_loadouts.yml b/Resources/Prototypes/Loadouts/role_loadouts.yml index eb569b70225..c16fd986b07 100644 --- a/Resources/Prototypes/Loadouts/role_loadouts.yml +++ b/Resources/Prototypes/Loadouts/role_loadouts.yml @@ -547,6 +547,11 @@ - MedicalBackpack - Glasses - SurvivalMedical # DeltaV, replaces Survival + - PsychologistPDADelta # DeltaV + - PsychologistHead # DeltaV + - Scarfs # DeltaV + - PsychologistOuterClothing # DeltaV + - PsychologistShoes # DeltaV - Trinkets - GroupSpeciesBreathTool diff --git a/Resources/Prototypes/Roles/Jobs/Wildcards/psychologist.yml b/Resources/Prototypes/Roles/Jobs/Wildcards/psychologist.yml index 4e69c4a3c87..00e991a2094 100644 --- a/Resources/Prototypes/Roles/Jobs/Wildcards/psychologist.yml +++ b/Resources/Prototypes/Roles/Jobs/Wildcards/psychologist.yml @@ -22,9 +22,10 @@ - type: startingGear id: PsychologistGear equipment: - shoes: ClothingShoesLeather - id: PsychologistPDA + #shoes: ClothingShoesLeather # DeltaV: Multiple shoe options in loadout. + #id: PsychologistPDA # DeltaV: Multiple PDA options in loadout. ears: ClothingHeadsetMedical storage: back: - RubberStampPsychologist + - BoxFolderBlue # DeltaV diff --git a/Resources/Textures/DeltaV/Objects/Devices/pda.rsi/meta.json b/Resources/Textures/DeltaV/Objects/Devices/pda.rsi/meta.json index d0ac0bee150..51105a4c6de 100644 --- a/Resources/Textures/DeltaV/Objects/Devices/pda.rsi/meta.json +++ b/Resources/Textures/DeltaV/Objects/Devices/pda.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "aPDA retexture by ZweiHawke @ zweihawke.net, added Hygiene Technician version by Radezolid", + "copyright": "aPDA retexture by ZweiHawke @ zweihawke.net, added Hygiene Technician version by Radezolid, added Psychiatrist, Therapist, and Social Worker versions by alterae ", "size": { "x": 32, "y": 32 @@ -104,6 +104,9 @@ { "name": "pda-paramedic" }, + { + "name": "pda-psychiatrist" + }, { "name": "pda-mime" }, @@ -128,6 +131,9 @@ { "name": "pda-security" }, + { + "name": "pda-socialworker" + }, { "name": "pda-brigmedic" }, @@ -137,6 +143,9 @@ { "name": "pda-syndi-agent" }, + { + "name": "pda-therapist" + }, { "name": "pda-centcom" }, diff --git a/Resources/Textures/DeltaV/Objects/Devices/pda.rsi/pda-psychiatrist.png b/Resources/Textures/DeltaV/Objects/Devices/pda.rsi/pda-psychiatrist.png new file mode 100644 index 0000000000000000000000000000000000000000..fae856a2e1069a6f551f28169ee152a4dd40d3de GIT binary patch literal 460 zcmV;-0WPx$hDk(0R9J=W*Re{&Kpe;MZ^fw)F-uU8Zh=B;eG4gZcgqtvck(GZ^a=V5Rw&Ny zt+f=2OXwi!P%%=$B@WV3;@#zvOSrAUO<7$_5Av?eS9Azc-R^AV2Q zqTT7{?i`?Ud`hTT6)TtJ0L$eP$8B+PbIBQS1iS+a;I%g-oR4wbmhz~I5-=I`X?p%o zC%qwKMUl6~3&5}A?hZ+mLbhg`V!QeJ{MfctTeEM3f8;l(Y(;$l0000Px%lu1NER9J=WmoZP zm9zL(T@A-`BjfFz1}hb_p9YZ%AcMdA@DqSqt;YHJIlk`$AcO$Gwr%`Ruj97whxV(r zCp5l%PmOUW3*eV;h2vJMMWIl@G)(|3Yw)byZeyBes;yEYK)>Jb%lt+)3SrxJEU45d zM3S#efM&DF;c++d4^ar;_hU1+ZTr$nsFVm$uh%ECs7F^qDk&Y;0${k!mQ0ZeAp=;J zb+a{qB5zWbWidZLuPn@K0pyVoB9;zK(llV{r5ea=M0phi z0YMOi%}Po(qgw}%YPDJrsfAmwfh^_8e=dONEJ~%4(xKcLNqr(o$`nW^LI`@jp3_WF~P6Bt%{wB=@L>=lSYc%BEt73g$2 zS2}jb0wCp^Fwe28Nnpe; z&mDK*++&whcOQULcc1CX!_eN|I?4pN($y?Y{_@(T-+J8voa$=!7c)B%MkdAr>i_@% M07*qoM6N<$f@o_^VE_OC literal 0 HcmV?d00001 diff --git a/Resources/Textures/DeltaV/Objects/Devices/pda.rsi/pda-therapist.png b/Resources/Textures/DeltaV/Objects/Devices/pda.rsi/pda-therapist.png new file mode 100644 index 0000000000000000000000000000000000000000..9de90f1914adc750c25ffecfb497bf91366673d5 GIT binary patch literal 508 zcmVPx$wn;=mR9J=W*F8(aKp4RBzb}iGhyfKUrHGhPC^#sHqq}4J8R}XP9Q*=0)^Fek zaHylRiwITPp%jA-H7Hb}Vx&cvIP?YD<}OK-bkS!??w;hiU)sBHf&cjHF(pf;5{lhB zUtO9LUN^IMG}6~F$^d+qi#(W?a2#QxH+Vj)$&3J8Yp23o=|l$*B4%ZU^I47K^Ctk( z=`^iY3(K+qXf~SwB$G+3%Y(tTW%b)ReTU-Jt#FKK*T?HdtyUuzi=ikA0II42P_Nff z6h+u}3rB!$+qTnxJ}yEwe;fhTYE^iHUxZsY0y3G5banVaj0Nx#UJ;Q2!a@WBctJ!C za6?Q4AVW+HFfJlgfDm9%Oy;Nr#TQMBG8^N41{o3{PNxgAg6B+W#)n9fu8#Mp>Tk;w=;^}TD}1N z0!n9lZ4~ZE01Ln;U; Date: Fri, 20 Dec 2024 19:49:23 +0100 Subject: [PATCH 61/76] Automatic changelog update --- Resources/Changelog/DeltaVChangelog.yml | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/Resources/Changelog/DeltaVChangelog.yml b/Resources/Changelog/DeltaVChangelog.yml index 6e9e12986c2..462774dcb88 100644 --- a/Resources/Changelog/DeltaVChangelog.yml +++ b/Resources/Changelog/DeltaVChangelog.yml @@ -1,11 +1,4 @@ Entries: -- author: deltanedas - changes: - - message: Lighthouse is BACK! - type: Add - id: 303 - time: '2024-04-09T07:49:38.080495+00:00' - url: null - author: Adrian16199 changes: - message: Added new horn designs for onis. @@ -3821,3 +3814,14 @@ id: 802 time: '2024-12-20T17:22:58.0000000+00:00' url: https://github.com/DeltaV-Station/Delta-v/pull/2483 +- author: alterae + changes: + - message: Added coats, hats, scarves, and shoes to the Psychologist's loadout options. + type: Add + - message: Added three new Psychologist job titles. + type: Add + - message: Psychologist now spawns with a folder. + type: Tweak + id: 803 + time: '2024-12-20T18:49:04.0000000+00:00' + url: https://github.com/DeltaV-Station/Delta-v/pull/2459 From 10e21da9dd877f82880de6fd526e01c87edf4f0d Mon Sep 17 00:00:00 2001 From: Stop-Signs Date: Fri, 20 Dec 2024 22:02:54 -0600 Subject: [PATCH 62/76] Reduce amount of chef jobs on hive (#2492) Update hive.yml --- Resources/Prototypes/Maps/hive.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Resources/Prototypes/Maps/hive.yml b/Resources/Prototypes/Maps/hive.yml index 9dbf90693ae..d286e879772 100644 --- a/Resources/Prototypes/Maps/hive.yml +++ b/Resources/Prototypes/Maps/hive.yml @@ -53,7 +53,7 @@ Bartender: [ 2, 2 ] Botanist: [ 2, 3 ] Boxer: [ 2, 2 ] - Chef: [ 2, 3 ] + Chef: [ 1, 2 ] Clown: [ 1, 2 ] HeadOfPersonnel: [ 1, 1 ] Janitor: [ 2, 3 ] From 440a15e59be2afd7d1e64ddec3e575015fa59908 Mon Sep 17 00:00:00 2001 From: Lyndomen <49795619+Lyndomen@users.noreply.github.com> Date: Sat, 21 Dec 2024 01:29:06 -0500 Subject: [PATCH 63/76] Revert "disable vent fauna events (#2474)" (#2491) This reverts commit 90bba4fafa101e193587a824e4841b2007e722b9. --- Resources/Prototypes/GameRules/events.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Resources/Prototypes/GameRules/events.yml b/Resources/Prototypes/GameRules/events.yml index 3ef440f531a..b22bc621c80 100644 --- a/Resources/Prototypes/GameRules/events.yml +++ b/Resources/Prototypes/GameRules/events.yml @@ -20,11 +20,11 @@ - id: MouseMigration - id: PowerGridCheck #- id: RandomSentience # DeltaV - replaced with RandomSentienceGlimmer - #- id: SlimesSpawn # DeltaV - disabled hostile fauna events + - id: SlimesSpawn - id: SolarFlare - #- id: SnakeSpawn # DeltaV - #- id: SpiderClownSpawn # DeltaV - #- id: SpiderSpawn # DeltaV + - id: SnakeSpawn + - id: SpiderClownSpawn + - id: SpiderSpawn - id: VentClog - type: entityTable From aa651e7462c06cb4c51a8a0b310ecbef60d9853c Mon Sep 17 00:00:00 2001 From: Delta-V bot <135767721+DeltaV-Bot@users.noreply.github.com> Date: Sat, 21 Dec 2024 07:29:25 +0100 Subject: [PATCH 64/76] Automatic changelog update --- Resources/Changelog/DeltaVChangelog.yml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/Resources/Changelog/DeltaVChangelog.yml b/Resources/Changelog/DeltaVChangelog.yml index 462774dcb88..f392b7a3a1e 100644 --- a/Resources/Changelog/DeltaVChangelog.yml +++ b/Resources/Changelog/DeltaVChangelog.yml @@ -1,11 +1,4 @@ Entries: -- author: Adrian16199 - changes: - - message: Added new horn designs for onis. - type: Add - id: 304 - time: '2024-04-09T07:49:38.080864+00:00' - url: null - author: FluffiestFloof changes: - message: Fixed our custom drinks not having different fill levels. @@ -3825,3 +3818,10 @@ id: 803 time: '2024-12-20T18:49:04.0000000+00:00' url: https://github.com/DeltaV-Station/Delta-v/pull/2459 +- author: Lyndomen + changes: + - message: Vent critters are back, thanks for your feedback! + type: Tweak + id: 804 + time: '2024-12-21T06:29:07.0000000+00:00' + url: https://github.com/DeltaV-Station/Delta-v/pull/2491 From a7b0f2108990073a26dc045b8850db5128ba67b1 Mon Sep 17 00:00:00 2001 From: Radezolid Date: Sat, 21 Dec 2024 08:02:51 -0300 Subject: [PATCH 65/76] Nerfed E-Shield (#2252) * Changes * Forgor comments * My brain is smooth * Extra smooth brain --------- Co-authored-by: Tad "Taddy" Johnson <120885811+TadJohnson00@users.noreply.github.com> --- .../Prototypes/Entities/Objects/Shields/shields.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Resources/Prototypes/Entities/Objects/Shields/shields.yml b/Resources/Prototypes/Entities/Objects/Shields/shields.yml index 3bd4a89d532..235d51b8167 100644 --- a/Resources/Prototypes/Entities/Objects/Shields/shields.yml +++ b/Resources/Prototypes/Entities/Objects/Shields/shields.yml @@ -418,7 +418,7 @@ color: blue - type: ItemTogglePointLight - type: Reflect - reflectProb: 0.95 + reflectProb: 0.5 # DeltaV - Was 0.95 reflects: - Energy - type: Blocking @@ -426,8 +426,8 @@ coefficients: Blunt: 1.0 Slash: 0.9 - Piercing: 0.85 - Heat: 0.6 + Piercing: 0.7 # DeltaV - Was 0.85 + Heat: 0.5 # DeltaV - Was 0.6 activeBlockModifier: coefficients: Blunt: 1.2 @@ -444,13 +444,13 @@ thresholds: - trigger: !type:DamageTrigger - damage: 180 + damage: 380 # DeltaV - Was 180 behaviors: - !type:DoActsBehavior acts: [ "Destruction" ] - trigger: !type:DamageTrigger - damage: 100 + damage: 300 # DeltaV - Was 100 behaviors: - !type:DoActsBehavior acts: [ "Destruction" ] From 14cb4bc00d3e02f9e5c6a5d66e4281a4804c1190 Mon Sep 17 00:00:00 2001 From: Delta-V bot <135767721+DeltaV-Bot@users.noreply.github.com> Date: Sat, 21 Dec 2024 12:03:10 +0100 Subject: [PATCH 66/76] Automatic changelog update --- Resources/Changelog/DeltaVChangelog.yml | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/Resources/Changelog/DeltaVChangelog.yml b/Resources/Changelog/DeltaVChangelog.yml index f392b7a3a1e..4eb325e0f4a 100644 --- a/Resources/Changelog/DeltaVChangelog.yml +++ b/Resources/Changelog/DeltaVChangelog.yml @@ -1,11 +1,4 @@ Entries: -- author: FluffiestFloof - changes: - - message: Fixed our custom drinks not having different fill levels. - type: Fix - id: 305 - time: '2024-04-09T07:49:38.081255+00:00' - url: null - author: rosieposieeee changes: - message: Added breaching charges to the sectech for officers. @@ -3825,3 +3818,11 @@ id: 804 time: '2024-12-21T06:29:07.0000000+00:00' url: https://github.com/DeltaV-Station/Delta-v/pull/2491 +- author: Radezolid + changes: + - message: The E-Shield now has a 50% reflect chance but it's durability is 3 times + bigger. + type: Tweak + id: 805 + time: '2024-12-21T11:02:52.0000000+00:00' + url: https://github.com/DeltaV-Station/Delta-v/pull/2252 From ca18cbbd2114c9c081c9a6a916992a16dedc0783 Mon Sep 17 00:00:00 2001 From: deltanedas <39013340+deltanedas@users.noreply.github.com> Date: Sat, 21 Dec 2024 13:51:06 +0000 Subject: [PATCH 67/76] fix ash storms not doing damage (#2497) Co-authored-by: deltanedas <@deltanedas:kde.org> --- Content.Shared/Weather/SharedWeatherSystem.cs | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Content.Shared/Weather/SharedWeatherSystem.cs b/Content.Shared/Weather/SharedWeatherSystem.cs index 95c089fa10e..0c9bbf702b0 100644 --- a/Content.Shared/Weather/SharedWeatherSystem.cs +++ b/Content.Shared/Weather/SharedWeatherSystem.cs @@ -137,6 +137,10 @@ public override void Update(float frameTime) { SetState(uid, WeatherState.Starting, comp, weather, weatherProto); } + else // DeltaV: Set state to Running when it finishes the starting time + { + SetState(uid, WeatherState.Running, comp, weather, weatherProto); + } } // Run whatever code we need. From abe9d74cedde1b7240e68e07e366c9895f0b8468 Mon Sep 17 00:00:00 2001 From: Delta-V bot <135767721+DeltaV-Bot@users.noreply.github.com> Date: Sat, 21 Dec 2024 14:51:25 +0100 Subject: [PATCH 68/76] Automatic changelog update --- Resources/Changelog/DeltaVChangelog.yml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/Resources/Changelog/DeltaVChangelog.yml b/Resources/Changelog/DeltaVChangelog.yml index 4eb325e0f4a..0ccf1204cd5 100644 --- a/Resources/Changelog/DeltaVChangelog.yml +++ b/Resources/Changelog/DeltaVChangelog.yml @@ -1,11 +1,4 @@ Entries: -- author: rosieposieeee - changes: - - message: Added breaching charges to the sectech for officers. - type: Add - id: 306 - time: '2024-04-10T03:11:22.0000000+00:00' - url: https://github.com/DeltaV-Station/Delta-v/pull/1056 - author: Velcroboy changes: - message: Fixed shuttle wall deconstruction causing visual glitches! @@ -3826,3 +3819,10 @@ id: 805 time: '2024-12-21T11:02:52.0000000+00:00' url: https://github.com/DeltaV-Station/Delta-v/pull/2252 +- author: deltanedas + changes: + - message: Fixed ash storms not doing damage. + type: Fix + id: 806 + time: '2024-12-21T13:51:06.0000000+00:00' + url: https://github.com/DeltaV-Station/Delta-v/pull/2497 From 0b9ac4cbf79d563bd0037f5e338d42e39976a558 Mon Sep 17 00:00:00 2001 From: beck-thompson <107373427+beck-thompson@users.noreply.github.com> Date: Sat, 21 Dec 2024 05:51:52 -0800 Subject: [PATCH 69/76] Add kill fellow traitor objective (#2488) * add feature * opps * fixes * increase weight to 0.2 Signed-off-by: deltanedas <39013340+deltanedas@users.noreply.github.com> --------- Signed-off-by: deltanedas <39013340+deltanedas@users.noreply.github.com> Co-authored-by: deltanedas <39013340+deltanedas@users.noreply.github.com> --- .../Components/PickRandomTraitorComponent.cs | 9 +++ .../KillFellowTraitorObjectiveSystem.cs | 73 +++++++++++++++++++ .../conditions/kill-fellow-traitor.ftl | 1 + .../Prototypes/DeltaV/Objectives/traitor.yml | 14 ++++ .../Prototypes/Objectives/objectiveGroups.yml | 1 + 5 files changed, 98 insertions(+) create mode 100644 Content.Server/DeltaV/Objectives/Components/PickRandomTraitorComponent.cs create mode 100644 Content.Server/DeltaV/Objectives/Systems/KillFellowTraitorObjectiveSystem.cs create mode 100644 Resources/Locale/en-US/deltav/objectives/conditions/kill-fellow-traitor.ftl diff --git a/Content.Server/DeltaV/Objectives/Components/PickRandomTraitorComponent.cs b/Content.Server/DeltaV/Objectives/Components/PickRandomTraitorComponent.cs new file mode 100644 index 00000000000..8f870ed7738 --- /dev/null +++ b/Content.Server/DeltaV/Objectives/Components/PickRandomTraitorComponent.cs @@ -0,0 +1,9 @@ +using Content.Server.Objectives.Systems; + +namespace Content.Server.DeltaV.Objectives.Components; + +/// +/// Sets the target for to a random traitor. +/// +[RegisterComponent] +public sealed partial class PickRandomTraitorComponent : Component; diff --git a/Content.Server/DeltaV/Objectives/Systems/KillFellowTraitorObjectiveSystem.cs b/Content.Server/DeltaV/Objectives/Systems/KillFellowTraitorObjectiveSystem.cs new file mode 100644 index 00000000000..781040ddc0a --- /dev/null +++ b/Content.Server/DeltaV/Objectives/Systems/KillFellowTraitorObjectiveSystem.cs @@ -0,0 +1,73 @@ +using Content.Server.DeltaV.Objectives.Components; +using Content.Server.Objectives.Components; +using Content.Server.GameTicking.Rules; +using Content.Server.Objectives.Systems; +using Content.Shared.Objectives.Components; +using Robust.Shared.Random; + +namespace Content.Server.DeltaV.Objectives.Systems; + +/// +/// Handles the kill fellow traitor objective. +/// +public sealed class KillFellowTraitorObjectiveSystem : EntitySystem +{ + [Dependency] private readonly IRobustRandom _random = default!; + [Dependency] private readonly TargetObjectiveSystem _target = default!; + [Dependency] private readonly TraitorRuleSystem _traitorRule = default!; + + public override void Initialize() + { + base.Initialize(); + SubscribeLocalEvent(OnTraitorKillAssigned); + } + + private void OnTraitorKillAssigned(EntityUid uid, PickRandomTraitorComponent comp, ref ObjectiveAssignedEvent args) + { + if (!TryComp(uid, out var target)) + { + Log.Error($"Missing components for {uid}."); + args.Cancelled = true; + return; + } + + // Target already assigned + if (target.Target != null) + { + Log.Error($"Target already assigned for {uid}."); + args.Cancelled = true; + return; + } + + var traitors = _traitorRule.GetOtherTraitorMindsAliveAndConnected(args.Mind); + + List validTraitorMinds = []; + + // Going through each OTHER traitor + foreach (var traitor in traitors) + { + var valid = true; + // Going through each of OUR objectives. + foreach (var objective in args.Mind.Objectives) + { + // If one of OUR objectives already targets a traitor, don't add it to the list. + if (TryComp(objective, out var targetComp) && targetComp.Target == traitor.Id) + { + valid = false; + break; + } + } + if (valid) + validTraitorMinds.Add(traitor.Id); + } + + // No other traitors + if (validTraitorMinds.Count == 0) + { + args.Cancelled = true; + return; + } + + _target.SetTarget(uid, _random.Pick(validTraitorMinds), target); + } +} diff --git a/Resources/Locale/en-US/deltav/objectives/conditions/kill-fellow-traitor.ftl b/Resources/Locale/en-US/deltav/objectives/conditions/kill-fellow-traitor.ftl new file mode 100644 index 00000000000..1d043930db6 --- /dev/null +++ b/Resources/Locale/en-US/deltav/objectives/conditions/kill-fellow-traitor.ftl @@ -0,0 +1 @@ +objective-condition-traitor-kill-title = Kill fellow traitor {$targetName}, {CAPITALIZE($job)} diff --git a/Resources/Prototypes/DeltaV/Objectives/traitor.yml b/Resources/Prototypes/DeltaV/Objectives/traitor.yml index 371dbba0a71..1a45300a8f7 100644 --- a/Resources/Prototypes/DeltaV/Objectives/traitor.yml +++ b/Resources/Prototypes/DeltaV/Objectives/traitor.yml @@ -80,3 +80,17 @@ - type: TargetObjective title: objective-condition-teach-person-title - type: PickRandomPerson + +# Kill fellow traitor objective +- type: entity + parent: [BaseTraitorObjective, BaseKillObjective] + id: KillRandomTraitorObjective + description: We have reason to believe that they have begun to question the syndicate and need to be eliminated. + components: + - type: Objective + difficulty: 2 # They can easily buy weapons to defend themselves if they think something is up. + - type: TargetObjective + title: objective-condition-traitor-kill-title + - type: PickRandomTraitor + - type: KillPersonCondition + requireDead: true # Being able to leave them on the shuttle doesn't make sense when killing another traitor. diff --git a/Resources/Prototypes/Objectives/objectiveGroups.yml b/Resources/Prototypes/Objectives/objectiveGroups.yml index 19e8b908762..5d7a0947c54 100644 --- a/Resources/Prototypes/Objectives/objectiveGroups.yml +++ b/Resources/Prototypes/Objectives/objectiveGroups.yml @@ -35,6 +35,7 @@ # KillRandomPersonObjective: 1 # DeltaV Replaced for Teach Lesson TeachLessonRandomPersonObjective: 1 KillRandomHeadObjective: 0.25 + KillRandomTraitorObjective: 0.2 # DeltaV - type: weightedRandom id: TraitorObjectiveGroupState From db8cbf72106a012d12ae3a28222bff06b61c4a24 Mon Sep 17 00:00:00 2001 From: Delta-V bot <135767721+DeltaV-Bot@users.noreply.github.com> Date: Sat, 21 Dec 2024 14:52:11 +0100 Subject: [PATCH 70/76] Automatic changelog update --- Resources/Changelog/DeltaVChangelog.yml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/Resources/Changelog/DeltaVChangelog.yml b/Resources/Changelog/DeltaVChangelog.yml index 0ccf1204cd5..47727d53448 100644 --- a/Resources/Changelog/DeltaVChangelog.yml +++ b/Resources/Changelog/DeltaVChangelog.yml @@ -1,11 +1,4 @@ Entries: -- author: Velcroboy - changes: - - message: Fixed shuttle wall deconstruction causing visual glitches! - type: Fix - id: 307 - time: '2024-04-10T03:12:36.0000000+00:00' - url: https://github.com/DeltaV-Station/Delta-v/pull/1069 - author: NullWanderer changes: - message: Fixed the spare ID safe being destructible @@ -3826,3 +3819,10 @@ id: 806 time: '2024-12-21T13:51:06.0000000+00:00' url: https://github.com/DeltaV-Station/Delta-v/pull/2497 +- author: beck-thompson + changes: + - message: 'New traitor objective: Kill fellow traitor. It is rare!' + type: Add + id: 807 + time: '2024-12-21T13:51:53.0000000+00:00' + url: https://github.com/DeltaV-Station/Delta-v/pull/2488 From 6a74aa3204aac1a1e2b152c155004a70a883890b Mon Sep 17 00:00:00 2001 From: Radezolid Date: Sat, 21 Dec 2024 19:19:56 -0300 Subject: [PATCH 71/76] Add the cargo assistant job and spawner (#2453) * Add cargo assistant * Add a guidebook for the assistant * Add a PDA to the assistant + modified the color of the TA one due to similar colors to logistics * Added icon * Add spawner+ option to the departments.yml * Loadout * Added time to cargo tech * Prepare spawn for mapping * Replace error * Whitespace --------- Signed-off-by: Radezolid --- .../en-US/deltav/job/job-description.ftl | 1 + .../Locale/en-US/deltav/job/job-names.ftl | 2 + .../deltav/preferences/loadout-groups.ftl | 6 +++ .../DeltaV/Entities/Markers/Spawners/jobs.yml | 13 ++++++ .../DeltaV/Entities/Objects/Devices/pda.yml | 10 +++++ .../DeltaV/Entities/Objects/Misc/books.yml | 24 ++++++++++ .../Objects/Misc/identification_cards.yml | 13 ++++++ .../DeltaV/Loadouts/loadout_groups.yml | 41 +++++++++++++++++- .../DeltaV/Loadouts/role_loadouts.yml | 14 ++++++ .../Roles/Jobs/Cargo/cargo_assistant.yml | 18 ++++++++ .../DeltaV/Roles/play_time_trackers.yml | 3 ++ .../Prototypes/DeltaV/StatusIcon/job.yml | 8 ++++ .../Roles/Jobs/Cargo/cargo_technician.yml | 7 +++ .../Prototypes/Roles/Jobs/departments.yml | 1 + .../Misc/job_icons.rsi/CargoAssistant.png | Bin 0 -> 137 bytes .../Interface/Misc/job_icons.rsi/meta.json | 5 ++- .../Markers/jobs.rsi/cargoassistant.png | Bin 0 -> 918 bytes .../DeltaV/Markers/jobs.rsi/meta.json | 5 ++- .../DeltaV/Objects/Devices/pda.rsi/meta.json | 6 ++- .../Devices/pda.rsi/pda-cargo-assistant.png | Bin 0 -> 449 bytes .../Devices/pda.rsi/pda-interntech.png | Bin 465 -> 447 bytes .../Misc/id_cards.rsi/idcargoassistant.png | Bin 0 -> 201 bytes .../Objects/Misc/id_cards.rsi/meta.json | 5 ++- 23 files changed, 176 insertions(+), 6 deletions(-) create mode 100644 Resources/Prototypes/DeltaV/Roles/Jobs/Cargo/cargo_assistant.yml create mode 100644 Resources/Textures/DeltaV/Interface/Misc/job_icons.rsi/CargoAssistant.png create mode 100644 Resources/Textures/DeltaV/Markers/jobs.rsi/cargoassistant.png create mode 100644 Resources/Textures/DeltaV/Objects/Devices/pda.rsi/pda-cargo-assistant.png create mode 100644 Resources/Textures/DeltaV/Objects/Misc/id_cards.rsi/idcargoassistant.png diff --git a/Resources/Locale/en-US/deltav/job/job-description.ftl b/Resources/Locale/en-US/deltav/job/job-description.ftl index 37d9dfd5dc8..aeabcf5e533 100644 --- a/Resources/Locale/en-US/deltav/job/job-description.ftl +++ b/Resources/Locale/en-US/deltav/job/job-description.ftl @@ -5,3 +5,4 @@ job-description-prosecutor = Take statements from security and prepare cases aga job-description-courier = Deliver mail and other packages from and to logistics. Avoid dogs. job-description-security-borg = Purpose-built to ensure the right of every crew member to liberty, justice and freedom, ensure the peace aboard the space station by following your laws and patrolling the halls. job-description-roboticist = Fabricate borgs and other robots, repair and upgrade the station's silicon life, and scream "State Laws" when the AI takes too long to open a door. +job-description-cargo-assistant = Learn the basics of the logistics department, deliver crates and take buy orders from the rest of the station. diff --git a/Resources/Locale/en-US/deltav/job/job-names.ftl b/Resources/Locale/en-US/deltav/job/job-names.ftl index 90307cc2d61..9e1b5f818db 100644 --- a/Resources/Locale/en-US/deltav/job/job-names.ftl +++ b/Resources/Locale/en-US/deltav/job/job-names.ftl @@ -4,6 +4,7 @@ job-name-clerk = Clerk job-name-prosecutor = Prosecutor job-name-lawyer = Attorney job-name-courier = Courier +job-name-cargo-assistant = Cargo Assistant job-name-security-borg = Security Cyborg # Used by the Agent ID job-name-senior-physician = Senior Physician @@ -67,3 +68,4 @@ JobClerk = Clerk JobProsecutor = Prosecutor JobSecurityBorg = Security Cyborg JobRoboticist = Roboticist +JobCargoAssistant = Cargo Assistant diff --git a/Resources/Locale/en-US/deltav/preferences/loadout-groups.ftl b/Resources/Locale/en-US/deltav/preferences/loadout-groups.ftl index f761cd45830..d26e9e3ab02 100644 --- a/Resources/Locale/en-US/deltav/preferences/loadout-groups.ftl +++ b/Resources/Locale/en-US/deltav/preferences/loadout-groups.ftl @@ -49,6 +49,12 @@ loadout-group-mail-carrier-head = Mail Carrier head loadout-group-mail-carrier-jumpsuit = Mail Carrier jumpsuit loadout-group-mail-carrier-outerclothing = Mail Carrier outer clothing +loadout-group-cargo-assistant-head = Cargo Assistant head +loadout-group-cargo-assistant-jumpsuit = Cargo Assistant jumpsuit +loadout-group-cargo-assistant-backpack = Cargo Assistant backpack +loadout-group-cargo-assistant-outerclothing = Cargo Assistant outer clothing +loadout-group-cargo-assistant-shoes = Cargo Assistant shoes + loadout-group-salvage-specialist-neck = Salvage Specialist neck loadout-group-salvage-id-delta = Salvage Specialist PDA diff --git a/Resources/Prototypes/DeltaV/Entities/Markers/Spawners/jobs.yml b/Resources/Prototypes/DeltaV/Entities/Markers/Spawners/jobs.yml index 50f08716086..e9b4deae0c1 100644 --- a/Resources/Prototypes/DeltaV/Entities/Markers/Spawners/jobs.yml +++ b/Resources/Prototypes/DeltaV/Entities/Markers/Spawners/jobs.yml @@ -92,3 +92,16 @@ - state: green - sprite: DeltaV/Markers/jobs.rsi state: roboticist + +- type: entity + parent: SpawnPointJobBase + id: SpawnPointCargoAssistant + name: cargo assistant + components: + - type: SpawnPoint + job_id: CargoTechnician # Change to CargoAssistant once it's mapped on every map + - type: Sprite + layers: + - state: green + - sprite: DeltaV/Markers/jobs.rsi + state: cargoassistant diff --git a/Resources/Prototypes/DeltaV/Entities/Objects/Devices/pda.yml b/Resources/Prototypes/DeltaV/Entities/Objects/Devices/pda.yml index a9ddeb881da..9194afa30c9 100644 --- a/Resources/Prototypes/DeltaV/Entities/Objects/Devices/pda.yml +++ b/Resources/Prototypes/DeltaV/Entities/Objects/Devices/pda.yml @@ -190,6 +190,16 @@ - MailMetricsCartridge - NanoChatCartridge +- type: entity + parent: CargoPDA + id: CargoAssistantPDA + name: cargo assistant PDA + description: It smells like cardboard. + components: + - type: Pda + id: CargoAssistantIDCard + state: pda-cargo-assistant + ## Alternate Job Titles # Passenger diff --git a/Resources/Prototypes/DeltaV/Entities/Objects/Misc/books.yml b/Resources/Prototypes/DeltaV/Entities/Objects/Misc/books.yml index 6ad247ca1f8..b6ba4e1cac6 100644 --- a/Resources/Prototypes/DeltaV/Entities/Objects/Misc/books.yml +++ b/Resources/Prototypes/DeltaV/Entities/Objects/Misc/books.yml @@ -84,3 +84,27 @@ damage: types: Blunt: 1 + + +- type: entity + id: BookLogistics + parent: BaseGuidebook + name: logistics 101 + description: A Nanotrasen guide book for a new cargo assistant still on training + components: + - type: Sprite + layers: + - state: paper + - state: cover_strong + color: "#785214" + - state: decor_wingette + color: "#a8741e" + - state: decor_spine + color: "#a8741e" + - state: icon_diamond + - state: icon_text3 + color: "#ffffff" + - type: GuideHelp + guides: + - Cargo + - Salvage diff --git a/Resources/Prototypes/DeltaV/Entities/Objects/Misc/identification_cards.yml b/Resources/Prototypes/DeltaV/Entities/Objects/Misc/identification_cards.yml index 47449201b6a..193aed8af56 100644 --- a/Resources/Prototypes/DeltaV/Entities/Objects/Misc/identification_cards.yml +++ b/Resources/Prototypes/DeltaV/Entities/Objects/Misc/identification_cards.yml @@ -50,6 +50,19 @@ - type: PresetIdCard job: Courier +- type: entity + parent: IDCardStandard + id: CargoAssistantIDCard + name: cargo assistant ID card + components: + - type: Sprite + layers: + - state: default + - sprite: DeltaV/Objects/Misc/id_cards.rsi + state: idcargoassistant + - type: PresetIdCard + job: CargoAssistant + ## Alternate Job Titles # Passenger diff --git a/Resources/Prototypes/DeltaV/Loadouts/loadout_groups.yml b/Resources/Prototypes/DeltaV/Loadouts/loadout_groups.yml index 2bf3ae86d50..c30c9a43deb 100644 --- a/Resources/Prototypes/DeltaV/Loadouts/loadout_groups.yml +++ b/Resources/Prototypes/DeltaV/Loadouts/loadout_groups.yml @@ -71,6 +71,43 @@ - CourierPDA - MailCarrierPDA +## Cargo Assistant +- type: loadoutGroup + id: CargoAssistantHead + name: loadout-group-cargo-assistant-head + minLimit: 0 + loadouts: + - CargoTechnicianHead + +- type: loadoutGroup + id: CargoAssistantJumpsuit + name: loadout-group-cargo-assistant-jumpsuit + loadouts: + - CargoTechnicianJumpsuit + - CargoTechnicianJumpskirt + +- type: loadoutGroup + id: CargoAssistantBackpack + name: loadout-group-cargo-assistant-backpack + loadouts: + - CargoTechnicianBackpack + - CargoTechnicianSatchel + - CargoTechnicianDuffel + +- type: loadoutGroup + id: CargoAssistantOuterClothing + name: loadout-group-cargo-assistant-outerclothing + minLimit: 0 + loadouts: + - CargoTechnicianWintercoat + +- type: loadoutGroup + id: CargoAssistantShoes + name: loadout-group-cargo-assistant-shoes + loadouts: + - BlackShoes + - CargoWinterBoots + # Security ## Brig Medic - type: loadoutGroup @@ -260,7 +297,7 @@ - ChiefJusticeJumpskirt - ChiefJusticeFormalJumpsuit - ChiefJusticeWhiteJumpsuit - + - type: loadoutGroup id: ChiefJusticeNeck name: loadout-group-chiefjustice-neck @@ -289,7 +326,7 @@ loadouts: - ClerkJumpsuit - ClerkJumpskirt - + - type: loadoutGroup id: ClerkNeck name: loadout-group-clerk-neck diff --git a/Resources/Prototypes/DeltaV/Loadouts/role_loadouts.yml b/Resources/Prototypes/DeltaV/Loadouts/role_loadouts.yml index 7431e4f8a4a..d1f928d0a78 100644 --- a/Resources/Prototypes/DeltaV/Loadouts/role_loadouts.yml +++ b/Resources/Prototypes/DeltaV/Loadouts/role_loadouts.yml @@ -14,6 +14,20 @@ - Trinkets - GroupSpeciesBreathTool +- type: roleLoadout + id: JobCargoAssistant + groups: + - GroupTankHarness + - CargoAssistantHead + - CargoAssistantJumpsuit + - CargoAssistantBackpack + - CargoAssistantOuterClothing + - CargoAssistantShoes + - Glasses + - Survival + - Trinkets + - GroupSpeciesBreathTool + # Security - type: roleLoadout id: JobBrigmedic diff --git a/Resources/Prototypes/DeltaV/Roles/Jobs/Cargo/cargo_assistant.yml b/Resources/Prototypes/DeltaV/Roles/Jobs/Cargo/cargo_assistant.yml new file mode 100644 index 00000000000..84a6535d10b --- /dev/null +++ b/Resources/Prototypes/DeltaV/Roles/Jobs/Cargo/cargo_assistant.yml @@ -0,0 +1,18 @@ +- type: job + id: CargoAssistant + name: job-name-cargo-assistant + description: job-description-cargo-assistant + startingGear: CargoAssistantGear + playTimeTracker: JobCargoAssistant + icon: "JobIconCargoAssistant" + supervisors: job-supervisors-qm + access: + - Cargo + - Maintenance + +- type: startingGear + id: CargoAssistantGear + equipment: + id: CargoAssistantPDA + ears: ClothingHeadsetCargo + pocket1: BookLogistics diff --git a/Resources/Prototypes/DeltaV/Roles/play_time_trackers.yml b/Resources/Prototypes/DeltaV/Roles/play_time_trackers.yml index 1ebc9024823..af329817d31 100644 --- a/Resources/Prototypes/DeltaV/Roles/play_time_trackers.yml +++ b/Resources/Prototypes/DeltaV/Roles/play_time_trackers.yml @@ -21,3 +21,6 @@ - type: playTimeTracker id: JobRoboticist + +- type: playTimeTracker + id: JobCargoAssistant diff --git a/Resources/Prototypes/DeltaV/StatusIcon/job.yml b/Resources/Prototypes/DeltaV/StatusIcon/job.yml index fef4f4489a0..8c60dade5d8 100644 --- a/Resources/Prototypes/DeltaV/StatusIcon/job.yml +++ b/Resources/Prototypes/DeltaV/StatusIcon/job.yml @@ -45,3 +45,11 @@ sprite: /Textures/DeltaV/Interface/Misc/job_icons.rsi state: SecurityBorg jobName: job-name-security-borg + +- type: jobIcon + parent: JobIcon + id: JobIconCargoAssistant + icon: + sprite: /Textures/DeltaV/Interface/Misc/job_icons.rsi + state: CargoAssistant + jobName: job-name-cargo-assistant diff --git a/Resources/Prototypes/Roles/Jobs/Cargo/cargo_technician.yml b/Resources/Prototypes/Roles/Jobs/Cargo/cargo_technician.yml index 7ad883777ed..48e71198911 100644 --- a/Resources/Prototypes/Roles/Jobs/Cargo/cargo_technician.yml +++ b/Resources/Prototypes/Roles/Jobs/Cargo/cargo_technician.yml @@ -3,6 +3,13 @@ name: job-name-cargotech description: job-description-cargotech playTimeTracker: JobCargoTechnician + # Begin DeltaV modifications - Add time requirement to cargo tech + # Uncomment once ready to deploy Cargo Assistant + #requirements: + #- !type:DepartmentTimeRequirement + # department: Logistics # DeltaV - Logistics Department replacing Cargo + # time: 21600 # 6 hrs ~3 shifts. + # End DeltaV modifications startingGear: CargoTechGear icon: "JobIconCargoTechnician" supervisors: job-supervisors-qm diff --git a/Resources/Prototypes/Roles/Jobs/departments.yml b/Resources/Prototypes/Roles/Jobs/departments.yml index c009181d6fd..994366a759c 100644 --- a/Resources/Prototypes/Roles/Jobs/departments.yml +++ b/Resources/Prototypes/Roles/Jobs/departments.yml @@ -8,6 +8,7 @@ - Quartermaster - SalvageSpecialist - Courier # DeltaV - Courier, see Resources/Prototypes/DeltaV/Roles/Jobs/Cargo/courier.yml + #- CargoAssistant # DeltaV - Uncomment once ready to deploy. - type: department id: Civilian diff --git a/Resources/Textures/DeltaV/Interface/Misc/job_icons.rsi/CargoAssistant.png b/Resources/Textures/DeltaV/Interface/Misc/job_icons.rsi/CargoAssistant.png new file mode 100644 index 0000000000000000000000000000000000000000..d4c5e0d7b5661d53885225f7dcf981fdc4e84378 GIT binary patch literal 137 zcmeAS@N?(olHy`uVBq!ia0vp^93afW3?x5a^xFxf_yc@GT>t<7UlpUjvCRd@0E*p| zD{lr;tR+Ey!3-cF!%HXc0|it(T^vI=W+o>jvM`IWxv8ZoBqXIIuuSstIg`M~v7l># cVZtp&VK0XEQ-)%vfa)1MUHx3vIVCg!0BwCKd;kCd literal 0 HcmV?d00001 diff --git a/Resources/Textures/DeltaV/Interface/Misc/job_icons.rsi/meta.json b/Resources/Textures/DeltaV/Interface/Misc/job_icons.rsi/meta.json index bdbe6a6461d..d7942b8e633 100644 --- a/Resources/Textures/DeltaV/Interface/Misc/job_icons.rsi/meta.json +++ b/Resources/Textures/DeltaV/Interface/Misc/job_icons.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/d917f4c2a088419d5c3aec7656b7ff8cebd1822e | nyanoPrisonGuard, nyanoMartialArtist, nyanoGladiator made by Floofers | ChiefJustice, Clerk by leonardo_dabepis (Discord), SecurityBorg recoloured from MedicalBorg by DangerRevolution(github)", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/d917f4c2a088419d5c3aec7656b7ff8cebd1822e | nyanoPrisonGuard, nyanoMartialArtist, nyanoGladiator made by Floofers | ChiefJustice, Clerk by leonardo_dabepis (Discord), SecurityBorg recoloured from MedicalBorg by DangerRevolution(github), CargoAssistant recoloured from MedicalIntern by Radezolid", "size": { "x": 8, "y": 8 @@ -42,6 +42,9 @@ }, { "name": "SecurityBorg" + }, + { + "name": "CargoAssistant" } ] } diff --git a/Resources/Textures/DeltaV/Markers/jobs.rsi/cargoassistant.png b/Resources/Textures/DeltaV/Markers/jobs.rsi/cargoassistant.png new file mode 100644 index 0000000000000000000000000000000000000000..a347a8c4f9f6b7ce3c8f99002dcfa9bdc0e7b8a3 GIT binary patch literal 918 zcmV;H18Mw;P)So`VMy>$tSzXFh(q7Y(Z z0BTEX0SMBM%}a-n1dx45Atc5E%4mO34naa=vcLZ(4MGyY!6<-IPi<^$gy~FY4Ge~K zWS1(E0DgG=L3nTy#~c4RH`l=I5d}DDD!>OvCmR=Bx`WP_jbcy1d+O>U3s80K1a!6` zHh$Jov!x#&9>VmqJ;C(U9Th%Kt)jBY6PYrsuC5kxv~g_w zsKtWvTQ5W#U1$1i)X2|fvxN;2762`3G#arq`WRW631ZO7yAISoG_k;>pZK@}@{^RuUCpX?zbISHUPhST9kxdvdb6LqTS{8 zK%b)&Gtl?i4WtAh!pTC&47lBH*3&|@rS)454{7S89scA;f%&{pvMYeo>0~WfDBb*y zc?P(Cw|TMvs?ME4hUq-!r@nwTpY0Gl19`VM(NylYkzdUX3sSV{m~;&94S-AH;bh;h z76^O<8N{pMMO3w>0}Tx*Eh|HrWfe)swalNO!;z2x8_TOWkQfJ#Z@cXs&xZP|8aka0 zDwPWN8}l$QFn|ZYeaUV$O!)xx48rqyj{vm4^VHMWJiQ`5hJ}R%*zI;aX=@k#&1UnC zIeP;5(;~q&PH%cgdz*O8%T>yUN!F>Dm)OL_gs4-i)sQ2y0C;d-^I2J0a+i?~z|*`P zCO8`r1Guh9VEY1920wn0j?M#ADdE)po&X{t{|`WSSC@eJV=$h!AS%lL55!qm0n@#D zHuieGX!7ld?|gpN{QUhb!`9|z;but*=4WTo+ue;TR;viXgOgsP(I6!?mHY3{iHO8C sH%BEWUKbY^i{qlABG&iy_d|~S0ybxZRqx6uEdT%j07*qoM6N<$g4~avZ2$lO literal 0 HcmV?d00001 diff --git a/Resources/Textures/DeltaV/Markers/jobs.rsi/meta.json b/Resources/Textures/DeltaV/Markers/jobs.rsi/meta.json index 73c7764df0a..f5ce8ad76e4 100644 --- a/Resources/Textures/DeltaV/Markers/jobs.rsi/meta.json +++ b/Resources/Textures/DeltaV/Markers/jobs.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "made by Floofers. roboticist.png created by deltanedas (github) for DeltaV.", + "copyright": "made by Floofers. roboticist.png created by deltanedas (github) for DeltaV. cargoassistant made by Radezolid", "size": { "x": 32, "y": 32 @@ -48,6 +48,9 @@ }, { "name": "roboticist" + }, + { + "name": "cargoassistant" } ] } diff --git a/Resources/Textures/DeltaV/Objects/Devices/pda.rsi/meta.json b/Resources/Textures/DeltaV/Objects/Devices/pda.rsi/meta.json index 51105a4c6de..12a91d4ac00 100644 --- a/Resources/Textures/DeltaV/Objects/Devices/pda.rsi/meta.json +++ b/Resources/Textures/DeltaV/Objects/Devices/pda.rsi/meta.json @@ -1,7 +1,8 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "aPDA retexture by ZweiHawke @ zweihawke.net, added Hygiene Technician version by Radezolid, added Psychiatrist, Therapist, and Social Worker versions by alterae ", + "copyright": "aPDA retexture by ZweiHawke @ zweihawke.net, added Hygiene Technician | modified interntech and added the cargo assistant by Radezolid, added Psychiatrist, Therapist, and Social Worker versions by alterae ", + "size": { "x": 32, "y": 32 @@ -50,6 +51,9 @@ { "name": "pda-cargo" }, + { + "name": "pda-cargo-assistant" + }, { "name": "pda-ce" }, diff --git a/Resources/Textures/DeltaV/Objects/Devices/pda.rsi/pda-cargo-assistant.png b/Resources/Textures/DeltaV/Objects/Devices/pda.rsi/pda-cargo-assistant.png new file mode 100644 index 0000000000000000000000000000000000000000..35955c51d73b889d9b6e9b2592f3adb4dc9b5e9c GIT binary patch literal 449 zcmV;y0Y3hTP)YE9Ki9f;$kt<3~?&mghEyqAE2+$Cy>mY?OgB~Zqdo1o4bpPt_~6k1<}&U6k3f` zaEVhz+WVJWQV0Dlcb7}GQijpU;)^ zC_9#u3n6qy0H(KR%D&T!M=fGUH?R?wRI>65u4u{lgH9XG)!1sLs#^W)b=PBE!kOHzS%VgiYC_=Y>q<}b%l@H`am_iB& z!%(|B@*oNUY{C{%8K5kL6Tk*hIlzS22tbF}7@#PkRDcZO46uEbMG;0oo;@u?I0N$j zSXL3v0N?kW5YB+A5msxUN`w)xy06Pd7y+`MOPL6(HBcqODJLugp-sz$5F|-r93*?b zQuZAjoe)J)v9uf@2m%1^IvpCoKJW%ifaAdcfaz$;X!6csV{fh0<(FV_FzI%?CL^y8 rmrRlm8o};bd4Bx@s1GK;el+_6Yxd*42~oi_00000NkvXXu0mjfuDHUt literal 0 HcmV?d00001 diff --git a/Resources/Textures/DeltaV/Objects/Devices/pda.rsi/pda-interntech.png b/Resources/Textures/DeltaV/Objects/Devices/pda.rsi/pda-interntech.png index 36537f397bdc633ad3eeed552257f2dbf771ebfd..2d43b85b4e55d33fd06c5109dc43b84cfd525107 100644 GIT binary patch delta 422 zcmV;X0a^ah1HS{1BYy#gNklYE9Ki9f;#7zvXb_|naga(LKzx9{fY5?3 zkWspKsY4&ZC9_j~2*JfS2*I%wmmn<$I|*@+meSt8TkbBG+< zXMnPZN&zB-HGjbLRhC6)0Y%od2w@E<`eWHdSOYxIvqD${>P8sNfjSXdz~;KH8leS< zelArajOIX{2&+9|6$tIFI89S+BmUQeyz*>F7>3ea@qxB+-v{8e*P{s>0-wMXxE_xI z=w8OWP2r-+R(k&;-(P~k!KB~s>x|r<4|)H9(<8Rhs~@|P2a|OK)OR%d0S-RY@@AM1 QivR!s07*qoM6N<$f*5eZ1^@s6 delta 440 zcmV;p0Z0D71JMJJBYyw^b5ch_0Itp)=>Px$i%CR5R9J=W*F8(aKp4RBzaof*lV&J5 zNN@}k++E!I75WjfDc$SZ)zRU=T{`#)+#TF&Mu~ziMOqBhw;>Kvl{WX1Tv7*pmdoWy z?tUb9#~u8~UymhSvR<#J)9Y5NrF?FDeKvRRB1*sWpX?d-^dCU&?iGJyb*?-* i{X9pgzQC^^%{~Cn%i{I9Rh?A;0000 Date: Sun, 22 Dec 2024 08:52:18 +0000 Subject: [PATCH 72/76] dump ore bag into oreproc on click (#2469) Co-authored-by: deltanedas <@deltanedas:kde.org> --- Resources/Prototypes/Entities/Structures/Machines/lathe.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Resources/Prototypes/Entities/Structures/Machines/lathe.yml b/Resources/Prototypes/Entities/Structures/Machines/lathe.yml index 0806d6e99c4..14a6981a49d 100644 --- a/Resources/Prototypes/Entities/Structures/Machines/lathe.yml +++ b/Resources/Prototypes/Entities/Structures/Machines/lathe.yml @@ -1386,6 +1386,8 @@ transferSound: path: /Audio/Effects/Cargo/ping.ogg - type: MiningPointsLathe # DeltaV + - type: PlaceableSurface # DeltaV: Allow ore bags to dump into it directly + isPlaceable: false # but not place on it if you just click it with a random item - type: entity parent: OreProcessor From 5ff156d0e7338b9b57e193feb4d9f661d16edc9b Mon Sep 17 00:00:00 2001 From: Delta-V bot <135767721+DeltaV-Bot@users.noreply.github.com> Date: Sun, 22 Dec 2024 09:52:37 +0100 Subject: [PATCH 73/76] Automatic changelog update --- Resources/Changelog/DeltaVChangelog.yml | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/Resources/Changelog/DeltaVChangelog.yml b/Resources/Changelog/DeltaVChangelog.yml index 47727d53448..a388a4d2ca6 100644 --- a/Resources/Changelog/DeltaVChangelog.yml +++ b/Resources/Changelog/DeltaVChangelog.yml @@ -1,11 +1,4 @@ Entries: -- author: NullWanderer - changes: - - message: Fixed the spare ID safe being destructible - type: Fix - id: 308 - time: '2024-04-11T12:47:31.0000000+00:00' - url: https://github.com/DeltaV-Station/Delta-v/pull/1078 - author: Velcroboy changes: - message: Changed asteroids to have more ore...and some danger @@ -3826,3 +3819,11 @@ id: 807 time: '2024-12-21T13:51:53.0000000+00:00' url: https://github.com/DeltaV-Station/Delta-v/pull/2488 +- author: deltanedas + changes: + - message: You can now directly dump ore bags into ore processors by clicking on + them. + type: Tweak + id: 808 + time: '2024-12-22T08:52:18.0000000+00:00' + url: https://github.com/DeltaV-Station/Delta-v/pull/2469 From 89429b12f9806f154276304256b3b579a5a45184 Mon Sep 17 00:00:00 2001 From: Stop-Signs Date: Sun, 22 Dec 2024 03:02:48 -0600 Subject: [PATCH 74/76] Removes cooked egg reaction (#2501) 1984 --- .../Recipes/Reactions/single_reagent.yml | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/Resources/Prototypes/Recipes/Reactions/single_reagent.yml b/Resources/Prototypes/Recipes/Reactions/single_reagent.yml index 46830234faa..6e1a77c3e2c 100644 --- a/Resources/Prototypes/Recipes/Reactions/single_reagent.yml +++ b/Resources/Prototypes/Recipes/Reactions/single_reagent.yml @@ -8,15 +8,15 @@ products: Protein: 0.5 -- type: reaction - id: EggCooking - impact: Low - minTemp: 344 - reactants: - Egg: - amount: 0.5 - products: - EggCooked: 0.5 +#- type: reaction # Delta V - Removed this reaction due to lack of function besides punishing chefs +# id: EggCooking +# impact: Low +# minTemp: 344 +# reactants: +# Egg: +# amount: 0.5 +# products: +# EggCooked: 0.5 - type: reaction id: SapBoiling From 7f11c3e1096550a12c4e0a5f69b3c2da7e0f24fc Mon Sep 17 00:00:00 2001 From: Stop-Signs Date: Sun, 22 Dec 2024 05:35:30 -0600 Subject: [PATCH 75/76] 1 more egg carton (#2503) * easy * Update chefvend.yml Signed-off-by: Stop-Signs --------- Signed-off-by: Stop-Signs --- .../Prototypes/Catalog/VendingMachines/Inventories/chefvend.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Resources/Prototypes/Catalog/VendingMachines/Inventories/chefvend.yml b/Resources/Prototypes/Catalog/VendingMachines/Inventories/chefvend.yml index 7343233b6b9..e897c1b6895 100644 --- a/Resources/Prototypes/Catalog/VendingMachines/Inventories/chefvend.yml +++ b/Resources/Prototypes/Catalog/VendingMachines/Inventories/chefvend.yml @@ -14,7 +14,7 @@ ReagentContainerOliveoil: 2 ReagentContainerMayo: 1 VariantCubeBox: 1 - FoodContainerEgg: 1 + FoodContainerEgg: 2 # DeltaV - more eggs DrinkMilkCarton: 2 DrinkSoyMilkCarton: 1 FoodButter: 3 From fd4b6f8bf59929bf1df38d9ff26a145838924742 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sun, 22 Dec 2024 12:57:49 +0000 Subject: [PATCH 76/76] Update Credits (#2505) Co-authored-by: DeltaV-Bot --- Resources/Credits/GitHub.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Resources/Credits/GitHub.txt b/Resources/Credits/GitHub.txt index 870f5ff37a6..6703570add0 100644 --- a/Resources/Credits/GitHub.txt +++ b/Resources/Credits/GitHub.txt @@ -1 +1 @@ -0x6273, 12rabbits, 13spacemen, 2013HORSEMEATSCANDAL, 20kdc, 21Melkuu, 2digitman, 3nderall, 4310v343k, 4dplanner, 612git, 778b, Ablankmann, abregado, Absolute-Potato, Acruid, actioninja, actually-reb, ada-please, adamsong, Adeinitas, Admiral-Obvious-001, adrian, Adrian16199, Ady4ik, Aerocrux, Aeshus, Aexolott, Aexxie, africalimedrop, afrokada, Agoichi, Ahion, aiden, Aikakakah, aitorlogedo, ajcm, AJCM-git, AjexRose, Alekshhh, alexkar598, AlexMorgan3817, alexumandxgabriel08x, Alithsko, ALMv1, Alpha-Two, AlphaQwerty, Altoids1, amylizzle, ancientpower, Andre19926, AndrewEyeke, AndreyCamper, angelofallars, Anzarot121, Appiah, ar4ill, ArchPigeon, ArchRBX, areitpog, Arendian, arimah, Arkanic, ArkiveDev, armoks, Arteben, ArthurMousatov, ArtisticRoomba, artur, AruMoon, ArZarLordOfMango, as334, AsikKEsel, AsnDen, asperger-sind, aspiringLich, astriloqua, august-sun, AutoOtter, Avalon-Proto, avghdev, Awlod, azzy, AzzyIsNotHere, BackeTako, BananaFlambe, Baptr0b0t, BasedPugilist, BasedUser, Batuh1n, beck-thompson, BellwetherLogic, benev0, benjamin-burges, BGare, bhespiritu, BIGZi0348, bingojohnson, BismarckShuffle, Bixkitts, Blackern5000, Blazeror, BlitzTheSquishy, bloodrizer, Bloody2372, blueDev2, Boaz1111, BobdaBiscuit, BobTheSleder, boiled-water-tsar, Boolean-Buckeye, botanySupremist, brainfood1183, BramvanZijp, Brandon-Huu, Bribrooo, Bright0, brndd, bryce0110, BubblegumBlue, buletsponge, buntobaggins, bvelliquette, byondfuckery, c0rigin, c4llv07e, CaasGit, Caconym27, Calecute, Callmore, capnsockless, CaptainSqrBeard, Carbonhell, Carolyn3114, Carou02, carteblanche4me, Catofquestionableethics, CatTheSystem, Centronias, chairbender, Charlese2, charlie, ChaseFlorom, chavonadelal, Cheackraze, CheddaCheez, cheesePizza2, cheeseplated, Chief-Engineer, chillyconmor, christhirtle, chromiumboy, Chronophylos, Chubbygummibear, Ciac32, civilCornball, Clement-O, clyf, Clyybber, CMDR-Piboy314, CodedCrow, cohanna, Cohnway, Cojoke-dot, ColdAutumnRain, Colin-Tel, collinlunn, ComicIronic, CookieMasterT, coolboy911, coolmankid12345, Coolsurf6, corentt, CormosLemming, CrafterKolyan, crazybrain23, creadth, CrigCrag, croilbird, Crotalus, CrudeWax, CrzyPotato, cutemoongod, Cyberboss, d34d10cc, dabigoose, DadeKuma, Daemon, daerSeebaer, dahnte, dakamakat, DamianX, DangerRevolution, daniel-cr, DanSAussieITS, Daracke, DarkenedSynergy, Darkenson, DawBla, Daxxi3, dch-GH, de0rix, Deahaka, dean, DEATHB4DEFEAT, DeathCamel58, Deatherd, deathride58, DebugOk, Decappi, Decortex, Deeeeja, deepdarkdepths, DefinitelyNotFurryXD, degradka, Delete69, deltanedas, DeltaV-Bot, DenisShvalov, DerbyX, derek, dersheppard, Deserty0, Detintinto, DevilishMilk, dexlerxd, dffdff2423, dge21, DieselMohawk, digitalic, Dimastra, DinoWattz, DisposableCrewmember42, DjfjdfofdjfjD, doc-michael, docnite, Doctor-Cpu, DoctorBeard, DogZeroX, dolgovmi, dontbetank, Doomsdrayk, dootythefrooty, Dorragon, Doru991, dotcatshark, DoubleRiceEddiedd, DoutorWhite, dragonryan06, drakewill-CRL, Drayff, dreamlyjack, DrEnzyme, dribblydrone, DrMelon, drongood12, DrSingh, DrSmugleaf, drteaspoon420, DTanxxx, DubiousDoggo, Duddino, dukevanity, duskyjay, Dutch-VanDerLinde, dvir001, dylanstrategie, Dynexust, Easypoller, eclips_e, eden077, EEASAS, Efruit, efzapa, ElectroSR, elsie, elthundercloud, Elysium206, Emily9031, Emisse, emmafornash, EmoGarbage404, Endecc, eoineoineoin, eris, erohrs2, ERORR404V1, Errant-4, esguard, estacaoespacialpirata, Eternally-Confused, eugene, ewokswagger, exincore, exp111, f0x-n3rd, FacePluslll, Fahasor, FairlySadPanda, FATFSAAM2, Feluk6174, ficcialfaint, Fiftyllama, Fildrance, FillerVK, FinnishPaladin, firenamefn, FirinMaLazors, Fishfish458, FL-OZ, Flareguy, flashgnash, FluffiestFloof, FluffMe, FluidRock, flyingkarii, foboscheshir, FoLoKe, fooberticus, ForestNoises, forgotmyotheraccount, forkeyboards, forthbridge, Fortune117, Fouin, foxhorn, freeman2651, freeze2222, Froffy025, Fromoriss, froozigiusz, FrostMando, FryOfDestiny, FungiFellow, FunTust, Futuristic-OK, GalacticChimp, gamer3107, Gaxeer, gbasood, gcoremans, Geekyhobo, genderGeometries, GeneralGaws, Genkail, geraeumig, Ghagliiarghii, Git-Nivrak, githubuser508, gituhabu, GlassEclipse, GNF54, godisdeadLOL, goet, Goldminermac, Golinth, GoodWheatley, Gorox221, gradientvera, graevy, GraniteSidewalk, GreaseMonk, greenrock64, greggthefather, GreyMario, GTRsound, Guess-My-Name, gusxyz, Gyrandola, h3half, Haltell, Hanzdegloker, HappyRoach, Hardly3D, harikattar, HawkeyeBlade, he1acdvv, Hebi, Henry, HerCoyote23, HighTechPuddle, hitomishirichan, hiucko, Hmeister-fake, Hmeister-real, hobnob, HoidC, Holinka4ever, holyssss, HoofedEar, Hoolny, hord-brayden, Hreno, htmlsystem, hubismal, Hugal31, Huxellberger, Hyenh, hyphenationc, i-justuser-i, iacore, iamnotgray, IamVelcroboy, ian, icekot8, icesickleone, iczero, iglov, IgorAnt028, igorsaux, ike709, illersaver, Illiux, Ilushkins33, Ilya246, IlyaElDunaev, imrenq, imweax, indeano, Injazz, Insineer, IntegerTempest, Interrobang01, IProduceWidgets, itsmethom, Itzbenz, iztokbajcar, Jackal298, Jackrost, jacksonzck, Jackw2As, jacob, jamessimo, janekvap, Jark255, Jaskanbe, JasperJRoth, jerryimmouse, JerryImMouse, Jessetriesagain, jessicamaybe, Jezithyr, jicksaw, JiimBob, JimGamemaster, jimmy12or, JIPDawg, jjtParadox, jmcb, JoeHammad1844, JohnGinnane, johnku1, Jophire, joshepvodka, Jrpl, juliangiebel, JustArt1m, JustCone14, justdie12, justin, justintether, JustinTrotter, justtne, K-Dynamic, k3yw, Kadeo64, Kaga-404, KaiShibaa, kalane15, kalanosh, Kanashi-Panda, katzenminer, kbailey-git, Keelin, Keer-Sar, KEEYNy, keikiru, Kelrak, kerisargit, keronshb, KIBORG04, Killerqu00, Kimpes, KingFroozy, kira-er, Kirillcas, Kirus59, Kistras, Kit0vras, KittenColony, klaypexx, Kmc2000, Ko4ergaPunk, kognise, kokoc9n, komunre, KonstantinAngelov, kosticia, koteq, Kr8art, KrasnoshchekovPavel, Krunklehorn, Kupie, Kurzaen, kxvvv, kyupolaris, kzhanik, lajolico, Lamrr, LankLTE, laok233, lapatison, larryrussian, lawdog4817, Lazzi0706, leander-0, leonardo-dabepis, leonidussaks, leonsfriedrich, LetterN, lettern, Level10Cybermancer, LEVELcat, lever1209, Lgibb18, lgruthes, LightVillet, liltenhead, LinkUyx, LittleBuilderJane, LittleNyanCat, lizelive, lleftTheDragon, localcc, lokachop, Lomcastar, LordCarve, LordEclipse, lucas, LucasTheDrgn, luckyshotpictures, LudwigVonChesterfield, luizwritescode, Lukasz825700516, luminight, lunarcomets, luringens, lvvova1, Lyndomen, lyroth001, lzimann, lzk228, M3739, mac6na6na, MACMAN2003, Macoron, magicalus, magmodius, MagnusCrowe, malchanceux, MaloTV, manelnavola, ManelNavola, Mangohydra, marboww, Markek1, Matz05, max, MaxNox7, maylokana, MehimoNemo, MeltedPixel, MemeProof, memoblob, MendaxxDev, Menshin, Mephisto72, MerrytheManokit, Mervill, metalgearsloth, MetalSage, MFMessage, mhamsterr, michaelcu, micheel665, MilenVolf, MilonPL, Minemoder5000, Minty642, Mirino97, mirrorcult, misandrie, MishaUnity, MissKay1994, MisterMecky, Mith-randalf, MjrLandWhale, mkanke-real, MLGTASTICa, mnemotechnician, moderatelyaware, modern-nm, mokiros, Moneyl, Monotheonist, Moomoobeef, moony, Morb0, mr-bo-jangles, Mr0maks, MrFippik, mrrobdemo, muburu, MureixloI, musicmanvr, MWKane, Myakot, Myctai, N3X15, nails-n-tape, Nairodian, Naive817, NakataRin, namespace-Memory, Nannek, NazrinNya, neutrino-laser, NickPowers43, nikthechampiongr, Nimfar11, Nirnael, NIXC, NkoKirkto, nmajask, noctyrnal, noelkathegod, nok-ko, NonchalantNoob, NoobyLegion, Nopey, not-gavnaed, notafet, notquitehadouken, notsodana, noudoit, noverd, NuclearWinter, nukashimika, nuke-haus, NULL882, nullarmo, NullWanderer, nyeogmi, Nylux, Nyranu, och-och, ocotheomega, OctoRocket, OldDanceJacket, OnyxTheBrave, OrangeMoronage9622, osjarw, Ostaf, othymer, OttoMaticode, Owai-Seek, packmore, paigemaeforrest, pali6, Pangogie, panzer-iv1, paolordls, partyaddict, patrikturi, PaulRitter, peccneck, Peptide90, peptron1, PeterFuto, PetMudstone, pewter-wiz, Pgriha, Phantom-Lily, PHCodes, pheenty, Phill101, phunnyguy, PilgrimViis, Pill-U, Pireax, pissdemon, PixeltheAertistContrib, PixelTheKermit, PJB3005, Plasmaguy, plinyvic, Plykiya, pofitlo, pointer-to-null, pok27, poklj, PolterTzi, PoorMansDreams, PopGamer45, portfiend, potato1234x, PotentiallyTom, PPooch, ProfanedBane, ProPandaBear, PrPleGoo, ps3moira, Pspritechologist, Psychpsyo, psykzz, PuceTint, PuroSlavKing, PursuitInAshes, Putnam3145, qrtDaniil, quatre, QueerNB, QuietlyWhisper, qwerltaz, Radezolid, RadioMull, Radosvik, Radrark, Rainbeon, Rainfey, Raitononai, Ramlik, randy10122, Rane, Ranger6012, Rapidgame7, ravage123321, rbertoche, Redfire1331, Redict, RedlineTriad, redmushie, RednoWCirabrab, RemberBM, RemieRichards, RemTim, Remuchi, rene-descartes2021, Renlou, retequizzle, rich-dunne, RieBi, riggleprime, RIKELOLDABOSS, rinary1, Rinkashikachi, riolume, RobbyTheFish, Rockdtben, Rohesie, rok-povsic, rolfero, RomanNovo, rosieposieeee, Roudenn, router, RumiTiger, S1rFl0, S1ss3l, Saakra, Sadie-silly, saga3152, saintmuntzer, Salex08, sam, samgithubaccount, Samsterious, SaphireLattice, SapphicOverload, sarahon, sativaleanne, SaveliyM360, sBasalto, ScalyChimp, ScarKy0, scrato, Scribbles0, scrivoy, scruq445, scuffedjays, ScumbagDog, Segonist, sephtasm, Serkket, sewerpig, sh18rw, Shaddap1, ShadeAware, ShadowCommander, shadowtheprotogen546, shadowwailker, shaeone, shampunj, shariathotpatrol, ShatteredSwords, SignalWalker, siigiil, SimpleStation14, Simyon264, sirdragooon, Sirionaut, Sk1tch, SkaldetSkaeg, Skarletto, Skrauz, Skyedra, SlamBamActionman, slarticodefast, Slava0135, Slyfox333, snebl, sniperchance, Snowni, snowsignal, solaris7518, SonicHDC, SoulFN, SoulSloth, Soundwavesghost, southbridge-fur, Soydium, SpaceLizardSky, SpaceManiac, SpaceRox1244, SpaceyLady, spartak, SpartanKadence, SpeltIncorrectyl, Spessmann, SphiraI, SplinterGP, spoogemonster, sporekto, sporkyz, Squishy77, SsalamethVersaach, ssdaniel24, stalengd, stanberytrask, Stanislav4ix, StanTheCarpenter, Stealthbomber16, stellar-novas, stomf, Stop-Signs, stopbreaking, stopka-html, StrawberryMoses, Stray-Pyramid, strO0pwafel, Strol20, StStevens, Subversionary, sunbear-dev, superjj18, Supernorn, SweptWasTaken, Sybil, SYNCHRONIC, Szunti, TadJohnson00, Tainakov, takemysoult, TaralGit, Taran, taurie, Tayrtahn, tday93, teamaki, TekuNut, telyonok, TemporalOroboros, tentekal, terezi4real, Terraspark4941, texcruize, TGRCdev, tgrkzus, ThataKat, ThatOneGoblin25, thatrandomcanadianguy, TheArturZh, theashtronaut, thecopbennet, TheCze, TheDarkElites, thedraccx, TheEmber, TheIntoxicatedCat, thekilk, themias, theomund, TheOneWhoIsManyFrame, TherapyGoth, therealDLondon, TheShuEd, thetolbean, thevinter, TheWaffleJesus, Thinbug0, ThunderBear2006, Timemaster99, timothyteakettle, TimrodDX, timurjavid, tin-man-tim, Titian3, tk-a369, tkdrg, tmtmtl30, toasterpm87, TokenStyle, Tollhouse, Toly65, tom-leys, tomasalves8, Tomce795, Tomeno, Tonydatguy, topy, Tornado-Technology, tosatur, TotallyLemon, Tr1bute, tropicalhibi, truepaintgit, Truoizys, Tryded, TsjipTsjip, Tunguso4ka, TurboTrackerss14, tyashley, Tyler-IN, Tyzemol, UbaserB, ubis1, UBlueberry, UKNOWH, UltimateJester, Unbelievable-Salmon, underscorex5, UnicornOnLSD, Unisol, Unkn0wnGh0st333, unusualcrow, Uriende, UristMcDorf, user424242420, Vaaankas, valentfingerov, Varen, Vasilis, VasilisThePikachu, Velcroboy, veliebm, VelonacepsCalyxEggs, venn, veprolet, veritable-calamity, Veritius, Vermidia, vero5123, Verslebas, VigersRay, violet754, Visne, vitalvitriol, VMSolidus, voidnull000, volotomite, volundr-, Voomra, Vordenburg, vorkathbruh, vulppine, wafehling, Warentan, WarMechanic, Watermelon914, weaversam8, wertanchik, whateverusername0, Willhelm53, WilliamECrew, willicassi, Winkarst-cpu, wirdal, wixoaGit, WlarusFromDaSpace, wrexbe, wtcwr68, xkreksx, xprospero, xRiriq, YanehCheck, yathxyz, Ygg01, YotaXP, youarereadingthis, Yousifb26, youtissoum, yunii, yuriykiss, YuriyKiss, zach-hill, Zadeon, zamp, Zandario, Zap527, Zealith-Gamer, ZelteHonor, zero, ZeroDiamond, ZeWaka, zionnBE, ZNixian, ZoldorfTheWizard, zonespace27, ZweiHawke, Zylofan, Zymem, zzylex +0tito, 0x6273, 12rabbits, 13spacemen, 2013HORSEMEATSCANDAL, 20kdc, 21Melkuu, 2digitman, 3nderall, 4310v343k, 4dplanner, 612git, 778b, Ablankmann, abregado, Absolute-Potato, Acruid, actioninja, ActiveMammmoth, actually-reb, ada-please, adamsong, Adeinitas, Admiral-Obvious-001, adrian, Adrian16199, Ady4ik, Aerocrux, Aeshus, Aexolott, Aexxie, africalimedrop, afrokada, Agoichi, Ahion, aiden, Aikakakah, aitorlogedo, ajcm, AJCM-git, AjexRose, Alekshhh, alexkar598, AlexMorgan3817, alexum418, alexumandxgabriel08x, Alithsko, ALMv1, Alpha-Two, AlphaQwerty, Altoids1, amylizzle, ancientpower, Andre19926, AndrewEyeke, AndreyCamper, angelofallars, Anzarot121, Appiah, ar4ill, ArchPigeon, ArchRBX, areitpog, Arendian, arimah, Arkanic, ArkiveDev, armoks, Arteben, ArthurMousatov, ArtisticRoomba, artur, AruMoon, ArZarLordOfMango, as334, AsikKEsel, AsnDen, asperger-sind, aspiringLich, astriloqua, august-sun, AutoOtter, Avalon-Proto, avghdev, Awlod, azzy, AzzyIsNotHere, BackeTako, BananaFlambe, Baptr0b0t, BarryNorfolk, BasedPugilist, BasedUser, Batuh1n, beck-thompson, BellwetherLogic, ben, benev0, benjamin-burges, BGare, bhespiritu, BIGZi0348, bingojohnson, BismarckShuffle, Bixkitts, Blackern5000, Blazeror, BlitzTheSquishy, bloodrizer, Bloody2372, blueDev2, Boaz1111, BobdaBiscuit, BobTheSleder, boiled-water-tsar, boogiebogus, Boolean-Buckeye, botanySupremist, brainfood1183, BramvanZijp, Brandon-Huu, Bribrooo, Bright0, brndd, bryce0110, BubblegumBlue, buletsponge, buntobaggins, bvelliquette, byondfuckery, c0rigin, c4llv07e, CaasGit, Caconym27, Calecute, Callmore, capnsockless, CaptainSqrBeard, Carbonhell, Carolyn3114, Carou02, carteblanche4me, Catofquestionableethics, CatTheSystem, Centronias, chairbender, Charlese2, charlie, ChaseFlorom, chavonadelal, Cheackraze, CheddaCheez, cheesePizza2, cheeseplated, Chief-Engineer, chillyconmor, christhirtle, chromiumboy, Chronophylos, Chubbygummibear, Ciac32, civilCornball, Clement-O, clyf, Clyybber, CMDR-Piboy314, CodedCrow, cohanna, Cohnway, Cojoke-dot, ColdAutumnRain, Colin-Tel, collinlunn, ComicIronic, CookieMasterT, coolboy911, coolmankid12345, Coolsurf6, corentt, CormosLemming, CrafterKolyan, crazybrain23, creadth, CrigCrag, croilbird, Crotalus, CrudeWax, CrzyPotato, cutemoongod, Cyberboss, d34d10cc, dabigoose, DadeKuma, Daemon, daerSeebaer, dahnte, dakamakat, DamianX, DangerRevolution, daniel-cr, DanSAussieITS, Daracke, DarkenedSynergy, Darkenson, DawBla, Daxxi3, dch-GH, de0rix, Deahaka, dean, DEATHB4DEFEAT, Deatherd, deathride58, DebugOk, Decappi, Decortex, Deeeeja, deepdarkdepths, DefinitelyNotFurryXD, degradka, Delete69, deltanedas, DeltaV-Bot, DenisShvalov, DerbyX, derek, dersheppard, Deserty0, Detintinto, DevilishMilk, dexlerxd, dffdff2423, dge21, DieselMohawk, digitalic, Dimastra, DinoWattz, DisposableCrewmember42, DjfjdfofdjfjD, doc-michael, docnite, Doctor-Cpu, DoctorBeard, DogZeroX, dolgovmi, dontbetank, Doomsdrayk, dootythefrooty, Dorragon, Doru991, dotcatshark, DoubleRiceEddiedd, DoutorWhite, dragonryan06, drakewill-CRL, Drayff, dreamlyjack, DrEnzyme, dribblydrone, DrMelon, drongood12, DrSingh, DrSmugleaf, drteaspoon420, DTanxxx, DubiousDoggo, Duddino, dukevanity, duskyjay, Dutch-VanDerLinde, dvir001, dylanstrategie, Dynexust, Easypoller, echo, eclips_e, eden077, EEASAS, Efruit, efzapa, ElectroSR, elsie, elthundercloud, Elysium206, Emily9031, Emisse, emmafornash, EmoGarbage404, Endecc, eoineoineoin, eris, erohrs2, ERORR404V1, Errant-4, esguard, estacaoespacialpirata, Eternally-Confused, eugene, ewokswagger, exincore, exp111, f0x-n3rd, FacePluslll, Fahasor, FairlySadPanda, FATFSAAM2, Feluk6174, ficcialfaint, Fiftyllama, Fildrance, FillerVK, FinnishPaladin, firenamefn, FirinMaLazors, Fishfish458, FL-OZ, Flareguy, flashgnash, FluffiestFloof, FluffMe, FluidRock, flyingkarii, foboscheshir, FoLoKe, fooberticus, ForestNoises, forgotmyotheraccount, forkeyboards, forthbridge, Fortune117, Fouin, foxhorn, freeman2651, freeze2222, Froffy025, Fromoriss, froozigiusz, FrostMando, FryOfDestiny, FungiFellow, FunTust, Futuristic-OK, GalacticChimp, gamer3107, gansulalan, Gaxeer, gbasood, gcoremans, Geekyhobo, genderGeometries, GeneralGaws, Genkail, geraeumig, Ghagliiarghii, Git-Nivrak, githubuser508, gituhabu, GlassEclipse, GNF54, godisdeadLOL, goet, Goldminermac, Golinth, GoodWheatley, Gorox221, gradientvera, graevy, GraniteSidewalk, GreaseMonk, greenrock64, greggthefather, GreyMario, GTRsound, Guess-My-Name, gusxyz, Gyrandola, h3half, Haltell, Hanzdegloker, HappyRoach, Hardly3D, harikattar, HawkeyeBlade, he1acdvv, Hebi, Henry, HerCoyote23, HighTechPuddle, hitomishirichan, hiucko, Hmeister-fake, Hmeister-real, hobnob, HoidC, Holinka4ever, holyssss, HoofedEar, Hoolny, hord-brayden, Hreno, htmlsystem, hubismal, Hugal31, Huxellberger, Hyenh, hyphenationc, i-justuser-i, iacore, iamnotgray, IamVelcroboy, ian, icekot8, icesickleone, iczero, iglov, IgorAnt028, igorsaux, ike709, illersaver, Illiux, Ilushkins33, Ilya246, IlyaElDunaev, imrenq, imweax, indeano, Injazz, Insineer, IntegerTempest, Interrobang01, Intoxicating-Innocence, IProduceWidgets, itsmethom, Itzbenz, iztokbajcar, Jackal298, Jackrost, jacksonzck, Jackw2As, jacob, jamessimo, janekvap, Jark255, Jaskanbe, JasperJRoth, JerryImMouse, jerryimmouse, Jessetriesagain, jessicamaybe, Jezithyr, jicksaw, JiimBob, JimGamemaster, jimmy12or, JIPDawg, jjtParadox, jmcb, JoeHammad1844, JohnGinnane, johnku1, Jophire, joshepvodka, Jrpl, juliangiebel, JustArt1m, JustCone14, justdie12, justin, justintether, JustinTrotter, justtne, K-Dynamic, k3yw, Kadeo64, Kaga-404, KaiShibaa, kalane15, kalanosh, Kanashi-Panda, katzenminer, kbailey-git, Keelin, Keer-Sar, KEEYNy, keikiru, Kelrak, kerisargit, keronshb, KIBORG04, Killerqu00, Kimpes, KingFroozy, kira-er, Kirillcas, Kirus59, Kistras, Kit0vras, KittenColony, klaypexx, Kmc2000, Ko4ergaPunk, kognise, kokoc9n, komunre, KonstantinAngelov, kosticia, koteq, Kr8art, KrasnoshchekovPavel, Krunklehorn, Kupie, Kurzaen, kxvvv, kyupolaris, kzhanik, lajolico, Lamrr, LankLTE, laok233, lapatison, larryrussian, lawdog4817, Lazzi0706, leander-0, leonardo-dabepis, leonidussaks, leonsfriedrich, lettern, LetterN, Level10Cybermancer, LEVELcat, lever1209, Lgibb18, lgruthes, LightVillet, liltenhead, LinkUyx, LittleBuilderJane, LittleNyanCat, lizelive, lleftTheDragon, localcc, lokachop, Lomcastar, LordCarve, LordEclipse, lucas, LucasTheDrgn, luckyshotpictures, LudwigVonChesterfield, luizwritescode, Lukasz825700516, luminight, lunarcomets, luringens, lvvova1, Lyndomen, lyroth001, lzimann, lzk228, M3739, mac6na6na, MACMAN2003, Macoron, magicalus, magmodius, MagnusCrowe, malchanceux, MaloTV, ManelNavola, manelnavola, Mangohydra, marboww, Markek1, Matz05, max, MaxNox7, maylokana, MehimoNemo, MeltedPixel, MemeProof, memoblob, MendaxxDev, Menshin, Mephisto72, MerrytheManokit, Mervill, metalgearsloth, MetalSage, MFMessage, mhamsterr, michaelcu, micheel665, mifia, MilenVolf, MilonPL, Minemoder5000, Minty642, Mirino97, mirrorcult, misandrie, MishaUnity, MissKay1994, MisterMecky, Mith-randalf, MjrLandWhale, mkanke-real, MLGTASTICa, mnemotechnician, moderatelyaware, modern-nm, mokiros, Moneyl, Monotheonist, Moomoobeef, moony, Morb0, MossyGreySlope, mr-bo-jangles, Mr0maks, MrFippik, mrrobdemo, muburu, MureixloI, musicmanvr, MWKane, Myakot, Myctai, N3X15, nails-n-tape, Nairodian, Naive817, NakataRin, namespace-Memory, Nannek, NazrinNya, neutrino-laser, NickPowers43, nikthechampiongr, Nimfar11, Nirnael, NIXC, NkoKirkto, nmajask, noctyrnal, noelkathegod, nok-ko, NonchalantNoob, NoobyLegion, Nopey, not-gavnaed, notafet, notquitehadouken, notsodana, noudoit, noverd, NuclearWinter, nukashimika, nuke-haus, NULL882, nullarmo, NullWanderer, nyeogmi, Nylux, Nyranu, och-och, ocotheomega, OctoRocket, OldDanceJacket, OnyxTheBrave, OrangeMoronage9622, osjarw, Ostaf, othymer, OttoMaticode, Owai-Seek, packmore, paige404, paigemaeforrest, pali6, Pangogie, panzer-iv1, paolordls, partyaddict, patrikturi, PaulRitter, peccneck, Peptide90, peptron1, PeterFuto, PetMudstone, pewter-wiz, Pgriha, Phantom-Lily, PHCodes, pheenty, Phill101, phunnyguy, PilgrimViis, Pill-U, Piras314, Pireax, pissdemon, PixeltheAertistContrib, PixelTheKermit, PJB3005, Plasmaguy, plinyvic, Plykiya, pofitlo, pointer-to-null, pok27, poklj, PolterTzi, PoorMansDreams, PopGamer45, portfiend, potato1234x, PotentiallyTom, PPooch, ProfanedBane, ProPandaBear, PrPleGoo, ps3moira, Pspritechologist, Psychpsyo, psykzz, PuceTint, PuroSlavKing, PursuitInAshes, Putnam3145, qrtDaniil, quatre, QueerNB, QuietlyWhisper, qwerltaz, Radezolid, RadioMull, Radosvik, Radrark, Rainbeon, Rainfey, Raitononai, Ramlik, randy10122, Rane, Ranger6012, Rapidgame7, ravage123321, rbertoche, RedBookcase, Redfire1331, Redict, RedlineTriad, redmushie, RednoWCirabrab, RemberBM, RemieRichards, RemTim, Remuchi, rene-descartes2021, Renlou, retequizzle, rich-dunne, RieBi, riggleprime, RIKELOLDABOSS, rinary1, Rinkashikachi, riolume, RobbyTheFish, Rockdtben, Rohesie, rok-povsic, rolfero, RomanNovo, rosieposieeee, Roudenn, router, RumiTiger, S1rFl0, S1ss3l, Saakra, Sadie-silly, saga3152, saintmuntzer, Salex08, sam, samgithubaccount, SaphireLattice, SapphicOverload, sarahon, sativaleanne, SaveliyM360, sBasalto, ScalyChimp, ScarKy0, schrodinger71, scrato, Scribbles0, scrivoy, scruq445, scuffedjays, ScumbagDog, Segonist, sephtasm, Serkket, sewerpig, sh18rw, Shaddap1, ShadeAware, ShadowCommander, shadowtheprotogen546, shadowwailker, shaeone, shampunj, shariathotpatrol, ShatteredSwords, SignalWalker, siigiil, SimpleStation14, Simyon264, sirdragooon, Sirionaut, Sk1tch, SkaldetSkaeg, Skarletto, Skrauz, Skyedra, SlamBamActionman, slarticodefast, Slava0135, Slyfox333, snebl, sniperchance, Snowni, snowsignal, solaris7518, SonicHDC, SoulFN, SoulSloth, Soundwavesghost, southbridge-fur, Soydium, SpaceLizardSky, SpaceManiac, SpaceRox1244, SpaceyLady, Spanky, spartak, SpartanKadence, SpeltIncorrectyl, Spessmann, SphiraI, SplinterGP, spoogemonster, sporekto, sporkyz, Squishy77, SsalamethVersaach, ssdaniel24, stalengd, stanberytrask, Stanislav4ix, StanTheCarpenter, Stealthbomber16, stellar-novas, stomf, Stop-Signs, stopbreaking, stopka-html, StrawberryMoses, Stray-Pyramid, strO0pwafel, Strol20, StStevens, Subversionary, sunbear-dev, superjj18, Supernorn, SweptWasTaken, Sybil, SYNCHRONIC, Szunti, TadJohnson00, Tainakov, takemysoult, tap, TaralGit, Taran, taurie, Tayrtahn, tday93, teamaki, TekuNut, telyonok, TemporalOroboros, tentekal, terezi4real, Terraspark4941, texcruize, TGRCdev, tgrkzus, ThataKat, ThatGuyUSA, ThatOneGoblin25, thatrandomcanadianguy, TheArturZh, theashtronaut, thecopbennet, TheCze, TheDarkElites, thedraccx, TheEmber, TheIntoxicatedCat, thekilk, themias, theomund, TheOneWhoIsManyFrame, TherapyGoth, therealDLondon, TheShuEd, thetolbean, thevinter, TheWaffleJesus, Thinbug0, ThunderBear2006, Timemaster99, timothyteakettle, TimrodDX, timurjavid, tin-man-tim, Titian3, tk-a369, tkdrg, tmtmtl30, toasterpm87, TokenStyle, Tollhouse, Toly65, tom-leys, tomasalves8, Tomce795, Tomeno, Tonydatguy, topy, Tornado-Technology, tosatur, TotallyLemon, Tr1bute, tropicalhibi, truepaintgit, Truoizys, Tryded, TsjipTsjip, Tunguso4ka, TurboTrackerss14, tyashley, Tyler-IN, Tyzemol, UbaserB, ubis1, UBlueberry, UKNOWH, UltimateJester, Unbelievable-Salmon, underscorex5, UnicornOnLSD, Unisol, Unkn0wnGh0st333, unusualcrow, Uriende, UristMcDorf, user424242420, Vaaankas, valentfingerov, Varen, Vasilis, VasilisThePikachu, Velcroboy, veliebm, VelonacepsCalyxEggs, venn, veprolet, veritable-calamity, Veritius, Vermidia, vero5123, Verslebas, VigersRay, violet754, Visne, vitalvitriol, vlados1408, VMSolidus, voidnull000, volotomite, volundr-, Voomra, Vordenburg, vorkathbruh, vulppine, wafehling, Warentan, WarMechanic, Watermelon914, weaversam8, wertanchik, whateverusername0, widgetbeck, Willhelm53, WilliamECrew, willicassi, Winkarst-cpu, wirdal, wixoaGit, WlarusFromDaSpace, wrexbe, wtcwr68, xkreksx, xprospero, xRiriq, YanehCheck, yathxyz, Ygg01, YotaXP, youarereadingthis, Yousifb26, youtissoum, yunii, YuriyKiss, yuriykiss, zach-hill, Zadeon, zamp, Zandario, Zap527, Zealith-Gamer, ZelteHonor, zero, ZeroDiamond, ZeWaka, zionnBE, ZNixian, ZoldorfTheWizard, zonespace27, ZweiHawke, Zylofan, Zymem, zzylex