From bd1e3799039c89500299fb42bbbd5b3ecbe28c66 Mon Sep 17 00:00:00 2001 From: BIGZi0348 <118811750+bigzi0348@users.noreply.github.com> Date: Sat, 21 Sep 2024 17:30:11 +0300 Subject: [PATCH] =?UTF-8?q?=D0=A8=D0=BB=D0=B5=D0=BC=20=D0=B8=D0=B7=20?= =?UTF-8?q?=D0=B2=D0=B5=D0=B4=D1=80=D0=B0=20(#7)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Bucket Helmet * Code cleanup * Squashed commit of the following: commit 4505739fd9430bcc578da3dec932d9aa7ca933ca Author: BIGZi0348 <118811750+BIGZi0348@users.noreply.github.com> Date: Sat Sep 21 17:10:02 2024 +0300 Самодельные отражайки (#6) * Ghetto Mirror Shield * Protorypes for ghetto mirrors * locale * idk, works fine on my machine * forsenPls commit 1f066876508dec8d3f21ad753dab9fcc13dc8d1a Author: BIGZi0348 <118811750+BIGZi0348@users.noreply.github.com> Date: Sat Sep 21 14:57:30 2024 +0300 Агрессивный вор (#5) * AggressiveThief * Попытка насрать обратно commit e1d745655b0e7253ea4e4814b82dd56e90153514 Author: BIGZi0348 <118811750+BIGZi0348@users.noreply.github.com> Date: Sat Sep 21 14:46:38 2024 +0300 Suhariki (#4) * init * Porting is complete Still WIP * small stuff * SmallStuff * awawawa * Нас рано * Engi * More luck * removed some shit commit 08061b4f1fbbfd521e3a40ef53d9bc86fa140087 Author: BIGZi0348 <118811750+BIGZi0348@users.noreply.github.com> Date: Sat Sep 21 14:30:31 2024 +0300 Engi rise up (#3) commit 00e2f5c45ca7abfeff1f85d4893352d8875f8560 Author: BIGZi0348 <118811750+BIGZi0348@users.noreply.github.com> Date: Thu Sep 19 19:42:30 2024 +0300 Bigzi upstream1 (#2) * init * Porting is complete Still WIP * Мелочи - Король крыс, диски, правки перевода и респрайт одеяния культа (#686) * Большой Крыс Отдыхает * Фикс размера фейк диска * Доработка диска очков РНД * Скоро перейду на райдер * Переводы * Диски одного размера * Респрайт робы и капюшона культа * Automatic changelog update * fix (#687) * Automatic changelog update * govno HD (#688) * Automatic changelog update * Hotfix loadouts (#689) * govno HD * hotfix loadouts * fuck * Automatic changelog update * Update PULL_REQUEST_TEMPLATE.md * Even smaller stuff (#690) * 45 to 44 * Фикс ошибки перевода * Voice mask translate * Automatic changelog update * small stuff * SmallStuff * awawawa * Локализация шепелявости (#691) * БУМ!!!!!!!! (#692) * Automatic changelog update * Большой ребаланс милишки (#681) * MeleeThrowOnHit rework * buff baseball bat * better mjolnir * telebaton system unhardcode + refactor + transform TelescopicBatonComponent to KnockDownOnHitComponent * fix telebaton prototype * darova * fix KnockDownOnHitSystem * chaplain weapons rebalance * fix nullrod hit sound * BloodstreamSystem cleanup * bleeding rebalance * damage rebalance * small baseball bat fix * Automatic changelog update * Chaplain armor fix (#693) * Фикс описания (#696) * No passengers on this military complex (#695) * Automatic changelog update * Переводы (#698) * Пепеводы * Очепятки * Фикс прожектора и открутка цифр (#697) * Melochi * Фикс хамелеона * Переводы денег мне на карту * Automatic changelog update * Нас рано * Фикс пополнения зарядов РЦД используя стаки ресурсов (#699) * Фиксики * Спасли Валеру от банкротства * Very hot man (#700) * Automatic changelog update * reverted illegal code added by oniks --------- Co-authored-by: RavmorganButOnCocaine Co-authored-by: Spatison <137375981+Spatison@users.noreply.github.com> Co-authored-by: Valtos Co-authored-by: Jabak <163307958+Jabaks@users.noreply.github.com> Co-authored-by: ThereDrD <88589686+ThereDrD0@users.noreply.github.com> * ВЕДРО!!! * Funny * Oppsie (cherry picked from commit 92ce631b0c0187678b6d1eea34d3c0830b9b0fac) --- Content.Server/Strip/StrippableSystem.cs | 11 +++++++ .../_White/BucketHelmet/BucketHelmetSystem.cs | 30 ++++++++++++++++++ .../BucketHelmet/BucketHelmetComponent.cs | 11 +++++++ .../PreventStrippingFromEarsComponent.cs | 11 +++++++ .../Locale/ru-RU/White/bucket-helmet.ftl | 4 +++ .../Entities/Objects/Tools/bucket.yml | 4 +++ .../Entities/Clothing/Head/bucketHelmet.yml | 27 ++++++++++++++++ .../Recipes/Crafting/Graphs/bucketHelmet.yml | 22 +++++++++++++ .../Head/bucketHelmet.rsi/equipped-HELMET.png | Bin 0 -> 828 bytes .../Clothing/Head/bucketHelmet.rsi/icon.png | Bin 0 -> 1953 bytes .../Clothing/Head/bucketHelmet.rsi/meta.json | 18 +++++++++++ 11 files changed, 138 insertions(+) create mode 100644 Content.Server/_White/BucketHelmet/BucketHelmetSystem.cs create mode 100644 Content.Shared/_White/BucketHelmet/BucketHelmetComponent.cs create mode 100644 Content.Shared/_White/BucketHelmet/PreventStrippingFromEarsComponent.cs create mode 100644 Resources/Locale/ru-RU/White/bucket-helmet.ftl create mode 100644 Resources/Prototypes/_White/Entities/Clothing/Head/bucketHelmet.yml create mode 100644 Resources/Prototypes/_White/Recipes/Crafting/Graphs/bucketHelmet.yml create mode 100644 Resources/Textures/White/Clothing/Head/bucketHelmet.rsi/equipped-HELMET.png create mode 100644 Resources/Textures/White/Clothing/Head/bucketHelmet.rsi/icon.png create mode 100644 Resources/Textures/White/Clothing/Head/bucketHelmet.rsi/meta.json diff --git a/Content.Server/Strip/StrippableSystem.cs b/Content.Server/Strip/StrippableSystem.cs index 0ae569b392..3bb3050eed 100644 --- a/Content.Server/Strip/StrippableSystem.cs +++ b/Content.Server/Strip/StrippableSystem.cs @@ -22,6 +22,7 @@ using Content.Shared._White.MagGloves; using Robust.Server.GameObjects; using Robust.Shared.Player; using Robust.Shared.Utility; +using Content.Shared._White.BucketHelmet; namespace Content.Server.Strip { @@ -135,6 +136,16 @@ namespace Content.Server.Strip } // WD EDIT END + // WD ENGI EXCLUSIVE START EDIT + if (args.Slot == "ears" && TryComp(strippable, out PreventStrippingFromEarsComponent? _)) + { + var message = Loc.GetString("buckethelmet-cant-strip"); + _popupSystem.PopupEntity(message, user, user); + return; + } + // WD ENGI EXCLUSIVE EDIT END + + if (args.IsHand) { StripHand((user, userHands), (strippable.Owner, null), args.Slot, strippable); diff --git a/Content.Server/_White/BucketHelmet/BucketHelmetSystem.cs b/Content.Server/_White/BucketHelmet/BucketHelmetSystem.cs new file mode 100644 index 0000000000..c5a1d51b4f --- /dev/null +++ b/Content.Server/_White/BucketHelmet/BucketHelmetSystem.cs @@ -0,0 +1,30 @@ +using Content.Shared.Inventory.Events; +using Content.Shared._White.BucketHelmet; +// WD Engi Exclusive +namespace Content.Server._White.BucketHelmet; + +/// +/// This handles placemet of PreventStrippingFromEarsComponent when bucket helmet is in use. +/// +public sealed class BucketHelmetSystem : EntitySystem +{ + /// + public override void Initialize() + { + SubscribeLocalEvent(OnGotEquipped); + SubscribeLocalEvent(OnGotUnequipped); + } + + + public void OnGotUnequipped(EntityUid uid, BucketHelmetComponent component, GotUnequippedEvent args) + { + RemComp(args.Equipee); + } + + public void OnGotEquipped(EntityUid uid, BucketHelmetComponent component, GotEquippedEvent args) + { + if (args.Slot == "head") + EnsureComp(args.Equipee); + } + +} diff --git a/Content.Shared/_White/BucketHelmet/BucketHelmetComponent.cs b/Content.Shared/_White/BucketHelmet/BucketHelmetComponent.cs new file mode 100644 index 0000000000..c16a638539 --- /dev/null +++ b/Content.Shared/_White/BucketHelmet/BucketHelmetComponent.cs @@ -0,0 +1,11 @@ +// WD Engi Exclusive +namespace Content.Shared._White.BucketHelmet; + +/// +/// This is used for bucket helmet. +/// +[RegisterComponent] +public sealed partial class BucketHelmetComponent : Component +{ + +} diff --git a/Content.Shared/_White/BucketHelmet/PreventStrippingFromEarsComponent.cs b/Content.Shared/_White/BucketHelmet/PreventStrippingFromEarsComponent.cs new file mode 100644 index 0000000000..681c344430 --- /dev/null +++ b/Content.Shared/_White/BucketHelmet/PreventStrippingFromEarsComponent.cs @@ -0,0 +1,11 @@ +// WD Engi Exclusive +namespace Content.Shared._White.BucketHelmet; + +/// +/// This is used to block stripping headsets when bucket helmet is on. +/// +[RegisterComponent] +public sealed partial class PreventStrippingFromEarsComponent : Component +{ + +} diff --git a/Resources/Locale/ru-RU/White/bucket-helmet.ftl b/Resources/Locale/ru-RU/White/bucket-helmet.ftl new file mode 100644 index 0000000000..7bee4add50 --- /dev/null +++ b/Resources/Locale/ru-RU/White/bucket-helmet.ftl @@ -0,0 +1,4 @@ +ent-ClothingHeadBucketHelmet = шлем из ведра + .desc = Обычное ведро с двумя прорезями для глаз. При ношении на голове что-то липкое внутри цепляется за наушник. + +buckethelmet-cant-strip = Шлем из ведра не позволяет это сделать diff --git a/Resources/Prototypes/Entities/Objects/Tools/bucket.yml b/Resources/Prototypes/Entities/Objects/Tools/bucket.yml index b6a7ae38e3..c59388f9f5 100644 --- a/Resources/Prototypes/Entities/Objects/Tools/bucket.yml +++ b/Resources/Prototypes/Entities/Objects/Tools/bucket.yml @@ -66,3 +66,7 @@ - type: PhysicalComposition materialComposition: Plastic: 50 + - type: Construction # WD Engi Exclusive + deconstructionTarget: null + graph: ClothingHeadBucketHelmet + node: start diff --git a/Resources/Prototypes/_White/Entities/Clothing/Head/bucketHelmet.yml b/Resources/Prototypes/_White/Entities/Clothing/Head/bucketHelmet.yml new file mode 100644 index 0000000000..9121cefa0c --- /dev/null +++ b/Resources/Prototypes/_White/Entities/Clothing/Head/bucketHelmet.yml @@ -0,0 +1,27 @@ +# WD Engi Exclusive +- type: entity + parent: ClothingHeadBase + id: ClothingHeadBucketHelmet + name: bucket helmet + description: A regular bucket with two eye holes. When worn on the head, something sticky inside latches on the earpiece. + components: + - type: Sprite + sprite: White/Clothing/Head/bucketHelmet.rsi + - type: Clothing + sprite: White/Clothing/Head/bucketHelmet.rsi + - type: IdentityBlocker + - type: Armor + modifiers: + coefficients: + Blunt: 0.95 + - type: Tag + tags: + - HidesHair + - WhitelistChameleon + - type: Construction + deconstructionTarget: start + graph: ClothingHeadBucketHelmet + node: helmet + - type: Item + size: Normal + - type: BucketHelmet diff --git a/Resources/Prototypes/_White/Recipes/Crafting/Graphs/bucketHelmet.yml b/Resources/Prototypes/_White/Recipes/Crafting/Graphs/bucketHelmet.yml new file mode 100644 index 0000000000..6129a2624b --- /dev/null +++ b/Resources/Prototypes/_White/Recipes/Crafting/Graphs/bucketHelmet.yml @@ -0,0 +1,22 @@ +# WD Engi Exclusive +- type: constructionGraph + id: ClothingHeadBucketHelmet + start: start + graph: + - node: start + entity: Bucket + edges: + - to: helmet + conditions: + - !type:SolutionEmpty + solution: bucket + steps: + - tool: Cutting + doAfter: 5 + - node: helmet + entity: ClothingHeadBucketHelmet + edges: + - to: start + steps: + - tool: Welding + doAfter: 5 diff --git a/Resources/Textures/White/Clothing/Head/bucketHelmet.rsi/equipped-HELMET.png b/Resources/Textures/White/Clothing/Head/bucketHelmet.rsi/equipped-HELMET.png new file mode 100644 index 0000000000000000000000000000000000000000..2217a63c0f9ee72b4f77b7b0b0c17a3fd4376d28 GIT binary patch literal 828 zcmV-C1H=4@P)Px%+(|@1RCt{2noVdLK@`XTmK;1)0z%M(wznPvUM!fBfX5c3P!NO)<|YXUg{9C? zkV1ReKoNRs$t{O96g-8NUWJy{LoPz@VGX-RB8bgJv@kvBe#C0Jvmd&U_dD$}JM({U z9B1Fod%!IxVD-Uzy{=zxfB41BZG-L^KEHczc`P&OblP=&t78Jd9m`KniH|aS7-jY# zCkp_8T)E0_?C271>vK;40LaM#)C(2rg$e-ZJbq(m7~8n1zrx#L&^Fom31B!$HFFY^i}jWck!&W@9E#b3w`bt007uejyIg0V}?&pjq63zR~-+* zH39lEGdsI;%+PNG{q~$*?xE{XJMKW+@~bPAO0i%ti24Izu4uY_gu!3{Q4}qYYxR}I zqu*#WEbCid0iq}d6h&btuiwsnCj9UoN~Mymc)(44o;ZNpSV@u?0Oa#|y{{k$3;-&X z%74c*2Q&a*(BcKQe=SLpShw4SEX$T0CkTQd2*P(P?EP&HfR-Knn6dXY$iZ~v=QnJf z2wBDN&I2A#z&!jkF-w^Mz+aO<5ClOG1aT|j{uH~PSZH2;GE?!O+^gR76!@R&3^#Op9lh^X}njwo|sr3QCBuQybPv4CI&~o=1wvDlZ z+w}q5d%)`Y6V}_@9p8ka|Fp0DJV59BfhQ+TYg@%}eZVx6Z1L)kkLaC#d^~efN+kf=-FNg2B^7G5qc4f25X0t37 ziy)N%SB}LsLj*x!;c%G2qkMy+D2(b62!bF8f*=Tj zAP9mW2!e3JUrfV(Vm(RvUjP6A4rN$LW=%~1DgXcg2mk;800000(o>TF0000QY8$; zsl=#J@iAp%bDQ8RI^xD~K8QLKGbNg#Mj%XxBBEpSZKiYImD1?uX67Z|ecyNA@B97V z|684%HFIP{bc94A8JTG|%>^?gj$z^8&HH@!z%-mSFW@DT$dlp-shJ!(ULukGN?Y@U zJj)!6U|b5EWC|#S*Tn*~M3R!`WpSd25}*RgLAwp`z~N&sM3V-1zSe?TSR++Pn|&OW z>&vndz9K?T!fB~ciWdU}E=s^5ugmG?F|Psk^I~8venw!(4-twCaJncE%ClrcMuwvx zy+SD`P*e#egOz5AN~hN+K`KYxoSHc0E{1AYP?L%cYPC>5w^lOISDK^$AcIsL*(0->Cgi*gG*z$$}SwvZ7RzL5DB z>frGU0)THVmY|H6>f&+*MexG(CBTe;LtcvJt)(o5%%ymygd?cwOMsd&qBSgLu{{S=*M z=)Q>|O2o(x-6#L&{r5N;losxMZ62}U#FW6yG!KGR8mNd|syMK6(vUw3Fq{yx+W-?{ zSSb5X9B@*d^OjEiwZ^iA+X@$8tQ9qW)nV;3?n{s0=j;UU5 zY^ckxG`HjkBO)_2dF*$WTUs)2?AV{BSp9zZ=fyW}=3lTxbtcwSn~N5rv=f3a#AjcMYVbmMdsSpZD-mY$3@HG=3vF6=$Nm%5%$8U8- z-D}(MWULfIi{IR^tHsN9r%YVIA~r-)SBVFIpyfl@;;>E zJU_qY_Yvz;dS)Z#yOXB%?7ZLUtNy8@cz0-=6mF?)U;b$O&n;KF`nQHXjJoBS*mmqu z=Q!P{%S*4+&(8RvZW^&QH|FM(%ZD~zYBf(VNaKx0TdL!o%1OG%-Ki%|#KfP;D%$ek z2<4EvBV;R^Rj2KZXYGxaooykqqx%lFInNiCBt2SGqf2Z$)V=sr7&%ZGjWy8iYeVj| z_SKKQST(8c@U^JsUD9oHW;o(z-YQsnB7EIK&4BdQGO2BU?UmT=XCG|(BCf)BMA0Wi zr|!**{Wck{MSS<+#2TitsmZ)=UVrK69UmUQnM$M;+74qhLKs!z@6 zvYi^&Gb*~cY;-TD-)BvPH*V1$|E6ogL0Y#tTzjLPN~oFjNo#Lybj97J5VX60k0JDQ z>CLH=B?k^1sQa`xCuz*X*c`