From e3d5dc4d76908cb1da4d71187f7cc77ac146eb68 Mon Sep 17 00:00:00 2001 From: Ubaser <134914314+UbaserB@users.noreply.github.com> Date: Sat, 20 Jan 2024 00:12:25 +1100 Subject: [PATCH 01/66] Improve light tube sprites (#24270) * fix * blocky * glowier * darker --- .../Lighting/light_tube.rsi/base.png | Bin 287 -> 1521 bytes .../Lighting/light_tube.rsi/broken.png | Bin 329 -> 1670 bytes .../Lighting/light_tube.rsi/burned.png | Bin 452 -> 1950 bytes .../Lighting/light_tube.rsi/empty.png | Bin 306 -> 1564 bytes .../Lighting/light_tube.rsi/glow.png | Bin 471 -> 1413 bytes 5 files changed, 0 insertions(+), 0 deletions(-) diff --git a/Resources/Textures/Structures/Wallmounts/Lighting/light_tube.rsi/base.png b/Resources/Textures/Structures/Wallmounts/Lighting/light_tube.rsi/base.png index 940be1b50897201d15944c0729a3941fea5808cc..02e8764173f9404834b32d7ee1b9e0511d96a1dd 100644 GIT binary patch literal 1521 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=jKx9jP7LeL$-D$|_);T0(|mmy zw18|5AO?X;!IOa`XMsm#F;KxA5N2eb5`33|fjK2JB%&n3*T*V3KUXg?B|j-uuOhbq ztjngt3dqb&ElE_U$j!+swyLmI0;{kBvO&W7N(x{lCE2!05xxNm&iO^D3TAo+dIm~% zTnY*bHbp6ERzWUqQ0+jTtx`rwNr9EVetCJhUb(Seeo?xG?W zUP)qwZeFo6#1NP{E~&-IMVSR9nfZANAafIw@=Hr>m6Sjh!2!gbDamkq3QCJ|z_z3$ z>!;?V=BDPA6zd!68R}!xSCW~AaA96CG&q0(qYsh+YBRv9&9k5+*#sC;t`$J{K>Y`F zXfoK|;*u17BnA3L1_l&2TID3>rQ0f1=%%EmC6?xtDA}dwni&p(+ACi>vEoI5|*PekQMsxjAH%46H-|>I#cfFY*Q$xHw*Z4%LtkMcA)DvHt zq`hy^h5hqxaXMt@YHy8N`{dE5C1tF>i7v1A{K@ECv`ZlS{ygzX44e}Pq62J=VUkl< zh@ZK6F(YL)NAb6R>-L$3S8e`eaC*t@w^7-7Ml=5yq?cDUOE>)cqi*9;G07uy)~VB< z^UvH|(<54c^tS4}44yiD$N#hnjxqom$F)0({f`d5Y5p9MQq`VLo0SNS%G|s0G|+7 zQ&ZE)lP7Q3qBDQ~{1Zpywr$(?|c>m<;&3ucUF6_=*XFSYmkUcF!|bJODNpM`9TtAJ7r9GG?W zUP)qwZeFo6#1NP{E~&-IMVSR9nfZANAafIw@=Hr>m6Sjh!2!gbDamkq3QCJ|z_z3$ z>!;?V=BDPA6zd!68R}!xSCW~AaA96CG&q0(qYsh+YBRv9&9k5+*#sC;t`$J{K>Y`F zXfoK|;*u17BnA3L1_l&2TID3>rQ0f1=%%EmC6?xtDA}dwEakt!T5Ie#;n^8636X1pRy*k9t+yM^>e?U~ZC`@O=6a;tOS z|KD}ByZhg|T`Xwv#elV8-qZQooo`jjT|D|Vc<%ZTE$*%FH%~t4l3up$c*xqeo4uRm z>sQ3B51yoQ<^A_e0||?pXN77$O#6DUP=@Q!+Q_Mbd#nG~KJAk)ovp%JFnAKq+cKDO`a^8WQAF|REAHhuf_ zWD4JbJ(Jgn{J9ZQY|8QS#bNKQt3vDRJeN!o)D(Sjaelrzf6El00~6F4+3l?>K0Q(l z-1cMce^ZqUXL74$1X>NImF+(J)GdDFxd-#3UNe{5tl1`T@~BIX+^_wQ7D#sMtTEp6 zEY6BkfcM(lTMF~Pe3H^W^D(D1^X>iv7E%|FhR$GeIJWIb<9xj%%FX7w(L&j-FV>&d z7yl!c%G^@9_L?1Y#e%!3f)8R&K3RQ+VX}LDpb3ggci(O z$8+G1=Mk%e28a|^%er$EceEn=CC;T^IDIc&RgByX0i>)-0M o`<_^OkXc^$=CYk!pzvt44mG;FL4|W)83Pb_y85}Sb4q9e0AW;NDgXcg delta 313 zcmZqUJ;^jdvYwfNfno0U#y3EUu{g-xiDBJ2nU_EgOS+@4BLl<6e(pbstU$g*fKQ04 zsj2DY$&)v1(V0Jg{)r=U+qP|c^0F5wscieh8c1=J1o;L3hX96q&3hw(Vw?pYk;M!Q ze1}1p@p%4<6rkWTPZ!6K2=}*B9qaj83^-hMmlpk({=Ks2WR6Tr>*TiW1`e0EZ+v^7 zC1G?W zUP)qwZeFo6#1NP{E~&-IMVSR9nfZANAafIw@=Hr>m6Sjh!2!gbDamkq3QCJ|z_z3$ z>!;?V=BDPA6zd!68R}!xSCW~AaA96CG&q0(qYsh+YBRv9&9k5+*#sC;t`$J{K>Y`F zXfoK|;*u17BnA3L1_l&2TID3>rQ0f1=%%EmC6?xtDA}dw2#iA3fTREI~OL;4 zXEg7aP&lice@|ukyIT40f9{>x{d`{Wx~9@cWxKadnqldE(I2D9WS;%m7sdzwKTwjDvTVo^RnRDk}ZJnt+ zt#{WVjgR}nLcE#ROHMvh4tIB3lyBoJulg1EWXqw41rJ6AtXZ+tK z!n)q^sd4C)5ZTkGPcxg(KC3n>zvM3a)JhYH(6Fg&b3Q?~nup1lgAr-RT07GkKzw~7-28@-eg3brj??0g}i;M>_0 z^P)9{7GJ+^T_nK8TKIci{LZSQOQ%kml92I&wP#!Q+{dRp`M3O#JaF;VYYlDf=2fdc zRPFuGk{*1Ft#|VF?EQQ8@Z?SOa49*s(Vc(KtK0AH$ab*Uzr3ApBGX>>BS3K9kNaH= zy0?qA+_$)&a`oHO=)%pPCs|zI5oRIdxAI)u#fMYUmuw8W{D}Wkw1$@4%NtKrvTRH( zUTBFb{;J;l*WzkG>z_kT7q#17%$_ydwK6Ns?M)@G-Cv)+faQWK_e@n$;9R4;px}n# zDTeiIkw_m5|`*h{Y%)hb|B$&@E zs*3Sft26o?s$25xz~hf9X~Ag+Cj1HCUQi_Xp zMO9pDW~!8j>wWsVB!BA6`=1Z4C@`48df>!~3a8Me8~LP+_s#s`qwl>)wVQjd?Q&DA zpf{|n0WSkMSeO=MpVUcuae6CX#lIz?)eqKQ{^4!F&G5=|x>TwE8CIU_jg}aNUQkO)>req_vP!^LUDiueU1CYq@El$mTyx*L>P{uIuL$+;zmQ_U`OO-}cKNDUg(P zDCvmkaqVSE5KCM$fkDDBsCRNS%G}50G|+7 zQ&ZE)lP7Q3qSM}^GTfOn zdRMq&d8puw73J|8P9*j}tM)gzy?+(Ml}FkSZvM;XjQhyPq~6ATW_7l`vTnh*U+gUV z9F%ku++3HsMmg~NakX?cDC-);FnDv!2viWuWMr!pbz8zZi~G-Kt4mCE|66${ihbZ+ zCm@t6^Xj}pu$%CDru0)88Y-Py21i&sr|Yfk6tkPewCRY|hx>=iZ(O=`yNYM}&+kpI be=*#YJsx=O#``0{z+&)p^>bP0l+XkKb7Q}7 diff --git a/Resources/Textures/Structures/Wallmounts/Lighting/light_tube.rsi/empty.png b/Resources/Textures/Structures/Wallmounts/Lighting/light_tube.rsi/empty.png index 68a683d3e7f85eb9c218dc1fc0f8d54162e7bacf..0f8f9478bd87f9c9547268c5e2a00f98b1940c6d 100644 GIT binary patch literal 1564 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=jKx9jP7LeL$-D$|_);T0(|mmy zw18|5AO?X;!IOa`XMsm#F;KxA5N2eb5`33|fjK2JB%&n3*T*V3KUXg?B|j-uuOhbq ztjngt3dqb&ElE_U$j!+swyLmI0;{kBvO&W7N(x{lCE2!05xxNm&iO^D3TAo+dIm~% zTnY*bHbp6ERzWUqQ0+jTtx`rwNr9EVetCJhUb(Seeo?xG?W zUP)qwZeFo6#1NP{E~&-IMVSR9nfZANAafIw@=Hr>m6Sjh!2!gbDamkq3QCJ|z_z3$ z>!;?V=BDPA6zd!68R}!xSCW~AaA96CG&q0(qYsh+YBRv9&9k5+*#sC;t`$J{K>Y`F zXfoK|;*u17BnA3L1_l&2TID3>rQ0f1=%%EmC6?xtDA}dwh+nj3T4g- z41|%4pTgv4%qSdexLbFJhwb8(tMvkv&j7W{{6KcB1dPtXPuvOr|OeXL$9HyP@tFh{`=-ypX;Ai z-e~0I*leeL#VlUVvw_9W-{E2U@m*hY|MvB2zkmFF4)bmWuG0}!d*kly+q0$J>hM1k zvATzT4O!f)59$c&@78&~V1jX%&J_;EYm8ZIpDYTR^!xW5+sZ7yr=?Med8>S)Q!Axj z2Of5M*ZQCDLjBtH{kKH>dX&ri7~DVXEj%swz&G52t3~;MU`76&B9@BFqJ2ykUzhHZ zKQXa>dEVKUmswkjq*}b6|6q^#@t)!9j|uPI9AaC(hO6gv+?hwxU4kycTNtXD3>BO1 z#=2%sIK4n(Cg;Sey?G(RyF=G;2rLktb^gDb;iWJmtxNmtW@{Je|JhO@=w?%_!YFjZ a{{eTa@N%XH3(oa}N@h=2KbLh*2~7aL95LMh delta 290 zcmbQkvx#YfWIZzj1H;_yjcNS%G}f0G|+7 zQ&ZE)lP9kz5uQJP{{9xxZQHg1WyJH{_5msOk|4j}|6sr%<<0B{6yhxKh%9Dc;5!V$ zjK}j=qyPmcd%8G=M7Y1bdX}p}L7?6(@cH@g^-tzZQV?IpCvvnr+^a$?bykt4py6`w zGcLb3@8)x8DV;x0v)hLu?G{s(8J`Oi!vSV6s%Co;Tbu0g{F5xR)%E`Z7hdx_tmG5_ zbX6rRoqJ}0%!9J-GfPsd3wC>^2kHJ^-6zgn%goQfz~8|9@V;fuf<5(WZE?xcIbSb6 cZ=7R(r#6;RZvEU~paU5^UHx3vIVCg!03up!7ytkO diff --git a/Resources/Textures/Structures/Wallmounts/Lighting/light_tube.rsi/glow.png b/Resources/Textures/Structures/Wallmounts/Lighting/light_tube.rsi/glow.png index 764586a5d78603e9a0f706c1e102dad5e02d0a3a..e1258d83dc3c4702670dbf5f63869fc3c3bd76e6 100644 GIT binary patch literal 1413 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=jKx9jP7LeL$-D$|_);T0(|mmy zw18|5AO?X;!IOa`XMsm#F;KxA5N2eb5`33|fjK2JB%&n3*T*V3KUXg?B|j-uuOhbq ztjngt3dqb&ElE_U$j!+swyLmI0;{kBvO&W7N(x{lCE2!05xxNm&iO^D3TAo+dIm~% zTnY*bHbp6ERzWUqQ0+jTtx`rwNr9EVetCJhUb(Seeo?xG?W zUP)qwZeFo6#1NP{E~&-IMVSR9nfZANAafIw@=Hr>m6Sjh!2!gbDamkq3QCJ|z_z3$ z>!;?V=BDPA6zd!68R}!xSCW~AaA96CG&q0(qYsh+YBRv9&9k5+*#sC;t`$J{K>Y`F zXfoK|;*u17BnA3L1_l&2TID3>rQ0f1=%%EmC6?xtDA}dw#{VXY6@1)<}w<0%s=Pfa?zb|0B=i|Fl`%6pn)1E)MEILWsdaoRp z;N@R=qR+U_PRp7fa;*OCq*}2%io6N?BR5oLUhThKdSUv{m$xkU%bLvpxwTfk>W@Y7 zhc$=Y7*||jZh84>t(5&;qcaRl3V6^49j1%PAH8P>J&L%e(-71+vn1n9((MEJyC3BI z{$%UQ`suqg@3~Vl^=`{}m|vWY^W9{B@|<16w=CK1N^K4uoE04z_p+Wj z#+DW@xKVcdfj3inxhJGET>WjYv8}pxy}r(+4;vJ={NEmRIQ5{KOed?*3P%PO2L=`` bl@H9pK{<;y9y+%SR0Mju`njxgN@xNATXWz$ delta 432 zcmV;h0Z;yg3)cgXF@FSSK}|sb0I`n?{9y$E000SaNLh0L01m?d01m?e$8V@)0004O zNklK}y3=5C-79v|w?i6^)DH&YMUt;2~VPcJCzwuiyoW8_&_5c9AGXS5h%e zow2_z#3W#BJ2?Lb(>HmG&NC*=1M8R7wFF{`-%MXy~LSMvy5Z^|9q$6-rx9>UQJ z4os;mfLauxJ*yW_L_|bHL_|bHL`2@yE{m_*DwgHV7GPByGlmQBwK;o&sb9&`@kQO{ zZ1djWx^<`RqJM$?0u;S|L+nUwNo*tElSmM|I13RG(GP+)9LR;;zq0(5?;U1H?=DY~ zN7^y{=OTPwympwFk~`q-CY6pUm!?5Fr`Mr}0z}2e=%Y)NM#_FCxMVBf1jBc?2 z7~RqWm|hrNvY-XfmmR#C@eYs=&%Xn)UcA2J<5h=`04Wl;v;gHIb*bcni1#HiA|moD airxV=JijmUa0|fz0000 Date: Sat, 20 Jan 2024 02:31:35 +1100 Subject: [PATCH 02/66] Actually fix carrot oculine this time (#24290) SEEDS MAN --- Resources/Prototypes/Hydroponics/seeds.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Resources/Prototypes/Hydroponics/seeds.yml b/Resources/Prototypes/Hydroponics/seeds.yml index 818ecbb3caa..7c94546602c 100644 --- a/Resources/Prototypes/Hydroponics/seeds.yml +++ b/Resources/Prototypes/Hydroponics/seeds.yml @@ -127,6 +127,10 @@ Min: 1 Max: 5 PotencyDivisor: 20 + Oculine: + Min: 2 + Max: 6 + PotencyDivisor: 20 Vitamin: Min: 1 Max: 4 From 818b07ecf82bdd72dc5524f6bc093067b2ef6472 Mon Sep 17 00:00:00 2001 From: Kara Date: Fri, 19 Jan 2024 08:33:07 -0700 Subject: [PATCH 03/66] Destruction & impact sound rework pass 1 (#24282) * Various sounds ported * Replace wall_bonk.ogg * Metal/metalglass break sound pass * Replace metalbreak.ogg * Replace woodhit * Replcae tap.ogg n some smack uses * Fix lint * Replace bang.ogg and some instances of hit_kick.ogg * couple more * fix wood sound * i may be stupid * le attributing * bro what * standardize more destruction sounds * fix melee hit sound cutting off * window threshold sounds and remove `destroySound` it literally doesnt exist --- .../DestructibleTestPrototypes.cs | 4 +- .../DestructibleThresholdActivationTest.cs | 3 - .../Ame/Components/AmeControllerComponent.cs | 2 +- .../ImmovableRod/ImmovableRodComponent.cs | 2 +- .../Doors/Components/DoorComponent.cs | 2 +- .../Weapons/Melee/MeleeWeaponComponent.cs | 2 +- .../Weapons/Melee/SharedMeleeWeaponSystem.cs | 19 +++-- .../Equipment/ArtifactCrusherComponent.cs | 2 +- Resources/Audio/Effects/attributions.yml | 29 ++++++-- Resources/Audio/Effects/bang.ogg | Bin 8209 -> 0 bytes Resources/Audio/Effects/glass_break1.ogg | Bin 19725 -> 16011 bytes Resources/Audio/Effects/glass_break2.ogg | Bin 15999 -> 15014 bytes Resources/Audio/Effects/glass_break3.ogg | Bin 27378 -> 21547 bytes Resources/Audio/Effects/glass_break4.ogg | Bin 0 -> 19207 bytes Resources/Audio/Effects/glass_crack1.ogg | Bin 0 -> 6312 bytes Resources/Audio/Effects/glass_crack2.ogg | Bin 0 -> 4486 bytes Resources/Audio/Effects/glass_crack3.ogg | Bin 0 -> 5967 bytes Resources/Audio/Effects/glass_crack4.ogg | Bin 0 -> 6812 bytes Resources/Audio/Effects/glass_hit.ogg | Bin 6820 -> 0 bytes .../{wall_bonk.ogg => glass_smack.ogg} | Bin 5033 -> 6177 bytes Resources/Audio/Effects/glass_smash.ogg | Bin 0 -> 12477 bytes Resources/Audio/Effects/metal_break1.ogg | Bin 0 -> 11144 bytes Resources/Audio/Effects/metal_break2.ogg | Bin 0 -> 9648 bytes Resources/Audio/Effects/metal_break3.ogg | Bin 0 -> 9029 bytes Resources/Audio/Effects/metal_break4.ogg | Bin 0 -> 9327 bytes Resources/Audio/Effects/metal_break5.ogg | Bin 0 -> 13190 bytes .../Audio/Effects/metal_glass_break1.ogg | Bin 0 -> 16700 bytes .../Audio/Effects/metal_glass_break2.ogg | Bin 0 -> 9545 bytes Resources/Audio/Effects/metal_scrape1.ogg | Bin 0 -> 8005 bytes Resources/Audio/Effects/metal_scrape2.ogg | Bin 0 -> 12777 bytes Resources/Audio/Effects/metal_scrape3.ogg | Bin 0 -> 9540 bytes Resources/Audio/Effects/metal_slam1.ogg | Bin 0 -> 13162 bytes Resources/Audio/Effects/metal_slam2.ogg | Bin 0 -> 17526 bytes Resources/Audio/Effects/metal_slam3.ogg | Bin 0 -> 21542 bytes Resources/Audio/Effects/metal_slam4.ogg | Bin 0 -> 9859 bytes Resources/Audio/Effects/metal_slam5.ogg | Bin 0 -> 11616 bytes Resources/Audio/Effects/metal_thud1.ogg | Bin 0 -> 19048 bytes Resources/Audio/Effects/metal_thud2.ogg | Bin 0 -> 22257 bytes Resources/Audio/Effects/metal_thud3.ogg | Bin 0 -> 20877 bytes Resources/Audio/Effects/metalbreak.ogg | Bin 12145 -> 0 bytes Resources/Audio/Effects/weak_hit1.ogg | Bin 0 -> 5497 bytes .../tap.ogg => Effects/weak_hit2.ogg} | Bin Resources/Audio/Effects/window_shatter1.ogg | Bin 0 -> 28813 bytes Resources/Audio/Effects/window_shatter2.ogg | Bin 0 -> 33922 bytes Resources/Audio/Effects/window_shatter3.ogg | Bin 0 -> 30988 bytes Resources/Audio/Effects/wood_destroy1.ogg | Bin 0 -> 13258 bytes Resources/Audio/Effects/wood_destroy2.ogg | Bin 0 -> 7030 bytes Resources/Audio/Effects/wood_destroy3.ogg | Bin 0 -> 14637 bytes .../Audio/Effects/wood_destroy_heavy1.ogg | Bin 0 -> 14493 bytes Resources/Audio/Effects/woodhit.ogg | Bin 7986 -> 0 bytes .../Mobs/Cyborgs/base_borg_chassis.yml | 6 +- .../Entities/Mobs/Player/guardian.yml | 2 +- .../Entities/Mobs/Player/silicon.yml | 2 +- .../Objects/Devices/station_beacon.yml | 2 +- .../Entities/Objects/Misc/fluff_lights.yml | 4 +- .../Entities/Objects/Misc/tiles.yml | 2 +- .../Entities/Objects/Power/lights.yml | 3 +- .../Entities/Objects/Shields/shields.yml | 20 +++-- .../Objects/Specific/Janitorial/janitor.yml | 4 +- .../Objects/Specific/Kitchen/foodcarts.yml | 2 +- .../Objects/Specific/Security/barrier.yml | 2 +- .../Objects/Specific/Security/target.yml | 4 +- .../Service/vending_machine_restock.yml | 2 +- .../Entities/Objects/Vehicles/buckleable.yml | 6 +- .../Weapons/Guns/Projectiles/projectiles.yml | 6 +- .../Entities/Objects/Weapons/Guns/turrets.yml | 4 +- .../Objects/Weapons/Throwable/bola.yml | 3 +- .../Prototypes/Entities/Objects/base_item.yml | 4 +- .../Structures/Decoration/showcase.yml | 2 +- .../Dispensers/base_structuredispensers.yml | 2 +- .../Entities/Structures/Dispensers/chem.yml | 3 + .../Structures/Doors/Airlocks/airlocks.yml | 5 +- .../Doors/Airlocks/base_structureairlocks.yml | 4 + .../Doors/MaterialDoors/material_doors.yml | 2 +- .../Doors/Windoors/base_structurewindoors.yml | 3 +- .../Structures/Furniture/Tables/tables.yml | 36 ++++++--- .../Entities/Structures/Furniture/altar.yml | 6 +- .../Entities/Structures/Furniture/beds.yml | 4 +- .../Structures/Furniture/bookshelf.yml | 2 +- .../Entities/Structures/Furniture/chairs.yml | 6 +- .../Structures/Furniture/rollerbeds.yml | 3 +- .../Entities/Structures/Furniture/sink.yml | 2 +- .../Structures/Lighting/base_lighting.yml | 9 ++- .../Structures/Lighting/ground_lighting.yml | 2 +- .../Computers/base_structurecomputers.yml | 3 +- .../Structures/Machines/Computers/frame.yml | 2 +- .../Structures/Machines/Medical/cryo_pod.yml | 3 + .../Structures/Machines/anomaly_equipment.yml | 2 +- .../Machines/base_structuremachines.yml | 2 +- .../Structures/Machines/chem_master.yml | 3 + .../Structures/Machines/cloning_machine.yml | 3 + .../Machines/crew_monitor_server.yml | 2 +- .../Structures/Machines/fatextractor.yml | 3 + .../Entities/Structures/Machines/frame.yml | 6 ++ .../Structures/Machines/gravity_generator.yml | 2 +- .../Entities/Structures/Machines/lathe.yml | 3 + .../Machines/material_reclaimer.yml | 3 + .../Structures/Machines/medical_scanner.yml | 3 + .../Entities/Structures/Machines/research.yml | 4 +- .../Structures/Machines/smartfridge.yml | 4 +- .../Structures/Machines/telecomms.yml | 3 + .../Structures/Machines/vending_machines.yml | 2 +- .../Structures/Piping/Atmospherics/binary.yml | 3 + .../Structures/Piping/Atmospherics/pipes.yml | 2 +- .../Piping/Atmospherics/portable.yml | 2 +- .../Structures/Piping/Atmospherics/unary.yml | 2 +- .../Disposal/high_pressure_machine_frame.yml | 3 + .../Structures/Piping/Disposal/pipes.yml | 3 + .../Structures/Piping/Disposal/units.yml | 2 +- .../Power/Generation/Singularity/emitter.yml | 2 +- .../Power/Generation/Tesla/coil.yml | 8 +- .../Power/Generation/generators.yml | 6 +- .../Power/Generation/portable_generator.yml | 10 +-- .../Structures/Power/Generation/solar.yml | 3 +- .../Entities/Structures/Power/apc.yml | 9 +++ .../Entities/Structures/Power/chargers.yml | 2 +- .../Entities/Structures/Power/substation.yml | 4 +- .../Structures/Shuttles/thrusters.yml | 6 +- .../Storage/Canisters/gas_canisters.yml | 26 +++---- .../Closets/Lockers/base_structurelockers.yml | 2 +- .../Storage/Closets/base_structureclosets.yml | 10 +-- .../Storage/Crates/base_structurecrates.yml | 6 ++ .../Structures/Storage/Crates/crates.yml | 10 +-- .../Storage/Tanks/base_structuretanks.yml | 2 +- .../Structures/Storage/filing_cabinets.yml | 4 +- .../Entities/Structures/Storage/storage.yml | 2 +- .../Structures/Wallmounts/Signs/bar_sign.yml | 3 +- .../Structures/Wallmounts/air_alarm.yml | 2 +- .../Entities/Structures/Wallmounts/bell.yml | 4 +- .../Structures/Wallmounts/defib_cabinet.yml | 2 +- .../Wallmounts/extinguisher_cabinet.yml | 2 +- .../Structures/Wallmounts/fire_alarm.yml | 2 +- .../Structures/Wallmounts/fireaxe_cabinet.yml | 3 +- .../Structures/Wallmounts/intercom.yml | 2 +- .../Structures/Wallmounts/noticeboard.yml | 2 +- .../Wallmounts/surveillance_camera.yml | 2 +- .../Entities/Structures/Wallmounts/switch.yml | 2 +- .../Structures/Wallmounts/walldispenser.yml | 6 +- .../Entities/Structures/Walls/fence_metal.yml | 4 +- .../Entities/Structures/Walls/girders.yml | 9 +++ .../Entities/Structures/Walls/railing.yml | 8 +- .../Entities/Structures/Walls/walls.yml | 70 ++++++++++-------- .../Entities/Structures/Windows/mining.yml | 2 +- .../Entities/Structures/Windows/plasma.yml | 7 +- .../Structures/Windows/reinforced.yml | 7 +- .../Entities/Structures/Windows/rplasma.yml | 7 +- .../Entities/Structures/Windows/ruranium.yml | 2 +- .../Entities/Structures/Windows/shuttle.yml | 2 +- .../Entities/Structures/Windows/uranium.yml | 2 +- .../Entities/Structures/Windows/window.yml | 16 ++-- .../Entities/Structures/hydro_tray.yml | 3 + .../Entities/Structures/meat_spike.yml | 2 +- .../SoundCollections/destruction.yml | 63 ++++++++++++++++ .../SoundCollections/glassbreak.yml | 6 -- .../{impacts.yml => gun_impacts.yml} | 0 .../SoundCollections/hit_impacts.yml | 29 ++++++++ .../Prototypes/SoundCollections/traits.yml | 4 +- 157 files changed, 455 insertions(+), 236 deletions(-) delete mode 100644 Resources/Audio/Effects/bang.ogg create mode 100644 Resources/Audio/Effects/glass_break4.ogg create mode 100644 Resources/Audio/Effects/glass_crack1.ogg create mode 100644 Resources/Audio/Effects/glass_crack2.ogg create mode 100644 Resources/Audio/Effects/glass_crack3.ogg create mode 100644 Resources/Audio/Effects/glass_crack4.ogg delete mode 100644 Resources/Audio/Effects/glass_hit.ogg rename Resources/Audio/Effects/{wall_bonk.ogg => glass_smack.ogg} (60%) create mode 100644 Resources/Audio/Effects/glass_smash.ogg create mode 100644 Resources/Audio/Effects/metal_break1.ogg create mode 100644 Resources/Audio/Effects/metal_break2.ogg create mode 100644 Resources/Audio/Effects/metal_break3.ogg create mode 100644 Resources/Audio/Effects/metal_break4.ogg create mode 100644 Resources/Audio/Effects/metal_break5.ogg create mode 100644 Resources/Audio/Effects/metal_glass_break1.ogg create mode 100644 Resources/Audio/Effects/metal_glass_break2.ogg create mode 100644 Resources/Audio/Effects/metal_scrape1.ogg create mode 100644 Resources/Audio/Effects/metal_scrape2.ogg create mode 100644 Resources/Audio/Effects/metal_scrape3.ogg create mode 100644 Resources/Audio/Effects/metal_slam1.ogg create mode 100644 Resources/Audio/Effects/metal_slam2.ogg create mode 100644 Resources/Audio/Effects/metal_slam3.ogg create mode 100644 Resources/Audio/Effects/metal_slam4.ogg create mode 100644 Resources/Audio/Effects/metal_slam5.ogg create mode 100644 Resources/Audio/Effects/metal_thud1.ogg create mode 100644 Resources/Audio/Effects/metal_thud2.ogg create mode 100644 Resources/Audio/Effects/metal_thud3.ogg delete mode 100644 Resources/Audio/Effects/metalbreak.ogg create mode 100644 Resources/Audio/Effects/weak_hit1.ogg rename Resources/Audio/{Weapons/tap.ogg => Effects/weak_hit2.ogg} (100%) create mode 100644 Resources/Audio/Effects/window_shatter1.ogg create mode 100644 Resources/Audio/Effects/window_shatter2.ogg create mode 100644 Resources/Audio/Effects/window_shatter3.ogg create mode 100644 Resources/Audio/Effects/wood_destroy1.ogg create mode 100644 Resources/Audio/Effects/wood_destroy2.ogg create mode 100644 Resources/Audio/Effects/wood_destroy3.ogg create mode 100644 Resources/Audio/Effects/wood_destroy_heavy1.ogg delete mode 100644 Resources/Audio/Effects/woodhit.ogg create mode 100644 Resources/Prototypes/SoundCollections/destruction.yml delete mode 100644 Resources/Prototypes/SoundCollections/glassbreak.yml rename Resources/Prototypes/SoundCollections/{impacts.yml => gun_impacts.yml} (100%) create mode 100644 Resources/Prototypes/SoundCollections/hit_impacts.yml diff --git a/Content.IntegrationTests/Tests/Destructible/DestructibleTestPrototypes.cs b/Content.IntegrationTests/Tests/Destructible/DestructibleTestPrototypes.cs index a4f623e8b3f..12292f4652d 100644 --- a/Content.IntegrationTests/Tests/Destructible/DestructibleTestPrototypes.cs +++ b/Content.IntegrationTests/Tests/Destructible/DestructibleTestPrototypes.cs @@ -64,7 +64,7 @@ public static class DestructibleTestPrototypes behaviors: - !type:PlaySoundBehavior sound: - path: /Audio/Effects/woodhit.ogg + collection: WoodDestroy - !type:SpawnEntitiesBehavior spawn: {SpawnedEntityId}: @@ -86,7 +86,7 @@ public static class DestructibleTestPrototypes behaviors: - !type:PlaySoundBehavior sound: - path: /Audio/Effects/woodhit.ogg + collection: WoodDestroyHeavy - !type:SpawnEntitiesBehavior spawn: {SpawnedEntityId}: diff --git a/Content.IntegrationTests/Tests/Destructible/DestructibleThresholdActivationTest.cs b/Content.IntegrationTests/Tests/Destructible/DestructibleThresholdActivationTest.cs index 47c0d849772..80f750c715c 100644 --- a/Content.IntegrationTests/Tests/Destructible/DestructibleThresholdActivationTest.cs +++ b/Content.IntegrationTests/Tests/Destructible/DestructibleThresholdActivationTest.cs @@ -106,7 +106,6 @@ await server.WaitAssertion(() => Assert.Multiple(() => { Assert.That(actsThreshold.Acts, Is.EqualTo(ThresholdActs.Breakage)); - Assert.That(audio.GetSound(soundThreshold.Sound), Is.EqualTo("/Audio/Effects/woodhit.ogg")); Assert.That(spawnThreshold.Spawn, Is.Not.Null); Assert.That(spawnThreshold.Spawn, Has.Count.EqualTo(1)); Assert.That(spawnThreshold.Spawn.Single().Key, Is.EqualTo(SpawnedEntityId)); @@ -173,7 +172,6 @@ await server.WaitAssertion(() => Assert.Multiple(() => { Assert.That(actsThreshold.Acts, Is.EqualTo(ThresholdActs.Breakage)); - Assert.That(audio.GetSound(soundThreshold.Sound), Is.EqualTo("/Audio/Effects/woodhit.ogg")); Assert.That(spawnThreshold.Spawn, Is.Not.Null); Assert.That(spawnThreshold.Spawn, Has.Count.EqualTo(1)); Assert.That(spawnThreshold.Spawn.Single().Key, Is.EqualTo(SpawnedEntityId)); @@ -236,7 +234,6 @@ await server.WaitAssertion(() => Assert.Multiple(() => { Assert.That(actsThreshold.Acts, Is.EqualTo(ThresholdActs.Breakage)); - Assert.That(audio.GetSound(soundThreshold.Sound), Is.EqualTo("/Audio/Effects/woodhit.ogg")); Assert.That(spawnThreshold.Spawn, Is.Not.Null); Assert.That(spawnThreshold.Spawn, Has.Count.EqualTo(1)); Assert.That(spawnThreshold.Spawn.Single().Key, Is.EqualTo(SpawnedEntityId)); diff --git a/Content.Server/Ame/Components/AmeControllerComponent.cs b/Content.Server/Ame/Components/AmeControllerComponent.cs index abdb76c9e33..2b7a46e947a 100644 --- a/Content.Server/Ame/Components/AmeControllerComponent.cs +++ b/Content.Server/Ame/Components/AmeControllerComponent.cs @@ -59,7 +59,7 @@ public sealed partial class AmeControllerComponent : SharedAmeControllerComponen /// [DataField("injectSound")] [ViewVariables(VVAccess.ReadWrite)] - public SoundSpecifier InjectSound = new SoundPathSpecifier("/Audio/Effects/bang.ogg"); + public SoundSpecifier InjectSound = new SoundCollectionSpecifier("MetalThud"); /// /// The last time this could have injected fuel into the AME. diff --git a/Content.Server/ImmovableRod/ImmovableRodComponent.cs b/Content.Server/ImmovableRod/ImmovableRodComponent.cs index 75b82d117a0..f3605914795 100644 --- a/Content.Server/ImmovableRod/ImmovableRodComponent.cs +++ b/Content.Server/ImmovableRod/ImmovableRodComponent.cs @@ -8,7 +8,7 @@ public sealed partial class ImmovableRodComponent : Component public int MobCount = 0; [DataField("hitSound")] - public SoundSpecifier Sound = new SoundPathSpecifier("/Audio/Effects/bang.ogg"); + public SoundSpecifier Sound = new SoundCollectionSpecifier("MetalSlam"); [DataField("hitSoundProbability")] public float HitSoundProbability = 0.1f; diff --git a/Content.Shared/Doors/Components/DoorComponent.cs b/Content.Shared/Doors/Components/DoorComponent.cs index d4d121a87a6..135f8b0856d 100644 --- a/Content.Shared/Doors/Components/DoorComponent.cs +++ b/Content.Shared/Doors/Components/DoorComponent.cs @@ -100,7 +100,7 @@ public sealed partial class DoorComponent : Component /// Sound to play when a disarmed (hands comp with 0 hands) entity opens the door. What? /// [DataField("tryOpenDoorSound")] - public SoundSpecifier TryOpenDoorSound = new SoundPathSpecifier("/Audio/Effects/bang.ogg"); + public SoundSpecifier TryOpenDoorSound = new SoundCollectionSpecifier("MetalSlam"); /// /// Sound to play when door has been emagged or possibly electrically tampered diff --git a/Content.Shared/Weapons/Melee/MeleeWeaponComponent.cs b/Content.Shared/Weapons/Melee/MeleeWeaponComponent.cs index cec7402faca..27c3a5f0dfa 100644 --- a/Content.Shared/Weapons/Melee/MeleeWeaponComponent.cs +++ b/Content.Shared/Weapons/Melee/MeleeWeaponComponent.cs @@ -138,7 +138,7 @@ public sealed partial class MeleeWeaponComponent : Component /// [ViewVariables(VVAccess.ReadWrite)] [DataField("soundNoDamage"), AutoNetworkedField] - public SoundSpecifier NoDamageSound { get; set; } = new SoundPathSpecifier("/Audio/Weapons/tap.ogg"); + public SoundSpecifier NoDamageSound { get; set; } = new SoundCollectionSpecifier("WeakHit"); } /// diff --git a/Content.Shared/Weapons/Melee/SharedMeleeWeaponSystem.cs b/Content.Shared/Weapons/Melee/SharedMeleeWeaponSystem.cs index 6fa461860f6..11228bba9ec 100644 --- a/Content.Shared/Weapons/Melee/SharedMeleeWeaponSystem.cs +++ b/Content.Shared/Weapons/Melee/SharedMeleeWeaponSystem.cs @@ -740,22 +740,27 @@ public void PlayHitSound(EntityUid target, EntityUid? user, string? type, SoundS { var playedSound = false; + if (Deleted(target)) + return; + + // hitting can obv destroy an entity so we play at coords and not following them + var coords = Transform(target).Coordinates; // Play sound based off of highest damage type. if (TryComp(target, out var damageSoundComp)) { if (type == null && damageSoundComp.NoDamageSound != null) { - Audio.PlayPredicted(damageSoundComp.NoDamageSound, target, user, AudioParams.Default.WithVariation(DamagePitchVariation)); + Audio.PlayPredicted(damageSoundComp.NoDamageSound, coords, user, AudioParams.Default.WithVariation(DamagePitchVariation)); playedSound = true; } else if (type != null && damageSoundComp.SoundTypes?.TryGetValue(type, out var damageSoundType) == true) { - Audio.PlayPredicted(damageSoundType, target, user, AudioParams.Default.WithVariation(DamagePitchVariation)); + Audio.PlayPredicted(damageSoundType, coords, user, AudioParams.Default.WithVariation(DamagePitchVariation)); playedSound = true; } else if (type != null && damageSoundComp.SoundGroups?.TryGetValue(type, out var damageSoundGroup) == true) { - Audio.PlayPredicted(damageSoundGroup, target, user, AudioParams.Default.WithVariation(DamagePitchVariation)); + Audio.PlayPredicted(damageSoundGroup, coords, user, AudioParams.Default.WithVariation(DamagePitchVariation)); playedSound = true; } } @@ -765,12 +770,12 @@ public void PlayHitSound(EntityUid target, EntityUid? user, string? type, SoundS { if (hitSoundOverride != null) { - Audio.PlayPredicted(hitSoundOverride, target, user, AudioParams.Default.WithVariation(DamagePitchVariation)); + Audio.PlayPredicted(hitSoundOverride, coords, user, AudioParams.Default.WithVariation(DamagePitchVariation)); playedSound = true; } else if (hitSound != null) { - Audio.PlayPredicted(hitSound, target, user, AudioParams.Default.WithVariation(DamagePitchVariation)); + Audio.PlayPredicted(hitSound, coords, user, AudioParams.Default.WithVariation(DamagePitchVariation)); playedSound = true; } } @@ -789,10 +794,10 @@ public void PlayHitSound(EntityUid target, EntityUid? user, string? type, SoundS break; // No damage, fallback to tappies case null: - Audio.PlayPredicted(new SoundPathSpecifier("/Audio/Weapons/tap.ogg"), target, user, AudioParams.Default.WithVariation(DamagePitchVariation)); + Audio.PlayPredicted(new SoundCollectionSpecifier("WeakHit"), target, user, AudioParams.Default.WithVariation(DamagePitchVariation)); break; case "Brute": - Audio.PlayPredicted(new SoundPathSpecifier("/Audio/Weapons/smash.ogg"), target, user, AudioParams.Default.WithVariation(DamagePitchVariation)); + Audio.PlayPredicted(new SoundCollectionSpecifier("MetalThud"), target, user, AudioParams.Default.WithVariation(DamagePitchVariation)); break; } } diff --git a/Content.Shared/Xenoarchaeology/Equipment/ArtifactCrusherComponent.cs b/Content.Shared/Xenoarchaeology/Equipment/ArtifactCrusherComponent.cs index 6bfbe5d05e2..687b29f2083 100644 --- a/Content.Shared/Xenoarchaeology/Equipment/ArtifactCrusherComponent.cs +++ b/Content.Shared/Xenoarchaeology/Equipment/ArtifactCrusherComponent.cs @@ -88,7 +88,7 @@ public sealed partial class ArtifactCrusherComponent : Component /// Sound played at the end of a successful crush. /// [DataField, AutoNetworkedField] - public SoundSpecifier? CrushingCompleteSound = new SoundPathSpecifier("/Audio/Effects/metal_crunch.ogg"); + public SoundSpecifier? CrushingCompleteSound = new SoundCollectionSpecifier("MetalCrunch"); /// /// Sound played throughout the entire crushing. Cut off if ended early. diff --git a/Resources/Audio/Effects/attributions.yml b/Resources/Audio/Effects/attributions.yml index fecc4267ba5..f8568718461 100644 --- a/Resources/Audio/Effects/attributions.yml +++ b/Resources/Audio/Effects/attributions.yml @@ -77,12 +77,12 @@ license: "CC-BY-NC-SA-3.0" copyright: "Taken from DragishaRambo21 via freesound.org and mixed from stereo to mono." source: "https://freesound.org/people/DragishaRambo21/sounds/345920/" - + - files: ["tesla_consume.ogg"] license: "CC0-1.0" copyright: "Taken from egomassive via freesound.org and mixed from stereo to mono." source: "https://freesound.org/people/egomassive/sounds/536741/" - + - files: ["sizzle.ogg"] license: "CC-BY-SA-3.0" copyright: "Recorded by deltanedas for SS14" @@ -93,11 +93,6 @@ license: Custom source: https://gdc.sonniss.com -- files: ["wall_bonk.ogg"] - copyright: '"Nuts and Bolts" by 344 Audio of SONNISS.com. See https://sonniss.com/gdc-bundle-license/ for license.' - license: Custom - source: https://gdc.sonniss.com - - files: ["pop.ogg"] copyright: '"pop.ogg" by mirrorcult of GitHub.com' license: "CC0-1.0" @@ -132,6 +127,26 @@ license: "CC-BY-NC-4.0" source: "https://freesound.org/people/PNMCarrieRailfan/sounds/682439/" +- files: ["metal_slam5.ogg", "metal_break1.ogg", "metal_break1.ogg", "metal_break1.ogg", "metal_break1.ogg", "metal_break5.ogg", "metal_glass_break1.ogg", "metal_glass_break2.ogg"] + copyright: 'Created by and released in a sound pack by PNMCarrieRailfan on Freesound.org. Cut, edited and exported to mono .ogg by mirrorcult (github)' + license: "CC-BY-NC-4.0" + source: "https://freesound.org/people/PNMCarrieRailfan/packs/38016/" + +- files: ["glass_break1.ogg", "glass_break2.ogg", "glass_break3.ogg", "glass_break4.ogg", "glass_smack.ogg", "glass_smash.ogg", "metal_thud1.ogg", "metal_thud2.ogg", "metal_thud3.ogg", "weak_hit.ogg", "wood_destroy1.ogg", "window_shatter1.ogg", "window_shatter2.ogg", "window_shatter3.ogg"] + copyright: "CM-SS13 at 84dc482572649ae7c2264c71ea1fe9fd169e4774" + license: "CC-BY-SA-3.0" + source: "https://github.com/cmss13-devs/cmss13" + +- files: ["glass_crack1.ogg", "glass_crack2.ogg", "glass_crack3.ogg", "glass_crack4.ogg", "metal_scrape1.ogg", "metal_scrape2.ogg", "metal_scrape3.ogg"] + copyright: "Baystation 12 at 23c0d851246ebbaeb0df647318ce9874da895d3d" + license: "CC-BY-SA-3.0" + source: "https://github.com/Baystation12/Baystation12" + +- files: ["wood_destroy2.ogg", "wood_destroy3.ogg", "wood_destroy_heavy1.ogg", "metal_slam1.ogg", "metal_slam2.ogg", "metal_slam3.ogg"] + copyright: "Based on sounds from OpenSourceWeb at edb003dc8ff5009476a9bcb74e79206039fb3390, edited and reworked by mirrorcult" + license: "CC-BY-SA-3.0" + source: "https://github.com/Open-SourceWeb/OpenSourceWeb" + - files: ["voteding.ogg"] copyright: '"Bike, Bell Ding, Single, 01-01.wav" byInspectorJ (www.jshaw.co.uk) of Freesound.org; The volume has been reduced.' license: "CC-BY-4.0" diff --git a/Resources/Audio/Effects/bang.ogg b/Resources/Audio/Effects/bang.ogg deleted file mode 100644 index 656983f09808314e58d95e07f18bcce6c82fc7ba..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8209 zcmaiY2UJwcvUU$S3_&t7>VO~&f-)o-5DALPkYvapDmmw%h`=a8Km~*mk&I*{2$Gc~ zl5++{!2qZj$e9Xb~M3R|j`b8!sDIZw#3?f_iT$M)kBI0?@%3tR}jJ z*dJp604o4j1ToBUw(6K{Qih0M0_i+?)FKg)K#FMLvATTrQe6Qg<3h|8n(+m1|CUj+1LIMu?8dgc?A*D4*vKYf65}iqn?=l9w4J|5c>CUzJh3d=RgR9Wk^juA?!( z;njzRbO!XXF$6|-1O8Y03E?s3}U1iAKSD;U+ z$h!gQ4v9JcquH9o+x*{6*}h#AC_`Jed7#=n1l0(FZJuJZyB2N-(5K1-u@+D1b6(PI zUMFEY=Y6Jwq}j8g$?~@o$ZiKf8H;N1Ky^TC5X6T(WsJNO$Go)0pee`}`R~`wUA#a= z_)~1-9f@>OF&4XKAwsr18FZ(Sdy?P_;TfOMiT#PoJvipXne=>)q@kt={UqU<{Dh=k z4?6eqeuTcnbUtcHf7GAo)vJz7%-$RMu_e(K&? zT2pSJ1EOdwIrww<;|_X9GsmT4+c8-O??s)(=LcUP@Cs*p-`dq24L}I%E{gx|cA>n7 z;;h(6(N2+P-I85mlGW*OO8-&^IvhbuoG9 z^QJ1)eB5VhEMRKv-evBv{{+^*A_u^r3E7QFlI2}&TXL|rD*c{=|Bf6Fj<)-#j{AZd zWrA9RVm(XJI?K`n>}tBwT6&!31DrlXTsC^L=0h?zLk2b@zBUt;HfB`;CY65$%wE_` zjrsf|a>yYffQ$NgK9=g=k&`YG^+7J`uzIYZN$e57c)N(i{70!@@*gw&N95Q?<|ahu zhDXkYM~OtlJ47TF)I4_XES|6ZKij_|=bWb?Y%p@vJO%#|IgMDSGri2Ys6Hb{ z2h$!E&;@{qZO6Xi@$6OaNI%nyrB5NXK$1m9*xM9 zEH7@RrM9q|)XMSD;b6 z&y_RbOT+J_jc-AbF5n&cNyDP8X#FVl_T)G=ygi0A zNTAKgzJPbiAdM27N^^!SzoWCb@DAdnK~u;4)?w4T`>a?c=d!GO)#5*)2#4eHD%o0RZ)eZlVedU6fTs_qk%82;Bs=s&hE!M6p@AJw{V$7LE(B% zGC8A;WP+KC;%K55zG!rqa1Ro!T!@WBS-5EFgIFkh_OR?xOQUd*bZyjHy`BAAd1 zcu`C!D_&hF8y2_>C|J)q_mhlKa6@}}r0C63(>?2=ih`DE%Jd-$ZqL2 zbu20$SEefp9hKA&f>5w6dX-=bE7)&vL*I7uh!BXO1F|BA)ECGsxD&>13q3v1>$pn(=H#CHXvy3k*gjK8QX?#(O zu~RXB_NZl{%oqf5#cZMz9uk~-Y5)39!b=;USkE@FPpEKkh;Td~AgT+#HJBC3{8vyD<6pi2i?3A|KXS`wZdNx|N5I zZm%jo%eMPy<@{HXp0M}$kDC48)%$-NnK>0f$o;be$_)&(V275^@SGfGKcg5~M^96vTA}Pw zf+Lh7PnTUjOcph+avqaCYI;W;h8!L~THcijBfwW$#w`o6S%U-^pFCEDFn~;*;MSeQ zF%_ehcPpU%VTKsBydyJe$_S=i-2w6ZQ;)C*S14F< zpTR>^kuky_0^P7T7ZUTYIac|(J!nBd&F#HMx}drXExHUihdBU2CbBycf+PC90&W+K zA#AXeBSFr4b0jt>W4F8`5y*&yrXdq{p}ISw=O>$M_htUQwd7h5LX?u6g%5ug%bw(yLQu-P1X1gFo* zmUne^QmpXU=0cJoUgZ9*LC?Yp-)?xKMAHEYR(`3Q$_Nggb|@%>3Io!gHuhsLQc-Lz-5wQT0S126&{1R$0PEg+DHi(-yuiDA9JFP1Hiodn?vz%+u$ z0*Hdt;o;%7QJKvjDFx41hh)9_L?yIKCUPJWY zc8rhBehx5NJpYWg&+DhsM#2axZ6C97V#846l{d9cdK6gjSr&Qe#tzTrK9k}(q1m>p zScL_FW#=<>m42@sz;!-mA{~+?@^t4CbQV**;R*3l)hmUiU5!acV4h{`8s=0vUQNR6 z9K5kK68iJY?Nrx*7SEappACcXQ}&X)I(Bz1%%7exa$k1obzf7qMFoZ2uFQ9%me*GZ znjBc2%w^|VYBM_5JT}`RUfHj5eRM$dl;wx~o8W}j^OifVZDo&=Z@<>+Thb%4r7jOr z2{7gV!X;Y(U3TpD1>E^j*KQlSN=nO7GXjbAE2x zzsiarAOfAwHqtHzCw4T6{65uH$SvL9lvVK18bBqc7w}1K=1H=;XTv({3iFzReb1su z6RFJX@g^DFhGvEnQ(Diox;;6$M=Fb-938B+#$CP`!&sj7o!Ns;q340j%;FD+YEs_& zA8L8V;p24NDSopb9#X_)tQ$s2R&bRuF3sk#F?Qlz-L=m_4w;2#qzWA({QKtnqe=gaVTkZcEh#Gt-%p2;?D`*W``cZ*5v`NsyYASp>3Z_F;>3%> zv-9$~`cR^2=jr`h@*n`*7RpZNTS zzv%0RJ&r&p``X)*zNEs1cc-ROjKzu82an$30T`z z(R^QKb7_Go(IvN&_o1Cn<_NSVDn+VF;5S^mZn+FG$|vX>TsRK@;5=9q94XiMH1o&( zk8h&S>&a#D*-)i5ZpWeS?MxwIuH{ti9+78qvr6)OCCfnj$T?Eg0j;YV)aNWY?LTRk z2?nxu5cxtZxeCFEn4rf&rp<%A^WzZ$vH3yDWhkfi9>G^9PTY4}>(gts& zSRn{64+YpFr~GOumMTuN_eifXVqNz*{N%HBqM_|$3gx8SOyo@@4>7#W!7S2w;H`}m#i(S zl9pQbHhjpuGEo-mabiA^)n20@Xfmw2;iPBxN7s8t(dFqCj#HjKJBS=mHu{x z?qTs_Eg6sb?)_MQ#M=v0-4A>geDS8YuO2LlwOCniynSTo;I{J1@s11nU;P!#sN9VV zZs<~bH!vBa-&t*9(yKy0H5?eHUOuW$b>U`Q^8T~6hn=@xZy$UJ^KHFYnCHEvwo&y_ z9yPb84imK49Ep@sWcpR$UJL&q%AK@#v_JSuu3mOwxbuvji-$geDVf6wkvYx z(Co7}F3z;h+&R=U+m;iovlEbdAR(^Kl)H88YNd0Hg6oAxu?S5})ICjcb)0v43O#V{ z%EWUTORmohT&xX!#&}k;O|+6Fsfa>$Kj-HkYOWFYW?y7z(q|jkFODkzW)PP-hd-GCp3FU@cXiWZnY3tLz&cC_o#}AA9d-w5C zP0h}v*Z`3FEqj*kH?8f4%0T3e8OEdxFHK>}{iuGl1*p322Lior2vWj)&hi_(b?xX@ zxX*@HN8ZsPH`#}2;0CIM5bQUSX=$Nb{te&j6S<-(!Leln)dh|D(~j8ql~$k zOcT*^fLK1VIwr{hL_8i3?x>4=j3Yhy?)-7<&m_)ynRCAe6)5Fuuf|Go zPx9*J7V?;6@E!Nxyu&b{e~tdshbt7?5hH0<^-4kT8&o!>6Z-R0f<7C>4l;gm|H@55 zL)abh!fHlw4u+H85z0-7B!nFfF{hw8UYILrR6&?pfFFEgyOVz3Z>A>RcXV|w^TS0+4P*M--r{NR#;3WGI?q1NOdY9J%Qz+&%YE0MVe`5@07v@t zs1~MP#z`Adm3#|~71kJ>_DFp1(0>sScL;zuRA*h+;7VC8<#h05>5H|#Z}}{PcJB^3 zmj7hFsEp08?s;Of(dgxOd_dq@3c~mR8ob*a`HtMaIUB8P9h$0XF;JN$CvgnH3=Y`R z^)7}@?L>&R2Sr%OnYP2TH|bQ&naY-TEJdF)FN^je;%Dyl*NU!4^C`Y{uDseB3KTy{cVO=F-|7LErct2oG7&0-jr+A1w z8_wTk8gS+Lr#M|kGm1+u9{89|r$s#9e)Oy(_PK>=naXj|E49fYB*YaOiO=526ulB; zgH><8-^w+!>P)L#^c>&O?)R0>DO6 zp~CjqiSZOBIx*TSb}UbSzdpqBt?l;G=9D+g!aFQghd_E-+GR$Gq?7q~o-)2u<&kc^ zadbIWxd8n%)Z?z(RIh_iiW`N$kZV}byEptzQ8G!r*Xy#=oU6qqtlVM-(MB-oEU@r_ zL(;XY{gWiQ4sHwef}+r>J0C@5eh(#nYTBNcrRWk`>^bdsA0BKs%NG)krM~{e&s)+9 z)9;mEV+->R^Rdc1FQ@+`R{BqmxClFMN}`vmEsD2sQNJ}O^`8_`3G|QGrd!Q# zK6P6a*wOa8rFN`ld%XYw)Ih4jYHiz6^vy*YjZ>+o1l!P8C_hW?clXx((x?uuOeb_f z#f<+fj+L1AJ@=kgNFK~Vb!;h&)w?L>H6!2pw@Wq*jx~UA6eVLoK1X&p;w4iqr38((zG|!#Iz%tfr(E@cN(qF-cAx%_OGSC z)_v`JMa{wo(Ra)2KepNmxiZ&@DNS3NVyc{UmJ9R4cd>E}Pt?xcyLAli=$-s2vk_P1 zBIO`^;lc(D&Ax;m^!pmhE zvBs&c60W@?FVfjcZ1R0O@M>rw=Q!+Js_`@rKG~A!qZ`tV_PLJ7zvV7fI$Ta#&mYOw zIPmqB{RHvQu$;TwB{16~C~;)5nIT$1QK=X@RU`idA2C-XS*X5}`}K?10FWS-cR%I& z))&o(`Kk5=_m%JT8ohW*v;CWNo$31_)+wan_3Gl+sJEAtUP=*XDB~L!;)wW5@`nQP*FT=d06>GdkwiTF@HMQ~C* zNN<#@QD4e=j&E-LI@P@Pa_0Bk@}F1F+RELygI@R^obstZ zasQH#aFg_vQpTy0TlWeLmzz>Mx^2g2C_(GPXxjHb*JdjC_yBQ}i|6}ysvCa>{?uqi zk5Rf)nWk7M-sNVN>3hY2l>6lSY=zhs5=kul!Q?(2C69`37VoeSof4%3v%g@~^wLQM zR2J*?0%d&`3J~8R_?A?(O}Uih^1kZogOT~i%U-48jf()l zS~b5tYDQ#df3aH*6BTF_$&t}Abm;i{xr8D%4V^Ce!)K7n`jn4J=CPR|x~QGwL~wwp zsnMmLT^QE!YLx0)OyX+D0p{3V%H6*QRL(}w!SEvgJ%I282b^?rD8!D7i89){%>P;I zyFlfU#H_3PD1&vKd&hIV8;_Ja{FRRK{{gxwH$nga diff --git a/Resources/Audio/Effects/glass_break1.ogg b/Resources/Audio/Effects/glass_break1.ogg index fe14cdeda3415a8934a11ae50bba11b14f4f016a..686ce671feca61f295d18e7756d10a2347193649 100644 GIT binary patch delta 12349 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 g-F!*M+T#?mqEX%4?3oYI3)XkjCk0?W0I delta 16116 zcmZX*by!tT)IT~W=uYWS8tLvMU;=`G(xJ4}p__dW5d}m_T2fj{Qu0WOARs9X(jnb> z`M&SH&+obSu0Qsk9W&4DJ+s!V`KV};2iA*|B>T>MXe{`)K+Dph56 z*t=Ui0s;aO;u7LgvRAlQbXUYzi1RCwy(`$i!+(2!7r}s)vGb*$gT;#B&5mca6tBwF zwZ{#G0hlWEJy@&KzrBAmag#+JU)*qB_wT)C?$wR0tt-7|>e^qiySSk2>?(A-aeCkM z^;hWP$_N)TA#ca^7J#y1vlfc)N}I8{%0FWtou>!BPkW$&GkZqn-snrwuLcL+lSwvs zxLcdd;Cy*;iVsBMqw$8Ah@N`l)n>3MIm!}xYuo=E3UN3*=hqWVT)HJLihMCzPP#xH zu0DN>TD0kv`@n-q@Xb+8QZ?4X|KE;VKV%W^v#hFeFHY{Ax;yfmJiOQ{)s741MMXmRShLph0!xOUa@)A%b9ZT_T5c6 zLhvFyZ+5xiNso!CXJyBV{{fQt!t*6o;&yIhb8!&qgRynwtfzQ?nIWy8(u%3Zi^ooD zMz_Hi)B%(26nuba+lMei0R0#V9h9s&st9K<=*9-f6oynMV&{j+bc*&W%6YrBotIO{ z0*L|lTdkkh|DBRyMx(6@dc1_-V45V8!q`sGMy*`T>xa#YRf zIKc71!y|)!IKeX&b#+s^Fci# zJxRNB9~h6s<{$Smk%mM^Ew$u*-xERz)8A&0#FZVL^cMU~GKQBL`Q*%(t}i=3^m$r` zth9I}lB&Nq!vY^Q?l}d);Am$U#wNP_I0$Ty-3YX-(W~ycm@Jq`4C<{AU-b(XR6h^2 zFgGjcF&h<4P_zJC|2&HX2p!sT4DE|0MziZJFBfP7)DKdX)-uKj)r31`NfKVh@B{Fn z?yJCu@#F*=us}#NZYY38YV+ctub2!4tvZRwm=ta0npfSLpgY(z_H`QcaCV7A;U20gU>{O-u7p<8f-f(8GnGC zv*A8!#P^n3Lw336a2m)PF-*CI1lX2mu(w(1ge*TM$)hnQvqE0D)(%@~e!jE`XMZ1H z;{SXJS_NnbfbK0U3hrI2B4evb!;jYyi7Sl343h2o~I|=h+Gy7xRM>w zA^n0B5f#$RagxB%|LxEs{aah{vywR+*E{P{J$2IhO~kj77nHM^3yDV@Zh~MoxZ3)K z&)`J(xA)}8)7-rC+lK;`1w)m8;ZnJ3b|NJ_;n3q;(fDbCOm}0QmuK5L8HhXi2JEcZ zMCT_)0JAnr#%O%tuyzJL>zdkAbH)7I#O>*)>=&<|(=J z4}+M9c{~E|u-qAaN34H;GMPDKnGj=5YtP!x`T=hH-leU$>URZkClzZFUs(aT%wsCC zguV}|7)(~_J^owIxKNRBxn?-`05ev$3d==c!*C^5Nl{N!nC_Y{_OpVXWwPaOJ*;F- z$qWq_e{rs4PAtb1P|H&p>yic4{Y$OCOU2<9L*Zs6-7=g$r$0Fez@>3Z1~KFUJ|-p| z{mtUt={NdossDb)2@gcDs%NF;Q4Y&MydYfRkBRNfNcu!UXa(4woosaffo`D&B^H7^ z7Dj&0%St=-riKe?1_==6yM7?s#s5 zRxNsA5ldR$v}^C_yLgjmON+`EOU3eu!(}5(ye4gQI-6p}C*}dm`VbwuPs|jW-Jn8n z*f_(|@|n!(w;l4zEX3=k{;fyMcMv<0u2`=G4I^`(H-B=#1frxEf7}`_R|MejXz8{{ zH{a1rP+Y=T_f4gWSXP9v`AN!*FPeui54(0C9}0%tnI2fi_^EoGX-WCz4e_RH^mWEgX5D?R}zxE21u!e zpelKk^!@jjB|F6e{#@(=L^2<(@kR;=wT)Z}-fKE3*xC*mtKyB@O|PVXAVpQ-2=6h7 zPQJfY#3Qd>temcvkvViA(T0{>J@R@W5lw`>*;jp4F+$V^%H_8pb_gzgtL6M;lmcwC zaGKUKMLxyc(8`Q&aK2q~m9(WOh39TDP9zI3j^x738O#9fDlhoDCX3MlcLX}1zD463x5~XwQovvg3O>StpC~b*VFZAX1!*){bfuc zD$~eoiR0tc$CRlA$cR{T;J4?t$(>zF0+YTY9L>Eau)qUO@xPN9EKj1sR#T{|j5gYK z+Gb3YcAwM-(y(T;Jc8?C$o@I|7s(XQeZOV;bBu2(TM7}UktO3xwoG!f1C-H(_JfV( z;#&)^yzUS!*wvbt!NG320|fKuE2moek}mjDNe%|e2zN&z!;ATNJNi~&VempV{XMG#UOzGE3%0tBq@$gtDF9`!NXiQIKOmFnW{YKTGBhh zZJ%6>kQ*6|-SIE1k)|2(B5lAW&ZGMAVe1pYnStLr*>igPFqL@5^~Z_(<-eqgu|0i{ zl*5;$1|h3B!-Kv=0;*}GH{OQe_Lo*)+g#a~gbmG8SlYy{*GGec3a{~I79ZwlS2F_< zpS&RhK5)62fbKSh{h7i8m~talNpPi9$k$Ng=eg3p ztUFl9Qp-H>biM9uu803*Z*SoDdLNIYx18u^Gu2nmn4jG{bm zNPc#4z%p{rxnSNQ!jZFtKx{Sd+iN^hsU&&_LNJ>-au!p_ac-{X`9@LTp+BAbuYu>^ zV$Zm33c4}%9)puAcUEiElZ3wuBqSJhA`Ow!KS;=(mW-J?5;|=L<@zBqc#pBSp`O_v za_qB5GBwow1rfwIP}ME<^0QtHI6NUcfq3A0B{=3iV8=PFA0-BB*mz=#;{Kbk<5JI? z6BTIlvntq;LUddmh5TOP8oYZZZ({ZFBXc}nY8il%xqn}BN>{lL5@X(<6>#N4Y%bAH z635b=H(+)(FOr(nSN>CcbzC;Q{^cpkg$BlyGCq+H`qU<8j0m@$X5gNanA%gRP-` zx;`HyU%jkVJ2-uLYCl}?HL%Pd;a>pUE480Jy@T&df8Svi1D3vQ0dq63#$S#VmuFlY&G@Bw@>_QM=o1ybxH5!ahj!EW6hZ{}@$IN;&plM54yTW3`nm3vS13Lj3J4Ytg(p#Z}9Pxwnvn%Tj+@+tphvxlvjjhDt zFU99Rql>JVI31rEe0An3azcQi$1qYpbdNklH(Mtn^^Zob*>TtG1I`98Nb4t<-Y5O8!03k^Am@q67Yo)4x%S3l-&*R~@$ZI4r5 zO^Tz%GiG?NPb%Upv?H?I{foLZ6 z_#$+-&{6Z`9}&)LH2nk-TmVg?%thNS8@>W&!L_IsOs@!Xk z6NvO?8X8q10W1Q{wK3;g5=9D{xUgrT($WpRv*iD5=Q#pi6uqSQCnOYio2GB~r!QuZ z^H{&mBmM>v&6}vA=p4!Eb_jzf+Mh=Abv=pfwL+_OaJOkuR)kjCP4_bvy1u%x9R(`F zAww&1c{24|7ZYQOanAgw<{&?Xv^E&wSSg~rhSM%xp6?N*VZ*fPLf}+H< zsA6TT?ceZ;e{sR_UC7Jf$?vt z`+-LN4|}={HOf?~pb&EYa)eig(6O|Z=hoN}(XdH=%bql1F8-%;(A=E2H6Ekl*AnX4 ze>AP#$mwRJt+z4-$+67wOOA6!E|A8}^a#f0C9I2h*<$ZtKG`Los4gp{kvo+Mql~n1 z#ev~O`KsrZupFOr&^MD=u@WA>(`hc)lq+a@j^_sRu4ndwe7vL5DKOkBUE>Gdh8i7HA|3yx)q5lV| zxb7>sv7viP`ETdn;o9=f;rZV3(%Qk?=IlY!4W?~&b0?HdE?2-)owBk!=NvIs%q$MQ-fAywE zc{h}F!05yDlCjBq8OJVIJrQRb{ZKjgbT*;4+uhUTJyL9eYi-89+L=2GS7v^>COb1Zy8-5vAOf&{e{f`UlreWqSFigiBj20L48zg$3@-5FZ z1l$a3Z9Ckq_o~jr`%w>}+i;cT9Lxw`3ve^a^PYH2U&>Pi1OF!0FzyL)f+mQ)1*AV&WB+x(G`JOiGV>&By`r_9FCm8Z5!=k^indsw6jO;K29dQvKcrlf zW2=Nit=?HSLzJv8iDF{Gzee1e&wJBM{0A2-8?dZr|6;sPv#RM zyIGIpBRV3+8y|+gl1?Z!JEnZx%v?&+uO!C5tNkr#FSbtlp4*Mej6vK+`4d&m*w#j&Dm6sr@Y^ zrV54nb3_2Tn?#ZH+tPympZD@i++y)!^WK+94S0{{+=W|AlZC6MkhMN_y(J)Qk+e+5 zyl1yI87i2-Xm)t9%Pa7pJlbPlnSt$erOZ|r#IZ;f|BnX%pi29>C1+t|4nJ@ux-Yu+ zf{d#9PcJ;~TML)N%i1v$d^y6TUr4X$YWxBNB%?_T{pwaVY$rnWU4+)t2i1(XFND8q zJ&%aWo{%My7%0A}s83+rlpszMU>vijvZhZDy;{ZEgum{ZxV+_m$QtJiTt~2OdT?7q z2hBhp;umjkn&B0c6zDN8ZaXvJm&F^ytifO*VU39w$iM-Kg4B{%$+QagHECbfo1=fF zl3hXEq4U%gZr|IKYhIpJjuDcp<$`0$6h*4-qDk>IVro3apNQ0u;H9JGXDO)HJrU5I zb-K!j&cZfQePlKw^0%}zDl=W^8!gfE+v%G11K}*$CLfD#r`A677I&VEA*HMq-x(*I z*L3Z8h#7V%T3?p!re#n{|7_rpFO@3Qux{F0H-$@)=gp9ch+G2>NV`#~!_v&;Nj3cP?Pg;ktbmjmLt-9N z&6zL+V&N_{Rdv|}?X3IDK2sL?2=F1Sb?XbpD zGT=T42W8X8=6UN(t!=x5Gu8aF-J!bc!o@DX-8oaHFZLrllIBHObxCe~haRSKY1Q=^ zd=nKkF*V7*wGdh4P|WPHLH0bvi8-TR^TD4fM?SGPOBXPwChJ>U$tN;lx)+^~E*}4_ zf;{V{2I2>_L&y4sJlFh zY^lm$`;1{;y0p0b%FRadE|z0BZwusK9LjV;>H~r7Jcgf<4lThXav(VJ>BFj|F!LD| z=ekh2yH|!&xt<9hQvUk=bE*kFtDNNB$h7^+3ViLyhl-9i^zFsykGS zjGl$&e&UeM=6q^Y{{BVC!K)m(j;i;$;8xd?8agLt%;4B6-)dt$R?gA+|xKqA8|>`WGN#((b}1pm2gLg>JorI zreyl?pP!T0a;J!)Sun&-%Zmv^0y2&)tL~GVpoci{BY8&`M>G8PNV-8eAt<^-2(}e) zs%iXD+z?V(=&ROy#B5%26~s>9Yl3ef7^jQQRp!3PPT!a=I^umD^P=t%Rk8OeiT{ACNjvWedvCr zsVw>igYx2&ay3~VF{aK@n1QVO3-ggx@;?kwW?nFxyvZ+#FGCurxVJ;8g3_2$rjcc^LD!o*oOs zv`51Gp*-GXX%4wFgXPfb9GTOf84k&TerJ*(K6|dGj(xMUo<^7I&b~vVsm8Szsvq23 zA0mRLGybmjZ zF}0cHl~3AMIzplr&z!q*pDwb=|H&u%aZ?=yIS20!%;{;cK^lLQy6(|ut{bc!Rlo9; zdi&ItulaYY)$J@g0S7>;Y-Ffh(Dr| zRN&J`fO%RLu}J`$xF&(kwj@iJieNbPD#YroW{QYKd&HVfux!K8FvGXk%L3-<&kJbh zFv4+>F`f0-vF~ODdB!vP3@_HRjwu;+f6X{gF5-pe{Fg|;Rx)QNFx zm$v#gJ7HbPlwRe;dBzOD2xr^tV`G)jGOd~-a3ouT7G*8>ay$*Snx)pfXohy_ME|lo zztvbr_noNrq|2Gqw6GMV7>dCB6~7boO5P4>di5pCNYtYZ_V|@$YW#SD^dn)NR!M>O zlDsx;qP9nqwXF^IKN3yrAZ{w7`NCI2QR9kdO2&AtM4r?b0)~xq%P-=!RnCt5A0940 zZ`=LUv%~i}CRcz369G%*jt7CXlRVL(AGg}b_M=*71Pq*g4#ec>>I)02*GbW`4+t@x z`-5}#N4X=}ivvcHaYhx|2Ga_#c)5$suVmg){MLO>+&*rZT&9gULI|9rG!ChM?-9*J z(k*37C+wI#eMqXXeK%Dy@=$$X+GWa|mbaGm>eAI1H{!?UFY ze>uigfu=lfIbr~Zq~**i)?mCGHHs&}M7qnjxwV7brK5?r<%exA7^ zjvRWC*E`cE!S?Bmh2h+H*eYNGs2Ql-<;Z+(tazjS+twGvPT0xp<;fi!K?N=T%JUE9 zk#G28Vpa9TXy#Ez-9nCAGxcaxdSLV6yR_ZaYSHhIvoy3)pssW9c+IVa_|sU=XD5rK zV*7i@{=8p}zfN8@YCKkP7Tn^3SJz0~lr$$TH+>yVP{h54s52=&DrSyBzZYV2YVEDi zMxQJH6ltecm7^~yu!bdhWz*PX@D3KYTP$baFT-WiCs&xQ+SkDIzDOo&x$mXv1lWE} z0Q83iK{lxQ+e!V`+9)O1^u0;UBF?AKyB9g{s)t@3sr|OdAzkCLSl9EGMMysYOz&K? ztl@ypOeQ@^;{4#|>+ov7LrvBntBtuDzK`8lE53%M+6ejk)WiJUq@Uw$=UU-mh_KHP z7+yb|{!8-h#Ct8-yHp!z`)IAc^yt%Ky*Id~uHMl0La=#P6*cmsa~k-uMFjH+NFMuG zp)HnP=tyEO|L8kTq%K+Yv(lK~S-! z~~GiL#ymH&%dv5TW>uTS4i5|s6JIzz4pJp_{gS6Y~c}k_=_+73Onn`)#UMB5p+42 z;9RfVV#-}aMh@A@TM{4bw!0xCm@-W!6SM+eKKyy&{!{3^a1iVLv5Gd&rw-LP%zStG zYIraLr}bNu=!1hmliYn)s4e~^6I^mmO2>u#aI#d17ax9|7kbdv0S1%R3#~ycY!+gP z7jZg80$ zq6TJ1$uRUzs;awNC5x2RsYZdubZ-@eG2D0VRY;aBX)8u@47{2T-`s#6Wy<1HH+3{s z=iI`vL-^Ol>5al(Z>0ZheA;=b4?X{)M+|P`ga-4@goH=1Z$$FWpfSC<=rk1b?vKys z1s8HPESI?#vRm3oYG6npV6gp9`vO1o z+r;a8DFL%p4fpqAPgDf~^aG=ki(0k1-tX;3EzYt1bbEAqqsnH=I=U_zyvWN$oFjj2 z!^`N5cV;;^2*AjNX3;f($;E_)$?j%k=tL}4nAFm}WmwV3b9|aiit{QvjDU&6#I-A*V*dJBqiE`(whV&sPW)@|!4W#8>=#7sP@evo{k8;`F7zdk*wB{h{ zwXN@n%#F?5e>!&&`Bk_nJs(;gD8r|;_t^%Wmga96QcKpAFqk=>ox4L_6wfJ>mV_w- z{xTKaCKvWWjJrYHL$B5%^KUin{Ggs-PhGsK!>n=-Ki8Q(FSZGl-X#HaO|vXtg)s6@ zJ^mjUr0@U0Ajs>YZEG?Y_30IIaeC!ob!U2a^$KkL9b4=8ZA!}oeENSqSJcX+om?GJ zGl1zS)7K*Z?EC@aBMI{VaQmf`i697_YK#D2JH7<@IXDr)oDI8Q@U zdyIIl(qn`0@1^eZPiJ2%j(E~f6I!&Un(K$*Tyg6hPg?9Gf6*$AGXSj`nCU|`86ZDr z+L4>2;o|GmJluFo=P?{}>8cta7asj}G1609UYhFzuE;_~kf`)PdrsvF2Q1OECBN(>#XLp*}UQzv~fssA8qzapokijgrPZ+JvIhrf< zTtfIs@Pl(>quzMbZkGBzM=ByZR#W}Q9y>pONPp;4$te#pp`HB-t|O!9U&!g)^8{w5 z@opIKattC`2F$bL=2i78@#D=lN3{&w{;!LW5$3!>>_(m#WLXoW$1Lq1`Bm@*s42SD zE!ClL{~nj&P3oc|6&FlS4%t!G+y@s|l| zhWX0)kP6@mIvIwc<(TzDnP$--t?6ITGEB1D3@-RzOCN#>{_(z}0gZ6~#zjcOKeKrM!JJ0$2ljOTeL^Phio|Ea<>SI+}R z&$D@zf$z}P>TL(+d`W~>V2mdoVD5a~+xm6H9I211PfT=kGv0cyqg*Ra z-=y&cVvpkwU$fMGx)=Pn8tYfi(^%*Gqx(L&vM+T8^)U;dYRH;q5@kLvI9+|X#l*af z-_Fs4<$SmkjjT$XS^nwTL%{P{M8%39c9h}Og`$~kG_X6W2q_FmvC$)seH6X##Lg2m zs;JHPyxEGL=i%@hG||ikhFHwaFg1eDfbZQHlmfqN9NGHr8{Ar&2>%D$F0Ie(OO*Je z)p5y(W>_tO`-5w1*AvDj#{D;Rg>oWm>Y$Lp^&f$G!XTwBN^fjYa|2M-gEyXljdcLV z2IW?#eEzlH@9J=B@W@y*mx>5b#BQF(+#CrVmTXDN03A=SYCRr4MI6d6t=AdBoN=Lf z?Bz3TUXU0bI3E`O<5I?aozGTP-*z(awwIZt=dpT4eOC8Jw6do5`RBa-E5Yq@)`%g+ zqlt%<=!JO4!Mf&^fEzWWJlnoQk-wHYpM`f`{^>+^xs+u`%01aCfwZ`KgX8Z>D`h&@o(!6o2%6ER}0@(o`=TF zPJd%zppgGGoWTmby+uXY=H3wkREeRR>YOl+%DZMP5o$f*oO*$HmK%1S4*bcdxtPM9 zAz!~El$qQtOk^C4FM?qC+m*hJhhVl0##9>2bpwGjizgV+Y#7sF%uFXgx|F@Z0(y(g+w8pHi$f*M~;R3h&Ifb2l zf|XOu>l$vprJoa*dt&}gb3ornxmu^0sMYeC}tUKn~I!Q9QKBB(Y@2=H7Ez|1iu$`bmH}Si) zngn-+5op4o&HSpHB_mC%>*!pOF z($i~(W`MVPy!WR{a^h6pdxTBdq%WVV)7j|V?=UBOQJ$|1Lme8WU2|OAdnwl|T5B}h*uM-^yUiytv)^nS` z6Sn~=bkB73w7i#I3lE2G%Le20=r06YTQyY_7Er>0gM8;)MSYmo{6#UOgY%P*XyW|n zWv+}o`{*AAWP&Fp6T7)xsl+&aCbO>z%@>kOY=Tl=v;4_(o}hu4!*A{W{8)~Pw9dC6 zz}2T&87RWPJ8pHRI-g{A81o6myZl-&e{P->M_@dH~>wOJu;%oH+_xASzl(J4R09RH#);(EA{4x zv3GEQ2(!HOD%kd1P7oGMIds!h{Bpjt)2(D?Gjma1O9NoZ+ijmk{C7fR%7|34&=tgo zBIq4IwNyAetA_8jyl8me&4tnULS|gvsdQ*%DfIaGcUZp7o~+~ZHz$L8RoE{ss~y9* zq^NJta*mTw-w;9+bWB_BR?&0eN8R@x6cgs22v5+!P8^8@ctAUT)8`QRlBN02+PoaV z+aA}+E~DU1{hRv!G%n!4AFA~m;&*llv9J<zsRt0;Z00;8TCjY~G>1xq&BVmL;Dg9)D7Aay?!fjteeiZppgH(skQ18W_)Q+h=uS0|je z5YtM)_22EdhC4q*Z!QOK^>_*v_L@ za4aQ%CLu7_69cN(S&VyC0>2lyDwI-gza%5p#P6$5kJ)^D_2cu?t4q}zuLDR%e`vn@ zcqZ`|Kl2@aN@X)-XXjm+{r1n)U2%-%pRbtT@~z_alF z8t&^llrzC195vny!yd!2qGAzj{UpAqJaBw*ggKC~a9!9AO<%tHJeFpCc5pGIn(Xn0 zaXk&nu}d#H(l*xqj2U!_2Vgt?W#l5(D>+YUs3P49+VJA;e@^ z?AxhLIx$zOLi8jKN^$*8q?Q_kN#Ke7S`fLEaiBXhW~ZSpjw|gutMbVM;2u}jOJ^@ne~_w=>zUT4w7+D*NVhYVe(*r zFYvi{GL#NEHoMpuNEQ8x*;<@WUns;GtP5%%vg2}4H#kl0!v6xB-ANBc@+>AH1ii`W znt8vVp3Jy?Up4UxCHgazDXZUhSzNh8WVHy|I=rMR>g9y7(aya*jm~j8w*^Mb}SR# zc7b`oQy@cnw{?empx$aV$Dih<{5HvH%Qm+h%}+)Qg!m%|ruE>{lCST*YvU~=yx9rW z3oWLzBDm(Iqt*4(|M>!~^vm$lm3h1XbH8bf$>zVpUuqL^&*n^i{_{TJ?G~K>@md^L zJ^9PCG!Mb`agnDaG9ioQ@%+JcbCa97ygyC^^)&9>rxQC>=Y6Pmc#pNB67&UcRQ*wc&caw|RbXHk$r=rdyA-=EFM~sFN&r z?Q+Ob<8|8N&)MXQZux$&a{0V3 zm$`e__+%VaK!LTu%-Gn|;{!;f&4uPRSZnTw+3I6GC|>6WQdCpHw!CQlu1Lx#1dRyr zGkzbZCYvx$E($i_&lpnIQegO7r;RjeU`?F51fq|A&%!l3J^2NWIfSD-V>a^AMq%JG zO@LN1-dETy%8tbd`s4Ydj^f2>SLd&nRJYV|)wL@apNIL2tdKO%YD1?#PnAe`&W^UM zz&?HO$I&TVqgiTPdr#$o8;kegIF~YF1_^#`3mZ?o&f`3BesTy~X5SQaCL|l}?^>Ox z?b%mn;IqqR_|)gEkmO#D${*iiDp+3;c5$|GdF9aH=V)_GLqp8C#%S#QDbeF$;%HnB z!K&7hAb2)oEJ2BZoS|(iV9K??^MD+KBfVGSigkU^Kk~WsW7KY)oB5wi7?2h|o?h0p z+hSqe_xz`QK3yNUaIh1W>rKtr!AF#r)T{#ssSY2A`y8ZPwX#V-YTRLD@~wTzg)wN(t5i&TlWNc7 z(kZ+~`j&~!Sn1zn=ib_q8sm5VgcWyOUhltM38lhL+eX!|-wF2#-supd@pPPR4D&(K zzJg=;rQet-I}@J}^$NUFlKWqz0tue|FZJa=s>^@2v_;>{fUkeCXLPY^sBxem4|Xlk ze~16C@bHR=NUnDVav>Rdg<-E)DQzj|1} zGG-F8?s{|Yw)XtWtJ1$G2Xa)O0U&Xu!tHBKB=4gI-ag$gt)tc7m+20^F(dkgf__2H zuOYGo$q8X2n!WF!>KimgUwxqdf>Vm0`@n5SmHZ*%tC`E^ZUjqEXUSc$OS3-bmIqAJ zlB}eDf3j-1kmm!^9S<|s^&%>kU^W)iquGr4w3^QrrvqK5Nh4n<_7x)I@p96^2aQZ83>{56(Y0u7{0XqY5 z`2nLRcyax!TNuExD3c{4{qp246`X66<48YV70^mIXwyT2zI1$s5mJIF1L6&!_5%tO4QgHGT&)Z6LSRDe; zkeQ7(l zqOIl1X%J;)zRbA&NLtS;zk0o?FTJl;uPrKdOQb3FpPklwQ`}0dgu(`}LU_PqJOtAa zB~viKc(86UDJia>=H)$)8Ey9M*Br}RpZxe~bJzWDDn=Lwuw6o<8EH9B>pEZ*#^Pb_c-H1!qUUSFesJn$7h>qkn5fimxXCZ0 zD(eP!4E9i9Ilarvy0o2ENI0#1Bk8zX<;4n2(738;^5o@B%pcvZ%dnS$ghC+Eh^+|B zhkYlmoz1A+yYcN?-;AWqJoj&HSa7Fx8r5S#@bA|3#^m$#Yczx|RS2?(tfM~2JkqQS z>iC>;XVw;&V_(}-gIXX6!-K2Kf{dwuM~8S;I-3GpADSdnaZ)$(1L%(}d%2fRE)xl~ zIpU&b7W0V(jq#T+b4W(l`$|Rs$d- zQdy1^K%lG(?k^eA`t0ods^QfC_H=lz$>qvrPQ=~A307Z*&-k>N%d7}c8wqA*IFsdW z#=G7Uy7%&sxH$zFrv~Kk%{;;FArGe5-~!%1&%R-aQcTM}VGI>-G^Af=y7ry0n@Yvu z;ANT{lKXPsMsi~wioF}=Fg3>x!hrMnsgFN2`zN(8SkJHKy^_*dhWGQYinn7kBY5ja zNHC`_g}2?wu{Fz`n+X;UamARRMTC;&I`*_g;tEOn>XGem#G`46?o^XFE{?HW)Tc#U zOdl=Lv5AQ@J<(Q+UgkXo0o^o`-};BkTGJrL4UT^J*1>mc*n=JPiM%{}r$1rJf%gY; zh>^7+KNL#6Z?{Y%aH3+w#QQwDRKnD;Oq)>$XEx%3;#z&L^lC4MYhX>1mbe|ye%p#F z%Qx0O#IguK)bWBzghMzXPnLdm(To;q%e>J)IC zO|eUK&9LKWzcu!t00(8mz>d#m2H^6UU2U3l~xLwB26hA76$rVvx9;5iiyj2$7tV~ zebuW~{(1@Uf5vfC7~s5_92q@%fFzv8&0+7ehWB~!idmME3 zc0`XF9Hi6~6A1ZHPq{zp|0X5@z+e8@E%IQQS!UVxG{duf((KJmUqy@-k-sZwz9a-} zftgp&?00uQ8k%dEEsf*cUjklPu~vm23_IKKQJ?FwIf`iwM@US|Lnd#D9q_-r;i#f^ zyD`XflrM-%c!mbkCqy;!7OFf+6ZRIReBkv|vQmMO$o$(>eQUc{p}0Q#W_lr4>T>TF z!N`MLVlwzk4KS;-{TX;`6gvHO0GO-ws8R%Ak+hTzEF21Xa<+X#+F|ioG8nI1m%Ps1 z5d};uY!5>6$=4%EPA{7y@pO=G*rtBD-#2|_4Kpb%U0%BG$5_^lOhS$ z<(P#X)(qin`;)^lN}iZt7+`b0`Dl+6OyAwV3%y5=n&*b7wuva?_2)iJsDNqy-6q($ z?nbh&fd9AEjgGor9Z~4v-;s^Vq~6Wh4P7R1{FnWDm0!ySfItsFbjH3fW2#1VI9SwN z2Jx<2DPtlTfpQZ5+A;b^L2)B=;6p7as_IQA;BYdNye8E$Vwl}d@1qoi+(KBQ zBmkX>j)i|&xuZ}vr7yGkFm?4HbV6rWs#+EnUmDhOl$zH2d~%|5kAgy7T< z16@i|^r`IWY~NSqPJE;CtTVF{7Xxl&&T$0=_XQD64j(M8*%7Vh|7}jcGMLMJ;vtGf zPcgLUwh2g+guX6F1d;R4S`&)K3Bc&+n-^i-)ad#r9u72lb1b*-fu`Hcfb{<_xYvz= zb7~0h-z-Zq)mz$1iP97m)_+cK3c@49~1> zXM@9OytlUwf2ka?GuQSMBrM+6}^2PKl|ShWPz9nk;{{leMbbK z>tg_l6d2F#vy+e+f)Br^h64Ol45uJ>H zYa=mj=I^mUn>?LLUrfjsLcZQ9iT&{y>8CS2cToGWEu=U8teRS5?8D8Dx*TB^{h8`; zqOnWPI|m}c?w-7b_$6e~n`YPKz!7!aYo27Y(b<%t5sfEFS>GCC=$#ur?*>-Q<8ad? zB5<$d?G0_J@{?Iym2G~Fei4K{o#(+r^tnF31%H>7mPOTPaug~XJH|_#LOjQ^f35%U3E@==XL{hpzKu}33rTe~%e*gc! zx87Rs%{q7PoV{oEo*lDiuQ>zrFY|(^*w|}!@oZ5puZ#k(;wd9u@n5)FMx1>D+c>N$_U~=LY#2Cg^RPdmAj{vCAGD?ixV|O z+{@C=#lg!ZR}g9dfFMbrkXYhMpgq!$1eayF!)g5!j2eK#1qEah3FI0GMjOb- zr|DHr*wpa(rg@|^G?ldA#mh*?+iKCuK&R+V}18_Tv zsk05Z^U8Se4tczUKQf-LM^Y5W&lGX~OYe`S1^_WG@&PyU5xD&7?6dBCIv%gUiylgg zaOoeF@c%ANM+jnw5E1~O6GtHl#f^4PkZ^vbi^jE0k6b8(QrJ%%T8_(uDTGDqnIO*e zsy#{QGv?`rIy2#G#gJGAfjDZczA{6(EkQK6!H@to0Dy80bM+IuPsoiFyq@4f&rKN? zVk%9Zkpr`*5%Yi<%J3|H<`mD!jg+JiD@5m(;8{e~!mSJiP~p~mQaF`B2ofUz0CP-r z3~*SA`UH48LH!HY7P-2-PR7rRQy>cd4bb5TF3ZYA7ueYH77I$sLEols;aDNb*ieXH7MGx zDysU@Xj4^J^QG~9b)Dlr99vgW)yP&=#a7)|b6dr>-&#@CQTwH_KD(}ZzxDXZXSV$g z*Q&a@>c)ddY)9?>pxb^2r+*oEw5W{g=k${f_6& zUNmZ2UTY~vKXu@eIGOn58C-@nI=$$rz5N2GFmoj|=|cViKCH=^3=SJSWfe6Oj4QRt zf={)oHoK~NztNfXbIrblnpS{Os@1xHk=`@sb%8j8#n_^%UmYx?-Ec-+tAj4&ot)%G zkQIJ7CbzNnNr1)hCHkbp%Anh=@Xrgc;`f;7L-BC00zLW%{ui-A8de0TAP7LA*&)!t zWf`FM#8v-AU82c_LgS$D5A(hkWhAoO&!AVd2y@pY`_mzhpPJXCGWJuZ1f`9>UU)ngr**{Z&6kC}qYR zPAf@020p~V@k3dfJsgpx{;p;FtA``s#hiZ4BNK&|1$~eB59itd&Bj#DYR5d6k-+=Zb zB1Qjz8txvBeBQWl-x}1Hl&>Aob*Q5$T`;fVTZFrE%XXH7JRIRL{s911kx_wqL^3IU zCSr6JUdz8yK&j!1jNu9=FpuWi$&o|@4`g^iCctIHk6UkwdCcP`90SL|Uk5WDVdRfh zjz`@8?9TtwLjOO+_$Ngrd`Eh!ZT^^7kfHrcE~N4PzFIi`C)ddM_xj(d2jqXxLjETo z`M+BR4z+N<``;@-tOo-XfT5CU%Lsx=pRhejiHi*Y#Gf~P|!45bU|_HZ`BXr;|_kGz(|Wx=Hj z`tR7`D^DK&Y97NEt`6@quw-7tRWhRvU#7$sHSl$$?*N~%13S27!91n~ZUT6uSTKLb zx1j$7*l>0QptALD;i)A}ebXC%%}oPO86^Jd8}gXosKf11@aQr$ujS#c_2?)xp>Rw5 zgM}viHw;&J=bwMUy=v!QzZ6x8zy5_*2#0|w;GV|(x5WT&p_it>VWodPG87NqN`X`U z2TQ?&^MGR^aG?65U&6KXi23WVe_QA@j~e^io95r(M_O<{MSKj%bi4G$UuYe9zxN@k z+78PDP)q=DTe9B=FAP%;=k!MZ}o^h{f@g9Tc$kb>6CoT<7kQj)7co@zp6bTFz)b~zt86qKV;&EeO zVhn|P%-A6UxS_+CiIKXPc=%O8MdreQuA%8LDikv|w)x$YUG83Fqg5~JP--Na$N>;R z0yG5Q+4l#QO8X~tVX0E=zbX9&08j!z5*CD-mNrW$4m%zv0XOk!5?(TX%41#yOo5;{ z0F)j%GBVOSuK4p$MEcj3p(XvBNDP0`j};o)zZ~o_`9nkdm-F`u{zE_J`;UCaS`ZYe z1Vsf!B?RxTVJI*>7!nNq76!nOVNYNPZ~z4R0p^J8gD}Y@&(HOWfi{4q8f|aM`{%Os z*LT@J*I2xSy@sOp)@9<5DQ-$jZtRiO1=7Ghl)*jn@Z3~{tE$6F8H|jhUg}kzH~Qlx zLEV$2h#iz5yXu+6oe&QSaWh)m!qfylqid!zdvbT{;_ z<>vKlcX;%m($1X&MV?-~`Uq=0yDb0&>NVFR$ZhJ1Bd1x+RT0_GaJ-;~oWEri8;O&X zyvpwntJFgrz3aRfvY~u0x+2Ru8%D&ZET&q{%!HSHbsOjji-EzeQ&p#XwkMm26g`}C zNTnNxzw+eFYrCtgP~?7$`9$!d+n&*4!4rJfnpAGm`y%fwE3vgfZ|upGlmM=J#@iOp z(b7iio6}NfyhLv&ovX=r5KIuIBFc~QYd;IEM&oUBfC3`s`EvCd;*(6!ZHP+_ z;!>cv&xH)47rcY(FuMFf~bY5#v&LHk=new_a-*6AH+n59ZPf*j=rO)x2fgno*6yvruv$agOdtEB;w5 za6OGQ&H;=HHZkX8T%Md(`g!Y#n0(j(lvtfsrm5HLb@u7JCP*!}Di{Pg-da2B^eDga zRHNJB4dHvG$^-cnBY?$|y@3hM?Kzd1yLIlGWVFDx_3ue@N7zu2;NaB3-d+qYKbSL{ zWcg6A_B+`ESrd!S;B9>2+TP|O+Ms{`dP@B0epogURN9y{f|Vf1{pyEAZ=X(+76o?D zciu}DNsJtK;YAk3ZvTkHl5QwiuksB#q;#d%v@K0{4IKhJ$ZCRRK4Ve?Ik`$*j^czd zh+-(FR;OaJWlpSSlFCyWfur|2{5T))N&G)G?%a}Ov+h0TpfcR_fB*8S`hzFU4_=+Z z(FCtz)#;ONc%T{{XPQ($h*)HL674C}Cu`vHhbVoH+S`iWA>KJXP~2b!va?&tHGQ^s z|E8wP`SUC< zz8evQJ_LKNFh*zOgYArAdvp#X2W);;;7{GeX$eHLrtK63$dlEqK#+EZVkk4s94Nf# zJpJJvWyZIV;O1J~MOPKi5P2qL@fn`DSpQ-?R@1j;0%t zo5~^ct(a0mSXg}U)SM>mM+4qH%NcP$y z!N(tmswr5IQ}sjED~Qlo`ddXKrxk!r_kM^{&Ui6W-S;EYA_Cy6WC3Eg%or_lJsGf3 zyRJTDJIM5vP24w%g2GLGZ0&dm6O3 zrA+RWb9$k5EDoD1u;HouOF3PGi^I+8hT5D?OoJ{TZXcxd--4WUo=?6MDSjsmpT&-QQrZWVy&Hmrw@O z_I6|!IA3H?)AtS3Gn5yu$jX4H*G`4kZf&M}i?ir4T7nzfs@J3T!#x%GZwQvS&jakS zb$T*nJ%l=^q7ptx=Dtx(%)i8gd~t&S_{bGbAMt9P8{FXGsw9Zo_HV6jwRyF_gcjf%QnETPz`H(UBrx@=AuV3+tc zE%cMJ=Eh53sZ7eK`4)wyHGE2-H8P~VT-Pi7 zwl}+LxHahNvW?b)W6Aor5F-9tnM_rMP<)8`ced-2hnTeIKPP@WKPMGC9xc;FJ%{Dy z=QkFn(iECi_5|V7vx+xNYoLTeKC{uWBd~BIEFvJm4^#tD#}O%25rNAKF z@}#EDpeZGJLvk^aJ{18wk@smj8k9GtR5k`XZLh44*6n87#!GUrZ^N*a2rQB=**H#{ zwt7&Fl?kF4vJ5YCK5)WbWU@(B0Z!ZAnS$ji?+g@n2Q6v&H#ftUBAu2YB)QXp5u|sW zst(xKUnPPAXd{=1)h}%fN9B77f*Q(_e~}GAwYN*txvd7BZCZYeq~vUxD+r>zfccfo zt?D!>(QdfZE4n)f7OJhrA)~oS;ChD=9%h;7DtzQfl`I%Vvi+naMl5x}Yq+RMF+P(R z_eE5inF5oU=$-0EWliIK$cJSiw@xaEhU*rG@i3>bYpw!jOl=_Uxt8MD$vbxfO zT~FAHxdDJYXHA)R_0v7kdA|EE5d}^*I(I?7|H}V--+O=QH@kQkDU6XtlaV7rY_JDr+0?+Sv^0O&o-o4hd`jv=BXO`o<$41igc5X9Cyeod6<*@gP zg&m}YI*Njl%okUSMflp3`S~mBj!1(#Z~S!0JFrwCafJNDlx8dkks}cS=QdD!!_QG3(AJ;<>sKyE(vR5BYVC8<>wcOm?=}h}? zv6^&OW1|ic^$d6&7>;PoK+gAaQ&nmR?BuH_8(gE!U}{fDg_d+mU8nR*;VPmm2NjDE zp6+oQUslM2>3WQ~bqUnSl7o)~i6yaZs37wR9Vd(9M+KI;U1rR#W`}G30A7}o?*P-5 zj9Z|i`OeU%1J7lqhct68Wv%#EZA+ZprDa?(#NP%cj!1A=P8-cuN9qCMw8x~9WNmaVVMjH$mO4~(0(fkvk+#(F*35;Qcg|9)8 zZ%KW2h&fA9ezJi`pvLX!))Wcv=aRH<+8z8FE~?X$O}dh}clSRH(UVu}U_-b?>WnKc z=t-a%A}L=5RmQbI2NXh#rLtsk7Va9f=QHo=A|@{&{#-3~ls<0-#AU{Wxo3`#?{_7A zsm$Y^qasR|jLx35VS4-)v;2`oG$w~Bf=z50t|U!IY@%(0cqPTf^AdUIc{vJ?5{WmX zNK)Yu+Y*5czv-5nWwdc%0Trw%MgU31RTw+(+fS4OVKFo>m2_VFrS`2qTD0y!j>b4*F?Q{hO8QHcO!lqJ54*ag5 z@X=IRZgfp<|K$wLyT_aP*{^(iNy8ho9n>a z_Vmn5vX3UnZ@y+yf({(sn(svUv0IY)7OucEM z#Ql~I=|INBTC|gSxWH3$5fL_4CK^oMxGmBv60vaXvf@Q~?LlseS*Pu-(b`4W{hzzb z_g-1Y5wrPSI}+_LZeRD1U!ET`Byx%Wg$+Of<9`B zDIz?VW_U5l4x-i^E0?Yj#L57XD*|hJNC218B~mY|uL3l#W%Bo=wu)a;$Db`>*u~I? z820h2d_cn@c$m>auD$+&Rm2Bb%8xPZUOq5KgwL&_PKT0bW#~-tK zYQu`z3{J(k(w{L63CT*-KW(_%fx_vbW{9-)odWtl|H5yDf1p1fk7 zbxPUE^>PjW(mhTpZ{(ig((_LBwme7;b-`fzV)4l?NiMx*Lm~C>2Vc70QWTQwr#i(7 ze@{F>z5f4m;(-Wnj`FoOQlQ<#FyLn$m@sS@J`5G!MuH!9Al<^7=-1aLK5e+FVjv*T zMhiazlC3B{*#E*T;16W_)I26GEwC zGuj$rVQ6EmA@DVG3Q7FR;Ax3rHKyw<4FmNrW32f1PRLQAHdHp5K0zW?X#Q?requ_z zGxk+up6g_(zMhy<>CzDZQXkY-s%BLv>t||ZARvtwA)#mKtC6s4%InTJn}ydXzmlb9 z#%{8|LW&XMp&5|2C)??_HR_72=N=rR`m7EFuRqV_+@KhI>sF|Fx4^mjqKzzD0cIv8 zq!5hb++w7~hV`0vok#QujiQ~juQ1L`C{4Y7{Ve-)5i2JOtH9iphX?Io2@pW}4AV$# z3$h$3Uq-p=5;}&R!SUiN7k~+TCsfR`y&=e?^RGM?9JLk*#JTeoaX2OHyx!YW$=2ya zT)*}-T#56t7$>3B*}m2MIc>?++%G}&z2@S(?vb@hGnlEd)(WS5OV-u9Sn}6mKR)+nMSs%`+3~c5Zfi~!u zFftM1{$luiCCcAyZ5n!Yww$hn&*RznPHiTC11hAVKxIpKJT*JW6MkUfaT)?~qV#dH zo%fxbG8C&W6Lx9iD8OtT6)!e2Tum*8$QJJbWz}$H$ygzTgAoyna2tEPf~}B#KS^cw!XGQ|YnDHK5~#fY zrH%U}-r3|i@D9mNOOk8lTU@RC+wcKDPrOSOEodjwUaMlbfc{|j1jq}rE0i}Y6Xi;! zGgephY#S+3HWv7eiqXq3hW_lGL3)1?f^i}(5V%7(NX{_Q07Vd#{IRb<#c9-MRt`ln zeXd{djNS&CnY>w}9NTMR_ z9wsp}Km~i5=v<|&DC7!(y;K23F|hSI+b;RmM6u$5b`zWNjC(W&x9i?9vPM&Xbp3n; z>l3q06{$ce=Pwf7jy)0d(&SXPaT>E)j9@?R$NJ%QJ$xRXOfN2+THmchW7TqQ_XeWrhenY%vtMJBdatBo-fm{|p0TZ*eQd%z&wE}{tYLr%fFj9FXlz#MrQU
bd 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 T%fajXWGAL{fa1ZTDENN>;$eTG diff --git a/Resources/Audio/Effects/glass_break3.ogg b/Resources/Audio/Effects/glass_break3.ogg index bc45ab333240d76ab1edfab8073f668286b515da..28f7a3c9327277c1c06e2baf8079f2dbb60f169e 100644 GIT binary patch literal 21547 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 B#LoZ# literal 27378 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 diff --git a/Resources/Audio/Effects/glass_break4.ogg b/Resources/Audio/Effects/glass_break4.ogg new file mode 100644 index 0000000000000000000000000000000000000000..46c251106d37738e7bf85bb3ec7314a2247be8c4 GIT binary patch literal 19207 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 W9(f7)TV4=@I@bZyq5%L700sbfa*<^K literal 0 HcmV?d00001 diff --git a/Resources/Audio/Effects/glass_crack1.ogg b/Resources/Audio/Effects/glass_crack1.ogg new file mode 100644 index 0000000000000000000000000000000000000000..0221b238d7f28fa8029dd86b0a7acd37fb53d6b6 GIT binary patch literal 6312 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 SKYzp!ekvqrT;qy^asLgDgdF8^DTU$vq~7m&T^ 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 QNrWIl@@<5b1hnqI0gb8p+yDRo literal 0 HcmV?d00001 diff --git a/Resources/Audio/Effects/glass_crack4.ogg b/Resources/Audio/Effects/glass_crack4.ogg new file mode 100644 index 0000000000000000000000000000000000000000..5d6302e88b2bbde0b6444b40175c4e468763f9af GIT binary patch literal 6812 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 literal 0 HcmV?d00001 diff --git a/Resources/Audio/Effects/glass_hit.ogg b/Resources/Audio/Effects/glass_hit.ogg deleted file mode 100644 index e6842104db58f19093764df55330c6c8c2bb68b3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6820 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 DrMCMs diff --git a/Resources/Audio/Effects/wall_bonk.ogg b/Resources/Audio/Effects/glass_smack.ogg similarity index 60% rename from Resources/Audio/Effects/wall_bonk.ogg rename to Resources/Audio/Effects/glass_smack.ogg index b1c5505f61d4a1b46c3756f3511ab40c52418519..59931e6a73ca74eb7ae7cd508aa75f8146a71c8a 100644 GIT binary patch delta 2364 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 delta 1211 zcmV;s1VsCxFsUb0PiJRS00IC200000005yB00000007@hZ^i*00d{Y4Vrg>#00001 z0CxcZ00000|NsC000000xB*XRXHx(G0000000000p%efB0RR91jrm74u~fGX0)POM z4G$gx0Fx{aHGkJFar&#QUY@;|2GCs z{M&XL+*l8Y6I}zy>eIE>r0TphX9P#nf-PFRFbSYgmlc1O129Y#>aVqy)wltC!lh+V z6avVxz<hj13S0RSBt z#>ISZr|>x#&*kjfZoEkS4=O@+5K0_@T5wTXBO5ygB41v3lHz$z@MW%J0#7Ol2#x^N z4U^IWPqLc(Zddf8rY!iJQM&FYDiJU^5{z(psek!h+5`{YshsRvRs%p^t+5TCr7r@b z^mqXP+GDIAja#Yz)%=6;qIGAn6m8!V1xYO+m4$qMfhdG*x;2ePK{Dyn8;byqVO{uh zgNDe0u-1O1Qd*vBdpnm_N`HANl$hf^#`CysKpd}ra0W#O06tlqgKM+_pf;7L4Kw2m zpMPychg6a(ph$|ht>f;~tyliO@*)2PZ83PSfB;Y`Na$}F$m&75PL29&<`-DhgiIb? zzHX73zHeY)0ksDKTGwpg`XB3vvx$R#OVs?@20mH5pfz3qP$yuQcC*g{~a{fCBc9G(;XX6qd2Hs5F%pflOw-Wf(?O1+h`MQU*Zuvpv3lRKLLL&wpgc z|7qEP@9fF;0RC8fvK|}&rSm69ZKFHGXS)RiRInPrnt~tS54G?7-*z^D7h#^g;>7PUxrqpzL;gbH|9_`_Vq&iYV)2B3@au9F$cmV^pEfeL~^_FE+a0G?R< zq%kf4P#XRPY@{}PHk$&pgDT(*#eX=+?!Zg^%9uUbc(IqPh*}*00KmvmkdJ^m;a^g$ zH_bBnYKpmkJD!FTlY{YR7ytkOwz7A3jlxnKB0mjz4wV*77pqywUpxRFSp0$#L|uo@ zuW5s9FMY#vQ-G4B23Spzd?o+(#Pox8*Q|erIwpC{CK><$z}in>oX%R8k5Jp$vEmFa zY;3hrijw8lG7p Z0RRA)e7`*x$~Y{~3jkm*_@WB{005SN6d(Wq diff --git a/Resources/Audio/Effects/glass_smash.ogg b/Resources/Audio/Effects/glass_smash.ogg new file mode 100644 index 0000000000000000000000000000000000000000..ed341b2306d0df6b5b5629500c8e50330de9e35a GIT binary patch literal 12477 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 literal 0 HcmV?d00001 diff --git a/Resources/Audio/Effects/metal_break1.ogg b/Resources/Audio/Effects/metal_break1.ogg new file mode 100644 index 0000000000000000000000000000000000000000..cb3f3a21a1d6d99a55e008a6dd59f41c9ff9c795 GIT binary patch literal 11144 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 literal 0 HcmV?d00001 diff --git a/Resources/Audio/Effects/metal_break3.ogg b/Resources/Audio/Effects/metal_break3.ogg new file mode 100644 index 0000000000000000000000000000000000000000..238a9f595c6bc6d1d936ac6d2492ca1fbaef2351 GIT binary patch literal 9029 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 literal 0 HcmV?d00001 diff --git a/Resources/Audio/Effects/metal_break4.ogg b/Resources/Audio/Effects/metal_break4.ogg new file mode 100644 index 0000000000000000000000000000000000000000..4be23f1a63f643c1efc5d37212eb66c88b8dec87 GIT binary patch literal 9327 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 L630o`oelaQL6tL? literal 0 HcmV?d00001 diff --git a/Resources/Audio/Effects/metal_glass_break2.ogg b/Resources/Audio/Effects/metal_glass_break2.ogg new file mode 100644 index 0000000000000000000000000000000000000000..af246179b5f1532140ee22f35508c8deadb33dd7 GIT binary patch literal 9545 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 literal 0 HcmV?d00001 diff --git a/Resources/Audio/Effects/metal_scrape1.ogg b/Resources/Audio/Effects/metal_scrape1.ogg new file mode 100644 index 0000000000000000000000000000000000000000..6fe0fd0db5706fd14bfdb7c22f090a628f37f5ea GIT binary patch literal 8005 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 YrE@;;`H8kA_P_%M>^wsGkYwOL05YM6mjD0& literal 0 HcmV?d00001 diff --git a/Resources/Audio/Effects/metal_scrape2.ogg b/Resources/Audio/Effects/metal_scrape2.ogg new file mode 100644 index 0000000000000000000000000000000000000000..813976a7085776681ae84d4b9cb077f2adeb2e00 GIT binary patch literal 12777 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 K0svY7#eV=GG(6(~ literal 0 HcmV?d00001 diff --git a/Resources/Audio/Effects/metal_slam1.ogg b/Resources/Audio/Effects/metal_slam1.ogg new file mode 100644 index 0000000000000000000000000000000000000000..77f8ba359008d0f7c8f353ec3166f18d4a9ac386 GIT binary patch literal 13162 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 H3?BGD;?ee~ literal 0 HcmV?d00001 diff --git a/Resources/Audio/Effects/metal_slam2.ogg b/Resources/Audio/Effects/metal_slam2.ogg new file mode 100644 index 0000000000000000000000000000000000000000..4db58c51b3853a15cd7bd8f88108c7f5b12c4bd2 GIT binary patch literal 17526 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 RJD3p%c9HFN3i^l6{~s_Fs<8k7 literal 0 HcmV?d00001 diff --git a/Resources/Audio/Effects/metal_slam3.ogg b/Resources/Audio/Effects/metal_slam3.ogg new file mode 100644 index 0000000000000000000000000000000000000000..9d4ee03e4a6d42b65a451feebaace31e78620f0e GIT binary patch literal 21542 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 literal 0 HcmV?d00001 diff --git a/Resources/Audio/Effects/metal_slam4.ogg b/Resources/Audio/Effects/metal_slam4.ogg new file mode 100644 index 0000000000000000000000000000000000000000..a994a2c9cd6f34b98cbdbe4654e043ff49af20ba GIT binary patch literal 9859 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 literal 0 HcmV?d00001 diff --git a/Resources/Audio/Effects/metal_slam5.ogg b/Resources/Audio/Effects/metal_slam5.ogg new file mode 100644 index 0000000000000000000000000000000000000000..ad840af0f963d8cbeb0025258da43563b9bacaca GIT binary patch literal 11616 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 literal 0 HcmV?d00001 diff --git a/Resources/Audio/Effects/metal_thud1.ogg b/Resources/Audio/Effects/metal_thud1.ogg new file mode 100644 index 0000000000000000000000000000000000000000..534e04f6ec564fcb35537d794c3a2234e82f685b GIT binary patch literal 19048 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%0AXoA{Z*=Y#>9lXvIW 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 literal 0 HcmV?d00001 diff --git a/Resources/Audio/Effects/metal_thud2.ogg b/Resources/Audio/Effects/metal_thud2.ogg new file mode 100644 index 0000000000000000000000000000000000000000..d6ae732ed3cb17ddb9a914f555c9ab35e2b95e7b GIT binary patch literal 22257 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 p(FA)*};xN%+1Wo!N$to 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 htLXq*pWXlf literal 0 HcmV?d00001 diff --git a/Resources/Audio/Effects/metalbreak.ogg b/Resources/Audio/Effects/metalbreak.ogg deleted file mode 100644 index 0864824075eade52c5b9d6341e18d86ef803498f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12145 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 diff --git a/Resources/Audio/Effects/weak_hit1.ogg b/Resources/Audio/Effects/weak_hit1.ogg new file mode 100644 index 0000000000000000000000000000000000000000..222879a40d3367bb3d8078f4b07edf03ec01efaf GIT binary patch literal 5497 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 literal 0 HcmV?d00001 diff --git a/Resources/Audio/Weapons/tap.ogg b/Resources/Audio/Effects/weak_hit2.ogg similarity index 100% rename from Resources/Audio/Weapons/tap.ogg rename to Resources/Audio/Effects/weak_hit2.ogg diff --git a/Resources/Audio/Effects/window_shatter1.ogg b/Resources/Audio/Effects/window_shatter1.ogg new file mode 100644 index 0000000000000000000000000000000000000000..aa841782df2e098b24ef3ee971d813b2b631481b GIT binary patch literal 28813 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

-pUuadR$?I~v96^rm;Kc<*Z0FjZOVVR>5h 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 B_e%f( literal 0 HcmV?d00001 diff --git a/Resources/Audio/Effects/wood_destroy3.ogg b/Resources/Audio/Effects/wood_destroy3.ogg new file mode 100644 index 0000000000000000000000000000000000000000..13577ec8a6ef50ad870121d763ef37d7a14d16df GIT binary patch literal 14637 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 literal 0 HcmV?d00001 diff --git a/Resources/Audio/Effects/woodhit.ogg b/Resources/Audio/Effects/woodhit.ogg deleted file mode 100644 index 04ff37f3c7af6960c69ef1ededdac112f0fe1040..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7986 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 POf2`in`|LF#P)vx+=9tK diff --git a/Resources/Prototypes/Entities/Mobs/Cyborgs/base_borg_chassis.yml b/Resources/Prototypes/Entities/Mobs/Cyborgs/base_borg_chassis.yml index 2f2a42388f0..9085a87f152 100644 --- a/Resources/Prototypes/Entities/Mobs/Cyborgs/base_borg_chassis.yml +++ b/Resources/Prototypes/Entities/Mobs/Cyborgs/base_borg_chassis.yml @@ -14,7 +14,7 @@ types: Blunt: 5 soundHit: - path: /Audio/Effects/hit_kick.ogg + collection: MetalThud - type: CombatMode - type: NoSlip - type: StaticPrice @@ -159,7 +159,7 @@ behaviors: - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak - !type:EmptyContainersBehaviour containers: - borg_brain @@ -249,4 +249,4 @@ channels: - Syndicate - type: ShowSyndicateIcons - - type: MovementAlwaysTouching \ No newline at end of file + - type: MovementAlwaysTouching diff --git a/Resources/Prototypes/Entities/Mobs/Player/guardian.yml b/Resources/Prototypes/Entities/Mobs/Player/guardian.yml index 08c37b56feb..06eda05ee15 100644 --- a/Resources/Prototypes/Entities/Mobs/Player/guardian.yml +++ b/Resources/Prototypes/Entities/Mobs/Player/guardian.yml @@ -26,7 +26,7 @@ types: Blunt: 5 soundHit: - path: /Audio/Effects/hit_kick.ogg + collection: MetalThud - type: RandomSprite available: - enum.DamageStateVisualLayers.Base: diff --git a/Resources/Prototypes/Entities/Mobs/Player/silicon.yml b/Resources/Prototypes/Entities/Mobs/Player/silicon.yml index aedc1eaab88..072c419bc86 100644 --- a/Resources/Prototypes/Entities/Mobs/Player/silicon.yml +++ b/Resources/Prototypes/Entities/Mobs/Player/silicon.yml @@ -13,7 +13,7 @@ types: Blunt: 5 soundHit: - path: /Audio/Effects/hit_kick.ogg + collection: MetalThud - type: Clickable - type: Damageable damageContainer: Inorganic diff --git a/Resources/Prototypes/Entities/Objects/Devices/station_beacon.yml b/Resources/Prototypes/Entities/Objects/Devices/station_beacon.yml index 8dd3023a0ef..ac457c95475 100644 --- a/Resources/Prototypes/Entities/Objects/Devices/station_beacon.yml +++ b/Resources/Prototypes/Entities/Objects/Devices/station_beacon.yml @@ -62,7 +62,7 @@ behaviors: - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak params: volume: -8 - !type:SpawnEntitiesBehavior diff --git a/Resources/Prototypes/Entities/Objects/Misc/fluff_lights.yml b/Resources/Prototypes/Entities/Objects/Misc/fluff_lights.yml index 5cc4c7ec53f..799e2921e49 100644 --- a/Resources/Prototypes/Entities/Objects/Misc/fluff_lights.yml +++ b/Resources/Prototypes/Entities/Objects/Misc/fluff_lights.yml @@ -223,7 +223,7 @@ behaviors: - !type:PlaySoundBehavior sound: - path: /Audio/Effects/glass_break1.ogg + collection: GlassBreak - !type:SpawnEntitiesBehavior spawn: FloodlightBroken: @@ -259,7 +259,7 @@ behaviors: - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalGlassBreak - !type:SpawnEntitiesBehavior spawn: SheetSteel1: diff --git a/Resources/Prototypes/Entities/Objects/Misc/tiles.yml b/Resources/Prototypes/Entities/Objects/Misc/tiles.yml index 71bd2753faa..361efb52663 100644 --- a/Resources/Prototypes/Entities/Objects/Misc/tiles.yml +++ b/Resources/Prototypes/Entities/Objects/Misc/tiles.yml @@ -34,7 +34,7 @@ behaviors: - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak params: volume: -8 - !type:DoActsBehavior diff --git a/Resources/Prototypes/Entities/Objects/Power/lights.yml b/Resources/Prototypes/Entities/Objects/Power/lights.yml index 9a30ec4da3d..40f6bf6dbed 100644 --- a/Resources/Prototypes/Entities/Objects/Power/lights.yml +++ b/Resources/Prototypes/Entities/Objects/Power/lights.yml @@ -6,8 +6,7 @@ - type: MeleeSound soundGroups: Brute: - path: - "/Audio/Effects/glass_hit.ogg" + collection: GlassSmash - type: Sprite sprite: Objects/Power/light_bulb.rsi layers: diff --git a/Resources/Prototypes/Entities/Objects/Shields/shields.yml b/Resources/Prototypes/Entities/Objects/Shields/shields.yml index 4761e81de8c..7427b7f87a3 100644 --- a/Resources/Prototypes/Entities/Objects/Shields/shields.yml +++ b/Resources/Prototypes/Entities/Objects/Shields/shields.yml @@ -47,7 +47,8 @@ - !type:DoActsBehavior acts: [ "Destruction" ] - !type:PlaySoundBehavior - sound: /Audio/Effects/metalbreak.ogg + sound: + collection: MetalBreak - !type:SpawnEntitiesBehavior spawn: SheetSteel: @@ -160,7 +161,8 @@ - !type:DoActsBehavior acts: [ "Destruction" ] - !type:PlaySoundBehavior - sound: /Audio/Effects/metalbreak.ogg + sound: + collection: WoodDestroy - !type:SpawnEntitiesBehavior spawn: MaterialWoodPlank: @@ -215,7 +217,8 @@ - !type:DoActsBehavior acts: [ "Destruction" ] - !type:PlaySoundBehavior - sound: /Audio/Effects/metalbreak.ogg + sound: + collection: MetalBreak - !type:SpawnEntitiesBehavior spawn: SheetSteel: @@ -273,7 +276,7 @@ max: 1 - !type:PlaySoundBehavior sound: - path: /Audio/Effects/woodhit.ogg + collection: WoodDestroy #Magic/Cult Shields (give these to wizard for now) @@ -346,7 +349,8 @@ - !type:DoActsBehavior acts: [ "Destruction" ] - !type:PlaySoundBehavior - sound: /Audio/Effects/glass_break1.ogg + sound: + collection: GlassBreak - !type:SpawnEntitiesBehavior spawn: SheetGlass: @@ -440,7 +444,8 @@ - !type:DoActsBehavior acts: [ "Destruction" ] - !type:PlaySoundBehavior - sound: /Audio/Effects/metalbreak.ogg + sound: + collection: GlassBreak - !type:SpawnEntitiesBehavior spawn: BrokenEnergyShield: @@ -518,7 +523,8 @@ - !type:DoActsBehavior acts: [ "Destruction" ] - !type:PlaySoundBehavior - sound: /Audio/Effects/metalbreak.ogg + sound: + collection: MetalGlassBreak - !type:SpawnEntitiesBehavior spawn: SheetSteel: diff --git a/Resources/Prototypes/Entities/Objects/Specific/Janitorial/janitor.yml b/Resources/Prototypes/Entities/Objects/Specific/Janitorial/janitor.yml index e284944a537..3f53b3e1cea 100644 --- a/Resources/Prototypes/Entities/Objects/Specific/Janitorial/janitor.yml +++ b/Resources/Prototypes/Entities/Objects/Specific/Janitorial/janitor.yml @@ -401,7 +401,7 @@ acts: ["Destruction"] - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak - type: ItemMapper mapLayers: cart_plunger: @@ -544,7 +544,7 @@ acts: [ "Destruction" ] - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak - type: entity name: plunger diff --git a/Resources/Prototypes/Entities/Objects/Specific/Kitchen/foodcarts.yml b/Resources/Prototypes/Entities/Objects/Specific/Kitchen/foodcarts.yml index 380b2d35630..0894d6a7547 100644 --- a/Resources/Prototypes/Entities/Objects/Specific/Kitchen/foodcarts.yml +++ b/Resources/Prototypes/Entities/Objects/Specific/Kitchen/foodcarts.yml @@ -40,7 +40,7 @@ acts: ["Destruction"] - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak - type: Appearance - type: UserInterface interfaces: diff --git a/Resources/Prototypes/Entities/Objects/Specific/Security/barrier.yml b/Resources/Prototypes/Entities/Objects/Specific/Security/barrier.yml index b83b2c8ee2b..035185487de 100644 --- a/Resources/Prototypes/Entities/Objects/Specific/Security/barrier.yml +++ b/Resources/Prototypes/Entities/Objects/Specific/Security/barrier.yml @@ -67,7 +67,7 @@ max: 5 - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak - !type:DoActsBehavior acts: [ "Destruction" ] - type: PointLight diff --git a/Resources/Prototypes/Entities/Objects/Specific/Security/target.yml b/Resources/Prototypes/Entities/Objects/Specific/Security/target.yml index 0bbebe3dede..adbb7cde40b 100644 --- a/Resources/Prototypes/Entities/Objects/Specific/Security/target.yml +++ b/Resources/Prototypes/Entities/Objects/Specific/Security/target.yml @@ -44,7 +44,7 @@ max: 5 - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak - !type:DoActsBehavior acts: [ "Destruction" ] @@ -107,6 +107,6 @@ max: 10 - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak - !type:DoActsBehavior acts: [ "Destruction" ] diff --git a/Resources/Prototypes/Entities/Objects/Specific/Service/vending_machine_restock.yml b/Resources/Prototypes/Entities/Objects/Specific/Service/vending_machine_restock.yml index 67125c8dffb..953c05f107e 100644 --- a/Resources/Prototypes/Entities/Objects/Specific/Service/vending_machine_restock.yml +++ b/Resources/Prototypes/Entities/Objects/Specific/Service/vending_machine_restock.yml @@ -39,7 +39,7 @@ behaviors: - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak - !type:DumpRestockInventory - !type:DoActsBehavior acts: [ "Destruction" ] diff --git a/Resources/Prototypes/Entities/Objects/Vehicles/buckleable.yml b/Resources/Prototypes/Entities/Objects/Vehicles/buckleable.yml index f3213fdbc93..cf30f69754d 100644 --- a/Resources/Prototypes/Entities/Objects/Vehicles/buckleable.yml +++ b/Resources/Prototypes/Entities/Objects/Vehicles/buckleable.yml @@ -37,7 +37,7 @@ acts: ["Destruction"] - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalGlassBreak - !type:ExplodeBehavior - type: entity @@ -125,7 +125,7 @@ acts: ["Destruction"] - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalGlassBreak - !type:ExplodeBehavior - !type:SpawnEntitiesBehavior # in future should also emit a cloud of hot gas spawn: @@ -402,7 +402,7 @@ acts: ["Destruction"] - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak - type: entity parent: VehicleUnicycle diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Projectiles/projectiles.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Projectiles/projectiles.yml index 86f1f53939e..a442804b3d5 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Projectiles/projectiles.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Projectiles/projectiles.yml @@ -255,7 +255,7 @@ types: Heat: 5 soundHit: - path: "/Audio/Weapons/tap.ogg" + collection: WeakHit forceSound: true - type: entity @@ -295,7 +295,7 @@ types: Heat: 1 soundHit: - path: "/Audio/Weapons/tap.ogg" + collection: WeakHit forceSound: true - type: entity @@ -866,7 +866,7 @@ types: Heat: 2 soundHit: - path: "/Audio/Weapons/tap.ogg" + collection: WeakHit forceSound: true - type: entity diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/turrets.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/turrets.yml index 632e86e4fcc..3f75faf75e1 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/turrets.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/turrets.yml @@ -23,7 +23,7 @@ acts: [ "Destruction" ] - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalGlassBreak - !type:SpawnEntitiesBehavior spawn: SheetSteel1: @@ -86,7 +86,7 @@ acts: [ "Destruction" ] - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalGlassBreak - !type:SpawnEntitiesBehavior spawn: SheetSteel1: diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Throwable/bola.yml b/Resources/Prototypes/Entities/Objects/Weapons/Throwable/bola.yml index 54ee2d90a50..ca3edf68c0d 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Throwable/bola.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Throwable/bola.yml @@ -31,7 +31,8 @@ damage: 15 behaviors: - !type:PlaySoundBehavior - sound: /Audio/Effects/metalbreak.ogg + sound: + collection: MetalBreak - !type:DoActsBehavior acts: [ "Destruction" ] - type: DamageOnLand diff --git a/Resources/Prototypes/Entities/Objects/base_item.yml b/Resources/Prototypes/Entities/Objects/base_item.yml index bcc8e0dce49..528069106b1 100644 --- a/Resources/Prototypes/Entities/Objects/base_item.yml +++ b/Resources/Prototypes/Entities/Objects/base_item.yml @@ -10,7 +10,7 @@ - type: MovedByPressure - type: EmitSoundOnCollide sound: - path: /Audio/Effects/wall_bonk.ogg + collection: WeakHit - type: EmitSoundOnLand sound: path: /Audio/Effects/drop.ogg @@ -21,7 +21,7 @@ types: Blunt: 5 soundHit: - path: /Audio/Effects/hit_kick.ogg + collection: MetalThud - type: CollisionWake - type: TileFrictionModifier modifier: 0.5 diff --git a/Resources/Prototypes/Entities/Structures/Decoration/showcase.yml b/Resources/Prototypes/Entities/Structures/Decoration/showcase.yml index 3172989d4ff..53cc75faa61 100644 --- a/Resources/Prototypes/Entities/Structures/Decoration/showcase.yml +++ b/Resources/Prototypes/Entities/Structures/Decoration/showcase.yml @@ -23,7 +23,7 @@ behaviors: - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak - !type:SpawnEntitiesBehavior spawn: PartRodMetal1: diff --git a/Resources/Prototypes/Entities/Structures/Dispensers/base_structuredispensers.yml b/Resources/Prototypes/Entities/Structures/Dispensers/base_structuredispensers.yml index c54e9f548be..d87c5e700ab 100644 --- a/Resources/Prototypes/Entities/Structures/Dispensers/base_structuredispensers.yml +++ b/Resources/Prototypes/Entities/Structures/Dispensers/base_structuredispensers.yml @@ -53,7 +53,7 @@ acts: ["Destruction"] - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalGlassBreak - type: ReagentDispenser storageWhitelist: tags: diff --git a/Resources/Prototypes/Entities/Structures/Dispensers/chem.yml b/Resources/Prototypes/Entities/Structures/Dispensers/chem.yml index 2d98b9ff356..79a17153abf 100644 --- a/Resources/Prototypes/Entities/Structures/Dispensers/chem.yml +++ b/Resources/Prototypes/Entities/Structures/Dispensers/chem.yml @@ -22,6 +22,9 @@ !type:DamageTrigger damage: 100 behaviors: + - !type:PlaySoundBehavior + sound: + collection: MetalGlassBreak - !type:ChangeConstructionNodeBehavior node: machineFrame - !type:DoActsBehavior diff --git a/Resources/Prototypes/Entities/Structures/Doors/Airlocks/airlocks.yml b/Resources/Prototypes/Entities/Structures/Doors/Airlocks/airlocks.yml index 80d5011ce36..549a42c2641 100644 --- a/Resources/Prototypes/Entities/Structures/Doors/Airlocks/airlocks.yml +++ b/Resources/Prototypes/Entities/Structures/Doors/Airlocks/airlocks.yml @@ -129,7 +129,7 @@ components: - type: Sprite sprite: Structures/Doors/Airlocks/Standard/hatch_maint.rsi - + # Glass - type: entity @@ -140,8 +140,7 @@ - type: MeleeSound soundGroups: Brute: - path: - "/Audio/Effects/glass_hit.ogg" + collection: GlassSmack - type: Door occludes: false - type: Occluder diff --git a/Resources/Prototypes/Entities/Structures/Doors/Airlocks/base_structureairlocks.yml b/Resources/Prototypes/Entities/Structures/Doors/Airlocks/base_structureairlocks.yml index 22770ffc185..d610fb25fba 100644 --- a/Resources/Prototypes/Entities/Structures/Doors/Airlocks/base_structureairlocks.yml +++ b/Resources/Prototypes/Entities/Structures/Doors/Airlocks/base_structureairlocks.yml @@ -118,6 +118,10 @@ behaviors: - !type:DoActsBehavior acts: ["Destruction"] + # TODO this should go to the broken node first + - !type:PlaySoundBehavior + sound: + collection: MetalSlam - type: Construction graph: Airlock node: airlock diff --git a/Resources/Prototypes/Entities/Structures/Doors/MaterialDoors/material_doors.yml b/Resources/Prototypes/Entities/Structures/Doors/MaterialDoors/material_doors.yml index f661b507bd7..d3b8521a9bc 100644 --- a/Resources/Prototypes/Entities/Structures/Doors/MaterialDoors/material_doors.yml +++ b/Resources/Prototypes/Entities/Structures/Doors/MaterialDoors/material_doors.yml @@ -233,7 +233,7 @@ acts: ["Destruction"] - !type:PlaySoundBehavior sound: - path: /Audio/Effects/woodhit.ogg + collection: WoodDestroy - !type:SpawnEntitiesBehavior spawn: MaterialWebSilk: diff --git a/Resources/Prototypes/Entities/Structures/Doors/Windoors/base_structurewindoors.yml b/Resources/Prototypes/Entities/Structures/Doors/Windoors/base_structurewindoors.yml index e3fab04da88..4281177b4b9 100644 --- a/Resources/Prototypes/Entities/Structures/Doors/Windoors/base_structurewindoors.yml +++ b/Resources/Prototypes/Entities/Structures/Doors/Windoors/base_structurewindoors.yml @@ -8,8 +8,7 @@ - type: MeleeSound soundGroups: Brute: - path: - "/Audio/Effects/glass_hit.ogg" + collection: GlassSmash - type: InteractionOutline - type: Physics - type: Fixtures diff --git a/Resources/Prototypes/Entities/Structures/Furniture/Tables/tables.yml b/Resources/Prototypes/Entities/Structures/Furniture/Tables/tables.yml index b984693a300..63d950969d5 100644 --- a/Resources/Prototypes/Entities/Structures/Furniture/Tables/tables.yml +++ b/Resources/Prototypes/Entities/Structures/Furniture/Tables/tables.yml @@ -41,7 +41,7 @@ behaviors: - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak params: volume: -6 - !type:SpawnEntitiesBehavior @@ -98,7 +98,7 @@ behaviors: - !type:PlaySoundBehavior sound: - path: /Audio/Effects/woodhit.ogg + collection: WoodDestroy - !type:SpawnEntitiesBehavior spawn: MaterialWoodPlank1: @@ -141,7 +141,7 @@ behaviors: - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak params: volume: -6 - !type:SpawnEntitiesBehavior @@ -182,7 +182,7 @@ behaviors: - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak params: volume: -6 - !type:SpawnEntitiesBehavior @@ -220,7 +220,7 @@ behaviors: - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak params: volume: -6 - !type:SpawnEntitiesBehavior @@ -267,13 +267,16 @@ behaviors: - !type:DoActsBehavior acts: [ "Destruction" ] + - !type:PlaySoundBehavior + sound: + collection: GlassBreak - trigger: !type:DamageTrigger damage: 5 behaviors: - !type:PlaySoundBehavior sound: - path: /Audio/Effects/glass_break2.ogg + collection: GlassBreak - !type:SpawnEntitiesBehavior spawn: ShardGlass: @@ -316,13 +319,16 @@ behaviors: #excess damage (nuke?). avoid computational cost of spawning entities. - !type:DoActsBehavior acts: [ "Destruction" ] + - !type:PlaySoundBehavior + sound: + collection: GlassBreak - trigger: !type:DamageTrigger damage: 20 behaviors: - !type:PlaySoundBehavior sound: - path: /Audio/Effects/glass_break2.ogg + collection: GlassBreak - !type:ChangeConstructionNodeBehavior node: TableFrame - !type:SpawnEntitiesBehavior @@ -368,13 +374,16 @@ behaviors: #excess damage (nuke?). avoid computational cost of spawning entities. - !type:DoActsBehavior acts: [ "Destruction" ] + - !type:PlaySoundBehavior + sound: + collection: GlassBreak - trigger: !type:DamageTrigger damage: 50 behaviors: - !type:PlaySoundBehavior sound: - path: /Audio/Effects/glass_break2.ogg + collection: GlassBreak - !type:ChangeConstructionNodeBehavior node: TableFrame - !type:SpawnEntitiesBehavior @@ -414,13 +423,16 @@ behaviors: #excess damage (nuke?). avoid computational cost of spawning entities. - !type:DoActsBehavior acts: [ "Destruction" ] + - !type:PlaySoundBehavior + sound: + collection: GlassBreak - trigger: !type:DamageTrigger damage: 15 behaviors: - !type:PlaySoundBehavior sound: - path: /Audio/Effects/woodhit.ogg + collection: WoodDestroy - !type:SpawnEntitiesBehavior spawn: MaterialWoodPlank: @@ -458,7 +470,7 @@ behaviors: - !type:PlaySoundBehavior sound: - path: /Audio/Effects/woodhit.ogg + collection: WoodDestroy - !type:SpawnEntitiesBehavior spawn: MaterialWoodPlank: @@ -589,7 +601,7 @@ behaviors: - !type:PlaySoundBehavior sound: - path: /Audio/Effects/woodhit.ogg + collection: WoodDestroy - !type:SpawnEntitiesBehavior spawn: MaterialWoodPlank1: @@ -632,7 +644,7 @@ behaviors: - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak params: volume: -6 - !type:SpawnEntitiesBehavior diff --git a/Resources/Prototypes/Entities/Structures/Furniture/altar.yml b/Resources/Prototypes/Entities/Structures/Furniture/altar.yml index d34030eb973..4eaed51597e 100644 --- a/Resources/Prototypes/Entities/Structures/Furniture/altar.yml +++ b/Resources/Prototypes/Entities/Structures/Furniture/altar.yml @@ -53,7 +53,7 @@ behaviors: - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak - !type:SpawnEntitiesBehavior spawn: SheetSteel1: @@ -187,7 +187,7 @@ behaviors: - !type:PlaySoundBehavior sound: - path: /Audio/Effects/woodhit.ogg + collection: WoodDestroyHeavy - !type:SpawnEntitiesBehavior spawn: MaterialWoodPlank: @@ -382,7 +382,7 @@ behaviors: - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak - !type:SpawnEntitiesBehavior spawn: SheetSteel1: diff --git a/Resources/Prototypes/Entities/Structures/Furniture/beds.yml b/Resources/Prototypes/Entities/Structures/Furniture/beds.yml index 3f0234a089c..7a1c066c189 100644 --- a/Resources/Prototypes/Entities/Structures/Furniture/beds.yml +++ b/Resources/Prototypes/Entities/Structures/Furniture/beds.yml @@ -105,7 +105,7 @@ acts: ["Destruction"] - !type:PlaySoundBehavior sound: - path: /Audio/Effects/woodhit.ogg + collection: WoodDestroy - !type:SpawnEntitiesBehavior spawn: MaterialWoodPlank: @@ -144,7 +144,7 @@ acts: ["Destruction"] - !type:PlaySoundBehavior sound: - path: /Audio/Effects/woodhit.ogg + collection: WoodDestroy - !type:SpawnEntitiesBehavior spawn: MaterialWebSilk: diff --git a/Resources/Prototypes/Entities/Structures/Furniture/bookshelf.yml b/Resources/Prototypes/Entities/Structures/Furniture/bookshelf.yml index b2c53beaff9..86f6719f77e 100644 --- a/Resources/Prototypes/Entities/Structures/Furniture/bookshelf.yml +++ b/Resources/Prototypes/Entities/Structures/Furniture/bookshelf.yml @@ -26,7 +26,7 @@ behaviors: - !type:PlaySoundBehavior sound: - path: /Audio/Effects/woodhit.ogg + collection: WoodDestroyHeavy - !type:SpawnEntitiesBehavior spawn: MaterialWoodPlank: diff --git a/Resources/Prototypes/Entities/Structures/Furniture/chairs.yml b/Resources/Prototypes/Entities/Structures/Furniture/chairs.yml index 26829aba2d7..a235cd2546d 100644 --- a/Resources/Prototypes/Entities/Structures/Furniture/chairs.yml +++ b/Resources/Prototypes/Entities/Structures/Furniture/chairs.yml @@ -45,7 +45,7 @@ acts: ["Destruction"] - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak - type: StaticPrice price: 10 @@ -191,7 +191,7 @@ acts: ["Destruction"] - !type:PlaySoundBehavior sound: - path: /Audio/Effects/woodhit.ogg + collection: WoodDestroy - !type:SpawnEntitiesBehavior spawn: MaterialWoodPlank: @@ -289,7 +289,7 @@ acts: ["Destruction"] - !type:PlaySoundBehavior sound: - path: /Audio/Effects/woodhit.ogg + collection: WoodDestroy - !type:SpawnEntitiesBehavior spawn: MaterialWebSilk: diff --git a/Resources/Prototypes/Entities/Structures/Furniture/rollerbeds.yml b/Resources/Prototypes/Entities/Structures/Furniture/rollerbeds.yml index 53abcf592a8..161ea25bc43 100644 --- a/Resources/Prototypes/Entities/Structures/Furniture/rollerbeds.yml +++ b/Resources/Prototypes/Entities/Structures/Furniture/rollerbeds.yml @@ -22,7 +22,8 @@ visible: false - type: MovedByPressure - type: DamageOnHighSpeedImpact - soundHit: /Audio/Effects/bang.ogg + soundHit: + collection: MetalThud - type: InteractionOutline - type: Physics - type: Fixtures diff --git a/Resources/Prototypes/Entities/Structures/Furniture/sink.yml b/Resources/Prototypes/Entities/Structures/Furniture/sink.yml index 9ae1a2bb3df..22f0e2dc2a9 100644 --- a/Resources/Prototypes/Entities/Structures/Furniture/sink.yml +++ b/Resources/Prototypes/Entities/Structures/Furniture/sink.yml @@ -58,7 +58,7 @@ acts: [ "Destruction" ] - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak - type: AmbientSound enabled: false volume: -8 diff --git a/Resources/Prototypes/Entities/Structures/Lighting/base_lighting.yml b/Resources/Prototypes/Entities/Structures/Lighting/base_lighting.yml index a8792b09764..13385a763e5 100644 --- a/Resources/Prototypes/Entities/Structures/Lighting/base_lighting.yml +++ b/Resources/Prototypes/Entities/Structures/Lighting/base_lighting.yml @@ -13,8 +13,7 @@ - type: MeleeSound soundGroups: Brute: - path: - "/Audio/Effects/glass_hit.ogg" + collection: GlassSmash - type: Transform anchored: true - type: Clickable @@ -49,6 +48,9 @@ behaviors: #excess damage, don't spawn entities. - !type:DoActsBehavior acts: [ "Destruction" ] + - !type:PlaySoundBehavior + sound: + collection: GlassBreak - trigger: !type:DamageTrigger damage: 50 @@ -61,6 +63,9 @@ max: 2 - !type:DoActsBehavior acts: ["Destruction"] + - !type:PlaySoundBehavior + sound: + collection: GlassBreak placement: mode: SnapgridCenter snap: diff --git a/Resources/Prototypes/Entities/Structures/Lighting/ground_lighting.yml b/Resources/Prototypes/Entities/Structures/Lighting/ground_lighting.yml index 6eda921ca40..470733ea188 100644 --- a/Resources/Prototypes/Entities/Structures/Lighting/ground_lighting.yml +++ b/Resources/Prototypes/Entities/Structures/Lighting/ground_lighting.yml @@ -41,7 +41,7 @@ - !type:EmptyAllContainersBehaviour - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalGlassBreak - type: entity parent: BaseLightStructure diff --git a/Resources/Prototypes/Entities/Structures/Machines/Computers/base_structurecomputers.yml b/Resources/Prototypes/Entities/Structures/Machines/Computers/base_structurecomputers.yml index d1b870646d6..5aa602aedd9 100644 --- a/Resources/Prototypes/Entities/Structures/Machines/Computers/base_structurecomputers.yml +++ b/Resources/Prototypes/Entities/Structures/Machines/Computers/base_structurecomputers.yml @@ -8,8 +8,7 @@ - type: MeleeSound soundGroups: Brute: - path: - "/Audio/Effects/glass_hit.ogg" + collection: GlassSmash - type: Construction graph: Computer node: computer diff --git a/Resources/Prototypes/Entities/Structures/Machines/Computers/frame.yml b/Resources/Prototypes/Entities/Structures/Machines/Computers/frame.yml index b1804e6b7b1..884f68fc229 100644 --- a/Resources/Prototypes/Entities/Structures/Machines/Computers/frame.yml +++ b/Resources/Prototypes/Entities/Structures/Machines/Computers/frame.yml @@ -90,7 +90,7 @@ behaviors: - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalGlassBreak params: volume: -6 - !type:SpawnEntitiesBehavior diff --git a/Resources/Prototypes/Entities/Structures/Machines/Medical/cryo_pod.yml b/Resources/Prototypes/Entities/Structures/Machines/Medical/cryo_pod.yml index 2184ee73ea6..f150a3f63b0 100644 --- a/Resources/Prototypes/Entities/Structures/Machines/Medical/cryo_pod.yml +++ b/Resources/Prototypes/Entities/Structures/Machines/Medical/cryo_pod.yml @@ -63,6 +63,9 @@ damage: 100 behaviors: - !type:EmptyAllContainersBehaviour + - !type:PlaySoundBehavior + sound: + collection: WindowShatter - !type:ChangeConstructionNodeBehavior node: machineFrame - !type:DoActsBehavior diff --git a/Resources/Prototypes/Entities/Structures/Machines/anomaly_equipment.yml b/Resources/Prototypes/Entities/Structures/Machines/anomaly_equipment.yml index 3fad77648f3..f846eea0050 100644 --- a/Resources/Prototypes/Entities/Structures/Machines/anomaly_equipment.yml +++ b/Resources/Prototypes/Entities/Structures/Machines/anomaly_equipment.yml @@ -85,7 +85,7 @@ acts: ["Destruction"] - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalGlassBreak - !type:ExplodeBehavior - type: GuideHelp guides: diff --git a/Resources/Prototypes/Entities/Structures/Machines/base_structuremachines.yml b/Resources/Prototypes/Entities/Structures/Machines/base_structuremachines.yml index b4665a9b79a..621d9a1a7ec 100644 --- a/Resources/Prototypes/Entities/Structures/Machines/base_structuremachines.yml +++ b/Resources/Prototypes/Entities/Structures/Machines/base_structuremachines.yml @@ -40,7 +40,7 @@ acts: ["Destruction"] - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak - type: entity abstract: true diff --git a/Resources/Prototypes/Entities/Structures/Machines/chem_master.yml b/Resources/Prototypes/Entities/Structures/Machines/chem_master.yml index e215a70f4c0..d7df219663e 100644 --- a/Resources/Prototypes/Entities/Structures/Machines/chem_master.yml +++ b/Resources/Prototypes/Entities/Structures/Machines/chem_master.yml @@ -38,6 +38,9 @@ !type:DamageTrigger damage: 50 behaviors: + - !type:PlaySoundBehavior + sound: + collection: MetalGlassBreak - !type:ChangeConstructionNodeBehavior node: machineFrame - !type:DoActsBehavior diff --git a/Resources/Prototypes/Entities/Structures/Machines/cloning_machine.yml b/Resources/Prototypes/Entities/Structures/Machines/cloning_machine.yml index 6067149c8ae..5d9ab0dd7e4 100644 --- a/Resources/Prototypes/Entities/Structures/Machines/cloning_machine.yml +++ b/Resources/Prototypes/Entities/Structures/Machines/cloning_machine.yml @@ -39,6 +39,9 @@ !type:DamageTrigger damage: 100 behaviors: + - !type:PlaySoundBehavior + sound: + collection: MetalGlassBreak - !type:ChangeConstructionNodeBehavior node: machineFrame - !type:DoActsBehavior diff --git a/Resources/Prototypes/Entities/Structures/Machines/crew_monitor_server.yml b/Resources/Prototypes/Entities/Structures/Machines/crew_monitor_server.yml index 403fed9dd88..30e42d59ab5 100644 --- a/Resources/Prototypes/Entities/Structures/Machines/crew_monitor_server.yml +++ b/Resources/Prototypes/Entities/Structures/Machines/crew_monitor_server.yml @@ -50,7 +50,7 @@ acts: ["Destruction"] - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalGlassBreak - !type:SpawnEntitiesBehavior spawn: SheetSteel1: diff --git a/Resources/Prototypes/Entities/Structures/Machines/fatextractor.yml b/Resources/Prototypes/Entities/Structures/Machines/fatextractor.yml index 33186f0a1dd..9f09e49059c 100644 --- a/Resources/Prototypes/Entities/Structures/Machines/fatextractor.yml +++ b/Resources/Prototypes/Entities/Structures/Machines/fatextractor.yml @@ -88,6 +88,9 @@ !type:DamageTrigger damage: 100 behaviors: + - !type:PlaySoundBehavior + sound: + collection: MetalGlassBreak - !type:ChangeConstructionNodeBehavior node: machineFrame - !type:DoActsBehavior diff --git a/Resources/Prototypes/Entities/Structures/Machines/frame.yml b/Resources/Prototypes/Entities/Structures/Machines/frame.yml index 29806e08226..3b3f0402aa2 100644 --- a/Resources/Prototypes/Entities/Structures/Machines/frame.yml +++ b/Resources/Prototypes/Entities/Structures/Machines/frame.yml @@ -45,6 +45,9 @@ !type:DamageTrigger damage: 100 behaviors: + - !type:PlaySoundBehavior + sound: + collection: MetalBreak - !type:ChangeConstructionNodeBehavior node: start - !type:DoActsBehavior @@ -97,6 +100,9 @@ !type:DamageTrigger damage: 100 behaviors: + - !type:PlaySoundBehavior + sound: + collection: MetalBreak - !type:ChangeConstructionNodeBehavior node: missingWires - !type:DoActsBehavior diff --git a/Resources/Prototypes/Entities/Structures/Machines/gravity_generator.yml b/Resources/Prototypes/Entities/Structures/Machines/gravity_generator.yml index 657c597b148..2eb4f57fab5 100644 --- a/Resources/Prototypes/Entities/Structures/Machines/gravity_generator.yml +++ b/Resources/Prototypes/Entities/Structures/Machines/gravity_generator.yml @@ -113,7 +113,7 @@ acts: ["Destruction"] - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalGlassBreak - !type:SpawnEntitiesBehavior spawn: MachineFrameDestroyed: diff --git a/Resources/Prototypes/Entities/Structures/Machines/lathe.yml b/Resources/Prototypes/Entities/Structures/Machines/lathe.yml index 3fa3a52387f..5280f8e594d 100644 --- a/Resources/Prototypes/Entities/Structures/Machines/lathe.yml +++ b/Resources/Prototypes/Entities/Structures/Machines/lathe.yml @@ -25,6 +25,9 @@ !type:DamageTrigger damage: 100 behaviors: + - !type:PlaySoundBehavior + sound: + collection: MetalBreak - !type:ChangeConstructionNodeBehavior node: machineFrame - !type:DoActsBehavior diff --git a/Resources/Prototypes/Entities/Structures/Machines/material_reclaimer.yml b/Resources/Prototypes/Entities/Structures/Machines/material_reclaimer.yml index 699c3491f1c..829525439ed 100644 --- a/Resources/Prototypes/Entities/Structures/Machines/material_reclaimer.yml +++ b/Resources/Prototypes/Entities/Structures/Machines/material_reclaimer.yml @@ -51,6 +51,9 @@ !type:DamageTrigger damage: 100 behaviors: + - !type:PlaySoundBehavior + sound: + collection: MetalGlassBreak - !type:ChangeConstructionNodeBehavior node: machineFrame - !type:DoActsBehavior diff --git a/Resources/Prototypes/Entities/Structures/Machines/medical_scanner.yml b/Resources/Prototypes/Entities/Structures/Machines/medical_scanner.yml index 3cadb180c98..6f05baee944 100644 --- a/Resources/Prototypes/Entities/Structures/Machines/medical_scanner.yml +++ b/Resources/Prototypes/Entities/Structures/Machines/medical_scanner.yml @@ -59,6 +59,9 @@ !type:DamageTrigger damage: 100 behaviors: + - !type:PlaySoundBehavior + sound: + collection: MetalGlassBreak - !type:ChangeConstructionNodeBehavior node: machineFrame - !type:DoActsBehavior diff --git a/Resources/Prototypes/Entities/Structures/Machines/research.yml b/Resources/Prototypes/Entities/Structures/Machines/research.yml index f5003b17127..66ea8e538ad 100644 --- a/Resources/Prototypes/Entities/Structures/Machines/research.yml +++ b/Resources/Prototypes/Entities/Structures/Machines/research.yml @@ -45,7 +45,7 @@ acts: ["Destruction"] - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak - !type:SpawnEntitiesBehavior spawn: SheetSteel1: @@ -112,7 +112,7 @@ acts: ["Destruction"] - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak - !type:SpawnEntitiesBehavior spawn: SheetSteel1: diff --git a/Resources/Prototypes/Entities/Structures/Machines/smartfridge.yml b/Resources/Prototypes/Entities/Structures/Machines/smartfridge.yml index 95ce0b9d923..5a62b74ac0a 100644 --- a/Resources/Prototypes/Entities/Structures/Machines/smartfridge.yml +++ b/Resources/Prototypes/Entities/Structures/Machines/smartfridge.yml @@ -82,7 +82,7 @@ acts: [ "Destruction" ] - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak - type: Damageable damageContainer: Inorganic damageModifierSet: Metallic @@ -91,4 +91,4 @@ types: Blunt: 5 soundHit: - path: /Audio/Effects/bang.ogg + collection: MetalThud diff --git a/Resources/Prototypes/Entities/Structures/Machines/telecomms.yml b/Resources/Prototypes/Entities/Structures/Machines/telecomms.yml index 0f84f200bb0..e12826a8ce4 100644 --- a/Resources/Prototypes/Entities/Structures/Machines/telecomms.yml +++ b/Resources/Prototypes/Entities/Structures/Machines/telecomms.yml @@ -41,6 +41,9 @@ !type:DamageTrigger damage: 100 behaviors: + - !type:PlaySoundBehavior + sound: + collection: MetalBreak - !type:ChangeConstructionNodeBehavior node: machineFrame - !type:DoActsBehavior diff --git a/Resources/Prototypes/Entities/Structures/Machines/vending_machines.yml b/Resources/Prototypes/Entities/Structures/Machines/vending_machines.yml index d15f993e462..0cf1cc9de08 100644 --- a/Resources/Prototypes/Entities/Structures/Machines/vending_machines.yml +++ b/Resources/Prototypes/Entities/Structures/Machines/vending_machines.yml @@ -52,7 +52,7 @@ acts: [ "Destruction" ] - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalGlassBreak - type: ActivatableUI key: enum.VendingMachineUiKey.Key - type: ActivatableUIRequiresPower diff --git a/Resources/Prototypes/Entities/Structures/Piping/Atmospherics/binary.yml b/Resources/Prototypes/Entities/Structures/Piping/Atmospherics/binary.yml index b99b88483c2..4bea87f8175 100644 --- a/Resources/Prototypes/Entities/Structures/Piping/Atmospherics/binary.yml +++ b/Resources/Prototypes/Entities/Structures/Piping/Atmospherics/binary.yml @@ -382,6 +382,9 @@ !type:DamageTrigger damage: 100 behaviors: + - !type:PlaySoundBehavior + sound: + collection: MetalGlassBreak - !type:ChangeConstructionNodeBehavior node: machineFrame - !type:DoActsBehavior diff --git a/Resources/Prototypes/Entities/Structures/Piping/Atmospherics/pipes.yml b/Resources/Prototypes/Entities/Structures/Piping/Atmospherics/pipes.yml index 881976f68a3..e5b77095b0e 100644 --- a/Resources/Prototypes/Entities/Structures/Piping/Atmospherics/pipes.yml +++ b/Resources/Prototypes/Entities/Structures/Piping/Atmospherics/pipes.yml @@ -33,7 +33,7 @@ behaviors: - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak params: volume: -8 - !type:SpawnEntitiesBehavior diff --git a/Resources/Prototypes/Entities/Structures/Piping/Atmospherics/portable.yml b/Resources/Prototypes/Entities/Structures/Piping/Atmospherics/portable.yml index b6f1e6ec4be..e3ae06fa509 100644 --- a/Resources/Prototypes/Entities/Structures/Piping/Atmospherics/portable.yml +++ b/Resources/Prototypes/Entities/Structures/Piping/Atmospherics/portable.yml @@ -87,7 +87,7 @@ behaviors: - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak - !type:SpawnEntitiesBehavior spawn: SheetSteel1: diff --git a/Resources/Prototypes/Entities/Structures/Piping/Atmospherics/unary.yml b/Resources/Prototypes/Entities/Structures/Piping/Atmospherics/unary.yml index 45030bd28bd..c2f8fa339da 100644 --- a/Resources/Prototypes/Entities/Structures/Piping/Atmospherics/unary.yml +++ b/Resources/Prototypes/Entities/Structures/Piping/Atmospherics/unary.yml @@ -452,7 +452,7 @@ solution: tank - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak - type: NodeContainer nodes: pipe: diff --git a/Resources/Prototypes/Entities/Structures/Piping/Disposal/high_pressure_machine_frame.yml b/Resources/Prototypes/Entities/Structures/Piping/Disposal/high_pressure_machine_frame.yml index 80737339453..6f3d0705cbb 100644 --- a/Resources/Prototypes/Entities/Structures/Piping/Disposal/high_pressure_machine_frame.yml +++ b/Resources/Prototypes/Entities/Structures/Piping/Disposal/high_pressure_machine_frame.yml @@ -37,6 +37,9 @@ !type:DamageTrigger damage: 100 behaviors: + - !type:PlaySoundBehavior + sound: + collection: MetalBreak - !type:ChangeConstructionNodeBehavior node: start - !type:DoActsBehavior diff --git a/Resources/Prototypes/Entities/Structures/Piping/Disposal/pipes.yml b/Resources/Prototypes/Entities/Structures/Piping/Disposal/pipes.yml index d4b7c1d3c96..218b532efcd 100644 --- a/Resources/Prototypes/Entities/Structures/Piping/Disposal/pipes.yml +++ b/Resources/Prototypes/Entities/Structures/Piping/Disposal/pipes.yml @@ -43,6 +43,9 @@ !type:DamageTrigger damage: 50 behaviors: + - !type:PlaySoundBehavior + sound: + collection: MetalBreak - !type:DoActsBehavior acts: ["Breakage"] - !type:ChangeConstructionNodeBehavior diff --git a/Resources/Prototypes/Entities/Structures/Piping/Disposal/units.yml b/Resources/Prototypes/Entities/Structures/Piping/Disposal/units.yml index 2fcc18e1b36..c5f04d80a14 100644 --- a/Resources/Prototypes/Entities/Structures/Piping/Disposal/units.yml +++ b/Resources/Prototypes/Entities/Structures/Piping/Disposal/units.yml @@ -55,7 +55,7 @@ acts: ["Destruction"] - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak params: volume: -6 - !type:SpawnEntitiesBehavior diff --git a/Resources/Prototypes/Entities/Structures/Power/Generation/Singularity/emitter.yml b/Resources/Prototypes/Entities/Structures/Power/Generation/Singularity/emitter.yml index 8492f31e52b..e5604bea080 100644 --- a/Resources/Prototypes/Entities/Structures/Power/Generation/Singularity/emitter.yml +++ b/Resources/Prototypes/Entities/Structures/Power/Generation/Singularity/emitter.yml @@ -69,7 +69,7 @@ behaviors: - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak - !type:SpawnEntitiesBehavior spawn: SheetSteel1: diff --git a/Resources/Prototypes/Entities/Structures/Power/Generation/Tesla/coil.yml b/Resources/Prototypes/Entities/Structures/Power/Generation/Tesla/coil.yml index 8d5621206db..f236bb8a41e 100644 --- a/Resources/Prototypes/Entities/Structures/Power/Generation/Tesla/coil.yml +++ b/Resources/Prototypes/Entities/Structures/Power/Generation/Tesla/coil.yml @@ -96,7 +96,7 @@ acts: [ "Destruction" ] - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak - !type:SpawnEntitiesBehavior spawn: SheetSteel1: @@ -162,7 +162,7 @@ messages: WindowMessages - type: Repairable - type: Damageable - damageContainer: StructuralInorganic + damageContainer: StructuralInorganic - type: DamageVisuals thresholds: [8, 16, 25] damageDivisor: 3.333 @@ -174,12 +174,12 @@ - trigger: !type:DamageTrigger damage: 300 - behaviors: + behaviors: - !type:DoActsBehavior acts: [ "Destruction" ] - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak - !type:SpawnEntitiesBehavior spawn: SheetSteel1: diff --git a/Resources/Prototypes/Entities/Structures/Power/Generation/generators.yml b/Resources/Prototypes/Entities/Structures/Power/Generation/generators.yml index 2bcd65533f6..4948231b909 100644 --- a/Resources/Prototypes/Entities/Structures/Power/Generation/generators.yml +++ b/Resources/Prototypes/Entities/Structures/Power/Generation/generators.yml @@ -71,7 +71,7 @@ acts: ["Destruction"] - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak - !type:ExplodeBehavior - type: Explosive explosionType: Default @@ -261,7 +261,7 @@ behaviors: - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak - !type:SpawnEntitiesBehavior spawn: GeneratorRTGDamaged: @@ -305,7 +305,7 @@ behaviors: - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak - !type:SpawnEntitiesBehavior spawn: SheetSteel1: diff --git a/Resources/Prototypes/Entities/Structures/Power/Generation/portable_generator.yml b/Resources/Prototypes/Entities/Structures/Power/Generation/portable_generator.yml index 74fa0b2531b..d900d791d3e 100644 --- a/Resources/Prototypes/Entities/Structures/Power/Generation/portable_generator.yml +++ b/Resources/Prototypes/Entities/Structures/Power/Generation/portable_generator.yml @@ -72,7 +72,7 @@ behaviors: - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak - !type:ChangeConstructionNodeBehavior node: machineFrame - !type:DoActsBehavior @@ -177,7 +177,7 @@ - output_mv sprite: Structures/Power/Generation/portable_generator.rsi state: portgen0 - + - type: entity name: S.U.P.E.R.P.A.C.M.A.N.-type portable generator description: |- @@ -233,7 +233,7 @@ - output_mv sprite: Structures/Power/Generation/portable_generator.rsi state: portgen1 - + - type: entity name: J.R.P.A.C.M.A.N.-type portable generator description: |- @@ -307,7 +307,7 @@ nodes: output: !type:CableDeviceNode - nodeGroupID: Apc + nodeGroupID: Apc - type: PowerMonitoringDevice group: Generator loadNode: output @@ -340,7 +340,7 @@ solution: tank - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak - !type:ChangeConstructionNodeBehavior node: machineFrame - !type:DoActsBehavior diff --git a/Resources/Prototypes/Entities/Structures/Power/Generation/solar.yml b/Resources/Prototypes/Entities/Structures/Power/Generation/solar.yml index 445ee0728d2..5a28c4962c1 100644 --- a/Resources/Prototypes/Entities/Structures/Power/Generation/solar.yml +++ b/Resources/Prototypes/Entities/Structures/Power/Generation/solar.yml @@ -8,8 +8,7 @@ - type: MeleeSound soundGroups: Brute: - path: - "/Audio/Effects/glass_hit.ogg" + collection: GlassSmash - type: Clickable - type: InteractionOutline - type: Transform diff --git a/Resources/Prototypes/Entities/Structures/Power/apc.yml b/Resources/Prototypes/Entities/Structures/Power/apc.yml index ff8b7752eff..7efa53e2542 100644 --- a/Resources/Prototypes/Entities/Structures/Power/apc.yml +++ b/Resources/Prototypes/Entities/Structures/Power/apc.yml @@ -112,6 +112,9 @@ behaviors: #excess damage, don't spawn entities. - !type:DoActsBehavior acts: [ "Destruction" ] + - !type:PlaySoundBehavior + sound: + collection: MetalGlassBreak - trigger: !type:DamageTrigger damage: 50 @@ -123,6 +126,9 @@ max: 1 - !type:DoActsBehavior acts: [ "Destruction" ] + - !type:PlaySoundBehavior + sound: + collection: MetalGlassBreak - type: StationInfiniteBatteryTarget - type: Electrified onHandInteract: false @@ -177,6 +183,9 @@ SheetSteel1: min: 1 max: 1 + - !type:PlaySoundBehavior + sound: + collection: MetalBreak - !type:DoActsBehavior acts: [ "Destruction" ] diff --git a/Resources/Prototypes/Entities/Structures/Power/chargers.yml b/Resources/Prototypes/Entities/Structures/Power/chargers.yml index f9ea39b63f1..a8e20df1929 100644 --- a/Resources/Prototypes/Entities/Structures/Power/chargers.yml +++ b/Resources/Prototypes/Entities/Structures/Power/chargers.yml @@ -32,7 +32,7 @@ acts: ["Destruction"] - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak - type: StaticPrice price: 25 diff --git a/Resources/Prototypes/Entities/Structures/Power/substation.yml b/Resources/Prototypes/Entities/Structures/Power/substation.yml index 2155baa6ade..9d701564eb4 100644 --- a/Resources/Prototypes/Entities/Structures/Power/substation.yml +++ b/Resources/Prototypes/Entities/Structures/Power/substation.yml @@ -76,7 +76,7 @@ acts: ["Destruction"] - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalGlassBreak - !type:ExplodeBehavior - !type:SpawnEntitiesBehavior spawn: @@ -210,7 +210,7 @@ - !type:ExplodeBehavior - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalGlassBreak - type: Construction graph: WallmountSubstation node: substation diff --git a/Resources/Prototypes/Entities/Structures/Shuttles/thrusters.yml b/Resources/Prototypes/Entities/Structures/Shuttles/thrusters.yml index fb053d46a47..787101c5b55 100644 --- a/Resources/Prototypes/Entities/Structures/Shuttles/thrusters.yml +++ b/Resources/Prototypes/Entities/Structures/Shuttles/thrusters.yml @@ -41,7 +41,7 @@ acts: ["Destruction"] - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak - type: StaticPrice price: 300 placement: @@ -70,7 +70,7 @@ acts: ["Destruction"] - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak - !type:ChangeConstructionNodeBehavior node: machineFrame - type: Sprite @@ -179,7 +179,7 @@ acts: ["Destruction"] - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak - !type:ChangeConstructionNodeBehavior node: machineFrame - type: UpgradePowerDraw diff --git a/Resources/Prototypes/Entities/Structures/Storage/Canisters/gas_canisters.yml b/Resources/Prototypes/Entities/Structures/Storage/Canisters/gas_canisters.yml index d02b0d02b1a..760eb31755b 100644 --- a/Resources/Prototypes/Entities/Structures/Storage/Canisters/gas_canisters.yml +++ b/Resources/Prototypes/Entities/Structures/Storage/Canisters/gas_canisters.yml @@ -52,7 +52,7 @@ behaviors: - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak - !type:SpawnEntitiesBehavior spawn: GasCanisterBrokenBase: @@ -141,7 +141,7 @@ behaviors: - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak - !type:SpawnEntitiesBehavior spawn: StorageCanisterBroken: @@ -183,7 +183,7 @@ behaviors: - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak - !type:SpawnEntitiesBehavior spawn: AirCanisterBroken: @@ -222,7 +222,7 @@ behaviors: - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak - !type:SpawnEntitiesBehavior spawn: OxygenCanisterBroken: @@ -277,7 +277,7 @@ behaviors: - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak - !type:SpawnEntitiesBehavior spawn: NitrogenCanisterBroken: @@ -334,7 +334,7 @@ behaviors: - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak - !type:SpawnEntitiesBehavior spawn: CarbonDioxideCanisterBroken: @@ -395,7 +395,7 @@ behaviors: - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak - !type:SpawnEntitiesBehavior spawn: PlasmaCanisterBroken: @@ -440,7 +440,7 @@ behaviors: - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak - !type:SpawnEntitiesBehavior spawn: TritiumCanisterBroken: @@ -486,7 +486,7 @@ behaviors: - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak - !type:SpawnEntitiesBehavior spawn: WaterVaporCanisterBroken: @@ -531,7 +531,7 @@ behaviors: - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak - !type:SpawnEntitiesBehavior spawn: AmmoniaCanisterBroken: @@ -579,7 +579,7 @@ behaviors: - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak - !type:SpawnEntitiesBehavior spawn: NitrousOxideCanisterBroken: @@ -626,7 +626,7 @@ behaviors: - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak - !type:SpawnEntitiesBehavior spawn: FrezonCanisterBroken: @@ -660,7 +660,7 @@ behaviors: - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak - !type:SpawnEntitiesBehavior spawn: SheetPlasteel1: diff --git a/Resources/Prototypes/Entities/Structures/Storage/Closets/Lockers/base_structurelockers.yml b/Resources/Prototypes/Entities/Structures/Storage/Closets/Lockers/base_structurelockers.yml index 34f4db1ede5..4448d551e33 100644 --- a/Resources/Prototypes/Entities/Structures/Storage/Closets/Lockers/base_structurelockers.yml +++ b/Resources/Prototypes/Entities/Structures/Storage/Closets/Lockers/base_structurelockers.yml @@ -35,7 +35,7 @@ acts: ["Destruction"] - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak params: volume: -6 - !type:SpawnEntitiesBehavior diff --git a/Resources/Prototypes/Entities/Structures/Storage/Closets/base_structureclosets.yml b/Resources/Prototypes/Entities/Structures/Storage/Closets/base_structureclosets.yml index 02729556c9f..d1a60566d4e 100644 --- a/Resources/Prototypes/Entities/Structures/Storage/Closets/base_structureclosets.yml +++ b/Resources/Prototypes/Entities/Structures/Storage/Closets/base_structureclosets.yml @@ -33,7 +33,7 @@ types: Blunt: 5 soundHit: - path: /Audio/Effects/bang.ogg + collection: MetalThud - type: InteractionOutline - type: Physics - type: Fixtures @@ -75,7 +75,7 @@ acts: ["Destruction"] - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak params: volume: -6 - !type:SpawnEntitiesBehavior @@ -163,7 +163,7 @@ acts: ["Destruction"] - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak params: volume: -6 - !type:SpawnEntitiesBehavior @@ -230,7 +230,7 @@ types: Blunt: 5 soundHit: - path: /Audio/Effects/bang.ogg + collection: MetalThud - type: InteractionOutline - type: Physics - type: Fixtures @@ -271,7 +271,7 @@ acts: ["Destruction"] - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak params: volume: -6 - !type:SpawnEntitiesBehavior diff --git a/Resources/Prototypes/Entities/Structures/Storage/Crates/base_structurecrates.yml b/Resources/Prototypes/Entities/Structures/Storage/Crates/base_structurecrates.yml index 8b0f4c26e0f..76a88e7858f 100644 --- a/Resources/Prototypes/Entities/Structures/Storage/Crates/base_structurecrates.yml +++ b/Resources/Prototypes/Entities/Structures/Storage/Crates/base_structurecrates.yml @@ -48,6 +48,9 @@ behaviors: - !type:DoActsBehavior acts: ["Destruction"] + - !type:PlaySoundBehavior + sound: + collection: MetalBreak - type: Appearance - type: EntityStorageVisuals stateDoorOpen: open @@ -111,6 +114,9 @@ behaviors: - !type:DoActsBehavior acts: ["Destruction"] + - !type:PlaySoundBehavior + sound: + collection: MetalBreak - type: Construction graph: CrateSecure node: cratesecure diff --git a/Resources/Prototypes/Entities/Structures/Storage/Crates/crates.yml b/Resources/Prototypes/Entities/Structures/Storage/Crates/crates.yml index 2757d129ab0..31340114da2 100644 --- a/Resources/Prototypes/Entities/Structures/Storage/Crates/crates.yml +++ b/Resources/Prototypes/Entities/Structures/Storage/Crates/crates.yml @@ -151,7 +151,7 @@ acts: ["Destruction"] - !type:PlaySoundBehavior sound: - path: /Audio/Effects/woodhit.ogg + collection: WoodDestroy - !type:SpawnEntitiesBehavior spawn: MaterialWebSilk: @@ -317,7 +317,7 @@ behaviors: - !type:PlaySoundBehavior sound: - path: /Audio/Effects/woodhit.ogg + collection: WoodDestroyHeavy - !type:SpawnEntitiesBehavior spawn: MaterialWoodPlank1: @@ -367,7 +367,7 @@ behaviors: - !type:PlaySoundBehavior sound: - path: /Audio/Effects/woodhit.ogg + collection: MetalGlassBreak - !type:SpawnEntitiesBehavior spawn: SheetPlastic: @@ -462,7 +462,7 @@ behaviors: - !type:PlaySoundBehavior sound: - path: /Audio/Effects/woodhit.ogg + collection: WoodDestroy - !type:SpawnEntitiesBehavior spawn: MaterialWoodPlank1: @@ -500,7 +500,7 @@ behaviors: - !type:PlaySoundBehavior sound: - path: /Audio/Effects/woodhit.ogg + collection: WoodDestroy - !type:SpawnEntitiesBehavior spawn: MaterialWoodPlank1: diff --git a/Resources/Prototypes/Entities/Structures/Storage/Tanks/base_structuretanks.yml b/Resources/Prototypes/Entities/Structures/Storage/Tanks/base_structuretanks.yml index eef5ef6ed6c..79015e2d049 100644 --- a/Resources/Prototypes/Entities/Structures/Storage/Tanks/base_structuretanks.yml +++ b/Resources/Prototypes/Entities/Structures/Storage/Tanks/base_structuretanks.yml @@ -53,7 +53,7 @@ solution: tank - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak - !type:DoActsBehavior acts: ["Destruction"] - type: SolutionContainerManager diff --git a/Resources/Prototypes/Entities/Structures/Storage/filing_cabinets.yml b/Resources/Prototypes/Entities/Structures/Storage/filing_cabinets.yml index ea49d5f04da..d341c017a70 100644 --- a/Resources/Prototypes/Entities/Structures/Storage/filing_cabinets.yml +++ b/Resources/Prototypes/Entities/Structures/Storage/filing_cabinets.yml @@ -56,7 +56,7 @@ acts: ["Destruction"] - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak - !type:SpawnEntitiesBehavior spawn: SheetSteel1: @@ -145,7 +145,7 @@ acts: ["Destruction"] - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak - !type:SpawnEntitiesBehavior spawn: SheetSteel1: diff --git a/Resources/Prototypes/Entities/Structures/Storage/storage.yml b/Resources/Prototypes/Entities/Structures/Storage/storage.yml index 2069fb1e3f1..79a1e357998 100644 --- a/Resources/Prototypes/Entities/Structures/Storage/storage.yml +++ b/Resources/Prototypes/Entities/Structures/Storage/storage.yml @@ -47,7 +47,7 @@ behaviors: - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak params: volume: -6 - !type:SpawnEntitiesBehavior diff --git a/Resources/Prototypes/Entities/Structures/Wallmounts/Signs/bar_sign.yml b/Resources/Prototypes/Entities/Structures/Wallmounts/Signs/bar_sign.yml index 109741e8623..8e957abfe7f 100644 --- a/Resources/Prototypes/Entities/Structures/Wallmounts/Signs/bar_sign.yml +++ b/Resources/Prototypes/Entities/Structures/Wallmounts/Signs/bar_sign.yml @@ -7,8 +7,7 @@ - type: MeleeSound soundGroups: Brute: - path: - "/Audio/Effects/glass_hit.ogg" + collection: GlassSmash - type: WallMount - type: Sprite drawdepth: Objects diff --git a/Resources/Prototypes/Entities/Structures/Wallmounts/air_alarm.yml b/Resources/Prototypes/Entities/Structures/Wallmounts/air_alarm.yml index ad3997fe6db..80a8e8ea202 100644 --- a/Resources/Prototypes/Entities/Structures/Wallmounts/air_alarm.yml +++ b/Resources/Prototypes/Entities/Structures/Wallmounts/air_alarm.yml @@ -102,7 +102,7 @@ acts: [ "Destruction" ] - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalGlassBreak params: volume: -4 diff --git a/Resources/Prototypes/Entities/Structures/Wallmounts/bell.yml b/Resources/Prototypes/Entities/Structures/Wallmounts/bell.yml index a4ea19d15e8..24e5cfda2af 100644 --- a/Resources/Prototypes/Entities/Structures/Wallmounts/bell.yml +++ b/Resources/Prototypes/Entities/Structures/Wallmounts/bell.yml @@ -16,7 +16,7 @@ - state: bell - type: InteractionPopup successChance: 1 - interactSuccessSound: + interactSuccessSound: path: /Audio/Weapons/boxingbell.ogg - type: Clickable - type: MeleeSound @@ -44,4 +44,4 @@ acts: ["Destruction"] - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak diff --git a/Resources/Prototypes/Entities/Structures/Wallmounts/defib_cabinet.yml b/Resources/Prototypes/Entities/Structures/Wallmounts/defib_cabinet.yml index d5132100db1..517d2d697d9 100644 --- a/Resources/Prototypes/Entities/Structures/Wallmounts/defib_cabinet.yml +++ b/Resources/Prototypes/Entities/Structures/Wallmounts/defib_cabinet.yml @@ -54,7 +54,7 @@ acts: [ "Destruction" ] - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalGlassBreak placement: mode: SnapgridCenter diff --git a/Resources/Prototypes/Entities/Structures/Wallmounts/extinguisher_cabinet.yml b/Resources/Prototypes/Entities/Structures/Wallmounts/extinguisher_cabinet.yml index ca2b381142f..a0775641ef2 100644 --- a/Resources/Prototypes/Entities/Structures/Wallmounts/extinguisher_cabinet.yml +++ b/Resources/Prototypes/Entities/Structures/Wallmounts/extinguisher_cabinet.yml @@ -54,7 +54,7 @@ acts: [ "Destruction" ] - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalGlassBreak params: volume: -4 placement: diff --git a/Resources/Prototypes/Entities/Structures/Wallmounts/fire_alarm.yml b/Resources/Prototypes/Entities/Structures/Wallmounts/fire_alarm.yml index d8830477f46..05988fbc217 100644 --- a/Resources/Prototypes/Entities/Structures/Wallmounts/fire_alarm.yml +++ b/Resources/Prototypes/Entities/Structures/Wallmounts/fire_alarm.yml @@ -99,7 +99,7 @@ acts: [ "Destruction" ] - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalGlassBreak params: volume: -4 placement: diff --git a/Resources/Prototypes/Entities/Structures/Wallmounts/fireaxe_cabinet.yml b/Resources/Prototypes/Entities/Structures/Wallmounts/fireaxe_cabinet.yml index 1e78eb501f2..070c6e526d4 100644 --- a/Resources/Prototypes/Entities/Structures/Wallmounts/fireaxe_cabinet.yml +++ b/Resources/Prototypes/Entities/Structures/Wallmounts/fireaxe_cabinet.yml @@ -9,8 +9,7 @@ - type: MeleeSound soundGroups: Brute: - path: - "/Audio/Effects/glass_hit.ogg" + collection: GlassSmash - type: WallMount - type: Clickable - type: InteractionOutline diff --git a/Resources/Prototypes/Entities/Structures/Wallmounts/intercom.yml b/Resources/Prototypes/Entities/Structures/Wallmounts/intercom.yml index 9848993b082..037a89a9886 100644 --- a/Resources/Prototypes/Entities/Structures/Wallmounts/intercom.yml +++ b/Resources/Prototypes/Entities/Structures/Wallmounts/intercom.yml @@ -89,7 +89,7 @@ acts: [ "Destruction" ] - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalGlassBreak params: volume: -4 - type: GenericVisualizer diff --git a/Resources/Prototypes/Entities/Structures/Wallmounts/noticeboard.yml b/Resources/Prototypes/Entities/Structures/Wallmounts/noticeboard.yml index bad84227c85..4a442d0542f 100644 --- a/Resources/Prototypes/Entities/Structures/Wallmounts/noticeboard.yml +++ b/Resources/Prototypes/Entities/Structures/Wallmounts/noticeboard.yml @@ -29,7 +29,7 @@ behaviors: - !type:PlaySoundBehavior sound: - path: /Audio/Effects/woodhit.ogg + collection: WoodDestroy - !type:SpawnEntitiesBehavior spawn: MaterialWoodPlank: diff --git a/Resources/Prototypes/Entities/Structures/Wallmounts/surveillance_camera.yml b/Resources/Prototypes/Entities/Structures/Wallmounts/surveillance_camera.yml index c85a5b03ae1..dfbe99b2d2a 100644 --- a/Resources/Prototypes/Entities/Structures/Wallmounts/surveillance_camera.yml +++ b/Resources/Prototypes/Entities/Structures/Wallmounts/surveillance_camera.yml @@ -64,7 +64,7 @@ acts: [ "Destruction" ] - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak params: volume: -8 placement: diff --git a/Resources/Prototypes/Entities/Structures/Wallmounts/switch.yml b/Resources/Prototypes/Entities/Structures/Wallmounts/switch.yml index 60e097a46d9..1b285348d5b 100644 --- a/Resources/Prototypes/Entities/Structures/Wallmounts/switch.yml +++ b/Resources/Prototypes/Entities/Structures/Wallmounts/switch.yml @@ -91,7 +91,7 @@ acts: [ "Destruction" ] - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak params: volume: -8 diff --git a/Resources/Prototypes/Entities/Structures/Wallmounts/walldispenser.yml b/Resources/Prototypes/Entities/Structures/Wallmounts/walldispenser.yml index 4d0e3cb5321..c8778aea50a 100644 --- a/Resources/Prototypes/Entities/Structures/Wallmounts/walldispenser.yml +++ b/Resources/Prototypes/Entities/Structures/Wallmounts/walldispenser.yml @@ -4,7 +4,7 @@ description: Wallmount reagent dispenser. placement: mode: SnapgridCenter - snap: + snap: - Wallmount components: - type: WallMount @@ -50,7 +50,7 @@ solution: tank - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak - !type:DoActsBehavior acts: ["Destruction"] - type: SolutionContainerManager @@ -86,4 +86,4 @@ - Welding weldingDamage: types: - Heat: 20 \ No newline at end of file + Heat: 20 diff --git a/Resources/Prototypes/Entities/Structures/Walls/fence_metal.yml b/Resources/Prototypes/Entities/Structures/Walls/fence_metal.yml index 583ea2ebb24..559970aa91f 100644 --- a/Resources/Prototypes/Entities/Structures/Walls/fence_metal.yml +++ b/Resources/Prototypes/Entities/Structures/Walls/fence_metal.yml @@ -37,7 +37,7 @@ behaviors: - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak - !type:SpawnEntitiesBehavior spawn: PartRodMetal1: @@ -125,7 +125,7 @@ behaviors: - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak - !type:SpawnEntitiesBehavior spawn: PartRodMetal1: diff --git a/Resources/Prototypes/Entities/Structures/Walls/girders.yml b/Resources/Prototypes/Entities/Structures/Walls/girders.yml index a1ed2332b99..3c9a2e70335 100644 --- a/Resources/Prototypes/Entities/Structures/Walls/girders.yml +++ b/Resources/Prototypes/Entities/Structures/Walls/girders.yml @@ -49,6 +49,9 @@ max: 1 - !type:DoActsBehavior acts: [ "Destruction" ] + - !type:PlaySoundBehavior + sound: + collection: MetalBreak - type: StaticPrice price: 10 @@ -72,6 +75,9 @@ behaviors: - !type:DoActsBehavior acts: [ "Destruction" ] + - !type:PlaySoundBehavior + sound: + collection: MetalBreak - trigger: !type:DamageTrigger damage: 50 @@ -86,5 +92,8 @@ max: 1 - !type:DoActsBehavior acts: [ "Destruction" ] + - !type:PlaySoundBehavior + sound: + collection: MetalBreak - type: StaticPrice price: 66 diff --git a/Resources/Prototypes/Entities/Structures/Walls/railing.yml b/Resources/Prototypes/Entities/Structures/Walls/railing.yml index 87a89dfc574..95d16742d58 100644 --- a/Resources/Prototypes/Entities/Structures/Walls/railing.yml +++ b/Resources/Prototypes/Entities/Structures/Walls/railing.yml @@ -43,7 +43,7 @@ behaviors: - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak params: volume: -6 - !type:SpawnEntitiesBehavior @@ -112,7 +112,7 @@ behaviors: - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak params: volume: -6 - !type:SpawnEntitiesBehavior @@ -172,7 +172,7 @@ behaviors: - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak params: volume: -6 - !type:SpawnEntitiesBehavior @@ -247,7 +247,7 @@ behaviors: - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak params: volume: -6 - !type:SpawnEntitiesBehavior diff --git a/Resources/Prototypes/Entities/Structures/Walls/walls.yml b/Resources/Prototypes/Entities/Structures/Walls/walls.yml index ac464334819..26a1b3464fe 100644 --- a/Resources/Prototypes/Entities/Structures/Walls/walls.yml +++ b/Resources/Prototypes/Entities/Structures/Walls/walls.yml @@ -293,6 +293,9 @@ !type:DamageTrigger damage: 300 behaviors: + - !type:PlaySoundBehavior + sound: + collection: MetalSlam - !type:DoActsBehavior acts: ["Destruction"] - trigger: @@ -301,13 +304,11 @@ behaviors: - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalSlam - !type:ChangeConstructionNodeBehavior node: girder - !type:DoActsBehavior acts: ["Destruction"] - destroySound: - path: /Audio/Effects/metalbreak.ogg - type: IconSmooth key: walls base: gold @@ -364,6 +365,9 @@ !type:DamageTrigger damage: 300 behaviors: + - !type:PlaySoundBehavior + sound: + collection: MetalSlam - !type:DoActsBehavior acts: ["Destruction"] - trigger: @@ -372,13 +376,11 @@ behaviors: - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalSlam - !type:ChangeConstructionNodeBehavior node: girder - !type:DoActsBehavior acts: ["Destruction"] - destroySound: - path: /Audio/Effects/metalbreak.ogg - type: IconSmooth key: walls base: plasma @@ -409,19 +411,20 @@ behaviors: - !type:DoActsBehavior acts: ["Destruction"] + - !type:PlaySoundBehavior + sound: + collection: MetalSlam - trigger: !type:DamageTrigger damage: 150 behaviors: - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalSlam - !type:ChangeConstructionNodeBehavior node: girder - !type:DoActsBehavior acts: ["Destruction"] - destroySound: - path: /Audio/Effects/metalbreak.ogg - type: IconSmooth key: walls base: plastic @@ -513,19 +516,20 @@ behaviors: - !type:DoActsBehavior acts: ["Destruction"] + - !type:PlaySoundBehavior + sound: + collection: MetalSlam - trigger: !type:DamageTrigger damage: 400 behaviors: - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalSlam - !type:ChangeConstructionNodeBehavior node: girder - !type:DoActsBehavior acts: ["Destruction"] - destroySound: - path: /Audio/Effects/metalbreak.ogg - type: IconSmooth key: walls base: reinf_over @@ -636,19 +640,20 @@ behaviors: - !type:DoActsBehavior acts: ["Destruction"] + - !type:PlaySoundBehavior + sound: + collection: MetalSlam - trigger: !type:DamageTrigger damage: 150 behaviors: - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalSlam - !type:ChangeConstructionNodeBehavior node: girder - !type:DoActsBehavior acts: ["Destruction"] - destroySound: - path: /Audio/Effects/metalbreak.ogg - type: IconSmooth key: walls base: silver @@ -715,6 +720,9 @@ behaviors: - !type:DoActsBehavior acts: [ "Destruction" ] + - !type:PlaySoundBehavior + sound: + collection: MetalSlam - trigger: !type:DamageTrigger damage: 300 @@ -723,7 +731,7 @@ node: girder - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalSlam - !type:DoActsBehavior acts: ["Destruction"] - type: Construction @@ -805,19 +813,20 @@ behaviors: - !type:DoActsBehavior acts: ["Destruction"] + - !type:PlaySoundBehavior + sound: + collection: MetalSlam - trigger: !type:DamageTrigger damage: 200 behaviors: - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalSlam - !type:ChangeConstructionNodeBehavior node: girder - !type:DoActsBehavior acts: ["Destruction"] - destroySound: - path: /Audio/Effects/metalbreak.ogg - type: IconSmooth key: walls base: solid @@ -866,19 +875,20 @@ behaviors: - !type:DoActsBehavior acts: ["Destruction"] + - !type:PlaySoundBehavior + sound: + collection: MetalSlam - trigger: !type:DamageTrigger damage: 200 behaviors: - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalSlam - !type:ChangeConstructionNodeBehavior node: girder - !type:DoActsBehavior acts: ["Destruction"] - destroySound: - path: /Audio/Effects/metalbreak.ogg - type: IconSmooth key: walls base: solidrust @@ -903,19 +913,20 @@ behaviors: - !type:DoActsBehavior acts: ["Destruction"] + - !type:PlaySoundBehavior + sound: + collection: MetalSlam - trigger: !type:DamageTrigger damage: 150 behaviors: - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalSlam - !type:ChangeConstructionNodeBehavior node: girder - !type:DoActsBehavior acts: ["Destruction"] - destroySound: - path: /Audio/Effects/metalbreak.ogg - type: IconSmooth key: walls base: uranium @@ -942,19 +953,20 @@ behaviors: - !type:DoActsBehavior acts: ["Destruction"] + - !type:PlaySoundBehavior + sound: + collection: WoodDestroyHeavy - trigger: !type:DamageTrigger damage: 150 behaviors: - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: WoodDestroyHeavy - !type:ChangeConstructionNodeBehavior node: girder - !type:DoActsBehavior acts: ["Destruction"] - destroySound: - path: /Audio/Effects/metalbreak.ogg - type: IconSmooth key: walls base: wood @@ -996,7 +1008,7 @@ max: 1 - !type:PlaySoundBehavior sound: - path: /Audio/Effects/woodhit.ogg + collection: WoodDestroy - type: IconSmooth key: walls base: wall diff --git a/Resources/Prototypes/Entities/Structures/Windows/mining.yml b/Resources/Prototypes/Entities/Structures/Windows/mining.yml index 0004cf4ec07..fc49b9e401c 100644 --- a/Resources/Prototypes/Entities/Structures/Windows/mining.yml +++ b/Resources/Prototypes/Entities/Structures/Windows/mining.yml @@ -28,7 +28,7 @@ behaviors: - !type:PlaySoundBehavior sound: - collection: GlassBreak + collection: WindowShatter - !type:SpawnEntitiesBehavior spawn: ShardGlassReinforced: diff --git a/Resources/Prototypes/Entities/Structures/Windows/plasma.yml b/Resources/Prototypes/Entities/Structures/Windows/plasma.yml index d69545f8d2f..70c1573fb8d 100644 --- a/Resources/Prototypes/Entities/Structures/Windows/plasma.yml +++ b/Resources/Prototypes/Entities/Structures/Windows/plasma.yml @@ -19,13 +19,16 @@ behaviors: - !type:DoActsBehavior acts: [ "Destruction" ] + - !type:PlaySoundBehavior + sound: + collection: WindowShatter - trigger: !type:DamageTrigger damage: 60 behaviors: - !type:PlaySoundBehavior sound: - collection: GlassBreak + collection: WindowShatter - !type:SpawnEntitiesBehavior spawn: ShardGlassPlasma: @@ -84,7 +87,7 @@ behaviors: - !type:PlaySoundBehavior sound: - collection: GlassBreak + collection: WindowShatter - !type:SpawnEntitiesBehavior spawn: ShardGlassPlasma: diff --git a/Resources/Prototypes/Entities/Structures/Windows/reinforced.yml b/Resources/Prototypes/Entities/Structures/Windows/reinforced.yml index c7837a5c6c7..e2399654940 100644 --- a/Resources/Prototypes/Entities/Structures/Windows/reinforced.yml +++ b/Resources/Prototypes/Entities/Structures/Windows/reinforced.yml @@ -22,13 +22,16 @@ behaviors: - !type:DoActsBehavior acts: [ "Destruction" ] + - !type:PlaySoundBehavior + sound: + collection: WindowShatter - trigger: !type:DamageTrigger damage: 75 behaviors: - !type:PlaySoundBehavior sound: - collection: GlassBreak + collection: WindowShatter - !type:SpawnEntitiesBehavior spawn: ShardGlassReinforced: @@ -104,7 +107,7 @@ behaviors: - !type:PlaySoundBehavior sound: - collection: GlassBreak + collection: WindowShatter - !type:SpawnEntitiesBehavior spawn: ShardGlassReinforced: diff --git a/Resources/Prototypes/Entities/Structures/Windows/rplasma.yml b/Resources/Prototypes/Entities/Structures/Windows/rplasma.yml index bdc75b14a93..67dfe028d93 100644 --- a/Resources/Prototypes/Entities/Structures/Windows/rplasma.yml +++ b/Resources/Prototypes/Entities/Structures/Windows/rplasma.yml @@ -21,13 +21,16 @@ behaviors: #excess damage, don't spawn entities. - !type:DoActsBehavior acts: [ "Destruction" ] + - !type:PlaySoundBehavior + sound: + collection: WindowShatter - trigger: !type:DamageTrigger damage: 100 behaviors: - !type:PlaySoundBehavior sound: - collection: GlassBreak + collection: WindowShatter - !type:SpawnEntitiesBehavior spawn: ShardGlassPlasma: @@ -93,7 +96,7 @@ behaviors: - !type:PlaySoundBehavior sound: - collection: GlassBreak + collection: WindowShatter - !type:SpawnEntitiesBehavior spawn: ShardGlassPlasma: diff --git a/Resources/Prototypes/Entities/Structures/Windows/ruranium.yml b/Resources/Prototypes/Entities/Structures/Windows/ruranium.yml index 84c978fff01..baf50e17d2f 100644 --- a/Resources/Prototypes/Entities/Structures/Windows/ruranium.yml +++ b/Resources/Prototypes/Entities/Structures/Windows/ruranium.yml @@ -25,7 +25,7 @@ behaviors: - !type:PlaySoundBehavior sound: - collection: GlassBreak + collection: WindowShatter - !type:SpawnEntitiesBehavior spawn: ShardGlassUranium: diff --git a/Resources/Prototypes/Entities/Structures/Windows/shuttle.yml b/Resources/Prototypes/Entities/Structures/Windows/shuttle.yml index 835f5ce528a..9ec9e563c9d 100644 --- a/Resources/Prototypes/Entities/Structures/Windows/shuttle.yml +++ b/Resources/Prototypes/Entities/Structures/Windows/shuttle.yml @@ -28,7 +28,7 @@ behaviors: - !type:PlaySoundBehavior sound: - collection: GlassBreak + collection: WindowShatter - !type:SpawnEntitiesBehavior spawn: ShardGlassReinforced: diff --git a/Resources/Prototypes/Entities/Structures/Windows/uranium.yml b/Resources/Prototypes/Entities/Structures/Windows/uranium.yml index a11ca625865..42ff0f4258f 100644 --- a/Resources/Prototypes/Entities/Structures/Windows/uranium.yml +++ b/Resources/Prototypes/Entities/Structures/Windows/uranium.yml @@ -26,7 +26,7 @@ behaviors: - !type:PlaySoundBehavior sound: - collection: GlassBreak + collection: WindowShatter - !type:SpawnEntitiesBehavior spawn: ShardGlassUranium: diff --git a/Resources/Prototypes/Entities/Structures/Windows/window.yml b/Resources/Prototypes/Entities/Structures/Windows/window.yml index 12552dbf4fd..9d355d44222 100644 --- a/Resources/Prototypes/Entities/Structures/Windows/window.yml +++ b/Resources/Prototypes/Entities/Structures/Windows/window.yml @@ -11,8 +11,7 @@ - type: MeleeSound soundGroups: Brute: - path: - "/Audio/Effects/glass_hit.ogg" + collection: GlassSmack - type: WallMount arc: 360 # interact despite grilles - type: Tag @@ -49,6 +48,9 @@ !type:DamageTrigger damage: 100 behaviors: + - !type:PlaySoundBehavior + sound: + collection: WindowShatter - !type:DoActsBehavior acts: [ "Destruction" ] - trigger: @@ -57,7 +59,7 @@ behaviors: - !type:PlaySoundBehavior sound: - collection: GlassBreak + collection: WindowShatter - !type:SpawnEntitiesBehavior spawn: ShardGlass: @@ -105,8 +107,7 @@ - type: MeleeSound soundGroups: Brute: - path: - "/Audio/Effects/glass_hit.ogg" + collection: GlassSmack - type: Sprite drawdepth: Mobs sprite: Structures/Windows/directional.rsi @@ -145,13 +146,16 @@ behaviors: - !type:DoActsBehavior acts: [ "Destruction" ] + - !type:PlaySoundBehavior + sound: + collection: WindowShatter - trigger: !type:DamageTrigger damage: 50 behaviors: - !type:PlaySoundBehavior sound: - collection: GlassBreak + collection: WindowShatter - !type:SpawnEntitiesBehavior spawn: ShardGlass: diff --git a/Resources/Prototypes/Entities/Structures/hydro_tray.yml b/Resources/Prototypes/Entities/Structures/hydro_tray.yml index f2b8feaa395..1ab1fd5b2fd 100644 --- a/Resources/Prototypes/Entities/Structures/hydro_tray.yml +++ b/Resources/Prototypes/Entities/Structures/hydro_tray.yml @@ -73,6 +73,9 @@ behaviors: - !type:ChangeConstructionNodeBehavior node: machineFrame + - !type:PlaySoundBehavior + sound: + collection: MetalGlassBreak - !type:DoActsBehavior acts: ["Destruction"] - type: Machine diff --git a/Resources/Prototypes/Entities/Structures/meat_spike.yml b/Resources/Prototypes/Entities/Structures/meat_spike.yml index a312fcb835e..086066f5c26 100644 --- a/Resources/Prototypes/Entities/Structures/meat_spike.yml +++ b/Resources/Prototypes/Entities/Structures/meat_spike.yml @@ -31,7 +31,7 @@ acts: ["Destruction"] - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak params: volume: -4 - !type:SpawnEntitiesBehavior diff --git a/Resources/Prototypes/SoundCollections/destruction.yml b/Resources/Prototypes/SoundCollections/destruction.yml new file mode 100644 index 00000000000..1e1545b5f5d --- /dev/null +++ b/Resources/Prototypes/SoundCollections/destruction.yml @@ -0,0 +1,63 @@ +- type: soundCollection + id: GlassBreak + files: + - /Audio/Effects/glass_break1.ogg + - /Audio/Effects/glass_break2.ogg + - /Audio/Effects/glass_break3.ogg + - /Audio/Effects/glass_break4.ogg + +- type: soundCollection + id: GlassCrack + files: + - /Audio/Effects/glass_crack1.ogg + - /Audio/Effects/glass_crack2.ogg + - /Audio/Effects/glass_crack3.ogg + - /Audio/Effects/glass_crack4.ogg + +- type: soundCollection + id: WindowShatter + files: + - /Audio/Effects/window_shatter1.ogg + - /Audio/Effects/window_shatter2.ogg + - /Audio/Effects/window_shatter3.ogg + +- type: soundCollection + id: WoodDestroy + files: + - /Audio/Effects/wood_destroy1.ogg + - /Audio/Effects/wood_destroy2.ogg + - /Audio/Effects/wood_destroy3.ogg + +- type: soundCollection + id: WoodDestroyHeavy + files: + - /Audio/Effects/wood_destroy_heavy1.ogg + +- type: soundCollection + id: MetalCrunch + files: + - /Audio/Effects/metal_crunch.ogg + +- type: soundCollection + id: MetalBreak + files: + - /Audio/Effects/metal_break1.ogg + - /Audio/Effects/metal_break2.ogg + - /Audio/Effects/metal_break3.ogg + - /Audio/Effects/metal_break4.ogg + - /Audio/Effects/metal_break5.ogg + +- type: soundCollection + id: MetalGlassBreak + files: + - /Audio/Effects/metal_glass_break1.ogg + - /Audio/Effects/metal_glass_break2.ogg + +- type: soundCollection + id: MetalSlam + files: + - /Audio/Effects/metal_slam1.ogg + - /Audio/Effects/metal_slam2.ogg + - /Audio/Effects/metal_slam3.ogg + - /Audio/Effects/metal_slam4.ogg + - /Audio/Effects/metal_slam5.ogg diff --git a/Resources/Prototypes/SoundCollections/glassbreak.yml b/Resources/Prototypes/SoundCollections/glassbreak.yml deleted file mode 100644 index 67417b22d49..00000000000 --- a/Resources/Prototypes/SoundCollections/glassbreak.yml +++ /dev/null @@ -1,6 +0,0 @@ -- type: soundCollection - id: GlassBreak - files: - - /Audio/Effects/glass_break1.ogg - - /Audio/Effects/glass_break2.ogg - - /Audio/Effects/glass_break3.ogg diff --git a/Resources/Prototypes/SoundCollections/impacts.yml b/Resources/Prototypes/SoundCollections/gun_impacts.yml similarity index 100% rename from Resources/Prototypes/SoundCollections/impacts.yml rename to Resources/Prototypes/SoundCollections/gun_impacts.yml diff --git a/Resources/Prototypes/SoundCollections/hit_impacts.yml b/Resources/Prototypes/SoundCollections/hit_impacts.yml new file mode 100644 index 00000000000..b0e805f30df --- /dev/null +++ b/Resources/Prototypes/SoundCollections/hit_impacts.yml @@ -0,0 +1,29 @@ +- type: soundCollection + id: MetalThud + files: + - /Audio/Effects/metal_thud1.ogg + - /Audio/Effects/metal_thud2.ogg + - /Audio/Effects/metal_thud3.ogg + +- type: soundCollection + id: MetalScrape + files: + - /Audio/Effects/metal_scrape1.ogg + - /Audio/Effects/metal_scrape2.ogg + - /Audio/Effects/metal_scrape3.ogg + +- type: soundCollection + id: WeakHit + files: + - /Audio/Effects/weak_hit1.ogg + - /Audio/Effects/weak_hit2.ogg + +- type: soundCollection + id: GlassSmack + files: + - /Audio/Effects/glass_smack.ogg + +- type: soundCollection + id: GlassSmash + files: + - /Audio/Effects/glass_smash.ogg diff --git a/Resources/Prototypes/SoundCollections/traits.yml b/Resources/Prototypes/SoundCollections/traits.yml index 557632c6bba..e0d7206c635 100644 --- a/Resources/Prototypes/SoundCollections/traits.yml +++ b/Resources/Prototypes/SoundCollections/traits.yml @@ -20,9 +20,9 @@ - /Audio/Effects/bodyfall4.ogg - /Audio/Effects/demon_dies.ogg - /Audio/Effects/demon_attack1.ogg - - /Audio/Effects/bang.ogg - /Audio/Effects/clang.ogg - - /Audio/Effects/metalbreak.ogg + - /Audio/Effects/metal_slam1.ogg + - /Audio/Effects/metal_slam5.ogg - /Audio/Effects/minibombcountdown.ogg - /Audio/Effects/sadtrombone.ogg - /Audio/Effects/sparks1.ogg From 884c866e4d446cce0f5f4c5db0886a33823891a3 Mon Sep 17 00:00:00 2001 From: PJBot Date: Fri, 19 Jan 2024 15:34:15 +0000 Subject: [PATCH 04/66] Automatic changelog update --- Resources/Changelog/Changelog.yml | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/Resources/Changelog/Changelog.yml b/Resources/Changelog/Changelog.yml index 3fc8eb71cdd..1cfd3caef48 100644 --- a/Resources/Changelog/Changelog.yml +++ b/Resources/Changelog/Changelog.yml @@ -1,10 +1,4 @@ Entries: -- author: deltanedas - changes: - - message: Fixed ninja calling in a dragon not actually spawning a dragon. - type: Fix - id: 5245 - time: '2023-12-02T20:41:36.0000000+00:00' - author: EmoGarbage404 changes: - message: Improvised explosive devices now have unreliable timers that can take @@ -3777,3 +3771,13 @@ id: 5745 time: '2024-01-19T10:14:42.0000000+00:00' url: https://api.github.com/repos/space-wizards/space-station-14/pulls/24283 +- author: mirrorcult + changes: + - message: Destruction & impact sounds have been reworked in general, you should + expect better sounds/more variance/actually playing sounds when applicable + type: Add + - message: Melee hit sounds being cut off when an entity is destroyed has been fixed + type: Fix + id: 5746 + time: '2024-01-19T15:33:08.0000000+00:00' + url: https://api.github.com/repos/space-wizards/space-station-14/pulls/24282 From fd673cf6e30599f5895d58c3281eba2901301401 Mon Sep 17 00:00:00 2001 From: SpeltIncorrectyl <66873282+SpeltIncorrectyl@users.noreply.github.com> Date: Fri, 19 Jan 2024 15:35:02 +0000 Subject: [PATCH 05/66] Can emag artifact crusher (#23957) * initial commit * made it emaggable * removed OnAttemptEmagEvent * moved emagging to shared * added local file to git --- .../Systems/ArtifactCrusherSystem.cs | 10 +++++++-- .../Equipment/ArtifactCrusherComponent.cs | 6 +++++ .../Equipment/SharedArtifactCrusherSystem.cs | 22 +++++++++++++++++++ .../en-US/artifacts/artifact-crusher.ftl | 3 +++ 4 files changed, 39 insertions(+), 2 deletions(-) create mode 100644 Resources/Locale/en-US/artifacts/artifact-crusher.ftl diff --git a/Content.Server/Xenoarchaeology/Equipment/Systems/ArtifactCrusherSystem.cs b/Content.Server/Xenoarchaeology/Equipment/Systems/ArtifactCrusherSystem.cs index 7d6f2785c67..09fdc260d7c 100644 --- a/Content.Server/Xenoarchaeology/Equipment/Systems/ArtifactCrusherSystem.cs +++ b/Content.Server/Xenoarchaeology/Equipment/Systems/ArtifactCrusherSystem.cs @@ -1,4 +1,5 @@ using Content.Server.Body.Systems; +using Content.Server.Popups; using Content.Server.Power.Components; using Content.Server.Power.EntitySystems; using Content.Server.Stack; @@ -23,6 +24,7 @@ public sealed class ArtifactCrusherSystem : SharedArtifactCrusherSystem [Dependency] private readonly BodySystem _body = default!; [Dependency] private readonly DamageableSystem _damageable = default!; [Dependency] private readonly StackSystem _stack = default!; + [Dependency] private readonly PopupSystem _popup = default!; /// public override void Initialize() @@ -38,7 +40,8 @@ private void OnGetVerbs(Entity ent, ref GetVerbsEvent< if (!args.CanAccess || !args.CanInteract || args.Hands == null || ent.Comp.Crushing) return; - if (!TryComp(ent, out var entityStorageComp) || entityStorageComp.Contents.ContainedEntities.Count == 0) + if (!TryComp(ent, out var entityStorageComp) || + entityStorageComp.Contents.ContainedEntities.Count == 0) return; if (!this.IsPowered(ent, EntityManager)) @@ -61,11 +64,14 @@ private void OnPowerChanged(Entity ent, ref PowerChang public void StartCrushing(Entity ent) { - var (_, crusher, _) = ent; + var (uid, crusher, _) = ent; if (crusher.Crushing) return; + if (crusher.AutoLock) + _popup.PopupEntity(Loc.GetString("artifact-crusher-autolocks-enable"), uid); + crusher.Crushing = true; crusher.NextSecond = _timing.CurTime + TimeSpan.FromSeconds(1); crusher.CrushEndTime = _timing.CurTime + crusher.CrushDuration; diff --git a/Content.Shared/Xenoarchaeology/Equipment/ArtifactCrusherComponent.cs b/Content.Shared/Xenoarchaeology/Equipment/ArtifactCrusherComponent.cs index 687b29f2083..e21cedb6f9a 100644 --- a/Content.Shared/Xenoarchaeology/Equipment/ArtifactCrusherComponent.cs +++ b/Content.Shared/Xenoarchaeology/Equipment/ArtifactCrusherComponent.cs @@ -101,6 +101,12 @@ public sealed partial class ArtifactCrusherComponent : Component ///

[DataField] public (EntityUid, AudioComponent)? CrushingSoundEntity; + + /// + /// When enabled, stops the artifact crusher from being opened when it is being crushed. + /// + [DataField, AutoNetworkedField, ViewVariables(VVAccess.ReadWrite)] + public bool AutoLock = false; } [Serializable, NetSerializable] diff --git a/Content.Shared/Xenoarchaeology/Equipment/SharedArtifactCrusherSystem.cs b/Content.Shared/Xenoarchaeology/Equipment/SharedArtifactCrusherSystem.cs index 44e1b91a906..da253ba80af 100644 --- a/Content.Shared/Xenoarchaeology/Equipment/SharedArtifactCrusherSystem.cs +++ b/Content.Shared/Xenoarchaeology/Equipment/SharedArtifactCrusherSystem.cs @@ -1,6 +1,8 @@ +using Content.Shared.Examine; using Content.Shared.Storage.Components; using Robust.Shared.Audio.Systems; using Robust.Shared.Containers; +using Content.Shared.Emag.Systems; namespace Content.Shared.Xenoarchaeology.Equipment; @@ -20,6 +22,9 @@ public override void Initialize() SubscribeLocalEvent(OnInit); SubscribeLocalEvent(OnStorageAfterOpen); + SubscribeLocalEvent(OnStorageOpenAttempt); + SubscribeLocalEvent(OnExamine); + SubscribeLocalEvent(OnEmagged); } private void OnInit(Entity ent, ref ComponentInit args) @@ -33,6 +38,23 @@ private void OnStorageAfterOpen(Entity ent, ref Storag ContainerSystem.EmptyContainer(ent.Comp.OutputContainer); } + private void OnEmagged(Entity ent, ref GotEmaggedEvent args) + { + ent.Comp.AutoLock = true; + args.Handled = true; + } + + private void OnStorageOpenAttempt(Entity ent, ref StorageOpenAttemptEvent args) + { + if (ent.Comp.AutoLock && ent.Comp.Crushing) + args.Cancelled = true; + } + + private void OnExamine(Entity ent, ref ExaminedEvent args) + { + args.PushMarkup(ent.Comp.AutoLock ? Loc.GetString("artifact-crusher-examine-autolocks") : Loc.GetString("artifact-crusher-examine-no-autolocks")); + } + public void StopCrushing(Entity ent, bool early = true) { var (_, crusher) = ent; diff --git a/Resources/Locale/en-US/artifacts/artifact-crusher.ftl b/Resources/Locale/en-US/artifacts/artifact-crusher.ftl new file mode 100644 index 00000000000..d9f10f43344 --- /dev/null +++ b/Resources/Locale/en-US/artifacts/artifact-crusher.ftl @@ -0,0 +1,3 @@ +artifact-crusher-examine-no-autolocks = The machine's autolocks are [color=green]disabled[/color]. +artifact-crusher-examine-autolocks = The machine's autolocks are [color=red]enabled[/color]. +artifact-crusher-autolocks-enable = The machine's locks snap shut! From f44661c82a5b95226c4bd3d008b55ecd173ad79e Mon Sep 17 00:00:00 2001 From: PJBot Date: Fri, 19 Jan 2024 15:36:08 +0000 Subject: [PATCH 06/66] Automatic changelog update --- Resources/Changelog/Changelog.yml | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/Resources/Changelog/Changelog.yml b/Resources/Changelog/Changelog.yml index 1cfd3caef48..a1360f33c95 100644 --- a/Resources/Changelog/Changelog.yml +++ b/Resources/Changelog/Changelog.yml @@ -1,11 +1,4 @@ Entries: -- author: EmoGarbage404 - changes: - - message: Improvised explosive devices now have unreliable timers that can take - anywhere from 0 to 60 seconds to explode. - type: Add - id: 5246 - time: '2023-12-03T02:21:51.0000000+00:00' - author: liltenhead changes: - message: Replaced the Engivend's individual inflatables with the boxed version. @@ -3781,3 +3774,11 @@ id: 5746 time: '2024-01-19T15:33:08.0000000+00:00' url: https://api.github.com/repos/space-wizards/space-station-14/pulls/24282 +- author: SpeltIncorrectyl + changes: + - message: Emagging the artifact crusher now stops it from being opened while it + is crushing. + type: Add + id: 5747 + time: '2024-01-19T15:35:02.0000000+00:00' + url: https://api.github.com/repos/space-wizards/space-station-14/pulls/23957 From 16a1f2f16a8549d538c7523f5abefea63c7ad3db Mon Sep 17 00:00:00 2001 From: Flareguy <78941145+Flareguy@users.noreply.github.com> Date: Fri, 19 Jan 2024 09:48:18 -0600 Subject: [PATCH 07/66] Adds more grindables (#24267) * Adds more grindables * fuc * A --- .../Devices/Electronics/base_electronics.yml | 2 +- .../Entities/Objects/Devices/mousetrap.yml | 8 +++ .../Objects/Materials/Sheets/other.yml | 2 +- .../Entities/Objects/Materials/materials.yml | 2 +- .../Entities/Objects/Misc/paper.yml | 54 +++++++++++++++++++ .../Entities/Objects/Tools/flare.yml | 8 +++ .../Entities/Objects/Tools/glowstick.yml | 12 +++++ .../Entities/Objects/Tools/matches.yml | 8 +++ 8 files changed, 93 insertions(+), 3 deletions(-) diff --git a/Resources/Prototypes/Entities/Objects/Devices/Electronics/base_electronics.yml b/Resources/Prototypes/Entities/Objects/Devices/Electronics/base_electronics.yml index d55b5a1098f..ff9f0c32397 100644 --- a/Resources/Prototypes/Entities/Objects/Devices/Electronics/base_electronics.yml +++ b/Resources/Prototypes/Entities/Objects/Devices/Electronics/base_electronics.yml @@ -17,4 +17,4 @@ materialComposition: Glass: 200 chemicalComposition: - Silicon: 20 + Silicon: 20 \ No newline at end of file diff --git a/Resources/Prototypes/Entities/Objects/Devices/mousetrap.yml b/Resources/Prototypes/Entities/Objects/Devices/mousetrap.yml index 440bc4dd8a8..ef511373cf9 100644 --- a/Resources/Prototypes/Entities/Objects/Devices/mousetrap.yml +++ b/Resources/Prototypes/Entities/Objects/Devices/mousetrap.yml @@ -57,6 +57,14 @@ - type: Tag tags: - DroneUsable + - type: Extractable + grindableSolutionName: mousetrap + - type: SolutionContainerManager + solutions: + mousetrap: + reagents: + - ReagentId: Cellulose + Quantity: 3 #its probably wooden - type: entity name: mousetrap diff --git a/Resources/Prototypes/Entities/Objects/Materials/Sheets/other.yml b/Resources/Prototypes/Entities/Objects/Materials/Sheets/other.yml index 18590e98dfc..ec36377cfea 100644 --- a/Resources/Prototypes/Entities/Objects/Materials/Sheets/other.yml +++ b/Resources/Prototypes/Entities/Objects/Materials/Sheets/other.yml @@ -60,7 +60,7 @@ paper: reagents: - ReagentId: Cellulose - Quantity: 3 + Quantity: 10 - type: entity diff --git a/Resources/Prototypes/Entities/Objects/Materials/materials.yml b/Resources/Prototypes/Entities/Objects/Materials/materials.yml index 9cfc2c00f2c..8af4daef8d8 100644 --- a/Resources/Prototypes/Entities/Objects/Materials/materials.yml +++ b/Resources/Prototypes/Entities/Objects/Materials/materials.yml @@ -54,7 +54,7 @@ cardboard: reagents: - ReagentId: Cellulose - Quantity: 6 + Quantity: 10 - type: entity parent: MaterialCardboard diff --git a/Resources/Prototypes/Entities/Objects/Misc/paper.yml b/Resources/Prototypes/Entities/Objects/Misc/paper.yml index 86dadb8da84..3ea2eb64e0a 100644 --- a/Resources/Prototypes/Entities/Objects/Misc/paper.yml +++ b/Resources/Prototypes/Entities/Objects/Misc/paper.yml @@ -56,6 +56,14 @@ max: 1 - !type:DoActsBehavior acts: [ "Destruction" ] + - type: Extractable + grindableSolutionName: paper + - type: SolutionContainerManager + solutions: + paper: + reagents: + - ReagentId: Cellulose + Quantity: 3 - type: entity name: paper scrap @@ -270,6 +278,16 @@ damage: types: Piercing: 3 + - type: Extractable + grindableSolutionName: pen + - type: SolutionContainerManager + solutions: + pen: + reagents: + - ReagentId: Iron + Quantity: 2 + - ReagentId: Iodine + Quantity: 1 #TODO: I want the luxury pen to write a cool font like Merriweather in the future. @@ -406,6 +424,14 @@ prob: 0.2 - id: Paper prob: 0.2 + - type: Extractable + grindableSolutionName: folder + - type: SolutionContainerManager + solutions: + folder: + reagents: + - ReagentId: Cellulose + Quantity: 4 #a little more rigid then paper so it yields slightly more - type: entity id: BoxFolderRed @@ -502,6 +528,16 @@ layers: - state: folder-centcom - state: folder-base + - type: Extractable + grindableSolutionName: centcommfolder + - type: SolutionContainerManager + solutions: + centcommfolder: + reagents: + - ReagentId: Cellulose + Quantity: 4 + - ReagentId: Gold + Quantity: 1 - type: entity id: BoxFolderClipboard @@ -561,6 +597,14 @@ damage: types: Blunt: 6 + - type: Extractable + grindableSolutionName: clipboard + - type: SolutionContainerManager + solutions: + clipboard: + reagents: + - ReagentId: Cellulose + Quantity: 5 - type: entity id: BoxFolderCentComClipboard @@ -586,6 +630,16 @@ slots: [belt] quickEquip: false sprite: Objects/Misc/cc-clipboard.rsi + - type: Extractable + grindableSolutionName: centcommclipboard + - type: SolutionContainerManager + solutions: + centcommclipboard: + reagents: + - ReagentId: Cellulose + Quantity: 4 + - ReagentId: Gold + Quantity: 1 - type: entity id: BoxFolderQmClipboard diff --git a/Resources/Prototypes/Entities/Objects/Tools/flare.yml b/Resources/Prototypes/Entities/Objects/Tools/flare.yml index 6ef85c015ee..4f09f4d3baf 100644 --- a/Resources/Prototypes/Entities/Objects/Tools/flare.yml +++ b/Resources/Prototypes/Entities/Objects/Tools/flare.yml @@ -71,3 +71,11 @@ maxDuration: 15.0 startValue: 10.0 endValue: 1.0 + - type: Extractable + grindableSolutionName: flare + - type: SolutionContainerManager + solutions: + flare: + reagents: + - ReagentId: Sulfur + Quantity: 15 diff --git a/Resources/Prototypes/Entities/Objects/Tools/glowstick.yml b/Resources/Prototypes/Entities/Objects/Tools/glowstick.yml index 5aea0d8a291..cdf0c266632 100644 --- a/Resources/Prototypes/Entities/Objects/Tools/glowstick.yml +++ b/Resources/Prototypes/Entities/Objects/Tools/glowstick.yml @@ -60,6 +60,18 @@ maxDuration: 10 # 300.0 startValue: 5.0 endValue: 1.5 + - type: Extractable + grindableSolutionName: glowstick + - type: SolutionContainerManager + solutions: + glowstick: + reagents: + - ReagentId: Phenol + Quantity: 15 + - ReagentId: Hydrogen + Quantity: 10 + - ReagentId: Oxygen + Quantity: 10 - type: entity name: red glowstick diff --git a/Resources/Prototypes/Entities/Objects/Tools/matches.yml b/Resources/Prototypes/Entities/Objects/Tools/matches.yml index e8601fcf355..3971352aa11 100644 --- a/Resources/Prototypes/Entities/Objects/Tools/matches.yml +++ b/Resources/Prototypes/Entities/Objects/Tools/matches.yml @@ -41,6 +41,14 @@ unlitIcon: match_unlit litIcon: match_lit burntIcon: match_burnt + - type: Extractable + grindableSolutionName: matchstick + - type: SolutionContainerManager + solutions: + matchstick: + reagents: + - ReagentId: Phosphorus + Quantity: 2 - type: entity parent: Matchstick From 08c7386074b2da46ace4e4f12cdf65782f37089d Mon Sep 17 00:00:00 2001 From: Ubaser <134914314+UbaserB@users.noreply.github.com> Date: Sat, 20 Jan 2024 03:08:38 +1100 Subject: [PATCH 08/66] Fix reagents obtained from grinding iron ore. (#24215) add --- Resources/Prototypes/Entities/Objects/Materials/ore.yml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/Resources/Prototypes/Entities/Objects/Materials/ore.yml b/Resources/Prototypes/Entities/Objects/Materials/ore.yml index b19842a2a25..2fed6498bdd 100644 --- a/Resources/Prototypes/Entities/Objects/Materials/ore.yml +++ b/Resources/Prototypes/Entities/Objects/Materials/ore.yml @@ -87,9 +87,7 @@ ironore: reagents: - ReagentId: Iron - Quantity: 9 - - ReagentId: Carbon - Quantity: 1 + Quantity: 10 - type: entity id: SteelOre1 From a6e16d99610120d086105de867d7e82712964109 Mon Sep 17 00:00:00 2001 From: Ubaser <134914314+UbaserB@users.noreply.github.com> Date: Sat, 20 Jan 2024 03:42:47 +1100 Subject: [PATCH 09/66] Mustard, ketchup and mayonnaise now tastes distinct (#24297) add --- .../Locale/en-US/flavors/flavor-profiles.ftl | 7 +++++++ Resources/Prototypes/Flavors/flavors.yml | 16 +++++++++++++++- .../Reagents/Consumable/Food/condiments.yml | 7 +++---- 3 files changed, 25 insertions(+), 5 deletions(-) diff --git a/Resources/Locale/en-US/flavors/flavor-profiles.ftl b/Resources/Locale/en-US/flavors/flavor-profiles.ftl index fb7edb0d427..bbe245b0162 100644 --- a/Resources/Locale/en-US/flavors/flavor-profiles.ftl +++ b/Resources/Locale/en-US/flavors/flavor-profiles.ftl @@ -57,6 +57,13 @@ flavor-base-terrible = terrible flavor-complex-nothing = like nothing flavor-complex-honey = like honey +# Condiments + +flavor-complex-ketchunaise = like tomatoes and mayonnaise +flavor-complex-mayonnaise = like mayonnaise +flavor-complex-mustard = like mustard + + # Food-specific flavors. ## Food chemicals. In case you get something that has this inside. diff --git a/Resources/Prototypes/Flavors/flavors.yml b/Resources/Prototypes/Flavors/flavors.yml index 57f37295d60..8962de2bb29 100644 --- a/Resources/Prototypes/Flavors/flavors.yml +++ b/Resources/Prototypes/Flavors/flavors.yml @@ -174,6 +174,21 @@ flavorType: Base description: flavor-base-clean +- type: flavor + id: mustard + flavorType: Complex + description: flavor-complex-mustard + +- type: flavor + id: mayonnaise + flavorType: Complex + description: flavor-complex-mayonnaise + +- type: flavor + id: ketchunaise + flavorType: Complex + description: flavor-complex-ketchunaise + - type: flavor id: nothing flavorType: Complex @@ -888,4 +903,3 @@ id: light flavorType: Complex description: flavor-complex-light - \ No newline at end of file diff --git a/Resources/Prototypes/Reagents/Consumable/Food/condiments.yml b/Resources/Prototypes/Reagents/Consumable/Food/condiments.yml index f7e0e1da8ec..f980f5066aa 100644 --- a/Resources/Prototypes/Reagents/Consumable/Food/condiments.yml +++ b/Resources/Prototypes/Reagents/Consumable/Food/condiments.yml @@ -73,8 +73,7 @@ group: Foods desc: reagent-desc-ketchunaise physicalDesc: reagent-physical-desc-saucey - #I love it when people just make up fake prototypes. - #flavor: piquant + flavor: ketchunaise color: "#fba399" recognizable: true @@ -84,7 +83,7 @@ group: Foods desc: reagent-desc-mayo physicalDesc: reagent-physical-desc-thick - flavor: sour + flavor: mayonnaise color: "#f9f5e5" recognizable: true @@ -94,7 +93,7 @@ group: Foods desc: reagent-desc-mustard physicalDesc: reagent-physical-desc-thick - flavor: sour + flavor: mustard color: "#ffdb58" recognizable: true From 00e770d4dc68f98ecc8a3ef1605277fc2c59fb8f Mon Sep 17 00:00:00 2001 From: Ubaser <134914314+UbaserB@users.noreply.github.com> Date: Sat, 20 Jan 2024 07:41:00 +1100 Subject: [PATCH 10/66] Update Trade Station (#24295) add --- Resources/Maps/Shuttles/trading_outpost.yml | 165 +++++++++++++++----- 1 file changed, 130 insertions(+), 35 deletions(-) diff --git a/Resources/Maps/Shuttles/trading_outpost.yml b/Resources/Maps/Shuttles/trading_outpost.yml index 2b7528be89f..f698c2d1454 100644 --- a/Resources/Maps/Shuttles/trading_outpost.yml +++ b/Resources/Maps/Shuttles/trading_outpost.yml @@ -31,19 +31,19 @@ entities: chunks: 0,0: ind: 0,0 - tiles: WQAAAAABWQAAAAABTQAAAAAATQAAAAAATQAAAAAAeQAAAAAATQAAAAAATQAAAAAATQAAAAAAWQAAAAABWQAAAAADeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAWQAAAAADWQAAAAADWQAAAAACWQAAAAADWQAAAAAAWQAAAAAAWQAAAAADWQAAAAAAWQAAAAABWQAAAAADWQAAAAAAIgAAAAABJQAAAAADeQAAAAAAAAAAAAAAAAAAAAAAIgAAAAAAIgAAAAAAIgAAAAABIgAAAAAAIgAAAAAAIgAAAAACIgAAAAABIgAAAAAAIgAAAAAAIgAAAAABIgAAAAACeQAAAAAAIgAAAAACeQAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAIgAAAAADeQAAAAAAAAAAAAAAAAAAAAAAdgAAAAAAdwAAAAABdwAAAAADdwAAAAACMQAAAAAAMQAAAAAAMQAAAAAAdwAAAAADdwAAAAABdwAAAAABdgAAAAACeQAAAAAAIgAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAdgAAAAADdwAAAAABdwAAAAADdwAAAAADdgAAAAADdgAAAAACdgAAAAADdwAAAAAAdwAAAAABdwAAAAAAdgAAAAACIgAAAAADJQAAAAACeQAAAAAAAAAAAAAAAAAAAAAAdgAAAAAAdgAAAAABdgAAAAACdgAAAAABdgAAAAAAdgAAAAACdgAAAAAAdgAAAAAAdgAAAAABdgAAAAADdgAAAAACeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + tiles: WQAAAAABWQAAAAABTQAAAAAATQAAAAAATQAAAAAAeQAAAAAATQAAAAAATQAAAAAATQAAAAAAWQAAAAABWQAAAAADeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAWQAAAAADWQAAAAADWQAAAAACWQAAAAADWQAAAAAAWQAAAAAAWQAAAAADWQAAAAAAWQAAAAABWQAAAAADWQAAAAAAIgAAAAABJQAAAAADeQAAAAAAAAAAAAAAAAAAAAAAIgAAAAAAIgAAAAAAIgAAAAABIgAAAAAAIgAAAAAAIgAAAAACIgAAAAABIgAAAAAAIgAAAAAAIgAAAAABIgAAAAACeQAAAAAATQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAATQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAdgAAAAAAdwAAAAABdwAAAAADdwAAAAACMQAAAAAAMQAAAAAAMQAAAAAAdwAAAAADdwAAAAABdwAAAAABdgAAAAACeQAAAAAATQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAdgAAAAADdwAAAAABdwAAAAADdwAAAAADdgAAAAADdgAAAAACdgAAAAADdwAAAAAAdwAAAAABdwAAAAAAdgAAAAACIgAAAAADJQAAAAACeQAAAAAAAAAAAAAAAAAAAAAAdgAAAAAAdgAAAAABdgAAAAACdgAAAAABdgAAAAAAdgAAAAACdgAAAAAAdgAAAAAAdgAAAAABdgAAAAADdgAAAAACeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA version: 6 0,-1: ind: 0,-1 - tiles: eQAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAIgAAAAAAeQAAAAAAeQAAAAAAIgAAAAABIgAAAAABHQAAAAACeQAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAIgAAAAABIgAAAAACIgAAAAAAIgAAAAAAIgAAAAABIgAAAAABIgAAAAACIgAAAAAAIgAAAAACeQAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAWQAAAAADWQAAAAADWQAAAAAAWQAAAAACWQAAAAADWQAAAAACWQAAAAADWQAAAAAAWQAAAAACWQAAAAABWQAAAAABeQAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAWQAAAAACWQAAAAAATQAAAAAATQAAAAAATQAAAAAAeQAAAAAATQAAAAAATQAAAAAATQAAAAAAWQAAAAAAWQAAAAABeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZAAAAAADWQAAAAAATQAAAAAATQAAAAAATQAAAAAAeQAAAAAATQAAAAAATQAAAAAATQAAAAAAWQAAAAACZAAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAWQAAAAADWQAAAAABTQAAAAAATQAAAAAATQAAAAAAeQAAAAAATQAAAAAATQAAAAAATQAAAAAAWQAAAAAAWQAAAAADeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAWQAAAAACWQAAAAABTQAAAAAATQAAAAAATQAAAAAAeQAAAAAATQAAAAAATQAAAAAATQAAAAAAWQAAAAADWQAAAAADeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAZAAAAAAAWQAAAAABaQAAAAAAaQAAAAAAaAAAAAAAeQAAAAAAaAAAAAAAaQAAAAAAaQAAAAAAWQAAAAAAZAAAAAACeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAWQAAAAACWQAAAAAAaQAAAAAAaQAAAAAAaAAAAAAAeQAAAAAAaAAAAAAAaQAAAAAAaQAAAAAAWQAAAAADWQAAAAACeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAZAAAAAAAWQAAAAAAaQAAAAAAaQAAAAAAaAAAAAAAeQAAAAAAaAAAAAAAaQAAAAAAaQAAAAAAWQAAAAABZAAAAAACeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAWQAAAAAAWQAAAAADTQAAAAAATQAAAAAATQAAAAAAeQAAAAAATQAAAAAATQAAAAAATQAAAAAAWQAAAAADWQAAAAABeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAWQAAAAABWQAAAAACTQAAAAAATQAAAAAATQAAAAAAeQAAAAAATQAAAAAATQAAAAAATQAAAAAAWQAAAAABWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAZAAAAAACWQAAAAAATQAAAAAATQAAAAAATQAAAAAAeQAAAAAATQAAAAAATQAAAAAATQAAAAAAWQAAAAADZAAAAAADeQAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAA + tiles: eQAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAIgAAAAAAeQAAAAAAeQAAAAAAIgAAAAABIgAAAAABHQAAAAACeQAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAIgAAAAABIgAAAAACIgAAAAAAIgAAAAAAIgAAAAABIgAAAAABIgAAAAACIgAAAAAAIgAAAAACeQAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAWQAAAAADWQAAAAADWQAAAAAAWQAAAAACWQAAAAADWQAAAAACWQAAAAADWQAAAAAAWQAAAAACWQAAAAABWQAAAAABeQAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAWQAAAAACWQAAAAAATQAAAAAATQAAAAAATQAAAAAAeQAAAAAATQAAAAAATQAAAAAATQAAAAAAWQAAAAAAWQAAAAABeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZAAAAAADWQAAAAAATQAAAAAATQAAAAAATQAAAAAAeQAAAAAATQAAAAAATQAAAAAATQAAAAAAWQAAAAACZAAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAWQAAAAADWQAAAAABTQAAAAAATQAAAAAATQAAAAAAeQAAAAAATQAAAAAATQAAAAAATQAAAAAAWQAAAAAAWQAAAAADeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAWQAAAAACWQAAAAABTQAAAAAATQAAAAAATQAAAAAAeQAAAAAATQAAAAAATQAAAAAATQAAAAAAWQAAAAADWQAAAAADeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAZAAAAAAAWQAAAAABaQAAAAAAaQAAAAAAaAAAAAAAeQAAAAAAaAAAAAAAaQAAAAAAaQAAAAAAWQAAAAAAZAAAAAACeQAAAAAAIgAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAWQAAAAACWQAAAAAAaQAAAAAAaQAAAAAAaAAAAAAAeQAAAAAAaAAAAAAAaQAAAAAAaQAAAAAAWQAAAAADWQAAAAACeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAZAAAAAAAWQAAAAAAaQAAAAAAaQAAAAAAaAAAAAAAeQAAAAAAaAAAAAAAaQAAAAAAaQAAAAAAWQAAAAABZAAAAAACeQAAAAAAIgAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAWQAAAAAAWQAAAAADTQAAAAAATQAAAAAATQAAAAAAeQAAAAAATQAAAAAATQAAAAAATQAAAAAAWQAAAAADWQAAAAABeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAWQAAAAABWQAAAAACTQAAAAAATQAAAAAATQAAAAAAeQAAAAAATQAAAAAATQAAAAAATQAAAAAAWQAAAAABWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAZAAAAAACWQAAAAAATQAAAAAATQAAAAAATQAAAAAAeQAAAAAATQAAAAAATQAAAAAATQAAAAAAWQAAAAADZAAAAAADeQAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAA version: 6 -1,0: ind: -1,0 - tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAJQAAAAACIgAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAIgAAAAADeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAIgAAAAABeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAIgAAAAADeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAJQAAAAADIgAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAJQAAAAACIgAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAATQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAATQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAATQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAJQAAAAADIgAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA version: 6 -1,-1: ind: -1,-1 - tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAA + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAIgAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAIgAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAA version: 6 0,-2: ind: 0,-2 @@ -73,6 +73,20 @@ entities: chunkCollection: version: 2 nodes: + - node: + angle: -1.5707963267948966 rad + color: '#FFFFFFFF' + id: Arrows + decals: + 71: 12,-6 + 72: 12,-4 + - node: + angle: 1.5707963267948966 rad + color: '#FFFFFFFF' + id: Arrows + decals: + 69: -2,-4 + 70: -2,-6 - node: color: '#FFFFFFFF' id: Bot @@ -443,8 +457,11 @@ entities: - uid: 387 components: - type: Transform + anchored: True pos: 4.5,-15.5 parent: 2 + - type: Physics + bodyType: Static - type: AtmosDevice joinedGrid: 2 - proto: AirlockCargo @@ -501,31 +518,31 @@ entities: rot: 3.141592653589793 rad pos: 11.5,-3.5 parent: 2 -- proto: AirlockGlassShuttle +- proto: AirlockExternalGlassShuttleLocked entities: - - uid: 586 + - uid: 313 components: - type: Transform rot: -1.5707963267948966 rad - pos: -2.5,-5.5 + pos: -2.5,-3.5 parent: 2 - - uid: 587 + - uid: 560 components: - type: Transform rot: -1.5707963267948966 rad - pos: -2.5,-3.5 + pos: -2.5,-5.5 parent: 2 - - uid: 588 + - uid: 562 components: - type: Transform rot: 1.5707963267948966 rad - pos: 13.5,-5.5 + pos: 13.5,-3.5 parent: 2 - - uid: 589 + - uid: 563 components: - type: Transform rot: 1.5707963267948966 rad - pos: 13.5,-3.5 + pos: 13.5,-5.5 parent: 2 - proto: AirSensor entities: @@ -582,6 +599,48 @@ entities: - type: Transform pos: 2.5,-14.5 parent: 2 +- proto: AtmosDeviceFanTiny + entities: + - uid: 947 + components: + - type: Transform + pos: 13.5,-5.5 + parent: 2 + - uid: 948 + components: + - type: Transform + pos: 13.5,-3.5 + parent: 2 + - uid: 949 + components: + - type: Transform + pos: 13.5,-2.5 + parent: 2 + - uid: 950 + components: + - type: Transform + pos: 13.5,-6.5 + parent: 2 + - uid: 951 + components: + - type: Transform + pos: -2.5,-6.5 + parent: 2 + - uid: 952 + components: + - type: Transform + pos: -2.5,-5.5 + parent: 2 + - uid: 953 + components: + - type: Transform + pos: -2.5,-3.5 + parent: 2 + - uid: 954 + components: + - type: Transform + pos: -2.5,-2.5 + parent: 2 - proto: BoxFolderClipboard entities: - uid: 779 @@ -2263,11 +2322,6 @@ entities: rot: 1.5707963267948966 rad pos: -1.5,2.5 parent: 2 - - uid: 313 - components: - - type: Transform - pos: -1.5,-3.5 - parent: 2 - uid: 528 components: - type: Transform @@ -2328,43 +2382,49 @@ entities: - type: Transform pos: 0.5,-26.5 parent: 2 - - uid: 560 + - uid: 571 components: - type: Transform - rot: 3.141592653589793 rad - pos: -1.5,-5.5 + pos: 8.5,-20.5 parent: 2 - - uid: 562 + - uid: 573 components: - type: Transform - rot: 3.141592653589793 rad - pos: 12.5,-3.5 + pos: 10.5,-20.5 parent: 2 - - uid: 563 + - uid: 578 components: - type: Transform - rot: 3.141592653589793 rad - pos: 12.5,-5.5 + pos: 9.5,-26.5 parent: 2 - - uid: 571 + - uid: 579 components: - type: Transform - pos: 8.5,-20.5 + pos: 10.5,-24.5 parent: 2 - - uid: 573 + - uid: 586 components: - type: Transform - pos: 10.5,-20.5 + rot: 1.5707963267948966 rad + pos: 13.5,-3.5 parent: 2 - - uid: 578 + - uid: 587 components: - type: Transform - pos: 9.5,-26.5 + rot: 1.5707963267948966 rad + pos: 13.5,-5.5 parent: 2 - - uid: 579 + - uid: 588 components: - type: Transform - pos: 10.5,-24.5 + rot: 1.5707963267948966 rad + pos: 11.5,-5.5 + parent: 2 + - uid: 589 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 11.5,-3.5 parent: 2 - uid: 596 components: @@ -2466,6 +2526,30 @@ entities: - type: Transform pos: 10.5,-26.5 parent: 2 + - uid: 956 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -0.5,-3.5 + parent: 2 + - uid: 957 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -0.5,-5.5 + parent: 2 + - uid: 958 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -2.5,-5.5 + parent: 2 + - uid: 959 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -2.5,-3.5 + parent: 2 - proto: Chair entities: - uid: 38 @@ -4877,6 +4961,8 @@ entities: entities: - uid: 807 components: + - type: MetaData + name: shutters button - type: Transform pos: 0.5,7.5 parent: 2 @@ -6065,6 +6151,15 @@ entities: rot: 3.141592653589793 rad pos: -2.5,-4.5 parent: 2 +- proto: WarpPoint + entities: + - uid: 955 + components: + - type: Transform + pos: 5.5,-4.5 + parent: 2 + - type: WarpPoint + location: Automated Trade Station - proto: WindoorSecureEngineeringLocked entities: - uid: 371 From 0a71f8a450c1ea5d0ef4864e4062afdd901103a2 Mon Sep 17 00:00:00 2001 From: Ubaser <134914314+UbaserB@users.noreply.github.com> Date: Sat, 20 Jan 2024 07:41:14 +1100 Subject: [PATCH 11/66] Update Core (#24294) add --- Resources/Maps/Shuttles/cargo_core.yml | 56 +- Resources/Maps/core.yml | 10016 ++++++++++++----------- 2 files changed, 5124 insertions(+), 4948 deletions(-) diff --git a/Resources/Maps/Shuttles/cargo_core.yml b/Resources/Maps/Shuttles/cargo_core.yml index b68562f2151..42aac814a02 100644 --- a/Resources/Maps/Shuttles/cargo_core.yml +++ b/Resources/Maps/Shuttles/cargo_core.yml @@ -30,7 +30,7 @@ entities: version: 6 0,-1: ind: 0,-1 - tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZAAAAAACWQAAAAABeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAWQAAAAACeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWQAAAAABWQAAAAACeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZAAAAAABWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWQAAAAACWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAWQAAAAACeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZAAAAAABWQAAAAABeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZAAAAAACWQAAAAABeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAWQAAAAACeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZAAAAAAAWQAAAAACeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZAAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAWQAAAAACeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZAAAAAABWQAAAAABeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA version: 6 -1,-1: ind: -1,-1 @@ -56,13 +56,6 @@ entities: chunkCollection: version: 2 nodes: - - node: - angle: -1.5707963267948966 rad - color: '#FFFFFFFF' - id: Arrows - decals: - 10: 0,-5 - 11: 0,-3 - node: color: '#FFFFFFFF' id: Bot @@ -70,12 +63,13 @@ entities: 0: 2,0 1: -1,-3 2: -1,-5 + 34: 0,-5 + 35: 0,-3 - node: color: '#79150047' id: CheckerNWSE decals: 3: 1,-7 - 4: 1,-5 5: 1,-4 6: 1,-3 7: 1,-1 @@ -84,21 +78,22 @@ entities: color: '#FFFFFFFF' id: DirtHeavy decals: - 12: 0,-5 13: 1,-3 14: 2,1 15: 1,-7 + 27: 1,-5 - node: cleanable: True color: '#FFFFFFFF' id: DirtHeavyMonotile decals: - 16: 0,-4 17: 0,-1 18: 1,-6 19: 1,-9 20: 2,-8 21: 1,0 + 30: 0,-5 + 31: 0,-3 - node: cleanable: True color: '#FFFFFFFF' @@ -109,6 +104,8 @@ entities: 24: 1,1 25: 1,-8 26: -1,-3 + 32: 0,-4 + 33: 0,-4 - node: angle: 1.5707963267948966 rad color: '#FFFFFFFF' @@ -179,8 +176,11 @@ entities: - uid: 147 components: - type: Transform + anchored: True pos: 0.5,-6.5 parent: 2 + - type: Physics + bodyType: Static - type: AtmosDevice joinedGrid: 2 - proto: AirlockGlassShuttle @@ -594,7 +594,7 @@ entities: parent: 2 - type: DeviceLinkSink links: - - 92 + - 152 - uid: 75 components: - type: Transform @@ -603,7 +603,7 @@ entities: parent: 2 - type: DeviceLinkSink links: - - 92 + - 152 - uid: 76 components: - type: Transform @@ -612,7 +612,7 @@ entities: parent: 2 - type: DeviceLinkSink links: - - 92 + - 151 - uid: 77 components: - type: Transform @@ -621,7 +621,7 @@ entities: parent: 2 - type: DeviceLinkSink links: - - 92 + - 151 - proto: GasPassiveVent entities: - uid: 143 @@ -957,22 +957,29 @@ entities: parent: 2 - proto: TwoWayLever entities: - - uid: 92 + - uid: 151 components: - type: Transform - pos: 0.5,-3.5 + pos: 0.5,-2.5 parent: 2 - type: DeviceLinkSource linkedPorts: - 74: + 77: - Left: Forward - Right: Reverse - Middle: Off - 77: + 76: - Left: Forward - Right: Reverse - Middle: Off - 76: + - uid: 152 + components: + - type: Transform + pos: 0.5,-4.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 74: - Left: Forward - Right: Reverse - Middle: Off @@ -1136,6 +1143,15 @@ entities: rot: 1.5707963267948966 rad pos: 0.5,-9.5 parent: 2 +- proto: WarpPoint + entities: + - uid: 92 + components: + - type: Transform + pos: 1.5,-3.5 + parent: 2 + - type: WarpPoint + location: Cargo Shuttle - proto: WindoorSecureCargoLocked entities: - uid: 58 diff --git a/Resources/Maps/core.yml b/Resources/Maps/core.yml index 9c4c459898e..537fab1f963 100644 --- a/Resources/Maps/core.yml +++ b/Resources/Maps/core.yml @@ -233,7 +233,7 @@ entities: version: 6 0,3: ind: 0,3 - tiles: WQAAAAAAHQAAAAADHQAAAAACHQAAAAADeQAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWQAAAAADWQAAAAAAWQAAAAACWQAAAAADeQAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWQAAAAAAWQAAAAADWQAAAAABWQAAAAABeQAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWQAAAAABHQAAAAAAHQAAAAACWQAAAAADeQAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWQAAAAADHQAAAAACHQAAAAACeQAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + tiles: WQAAAAAAHQAAAAADHQAAAAACIgAAAAAAeQAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWQAAAAADWQAAAAAAWQAAAAACWQAAAAADeQAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWQAAAAAAWQAAAAADWQAAAAABWQAAAAABeQAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWQAAAAABHQAAAAAAHQAAAAACWQAAAAADeQAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWQAAAAADHQAAAAACHQAAAAACeQAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA version: 6 2,1: ind: 2,1 @@ -395,10 +395,10 @@ entities: decals: 1893: 69,-28 1894: 70,-28 - 2144: 7.759592,-44.793304 - 2145: 8.236585,-44.781075 - 6231: -44.266167,24.17379 - 6232: -43.71579,24.16156 + 2141: 7.759592,-44.793304 + 2142: 8.236585,-44.781075 + 6224: -44.266167,24.17379 + 6225: -43.71579,24.16156 - node: angle: 1.5707963267948966 rad color: '#FFFFFFFF' @@ -409,19 +409,19 @@ entities: 1329: -18,28 1787: 62,-25 1788: 62,-24 - 1960: 61,-18 - 1961: 61,-20 - 1985: 22,-38 - 1986: 22,-37 - 6229: -45.159,22.681658 - 6230: -45.17123,23.256496 + 1957: 61,-18 + 1958: 61,-20 + 1982: 22,-38 + 1983: 22,-37 + 6222: -45.159,22.681658 + 6223: -45.17123,23.256496 - node: cleanable: True angle: 1.5707963267948966 rad color: '#FFFFFFFF' id: Arrows decals: - 3012: -25,37 + 3009: -25,37 - node: angle: 3.141592653589793 rad color: '#FFFFFFFF' @@ -432,29 +432,29 @@ entities: 1814: 68.96644,-11.160069 1815: 69.96644,-11.15081 1816: 67.97107,-11.15544 - 6227: -43.71579,21.837746 - 6228: -44.32732,21.837746 - 6755: -33,-12 + 6220: -43.71579,21.837746 + 6221: -44.32732,21.837746 + 6748: -33,-12 - node: angle: 4.71238898038469 rad color: '#FFFFFFFF' id: Arrows decals: 1274: 25,12 - 6225: -42.87188,22.669428 - 6226: -42.85965,23.219805 + 6218: -42.87188,22.669428 + 6219: -42.85965,23.219805 - node: color: '#FFFFFFFF' id: Basalt1 decals: 309: 26,-21 - 2262: 26,1 + 2259: 26,1 - node: cleanable: True color: '#FFFFFFFF' id: Basalt1 decals: - 3058: 80.98914,-5.89228 + 3055: 80.98914,-5.89228 - node: color: '#FFFFFFFF' id: Basalt2 @@ -465,7 +465,7 @@ entities: color: '#FFFFFFFF' id: Basalt2 decals: - 3060: 79.36655,-6.805498 + 3057: 79.36655,-6.805498 - node: color: '#FFFFFFFF' id: Basalt3 @@ -477,14 +477,14 @@ entities: color: '#FFFFFFFF' id: Basalt3 decals: - 3057: 80.410225,-6.9767265 + 3054: 80.410225,-6.9767265 - node: color: '#FFFFFFFF' id: Basalt4 decals: 315: 26,-24 941: -48,-27 - 1945: 56,-23 + 1943: 56,-23 - node: color: '#FFFFFFFF' id: Basalt5 @@ -492,8 +492,8 @@ entities: 311: 26,-22 314: 25,-23 940: -48,-28 - 1943: 54,-21 - 2263: 25,1 + 1941: 54,-21 + 2260: 25,1 - node: color: '#FFFFFFFF' id: Basalt6 @@ -506,13 +506,13 @@ entities: 310: 25,-22 938: -49,-29 1751: 57,18 - 1944: 57,-23 + 1942: 57,-23 - node: cleanable: True color: '#FFFFFFFF' id: Basalt7 decals: - 3059: 80.88314,-7.8817906 + 3056: 80.88314,-7.8817906 - node: color: '#FFFFFFFF' id: Basalt8 @@ -530,31 +530,31 @@ entities: color: '#FFFFFFFF' id: Basalt9 decals: - 3061: 79.17086,-7.824714 + 3058: 79.17086,-7.824714 - node: color: '#D4D4D428' id: Bot decals: - 2217: -36,-58 - 2218: -36,-59 - 2219: -36,-60 - 2220: -36,-61 - 2221: -36,-62 - 2222: -36,-63 - 2223: -36,-64 - 2224: -60,-58 - 2225: -60,-59 - 2226: -60,-60 - 2227: -60,-61 - 2228: -60,-62 - 2229: -60,-63 - 2230: -60,-64 + 2214: -36,-58 + 2215: -36,-59 + 2216: -36,-60 + 2217: -36,-61 + 2218: -36,-62 + 2219: -36,-63 + 2220: -36,-64 + 2221: -60,-58 + 2222: -60,-59 + 2223: -60,-60 + 2224: -60,-61 + 2225: -60,-62 + 2226: -60,-63 + 2227: -60,-64 - node: color: '#DE3A3A41' id: Bot decals: - 6680: -38,-45 - 6681: -38,-45 + 6673: -38,-45 + 6674: -38,-45 - node: color: '#EFB34196' id: Bot @@ -628,7 +628,7 @@ entities: color: '#EFB341FF' id: Bot decals: - 6149: 15,41 + 6142: 15,41 - node: angle: -1.5707963267948966 rad color: '#FFFFFFFF' @@ -638,8 +638,8 @@ entities: 1790: 63,-24 1791: 65,-25 1792: 65,-24 - 2185: -10,-41 - 2186: -10,-40 + 2182: -10,-41 + 2183: -10,-40 - node: color: '#FFFFFFFF' id: Bot @@ -734,178 +734,174 @@ entities: 1873: 63,-19 1878: 70,-22 1907: 69,-13 - 1965: 22,-39 - 1984: 22,-36 - 2025: 28,-36 - 2026: 29,-36 - 2027: 28,-47 - 2082: 12,-46 - 2083: 13,-46 - 2130: -2,-35 - 2131: -1,-35 - 2132: 3,-38 - 2133: 3,-37 - 2153: 9,-46 - 2154: 9,-47 - 2155: 7,-47 - 2156: 7,-46 - 2157: 10,-41 - 2163: 12,-38 - 2182: -6,-34 - 2183: -5,-34 - 2184: -4,-34 - 2234: 41,-10 - 2235: -23,12 - 2851: 66,-23 - 2883: -27,30 - 2896: 57,15 - 3185: 75,-13 - 3186: 75,-15 - 3191: 75,-19 - 3192: 75,-17 - 6463: 48,-10 - 6464: 51,5 - 6465: 53,10 - 6608: -36,-65 - 6609: -60,-65 - 6743: -34,-11 - 6744: -34,-10 - 6745: -32,-11 - 6746: -32,-10 - 6765: 61,-21 - 6773: -24,-42 + 1962: 22,-39 + 1981: 22,-36 + 2022: 28,-36 + 2023: 29,-36 + 2024: 28,-47 + 2079: 12,-46 + 2080: 13,-46 + 2127: -2,-35 + 2128: -1,-35 + 2129: 3,-38 + 2130: 3,-37 + 2150: 9,-46 + 2151: 9,-47 + 2152: 7,-47 + 2153: 7,-46 + 2154: 10,-41 + 2160: 12,-38 + 2179: -6,-34 + 2180: -5,-34 + 2181: -4,-34 + 2231: 41,-10 + 2232: -23,12 + 2848: 66,-23 + 2880: -27,30 + 2893: 57,15 + 3181: 75,-13 + 3182: 75,-15 + 3187: 75,-19 + 3188: 75,-17 + 6456: 48,-10 + 6457: 51,5 + 6458: 53,10 + 6601: -36,-65 + 6602: -60,-65 + 6736: -34,-11 + 6737: -34,-10 + 6738: -32,-11 + 6739: -32,-10 + 6758: 61,-21 + 6765: -24,-42 + 6775: 3,48 - node: cleanable: True color: '#FFFFFFFF' id: Bot decals: - 2980: -25,34 - 2981: -25,35 - 2982: -30,35 - 2983: -30,34 - 3009: -23,38 - 3010: -10,38 - 3011: -9,38 - 3062: 78,-8 - 3063: 79,-8 + 2977: -25,34 + 2978: -25,35 + 2979: -30,35 + 2980: -30,34 + 3006: -23,38 + 3007: -10,38 + 3008: -9,38 + 3059: 78,-8 + 3060: 79,-8 - node: angle: 3.141592653589793 rad color: '#FFFFFFFF' id: Bot decals: - 6626: 91,-19 - 6627: 91,-18 - 6628: 92,-18 - 6629: 92,-19 - 6630: 87,-19 - 6631: 88,-19 - 6632: 88,-18 - 6633: 87,-18 - - node: - color: '#32CD32FF' - id: BotGreyscale - decals: - 1744: 59,17 + 6619: 91,-19 + 6620: 91,-18 + 6621: 92,-18 + 6622: 92,-19 + 6623: 87,-19 + 6624: 88,-19 + 6625: 88,-18 + 6626: 87,-18 - node: color: '#52B4E996' id: BotGreyscale decals: - 6368: 55,8 - 6369: 55,8 - 6370: 56,8 - 6371: 56,8 - 6385: 57,1 - 6386: 57,1 - 6387: 56,1 - 6388: 56,1 - 6389: 55,4 - 6390: 55,4 - 6391: 56,4 - 6392: 56,4 - 6393: 57,4 - 6394: 57,4 + 6361: 55,8 + 6362: 55,8 + 6363: 56,8 + 6364: 56,8 + 6378: 57,1 + 6379: 57,1 + 6380: 56,1 + 6381: 56,1 + 6382: 55,4 + 6383: 55,4 + 6384: 56,4 + 6385: 56,4 + 6386: 57,4 + 6387: 57,4 - node: cleanable: True color: '#D4D4D428' id: BotGreyscale decals: - 3032: 76,-28 - 3033: 80,-28 - 3034: 78,-30 - 3035: 78,-26 + 3029: 76,-28 + 3030: 80,-28 + 3031: 78,-30 + 3032: 78,-26 - node: cleanable: True color: '#EFB341FF' id: BotLeft decals: - 6145: 6,-14 - 6147: 6,-14 + 6138: 6,-14 + 6140: 6,-14 - node: color: '#FFFFFFFF' id: BotLeft decals: 1871: 74,-13 1872: 74,-12 - 1966: 23,-39 - 1967: 24,-39 - 1968: 25,-39 - 2161: 12,-39 - 6588: -3,33 + 1963: 23,-39 + 1964: 24,-39 + 1965: 25,-39 + 2158: 12,-39 + 6581: -3,33 - node: cleanable: True color: '#FFFFFFFF' id: BotLeft decals: - 6142: 6,-14 + 6135: 6,-14 - node: angle: -6.283185307179586 rad color: '#EFB34196' id: BotLeftGreyscale decals: - 6668: -1,-20 - 6669: -1,-21 + 6661: -1,-20 + 6662: -1,-21 - node: cleanable: True color: '#EFB341FF' id: BotLeftGreyscale decals: - 6146: 6,-14 + 6139: 6,-14 - node: angle: -6.283185307179586 rad color: '#EFB34196' id: BotRight decals: - 6670: -2,-21 - 6671: -2,-20 + 6663: -2,-21 + 6664: -2,-20 - node: cleanable: True color: '#EFB341FF' id: BotRight decals: - 6148: 6,-15 + 6141: 6,-15 - node: color: '#FFFFFFFF' id: BotRight decals: 1869: 73,-12 1870: 73,-13 - 1969: 23,-36 - 1970: 24,-36 - 1971: 25,-36 - 2162: 12,-40 - 6589: -3,34 + 1966: 23,-36 + 1967: 24,-36 + 1968: 25,-36 + 2159: 12,-40 + 6582: -3,34 - node: cleanable: True color: '#FFFFFFFF' id: BotRight decals: - 6143: 6,-15 + 6136: 6,-15 - node: cleanable: True color: '#EFB341FF' id: BotRightGreyscale decals: - 6144: 6,-15 + 6137: 6,-15 - node: color: '#FFFFFFFF' id: Box @@ -914,15 +910,15 @@ entities: 1089: 34,0 1118: -57,-24 1119: -56,-24 - 1999: 19,-37 - 2000: 19,-36 - 6653: 92,-20 + 1996: 19,-37 + 1997: 19,-36 + 6646: 92,-20 - node: color: '#FFFFFFFF' id: BrickTileDarkBox decals: - 2126: 18,-56 - 2127: 19,-56 + 2123: 18,-56 + 2124: 19,-56 - node: color: '#FFFFFFFF' id: BrickTileDarkCornerNe @@ -931,7 +927,7 @@ entities: 1067: 28,-29 1432: 58,-34 1886: 69,-29 - 2108: 22,-53 + 2105: 22,-53 - node: color: '#FFFFFFFF' id: BrickTileDarkCornerNw @@ -941,7 +937,7 @@ entities: 1065: 24,-29 1429: 56,-34 1885: 70,-29 - 2111: 15,-53 + 2108: 15,-53 - node: color: '#FFFFFFFF' id: BrickTileDarkCornerSe @@ -951,8 +947,8 @@ entities: 1066: 28,-34 1430: 58,-36 1888: 69,-30 - 2084: 17,-53 - 2110: 22,-60 + 2081: 17,-53 + 2107: 22,-60 - node: color: '#FFFFFFFF' id: BrickTileDarkCornerSw @@ -962,8 +958,8 @@ entities: 1068: 24,-34 1431: 56,-36 1887: 70,-30 - 2085: 20,-53 - 2109: 15,-60 + 2082: 20,-53 + 2106: 15,-60 - node: color: '#FFFFFFFF' id: BrickTileDarkInnerNe @@ -975,10 +971,10 @@ entities: 1810: 70,-11 1865: 74,-17 1868: 74,-14 - 2102: 15,-60 - 2107: 22,-53 - 2114: 21,-53 - 2115: 22,-54 + 2099: 15,-60 + 2104: 22,-53 + 2111: 21,-53 + 2112: 22,-54 - node: color: '#FFFFFFFF' id: BrickTileDarkInnerNw @@ -989,10 +985,10 @@ entities: 1153: -1,21 1423: 58,-36 1809: 68,-11 - 2103: 22,-60 - 2106: 15,-53 - 2112: 16,-53 - 2113: 15,-54 + 2100: 22,-60 + 2103: 15,-53 + 2109: 16,-53 + 2110: 15,-54 - node: color: '#FFFFFFFF' id: BrickTileDarkInnerSe @@ -1002,10 +998,10 @@ entities: 1422: 56,-34 1866: 74,-15 1867: 74,-19 - 2101: 15,-53 - 2104: 22,-60 - 2116: 22,-59 - 2117: 21,-60 + 2098: 15,-53 + 2101: 22,-60 + 2113: 22,-59 + 2114: 21,-60 - node: color: '#FFFFFFFF' id: BrickTileDarkInnerSw @@ -1013,10 +1009,10 @@ entities: 45: -12,-14 478: -25,-1 1421: 58,-34 - 2100: 22,-53 - 2105: 15,-60 - 2118: 15,-59 - 2119: 16,-60 + 2097: 22,-53 + 2102: 15,-60 + 2115: 15,-59 + 2116: 16,-60 - node: color: '#FFFFFFFF' id: BrickTileDarkLineE @@ -1104,25 +1100,25 @@ entities: 1425: 58,-35 1881: 69,-30 1882: 69,-29 - 1962: 22,-39 - 1963: 22,-38 - 1964: 22,-37 - 2005: 27,-47 - 2006: 27,-46 - 2007: 27,-45 - 2008: 27,-44 - 2009: 27,-43 - 2010: 27,-42 - 2095: 15,-59 - 2096: 15,-58 - 2097: 15,-57 - 2098: 15,-55 - 2099: 15,-54 - 2124: 16,-60 - 2146: 9,-47 - 2147: 9,-46 - 6466: 53,12 - 6467: 53,11 + 1959: 22,-39 + 1960: 22,-38 + 1961: 22,-37 + 2002: 27,-47 + 2003: 27,-46 + 2004: 27,-45 + 2005: 27,-44 + 2006: 27,-43 + 2007: 27,-42 + 2092: 15,-59 + 2093: 15,-58 + 2094: 15,-57 + 2095: 15,-55 + 2096: 15,-54 + 2121: 16,-60 + 2143: 9,-47 + 2144: 9,-46 + 6459: 53,12 + 6460: 53,11 - node: color: '#FFFFFFFF' id: BrickTileDarkLineN @@ -1207,24 +1203,24 @@ entities: 1808: 71,-11 1891: 71,-29 1892: 68,-29 - 2019: 28,-43 - 2020: 29,-43 - 2088: 16,-60 - 2089: 21,-60 - 2120: 15,-57 - 2121: 22,-57 - 2138: 7,-46 - 2139: 9,-46 - 2140: 8,-46 - 6132: -14,-23 - 6133: -15,-23 - 6134: -16,-23 - 6641: 87,-20 - 6642: 88,-20 - 6643: 89,-20 - 6644: 90,-20 - 6645: 91,-20 - 6646: 92,-20 + 2016: 28,-43 + 2017: 29,-43 + 2085: 16,-60 + 2086: 21,-60 + 2117: 15,-57 + 2118: 22,-57 + 2135: 7,-46 + 2136: 9,-46 + 2137: 8,-46 + 6125: -14,-23 + 6126: -15,-23 + 6127: -16,-23 + 6634: 87,-20 + 6635: 88,-20 + 6636: 89,-20 + 6637: 90,-20 + 6638: 91,-20 + 6639: 92,-20 - node: color: '#FFFFFFFF' id: BrickTileDarkLineS @@ -1299,51 +1295,51 @@ entities: 1518: -40,-54 1889: 68,-30 1890: 71,-30 - 2021: 28,-46 - 2022: 29,-46 - 2086: 16,-53 - 2087: 21,-53 - 2122: 22,-55 - 2123: 15,-55 - 2150: 8,-47 - 2151: 7,-47 - 2152: 9,-47 - 2168: 10,-40 - 2169: 11,-40 - 2233: -42,-54 - 6129: -14,-25 - 6130: -15,-25 - 6131: -16,-25 - 6234: -3,43 - 6235: -2,43 - 6236: -1,43 - 6267: 45,14 - 6268: 47,14 - 6269: 46,14 - 6440: 49,-11 - 6441: 52,-11 - 6605: -29,-17 - 6647: 87,-21 - 6648: 89,-21 - 6649: 88,-21 - 6650: 90,-21 - 6651: 91,-21 - 6652: 92,-21 + 2018: 28,-46 + 2019: 29,-46 + 2083: 16,-53 + 2084: 21,-53 + 2119: 22,-55 + 2120: 15,-55 + 2147: 8,-47 + 2148: 7,-47 + 2149: 9,-47 + 2165: 10,-40 + 2166: 11,-40 + 2230: -42,-54 + 6122: -14,-25 + 6123: -15,-25 + 6124: -16,-25 + 6227: -3,43 + 6228: -2,43 + 6229: -1,43 + 6260: 45,14 + 6261: 47,14 + 6262: 46,14 + 6433: 49,-11 + 6434: 52,-11 + 6598: -29,-17 + 6640: 87,-21 + 6641: 89,-21 + 6642: 88,-21 + 6643: 90,-21 + 6644: 91,-21 + 6645: 92,-21 - node: cleanable: True color: '#FFFFFFFF' id: BrickTileDarkLineS decals: - 2984: -30,36 - 2985: -29,36 - 2986: -28,36 - 2987: -27,36 - 2988: -26,36 - 3008: -30,36 - 3028: 76,-25 - 3029: 77,-25 - 3030: 78,-25 - 3031: 79,-25 + 2981: -30,36 + 2982: -29,36 + 2983: -28,36 + 2984: -27,36 + 2985: -26,36 + 3005: -30,36 + 3025: 76,-25 + 3026: 77,-25 + 3027: 78,-25 + 3028: 79,-25 - node: color: '#FFFFFFFF' id: BrickTileDarkLineW @@ -1431,14 +1427,14 @@ entities: 1426: 56,-35 1883: 70,-30 1884: 70,-29 - 2090: 22,-59 - 2091: 22,-58 - 2092: 22,-57 - 2093: 22,-55 - 2094: 22,-54 - 2125: 21,-60 - 2148: 7,-47 - 2149: 7,-46 + 2087: 22,-59 + 2088: 22,-58 + 2089: 22,-57 + 2090: 22,-55 + 2091: 22,-54 + 2122: 21,-60 + 2145: 7,-47 + 2146: 7,-46 - node: color: '#FFFFFFFF' id: BrickTileSteelCornerNe @@ -1450,28 +1446,28 @@ entities: id: BrickTileSteelInnerNe decals: 703: -39,-34 - 1954: 57,-21 - 6750: -33,-12 + 1952: 57,-21 + 6743: -33,-12 - node: color: '#FFFFFFFF' id: BrickTileSteelInnerNw decals: 702: -30,-34 - 1953: 54,-21 - 6749: -33,-12 + 1951: 54,-21 + 6742: -33,-12 - node: color: '#FFFFFFFF' id: BrickTileSteelInnerSe decals: 701: -39,-25 - 1955: 57,-23 + 1953: 57,-23 - node: color: '#FFFFFFFF' id: BrickTileSteelInnerSw decals: 700: -30,-25 1416: 44,5 - 1956: 54,-23 + 1954: 54,-23 - node: color: '#FFFFFFFF' id: BrickTileSteelLineE @@ -1538,20 +1534,20 @@ entities: 1165: -11,28 1879: 69,-28 1880: 70,-28 - 2128: 0,-37 - 2129: 1,-37 - 2134: 2,-37 - 2880: -27,27 - 2881: -26,27 - 2882: -25,27 - 6747: -34,-12 - 6748: -32,-12 + 2125: 0,-37 + 2126: 1,-37 + 2131: 2,-37 + 2877: -27,27 + 2878: -26,27 + 2879: -25,27 + 6740: -34,-12 + 6741: -32,-12 - node: cleanable: True color: '#FFFFFF35' id: BrickTileSteelLineS decals: - 6170: 83,-35 + 6163: 83,-35 - node: color: '#FFFFFFFF' id: BrickTileSteelLineS @@ -1582,17 +1578,17 @@ entities: 1414: 42,5 1415: 43,5 1478: 41,5 - 3067: 51,22 - 3068: 50,22 - 3069: 52,22 - 6603: -34,-17 - 6604: -33,-17 + 3064: 51,22 + 3065: 50,22 + 3066: 52,22 + 6596: -34,-17 + 6597: -33,-17 - node: cleanable: True color: '#FFFFFF35' id: BrickTileSteelLineW decals: - 6169: 81,-34 + 6162: 81,-34 - node: color: '#FFFFFFFF' id: BrickTileSteelLineW @@ -1640,18 +1636,18 @@ entities: color: '#DE3A3A96' id: BrickTileWhiteCornerNe decals: - 6737: 52,-26 + 6730: 52,-26 - node: color: '#EFB34196' id: BrickTileWhiteCornerNe decals: - 2857: -4,14 + 2854: -4,14 - node: cleanable: True color: '#EFB34196' id: BrickTileWhiteCornerNe decals: - 2993: -25,38 + 2990: -25,38 - node: color: '#A4610696' id: BrickTileWhiteCornerNw @@ -1668,19 +1664,19 @@ entities: color: '#DE3A3A96' id: BrickTileWhiteCornerNw decals: - 6736: 51,-26 + 6729: 51,-26 - node: color: '#EFB34196' id: BrickTileWhiteCornerNw decals: - 2213: -54,9 - 2856: -2,14 + 2210: -54,9 + 2853: -2,14 - node: cleanable: True color: '#EFB34196' id: BrickTileWhiteCornerNw decals: - 2992: -30,38 + 2989: -30,38 - node: color: '#A4610696' id: BrickTileWhiteCornerSe @@ -1699,7 +1695,7 @@ entities: color: '#DE3A3A96' id: BrickTileWhiteCornerSe decals: - 6735: 52,-27 + 6728: 52,-27 - node: color: '#A4610696' id: BrickTileWhiteCornerSw @@ -1715,12 +1711,12 @@ entities: color: '#DE3A3A96' id: BrickTileWhiteCornerSw decals: - 6738: 51,-27 + 6731: 51,-27 - node: color: '#EFB34196' id: BrickTileWhiteEndE decals: - 2879: 63,9 + 2876: 63,9 - node: color: '#334E6DC8' id: BrickTileWhiteInnerNe @@ -1734,8 +1730,8 @@ entities: decals: 1480: 41,5 1760: 57,-7 - 6414: 48,-1 - 6431: 49,-7 + 6407: 48,-1 + 6424: 49,-7 - node: color: '#A4610696' id: BrickTileWhiteInnerNe @@ -1761,8 +1757,8 @@ entities: id: BrickTileWhiteInnerNw decals: 1479: 45,5 - 6413: 52,-1 - 6430: 51,-7 + 6406: 52,-1 + 6423: 51,-7 - node: color: '#EFB34196' id: BrickTileWhiteInnerNw @@ -1778,9 +1774,9 @@ entities: id: BrickTileWhiteInnerSe decals: 1482: 45,4 - 6412: 48,-8 - 6429: 49,-2 - 6433: 50,-8 + 6405: 48,-8 + 6422: 49,-2 + 6426: 50,-8 - node: color: '#A4610696' id: BrickTileWhiteInnerSe @@ -1805,9 +1801,9 @@ entities: color: '#52B4E996' id: BrickTileWhiteInnerSw decals: - 6411: 52,-8 - 6428: 51,-2 - 6432: 50,-8 + 6404: 52,-8 + 6421: 51,-2 + 6425: 50,-8 - node: color: '#A4610696' id: BrickTileWhiteInnerSw @@ -1841,43 +1837,43 @@ entities: 1757: 57,-6 1758: 57,-5 1759: 57,-4 - 6316: 42,9 - 6317: 42,7 - 6323: 47,9 - 6324: 47,8 - 6325: 47,7 - 6341: 51,1 - 6342: 51,2 - 6343: 51,3 - 6344: 51,4 - 6345: 51,6 - 6346: 51,7 - 6347: 51,8 - 6348: 51,9 - 6349: 51,10 - 6350: 51,11 - 6351: 51,12 - 6352: 51,13 - 6353: 51,14 - 6354: 51,15 - 6359: 56,10 - 6360: 56,11 - 6361: 56,12 - 6365: 56,6 - 6366: 56,7 - 6367: 56,8 - 6403: 52,-1 - 6404: 52,-2 - 6405: 52,-3 - 6406: 52,-4 - 6407: 52,-5 - 6408: 52,-6 - 6409: 52,-7 - 6410: 52,-8 - 6424: 49,-6 - 6425: 49,-5 - 6426: 49,-4 - 6427: 49,-3 + 6309: 42,9 + 6310: 42,7 + 6316: 47,9 + 6317: 47,8 + 6318: 47,7 + 6334: 51,1 + 6335: 51,2 + 6336: 51,3 + 6337: 51,4 + 6338: 51,6 + 6339: 51,7 + 6340: 51,8 + 6341: 51,9 + 6342: 51,10 + 6343: 51,11 + 6344: 51,12 + 6345: 51,13 + 6346: 51,14 + 6347: 51,15 + 6352: 56,10 + 6353: 56,11 + 6354: 56,12 + 6358: 56,6 + 6359: 56,7 + 6360: 56,8 + 6396: 52,-1 + 6397: 52,-2 + 6398: 52,-3 + 6399: 52,-4 + 6400: 52,-5 + 6401: 52,-6 + 6402: 52,-7 + 6403: 52,-8 + 6417: 49,-6 + 6418: 49,-5 + 6419: 49,-4 + 6420: 49,-3 - node: color: '#9FED5896' id: BrickTileWhiteLineE @@ -1937,9 +1933,9 @@ entities: 1137: -1,24 1144: -1,25 1325: -18,28 - 6672: -37,-44 - 6673: -37,-45 - 6686: -37,-46 + 6665: -37,-44 + 6666: -37,-45 + 6679: -37,-46 - node: color: '#EFB34196' id: BrickTileWhiteLineE @@ -1950,20 +1946,20 @@ entities: 1459: 41,12 1469: 47,13 1470: 47,11 - 2190: -4,-37 - 2191: -4,-35 - 2894: -39,-38 + 2187: -4,-37 + 2188: -4,-35 + 2891: -39,-38 - node: cleanable: True color: '#EFB34196' id: BrickTileWhiteLineE decals: - 2991: -25,37 - 2998: -32,38 - 2999: -32,37 - 3000: -32,36 - 3001: -32,35 - 3002: -32,34 + 2988: -25,37 + 2995: -32,38 + 2996: -32,37 + 2997: -32,36 + 2998: -32,35 + 2999: -32,34 - node: color: '#FFFFFFFF' id: BrickTileWhiteLineE @@ -1978,10 +1974,10 @@ entities: 1018: 41,-34 1048: 38,-34 1049: 42,-34 - 1978: 19,-36 - 1979: 20,-36 - 1983: 21,-36 - 2013: 24,-46 + 1975: 19,-36 + 1976: 20,-36 + 1980: 21,-36 + 2010: 24,-46 - node: color: '#474F52A7' id: BrickTileWhiteLineN @@ -2009,16 +2005,16 @@ entities: 1754: 60,-7 1755: 61,-7 1756: 62,-7 - 6376: 53,3 - 6377: 54,3 - 6378: 55,3 - 6379: 57,3 - 6415: 51,-1 - 6416: 50,-1 - 6417: 49,-1 - 6437: 49,-10 - 6438: 50,-10 - 6439: 51,-10 + 6369: 53,3 + 6370: 54,3 + 6371: 55,3 + 6372: 57,3 + 6408: 51,-1 + 6409: 50,-1 + 6410: 49,-1 + 6430: 49,-10 + 6431: 50,-10 + 6432: 51,-10 - node: color: '#79150096' id: BrickTileWhiteLineN @@ -2030,7 +2026,7 @@ entities: decals: 1264: -1,53 1265: 0,53 - 2011: 24,-43 + 2008: 24,-43 - node: color: '#A4610696' id: BrickTileWhiteLineN @@ -2056,13 +2052,13 @@ entities: 1847: 75,-13 1848: 77,-17 1849: 75,-17 - 3187: 76,-13 - 3190: 76,-17 + 3183: 76,-13 + 3186: 76,-17 - node: color: '#D4D4D496' id: BrickTileWhiteLineN decals: - 2012: 25,-43 + 2009: 25,-43 - node: color: '#DE3A3A96' id: BrickTileWhiteLineN @@ -2070,7 +2066,7 @@ entities: 1205: -3,32 1206: -2,32 1207: -1,32 - 2014: 25,-46 + 2011: 25,-46 - node: color: '#EFB34196' id: BrickTileWhiteLineN @@ -2091,28 +2087,28 @@ entities: 1453: 43,11 1454: 46,11 1455: 45,11 - 2187: 0,-35 - 2188: 1,-35 - 2214: -53,9 - 2892: -62,-21 - 2893: -61,-21 + 2184: 0,-35 + 2185: 1,-35 + 2211: -53,9 + 2889: -62,-21 + 2890: -61,-21 - node: cleanable: True color: '#EFB34196' id: BrickTileWhiteLineN decals: - 2994: -29,38 - 2995: -28,38 - 2996: -27,38 - 2997: -26,38 + 2991: -29,38 + 2992: -28,38 + 2993: -27,38 + 2994: -26,38 - node: color: '#FFFFFFFF' id: BrickTileWhiteLineN decals: - 2244: 13,25 - 2245: 14,25 - 2246: 15,25 - 6215: 14,22 + 2241: 13,25 + 2242: 14,25 + 2243: 15,25 + 6208: 14,22 - node: color: '#334E6DC8' id: BrickTileWhiteLineS @@ -2123,11 +2119,11 @@ entities: 356: 47,-22 357: 48,-22 358: 49,-22 - 1980: 19,-39 - 1981: 20,-39 - 1982: 21,-39 - 6716: 52,-37 - 6717: 51,-37 + 1977: 19,-39 + 1978: 20,-39 + 1979: 21,-39 + 6709: 52,-37 + 6710: 51,-37 - node: color: '#474F52A7' id: BrickTileWhiteLineS @@ -2148,18 +2144,18 @@ entities: 1481: 46,4 1720: 60,0 1721: 59,0 - 2017: 24,-46 - 6380: 57,2 - 6381: 56,2 - 6382: 55,2 - 6383: 54,2 - 6384: 53,2 - 6418: 49,-8 - 6419: 51,-8 - 6434: 48,-11 - 6435: 51,-11 - 6436: 53,-11 - 6442: 50,-11 + 2014: 24,-46 + 6373: 57,2 + 6374: 56,2 + 6375: 55,2 + 6376: 54,2 + 6377: 53,2 + 6411: 49,-8 + 6412: 51,-8 + 6427: 48,-11 + 6428: 51,-11 + 6429: 53,-11 + 6435: 50,-11 - node: color: '#79150096' id: BrickTileWhiteLineS @@ -2191,7 +2187,7 @@ entities: 1357: 28,17 1387: 34,17 1388: 35,17 - 2015: 24,-43 + 2012: 24,-43 - node: color: '#D381C996' id: BrickTileWhiteLineS @@ -2209,9 +2205,9 @@ entities: 1851: 77,-19 1852: 75,-15 1853: 77,-15 - 2018: 25,-43 - 3188: 76,-15 - 3189: 76,-19 + 2015: 25,-43 + 3184: 76,-15 + 3185: 76,-19 - node: color: '#DE3A3A96' id: BrickTileWhiteLineS @@ -2244,12 +2240,12 @@ entities: 1456: 44,13 1457: 45,13 1458: 46,13 - 2016: 25,-46 - 2160: 9,-41 - 2868: 61,-31 - 2869: 62,-31 - 2870: 63,-31 - 6243: 42,13 + 2013: 25,-46 + 2157: 9,-41 + 2865: 61,-31 + 2866: 62,-31 + 2867: 63,-31 + 6236: 42,13 - node: color: '#FFFFFFFF' id: BrickTileWhiteLineS @@ -2272,41 +2268,41 @@ entities: color: '#52B4E996' id: BrickTileWhiteLineW decals: - 6318: 46,7 - 6319: 46,9 - 6320: 41,9 - 6321: 41,8 - 6322: 41,7 - 6326: 49,1 - 6327: 49,2 - 6328: 49,3 - 6329: 49,4 - 6330: 49,5 - 6331: 49,6 - 6332: 49,7 - 6333: 49,8 - 6334: 49,9 - 6335: 49,10 - 6336: 49,11 - 6337: 49,12 - 6338: 49,13 - 6339: 49,14 - 6340: 49,15 - 6362: 53,6 - 6363: 53,7 - 6364: 53,8 - 6395: 48,-8 - 6396: 48,-7 - 6397: 48,-6 - 6398: 48,-5 - 6399: 48,-4 - 6400: 48,-3 - 6401: 48,-2 - 6402: 48,-1 - 6420: 51,-6 - 6421: 51,-5 - 6422: 51,-4 - 6423: 51,-3 + 6311: 46,7 + 6312: 46,9 + 6313: 41,9 + 6314: 41,8 + 6315: 41,7 + 6319: 49,1 + 6320: 49,2 + 6321: 49,3 + 6322: 49,4 + 6323: 49,5 + 6324: 49,6 + 6325: 49,7 + 6326: 49,8 + 6327: 49,9 + 6328: 49,10 + 6329: 49,11 + 6330: 49,12 + 6331: 49,13 + 6332: 49,14 + 6333: 49,15 + 6355: 53,6 + 6356: 53,7 + 6357: 53,8 + 6388: 48,-8 + 6389: 48,-7 + 6390: 48,-6 + 6391: 48,-5 + 6392: 48,-4 + 6393: 48,-3 + 6394: 48,-2 + 6395: 48,-1 + 6413: 51,-6 + 6414: 51,-5 + 6415: 51,-4 + 6416: 51,-3 - node: color: '#9FED5896' id: BrickTileWhiteLineW @@ -2370,10 +2366,10 @@ entities: color: '#EFB3413B' id: BrickTileWhiteLineW decals: - 6165: 14,39 - 6166: 14,40 - 6167: 14,41 - 6168: 14,42 + 6158: 14,39 + 6159: 14,40 + 6160: 14,41 + 6161: 14,42 - node: color: '#EFB34196' id: BrickTileWhiteLineW @@ -2390,29 +2386,29 @@ entities: 1471: 41,11 1472: 41,12 1473: 41,13 - 2158: 8,-40 - 2159: 8,-39 - 2189: -2,-36 - 2192: -6,-37 - 2193: -6,-36 - 2194: -6,-35 - 2203: 39,-15 - 2204: 39,-17 - 2205: 39,-16 - 2886: -22,34 - 2887: -22,35 + 2155: 8,-40 + 2156: 8,-39 + 2186: -2,-36 + 2189: -6,-37 + 2190: -6,-36 + 2191: -6,-35 + 2200: 39,-15 + 2201: 39,-17 + 2202: 39,-16 + 2883: -22,34 + 2884: -22,35 - node: cleanable: True color: '#EFB34196' id: BrickTileWhiteLineW decals: - 2989: -30,36 - 2990: -30,37 - 3003: -34,34 - 3004: -34,35 - 3005: -34,36 - 3006: -34,37 - 3007: -34,38 + 2986: -30,36 + 2987: -30,37 + 3000: -34,34 + 3001: -34,35 + 3002: -34,36 + 3003: -34,37 + 3004: -34,38 - node: color: '#FFFFFFFF' id: BrickTileWhiteLineW @@ -2440,7 +2436,7 @@ entities: id: BushCOne decals: 862: -45,4 - 1935: 56,-21 + 1933: 56,-21 - node: color: '#FFFFFFFF' id: BushCThree @@ -2450,7 +2446,7 @@ entities: 866: -48,-2 1107: 42,-30 1485: -49,-49 - 2258: 24,1 + 2255: 24,1 - node: color: '#FFFFFFFF' id: BushCTwo @@ -2459,13 +2455,13 @@ entities: 321: 26,-23 525: -38,6 1486: -46,-49 - 1936: 56,-22 + 1934: 56,-22 - node: cleanable: True color: '#FFFFFFFF' id: BushCTwo decals: - 3038: 81,-8 + 3035: 81,-8 - node: color: '#FFFFFFFF' id: BushDTwo @@ -2477,14 +2473,14 @@ entities: decals: 523: -39,5 925: -48,-28 - 1938: 57,-23 - 1957: 54,-23 + 1936: 57,-23 + 1955: 54,-23 - node: cleanable: True color: '#FFFFFFFF' id: Busha1 decals: - 3039: 82,-6 + 3036: 82,-6 - node: color: '#FFFFFFFF' id: Busha2 @@ -2492,7 +2488,7 @@ entities: 531: -30,7 926: -47,-29 1727: 58,19 - 1937: 55,-23 + 1935: 55,-23 - node: color: '#FFFFFFFF' id: Busha3 @@ -2513,7 +2509,7 @@ entities: color: '#FFFFFFFF' id: Bushb1 decals: - 3036: 81,-7 + 3033: 81,-7 - node: color: '#FFFFFFFF' id: Bushb2 @@ -2521,7 +2517,7 @@ entities: 558: -24,7 916: -47,-8 1746: 57,19 - 1933: 54,-21 + 1931: 54,-21 - node: color: '#FFFFFFFF' id: Bushb3 @@ -2538,27 +2534,27 @@ entities: 530: -29,6 867: -45,-2 929: -49,-27 - 1934: 55,-22 + 1932: 55,-22 - node: cleanable: True color: '#FFFFFFFF' id: Bushc1 decals: - 3037: 82,-7 + 3034: 82,-7 - node: color: '#FFFFFFFF' id: Bushc2 decals: 528: -28,6 1487: -47,-49 - 2260: 25,1 + 2257: 25,1 - node: color: '#FFFFFFFF' id: Bushc3 decals: 35: -5,-12 1484: -51,-49 - 2259: 26,1 + 2256: 26,1 - node: color: '#FFFFFFFF' id: Bushd2 @@ -2595,7 +2591,7 @@ entities: color: '#FFFFFFFF' id: Bushi1 decals: - 3042: 80,-7 + 3039: 80,-7 - node: color: '#FFFFFFFF' id: Bushi2 @@ -2604,9 +2600,9 @@ entities: 876: -51,4 913: -48,-8 914: -51,-9 - 1939: 54,-22 - 1958: 53.45864,-23.10261 - 2261: 24,1 + 1937: 54,-22 + 1956: 53.45864,-23.10261 + 2258: 24,1 - node: color: '#FFFFFFFF' id: Bushi3 @@ -2619,7 +2615,7 @@ entities: color: '#FFFFFFFF' id: Bushi3 decals: - 3040: 82,-8 + 3037: 82,-8 - node: color: '#FFFFFFFF' id: Bushi4 @@ -2629,14 +2625,14 @@ entities: 915: -46,-7 1108: 42,-31 1492: -45,-49 - 1940: 56,-23 - 1946: 57.568016,-22.290323 + 1938: 56,-23 + 1944: 57.568016,-22.290323 - node: cleanable: True color: '#FFFFFFFF' id: Bushi4 decals: - 3041: 81,-6 + 3038: 81,-6 - node: color: '#FFFFFFFF' id: Bushj3 @@ -2656,17 +2652,17 @@ entities: color: '#FFFFFFFF' id: Caution decals: - 1991: 24,-37 - 1995: 23,-37 - 1996: 25,-37 + 1988: 24,-37 + 1992: 23,-37 + 1993: 25,-37 - node: angle: 3.141592653589793 rad color: '#FFFFFFFF' id: Caution decals: - 1992: 24,-38 - 1993: 23,-38 - 1994: 25,-38 + 1989: 24,-38 + 1990: 23,-38 + 1991: 25,-38 - node: color: '#EFB34196' id: CheckerNESW @@ -2676,28 +2672,28 @@ entities: 1466: 44,12 1467: 45,12 1468: 46,12 - 6246: 46,15 - 6247: 46,14 + 6239: 46,15 + 6240: 46,14 - node: color: '#334E6DC8' id: CheckerNWSE decals: - 1987: 20,-37 - 1988: 21,-37 - 1989: 21,-38 - 1990: 20,-38 + 1984: 20,-37 + 1985: 21,-37 + 1986: 21,-38 + 1987: 20,-38 - node: color: '#474F528F' id: CheckerNWSE decals: - 2236: -17,11 - 2237: -16,11 - 2238: -16,12 - 2239: -17,12 - 2240: -17,13 - 2241: -16,13 - 2242: -16,14 - 2243: -17,14 + 2233: -17,11 + 2234: -16,11 + 2235: -16,12 + 2236: -17,12 + 2237: -17,13 + 2238: -16,13 + 2239: -16,14 + 2240: -17,14 - node: color: '#52B4E996' id: CheckerNWSE @@ -2717,22 +2713,22 @@ entities: color: '#DE3A3A41' id: CheckerNWSE decals: - 6674: -36,-46 - 6675: -36,-45 - 6676: -36,-44 - 6677: -35,-44 - 6678: -35,-45 - 6679: -35,-46 + 6667: -36,-46 + 6668: -36,-45 + 6669: -36,-44 + 6670: -35,-44 + 6671: -35,-45 + 6672: -35,-46 - node: cleanable: True color: '#EFB34125' id: CheckerNWSE decals: - 6160: 15,40 - 6161: 13,42 - 6162: 13,41 - 6163: 13,40 - 6164: 13,39 + 6153: 15,40 + 6154: 13,42 + 6155: 13,41 + 6156: 13,40 + 6157: 13,39 - node: color: '#EFB34196' id: CheckerNWSE @@ -2743,65 +2739,65 @@ entities: 149: -2,-27 150: -3,-27 151: -3,-28 - 2198: 37,-15 - 2199: 37,-16 - 2200: 37,-17 - 2201: 38,-16 - 2202: 38,-15 - 2206: 38,-17 - 2207: 38,6 - 2208: 38,7 - 2209: -54,10 - 2210: -53,10 - 2211: -55,10 - 2212: -55,9 - 2852: -4,15 - 2853: -3,15 - 2854: -2,15 - 2855: -3,14 - 2858: -38,-54 - 2859: -38,-53 - 2860: -37,-53 - 2861: -37,-54 - 2862: 61,-32 - 2863: 62,-32 - 2864: 63,-32 - 2865: 63,-33 - 2866: 62,-33 - 2867: 61,-33 - 2871: 63,10 - 2872: 64,10 - 2873: 65,10 - 2874: 65,9 - 2875: 65,8 - 2876: 64,8 - 2877: 63,8 - 2878: 64,9 - 2884: -23,34 - 2885: -23,35 - 2888: 14,-39 - 2889: 15,-39 - 2890: -61,-20 - 2891: -62,-20 - 2895: -38,-38 - 6727: 51,-30 - 6728: 51,-29 - 6729: 52,-29 - 6730: 52,-30 + 2195: 37,-15 + 2196: 37,-16 + 2197: 37,-17 + 2198: 38,-16 + 2199: 38,-15 + 2203: 38,-17 + 2204: 38,6 + 2205: 38,7 + 2206: -54,10 + 2207: -53,10 + 2208: -55,10 + 2209: -55,9 + 2849: -4,15 + 2850: -3,15 + 2851: -2,15 + 2852: -3,14 + 2855: -38,-54 + 2856: -38,-53 + 2857: -37,-53 + 2858: -37,-54 + 2859: 61,-32 + 2860: 62,-32 + 2861: 63,-32 + 2862: 63,-33 + 2863: 62,-33 + 2864: 61,-33 + 2868: 63,10 + 2869: 64,10 + 2870: 65,10 + 2871: 65,9 + 2872: 65,8 + 2873: 64,8 + 2874: 63,8 + 2875: 64,9 + 2881: -23,34 + 2882: -23,35 + 2885: 14,-39 + 2886: 15,-39 + 2887: -61,-20 + 2888: -62,-20 + 2892: -38,-38 + 6720: 51,-30 + 6721: 51,-29 + 6722: 52,-29 + 6723: 52,-30 - node: color: '#D4D4D496' id: Delivery decals: - 6610: 0,30 - 6611: 0,31 + 6603: 0,30 + 6604: 0,31 - node: color: '#DE3A3A41' id: Delivery decals: - 6682: -38,-46 - 6683: -38,-46 - 6684: -38,-44 - 6685: -38,-44 + 6675: -38,-46 + 6676: -38,-46 + 6677: -38,-44 + 6678: -38,-44 - node: color: '#DE3A3A96' id: Delivery @@ -2817,8 +2813,8 @@ entities: id: Delivery decals: 60: -7,-20 - 6258: 47,16 - 6259: 47,16 + 6251: 47,16 + 6252: 47,16 - node: color: '#EFB341FF' id: Delivery @@ -2871,140 +2867,140 @@ entities: 1449: 46,3 1450: 46,3 1772: 60,-12 - 1997: 26,-37 - 1998: 26,-38 - 2001: 31,-37 - 2002: 31,-38 - 2170: 8,-41 - 3081: 3,20 - 3082: -9,19 - 3083: -9,20 - 3084: -9,21 - 3085: -17,21 - 3086: -17,20 - 3087: -17,19 - 3088: 3,21 - 3089: 3,19 - 3090: 17,19 - 3091: 17,20 - 3092: 17,21 - 3093: 19,17 - 3094: 21,17 - 3095: 20,17 - 3096: 21,6 - 3097: 20,6 - 3098: 19,6 - 3099: 29,2 - 3100: 29,4 - 3101: 29,3 - 3102: 39,2 - 3103: 39,3 - 3104: 39,4 - 3105: 43,0 - 3106: 42,0 - 3107: 41,0 - 3108: 43,-14 - 3109: 42,-14 - 3110: 41,-14 - 3111: 46,-21 - 3112: 46,-19 - 3113: 46,-20 - 3114: 38,-19 - 3115: 38,-21 - 3116: 38,-20 - 3117: 30,-21 - 3118: 30,-20 - 3119: 30,-19 - 3120: 30,-20 - 3121: 21,-28 - 3122: 20,-28 - 3123: 19,-28 - 3124: 18,-32 - 3125: 18,-33 - 3126: 18,-34 - 3127: 10,-34 - 3128: 10,-33 - 3129: 10,-32 - 3130: 4,-32 - 3131: 4,-31 - 3132: 4,-30 - 3133: -9,-32 - 3134: -9,-31 - 3135: -9,-30 - 3136: -20,-32 - 3137: -20,-30 - 3138: -20,-31 - 3139: -24,-22 - 3140: -25,-22 - 3141: -26,-22 - 3142: -42,-29 - 3143: -42,-28 - 3144: -27,-29 - 3145: -27,-28 - 3146: -26,-12 - 3147: -25,-12 - 3148: -24,-12 - 3149: -23,-6 - 3150: -24,-6 - 3151: -25,-6 - 3152: -25,10 - 3153: -26,10 - 3154: -27,10 - 3155: -42,0 - 3156: -42,1 - 3157: -42,2 - 3158: -53,-5 - 3159: -54,-5 - 3160: -55,-5 - 3161: -55,-19 - 3162: -54,-19 - 3163: -53,-19 - 3164: -49,-34 - 3165: -47,-34 - 3166: -48,-34 - 3167: -47,-45 - 3168: -48,-45 - 3169: -49,-45 - 3170: -41,-49 - 3171: -42,-49 - 3172: -40,-49 - 3173: -54,-49 - 3174: -55,-49 - 3175: -56,-49 - 3176: -56,-55 - 3177: -55,-55 - 3178: -54,-55 - 3179: -42,-55 - 3180: -41,-55 - 3181: -40,-55 - 6612: 60,-24 - 6613: 60,-23 - 6712: 32,21 + 1994: 26,-37 + 1995: 26,-38 + 1998: 31,-37 + 1999: 31,-38 + 2167: 8,-41 + 3077: 3,20 + 3078: -9,19 + 3079: -9,20 + 3080: -9,21 + 3081: -17,21 + 3082: -17,20 + 3083: -17,19 + 3084: 3,21 + 3085: 3,19 + 3086: 17,19 + 3087: 17,20 + 3088: 17,21 + 3089: 19,17 + 3090: 21,17 + 3091: 20,17 + 3092: 21,6 + 3093: 20,6 + 3094: 19,6 + 3095: 29,2 + 3096: 29,4 + 3097: 29,3 + 3098: 39,2 + 3099: 39,3 + 3100: 39,4 + 3101: 43,0 + 3102: 42,0 + 3103: 41,0 + 3104: 43,-14 + 3105: 42,-14 + 3106: 41,-14 + 3107: 46,-21 + 3108: 46,-19 + 3109: 46,-20 + 3110: 38,-19 + 3111: 38,-21 + 3112: 38,-20 + 3113: 30,-21 + 3114: 30,-20 + 3115: 30,-19 + 3116: 30,-20 + 3117: 21,-28 + 3118: 20,-28 + 3119: 19,-28 + 3120: 18,-32 + 3121: 18,-33 + 3122: 18,-34 + 3123: 10,-34 + 3124: 10,-33 + 3125: 10,-32 + 3126: 4,-32 + 3127: 4,-31 + 3128: 4,-30 + 3129: -9,-32 + 3130: -9,-31 + 3131: -9,-30 + 3132: -20,-32 + 3133: -20,-30 + 3134: -20,-31 + 3135: -24,-22 + 3136: -25,-22 + 3137: -26,-22 + 3138: -42,-29 + 3139: -42,-28 + 3140: -27,-29 + 3141: -27,-28 + 3142: -26,-12 + 3143: -25,-12 + 3144: -24,-12 + 3145: -23,-6 + 3146: -24,-6 + 3147: -25,-6 + 3148: -25,10 + 3149: -26,10 + 3150: -27,10 + 3151: -42,0 + 3152: -42,1 + 3153: -42,2 + 3154: -53,-5 + 3155: -54,-5 + 3156: -55,-5 + 3157: -55,-19 + 3158: -54,-19 + 3159: -53,-19 + 3160: -49,-34 + 3161: -47,-34 + 3162: -48,-34 + 3163: -47,-45 + 3164: -48,-45 + 3165: -49,-45 + 3166: -41,-49 + 3167: -42,-49 + 3168: -40,-49 + 3169: -54,-49 + 3170: -55,-49 + 3171: -56,-49 + 3172: -56,-55 + 3173: -55,-55 + 3174: -54,-55 + 3175: -42,-55 + 3176: -41,-55 + 3177: -40,-55 + 6605: 60,-24 + 6606: 60,-23 + 6705: 32,21 - node: cleanable: True angle: 1.5707963267948966 rad color: '#FFFFFFFF' id: Delivery decals: - 3013: 24,5 - 3014: 25,5 - 3015: 26,5 - 3016: 14,1 - 3017: 14,-12 - 3018: 0,14 - 3019: -6,14 + 3010: 24,5 + 3011: 25,5 + 3012: 26,5 + 3013: 14,1 + 3014: 14,-12 + 3015: 0,14 + 3016: -6,14 - node: color: '#52B4E996' id: DeliveryGreyscale decals: 1761: 59,-5 1762: 61,-5 - 6372: 48,2 - 6373: 48,2 - 6374: 48,1 - 6375: 48,1 - 6606: 50,-5 - 6607: 50,-5 + 6365: 48,2 + 6366: 48,2 + 6367: 48,1 + 6368: 48,1 + 6599: 50,-5 + 6600: 50,-5 - node: color: '#DE3A3A96' id: DeliveryGreyscale @@ -3015,3380 +3011,3392 @@ entities: color: '#FFFFFFFF' id: DeliveryGreyscale decals: - 2247: 9,23 - 2248: 9,24 + 2244: 9,23 + 2245: 9,24 - node: cleanable: True color: '#835432FF' id: Dirt decals: - 2898: -37,28 - 2899: -36,27 - 2900: -37,27 - 2901: -37,25 - 2902: -37,24 - 2903: -36,25 - 2904: -36,24 - 2905: -36,25 + 2895: -37,28 + 2896: -36,27 + 2897: -37,27 + 2898: -37,25 + 2899: -37,24 + 2900: -36,25 + 2901: -36,24 + 2902: -36,25 + 2903: -38,28 + 2904: -39,29 + 2905: -40,28 2906: -38,28 - 2907: -39,29 - 2908: -40,28 - 2909: -38,28 - 2910: -37,27 - 2911: -37,28 - 2912: -37,27 - 2913: -36,25 - 2914: -36,24 - 2915: -34,24 - 2916: -34,23 - 2917: -34,22 - 2918: -36,22 - 2919: -37,22 - 2920: -36,24 - 2921: -37,24 - 2922: -36,23 - 2923: -37,25 - 2924: -36,25 - 2925: -37,26 - 2926: -38,27 - 2927: -38,28 - 2928: -39,27 - 2929: -39,26 - 2930: -39,26 + 2907: -37,27 + 2908: -37,28 + 2909: -37,27 + 2910: -36,25 + 2911: -36,24 + 2912: -34,24 + 2913: -34,23 + 2914: -34,22 + 2915: -36,22 + 2916: -37,22 + 2917: -36,24 + 2918: -37,24 + 2919: -36,23 + 2920: -37,25 + 2921: -36,25 + 2922: -37,26 + 2923: -38,27 + 2924: -38,28 + 2925: -39,27 + 2926: -39,26 + 2927: -39,26 - node: cleanable: True color: '#A4610696' id: Dirt decals: - 5478: -34,-26 - 5479: -37,-25 - 5480: -39,-28 - 5481: -40,-28 - 5482: -40,-31 - 5483: -39,-33 - 5484: -37,-33 - 5485: -32,-33 - 5486: -29,-33 - 5487: -29,-31 - 5488: -30,-28 - 5489: -29,-27 - 5490: -25,-30 - 5491: -25,-27 - 5492: -25,-26 - 5493: -25,-23 - 5494: -24,-21 - 5495: -25,-18 - 5496: -29,-20 - 5497: -29,-19 - 5498: -33,-19 - 5499: -33,-20 - 5500: -31,-14 - 5501: -29,-15 - 5502: -33,-16 - 5503: -29,-13 - 5504: -29,-11 - 5505: -38,-11 - 5506: -37,-15 - 5507: -36,-16 - 5508: -40,-10 - 5509: -38,-17 - 5510: -47,-8 - 5511: -45,0 - 5512: -47,0 - 5513: -44,2 - 5514: -48,-2 - 5515: -47,-1 - 5516: -49,3 - 5517: -50,-1 - 5518: -45,1 - 5519: -53,4 - 5520: -48,5 - 5521: -50,6 - 5522: -47,1 - 5523: -38,-1 - 5524: -36,1 - 5525: -35,-1 - 5526: -32,-1 - 5527: -33,0 - 5528: -33,-3 - 5529: -24,-2 - 5530: -28,3 - 5531: -26,3 - 5532: -26,8 - 5533: -27,13 - 5534: -26,14 - 5535: -26,18 - 5536: -33,13 - 5537: -32,15 - 5538: -32,14 - 5539: -22,13 - 5540: -20,12 - 5541: -22,13 - 5542: -24,19 - 5543: -20,20 - 5544: -18,19 - 5545: -16,20 - 5546: -13,19 - 5547: -15,24 - 5548: -14,24 - 5549: -13,27 - 5550: -14,28 - 5551: -13,27 - 5552: -5,28 - 5553: -20,28 - 5554: -18,25 - 5555: -13,31 - 5556: -15,32 - 5557: -14,34 - 5558: -17,32 - 5559: -8,32 - 5560: -8,32 - 5561: -6,33 - 5562: -6,27 - 5563: -3,28 - 5564: -1,30 - 5565: -2,33 - 5566: -2,33 - 5567: -2,36 - 5568: -2,43 - 5569: -7,42 - 5570: -5,45 - 5571: -3,47 - 5572: 0,45 - 5573: -2,47 - 5574: -1,47 - 5575: -2,51 - 5576: 1,51 - 5577: -1,52 - 5578: 1,52 - 5579: 2,45 - 5580: 2,47 - 5581: 2,42 - 5582: 1,40 - 5583: 6,41 - 5584: 8,39 - 5585: 6,41 - 5586: 5,31 - 5587: 3,31 - 5588: 5,30 - 5589: 4,30 - 5590: 3,26 - 5591: 2,27 - 5592: 4,25 - 5593: 3,23 - 5594: 2,24 - 5595: 1,23 - 5596: -2,24 - 5597: 1,21 - 5598: -1,19 - 5599: 4,20 - 5600: 9,20 - 5601: 9,20 - 5602: 15,19 - 5603: 11,24 - 5604: 14,23 - 5605: 14,25 - 5606: 15,24 - 5607: 14,29 - 5608: 14,31 - 5609: 17,25 - 5610: 17,23 - 5611: 16,20 - 5612: 20,20 - 5613: 20,18 - 5614: 20,15 - 5615: 21,15 - 5616: 20,12 - 5617: 22,12 - 5618: 20,11 - 5619: 27,12 - 5620: 27,11 - 5621: 26,14 - 5622: 25,19 - 5623: 30,19 - 5624: 31,16 - 5625: 31,12 - 5626: 35,14 - 5627: 35,14 - 5628: 35,14 - 5629: 32,8 - 5630: 34,9 - 5631: 32,7 - 5632: 26,7 - 5633: 24,7 - 5634: 24,3 - 5635: 24,2 - 5636: 23,2 - 5637: 20,6 - 5638: 20,9 - 5639: 23,3 - 5640: 32,3 - 5641: 34,2 - 5642: 32,-2 - 5643: 32,-2 - 5644: 32,-4 - 5645: 38,-3 - 5646: 37,-4 - 5647: 37,-2 - 5648: 36,3 - 5649: 42,2 - 5650: 37,-3 - 5651: 38,-2 - 5652: 37,-2 - 5653: 42,-5 - 5654: 42,-2 - 5655: 42,-4 - 5656: 43,6 - 5657: 44,12 - 5658: 43,11 - 5659: 46,12 - 5660: 44,12 - 5661: 52,12 - 5662: 50,14 - 5663: 50,7 - 5664: 53,14 - 5665: 59,15 - 5666: 60,17 - 5667: 55,7 - 5668: 54,7 - 5669: 50,7 - 5670: 49,0 - 5671: 45,-1 - 5672: 46,-5 - 5673: 46,-8 - 5674: 50,-4 - 5675: 50,-7 - 5676: 55,-5 - 5677: 53,-5 - 5678: 58,-6 - 5679: 61,-5 - 5680: 59,-7 - 5681: 59,-7 - 5682: 60,-6 - 5683: 59,-14 - 5684: 60,-14 - 5685: 59,-14 - 5686: 59,-18 - 5687: 59,-20 - 5688: 60,-18 - 5689: 60,-17 - 5690: 64,-13 - 5691: 64,-17 - 5692: 65,-19 - 5693: 64,-19 - 5694: 64,-25 - 5695: 65,-24 - 5696: 63,-26 - 5697: 63,-24 - 5698: 62,-26 - 5699: 64,-26 - 5700: 70,-28 - 5701: 71,-26 - 5702: 69,-27 - 5703: 69,-23 - 5704: 70,-24 - 5705: 69,-22 - 5706: 66,-18 - 5707: 70,-18 - 5708: 71,-17 - 5709: 69,-13 - 5710: 71,-14 - 5711: 69,-12 - 5712: 70,-14 - 5713: 76,-17 - 5714: 77,-18 - 5715: 74,-15 - 5716: 76,-14 - 5717: 74,-14 - 5718: 68,-8 - 5719: 70,-10 - 5720: 76,-6 - 5721: 48,-25 - 5722: 48,-26 - 5723: 48,-27 - 5724: 48,-30 - 5725: 48,-31 - 5726: 47,-31 - 5727: 49,-34 - 5728: 47,-36 - 5729: 46,-36 - 5730: 44,-37 - 5731: 42,-35 - 5732: 42,-36 - 5733: 38,-36 - 5734: 38,-35 - 5735: 37,-37 - 5736: 32,-35 - 5737: 32,-36 - 5738: 32,-33 - 5739: 33,-31 - 5740: 32,-31 - 5741: 33,-27 - 5742: 32,-25 - 5743: 33,-24 - 5744: 35,-26 - 5745: 37,-26 - 5746: 41,-25 - 5747: 40,-26 - 5748: 41,-29 - 5749: 40,-29 - 5750: 40,-31 - 5751: 43,-29 - 5752: 44,-31 - 5753: 45,-30 - 5754: 27,-34 - 5755: 25,-34 - 5756: 24,-32 - 5757: 26,-29 - 5758: 23,-29 - 5759: 23,-31 - 5760: 25,-38 - 5761: 24,-37 - 5762: 22,-38 - 5763: 21,-37 - 5764: 21,-38 - 5765: 29,-39 - 5766: 28,-41 - 5767: 29,-44 - 5768: 28,-42 - 5769: 28,-45 - 5770: 26,-45 - 5771: 27,-44 - 5772: 24,-43 - 5773: 25,-46 - 5774: 27,-45 - 5775: 25,-46 - 5776: 32,-30 - 5777: 33,-28 - 5778: 36,-26 - 5779: 35,-26 - 5780: 36,-23 - 5781: 36,-30 - 5782: 42,-28 - 5783: 43,-29 - 5784: 52,-31 - 5785: 52,-35 - 5786: 55,-29 - 5787: 55,-30 - 5788: 57,-30 - 5789: 55,-34 - 5790: 55,-34 - 5791: 55,-36 - 5792: 57,-34 - 5793: 20,-45 - 5794: 17,-44 - 5795: 18,-45 - 5796: 19,-46 - 5797: 18,-48 - 5798: 19,-49 - 5799: 18,-50 - 5800: 20,-53 - 5801: 18,-54 - 5802: 17,-54 - 5803: 16,-54 - 5804: 16,-58 - 5805: 16,-59 - 5806: 19,-58 - 5807: 21,-58 - 5808: 21,-59 - 5809: 13,-47 - 5810: 14,-47 - 5811: 13,-48 - 5812: 13,-45 - 5813: 12,-45 - 5814: 9,-45 - 5815: 8,-45 - 5816: 10,-39 - 5817: 11,-39 - 5818: 0,-37 - 5819: 0,-36 - 5820: 1,-36 - 5821: 2,-38 - 5822: 0,-36 - 5823: -1,-37 - 5824: -2,-36 - 5825: -5,-36 - 5826: -4,-36 - 5827: -6,-36 - 5828: -7,-32 - 5829: -8,-32 - 5830: -7,-30 - 5831: -11,-31 - 5832: -12,-32 - 5833: -15,-32 - 5834: -16,-32 - 5835: -13,-30 - 5836: -16,-30 - 5837: -17,-30 - 5838: -22,-30 - 5839: -23,-30 - 5840: -24,-30 - 5841: -24,-29 - 5842: -24,-28 - 5843: -22,-32 - 5844: -24,-32 - 5845: -25,-32 - 5846: -26,-30 - 5847: -26,-28 - 5848: -26,-26 - 5849: -26,-24 - 5850: -24,-24 - 5851: -24,-22 - 5852: -24,-19 - 5853: -26,-21 - 5854: -26,-18 - 5855: -26,-17 - 5856: -24,-14 - 5857: -25,-15 - 5858: -27,-15 - 5859: -30,-15 - 5860: -30,-15 - 5861: -34,-15 - 5862: -35,-14 - 5863: -37,-15 - 5864: -38,-14 - 5865: -35,-15 - 5866: -34,-14 - 5867: -37,-10 - 5868: -38,-10 - 5869: -36,-9 - 5870: -29,-10 - 5871: -29,-11 - 5872: -33,-20 - 5873: -34,-20 - 5874: -33,-18 - 5875: -32,-20 - 5876: -34,-19 - 5877: -33,-18 - 5878: -29,-19 - 5879: -30,-21 - 5880: -29,-19 - 5881: -30,-20 - 5882: -37,-18 - 5883: -40,-18 - 5884: -39,-20 - 5885: -37,-19 - 5886: -39,-19 - 5887: -32,-26 - 5888: -35,-25 - 5889: -39,-26 - 5890: -39,-26 - 5891: -39,-27 - 5892: -40,-28 - 5893: -38,-30 - 5894: -39,-32 - 5895: -39,-33 - 5896: -37,-33 - 5897: -34,-33 - 5898: -31,-33 - 5899: -34,-34 - 5900: -30,-33 - 5901: -30,-31 - 5902: -31,-28 - 5903: -29,-27 - 5904: -29,-30 - 5905: -43,-30 - 5906: -44,-28 - 5907: -45,-31 - 5908: -46,-27 - 5909: -45,-25 - 5910: -45,-25 - 5911: -47,-25 - 5912: -49,-25 - 5913: -51,-26 - 5914: -50,-29 - 5915: -51,-30 - 5916: -51,-30 - 5917: -50,-32 - 5918: -47,-32 - 5919: -48,-33 - 5920: -44,-31 - 5921: -44,-29 - 5922: -55,-25 - 5923: -56,-25 - 5924: -55,-29 - 5925: -56,-29 - 5926: -55,-29 - 5927: -60,-27 - 5928: -60,-29 - 5929: -62,-27 - 5930: -61,-21 - 5931: -61,-21 - 5932: -54,-21 - 5933: -54,-21 - 5934: -55,-16 - 5935: -53,-14 - 5936: -54,-13 - 5937: -53,-10 - 5938: -54,-7 - 5939: -53,-5 - 5940: -55,-2 - 5941: -54,0 - 5942: -53,1 - 5943: -53,-4 - 5944: -54,-3 - 5945: -54,-4 - 5946: -54,-9 - 5947: -46,-4 - 5948: -47,-4 - 5949: -48,-3 - 5950: -50,0 - 5951: -45,1 - 5952: -47,1 - 5953: -44,1 - 5954: -47,1 - 5955: -46,7 - 5956: -49,7 - 5957: -49,11 - 5958: -46,11 - 5959: -49,10 - 5960: -48,13 - 5961: -45,11 - 5962: -54,10 - 5963: -54,9 - 5964: -53,10 - 5965: -39,1 - 5966: -37,0 - 5967: -39,-1 - 5968: -34,-1 - 5969: -37,-1 - 5970: -36,0 - 5971: -35,2 - 5972: -31,2 - 5973: -31,2 - 5974: -33,1 - 5975: -28,0 - 5976: -30,-1 - 5977: -27,-1 - 5978: -33,-4 - 5979: -27,-5 - 5980: -24,-3 - 5981: -24,1 - 5982: -22,3 - 5983: -23,-2 - 5984: -22,-3 - 5985: -17,-3 - 5986: -19,-3 - 5987: -17,-3 - 5988: -18,-4 - 5989: -14,-4 - 5990: -18,-4 - 5991: -17,-4 - 5992: -17,-4 - 5993: -19,-4 - 5994: -19,-2 - 5995: -19,-2 - 5996: -20,-3 - 5997: -20,-5 - 5998: -16,0 - 5999: -16,1 - 6000: -16,3 - 6001: -15,0 - 6002: -15,6 - 6003: -17,5 - 6004: -15,7 - 6005: -21,5 - 6006: -21,6 - 6007: -20,7 - 6008: -22,8 - 6009: -24,9 - 6010: -21,9 - 6011: -23,8 - 6012: -22,8 - 6013: -23,8 - 6014: -21,13 - 6015: -22,11 - 6016: -20,13 - 6017: -22,14 - 6018: -26,12 - 6019: -26,16 - 6020: -26,17 - 6021: -26,20 - 6022: -19,20 - 6023: -25,20 - 6024: -22,19 - 6025: -24,26 - 6026: -25,26 - 6027: -26,26 - 6028: -25,29 - 6029: -26,29 - 6030: -26,26 - 6031: -26,27 - 6032: -25,29 - 6033: -29,26 - 6034: -29,26 - 6035: -19,26 - 6036: -21,26 - 6037: -19,28 - 6038: -18,26 - 6039: -14,28 - 6040: -14,26 - 6041: -13,28 - 6042: -11,23 - 6043: -7,32 - 6044: -9,32 - 6045: -14,32 - 6046: -15,33 - 6047: -18,32 - 6048: -3,28 - 6049: -4,27 - 6050: -1,29 - 6051: -2,23 - 6052: -1,19 - 6053: -3,14 - 6054: -3,14 - 6055: -2,15 - 6056: -4,15 - 6057: -3,15 - 6058: 2,-14 - 6059: 2,-16 - 6060: -1,-17 - 6061: -2,-14 - 6062: -7,-17 - 6063: -6,-16 - 6064: -7,-19 - 6065: -7,-19 - 6066: -7,-23 - 6067: -1,-24 - 6068: 4,-20 - 6069: 6,-23 - 6070: 6,-20 - 6071: 7,-22 - 6072: 7,-20 - 6073: 11,-18 - 6074: 13,-18 - 6075: 13,-22 - 6076: 13,-22 - 6077: 12,-22 - 6078: 15,-26 - 6079: 12,-26 - 6080: 12,-29 - 6081: 7,-30 - 6082: 8,-32 - 6083: 7,-32 - 6084: 10,-34 - 6085: 13,-33 - 6086: 16,-32 - 6087: 21,-37 - 6088: 20,-38 - 6089: 24,-38 - 6090: 25,-37 - 6091: 28,-34 - 6092: 25,-34 - 6093: 27,-29 - 6094: 24,-29 - 6095: 33,-34 - 6096: 32,-37 - 6097: 35,-37 - 6098: 38,-36 - 6099: 40,-36 - 6100: 39,-30 - 6101: 44,-25 - 6102: 43,-25 - 6103: 42,-20 - 6104: 42,-18 - 6105: 41,-16 - 6106: 38,-16 - 6107: 37,-17 - 6108: 37,-15 - 6109: 37,-17 - 6110: 37,-16 - 6111: 37,-16 - 6112: 37,-16 - 6113: 38,-3 - 6114: 38,-4 - 6115: 33,-3 - 6116: 33,-3 - 6117: 33,-2 - 6118: 38,7 - 6119: 36,13 - 6120: 37,13 - 6121: 35,13 - 6122: 34,13 - 6123: 34,14 - 6124: 36,13 - 6125: 36,13 - 6126: 34,14 - 6127: 35,18 - 6128: 36,18 + 5471: -34,-26 + 5472: -37,-25 + 5473: -39,-28 + 5474: -40,-28 + 5475: -40,-31 + 5476: -39,-33 + 5477: -37,-33 + 5478: -32,-33 + 5479: -29,-33 + 5480: -29,-31 + 5481: -30,-28 + 5482: -29,-27 + 5483: -25,-30 + 5484: -25,-27 + 5485: -25,-26 + 5486: -25,-23 + 5487: -24,-21 + 5488: -25,-18 + 5489: -29,-20 + 5490: -29,-19 + 5491: -33,-19 + 5492: -33,-20 + 5493: -31,-14 + 5494: -29,-15 + 5495: -33,-16 + 5496: -29,-13 + 5497: -29,-11 + 5498: -38,-11 + 5499: -37,-15 + 5500: -36,-16 + 5501: -40,-10 + 5502: -38,-17 + 5503: -47,-8 + 5504: -45,0 + 5505: -47,0 + 5506: -44,2 + 5507: -48,-2 + 5508: -47,-1 + 5509: -49,3 + 5510: -50,-1 + 5511: -45,1 + 5512: -53,4 + 5513: -48,5 + 5514: -50,6 + 5515: -47,1 + 5516: -38,-1 + 5517: -36,1 + 5518: -35,-1 + 5519: -32,-1 + 5520: -33,0 + 5521: -33,-3 + 5522: -24,-2 + 5523: -28,3 + 5524: -26,3 + 5525: -26,8 + 5526: -27,13 + 5527: -26,14 + 5528: -26,18 + 5529: -33,13 + 5530: -32,15 + 5531: -32,14 + 5532: -22,13 + 5533: -20,12 + 5534: -22,13 + 5535: -24,19 + 5536: -20,20 + 5537: -18,19 + 5538: -16,20 + 5539: -13,19 + 5540: -15,24 + 5541: -14,24 + 5542: -13,27 + 5543: -14,28 + 5544: -13,27 + 5545: -5,28 + 5546: -20,28 + 5547: -18,25 + 5548: -13,31 + 5549: -15,32 + 5550: -14,34 + 5551: -17,32 + 5552: -8,32 + 5553: -8,32 + 5554: -6,33 + 5555: -6,27 + 5556: -3,28 + 5557: -1,30 + 5558: -2,33 + 5559: -2,33 + 5560: -2,36 + 5561: -2,43 + 5562: -7,42 + 5563: -5,45 + 5564: -3,47 + 5565: 0,45 + 5566: -2,47 + 5567: -1,47 + 5568: -2,51 + 5569: 1,51 + 5570: -1,52 + 5571: 1,52 + 5572: 2,45 + 5573: 2,47 + 5574: 2,42 + 5575: 1,40 + 5576: 6,41 + 5577: 8,39 + 5578: 6,41 + 5579: 5,31 + 5580: 3,31 + 5581: 5,30 + 5582: 4,30 + 5583: 3,26 + 5584: 2,27 + 5585: 4,25 + 5586: 3,23 + 5587: 2,24 + 5588: 1,23 + 5589: -2,24 + 5590: 1,21 + 5591: -1,19 + 5592: 4,20 + 5593: 9,20 + 5594: 9,20 + 5595: 15,19 + 5596: 11,24 + 5597: 14,23 + 5598: 14,25 + 5599: 15,24 + 5600: 14,29 + 5601: 14,31 + 5602: 17,25 + 5603: 17,23 + 5604: 16,20 + 5605: 20,20 + 5606: 20,18 + 5607: 20,15 + 5608: 21,15 + 5609: 20,12 + 5610: 22,12 + 5611: 20,11 + 5612: 27,12 + 5613: 27,11 + 5614: 26,14 + 5615: 25,19 + 5616: 30,19 + 5617: 31,16 + 5618: 31,12 + 5619: 35,14 + 5620: 35,14 + 5621: 35,14 + 5622: 32,8 + 5623: 34,9 + 5624: 32,7 + 5625: 26,7 + 5626: 24,7 + 5627: 24,3 + 5628: 24,2 + 5629: 23,2 + 5630: 20,6 + 5631: 20,9 + 5632: 23,3 + 5633: 32,3 + 5634: 34,2 + 5635: 32,-2 + 5636: 32,-2 + 5637: 32,-4 + 5639: 37,-4 + 5641: 36,3 + 5642: 42,2 + 5644: 38,-2 + 5646: 42,-5 + 5647: 42,-2 + 5648: 42,-4 + 5649: 43,6 + 5650: 44,12 + 5651: 43,11 + 5652: 46,12 + 5653: 44,12 + 5654: 52,12 + 5655: 50,14 + 5656: 50,7 + 5657: 53,14 + 5658: 59,15 + 5659: 60,17 + 5660: 55,7 + 5661: 54,7 + 5662: 50,7 + 5663: 49,0 + 5664: 45,-1 + 5665: 46,-5 + 5666: 46,-8 + 5667: 50,-4 + 5668: 50,-7 + 5669: 55,-5 + 5670: 53,-5 + 5671: 58,-6 + 5672: 61,-5 + 5673: 59,-7 + 5674: 59,-7 + 5675: 60,-6 + 5676: 59,-14 + 5677: 60,-14 + 5678: 59,-14 + 5679: 59,-18 + 5680: 59,-20 + 5681: 60,-18 + 5682: 60,-17 + 5683: 64,-13 + 5684: 64,-17 + 5685: 65,-19 + 5686: 64,-19 + 5687: 64,-25 + 5688: 65,-24 + 5689: 63,-26 + 5690: 63,-24 + 5691: 62,-26 + 5692: 64,-26 + 5693: 70,-28 + 5694: 71,-26 + 5695: 69,-27 + 5696: 69,-23 + 5697: 70,-24 + 5698: 69,-22 + 5699: 66,-18 + 5700: 70,-18 + 5701: 71,-17 + 5702: 69,-13 + 5703: 71,-14 + 5704: 69,-12 + 5705: 70,-14 + 5706: 76,-17 + 5707: 77,-18 + 5708: 74,-15 + 5709: 76,-14 + 5710: 74,-14 + 5711: 68,-8 + 5712: 70,-10 + 5713: 76,-6 + 5714: 48,-25 + 5715: 48,-26 + 5716: 48,-27 + 5717: 48,-30 + 5718: 48,-31 + 5719: 47,-31 + 5720: 49,-34 + 5721: 47,-36 + 5722: 46,-36 + 5723: 44,-37 + 5724: 42,-35 + 5725: 42,-36 + 5726: 38,-36 + 5727: 38,-35 + 5728: 37,-37 + 5729: 32,-35 + 5730: 32,-36 + 5731: 32,-33 + 5732: 33,-31 + 5733: 32,-31 + 5734: 33,-27 + 5735: 32,-25 + 5736: 33,-24 + 5737: 35,-26 + 5738: 37,-26 + 5739: 41,-25 + 5740: 40,-26 + 5741: 41,-29 + 5742: 40,-29 + 5743: 40,-31 + 5744: 43,-29 + 5745: 44,-31 + 5746: 45,-30 + 5747: 27,-34 + 5748: 25,-34 + 5749: 24,-32 + 5750: 26,-29 + 5751: 23,-29 + 5752: 23,-31 + 5753: 25,-38 + 5754: 24,-37 + 5755: 22,-38 + 5756: 21,-37 + 5757: 21,-38 + 5758: 29,-39 + 5759: 28,-41 + 5760: 29,-44 + 5761: 28,-42 + 5762: 28,-45 + 5763: 26,-45 + 5764: 27,-44 + 5765: 24,-43 + 5766: 25,-46 + 5767: 27,-45 + 5768: 25,-46 + 5769: 32,-30 + 5770: 33,-28 + 5771: 36,-26 + 5772: 35,-26 + 5773: 36,-23 + 5774: 36,-30 + 5775: 42,-28 + 5776: 43,-29 + 5777: 52,-31 + 5778: 52,-35 + 5779: 55,-29 + 5780: 55,-30 + 5781: 57,-30 + 5782: 55,-34 + 5783: 55,-34 + 5784: 55,-36 + 5785: 57,-34 + 5786: 20,-45 + 5787: 17,-44 + 5788: 18,-45 + 5789: 19,-46 + 5790: 18,-48 + 5791: 19,-49 + 5792: 18,-50 + 5793: 20,-53 + 5794: 18,-54 + 5795: 17,-54 + 5796: 16,-54 + 5797: 16,-58 + 5798: 16,-59 + 5799: 19,-58 + 5800: 21,-58 + 5801: 21,-59 + 5802: 13,-47 + 5803: 14,-47 + 5804: 13,-48 + 5805: 13,-45 + 5806: 12,-45 + 5807: 9,-45 + 5808: 8,-45 + 5809: 10,-39 + 5810: 11,-39 + 5811: 0,-37 + 5812: 0,-36 + 5813: 1,-36 + 5814: 2,-38 + 5815: 0,-36 + 5816: -1,-37 + 5817: -2,-36 + 5818: -5,-36 + 5819: -4,-36 + 5820: -6,-36 + 5821: -7,-32 + 5822: -8,-32 + 5823: -7,-30 + 5824: -11,-31 + 5825: -12,-32 + 5826: -15,-32 + 5827: -16,-32 + 5828: -13,-30 + 5829: -16,-30 + 5830: -17,-30 + 5831: -22,-30 + 5832: -23,-30 + 5833: -24,-30 + 5834: -24,-29 + 5835: -24,-28 + 5836: -22,-32 + 5837: -24,-32 + 5838: -25,-32 + 5839: -26,-30 + 5840: -26,-28 + 5841: -26,-26 + 5842: -26,-24 + 5843: -24,-24 + 5844: -24,-22 + 5845: -24,-19 + 5846: -26,-21 + 5847: -26,-18 + 5848: -26,-17 + 5849: -24,-14 + 5850: -25,-15 + 5851: -27,-15 + 5852: -30,-15 + 5853: -30,-15 + 5854: -34,-15 + 5855: -35,-14 + 5856: -37,-15 + 5857: -38,-14 + 5858: -35,-15 + 5859: -34,-14 + 5860: -37,-10 + 5861: -38,-10 + 5862: -36,-9 + 5863: -29,-10 + 5864: -29,-11 + 5865: -33,-20 + 5866: -34,-20 + 5867: -33,-18 + 5868: -32,-20 + 5869: -34,-19 + 5870: -33,-18 + 5871: -29,-19 + 5872: -30,-21 + 5873: -29,-19 + 5874: -30,-20 + 5875: -37,-18 + 5876: -40,-18 + 5877: -39,-20 + 5878: -37,-19 + 5879: -39,-19 + 5880: -32,-26 + 5881: -35,-25 + 5882: -39,-26 + 5883: -39,-26 + 5884: -39,-27 + 5885: -40,-28 + 5886: -38,-30 + 5887: -39,-32 + 5888: -39,-33 + 5889: -37,-33 + 5890: -34,-33 + 5891: -31,-33 + 5892: -34,-34 + 5893: -30,-33 + 5894: -30,-31 + 5895: -31,-28 + 5896: -29,-27 + 5897: -29,-30 + 5898: -43,-30 + 5899: -44,-28 + 5900: -45,-31 + 5901: -46,-27 + 5902: -45,-25 + 5903: -45,-25 + 5904: -47,-25 + 5905: -49,-25 + 5906: -51,-26 + 5907: -50,-29 + 5908: -51,-30 + 5909: -51,-30 + 5910: -50,-32 + 5911: -47,-32 + 5912: -48,-33 + 5913: -44,-31 + 5914: -44,-29 + 5915: -55,-25 + 5916: -56,-25 + 5917: -55,-29 + 5918: -56,-29 + 5919: -55,-29 + 5920: -60,-27 + 5921: -60,-29 + 5922: -62,-27 + 5923: -61,-21 + 5924: -61,-21 + 5925: -54,-21 + 5926: -54,-21 + 5927: -55,-16 + 5928: -53,-14 + 5929: -54,-13 + 5930: -53,-10 + 5931: -54,-7 + 5932: -53,-5 + 5933: -55,-2 + 5934: -54,0 + 5935: -53,1 + 5936: -53,-4 + 5937: -54,-3 + 5938: -54,-4 + 5939: -54,-9 + 5940: -46,-4 + 5941: -47,-4 + 5942: -48,-3 + 5943: -50,0 + 5944: -45,1 + 5945: -47,1 + 5946: -44,1 + 5947: -47,1 + 5948: -46,7 + 5949: -49,7 + 5950: -49,11 + 5951: -46,11 + 5952: -49,10 + 5953: -48,13 + 5954: -45,11 + 5955: -54,10 + 5956: -54,9 + 5957: -53,10 + 5958: -39,1 + 5959: -37,0 + 5960: -39,-1 + 5961: -34,-1 + 5962: -37,-1 + 5963: -36,0 + 5964: -35,2 + 5965: -31,2 + 5966: -31,2 + 5967: -33,1 + 5968: -28,0 + 5969: -30,-1 + 5970: -27,-1 + 5971: -33,-4 + 5972: -27,-5 + 5973: -24,-3 + 5974: -24,1 + 5975: -22,3 + 5976: -23,-2 + 5977: -22,-3 + 5978: -17,-3 + 5979: -19,-3 + 5980: -17,-3 + 5981: -18,-4 + 5982: -14,-4 + 5983: -18,-4 + 5984: -17,-4 + 5985: -17,-4 + 5986: -19,-4 + 5987: -19,-2 + 5988: -19,-2 + 5989: -20,-3 + 5990: -20,-5 + 5991: -16,0 + 5992: -16,1 + 5993: -16,3 + 5994: -15,0 + 5995: -15,6 + 5996: -17,5 + 5997: -15,7 + 5998: -21,5 + 5999: -21,6 + 6000: -20,7 + 6001: -22,8 + 6002: -24,9 + 6003: -21,9 + 6004: -23,8 + 6005: -22,8 + 6006: -23,8 + 6007: -21,13 + 6008: -22,11 + 6009: -20,13 + 6010: -22,14 + 6011: -26,12 + 6012: -26,16 + 6013: -26,17 + 6014: -26,20 + 6015: -19,20 + 6016: -25,20 + 6017: -22,19 + 6018: -24,26 + 6019: -25,26 + 6020: -26,26 + 6021: -25,29 + 6022: -26,29 + 6023: -26,26 + 6024: -26,27 + 6025: -25,29 + 6026: -29,26 + 6027: -29,26 + 6028: -19,26 + 6029: -21,26 + 6030: -19,28 + 6031: -18,26 + 6032: -14,28 + 6033: -14,26 + 6034: -13,28 + 6035: -11,23 + 6036: -7,32 + 6037: -9,32 + 6038: -14,32 + 6039: -15,33 + 6040: -18,32 + 6041: -3,28 + 6042: -4,27 + 6043: -1,29 + 6044: -2,23 + 6045: -1,19 + 6046: -3,14 + 6047: -3,14 + 6048: -2,15 + 6049: -4,15 + 6050: -3,15 + 6051: 2,-14 + 6052: 2,-16 + 6053: -1,-17 + 6054: -2,-14 + 6055: -7,-17 + 6056: -6,-16 + 6057: -7,-19 + 6058: -7,-19 + 6059: -7,-23 + 6060: -1,-24 + 6061: 4,-20 + 6062: 6,-23 + 6063: 6,-20 + 6064: 7,-22 + 6065: 7,-20 + 6066: 11,-18 + 6067: 13,-18 + 6068: 13,-22 + 6069: 13,-22 + 6070: 12,-22 + 6071: 15,-26 + 6072: 12,-26 + 6073: 12,-29 + 6074: 7,-30 + 6075: 8,-32 + 6076: 7,-32 + 6077: 10,-34 + 6078: 13,-33 + 6079: 16,-32 + 6080: 21,-37 + 6081: 20,-38 + 6082: 24,-38 + 6083: 25,-37 + 6084: 28,-34 + 6085: 25,-34 + 6086: 27,-29 + 6087: 24,-29 + 6088: 33,-34 + 6089: 32,-37 + 6090: 35,-37 + 6091: 38,-36 + 6092: 40,-36 + 6093: 39,-30 + 6094: 44,-25 + 6095: 43,-25 + 6096: 42,-20 + 6097: 42,-18 + 6098: 41,-16 + 6099: 38,-16 + 6100: 37,-17 + 6101: 37,-15 + 6102: 37,-17 + 6103: 37,-16 + 6104: 37,-16 + 6105: 37,-16 + 6107: 38,-4 + 6108: 33,-3 + 6109: 33,-3 + 6110: 33,-2 + 6111: 38,7 + 6112: 36,13 + 6113: 37,13 + 6114: 35,13 + 6115: 34,13 + 6116: 34,14 + 6117: 36,13 + 6118: 36,13 + 6119: 34,14 + 6120: 35,18 + 6121: 36,18 + - node: + cleanable: True + color: '#D4D4D447' + id: Dirt + decals: + 6780: 37,-3 + 6781: 37,-2 + 6782: 37,-2 + 6783: 38,-3 + 6784: 39,-2 + 6785: 39,-2 + 6786: 38,-3 + 6787: 38,-2 + 6788: 36,-3 + 6789: 36,-3 + 6790: 36,-2 + 6791: 36,-2 + 6792: 39,-3 + 6793: 37,-3 + 6794: 37,-3 - node: cleanable: True color: '#FFFFFF47' id: Dirt decals: - 6691: 15,-30 - 6692: 15,-30 - 6693: 16,-27 - 6694: 16,-27 + 6684: 15,-30 + 6685: 15,-30 + 6686: 16,-27 + 6687: 16,-27 - node: cleanable: True color: '#FFFFFFFF' id: Dirt decals: - 6140: 51,20 - 6141: 50,21 - 6198: 81,-34 - 6199: 83,-35 - 6200: 81,-34 - 6201: 81,-34 - 6202: 83,-35 - 6203: 81,-35 - 6204: 82,-35 - 6205: 82,-35 - 6206: 80,-35 - 6207: 83,-36 - 6212: 82,-34 - 6769: -25,-42 + 6133: 51,20 + 6134: 50,21 + 6191: 81,-34 + 6192: 83,-35 + 6193: 81,-34 + 6194: 81,-34 + 6195: 83,-35 + 6196: 81,-35 + 6197: 82,-35 + 6198: 82,-35 + 6199: 80,-35 + 6200: 83,-36 + 6205: 82,-34 + 6761: -25,-42 - node: cleanable: True angle: 1.5707963267948966 rad color: '#FFFFFFFF' id: Dirt decals: - 3024: -44,16 - 3025: -43,17 - 3026: -41,14 + 3021: -44,16 + 3022: -43,17 + 3023: -41,14 - node: cleanable: True color: '#1D1D21FF' id: DirtHeavy decals: - 2949: -39,26 - 2950: -40,29 - 2951: -38,28 - 2952: -36,29 - 2953: -35,27 - 2954: -35,26 - 2955: -35,26 - 2956: -37,26 - 2957: -37,26 - 2958: -37,25 - 2959: -39,26 - 2960: -34,25 - 2961: -34,25 - 2962: -36,24 + 2946: -39,26 + 2947: -40,29 + 2948: -38,28 + 2949: -36,29 + 2950: -35,27 + 2951: -35,26 + 2952: -35,26 + 2953: -37,26 + 2954: -37,26 + 2955: -37,25 + 2956: -39,26 + 2957: -34,25 + 2958: -34,25 + 2959: -36,24 - node: cleanable: True color: '#835432FF' id: DirtHeavy decals: - 2941: -36,26 - 2942: -35,27 - 2943: -37,26 - 2944: -37,27 - 2945: -37,25 - 2946: -39,26 - 2947: -38,27 - 2948: -38,28 + 2938: -36,26 + 2939: -35,27 + 2940: -37,26 + 2941: -37,27 + 2942: -37,25 + 2943: -39,26 + 2944: -38,27 + 2945: -38,28 - node: cleanable: True angle: -6.283185307179586 rad color: '#FFFFFFFF' id: DirtHeavy decals: - 6656: 89,-20 - 6657: 87,-21 - 6658: 92,-21 + 6649: 89,-20 + 6650: 87,-21 + 6651: 92,-21 - node: cleanable: True color: '#FFFFFFFF' id: DirtHeavy decals: - 2969: -8,-40 - 2970: -7,-39 - 2971: -5,-40 - 2972: -6,-42 - 2973: -4,-39 - 2974: -6,-40 - 2975: -6,-40 - 2976: -7,-40 - 2977: -7,-39 - 2978: -7,-39 - 2979: -8,-39 - 3662: -60,-66 - 3663: -59,-65 - 3664: -59,-63 - 3665: -59,-61 - 3666: -59,-59 - 3667: -59,-57 - 3668: -60,-57 - 3669: -57,-57 - 3670: -58,-58 - 3671: -56,-57 - 3672: -56,-58 - 3673: -56,-60 - 3674: -56,-62 - 3675: -56,-64 - 3676: -56,-66 - 3677: -58,-66 - 3678: -55,-56 - 3679: -54,-54 - 3680: -54,-52 - 3681: -54,-50 - 3682: -56,-53 - 3683: -56,-52 - 3684: -56,-47 - 3685: -53,-48 - 3686: -52,-46 - 3687: -54,-46 - 3688: -51,-46 - 3689: -50,-48 - 3690: -47,-48 - 3691: -45,-48 - 3692: -43,-46 - 3693: -45,-46 - 3694: -43,-48 - 3695: -42,-48 - 3696: -40,-48 - 3697: -40,-50 - 3698: -40,-52 - 3699: -40,-54 - 3700: -42,-51 - 3701: -42,-53 - 3702: -42,-54 - 3703: -41,-56 - 3704: -39,-57 - 3705: -40,-58 - 3706: -37,-57 - 3707: -37,-58 - 3708: -37,-61 - 3709: -37,-64 - 3710: -37,-65 - 3711: -36,-65 - 3712: -36,-66 - 3713: -39,-66 - 3714: -40,-65 - 3715: -40,-63 - 3716: -40,-60 - 3717: -47,-44 - 3718: -47,-42 - 3719: -47,-39 - 3720: -47,-35 - 3721: -47,-33 - 3722: -49,-33 - 3723: -49,-37 - 3724: -49,-39 - 3725: -49,-41 - 3726: -49,-44 - 3727: -49,-44 - 3728: -49,-43 - 3729: -44,-32 - 3730: -44,-30 - 3731: -43,-31 - 3732: -43,-27 - 3733: -44,-26 - 3734: -43,-26 - 3735: -44,-25 - 3736: -52,-32 - 3737: -52,-30 - 3738: -52,-29 - 3739: -52,-25 - 3740: -52,-22 - 3741: -54,-22 - 3742: -55,-22 - 3743: -52,-20 - 3744: -50,-20 - 3745: -47,-20 - 3746: -46,-20 - 3747: -45,-20 - 3748: -44,-20 - 3749: -44,-22 - 3750: -51,-18 - 3751: -51,-17 - 3752: -49,-17 - 3753: -48,-15 - 3754: -48,-13 - 3755: -50,-13 - 3756: -51,-14 - 3757: -51,-15 - 3758: -44,-15 - 3759: -46,-15 - 3760: -46,-14 - 3761: -54,-24 - 3762: -56,-24 - 3763: -54,-30 - 3764: -56,-29 - 3765: -57,-28 - 3766: -54,-28 - 3767: -61,-29 - 3768: -59,-29 - 3769: -59,-27 - 3770: -59,-25 - 3771: -61,-25 - 3772: -55,-17 - 3773: -55,-15 - 3774: -55,-13 - 3775: -55,-10 - 3776: -53,-17 - 3777: -53,-14 - 3778: -53,-12 - 3779: -53,-11 - 3780: -53,-9 - 3781: -53,-7 - 3782: -53,-6 - 3783: -53,-4 - 3784: -55,-3 - 3785: -55,-7 - 3786: -55,-8 - 3787: -53,0 - 3788: -53,-2 - 3789: -51,-4 - 3790: -49,-4 - 3791: -50,-5 - 3792: -48,-5 - 3801: -53,2 - 3802: -53,4 - 3803: -53,6 - 3804: -53,7 - 3805: -55,7 - 3806: -55,5 - 3807: -55,-1 - 3808: -51,6 - 3809: -50,7 - 3810: -47,7 - 3811: -48,6 - 3812: -46,6 - 3813: -45,7 - 3814: -47,9 - 3815: -45,9 - 3816: -44,9 - 3817: -50,9 - 3818: -50,9 - 3819: -51,11 - 3820: -51,13 - 3821: -50,13 - 3822: -48,13 - 3823: -46,13 - 3824: -48,12 - 3825: -43,11 - 3826: -44,12 - 3827: -43,13 - 3828: -43,12 - 3829: -54,10 - 3830: -53,9 - 3831: -54,9 - 3854: -43,1 - 3855: -40,2 - 3856: -39,1 - 3857: -39,1 - 3858: -40,-1 - 3859: -38,-1 - 3860: -40,-2 - 3861: -39,-2 - 3862: -40,-4 - 3863: -39,-5 - 3864: -38,-5 - 3865: -37,-5 - 3866: -36,-5 - 3867: -38,-4 - 3868: -36,-3 - 3869: -36,-2 - 3870: -36,-4 - 3871: -34,-3 - 3872: -32,-4 - 3873: -34,-1 - 3874: -32,0 - 3875: -35,0 - 3876: -39,3 - 3877: -40,4 - 3878: -38,4 - 3879: -33,1 - 3880: -31,2 - 3881: -31,-1 - 3882: -29,0 - 3883: -32,-2 - 3884: -31,-3 - 3885: -33,-4 - 3886: -32,-5 - 3887: -31,-4 - 3888: -30,-3 - 3889: -28,-3 - 3890: -28,-4 - 3891: -26,-5 - 3892: -27,-2 - 3893: -27,-3 - 3894: -29,0 - 3895: -27,0 - 3896: -27,2 - 3897: -28,3 - 3898: -27,3 - 3899: -27,1 - 3900: -26,-1 - 3901: -32,-1 - 3902: -28,4 - 3903: -26,5 - 3904: -26,6 - 3905: -26,3 - 3906: -26,3 - 3907: -24,2 - 3908: -23,1 - 3909: -25,0 - 3910: -23,-2 - 3911: -25,-3 - 3912: -23,-3 - 3913: -25,-4 - 3914: -23,-5 - 3915: -25,-5 - 3916: -24,-1 - 3917: -25,-1 - 3918: -23,3 - 3919: -15,-1 - 3920: -16,-1 - 3921: -15,0 - 3922: -16,1 - 3923: -16,3 - 3924: -15,3 - 3925: -15,2 - 3926: -15,1 - 3927: -15,1 - 3928: -27,6 - 3929: -27,7 - 3930: -27,9 - 3931: -20,5 - 3932: -21,5 - 3937: -17,5 - 3938: -16,5 - 3939: -16,5 - 3940: -22,11 - 3941: -21,11 - 3942: -22,13 - 3943: -20,14 - 3944: -22,13 - 3945: -22,15 - 3946: -20,14 - 3947: -20,13 - 3948: -20,12 - 3949: -19,11 - 3950: -22,14 - 3951: -23,14 - 3952: -17,11 - 3953: -17,11 - 3954: -17,12 - 3955: -16,11 + 2966: -8,-40 + 2967: -7,-39 + 2968: -5,-40 + 2969: -6,-42 + 2970: -4,-39 + 2971: -6,-40 + 2972: -6,-40 + 2973: -7,-40 + 2974: -7,-39 + 2975: -7,-39 + 2976: -8,-39 + 3658: -60,-66 + 3659: -59,-65 + 3660: -59,-63 + 3661: -59,-61 + 3662: -59,-59 + 3663: -59,-57 + 3664: -60,-57 + 3665: -57,-57 + 3666: -58,-58 + 3667: -56,-57 + 3668: -56,-58 + 3669: -56,-60 + 3670: -56,-62 + 3671: -56,-64 + 3672: -56,-66 + 3673: -58,-66 + 3674: -55,-56 + 3675: -54,-54 + 3676: -54,-52 + 3677: -54,-50 + 3678: -56,-53 + 3679: -56,-52 + 3680: -56,-47 + 3681: -53,-48 + 3682: -52,-46 + 3683: -54,-46 + 3684: -51,-46 + 3685: -50,-48 + 3686: -47,-48 + 3687: -45,-48 + 3688: -43,-46 + 3689: -45,-46 + 3690: -43,-48 + 3691: -42,-48 + 3692: -40,-48 + 3693: -40,-50 + 3694: -40,-52 + 3695: -40,-54 + 3696: -42,-51 + 3697: -42,-53 + 3698: -42,-54 + 3699: -41,-56 + 3700: -39,-57 + 3701: -40,-58 + 3702: -37,-57 + 3703: -37,-58 + 3704: -37,-61 + 3705: -37,-64 + 3706: -37,-65 + 3707: -36,-65 + 3708: -36,-66 + 3709: -39,-66 + 3710: -40,-65 + 3711: -40,-63 + 3712: -40,-60 + 3713: -47,-44 + 3714: -47,-42 + 3715: -47,-39 + 3716: -47,-35 + 3717: -47,-33 + 3718: -49,-33 + 3719: -49,-37 + 3720: -49,-39 + 3721: -49,-41 + 3722: -49,-44 + 3723: -49,-44 + 3724: -49,-43 + 3725: -44,-32 + 3726: -44,-30 + 3727: -43,-31 + 3728: -43,-27 + 3729: -44,-26 + 3730: -43,-26 + 3731: -44,-25 + 3732: -52,-32 + 3733: -52,-30 + 3734: -52,-29 + 3735: -52,-25 + 3736: -52,-22 + 3737: -54,-22 + 3738: -55,-22 + 3739: -52,-20 + 3740: -50,-20 + 3741: -47,-20 + 3742: -46,-20 + 3743: -45,-20 + 3744: -44,-20 + 3745: -44,-22 + 3746: -51,-18 + 3747: -51,-17 + 3748: -49,-17 + 3749: -48,-15 + 3750: -48,-13 + 3751: -50,-13 + 3752: -51,-14 + 3753: -51,-15 + 3754: -44,-15 + 3755: -46,-15 + 3756: -46,-14 + 3757: -54,-24 + 3758: -56,-24 + 3759: -54,-30 + 3760: -56,-29 + 3761: -57,-28 + 3762: -54,-28 + 3763: -61,-29 + 3764: -59,-29 + 3765: -59,-27 + 3766: -59,-25 + 3767: -61,-25 + 3768: -55,-17 + 3769: -55,-15 + 3770: -55,-13 + 3771: -55,-10 + 3772: -53,-17 + 3773: -53,-14 + 3774: -53,-12 + 3775: -53,-11 + 3776: -53,-9 + 3777: -53,-7 + 3778: -53,-6 + 3779: -53,-4 + 3780: -55,-3 + 3781: -55,-7 + 3782: -55,-8 + 3783: -53,0 + 3784: -53,-2 + 3785: -51,-4 + 3786: -49,-4 + 3787: -50,-5 + 3788: -48,-5 + 3797: -53,2 + 3798: -53,4 + 3799: -53,6 + 3800: -53,7 + 3801: -55,7 + 3802: -55,5 + 3803: -55,-1 + 3804: -51,6 + 3805: -50,7 + 3806: -47,7 + 3807: -48,6 + 3808: -46,6 + 3809: -45,7 + 3810: -47,9 + 3811: -45,9 + 3812: -44,9 + 3813: -50,9 + 3814: -50,9 + 3815: -51,11 + 3816: -51,13 + 3817: -50,13 + 3818: -48,13 + 3819: -46,13 + 3820: -48,12 + 3821: -43,11 + 3822: -44,12 + 3823: -43,13 + 3824: -43,12 + 3825: -54,10 + 3826: -53,9 + 3827: -54,9 + 3850: -43,1 + 3851: -40,2 + 3852: -39,1 + 3853: -39,1 + 3854: -40,-1 + 3855: -38,-1 + 3856: -40,-2 + 3857: -39,-2 + 3858: -40,-4 + 3859: -39,-5 + 3860: -38,-5 + 3861: -37,-5 + 3862: -36,-5 + 3863: -38,-4 + 3864: -36,-3 + 3865: -36,-2 + 3866: -36,-4 + 3867: -34,-3 + 3868: -32,-4 + 3869: -34,-1 + 3870: -32,0 + 3871: -35,0 + 3872: -39,3 + 3873: -40,4 + 3874: -38,4 + 3875: -33,1 + 3876: -31,2 + 3877: -31,-1 + 3878: -29,0 + 3879: -32,-2 + 3880: -31,-3 + 3881: -33,-4 + 3882: -32,-5 + 3883: -31,-4 + 3884: -30,-3 + 3885: -28,-3 + 3886: -28,-4 + 3887: -26,-5 + 3888: -27,-2 + 3889: -27,-3 + 3890: -29,0 + 3891: -27,0 + 3892: -27,2 + 3893: -28,3 + 3894: -27,3 + 3895: -27,1 + 3896: -26,-1 + 3897: -32,-1 + 3898: -28,4 + 3899: -26,5 + 3900: -26,6 + 3901: -26,3 + 3902: -26,3 + 3903: -24,2 + 3904: -23,1 + 3905: -25,0 + 3906: -23,-2 + 3907: -25,-3 + 3908: -23,-3 + 3909: -25,-4 + 3910: -23,-5 + 3911: -25,-5 + 3912: -24,-1 + 3913: -25,-1 + 3914: -23,3 + 3915: -15,-1 + 3916: -16,-1 + 3917: -15,0 + 3918: -16,1 + 3919: -16,3 + 3920: -15,3 + 3921: -15,2 + 3922: -15,1 + 3923: -15,1 + 3924: -27,6 + 3925: -27,7 + 3926: -27,9 + 3927: -20,5 + 3928: -21,5 + 3933: -17,5 + 3934: -16,5 + 3935: -16,5 + 3936: -22,11 + 3937: -21,11 + 3938: -22,13 + 3939: -20,14 + 3940: -22,13 + 3941: -22,15 + 3942: -20,14 + 3943: -20,13 + 3944: -20,12 + 3945: -19,11 + 3946: -22,14 + 3947: -23,14 + 3948: -17,11 + 3949: -17,11 + 3950: -17,12 + 3951: -16,11 + 3952: -16,12 + 3953: -17,13 + 3954: -16,14 + 3955: -17,14 3956: -16,12 - 3957: -17,13 - 3958: -16,14 - 3959: -17,14 - 3960: -16,12 - 3961: -17,12 - 3962: -17,11 - 3965: -34,12 - 3966: -35,12 - 3967: -34,14 - 3968: -35,15 - 3969: -34,16 - 3970: -34,17 + 3957: -17,12 + 3958: -17,11 + 3961: -34,12 + 3962: -35,12 + 3963: -34,14 + 3964: -35,15 + 3965: -34,16 + 3966: -34,17 + 3967: -33,16 + 3968: -32,15 + 3969: -31,17 + 3970: -32,17 3971: -33,16 - 3972: -32,15 - 3973: -31,17 - 3974: -32,17 - 3975: -33,16 - 3976: -34,15 - 3977: -34,15 - 3978: -37,14 - 3979: -38,14 - 3980: -39,14 - 3981: -39,12 - 3982: -39,11 - 3983: -38,11 - 3984: -38,11 - 3985: -27,11 - 3986: -27,13 - 3987: -27,16 - 3988: -27,17 - 3989: -27,19 - 3990: -27,20 - 3991: -27,21 - 3992: -25,18 - 3993: -25,16 - 3994: -25,14 - 3995: -25,12 - 3996: -25,11 - 3997: -24,18 - 3998: -22,18 - 3999: -23,17 - 4000: -21,17 - 4001: -20,18 - 4002: -19,17 - 4003: -20,20 - 4004: -22,20 - 4005: -24,20 - 4006: -20,21 - 4007: -17,19 - 4008: -16,19 - 4009: -14,19 - 4010: -17,21 - 4011: -15,21 - 4012: -13,21 - 4013: -11,21 - 4014: -13,19 - 4015: -10,19 - 4016: -8,19 - 4017: -6,19 - 4018: -9,21 - 4019: -7,21 - 4020: -5,21 - 4021: -3,21 + 3972: -34,15 + 3973: -34,15 + 3974: -37,14 + 3975: -38,14 + 3976: -39,14 + 3977: -39,12 + 3978: -39,11 + 3979: -38,11 + 3980: -38,11 + 3981: -27,11 + 3982: -27,13 + 3983: -27,16 + 3984: -27,17 + 3985: -27,19 + 3986: -27,20 + 3987: -27,21 + 3988: -25,18 + 3989: -25,16 + 3990: -25,14 + 3991: -25,12 + 3992: -25,11 + 3993: -24,18 + 3994: -22,18 + 3995: -23,17 + 3996: -21,17 + 3997: -20,18 + 3998: -19,17 + 3999: -20,20 + 4000: -22,20 + 4001: -24,20 + 4002: -20,21 + 4003: -17,19 + 4004: -16,19 + 4005: -14,19 + 4006: -17,21 + 4007: -15,21 + 4008: -13,21 + 4009: -11,21 + 4010: -13,19 + 4011: -10,19 + 4012: -8,19 + 4013: -6,19 + 4014: -9,21 + 4015: -7,21 + 4016: -5,21 + 4017: -3,21 + 4018: 0,21 + 4019: -5,19 + 4020: -2,19 + 4021: 0,19 4022: 0,21 - 4023: -5,19 - 4024: -2,19 - 4025: 0,19 - 4026: 0,21 - 4027: 2,21 - 4028: 5,21 - 4029: 6,21 - 4030: 2,19 - 4031: 4,19 - 4032: 7,19 - 4033: 10,19 - 4034: 8,21 - 4035: 10,21 - 4036: 11,21 - 4037: 13,21 - 4038: 12,19 - 4039: 14,19 - 4040: 15,19 - 4041: 17,19 - 4042: 15,23 - 4043: 14,23 - 4044: 13,24 - 4045: 15,25 - 4046: 15,24 - 4047: 11,23 - 4048: 10,23 - 4049: 11,24 - 4050: 17,23 - 4051: 17,25 - 4052: 17,25 - 4053: 16,23 - 4054: 18,19 - 4055: 19,19 - 4056: 19,21 - 4057: 17,21 - 4058: 16,21 - 4059: 21,20 - 4060: 21,18 - 4061: 21,17 - 4062: 19,18 - 4063: 19,15 - 4064: 19,12 - 4065: 19,11 - 4066: 21,16 - 4067: 21,13 - 4068: 21,12 - 4069: 21,10 - 4070: 21,8 - 4071: 21,7 - 4072: 19,9 - 4073: 19,7 - 4074: 19,6 - 4075: 23,10 - 4076: 24,10 - 4077: 26,10 - 4078: 27,10 - 4079: 28,7 - 4080: 27,8 - 4081: 27,6 - 4082: 28,6 - 4083: 30,6 - 4084: 30,8 - 4085: 30,9 - 4086: 30,10 - 4087: 33,10 - 4088: 34,10 - 4089: 31,12 - 4090: 31,13 - 4091: 30,14 - 4092: 31,17 - 4093: 30,17 - 4094: 31,19 - 4095: 31,20 - 4096: 31,22 - 4097: 30,22 - 4098: 28,22 - 4099: 29,23 - 4100: 26,22 - 4101: 24,22 - 4102: 23,22 - 4103: 23,23 - 4104: 23,20 - 4105: 23,18 - 4106: 25,18 - 4107: 25,17 - 4108: 26,18 - 4109: 27,17 - 4110: 26,19 - 4111: 27,20 - 4112: 29,18 - 4113: 27,18 - 4114: 30,17 - 4115: 33,22 - 4116: 35,22 - 4117: 33,19 - 4118: 33,18 - 4119: 35,18 - 4120: 36,17 - 4121: 34,17 - 4122: 35,17 - 4123: 33,13 - 4124: 33,15 - 4125: 33,15 - 4126: 32,13 - 4127: 26,7 - 4128: 23,2 - 4129: 26,2 - 4130: 20,2 - 4131: 21,2 - 4132: 19,4 - 4138: 31,2 - 4139: 33,2 - 4140: 33,4 - 4141: 32,4 - 4142: 35,4 - 4143: 37,4 - 4144: 37,2 - 4145: 40,2 - 4146: 41,2 - 4147: 41,1 - 4148: 38,2 - 4149: 37,-2 - 4150: 38,-3 - 4151: 39,-2 - 4152: 39,-4 - 4153: 37,-4 - 4154: 39,-5 - 4155: 33,-1 - 4156: 31,-1 - 4157: 31,0 - 4158: 33,0 - 4159: 32,1 - 4160: 38,7 - 4161: 46,11 - 4162: 47,13 - 4163: 44,11 - 4164: 44,13 - 4165: 42,12 - 4166: 42,11 - 4167: 44,12 - 4168: 54,14 - 4169: 58,14 - 4170: 59,14 - 4171: 60,14 - 4172: 58,16 - 4173: 55,10 - 4174: 55,12 - 4175: 54,12 - 4176: 54,6 - 4177: 59,3 - 4178: 60,4 - 4179: 59,0 - 4180: 55,-5 - 4181: 56,-4 - 4182: 57,-5 - 4183: 58,-7 - 4184: 59,-8 - 4185: 60,-7 - 4186: 62,-8 - 4187: 62,-7 - 4188: 41,-1 - 4189: 41,-3 - 4190: 41,-5 - 4191: 41,-7 - 4192: 41,-10 - 4193: 41,-11 - 4194: 43,-12 - 4195: 43,-14 - 4196: 43,-16 - 4197: 43,-17 - 4198: 41,-15 - 4199: 41,-16 - 4200: 41,-17 - 4201: 41,-19 - 4202: 40,-19 - 4203: 40,-21 - 4204: 42,-21 - 4205: 43,-21 - 4206: 45,-21 - 4211: 45,-19 - 4212: 47,-19 - 4213: 48,-19 - 4214: 51,-19 - 4215: 47,-21 - 4216: 49,-21 - 4217: 47,-22 - 4218: 51,-21 - 4219: 52,-21 - 4220: 52,-23 - 4221: 53,-24 - 4222: 56,-24 - 4223: 57,-24 - 4224: 58,-24 - 4225: 58,-23 - 4226: 59,-21 - 4227: 60,-21 - 4228: 61,-20 - 4229: 59,-19 - 4230: 61,-19 - 4231: 60,-17 - 4232: 60,-17 - 4233: 58,-18 - 4234: 58,-19 - 4235: 56,-19 - 4236: 55,-19 - 4237: 53,-19 - 4238: 60,-15 - 4239: 58,-15 - 4240: 59,-14 - 4241: 57,-13 - 4242: 57,-12 - 4243: 60,-13 - 4244: 60,-12 - 4245: 60,-14 - 4246: 61,-13 - 4247: 63,-13 - 4248: 64,-12 - 4249: 65,-14 - 4250: 63,-14 - 4251: 63,-16 - 4252: 65,-16 - 4253: 65,-18 - 4254: 65,-20 - 4255: 63,-18 - 4256: 63,-20 - 4257: 63,-21 - 4258: 65,-21 - 4259: 62,-23 - 4260: 61,-24 - 4261: 64,-24 - 4262: 63,-25 - 4263: 64,-26 - 4264: 65,-27 - 4265: 66,-26 - 4266: 65,-24 - 4267: 65,-23 - 4268: 65,-23 - 4272: 68,-21 - 4273: 69,-21 - 4274: 69,-23 - 4275: 69,-24 - 4277: 69,-27 - 4278: 70,-26 - 4279: 70,-26 - 4280: 71,-27 - 4281: 71,-28 - 4282: 70,-28 - 4283: 68,-28 - 4284: 69,-29 - 4285: 70,-30 - 4286: 69,-30 - 4287: 70,-29 - 4288: 70,-29 - 4289: 70,-29 - 4290: 71,-30 - 4291: 71,-17 - 4292: 68,-17 - 4293: 67,-19 - 4294: 70,-17 - 4295: 70,-19 - 4296: 71,-18 - 4297: 68,-18 - 4298: 69,-19 - 4318: 69,-9 - 4319: 68,-9 - 4320: 67,-9 - 4321: 70,-10 - 4322: 77,-18 - 4323: 75,-18 - 4324: 76,-19 - 4325: 77,-18 - 4326: 76,-17 - 4327: 76,-15 - 4328: 75,-15 - 4329: 76,-13 - 4330: 77,-14 - 4331: 74,-14 - 4332: 74,-16 - 4333: 73,-14 - 4334: 74,-17 - 4335: 74,-18 - 4336: 72,-17 - 4337: 73,-19 - 4338: 73,-17 - 4339: 74,-16 - 4340: 73,-15 - 4341: 74,-16 - 4342: 74,-15 - 4343: 76,-18 - 4344: 79,-14 - 4345: 80,-13 - 4346: 81,-14 - 4347: 79,-14 - 4348: 80,-15 - 4349: 81,-13 - 4350: 80,-19 - 4351: 79,-18 - 4352: 80,-18 - 4353: 80,-19 - 4354: 79,-19 - 4355: 80,-19 - 4356: 81,-19 - 4357: 80,-17 - 4358: 80,-18 - 4359: 79,-19 - 4360: 50,-13 - 4361: 51,-14 - 4362: 50,-13 - 4363: 51,-13 - 4364: 50,-14 - 4365: 50,-14 - 4366: 48,-13 - 4367: 48,-14 - 4368: 48,-13 + 4023: 2,21 + 4024: 5,21 + 4025: 6,21 + 4026: 2,19 + 4027: 4,19 + 4028: 7,19 + 4029: 10,19 + 4030: 8,21 + 4031: 10,21 + 4032: 11,21 + 4033: 13,21 + 4034: 12,19 + 4035: 14,19 + 4036: 15,19 + 4037: 17,19 + 4038: 15,23 + 4039: 14,23 + 4040: 13,24 + 4041: 15,25 + 4042: 15,24 + 4043: 11,23 + 4044: 10,23 + 4045: 11,24 + 4046: 17,23 + 4047: 17,25 + 4048: 17,25 + 4049: 16,23 + 4050: 18,19 + 4051: 19,19 + 4052: 19,21 + 4053: 17,21 + 4054: 16,21 + 4055: 21,20 + 4056: 21,18 + 4057: 21,17 + 4058: 19,18 + 4059: 19,15 + 4060: 19,12 + 4061: 19,11 + 4062: 21,16 + 4063: 21,13 + 4064: 21,12 + 4065: 21,10 + 4066: 21,8 + 4067: 21,7 + 4068: 19,9 + 4069: 19,7 + 4070: 19,6 + 4071: 23,10 + 4072: 24,10 + 4073: 26,10 + 4074: 27,10 + 4075: 28,7 + 4076: 27,8 + 4077: 27,6 + 4078: 28,6 + 4079: 30,6 + 4080: 30,8 + 4081: 30,9 + 4082: 30,10 + 4083: 33,10 + 4084: 34,10 + 4085: 31,12 + 4086: 31,13 + 4087: 30,14 + 4088: 31,17 + 4089: 30,17 + 4090: 31,19 + 4091: 31,20 + 4092: 31,22 + 4093: 30,22 + 4094: 28,22 + 4095: 29,23 + 4096: 26,22 + 4097: 24,22 + 4098: 23,22 + 4099: 23,23 + 4100: 23,20 + 4101: 23,18 + 4102: 25,18 + 4103: 25,17 + 4104: 26,18 + 4105: 27,17 + 4106: 26,19 + 4107: 27,20 + 4108: 29,18 + 4109: 27,18 + 4110: 30,17 + 4111: 33,22 + 4112: 35,22 + 4113: 33,19 + 4114: 33,18 + 4115: 35,18 + 4116: 36,17 + 4117: 34,17 + 4118: 35,17 + 4119: 33,13 + 4120: 33,15 + 4121: 33,15 + 4122: 32,13 + 4123: 26,7 + 4124: 23,2 + 4125: 26,2 + 4126: 20,2 + 4127: 21,2 + 4128: 19,4 + 4134: 31,2 + 4135: 33,2 + 4136: 33,4 + 4137: 32,4 + 4138: 35,4 + 4139: 37,4 + 4140: 37,2 + 4141: 40,2 + 4142: 41,2 + 4143: 41,1 + 4144: 38,2 + 4148: 39,-4 + 4149: 37,-4 + 4150: 39,-5 + 4151: 33,-1 + 4152: 31,-1 + 4153: 31,0 + 4154: 33,0 + 4155: 32,1 + 4156: 38,7 + 4157: 46,11 + 4158: 47,13 + 4159: 44,11 + 4160: 44,13 + 4161: 42,12 + 4162: 42,11 + 4163: 44,12 + 4164: 54,14 + 4165: 58,14 + 4166: 59,14 + 4167: 60,14 + 4168: 58,16 + 4169: 55,10 + 4170: 55,12 + 4171: 54,12 + 4172: 54,6 + 4173: 59,3 + 4174: 60,4 + 4175: 59,0 + 4176: 55,-5 + 4177: 56,-4 + 4178: 57,-5 + 4179: 58,-7 + 4180: 59,-8 + 4181: 60,-7 + 4182: 62,-8 + 4183: 62,-7 + 4184: 41,-1 + 4185: 41,-3 + 4186: 41,-5 + 4187: 41,-7 + 4188: 41,-10 + 4189: 41,-11 + 4190: 43,-12 + 4191: 43,-14 + 4192: 43,-16 + 4193: 43,-17 + 4194: 41,-15 + 4195: 41,-16 + 4196: 41,-17 + 4197: 41,-19 + 4198: 40,-19 + 4199: 40,-21 + 4200: 42,-21 + 4201: 43,-21 + 4202: 45,-21 + 4207: 45,-19 + 4208: 47,-19 + 4209: 48,-19 + 4210: 51,-19 + 4211: 47,-21 + 4212: 49,-21 + 4213: 47,-22 + 4214: 51,-21 + 4215: 52,-21 + 4216: 52,-23 + 4217: 53,-24 + 4218: 56,-24 + 4219: 57,-24 + 4220: 58,-24 + 4221: 58,-23 + 4222: 59,-21 + 4223: 60,-21 + 4224: 61,-20 + 4225: 59,-19 + 4226: 61,-19 + 4227: 60,-17 + 4228: 60,-17 + 4229: 58,-18 + 4230: 58,-19 + 4231: 56,-19 + 4232: 55,-19 + 4233: 53,-19 + 4234: 60,-15 + 4235: 58,-15 + 4236: 59,-14 + 4237: 57,-13 + 4238: 57,-12 + 4239: 60,-13 + 4240: 60,-12 + 4241: 60,-14 + 4242: 61,-13 + 4243: 63,-13 + 4244: 64,-12 + 4245: 65,-14 + 4246: 63,-14 + 4247: 63,-16 + 4248: 65,-16 + 4249: 65,-18 + 4250: 65,-20 + 4251: 63,-18 + 4252: 63,-20 + 4253: 63,-21 + 4254: 65,-21 + 4255: 62,-23 + 4256: 61,-24 + 4257: 64,-24 + 4258: 63,-25 + 4259: 64,-26 + 4260: 65,-27 + 4261: 66,-26 + 4262: 65,-24 + 4263: 65,-23 + 4264: 65,-23 + 4268: 68,-21 + 4269: 69,-21 + 4270: 69,-23 + 4271: 69,-24 + 4273: 69,-27 + 4274: 70,-26 + 4275: 70,-26 + 4276: 71,-27 + 4277: 71,-28 + 4278: 70,-28 + 4279: 68,-28 + 4280: 69,-29 + 4281: 70,-30 + 4282: 69,-30 + 4283: 70,-29 + 4284: 70,-29 + 4285: 70,-29 + 4286: 71,-30 + 4287: 71,-17 + 4288: 68,-17 + 4289: 67,-19 + 4290: 70,-17 + 4291: 70,-19 + 4292: 71,-18 + 4293: 68,-18 + 4294: 69,-19 + 4314: 69,-9 + 4315: 68,-9 + 4316: 67,-9 + 4317: 70,-10 + 4318: 77,-18 + 4319: 75,-18 + 4320: 76,-19 + 4321: 77,-18 + 4322: 76,-17 + 4323: 76,-15 + 4324: 75,-15 + 4325: 76,-13 + 4326: 77,-14 + 4327: 74,-14 + 4328: 74,-16 + 4329: 73,-14 + 4330: 74,-17 + 4331: 74,-18 + 4332: 72,-17 + 4333: 73,-19 + 4334: 73,-17 + 4335: 74,-16 + 4336: 73,-15 + 4337: 74,-16 + 4338: 74,-15 + 4339: 76,-18 + 4340: 79,-14 + 4341: 80,-13 + 4342: 81,-14 + 4343: 79,-14 + 4344: 80,-15 + 4345: 81,-13 + 4346: 80,-19 + 4347: 79,-18 + 4348: 80,-18 + 4349: 80,-19 + 4350: 79,-19 + 4351: 80,-19 + 4352: 81,-19 + 4353: 80,-17 + 4354: 80,-18 + 4355: 79,-19 + 4356: 50,-13 + 4357: 51,-14 + 4358: 50,-13 + 4359: 51,-13 + 4360: 50,-14 + 4361: 50,-14 + 4362: 48,-13 + 4363: 48,-14 + 4364: 48,-13 + 4365: 53,-13 + 4366: 53,-14 + 4367: 53,-12 + 4368: 53,-14 4369: 53,-13 4370: 53,-14 - 4371: 53,-12 - 4372: 53,-14 - 4373: 53,-13 - 4374: 53,-14 - 4375: 50,-15 - 4376: 51,-15 - 4377: 50,-14 - 4378: 51,-13 - 4379: 50,-12 - 4380: 50,-12 - 4381: 48,-12 - 4382: 50,-12 - 4383: 51,-13 - 4384: 47,-24 - 4385: 49,-25 - 4386: 48,-26 - 4387: 47,-25 - 4388: 49,-25 - 4389: 48,-23 - 4390: 47,-28 - 4391: 49,-29 - 4392: 47,-30 - 4393: 48,-32 - 4394: 49,-31 - 4395: 48,-33 - 4396: 47,-33 - 4397: 49,-33 - 4398: 48,-34 - 4399: 47,-34 - 4400: 43,-36 + 4371: 50,-15 + 4372: 51,-15 + 4373: 50,-14 + 4374: 51,-13 + 4375: 50,-12 + 4376: 50,-12 + 4377: 48,-12 + 4378: 50,-12 + 4379: 51,-13 + 4380: 47,-24 + 4381: 49,-25 + 4382: 48,-26 + 4383: 47,-25 + 4384: 49,-25 + 4385: 48,-23 + 4386: 47,-28 + 4387: 49,-29 + 4388: 47,-30 + 4389: 48,-32 + 4390: 49,-31 + 4391: 48,-33 + 4392: 47,-33 + 4393: 49,-33 + 4394: 48,-34 + 4395: 47,-34 + 4396: 43,-36 + 4397: 40,-36 + 4398: 37,-35 + 4399: 36,-35 + 4400: 37,-36 4401: 40,-36 - 4402: 37,-35 - 4403: 36,-35 - 4404: 37,-36 - 4405: 40,-36 - 4406: 43,-35 - 4407: 43,-35 - 4408: 41,-35 - 4409: 43,-35 - 4410: 43,-34 - 4436: 33,-34 - 4437: 31,-34 - 4438: 33,-32 - 4439: 32,-32 - 4440: 32,-31 - 4441: 32,-30 - 4442: 33,-28 - 4443: 31,-29 - 4444: 33,-31 - 4445: 33,-31 - 4446: 35,-30 - 4447: 36,-30 - 4448: 36,-29 + 4402: 43,-35 + 4403: 43,-35 + 4404: 41,-35 + 4405: 43,-35 + 4406: 43,-34 + 4432: 33,-34 + 4433: 31,-34 + 4434: 33,-32 + 4435: 32,-32 + 4436: 32,-31 + 4437: 32,-30 + 4438: 33,-28 + 4439: 31,-29 + 4440: 33,-31 + 4441: 33,-31 + 4442: 35,-30 + 4443: 36,-30 + 4444: 36,-29 + 4445: 33,-25 + 4446: 31,-25 + 4447: 33,-25 + 4448: 31,-25 4449: 33,-25 - 4450: 31,-25 - 4451: 33,-25 - 4452: 31,-25 - 4453: 33,-25 - 4454: 32,-26 - 4455: 31,-25 - 4456: 32,-24 - 4457: 32,-25 - 4458: 31,-24 - 4459: 40,-25 - 4460: 39,-24 - 4461: 40,-26 - 4462: 42,-25 - 4463: 42,-25 - 4464: 44,-24 - 4465: 42,-25 - 4466: 44,-25 - 4467: 45,-25 - 4468: 42,-26 - 4469: 43,-25 - 4470: 43,-25 - 4471: 41,-25 - 4472: 40,-25 - 4473: 40,-25 - 4474: 40,-24 - 4475: 35,-23 - 4476: 37,-23 - 4477: 36,-23 - 4478: 35,-23 - 4479: 38,-21 - 4480: 35,-21 - 4481: 33,-21 - 4482: 33,-22 - 4483: 32,-22 - 4484: 32,-21 - 4485: 37,-19 - 4486: 34,-19 - 4487: 32,-19 - 4488: 31,-19 - 4489: 28,-19 - 4490: 27,-19 - 4491: 27,-20 - 4492: 27,-21 - 4493: 30,-21 - 4494: 29,-21 - 4495: 29,-23 - 4496: 29,-24 - 4497: 29,-25 - 4498: 29,-26 - 4499: 27,-22 - 4500: 27,-24 - 4501: 27,-25 - 4502: 26,-25 - 4503: 25,-25 - 4504: 29,-27 - 4505: 27,-27 - 4506: 25,-27 - 4507: 24,-27 - 4508: 21,-27 - 4509: 21,-25 - 4510: 20,-25 - 4511: 19,-25 - 4512: 19,-26 - 4513: 19,-28 - 4514: 19,-28 - 4515: 19,-30 - 4516: 19,-31 - 4517: 19,-32 - 4518: 21,-30 - 4519: 21,-33 - 4520: 21,-34 - 4521: 21,-34 - 4522: 19,-34 - 4523: 20,-36 - 4524: 20,-37 - 4525: 19,-37 - 4526: 20,-39 - 4527: 21,-38 - 4528: 22,-39 - 4529: 21,-37 - 4530: 24,-37 - 4531: 23,-38 - 4532: 25,-37 - 4533: 25,-38 - 4534: 24,-38 - 4535: 25,-38 - 4536: 17,-34 - 4537: 17,-35 - 4538: 16,-34 - 4539: 14,-34 - 4540: 17,-32 - 4541: 15,-32 - 4542: 13,-32 - 4543: 11,-32 - 4544: 10,-32 - 4545: 12,-34 - 4546: 9,-34 - 4547: 8,-34 - 4548: 7,-34 - 4549: 7,-32 - 4550: 7,-32 - 4551: 6,-32 - 4552: 9,-30 - 4553: 8,-29 - 4554: 7,-29 - 4555: 7,-29 - 4556: 6,-28 - 4557: 8,-27 - 4558: 9,-27 - 4559: 7,-28 - 4560: 6,-27 - 4561: 5,-29 - 4562: 7,-30 - 4563: 9,-30 - 4564: 3,-30 - 4565: 1,-30 - 4566: 3,-32 - 4567: 2,-32 - 4568: 2,-33 - 4569: 0,-33 - 4570: -1,-33 - 4571: -1,-32 - 4572: 0,-30 - 4573: -3,-30 - 4574: -4,-30 - 4575: -6,-30 - 4576: -7,-30 - 4577: -9,-30 - 4578: -6,-32 - 4579: -5,-32 - 4580: -3,-32 - 4581: -8,-32 - 4582: -8,-33 - 4583: -9,-32 - 4584: -10,-32 - 4585: -11,-32 - 4586: -13,-32 - 4587: -10,-30 - 4588: -11,-30 - 4589: -13,-30 - 4590: -15,-30 - 4591: -16,-30 - 4592: -12,-29 - 4593: -12,-30 - 4594: -16,-32 - 4595: -17,-33 - 4596: -17,-32 - 4597: -19,-32 - 4598: -18,-30 - 4599: -20,-30 - 4600: -22,-30 - 4601: -23,-30 - 4602: -23,-29 - 4603: -22,-32 - 4604: -24,-32 - 4605: -24,-32 - 4606: -26,-30 - 4607: -26,-29 - 4608: -26,-27 - 4609: -26,-25 - 4610: -24,-27 - 4611: -24,-26 - 4612: -24,-25 - 4613: -24,-24 - 4614: -26,-23 - 4615: -26,-22 - 4616: -26,-20 - 4617: -24,-21 - 4618: -24,-19 - 4619: -24,-18 - 4620: -24,-16 - 4621: -26,-17 - 4622: -26,-16 - 4623: -26,-14 - 4624: -26,-13 - 4625: -26,-12 - 4626: -26,-10 - 4627: -26,-9 - 4628: -25,-9 - 4629: -24,-11 - 4630: -23,-11 - 4631: -23,-10 - 4632: -23,-9 - 4633: -24,-5 - 4634: -24,-4 - 4635: -24,-2 - 4636: -19,-11 - 4637: -19,-10 - 4638: -20,-10 - 4639: -20,-9 - 4640: -19,-9 - 4641: -30,-21 - 4642: -30,-19 - 4643: -29,-19 - 4644: -30,-18 - 4645: -32,-21 - 4646: -32,-19 - 4647: -33,-18 - 4648: -34,-18 - 4649: -36,-15 - 4650: -36,-14 - 4651: -33,-14 - 4652: -33,-14 - 4653: -33,-15 - 4654: -30,-14 - 4655: -36,-10 - 4656: -37,-9 - 4657: -37,-10 - 4658: -29,-10 - 4659: -30,-11 - 4660: -30,-9 - 4661: -28,-10 - 4662: -40,-11 + 4450: 32,-26 + 4451: 31,-25 + 4452: 32,-24 + 4453: 32,-25 + 4454: 31,-24 + 4455: 40,-25 + 4456: 39,-24 + 4457: 40,-26 + 4458: 42,-25 + 4459: 42,-25 + 4460: 44,-24 + 4461: 42,-25 + 4462: 44,-25 + 4463: 45,-25 + 4464: 42,-26 + 4465: 43,-25 + 4466: 43,-25 + 4467: 41,-25 + 4468: 40,-25 + 4469: 40,-25 + 4470: 40,-24 + 4471: 35,-23 + 4472: 37,-23 + 4473: 36,-23 + 4474: 35,-23 + 4475: 38,-21 + 4476: 35,-21 + 4477: 33,-21 + 4478: 33,-22 + 4479: 32,-22 + 4480: 32,-21 + 4481: 37,-19 + 4482: 34,-19 + 4483: 32,-19 + 4484: 31,-19 + 4485: 28,-19 + 4486: 27,-19 + 4487: 27,-20 + 4488: 27,-21 + 4489: 30,-21 + 4490: 29,-21 + 4491: 29,-23 + 4492: 29,-24 + 4493: 29,-25 + 4494: 29,-26 + 4495: 27,-22 + 4496: 27,-24 + 4497: 27,-25 + 4498: 26,-25 + 4499: 25,-25 + 4500: 29,-27 + 4501: 27,-27 + 4502: 25,-27 + 4503: 24,-27 + 4504: 21,-27 + 4505: 21,-25 + 4506: 20,-25 + 4507: 19,-25 + 4508: 19,-26 + 4509: 19,-28 + 4510: 19,-28 + 4511: 19,-30 + 4512: 19,-31 + 4513: 19,-32 + 4514: 21,-30 + 4515: 21,-33 + 4516: 21,-34 + 4517: 21,-34 + 4518: 19,-34 + 4519: 20,-36 + 4520: 20,-37 + 4521: 19,-37 + 4522: 20,-39 + 4523: 21,-38 + 4524: 22,-39 + 4525: 21,-37 + 4526: 24,-37 + 4527: 23,-38 + 4528: 25,-37 + 4529: 25,-38 + 4530: 24,-38 + 4531: 25,-38 + 4532: 17,-34 + 4533: 17,-35 + 4534: 16,-34 + 4535: 14,-34 + 4536: 17,-32 + 4537: 15,-32 + 4538: 13,-32 + 4539: 11,-32 + 4540: 10,-32 + 4541: 12,-34 + 4542: 9,-34 + 4543: 8,-34 + 4544: 7,-34 + 4545: 7,-32 + 4546: 7,-32 + 4547: 6,-32 + 4548: 9,-30 + 4549: 8,-29 + 4550: 7,-29 + 4551: 7,-29 + 4552: 6,-28 + 4553: 8,-27 + 4554: 9,-27 + 4555: 7,-28 + 4556: 6,-27 + 4557: 5,-29 + 4558: 7,-30 + 4559: 9,-30 + 4560: 3,-30 + 4561: 1,-30 + 4562: 3,-32 + 4563: 2,-32 + 4564: 2,-33 + 4565: 0,-33 + 4566: -1,-33 + 4567: -1,-32 + 4568: 0,-30 + 4569: -3,-30 + 4570: -4,-30 + 4571: -6,-30 + 4572: -7,-30 + 4573: -9,-30 + 4574: -6,-32 + 4575: -5,-32 + 4576: -3,-32 + 4577: -8,-32 + 4578: -8,-33 + 4579: -9,-32 + 4580: -10,-32 + 4581: -11,-32 + 4582: -13,-32 + 4583: -10,-30 + 4584: -11,-30 + 4585: -13,-30 + 4586: -15,-30 + 4587: -16,-30 + 4588: -12,-29 + 4589: -12,-30 + 4590: -16,-32 + 4591: -17,-33 + 4592: -17,-32 + 4593: -19,-32 + 4594: -18,-30 + 4595: -20,-30 + 4596: -22,-30 + 4597: -23,-30 + 4598: -23,-29 + 4599: -22,-32 + 4600: -24,-32 + 4601: -24,-32 + 4602: -26,-30 + 4603: -26,-29 + 4604: -26,-27 + 4605: -26,-25 + 4606: -24,-27 + 4607: -24,-26 + 4608: -24,-25 + 4609: -24,-24 + 4610: -26,-23 + 4611: -26,-22 + 4612: -26,-20 + 4613: -24,-21 + 4614: -24,-19 + 4615: -24,-18 + 4616: -24,-16 + 4617: -26,-17 + 4618: -26,-16 + 4619: -26,-14 + 4620: -26,-13 + 4621: -26,-12 + 4622: -26,-10 + 4623: -26,-9 + 4624: -25,-9 + 4625: -24,-11 + 4626: -23,-11 + 4627: -23,-10 + 4628: -23,-9 + 4629: -24,-5 + 4630: -24,-4 + 4631: -24,-2 + 4632: -19,-11 + 4633: -19,-10 + 4634: -20,-10 + 4635: -20,-9 + 4636: -19,-9 + 4637: -30,-21 + 4638: -30,-19 + 4639: -29,-19 + 4640: -30,-18 + 4641: -32,-21 + 4642: -32,-19 + 4643: -33,-18 + 4644: -34,-18 + 4645: -36,-15 + 4646: -36,-14 + 4647: -33,-14 + 4648: -33,-14 + 4649: -33,-15 + 4650: -30,-14 + 4651: -36,-10 + 4652: -37,-9 + 4653: -37,-10 + 4654: -29,-10 + 4655: -30,-11 + 4656: -30,-9 + 4657: -28,-10 + 4658: -40,-11 + 4659: -41,-10 + 4660: -41,-9 + 4661: -40,-9 + 4662: -41,-10 4663: -41,-10 - 4664: -41,-9 - 4665: -40,-9 - 4666: -41,-10 - 4667: -41,-10 - 4668: -49,-18 - 4669: -38,-33 - 4670: -36,-33 - 4671: -33,-33 - 4672: -32,-33 - 4673: -31,-33 - 4674: -31,-31 - 4675: -31,-29 - 4676: -31,-28 - 4677: -31,-26 - 4678: -33,-26 - 4679: -35,-26 - 4680: -36,-26 - 4681: -37,-26 - 4682: -38,-26 - 4683: -38,-27 - 4684: -38,-29 - 4685: -38,-30 - 4686: -38,-31 - 4687: -38,-29 - 4688: -38,-26 - 4689: -40,-26 - 4690: -40,-25 - 4691: -41,-25 - 4692: -41,-26 - 4693: -41,-28 - 4694: -41,-29 - 4695: -41,-30 - 4696: -41,-32 - 4697: -41,-33 - 4698: -41,-34 - 4699: -39,-33 - 4700: -40,-34 - 4701: -35,-34 - 4702: -34,-34 - 4703: -32,-34 - 4704: -31,-34 - 4705: -30,-34 - 4706: -30,-33 - 4707: -28,-34 - 4708: -28,-32 - 4709: -28,-31 - 4710: -28,-29 - 4711: -28,-27 - 4712: -28,-26 - 4713: -29,-25 - 4714: -30,-25 - 4715: -30,-26 - 4716: -32,-25 - 4717: -33,-26 - 4718: -35,-25 - 4719: -32,6 - 4720: -32,7 - 4721: -32,6 - 4722: -36,6 - 4723: -36,5 - 4724: -36,7 - 4725: -34,6 - 4726: -34,5 - 4727: -35,6 - 4728: -33,6 - 4729: -35,-4 - 4730: -35,-2 - 4731: -36,-5 - 4732: -35,-2 - 4733: -34,-2 - 4734: -35,-1 - 4746: -25,28 - 4747: -26,28 - 4748: -18,32 - 4749: -17,31 - 4750: -17,33 - 4751: -18,32 - 4752: -15,34 - 4753: -15,32 - 4754: -15,31 - 4755: -13,31 - 4756: -12,31 - 4757: -15,34 - 4758: -15,34 - 4759: -12,39 - 4760: -13,40 - 4761: -14,40 - 4762: -15,40 - 4763: -16,40 - 4764: -16,40 - 4765: -13,40 - 4766: -12,40 - 4767: -12,38 - 4768: -12,40 - 4774: -5,40 - 4775: -6,40 - 4776: -6,42 - 4777: -6,43 - 4778: -5,42 - 4779: -6,43 - 4780: -6,45 - 4781: -6,46 - 4782: -6,47 - 4783: -5,46 - 4784: -4,48 - 4785: -5,46 - 4786: -2,48 - 4787: -4,46 - 4788: -1,47 - 4789: -3,45 - 4790: 0,46 - 4791: -3,47 - 4792: -1,45 - 4793: -3,46 - 4794: 1,45 - 4795: 1,47 - 4796: 0,46 - 4797: 1,48 - 4798: 2,48 - 4799: 3,47 - 4800: 2,45 - 4801: 2,44 - 4802: 2,43 - 4803: 2,42 - 4804: 1,42 - 4805: 3,42 - 4806: -2,43 - 4807: -1,41 - 4808: -3,40 - 4809: -3,40 - 4810: 1,51 - 4811: -2,50 - 4812: -3,50 - 4813: -2,51 - 4814: 0,51 - 4815: -1,52 - 4816: -2,51 - 4817: -2,53 - 4818: 1,53 - 4819: 2,51 - 4820: 2,50 - 4821: 0,50 - 4822: -4,45 - 4823: -4,47 - 4850: 6,42 - 4851: 5,41 - 4852: 5,39 - 4853: 7,39 - 4854: 8,39 - 4855: 9,41 - 4856: 9,40 - 4857: 8,42 - 4858: 8,41 - 4859: 15,37 - 4860: 14,37 - 4861: 14,35 - 4862: 14,34 - 4863: 13,35 - 4864: 13,36 - 4865: 15,34 - 4866: 16,35 - 4867: 15,36 - 4868: 15,34 - 4869: 15,35 - 4870: 15,37 - 4871: 14,37 - 4872: 15,30 - 4873: 14,29 - 4874: 14,29 - 4875: 15,28 - 4876: 14,29 - 4877: 14,32 - 4878: 13,32 - 4879: 15,24 - 4903: 2,24 - 4904: 1,24 - 4905: 1,24 - 4906: 2,23 - 4907: 4,23 - 4908: 4,24 - 4909: 3,26 - 4910: 4,28 - 4911: 2,27 - 4912: 2,27 - 4913: 3,27 - 4914: -2,25 - 4915: -3,25 - 4916: -3,23 - 4917: -2,24 - 4918: -4,23 - 4919: -4,25 - 4955: -14,28 - 4956: -15,28 - 4957: -14,29 - 4958: -13,26 - 4959: -10,26 - 4960: -9,27 - 4961: -10,28 - 4962: -7,28 - 4963: -8,26 - 4964: -5,28 - 4965: -7,24 - 4966: -8,24 - 4967: -7,23 - 4968: -6,24 - 4969: -6,23 - 4970: -7,23 - 4971: -8,23 - 4972: -8,23 - 4973: -12,23 - 4974: -11,24 - 4975: -10,23 - 4976: -10,24 - 4977: -10,24 - 4978: -12,24 - 4979: -12,24 - 4980: -14,24 - 4981: -14,23 - 4982: -16,24 - 4983: -14,24 - 4984: -15,23 - 4985: -16,24 - 4986: -14,25 - 4987: -10,25 - 4988: -7,25 - 4989: -1,28 - 4990: -3,27 - 4991: -1,30 - 4992: -1,33 - 4993: -1,34 - 4994: -1,37 - 4995: -3,37 - 4996: -3,38 - 4997: -1,37 - 4998: -2,37 - 4999: -1,40 - 5000: -3,41 - 5001: -3,43 - 5002: -2,43 - 5003: -20,25 - 5004: -21,25 - 5005: -19,25 - 5006: -21,25 - 5007: -22,17 - 5008: -23,17 - 5009: -22,5 - 5010: -22,5 - 5011: -22,5 - 5012: -19,-28 - 5013: -16,-28 - 5014: -16,-27 - 5015: -15,-28 - 5016: -16,-26 - 5017: -15,-27 - 5018: -15,-28 - 5019: -15,-26 - 5020: -15,-26 - 5021: -14,-26 - 5032: -25,-34 - 5033: -23,-34 - 5034: -22,-34 - 5035: -21,-34 - 5036: -20,-34 - 5037: -20,-37 - 5038: -20,-36 - 5039: -19,-38 - 5040: -19,-36 - 5041: -22,-37 - 5042: -23,-37 - 5043: -23,-38 - 5044: -23,-36 - 5045: -24,-37 - 5046: -26,-37 - 5047: -26,-36 - 5048: -26,-37 - 5049: -28,-40 - 5050: -27,-40 - 5051: -25,-40 - 5052: -24,-40 - 5053: -23,-40 - 5054: -21,-40 - 5055: -19,-40 - 5056: -21,-40 - 5057: -24,-40 - 5058: -26,-40 - 5059: -32,-40 - 5060: -31,-40 - 5061: -33,-39 + 4664: -49,-18 + 4665: -38,-33 + 4666: -36,-33 + 4667: -33,-33 + 4668: -32,-33 + 4669: -31,-33 + 4670: -31,-31 + 4671: -31,-29 + 4672: -31,-28 + 4673: -31,-26 + 4674: -33,-26 + 4675: -35,-26 + 4676: -36,-26 + 4677: -37,-26 + 4678: -38,-26 + 4679: -38,-27 + 4680: -38,-29 + 4681: -38,-30 + 4682: -38,-31 + 4683: -38,-29 + 4684: -38,-26 + 4685: -40,-26 + 4686: -40,-25 + 4687: -41,-25 + 4688: -41,-26 + 4689: -41,-28 + 4690: -41,-29 + 4691: -41,-30 + 4692: -41,-32 + 4693: -41,-33 + 4694: -41,-34 + 4695: -39,-33 + 4696: -40,-34 + 4697: -35,-34 + 4698: -34,-34 + 4699: -32,-34 + 4700: -31,-34 + 4701: -30,-34 + 4702: -30,-33 + 4703: -28,-34 + 4704: -28,-32 + 4705: -28,-31 + 4706: -28,-29 + 4707: -28,-27 + 4708: -28,-26 + 4709: -29,-25 + 4710: -30,-25 + 4711: -30,-26 + 4712: -32,-25 + 4713: -33,-26 + 4714: -35,-25 + 4715: -32,6 + 4716: -32,7 + 4717: -32,6 + 4718: -36,6 + 4719: -36,5 + 4720: -36,7 + 4721: -34,6 + 4722: -34,5 + 4723: -35,6 + 4724: -33,6 + 4725: -35,-4 + 4726: -35,-2 + 4727: -36,-5 + 4728: -35,-2 + 4729: -34,-2 + 4730: -35,-1 + 4742: -25,28 + 4743: -26,28 + 4744: -18,32 + 4745: -17,31 + 4746: -17,33 + 4747: -18,32 + 4748: -15,34 + 4749: -15,32 + 4750: -15,31 + 4751: -13,31 + 4752: -12,31 + 4753: -15,34 + 4754: -15,34 + 4755: -12,39 + 4756: -13,40 + 4757: -14,40 + 4758: -15,40 + 4759: -16,40 + 4760: -16,40 + 4761: -13,40 + 4762: -12,40 + 4763: -12,38 + 4764: -12,40 + 4770: -5,40 + 4771: -6,40 + 4772: -6,42 + 4773: -6,43 + 4774: -5,42 + 4775: -6,43 + 4776: -6,45 + 4777: -6,46 + 4778: -6,47 + 4779: -5,46 + 4780: -4,48 + 4781: -5,46 + 4782: -2,48 + 4783: -4,46 + 4784: -1,47 + 4785: -3,45 + 4786: 0,46 + 4787: -3,47 + 4788: -1,45 + 4789: -3,46 + 4790: 1,45 + 4791: 1,47 + 4792: 0,46 + 4793: 1,48 + 4794: 2,48 + 4795: 3,47 + 4796: 2,45 + 4797: 2,44 + 4798: 2,43 + 4799: 2,42 + 4800: 1,42 + 4801: 3,42 + 4802: -2,43 + 4803: -1,41 + 4804: -3,40 + 4805: -3,40 + 4806: 1,51 + 4807: -2,50 + 4808: -3,50 + 4809: -2,51 + 4810: 0,51 + 4811: -1,52 + 4812: -2,51 + 4813: -2,53 + 4814: 1,53 + 4815: 2,51 + 4816: 2,50 + 4817: 0,50 + 4818: -4,45 + 4819: -4,47 + 4846: 6,42 + 4847: 5,41 + 4848: 5,39 + 4849: 7,39 + 4850: 8,39 + 4851: 9,41 + 4852: 9,40 + 4853: 8,42 + 4854: 8,41 + 4855: 15,37 + 4856: 14,37 + 4857: 14,35 + 4858: 14,34 + 4859: 13,35 + 4860: 13,36 + 4861: 15,34 + 4862: 16,35 + 4863: 15,36 + 4864: 15,34 + 4865: 15,35 + 4866: 15,37 + 4867: 14,37 + 4868: 15,30 + 4869: 14,29 + 4870: 14,29 + 4871: 15,28 + 4872: 14,29 + 4873: 14,32 + 4874: 13,32 + 4875: 15,24 + 4899: 2,24 + 4900: 1,24 + 4901: 1,24 + 4902: 2,23 + 4903: 4,23 + 4904: 4,24 + 4905: 3,26 + 4906: 4,28 + 4907: 2,27 + 4908: 2,27 + 4909: 3,27 + 4910: -2,25 + 4911: -3,25 + 4912: -3,23 + 4913: -2,24 + 4914: -4,23 + 4915: -4,25 + 4951: -14,28 + 4952: -15,28 + 4953: -14,29 + 4954: -13,26 + 4955: -10,26 + 4956: -9,27 + 4957: -10,28 + 4958: -7,28 + 4959: -8,26 + 4960: -5,28 + 4961: -7,24 + 4962: -8,24 + 4963: -7,23 + 4964: -6,24 + 4965: -6,23 + 4966: -7,23 + 4967: -8,23 + 4968: -8,23 + 4969: -12,23 + 4970: -11,24 + 4971: -10,23 + 4972: -10,24 + 4973: -10,24 + 4974: -12,24 + 4975: -12,24 + 4976: -14,24 + 4977: -14,23 + 4978: -16,24 + 4979: -14,24 + 4980: -15,23 + 4981: -16,24 + 4982: -14,25 + 4983: -10,25 + 4984: -7,25 + 4985: -1,28 + 4986: -3,27 + 4987: -1,30 + 4988: -1,33 + 4989: -1,34 + 4990: -1,37 + 4991: -3,37 + 4992: -3,38 + 4993: -1,37 + 4994: -2,37 + 4995: -1,40 + 4996: -3,41 + 4997: -3,43 + 4998: -2,43 + 4999: -20,25 + 5000: -21,25 + 5001: -19,25 + 5002: -21,25 + 5003: -22,17 + 5004: -23,17 + 5005: -22,5 + 5006: -22,5 + 5007: -22,5 + 5008: -19,-28 + 5009: -16,-28 + 5010: -16,-27 + 5011: -15,-28 + 5012: -16,-26 + 5013: -15,-27 + 5014: -15,-28 + 5015: -15,-26 + 5016: -15,-26 + 5017: -14,-26 + 5028: -25,-34 + 5029: -23,-34 + 5030: -22,-34 + 5031: -21,-34 + 5032: -20,-34 + 5033: -20,-37 + 5034: -20,-36 + 5035: -19,-38 + 5036: -19,-36 + 5037: -22,-37 + 5038: -23,-37 + 5039: -23,-38 + 5040: -23,-36 + 5041: -24,-37 + 5042: -26,-37 + 5043: -26,-36 + 5044: -26,-37 + 5045: -28,-40 + 5046: -27,-40 + 5047: -25,-40 + 5048: -24,-40 + 5049: -23,-40 + 5050: -21,-40 + 5051: -19,-40 + 5052: -21,-40 + 5053: -24,-40 + 5054: -26,-40 + 5055: -32,-40 + 5056: -31,-40 + 5057: -33,-39 + 5058: -33,-40 + 5059: -32,-39 + 5060: -31,-39 + 5061: -34,-39 5062: -33,-40 - 5063: -32,-39 - 5064: -31,-39 - 5065: -34,-39 - 5066: -33,-40 - 5067: -39,-38 - 5068: -38,-38 - 5069: -29,-46 + 5063: -39,-38 + 5064: -38,-38 + 5065: -29,-46 + 5066: -30,-45 + 5067: -30,-45 + 5068: -30,-44 + 5069: -29,-45 5070: -30,-45 - 5071: -30,-45 - 5072: -30,-44 - 5075: -29,-45 - 5076: -30,-45 - 5078: -30,-44 - 5079: -29,-45 - 5080: -38,-53 - 5081: -38,-54 - 5082: -37,-53 - 5083: -37,-54 - 5084: -14,-39 - 5085: -13,-38 - 5086: -13,-39 - 5087: -13,-40 - 5088: -13,-41 - 5089: -13,-39 - 5090: -13,-40 - 5091: -13,-41 - 5092: -13,-39 - 5093: -13,-40 - 5094: -13,-39 - 5095: -13,-40 - 5098: -5,-41 - 5099: -5,-40 - 5100: -6,-42 - 5101: -5,-36 - 5102: -6,-36 - 5103: -4,-35 - 5104: -4,-36 - 5105: 0,-36 - 5106: -2,-36 - 5107: 1,-35 - 5108: 1,-37 - 5109: 1,-38 - 5110: 2,-37 - 5111: 2,-38 - 5112: 0,-37 - 5113: 3,-37 - 5114: -1,-36 - 5118: -6,-28 - 5119: -6,-27 - 5120: -5,-27 - 5121: -6,-26 + 5071: -30,-44 + 5072: -29,-45 + 5073: -38,-53 + 5074: -38,-54 + 5075: -37,-53 + 5076: -37,-54 + 5077: -14,-39 + 5078: -13,-38 + 5079: -13,-39 + 5080: -13,-40 + 5081: -13,-41 + 5082: -13,-39 + 5083: -13,-40 + 5084: -13,-41 + 5085: -13,-39 + 5086: -13,-40 + 5087: -13,-39 + 5088: -13,-40 + 5091: -5,-41 + 5092: -5,-40 + 5093: -6,-42 + 5094: -5,-36 + 5095: -6,-36 + 5096: -4,-35 + 5097: -4,-36 + 5098: 0,-36 + 5099: -2,-36 + 5100: 1,-35 + 5101: 1,-37 + 5102: 1,-38 + 5103: 2,-37 + 5104: 2,-38 + 5105: 0,-37 + 5106: 3,-37 + 5107: -1,-36 + 5111: -6,-28 + 5112: -6,-27 + 5113: -5,-27 + 5114: -6,-26 + 5115: -2,-27 + 5116: -3,-26 + 5117: -2,-28 + 5118: -1,-27 + 5119: 0,-27 + 5120: 0,-27 + 5121: -2,-27 5122: -2,-27 - 5123: -3,-26 - 5124: -2,-28 - 5125: -1,-27 - 5126: 0,-27 - 5127: 0,-27 - 5128: -2,-27 - 5129: -2,-27 - 5130: 0,-24 - 5131: -2,-24 - 5132: -2,-23 - 5133: 0,-22 - 5134: 1,-22 - 5135: 1,-21 - 5136: -4,-19 - 5137: -5,-19 - 5138: -7,-19 - 5139: -9,-19 - 5140: -6,-19 - 5141: -7,-17 - 5142: -8,-17 - 5143: -9,-16 - 5144: -9,-16 - 5145: -5,-16 - 5146: -4,-14 - 5147: -5,-15 - 5148: -8,-16 - 5149: -8,-15 - 5150: -14,-14 - 5151: -12,-14 - 5152: -12,-16 - 5153: -13,-18 - 5154: -14,-16 - 5155: -13,-16 - 5156: -13,-19 - 5157: -14,-19 - 5158: -2,-17 - 5159: -2,-15 - 5160: -2,-13 - 5161: -2,-12 - 5162: -1,-15 - 5163: -1,-16 - 5164: -1,-17 - 5165: 1,-17 - 5166: -1,-18 - 5167: 2,-18 + 5123: 0,-24 + 5124: -2,-24 + 5125: -2,-23 + 5126: 0,-22 + 5127: 1,-22 + 5128: 1,-21 + 5129: -4,-19 + 5130: -5,-19 + 5131: -7,-19 + 5132: -9,-19 + 5133: -6,-19 + 5134: -7,-17 + 5135: -8,-17 + 5136: -9,-16 + 5137: -9,-16 + 5138: -5,-16 + 5139: -4,-14 + 5140: -5,-15 + 5141: -8,-16 + 5142: -8,-15 + 5143: -14,-14 + 5144: -12,-14 + 5145: -12,-16 + 5146: -13,-18 + 5147: -14,-16 + 5148: -13,-16 + 5149: -13,-19 + 5150: -14,-19 + 5151: -2,-17 + 5152: -2,-15 + 5153: -2,-13 + 5154: -2,-12 + 5155: -1,-15 + 5156: -1,-16 + 5157: -1,-17 + 5158: 1,-17 + 5159: -1,-18 + 5160: 2,-18 + 5161: 2,-16 + 5162: 2,-15 + 5163: 2,-13 + 5164: 1,-12 + 5165: 1,-14 + 5166: -1,-13 + 5167: 0,-14 5168: 2,-16 - 5169: 2,-15 - 5170: 2,-13 - 5171: 1,-12 - 5172: 1,-14 - 5173: -1,-13 - 5174: 0,-14 - 5175: 2,-16 - 5176: -4,-14 - 5177: -7,-24 - 5178: -7,-22 - 5179: -8,-23 - 5180: -10,-23 - 5181: -9,-23 - 5182: -1,-24 - 5183: 8,-23 - 5184: 8,-22 - 5185: 10,-22 - 5186: 9,-23 - 5187: 8,-25 - 5188: 8,-21 - 5189: 8,-19 - 5190: 8,-18 - 5191: 6,-18 - 5192: 5,-18 - 5193: 0,-27 - 5194: 2,-27 - 5195: 10,-23 - 5196: 13,-23 - 5197: 12,-23 - 5198: 13,-21 - 5199: 14,-22 - 5200: 13,-18 - 5201: 14,-18 - 5202: 14,-17 - 5203: 12,-18 - 5204: 11,-18 - 5205: 11,-16 - 5206: 13,-17 - 5207: 11,-30 - 5208: 11,-28 - 5209: 11,-27 - 5210: 11,-26 - 5211: 17,-26 - 5212: 17,-28 - 5213: 17,-28 - 5214: 17,-30 - 5215: 17,-30 - 5216: 18,-23 - 5217: 20,-22 - 5218: 21,-23 - 5219: 19,-22 - 5220: 21,-22 - 5221: 20,-21 - 5222: 24,-22 - 5223: 23,-23 - 5224: 23,-21 - 5225: 23,-23 - 5226: 17,-16 - 5227: 19,-14 - 5228: 18,-13 - 5229: 20,-13 - 5230: 19,-12 - 5231: 22,-11 + 5169: -4,-14 + 5170: -7,-24 + 5171: -7,-22 + 5172: -8,-23 + 5173: -10,-23 + 5174: -9,-23 + 5175: -1,-24 + 5176: 8,-23 + 5177: 8,-22 + 5178: 10,-22 + 5179: 9,-23 + 5180: 8,-25 + 5181: 8,-21 + 5182: 8,-19 + 5183: 8,-18 + 5184: 6,-18 + 5185: 5,-18 + 5186: 0,-27 + 5187: 2,-27 + 5188: 10,-23 + 5189: 13,-23 + 5190: 12,-23 + 5191: 13,-21 + 5192: 14,-22 + 5193: 13,-18 + 5194: 14,-18 + 5195: 14,-17 + 5196: 12,-18 + 5197: 11,-18 + 5198: 11,-16 + 5199: 13,-17 + 5200: 11,-30 + 5201: 11,-28 + 5202: 11,-27 + 5203: 11,-26 + 5204: 17,-26 + 5205: 17,-28 + 5206: 17,-28 + 5207: 17,-30 + 5208: 17,-30 + 5209: 18,-23 + 5210: 20,-22 + 5211: 21,-23 + 5212: 19,-22 + 5213: 21,-22 + 5214: 20,-21 + 5215: 24,-22 + 5216: 23,-23 + 5217: 23,-21 + 5218: 23,-23 + 5219: 17,-16 + 5220: 19,-14 + 5221: 18,-13 + 5222: 20,-13 + 5223: 19,-12 + 5224: 22,-11 + 5225: 22,-13 + 5226: 20,-11 + 5227: 24,-13 + 5228: 26,-11 + 5229: 21,-11 + 5230: 20,-11 + 5231: 25,-13 5232: 22,-13 - 5233: 20,-11 - 5234: 24,-13 - 5235: 26,-11 - 5236: 21,-11 - 5237: 20,-11 - 5238: 25,-13 - 5239: 22,-13 - 5240: 23,-12 - 5241: 26,-12 - 5242: 19,-12 - 5243: 23,-13 - 5244: 23,-11 - 5245: 19,-10 - 5246: 26,-11 - 5247: 28,-12 - 5248: 25,-12 - 5249: 23,-16 - 5250: 23,-16 - 5251: 13,-19 - 5252: 23,-34 - 5253: 23,-31 - 5254: 23,-30 - 5255: 23,-29 - 5256: 23,-32 - 5257: 29,-34 - 5258: 29,-33 - 5259: 29,-32 - 5260: 29,-30 - 5261: 29,-29 - 5262: 32,-34 - 5263: 32,-31 - 5264: 32,-30 - 5265: 36,-30 - 5266: 35,-29 - 5267: 33,-26 - 5268: 36,-21 - 5269: 38,-16 - 5270: 37,-15 - 5271: 39,-16 - 5272: 38,-17 - 5273: 38,-15 - 5274: 37,-15 - 5275: 62,-31 - 5276: 62,-33 - 5277: 61,-31 - 5278: 63,-33 - 5279: 63,-33 - 5280: 63,-32 - 5281: 62,-32 - 5282: 62,-32 - 5283: 64,8 - 5284: 63,9 - 5285: 65,9 - 5286: 64,8 - 5287: 64,9 - 5288: 64,10 - 5289: 67,6 - 5290: 68,4 - 5291: 68,6 - 5292: 67,5 - 5293: 68,0 - 5294: 68,1 - 5295: 68,2 - 5296: 67,0 - 5297: 68,-2 - 5298: 67,-3 - 5299: 68,-4 - 5300: 68,-3 - 5301: 68,-3 - 5302: 76,-6 - 5308: 54,-30 - 5309: 52,-31 + 5233: 23,-12 + 5234: 26,-12 + 5235: 19,-12 + 5236: 23,-13 + 5237: 23,-11 + 5238: 19,-10 + 5239: 26,-11 + 5240: 28,-12 + 5241: 25,-12 + 5242: 23,-16 + 5243: 23,-16 + 5244: 13,-19 + 5245: 23,-34 + 5246: 23,-31 + 5247: 23,-30 + 5248: 23,-29 + 5249: 23,-32 + 5250: 29,-34 + 5251: 29,-33 + 5252: 29,-32 + 5253: 29,-30 + 5254: 29,-29 + 5255: 32,-34 + 5256: 32,-31 + 5257: 32,-30 + 5258: 36,-30 + 5259: 35,-29 + 5260: 33,-26 + 5261: 36,-21 + 5262: 38,-16 + 5263: 37,-15 + 5264: 39,-16 + 5265: 38,-17 + 5266: 38,-15 + 5267: 37,-15 + 5268: 62,-31 + 5269: 62,-33 + 5270: 61,-31 + 5271: 63,-33 + 5272: 63,-33 + 5273: 63,-32 + 5274: 62,-32 + 5275: 62,-32 + 5276: 64,8 + 5277: 63,9 + 5278: 65,9 + 5279: 64,8 + 5280: 64,9 + 5281: 64,10 + 5282: 67,6 + 5283: 68,4 + 5284: 68,6 + 5285: 67,5 + 5286: 68,0 + 5287: 68,1 + 5288: 68,2 + 5289: 67,0 + 5290: 68,-2 + 5291: 67,-3 + 5292: 68,-4 + 5293: 68,-3 + 5294: 68,-3 + 5295: 76,-6 + 5301: 54,-30 + 5302: 52,-31 + 5303: 51,-31 + 5304: 52,-33 + 5305: 52,-34 + 5306: 51,-33 + 5307: 51,-32 + 5308: 52,-35 + 5309: 51,-33 5310: 51,-31 - 5311: 52,-33 - 5312: 52,-34 - 5313: 51,-33 - 5314: 51,-32 - 5315: 52,-35 - 5316: 51,-33 - 5317: 51,-31 - 5318: 52,-35 - 5319: 52,-35 - 5320: 55,-35 - 5321: 54,-34 - 5322: 56,-33 - 5323: 57,-33 - 5324: 55,-34 - 5325: 55,-36 - 5326: 54,-35 - 5327: 55,-34 - 5328: 54,-35 - 5329: 55,-35 - 5330: 55,-34 - 5331: 40,-31 - 5332: 40,-30 - 5333: 40,-30 - 5334: 41,-31 - 5335: 41,-29 - 5336: 42,-29 - 5337: 43,-29 - 5338: 44,-29 - 5339: 44,-31 - 5340: 43,-30 - 5341: 33,-29 - 5342: 15,-39 - 5343: 14,-39 - 5344: 14,-39 - 5345: 9,-40 - 5346: 9,-39 - 5347: 9,-41 - 5348: 8,-40 - 5349: 9,-45 - 5350: 8,-45 - 5351: 8,-45 - 5352: 19,-45 - 5353: 17,-45 - 5354: 16,-44 - 5355: 16,-45 - 5356: 16,-43 - 5357: 19,-45 - 5358: 20,-44 - 5359: 20,-45 - 5360: 18,-44 - 5361: 21,-45 - 5362: 21,-43 - 5363: 15,-48 - 5364: 14,-48 - 5365: 12,-47 - 5366: 12,-48 - 5367: 14,-48 - 5368: 16,-47 - 5369: 14,-48 - 5370: 13,-48 - 5371: 15,-47 - 5378: 21,-54 - 5379: 20,-54 - 5380: 18,-54 - 5381: 16,-54 - 5382: 16,-55 - 5383: 18,-53 - 5384: 19,-53 - 5385: 21,-55 - 5386: 21,-58 - 5387: 21,-59 - 5388: 20,-58 - 5389: 18,-58 - 5390: 17,-58 - 5391: 16,-58 - 5392: 16,-59 - 5393: 19,-59 - 5394: 19,-59 - 5395: 18,-59 - 5396: 27,-46 - 5397: 26,-45 - 5398: 26,-44 - 5399: 27,-45 - 5400: 27,-45 - 5401: 28,-42 - 5402: 29,-42 - 5403: 29,-40 - 5404: 28,-39 - 5405: 28,-39 - 5406: 28,-40 - 5407: 29,-47 - 5408: 28,-47 - 5409: 66,-52 - 5410: 65,-51 - 5411: 66,-52 - 5412: 66,-51 - 5413: 65,-52 - 5414: 66,-51 - 5415: 27,15 - 5416: 28,15 - 5417: 27,14 - 5418: 27,12 - 5419: -23,34 - 5420: -23,35 - 5421: -22,34 - 5422: -27,36 - 5423: -27,34 - 5424: -28,35 - 5425: -27,35 - 5426: -29,36 - 5427: -30,37 - 5428: -30,38 - 5429: -28,35 - 5430: -28,34 - 5431: -29,35 - 5432: -26,36 - 5433: -25,38 - 5434: -26,37 - 5435: -32,36 - 5436: -33,35 - 5437: -33,37 - 5438: -33,35 - 5439: -34,36 - 5440: -33,38 - 5441: -33,35 - 5442: -36,5 - 5443: -42,6 - 5444: -43,4 - 5445: -43,6 - 5446: -42,7 - 5447: -51,9 - 5448: -49,13 - 5449: -42,-5 - 5450: -43,-5 - 5451: -42,-3 - 5452: -45,-4 - 5453: -45,-5 - 5454: -46,-4 - 5455: -43,-3 - 5456: -43,-2 - 5457: -42,-2 - 5458: -60,-29 - 5459: -60,-29 - 5460: -57,-36 - 5461: -58,-36 - 5462: -59,-36 - 5463: -57,-37 - 5464: -58,-35 - 5465: -58,-34 - 5466: -57,-35 - 5467: -59,-34 - 5468: -58,-34 - 5469: -59,-34 - 5470: -60,-34 - 5471: -60,-35 - 5472: -61,-21 - 5473: -62,-21 - 5474: -62,-20 - 5475: -61,-20 - 5476: -61,-20 - 5477: 13,35 - 6136: 52,20 - 6137: 51,21 - 6138: 53,20 - 6139: 53,21 - 6260: 46,14 - 6261: 45,15 - 6262: 46,16 - 6468: 49,-7 - 6469: 48,-6 - 6470: 48,-4 - 6471: 49,-4 - 6472: 52,-7 - 6473: 52,-5 - 6474: 51,-6 - 6475: 52,-2 - 6476: 52,-3 - 6477: 48,-1 - 6478: 48,-2 - 6498: 49,-12 - 6499: 49,-14 - 6500: 49,-15 - 6501: 49,-13 - 6502: 52,-14 - 6503: 52,-13 - 6504: 52,-12 - 6505: 52,-15 - 6506: 52,-15 - 6507: 52,-10 - 6508: 51,1 - 6509: 51,3 - 6510: 51,4 - 6511: 51,6 - 6512: 51,8 - 6513: 51,9 - 6514: 51,11 - 6515: 51,13 - 6516: 49,13 - 6517: 49,11 - 6518: 49,9 - 6519: 49,7 - 6520: 49,5 - 6521: 49,3 - 6522: 49,1 - 6535: 42,9 - 6536: 43,9 - 6537: 42,7 - 6538: 43,7 - 6539: 45,7 - 6540: 45,9 - 6541: 46,7 - 6542: 40,4 - 6543: 42,4 - 6544: 43,4 - 6545: 43,2 - 6546: 43,1 - 6547: 43,-2 - 6548: 43,-4 - 6549: 43,-7 - 6550: 43,-6 - 6551: 43,-10 - 6552: 43,-11 - 6553: 45,5 - 6554: 42,5 - 6555: 41,5 - 6634: 90,-18 - 6635: 89,-18 - 6718: 51,-39 - 6719: 52,-39 - 6720: 54,-39 - 6721: 52,-37 - 6731: 51,-30 - 6732: 52,-29 - 6756: -33,-12 - 6757: -33,-10 - 6774: -36,-45 - 6775: -35,-44 - 6776: -35,-46 + 5311: 52,-35 + 5312: 52,-35 + 5313: 55,-35 + 5314: 54,-34 + 5315: 56,-33 + 5316: 57,-33 + 5317: 55,-34 + 5318: 55,-36 + 5319: 54,-35 + 5320: 55,-34 + 5321: 54,-35 + 5322: 55,-35 + 5323: 55,-34 + 5324: 40,-31 + 5325: 40,-30 + 5326: 40,-30 + 5327: 41,-31 + 5328: 41,-29 + 5329: 42,-29 + 5330: 43,-29 + 5331: 44,-29 + 5332: 44,-31 + 5333: 43,-30 + 5334: 33,-29 + 5335: 15,-39 + 5336: 14,-39 + 5337: 14,-39 + 5338: 9,-40 + 5339: 9,-39 + 5340: 9,-41 + 5341: 8,-40 + 5342: 9,-45 + 5343: 8,-45 + 5344: 8,-45 + 5345: 19,-45 + 5346: 17,-45 + 5347: 16,-44 + 5348: 16,-45 + 5349: 16,-43 + 5350: 19,-45 + 5351: 20,-44 + 5352: 20,-45 + 5353: 18,-44 + 5354: 21,-45 + 5355: 21,-43 + 5356: 15,-48 + 5357: 14,-48 + 5358: 12,-47 + 5359: 12,-48 + 5360: 14,-48 + 5361: 16,-47 + 5362: 14,-48 + 5363: 13,-48 + 5364: 15,-47 + 5371: 21,-54 + 5372: 20,-54 + 5373: 18,-54 + 5374: 16,-54 + 5375: 16,-55 + 5376: 18,-53 + 5377: 19,-53 + 5378: 21,-55 + 5379: 21,-58 + 5380: 21,-59 + 5381: 20,-58 + 5382: 18,-58 + 5383: 17,-58 + 5384: 16,-58 + 5385: 16,-59 + 5386: 19,-59 + 5387: 19,-59 + 5388: 18,-59 + 5389: 27,-46 + 5390: 26,-45 + 5391: 26,-44 + 5392: 27,-45 + 5393: 27,-45 + 5394: 28,-42 + 5395: 29,-42 + 5396: 29,-40 + 5397: 28,-39 + 5398: 28,-39 + 5399: 28,-40 + 5400: 29,-47 + 5401: 28,-47 + 5402: 66,-52 + 5403: 65,-51 + 5404: 66,-52 + 5405: 66,-51 + 5406: 65,-52 + 5407: 66,-51 + 5408: 27,15 + 5409: 28,15 + 5410: 27,14 + 5411: 27,12 + 5412: -23,34 + 5413: -23,35 + 5414: -22,34 + 5415: -27,36 + 5416: -27,34 + 5417: -28,35 + 5418: -27,35 + 5419: -29,36 + 5420: -30,37 + 5421: -30,38 + 5422: -28,35 + 5423: -28,34 + 5424: -29,35 + 5425: -26,36 + 5426: -25,38 + 5427: -26,37 + 5428: -32,36 + 5429: -33,35 + 5430: -33,37 + 5431: -33,35 + 5432: -34,36 + 5433: -33,38 + 5434: -33,35 + 5435: -36,5 + 5436: -42,6 + 5437: -43,4 + 5438: -43,6 + 5439: -42,7 + 5440: -51,9 + 5441: -49,13 + 5442: -42,-5 + 5443: -43,-5 + 5444: -42,-3 + 5445: -45,-4 + 5446: -45,-5 + 5447: -46,-4 + 5448: -43,-3 + 5449: -43,-2 + 5450: -42,-2 + 5451: -60,-29 + 5452: -60,-29 + 5453: -57,-36 + 5454: -58,-36 + 5455: -59,-36 + 5456: -57,-37 + 5457: -58,-35 + 5458: -58,-34 + 5459: -57,-35 + 5460: -59,-34 + 5461: -58,-34 + 5462: -59,-34 + 5463: -60,-34 + 5464: -60,-35 + 5465: -61,-21 + 5466: -62,-21 + 5467: -62,-20 + 5468: -61,-20 + 5469: -61,-20 + 5470: 13,35 + 6129: 52,20 + 6130: 51,21 + 6131: 53,20 + 6132: 53,21 + 6253: 46,14 + 6254: 45,15 + 6255: 46,16 + 6461: 49,-7 + 6462: 48,-6 + 6463: 48,-4 + 6464: 49,-4 + 6465: 52,-7 + 6466: 52,-5 + 6467: 51,-6 + 6468: 52,-2 + 6469: 52,-3 + 6470: 48,-1 + 6471: 48,-2 + 6491: 49,-12 + 6492: 49,-14 + 6493: 49,-15 + 6494: 49,-13 + 6495: 52,-14 + 6496: 52,-13 + 6497: 52,-12 + 6498: 52,-15 + 6499: 52,-15 + 6500: 52,-10 + 6501: 51,1 + 6502: 51,3 + 6503: 51,4 + 6504: 51,6 + 6505: 51,8 + 6506: 51,9 + 6507: 51,11 + 6508: 51,13 + 6509: 49,13 + 6510: 49,11 + 6511: 49,9 + 6512: 49,7 + 6513: 49,5 + 6514: 49,3 + 6515: 49,1 + 6528: 42,9 + 6529: 43,9 + 6530: 42,7 + 6531: 43,7 + 6532: 45,7 + 6533: 45,9 + 6534: 46,7 + 6535: 40,4 + 6536: 42,4 + 6537: 43,4 + 6538: 43,2 + 6539: 43,1 + 6540: 43,-2 + 6541: 43,-4 + 6542: 43,-7 + 6543: 43,-6 + 6544: 43,-10 + 6545: 43,-11 + 6546: 45,5 + 6547: 42,5 + 6548: 41,5 + 6627: 90,-18 + 6628: 89,-18 + 6711: 51,-39 + 6712: 52,-39 + 6713: 54,-39 + 6714: 52,-37 + 6724: 51,-30 + 6725: 52,-29 + 6749: -33,-12 + 6750: -33,-10 + 6766: -36,-45 + 6767: -35,-44 + 6768: -35,-46 - node: cleanable: True angle: 1.5707963267948966 rad color: '#FFFFFFFF' id: DirtHeavy decals: - 3023: -43,17 + 3020: -43,17 - node: cleanable: True color: '#835432FF' id: DirtHeavyMonotile decals: - 2931: -38,29 - 2932: -36,28 - 2933: -34,26 - 2934: -34,24 - 2935: -36,22 - 2936: -37,25 - 2937: -37,26 - 2938: -37,27 - 2939: -38,27 - 2940: -36,26 + 2928: -38,29 + 2929: -36,28 + 2930: -34,26 + 2931: -34,24 + 2932: -36,22 + 2933: -37,25 + 2934: -37,26 + 2935: -37,27 + 2936: -38,27 + 2937: -36,26 - node: cleanable: True angle: -6.283185307179586 rad color: '#FFFFFFFF' id: DirtHeavyMonotile decals: - 6659: 88,-21 - 6660: 88,-20 - 6661: 91,-20 - 6664: 87,-20 - 6667: 88,-19 + 6652: 88,-21 + 6653: 88,-20 + 6654: 91,-20 + 6657: 87,-20 + 6660: 88,-19 - node: cleanable: True color: '#FFFFFFFF' id: DirtHeavyMonotile decals: - 3193: 4,-31 - 3194: 0,-31 - 3195: -4,-31 - 3196: -8,-31 - 3197: -10,-31 - 3198: -13,-31 - 3199: -17,-31 - 3200: -18,-31 - 3201: -21,-31 - 3202: -25,-31 - 3203: -25,-27 - 3204: -25,-24 - 3205: -25,-22 - 3206: -25,-19 - 3207: -25,-18 - 3208: -25,-13 - 3209: -25,-11 - 3210: -24,-10 - 3211: -24,-8 - 3212: -22,-2 - 3213: -22,0 - 3214: -22,3 - 3215: -20,8 - 3216: -22,9 - 3217: -24,8 - 3218: -25,9 - 3219: -26,8 - 3220: -26,12 - 3221: -26,15 - 3222: -26,17 - 3223: -25,20 - 3224: -23,19 - 3225: -20,19 - 3226: -18,20 - 3227: -15,20 - 3228: -12,20 - 3229: -7,20 - 3230: -3,20 - 3231: -1,20 - 3232: 2,20 - 3233: 6,20 - 3234: 9,20 - 3235: 11,20 - 3236: 14,20 - 3237: 17,20 - 3238: 20,19 - 3239: 20,17 - 3240: 20,15 - 3241: 20,11 - 3242: 20,9 - 3243: 20,6 - 3244: 20,3 - 3245: 22,3 - 3246: 25,3 - 3247: 27,3 - 3248: 30,3 - 3249: 33,3 - 3250: 36,3 - 3251: 41,3 - 3252: 42,2 - 3253: 42,0 - 3254: 42,-3 - 3255: 42,-6 - 3256: 42,-9 - 3257: 42,-11 - 3258: 42,-15 - 3259: 42,-18 - 3260: 42,-20 - 3261: 44,-20 - 3262: 42,-13 - 3263: 42,-10 - 3264: 42,-7 - 3265: 42,-5 - 3266: 42,-2 - 3267: 42,1 - 3268: 39,3 - 3269: 37,3 - 3270: 35,3 - 3271: 32,3 - 3272: 31,3 - 3273: 26,3 - 3274: 22,3 - 3275: 20,6 - 3276: 20,9 - 3277: 20,12 - 3278: 20,15 - 3279: 20,19 - 3280: 19,20 - 3281: 12,20 - 3282: 8,20 - 3283: 5,20 - 3284: 2,20 - 3285: -1,20 - 3286: -5,20 - 3287: -9,20 - 3288: -12,20 - 3289: -16,20 - 3291: -19,19 - 3292: -26,20 - 3293: -26,16 - 3294: -26,11 - 3295: -26,8 - 3296: -23,8 - 3297: -22,9 - 3298: -21,8 - 3299: -20,9 - 3300: -22,3 - 3301: -22,0 - 3302: -22,-3 - 3303: -22,-5 - 3304: -23,-7 - 3305: -25,-7 - 3306: -23,-8 - 3307: -25,-10 - 3308: -25,-10 - 3309: -25,-14 - 3310: -25,-18 - 3311: -25,-21 - 3312: -25,-25 - 3313: -25,-28 - 3314: -23,-31 - 3315: -20,-31 - 3316: -15,-31 - 3317: -9,-31 - 3318: -5,-31 - 3319: 1,-31 - 3320: 1,-32 - 3321: 7,-31 - 3322: 5,-31 - 3323: 8,-32 - 3324: 9,-33 - 3325: 12,-33 - 3326: 15,-33 - 3327: 18,-33 - 3328: 19,-33 - 3329: 20,-29 - 3330: 20,-27 - 3331: 21,-26 - 3332: 24,-26 - 3333: 27,-26 - 3334: 28,-26 - 3335: 28,-22 - 3336: 28,-21 - 3337: 28,-20 - 3338: 32,-20 - 3339: 35,-20 - 3340: 39,-20 - 3341: 42,-20 - 3342: 40,-20 - 3343: 42,-17 - 3344: 42,-19 - 3345: 49,-20 - 3346: 52,-20 - 3347: 47,-20 - 3348: 53,-20 - 3349: 53,-22 - 3350: 53,-23 - 3351: 54,-20 - 3352: 56,-20 - 3353: 58,-20 - 3354: 58,-20 - 3355: 58,-22 - 3356: 58,-23 - 3357: 58,-22 - 3358: 49,-20 - 3359: 50,-20 - 3360: 44,-13 - 3361: 41,-13 - 3362: 39,-1 - 3363: 37,-1 - 3364: 36,-1 - 3365: 50,6 - 3366: 50,2 - 3367: 50,14 - 3368: 46,-7 - 3369: 45,-8 - 3370: 46,-4 - 3371: 46,-5 - 3372: 45,-1 - 3373: 46,-2 - 3374: 54,-1 - 3375: 55,-1 - 3376: 55,-7 - 3377: 58,-4 - 3378: 59,-6 - 3379: 60,-5 - 3380: 62,-6 - 3381: 61,-6 - 3382: 55,7 - 3383: 54,7 - 3384: 59,15 - 3385: 58,15 - 3386: 60,16 - 3387: 60,3 - 3388: 60,1 - 3389: 63,1 - 3390: 62,1 - 3391: 62,0 - 3392: 62,3 - 3393: 62,4 - 3394: 28,3 - 3395: 28,3 - 3396: 24,8 + 3189: 4,-31 + 3190: 0,-31 + 3191: -4,-31 + 3192: -8,-31 + 3193: -10,-31 + 3194: -13,-31 + 3195: -17,-31 + 3196: -18,-31 + 3197: -21,-31 + 3198: -25,-31 + 3199: -25,-27 + 3200: -25,-24 + 3201: -25,-22 + 3202: -25,-19 + 3203: -25,-18 + 3204: -25,-13 + 3205: -25,-11 + 3206: -24,-10 + 3207: -24,-8 + 3208: -22,-2 + 3209: -22,0 + 3210: -22,3 + 3211: -20,8 + 3212: -22,9 + 3213: -24,8 + 3214: -25,9 + 3215: -26,8 + 3216: -26,12 + 3217: -26,15 + 3218: -26,17 + 3219: -25,20 + 3220: -23,19 + 3221: -20,19 + 3222: -18,20 + 3223: -15,20 + 3224: -12,20 + 3225: -7,20 + 3226: -3,20 + 3227: -1,20 + 3228: 2,20 + 3229: 6,20 + 3230: 9,20 + 3231: 11,20 + 3232: 14,20 + 3233: 17,20 + 3234: 20,19 + 3235: 20,17 + 3236: 20,15 + 3237: 20,11 + 3238: 20,9 + 3239: 20,6 + 3240: 20,3 + 3241: 22,3 + 3242: 25,3 + 3243: 27,3 + 3244: 30,3 + 3245: 33,3 + 3246: 36,3 + 3247: 41,3 + 3248: 42,2 + 3249: 42,0 + 3250: 42,-3 + 3251: 42,-6 + 3252: 42,-9 + 3253: 42,-11 + 3254: 42,-15 + 3255: 42,-18 + 3256: 42,-20 + 3257: 44,-20 + 3258: 42,-13 + 3259: 42,-10 + 3260: 42,-7 + 3261: 42,-5 + 3262: 42,-2 + 3263: 42,1 + 3264: 39,3 + 3265: 37,3 + 3266: 35,3 + 3267: 32,3 + 3268: 31,3 + 3269: 26,3 + 3270: 22,3 + 3271: 20,6 + 3272: 20,9 + 3273: 20,12 + 3274: 20,15 + 3275: 20,19 + 3276: 19,20 + 3277: 12,20 + 3278: 8,20 + 3279: 5,20 + 3280: 2,20 + 3281: -1,20 + 3282: -5,20 + 3283: -9,20 + 3284: -12,20 + 3285: -16,20 + 3287: -19,19 + 3288: -26,20 + 3289: -26,16 + 3290: -26,11 + 3291: -26,8 + 3292: -23,8 + 3293: -22,9 + 3294: -21,8 + 3295: -20,9 + 3296: -22,3 + 3297: -22,0 + 3298: -22,-3 + 3299: -22,-5 + 3300: -23,-7 + 3301: -25,-7 + 3302: -23,-8 + 3303: -25,-10 + 3304: -25,-10 + 3305: -25,-14 + 3306: -25,-18 + 3307: -25,-21 + 3308: -25,-25 + 3309: -25,-28 + 3310: -23,-31 + 3311: -20,-31 + 3312: -15,-31 + 3313: -9,-31 + 3314: -5,-31 + 3315: 1,-31 + 3316: 1,-32 + 3317: 7,-31 + 3318: 5,-31 + 3319: 8,-32 + 3320: 9,-33 + 3321: 12,-33 + 3322: 15,-33 + 3323: 18,-33 + 3324: 19,-33 + 3325: 20,-29 + 3326: 20,-27 + 3327: 21,-26 + 3328: 24,-26 + 3329: 27,-26 + 3330: 28,-26 + 3331: 28,-22 + 3332: 28,-21 + 3333: 28,-20 + 3334: 32,-20 + 3335: 35,-20 + 3336: 39,-20 + 3337: 42,-20 + 3338: 40,-20 + 3339: 42,-17 + 3340: 42,-19 + 3341: 49,-20 + 3342: 52,-20 + 3343: 47,-20 + 3344: 53,-20 + 3345: 53,-22 + 3346: 53,-23 + 3347: 54,-20 + 3348: 56,-20 + 3349: 58,-20 + 3350: 58,-20 + 3351: 58,-22 + 3352: 58,-23 + 3353: 58,-22 + 3354: 49,-20 + 3355: 50,-20 + 3356: 44,-13 + 3357: 41,-13 + 3358: 39,-1 + 3359: 37,-1 + 3360: 36,-1 + 3361: 50,6 + 3362: 50,2 + 3363: 50,14 + 3364: 46,-7 + 3365: 45,-8 + 3366: 46,-4 + 3367: 46,-5 + 3368: 45,-1 + 3369: 46,-2 + 3370: 54,-1 + 3371: 55,-1 + 3372: 55,-7 + 3373: 58,-4 + 3374: 59,-6 + 3375: 60,-5 + 3376: 62,-6 + 3377: 61,-6 + 3378: 55,7 + 3379: 54,7 + 3380: 59,15 + 3381: 58,15 + 3382: 60,16 + 3383: 60,3 + 3384: 60,1 + 3385: 63,1 + 3386: 62,1 + 3387: 62,0 + 3388: 62,3 + 3389: 62,4 + 3390: 28,3 + 3391: 28,3 + 3392: 24,8 + 3393: 24,6 + 3394: 23,8 + 3395: 25,7 + 3396: 24,7 3397: 24,6 - 3398: 23,8 - 3399: 25,7 - 3400: 24,7 - 3401: 24,6 - 3402: 25,11 - 3403: 25,13 - 3404: 25,14 - 3405: 23,15 - 3406: 22,12 - 3407: 23,12 - 3408: 23,14 - 3409: 23,11 - 3410: 26,19 - 3411: 24,20 - 3412: 25,21 - 3413: 26,19 - 3414: 25,20 - 3415: 29,20 - 3416: 29,19 - 3417: 30,19 - 3418: 29,21 - 3419: -19,26 - 3420: -21,28 - 3421: -20,26 - 3422: -20,28 - 3423: -7,40 - 3424: 3,40 - 3425: -26,19 - 3426: -17,11 - 3427: -16,11 - 3428: -16,13 - 3429: -17,13 - 3430: -33,11 - 3431: -33,13 - 3432: -33,14 - 3433: -32,14 - 3434: -30,14 - 3435: -29,14 - 3436: -31,14 - 3437: -30,3 - 3438: -32,3 - 3439: -37,3 - 3440: -36,2 - 3441: -35,2 - 3442: -37,1 - 3443: -33,1 - 3444: -32,2 - 3445: -32,1 - 3446: -31,2 - 3447: -33,2 - 3448: -38,0 - 3449: -37,0 - 3450: -34,0 - 3451: -33,0 - 3452: -31,0 - 3453: -30,0 - 3454: -55,6 - 3455: -54,6 - 3456: -54,4 - 3457: -54,2 - 3458: -56,5 - 3459: -55,4 - 3460: -53,1 - 3461: -51,1 - 3462: -49,1 - 3463: -47,1 - 3464: -45,1 - 3465: -44,1 - 3466: -43,1 - 3467: -54,1 - 3468: -54,-4 - 3469: -55,-4 - 3470: -54,-8 - 3471: -54,-10 - 3472: -54,-12 - 3473: -54,-14 - 3474: -54,-16 - 3475: -54,-19 - 3476: -53,-21 - 3477: -51,-21 - 3478: -54,-21 - 3479: -54,-20 - 3480: -54,-18 - 3481: -48,-21 - 3482: -48,-23 - 3483: -48,-24 - 3484: -50,-25 - 3485: -47,-25 - 3486: -45,-25 - 3487: -45,-26 - 3488: -45,-29 - 3489: -44,-28 - 3490: -43,-28 - 3491: -45,-31 - 3492: -48,-32 - 3493: -49,-32 - 3494: -51,-32 - 3495: -51,-30 - 3496: -51,-28 - 3497: -51,-26 - 3498: -48,-33 - 3499: -54,-26 - 3500: -56,-25 - 3501: -55,-25 - 3502: -56,-26 - 3503: -57,-26 - 3504: -55,-26 - 3505: -56,-25 - 3506: -48,-36 - 3507: -48,-38 - 3508: -48,-40 - 3509: -48,-42 - 3510: -48,-44 - 3511: -48,-47 - 3512: -49,-47 - 3513: -51,-47 - 3514: -53,-47 - 3515: -54,-47 - 3516: -45,-47 - 3517: -45,-47 - 3518: -43,-47 - 3519: -41,-47 - 3520: -41,-47 - 3521: -41,-50 - 3522: -41,-51 - 3523: -41,-54 - 3524: -36,-58 - 3525: -36,-60 - 3526: -36,-63 - 3527: -36,-64 - 3528: -36,-56 - 3529: -37,-56 - 3530: -41,-61 - 3531: -42,-62 - 3532: -41,-64 - 3533: -41,-64 - 3534: -42,-62 - 3535: -41,-48 - 3536: -53,-47 - 3537: -55,-47 - 3538: -55,-49 - 3539: -55,-52 - 3540: -55,-54 - 3541: -60,-58 - 3542: -60,-60 - 3543: -60,-62 - 3544: -60,-63 - 3545: -60,-64 - 3546: -58,-56 - 3547: -60,-56 - 3548: -55,-64 - 3549: -55,-62 - 3550: -54,-61 - 3551: -54,-63 - 3552: -54,-64 - 3553: -8,-28 - 3554: -7,-26 - 3555: -8,-27 - 3556: -8,-27 - 3557: 7,-22 - 3558: 5,-22 - 3559: 4,-23 - 3560: 4,-20 - 3561: 4,-19 - 3562: 7,-20 - 3563: 7,-21 - 3564: 7,-24 - 3565: 7,-25 - 3566: 10,-16 - 3567: 10,-18 - 3568: 10,-18 - 3569: 12,-29 - 3570: 12,-28 - 3571: 12,-26 - 3572: 13,-25 - 3573: 14,-25 - 3574: 14,-26 - 3575: 15,-25 - 3576: 16,-26 - 3577: 16,-29 - 3578: -4,-36 - 3579: -4,-37 - 3580: -6,-37 - 3581: 34,-2 - 3582: 33,-2 - 3583: 34,-3 - 3584: 32,-2 - 3585: 32,-3 - 3586: 31,-2 - 3587: 31,-3 - 3588: 31,-35 - 3589: 33,-35 - 3590: 32,-37 - 3591: 33,-36 - 3592: 33,-38 - 3593: 32,-36 - 3594: 31,-38 - 3595: 47,-36 - 3596: 47,-35 - 3597: 49,-35 - 3598: 49,-37 - 3599: 47,-37 - 3600: 47,-38 - 3601: 49,-38 - 3602: 47,-39 - 3603: 24,-29 - 3604: 26,-29 - 3605: 27,-29 - 3606: 28,-29 - 3607: 25,-34 - 3608: 27,-34 - 3609: 28,-34 - 3610: 26,-34 - 3611: 28,-43 - 3612: 29,-43 - 3613: 28,-45 - 3614: 29,-45 - 3615: 28,-46 - 3616: 29,-46 - 3617: 19,-46 - 3618: 18,-46 - 3619: 18,-47 - 3620: 19,-49 - 3621: 19,-49 - 3622: 18,-50 - 3623: 19,-50 - 3624: 18,-48 - 3625: 16,-48 - 3626: 14,-48 - 3627: 12,-47 - 3628: 10,-40 - 3629: 11,-39 - 3630: 11,-40 - 3631: 11,-40 - 3632: 8,-31 - 3633: 8,-31 - 3634: 5,-14 - 3635: 6,-14 - 3636: 6,-15 - 3637: 5,-15 - 3638: 4,-15 - 3639: 4,-15 - 3640: 25,7 - 3641: 20,16 - 3642: 20,18 - 3643: 15,26 - 3644: 14,26 - 3645: 13,26 - 3646: 13,26 - 3647: -44,10 - 3648: -45,10 - 3649: -46,10 - 3650: -47,10 - 3651: -49,10 - 3652: -50,10 - 3653: -50,12 - 3654: -47,12 - 3655: -48,1 - 3656: -47,1 - 3657: -48,-41 - 3658: -38,-56 - 3659: -38,-56 - 3660: -42,-57 - 3661: -55,-57 - 3793: -50,0 - 3794: -50,2 - 3795: -48,2 - 3796: -46,2 - 3797: -45,2 - 3798: -44,0 - 3799: -46,0 - 3800: -48,0 - 3832: -51,3 - 3833: -49,3 - 3834: -47,3 - 3835: -45,3 - 3836: -44,5 - 3837: -46,5 - 3838: -48,5 - 3839: -50,5 - 3840: -50,-1 - 3841: -49,-1 - 3842: -47,-1 - 3843: -46,-1 - 3844: -44,-1 - 3845: -44,-3 - 3846: -46,-3 - 3847: -47,-3 - 3848: -49,-3 - 3849: -50,-3 - 3850: -48,-3 - 3851: -46,-3 - 3852: -48,3 - 3853: -46,3 - 3933: -21,6 - 3934: -21,7 - 3935: -22,6 - 3936: -21,7 - 4133: 19,1 - 4134: 21,1 - 4135: 22,1 - 4136: 23,1 - 4137: 23,1 - 4207: 40,-22 - 4208: 41,-22 - 4209: 43,-22 - 4210: 44,-22 - 4269: 61,-25 - 4270: 62,-25 - 4271: 62,-26 - 4276: 68,-23 - 4299: 68,-15 - 4300: 68,-13 - 4301: 68,-14 - 4302: 67,-12 - 4303: 70,-12 - 4304: 70,-14 - 4305: 68,-11 - 4306: 71,-12 - 4307: 70,-14 - 4308: 70,-15 - 4309: 71,-13 - 4310: 69,-13 - 4311: 69,-12 - 4312: 68,-10 - 4313: 67,-10 - 4314: 68,-8 - 4315: 69,-8 - 4316: 70,-9 - 4317: 70,-10 - 4411: 39,-34 - 4412: 40,-34 - 4413: 39,-34 - 4414: 42,-34 - 4415: 40,-34 - 4416: 41,-33 - 4417: 34,-36 - 4418: 34,-35 - 4419: 35,-36 - 4420: 38,-37 - 4421: 43,-37 - 4422: 43,-37 - 4423: 46,-37 - 4424: 46,-35 - 4425: 46,-37 - 4426: 47,-37 - 4427: 48,-36 - 4428: 48,-37 - 4429: 46,-39 - 4430: 44,-39 - 4431: 41,-39 - 4432: 37,-39 - 4433: 35,-39 - 4434: 39,-38 - 4435: 33,-38 + 3398: 25,11 + 3399: 25,13 + 3400: 25,14 + 3401: 23,15 + 3402: 22,12 + 3403: 23,12 + 3404: 23,14 + 3405: 23,11 + 3406: 26,19 + 3407: 24,20 + 3408: 25,21 + 3409: 26,19 + 3410: 25,20 + 3411: 29,20 + 3412: 29,19 + 3413: 30,19 + 3414: 29,21 + 3415: -19,26 + 3416: -21,28 + 3417: -20,26 + 3418: -20,28 + 3419: -7,40 + 3420: 3,40 + 3421: -26,19 + 3422: -17,11 + 3423: -16,11 + 3424: -16,13 + 3425: -17,13 + 3426: -33,11 + 3427: -33,13 + 3428: -33,14 + 3429: -32,14 + 3430: -30,14 + 3431: -29,14 + 3432: -31,14 + 3433: -30,3 + 3434: -32,3 + 3435: -37,3 + 3436: -36,2 + 3437: -35,2 + 3438: -37,1 + 3439: -33,1 + 3440: -32,2 + 3441: -32,1 + 3442: -31,2 + 3443: -33,2 + 3444: -38,0 + 3445: -37,0 + 3446: -34,0 + 3447: -33,0 + 3448: -31,0 + 3449: -30,0 + 3450: -55,6 + 3451: -54,6 + 3452: -54,4 + 3453: -54,2 + 3454: -56,5 + 3455: -55,4 + 3456: -53,1 + 3457: -51,1 + 3458: -49,1 + 3459: -47,1 + 3460: -45,1 + 3461: -44,1 + 3462: -43,1 + 3463: -54,1 + 3464: -54,-4 + 3465: -55,-4 + 3466: -54,-8 + 3467: -54,-10 + 3468: -54,-12 + 3469: -54,-14 + 3470: -54,-16 + 3471: -54,-19 + 3472: -53,-21 + 3473: -51,-21 + 3474: -54,-21 + 3475: -54,-20 + 3476: -54,-18 + 3477: -48,-21 + 3478: -48,-23 + 3479: -48,-24 + 3480: -50,-25 + 3481: -47,-25 + 3482: -45,-25 + 3483: -45,-26 + 3484: -45,-29 + 3485: -44,-28 + 3486: -43,-28 + 3487: -45,-31 + 3488: -48,-32 + 3489: -49,-32 + 3490: -51,-32 + 3491: -51,-30 + 3492: -51,-28 + 3493: -51,-26 + 3494: -48,-33 + 3495: -54,-26 + 3496: -56,-25 + 3497: -55,-25 + 3498: -56,-26 + 3499: -57,-26 + 3500: -55,-26 + 3501: -56,-25 + 3502: -48,-36 + 3503: -48,-38 + 3504: -48,-40 + 3505: -48,-42 + 3506: -48,-44 + 3507: -48,-47 + 3508: -49,-47 + 3509: -51,-47 + 3510: -53,-47 + 3511: -54,-47 + 3512: -45,-47 + 3513: -45,-47 + 3514: -43,-47 + 3515: -41,-47 + 3516: -41,-47 + 3517: -41,-50 + 3518: -41,-51 + 3519: -41,-54 + 3520: -36,-58 + 3521: -36,-60 + 3522: -36,-63 + 3523: -36,-64 + 3524: -36,-56 + 3525: -37,-56 + 3526: -41,-61 + 3527: -42,-62 + 3528: -41,-64 + 3529: -41,-64 + 3530: -42,-62 + 3531: -41,-48 + 3532: -53,-47 + 3533: -55,-47 + 3534: -55,-49 + 3535: -55,-52 + 3536: -55,-54 + 3537: -60,-58 + 3538: -60,-60 + 3539: -60,-62 + 3540: -60,-63 + 3541: -60,-64 + 3542: -58,-56 + 3543: -60,-56 + 3544: -55,-64 + 3545: -55,-62 + 3546: -54,-61 + 3547: -54,-63 + 3548: -54,-64 + 3549: -8,-28 + 3550: -7,-26 + 3551: -8,-27 + 3552: -8,-27 + 3553: 7,-22 + 3554: 5,-22 + 3555: 4,-23 + 3556: 4,-20 + 3557: 4,-19 + 3558: 7,-20 + 3559: 7,-21 + 3560: 7,-24 + 3561: 7,-25 + 3562: 10,-16 + 3563: 10,-18 + 3564: 10,-18 + 3565: 12,-29 + 3566: 12,-28 + 3567: 12,-26 + 3568: 13,-25 + 3569: 14,-25 + 3570: 14,-26 + 3571: 15,-25 + 3572: 16,-26 + 3573: 16,-29 + 3574: -4,-36 + 3575: -4,-37 + 3576: -6,-37 + 3577: 34,-2 + 3578: 33,-2 + 3579: 34,-3 + 3580: 32,-2 + 3581: 32,-3 + 3582: 31,-2 + 3583: 31,-3 + 3584: 31,-35 + 3585: 33,-35 + 3586: 32,-37 + 3587: 33,-36 + 3588: 33,-38 + 3589: 32,-36 + 3590: 31,-38 + 3591: 47,-36 + 3592: 47,-35 + 3593: 49,-35 + 3594: 49,-37 + 3595: 47,-37 + 3596: 47,-38 + 3597: 49,-38 + 3598: 47,-39 + 3599: 24,-29 + 3600: 26,-29 + 3601: 27,-29 + 3602: 28,-29 + 3603: 25,-34 + 3604: 27,-34 + 3605: 28,-34 + 3606: 26,-34 + 3607: 28,-43 + 3608: 29,-43 + 3609: 28,-45 + 3610: 29,-45 + 3611: 28,-46 + 3612: 29,-46 + 3613: 19,-46 + 3614: 18,-46 + 3615: 18,-47 + 3616: 19,-49 + 3617: 19,-49 + 3618: 18,-50 + 3619: 19,-50 + 3620: 18,-48 + 3621: 16,-48 + 3622: 14,-48 + 3623: 12,-47 + 3624: 10,-40 + 3625: 11,-39 + 3626: 11,-40 + 3627: 11,-40 + 3628: 8,-31 + 3629: 8,-31 + 3630: 5,-14 + 3631: 6,-14 + 3632: 6,-15 + 3633: 5,-15 + 3634: 4,-15 + 3635: 4,-15 + 3636: 25,7 + 3637: 20,16 + 3638: 20,18 + 3639: 15,26 + 3640: 14,26 + 3641: 13,26 + 3642: 13,26 + 3643: -44,10 + 3644: -45,10 + 3645: -46,10 + 3646: -47,10 + 3647: -49,10 + 3648: -50,10 + 3649: -50,12 + 3650: -47,12 + 3651: -48,1 + 3652: -47,1 + 3653: -48,-41 + 3654: -38,-56 + 3655: -38,-56 + 3656: -42,-57 + 3657: -55,-57 + 3789: -50,0 + 3790: -50,2 + 3791: -48,2 + 3792: -46,2 + 3793: -45,2 + 3794: -44,0 + 3795: -46,0 + 3796: -48,0 + 3828: -51,3 + 3829: -49,3 + 3830: -47,3 + 3831: -45,3 + 3832: -44,5 + 3833: -46,5 + 3834: -48,5 + 3835: -50,5 + 3836: -50,-1 + 3837: -49,-1 + 3838: -47,-1 + 3839: -46,-1 + 3840: -44,-1 + 3841: -44,-3 + 3842: -46,-3 + 3843: -47,-3 + 3844: -49,-3 + 3845: -50,-3 + 3846: -48,-3 + 3847: -46,-3 + 3848: -48,3 + 3849: -46,3 + 3929: -21,6 + 3930: -21,7 + 3931: -22,6 + 3932: -21,7 + 4129: 19,1 + 4130: 21,1 + 4131: 22,1 + 4132: 23,1 + 4133: 23,1 + 4203: 40,-22 + 4204: 41,-22 + 4205: 43,-22 + 4206: 44,-22 + 4265: 61,-25 + 4266: 62,-25 + 4267: 62,-26 + 4272: 68,-23 + 4295: 68,-15 + 4296: 68,-13 + 4297: 68,-14 + 4298: 67,-12 + 4299: 70,-12 + 4300: 70,-14 + 4301: 68,-11 + 4302: 71,-12 + 4303: 70,-14 + 4304: 70,-15 + 4305: 71,-13 + 4306: 69,-13 + 4307: 69,-12 + 4308: 68,-10 + 4309: 67,-10 + 4310: 68,-8 + 4311: 69,-8 + 4312: 70,-9 + 4313: 70,-10 + 4407: 39,-34 + 4408: 40,-34 + 4409: 39,-34 + 4410: 42,-34 + 4411: 40,-34 + 4412: 41,-33 + 4413: 34,-36 + 4414: 34,-35 + 4415: 35,-36 + 4416: 38,-37 + 4417: 43,-37 + 4418: 43,-37 + 4419: 46,-37 + 4420: 46,-35 + 4421: 46,-37 + 4422: 47,-37 + 4423: 48,-36 + 4424: 48,-37 + 4425: 46,-39 + 4426: 44,-39 + 4427: 41,-39 + 4428: 37,-39 + 4429: 35,-39 + 4430: 39,-38 + 4431: 33,-38 + 4731: -20,6 + 4732: -20,7 + 4733: -21,6 + 4734: -20,7 4735: -20,6 - 4736: -20,7 - 4737: -21,6 - 4738: -20,7 - 4739: -20,6 - 4740: -21,12 - 4741: -25,29 - 4742: -25,28 - 4743: -26,30 - 4744: -26,28 - 4745: -26,29 - 4769: -16,40 - 4770: -17,41 - 4771: -15,39 - 4772: -13,41 - 4773: -12,39 - 4824: -2,46 - 4825: -4,46 - 4826: -1,48 - 4827: 0,47 - 4828: -3,50 - 4829: 0,51 - 4830: 2,47 - 4831: 2,45 - 4832: 2,43 - 4833: 2,40 - 4834: -6,40 - 4835: -7,40 - 4836: -7,40 - 4837: -4,46 - 4838: -5,45 - 4839: -6,46 - 4840: 7,41 - 4841: 6,42 - 4842: 9,40 - 4843: 6,39 - 4844: 8,40 - 4845: 6,39 - 4846: 8,39 - 4847: 7,42 - 4848: 7,41 - 4849: 5,41 - 4880: 14,34 - 4881: 13,36 - 4882: 14,37 - 4883: 16,37 - 4884: 14,36 - 4885: 5,30 - 4886: 4,30 - 4887: 3,32 - 4888: 5,32 - 4889: 5,32 - 4890: 4,31 - 4891: 4,31 - 4892: 3,32 - 4893: 3,28 - 4894: 2,27 - 4895: 1,28 - 4896: 3,27 - 4897: 4,26 - 4898: 3,25 - 4899: 4,24 - 4900: 3,23 - 4901: 1,24 - 4902: 2,23 - 4920: -3,25 - 4921: -4,23 - 4922: -2,23 - 4923: -3,24 - 4924: 0,24 - 4925: 0,23 - 4926: -16,29 - 4927: -15,26 - 4928: -15,28 - 4929: -13,28 - 4930: -13,29 - 4931: -9,28 - 4932: -10,26 - 4933: -9,27 - 4934: -11,28 - 4935: -8,29 - 4936: -9,26 - 4937: -6,27 - 4938: -6,26 - 4939: -6,28 - 4940: -3,29 - 4941: -4,27 - 4942: -1,28 - 4943: -3,29 - 4944: -2,30 - 4945: -3,32 - 4946: -2,33 - 4947: -2,34 - 4948: -8,33 - 4949: -7,32 - 4950: -8,32 - 4951: -9,33 - 4952: -6,34 - 4953: -6,33 - 4954: -13,34 - 5022: -17,-28 - 5023: -19,-28 - 5024: -20,-27 - 5025: -20,-26 - 5026: -20,-27 - 5027: -15,-28 - 5028: -14,-28 - 5029: -14,-27 - 5030: -14,-29 - 5031: -17,-29 - 5096: -14,-38 - 5097: -14,-38 - 5115: -6,-37 - 5116: -5,-37 - 5117: -4,-37 - 5303: 78,-28 - 5304: 79,-28 - 5305: 78,-28 - 5306: 78,-27 - 5307: 78,-29 - 5372: 13,-45 - 5373: 12,-45 - 5374: 12,-50 - 5375: 12,-49 - 5376: 16,-49 - 5377: 15,-49 - 6208: 81,-34 - 6209: 82,-35 - 6210: 81,-35 - 6211: 81,-35 - 6237: -2,41 - 6238: -2,42 - 6239: -3,42 - 6240: -3,42 - 6241: -1,43 - 6263: 46,15 - 6264: 47,15 - 6265: 47,15 - 6266: 45,16 - 6479: 49,-1 - 6480: 51,-1 - 6481: 50,-2 - 6482: 49,-3 - 6483: 49,-5 - 6484: 51,-5 - 6485: 51,-3 - 6486: 50,-8 - 6487: 49,-8 - 6488: 48,-7 - 6489: 52,-8 - 6490: 54,-7 - 6491: 49,-10 - 6492: 50,-11 - 6493: 48,-11 - 6494: 51,-10 - 6495: 51,-11 - 6496: 52,-11 - 6497: 53,-11 - 6523: 50,2 - 6524: 50,4 - 6525: 50,9 - 6526: 50,12 - 6527: 50,13 - 6528: 47,9 - 6529: 47,7 - 6530: 41,8 - 6531: 41,7 - 6532: 40,8 - 6533: 40,7 - 6534: 44,8 - 6556: 46,4 - 6557: 45,4 - 6558: 46,2 - 6559: 45,2 - 6560: 45,1 - 6561: 46,5 - 6562: 40,5 - 6563: 44,4 - 6564: 44,7 - 6565: 55,3 - 6566: 54,2 - 6567: 53,3 - 6568: 55,4 - 6569: 57,4 - 6570: 56,2 - 6571: 55,1 - 6572: 55,6 - 6573: 53,7 - 6574: 53,6 - 6575: 55,8 - 6576: 56,10 - 6577: 55,10 - 6578: 53,12 - 6579: 53,11 - 6580: 57,14 - 6590: -1,-23 - 6591: 0,-23 - 6592: -4,-23 - 6593: -5,-23 - 6594: 35,19 - 6595: 34,19 - 6596: 35,20 - 6597: -8,27 - 6598: -12,27 - 6599: -10,27 - 6600: -14,27 - 6601: -15,27 - 6602: -15,27 - 6636: 88,-18 - 6637: 87,-18 - 6638: 91,-19 - 6639: 91,-18 - 6640: 92,-19 - 6722: 51,-36 - 6723: 51,-37 - 6724: 53,-39 - 6725: 54,-40 - 6726: 51,-35 - 6733: 51,-29 - 6739: 51,-26 - 6740: 52,-27 - 6741: 56,-27 - 6742: 56,-29 - 6758: -32,-12 - 6759: -34,-11 - 6760: -32,-10 - 6761: -33,-9 - 6762: -34,-9 - 6766: 61,-21 - 6767: -24,-42 - 6770: -25,-42 - 6771: -22,-42 - 6772: -22,-42 - 6779: -37,-45 - 6780: -38,-44 - 6781: -38,-46 - 6782: -37,-46 + 4736: -21,12 + 4737: -25,29 + 4738: -25,28 + 4739: -26,30 + 4740: -26,28 + 4741: -26,29 + 4765: -16,40 + 4766: -17,41 + 4767: -15,39 + 4768: -13,41 + 4769: -12,39 + 4820: -2,46 + 4821: -4,46 + 4822: -1,48 + 4823: 0,47 + 4824: -3,50 + 4825: 0,51 + 4826: 2,47 + 4827: 2,45 + 4828: 2,43 + 4829: 2,40 + 4830: -6,40 + 4831: -7,40 + 4832: -7,40 + 4833: -4,46 + 4834: -5,45 + 4835: -6,46 + 4836: 7,41 + 4837: 6,42 + 4838: 9,40 + 4839: 6,39 + 4840: 8,40 + 4841: 6,39 + 4842: 8,39 + 4843: 7,42 + 4844: 7,41 + 4845: 5,41 + 4876: 14,34 + 4877: 13,36 + 4878: 14,37 + 4879: 16,37 + 4880: 14,36 + 4881: 5,30 + 4882: 4,30 + 4883: 3,32 + 4884: 5,32 + 4885: 5,32 + 4886: 4,31 + 4887: 4,31 + 4888: 3,32 + 4889: 3,28 + 4890: 2,27 + 4891: 1,28 + 4892: 3,27 + 4893: 4,26 + 4894: 3,25 + 4895: 4,24 + 4896: 3,23 + 4897: 1,24 + 4898: 2,23 + 4916: -3,25 + 4917: -4,23 + 4918: -2,23 + 4919: -3,24 + 4920: 0,24 + 4921: 0,23 + 4922: -16,29 + 4923: -15,26 + 4924: -15,28 + 4925: -13,28 + 4926: -13,29 + 4927: -9,28 + 4928: -10,26 + 4929: -9,27 + 4930: -11,28 + 4931: -8,29 + 4932: -9,26 + 4933: -6,27 + 4934: -6,26 + 4935: -6,28 + 4936: -3,29 + 4937: -4,27 + 4938: -1,28 + 4939: -3,29 + 4940: -2,30 + 4941: -3,32 + 4942: -2,33 + 4943: -2,34 + 4944: -8,33 + 4945: -7,32 + 4946: -8,32 + 4947: -9,33 + 4948: -6,34 + 4949: -6,33 + 4950: -13,34 + 5018: -17,-28 + 5019: -19,-28 + 5020: -20,-27 + 5021: -20,-26 + 5022: -20,-27 + 5023: -15,-28 + 5024: -14,-28 + 5025: -14,-27 + 5026: -14,-29 + 5027: -17,-29 + 5089: -14,-38 + 5090: -14,-38 + 5108: -6,-37 + 5109: -5,-37 + 5110: -4,-37 + 5296: 78,-28 + 5297: 79,-28 + 5298: 78,-28 + 5299: 78,-27 + 5300: 78,-29 + 5365: 13,-45 + 5366: 12,-45 + 5367: 12,-50 + 5368: 12,-49 + 5369: 16,-49 + 5370: 15,-49 + 6201: 81,-34 + 6202: 82,-35 + 6203: 81,-35 + 6204: 81,-35 + 6230: -2,41 + 6231: -2,42 + 6232: -3,42 + 6233: -3,42 + 6234: -1,43 + 6256: 46,15 + 6257: 47,15 + 6258: 47,15 + 6259: 45,16 + 6472: 49,-1 + 6473: 51,-1 + 6474: 50,-2 + 6475: 49,-3 + 6476: 49,-5 + 6477: 51,-5 + 6478: 51,-3 + 6479: 50,-8 + 6480: 49,-8 + 6481: 48,-7 + 6482: 52,-8 + 6483: 54,-7 + 6484: 49,-10 + 6485: 50,-11 + 6486: 48,-11 + 6487: 51,-10 + 6488: 51,-11 + 6489: 52,-11 + 6490: 53,-11 + 6516: 50,2 + 6517: 50,4 + 6518: 50,9 + 6519: 50,12 + 6520: 50,13 + 6521: 47,9 + 6522: 47,7 + 6523: 41,8 + 6524: 41,7 + 6525: 40,8 + 6526: 40,7 + 6527: 44,8 + 6549: 46,4 + 6550: 45,4 + 6551: 46,2 + 6552: 45,2 + 6553: 45,1 + 6554: 46,5 + 6555: 40,5 + 6556: 44,4 + 6557: 44,7 + 6558: 55,3 + 6559: 54,2 + 6560: 53,3 + 6561: 55,4 + 6562: 57,4 + 6563: 56,2 + 6564: 55,1 + 6565: 55,6 + 6566: 53,7 + 6567: 53,6 + 6568: 55,8 + 6569: 56,10 + 6570: 55,10 + 6571: 53,12 + 6572: 53,11 + 6573: 57,14 + 6583: -1,-23 + 6584: 0,-23 + 6585: -4,-23 + 6586: -5,-23 + 6587: 35,19 + 6588: 34,19 + 6589: 35,20 + 6590: -8,27 + 6591: -12,27 + 6592: -10,27 + 6593: -14,27 + 6594: -15,27 + 6595: -15,27 + 6629: 88,-18 + 6630: 87,-18 + 6631: 91,-19 + 6632: 91,-18 + 6633: 92,-19 + 6715: 51,-36 + 6716: 51,-37 + 6717: 53,-39 + 6718: 54,-40 + 6719: 51,-35 + 6726: 51,-29 + 6732: 51,-26 + 6733: 52,-27 + 6734: 56,-27 + 6735: 56,-29 + 6751: -32,-12 + 6752: -34,-11 + 6753: -32,-10 + 6754: -33,-9 + 6755: -34,-9 + 6759: 61,-21 + 6760: -24,-42 + 6762: -25,-42 + 6763: -22,-42 + 6764: -22,-42 + 6771: -37,-45 + 6772: -38,-44 + 6773: -38,-46 + 6774: -37,-46 - node: cleanable: True angle: 1.5707963267948966 rad color: '#FFFFFFFF' id: DirtHeavyMonotile decals: - 3022: -44,17 - 6687: 13,-30 - 6688: 16,-30 - 6689: 12,-30 - 6690: 12,-30 + 3019: -44,17 + 6680: 13,-30 + 6681: 16,-30 + 6682: 12,-30 + 6683: 12,-30 - node: cleanable: True angle: -6.283185307179586 rad color: '#FFFFFFFF' id: DirtLight decals: - 6662: 89,-21 - 6663: 90,-20 + 6655: 89,-21 + 6656: 90,-20 - node: cleanable: True color: '#FFFFFFFF' id: DirtLight decals: - 6581: 57,4 - 6582: 57,2 - 6583: 54,3 - 6584: 56,1 - 6585: 49,-15 - 6586: 52,-15 - 6587: 43,4 - 6778: -36,-44 + 6574: 57,4 + 6575: 57,2 + 6576: 54,3 + 6577: 56,1 + 6578: 49,-15 + 6579: 52,-15 + 6580: 43,4 + 6770: -36,-44 - node: cleanable: True angle: 1.5707963267948966 rad color: '#FFFFFFFF' id: DirtLight decals: - 3021: -44,16 + 3018: -44,16 - node: cleanable: True color: '#FFFFFF47' id: DirtMedium decals: - 6695: 11,-29 - 6696: 11,-29 + 6688: 11,-29 + 6689: 11,-29 - node: cleanable: True angle: -6.283185307179586 rad color: '#FFFFFFFF' id: DirtMedium decals: - 6665: 91,-21 - 6666: 90,-21 + 6658: 91,-21 + 6659: 90,-21 - node: cleanable: True color: '#FFFFFFFF' id: DirtMedium decals: - 3963: -16,11 - 3964: -17,12 - 6734: 52,-30 - 6763: -32,-9 - 6764: -34,-12 - 6777: -36,-46 + 3959: -16,11 + 3960: -17,12 + 6727: 52,-30 + 6756: -32,-9 + 6757: -34,-12 + 6769: -36,-46 - node: cleanable: True angle: 1.5707963267948966 rad color: '#FFFFFFFF' id: DirtMedium decals: - 3020: -44,15 + 3017: -44,15 - node: color: '#FFFFFFFF' id: FlowersBROne decals: 880: -47,-2 907: -50,-7 - 1942: 56,-22 + 1940: 56,-22 - node: color: '#FFFFFFFF' id: FlowersBRThree @@ -6399,7 +6407,7 @@ entities: color: '#FFFFFFFF' id: FlowersBRThree decals: - 3054: 80.70172,-6.173584 + 3051: 80.70172,-6.173584 - node: color: '#FFFFFFFF' id: FlowersBRTwo @@ -6430,7 +6438,7 @@ entities: color: '#FFFFFFFF' id: Flowerspv1 decals: - 3055: 80.04127,-7.0725327 + 3052: 80.04127,-7.0725327 - node: color: '#FFFFFFFF' id: Flowerspv3 @@ -6444,7 +6452,7 @@ entities: color: '#FFFFFFFF' id: Flowersy1 decals: - 1941: 55,-23 + 1939: 55,-23 - node: color: '#FFFFFFFF' id: Flowersy2 @@ -6458,14 +6466,14 @@ entities: color: '#FFFFFFFF' id: Flowersy2 decals: - 3056: 81.08699,-7.6962934 + 3053: 81.08699,-7.6962934 - node: color: '#FFFFFFFF' id: Flowersy3 decals: 877: -50,4 908: -47,-7 - 2264: 25,1 + 2261: 25,1 - node: color: '#FFFFFFFF' id: Flowersy4 @@ -6476,13 +6484,13 @@ entities: color: '#EFB34196' id: FullTileOverlayGreyscale decals: - 6242: 43,13 + 6235: 43,13 - node: cleanable: True color: '#FFFFFFFF' id: Grassa2 decals: - 3044: 80,-6 + 3041: 80,-6 - node: color: '#FFFFFFFF' id: Grassa3 @@ -6493,20 +6501,20 @@ entities: id: Grassa4 decals: 1494: -47,-49 - 1948: 53.52114,-21.634073 + 1946: 53.52114,-21.634073 - node: cleanable: True color: '#FFFFFFFF' id: Grassa4 decals: - 3043: 80,-8 + 3040: 80,-8 - node: color: '#FFFFFFFF' id: Grassa5 decals: 898: -49,-7 1495: -45,-49 - 1949: 57.536766,-22.899698 + 1947: 57.536766,-22.899698 - node: color: '#FFFFFFFF' id: Grassb1 @@ -6530,7 +6538,7 @@ entities: decals: 897: -48,-9 1493: -50,-49 - 1947: 54.661766,-23.446573 + 1945: 54.661766,-23.446573 - node: color: '#FFFFFFFF' id: Grassb5 @@ -6546,7 +6554,7 @@ entities: color: '#FFFFFFFF' id: Grassc1 decals: - 3046: 79.637665,-6.118546 + 3043: 79.637665,-6.118546 - node: color: '#FFFFFFFF' id: Grassc2 @@ -6557,7 +6565,7 @@ entities: color: '#FFFFFFFF' id: Grassc2 decals: - 3047: 81.362175,-7.1642623 + 3044: 81.362175,-7.1642623 - node: color: '#FFFFFFFF' id: Grassc4 @@ -6569,7 +6577,7 @@ entities: color: '#FFFFFFFF' id: Grassc4 decals: - 3045: 79.56428,-7.366067 + 3042: 79.56428,-7.366067 - node: color: '#FFFFFFFF' id: Grassd1 @@ -6581,27 +6589,27 @@ entities: color: '#FFFFFFFF' id: Grassd1 decals: - 3048: 79.14232,-8.063211 + 3045: 79.14232,-8.063211 - node: color: '#FFFFFFFF' id: Grassd2 decals: 891: -45,-9 - 1951: 53.52114,-22.368448 + 1949: 53.52114,-22.368448 - node: color: '#FFFFFFFF' id: Grassd3 decals: 890: -48,-7 935: -48,-27 - 1952: 57.73989,-21.884073 + 1950: 57.73989,-21.884073 - node: cleanable: True color: '#FFFFFFFF' id: Grassd3 decals: - 3049: 79.05059,-6.320351 - 3050: 80.53661,-6.6872687 + 3046: 79.05059,-6.320351 + 3047: 80.53661,-6.6872687 - node: color: '#FFFFFFFF' id: Grasse1 @@ -6613,13 +6621,13 @@ entities: color: '#FFFFFFFF' id: Grasse1 decals: - 3053: 81.784134,-6.4304266 + 3050: 81.784134,-6.4304266 - node: cleanable: True color: '#FFFFFFFF' id: Grasse2 decals: - 3051: 80.518265,-8.02652 + 3048: 80.518265,-8.02652 - node: color: '#FFFFFFFF' id: Grasse3 @@ -6627,18 +6635,18 @@ entities: 887: -50,-7 934: -47,-30 1749: 57,19 - 1950: 55.95864,-23.352823 + 1948: 55.95864,-23.352823 - node: cleanable: True color: '#FFFFFFFF' id: Grasse3 decals: - 3052: 80.72007,-6.0451627 + 3049: 80.72007,-6.0451627 - node: color: '#52B4E996' id: HalfTileOverlayGreyscale decals: - 6312: 44,7 + 6305: 44,7 - node: color: '#A4610696' id: HalfTileOverlayGreyscale @@ -6685,7 +6693,7 @@ entities: color: '#52B4E996' id: HalfTileOverlayGreyscale180 decals: - 6313: 44,9 + 6306: 44,9 - node: color: '#A4610696' id: HalfTileOverlayGreyscale180 @@ -6709,7 +6717,7 @@ entities: color: '#52B4E996' id: HalfTileOverlayGreyscale270 decals: - 6314: 45,8 + 6307: 45,8 - node: color: '#DE3A3A96' id: HalfTileOverlayGreyscale270 @@ -6724,7 +6732,7 @@ entities: color: '#52B4E996' id: HalfTileOverlayGreyscale90 decals: - 6315: 43,8 + 6308: 43,8 - node: color: '#A4610696' id: HalfTileOverlayGreyscale90 @@ -6770,8 +6778,8 @@ entities: color: '#FFFFFFFF' id: LoadingArea decals: - 6654: 89,-20 - 6655: 90,-20 + 6647: 89,-20 + 6648: 90,-20 - node: angle: -1.5707963267948966 rad color: '#FFFFFFFF' @@ -6779,25 +6787,25 @@ entities: decals: 1793: 58,-24 1794: 58,-23 - 2197: -4,-36 - 2215: -56,-59 - 2216: -56,-66 + 2194: -4,-36 + 2212: -56,-59 + 2213: -56,-66 - node: color: '#FFFFFFFF' id: LoadingArea decals: 352: 39,-22 - 3183: 25,22 - 3184: 29,22 - 6221: -44,24 + 3179: 25,22 + 3180: 29,22 + 6214: -44,24 - node: angle: 1.5707963267948966 rad color: '#FFFFFFFF' id: LoadingArea decals: - 2231: -40,-59 - 2232: -40,-66 - 6222: -45,23 + 2228: -40,-59 + 2229: -40,-66 + 6215: -45,23 - node: angle: 3.141592653589793 rad color: '#FFFFFFFF' @@ -6805,27 +6813,27 @@ entities: decals: 351: 45,-22 1774: 63,-26 - 6223: -44,22 + 6216: -44,22 - node: angle: 4.71238898038469 rad color: '#FFFFFFFF' id: LoadingArea decals: 1273: 23,12 - 6224: -43,23 + 6217: -43,23 - node: color: '#52B4E996' id: MiniTileCheckerAOverlay decals: - 2249: 13,25 - 2250: 14,25 - 2251: 15,25 - 2252: 15,24 - 2253: 15,23 - 2254: 14,23 - 2255: 14,24 - 2256: 13,24 - 2257: 13,23 + 2246: 13,25 + 2247: 14,25 + 2248: 15,25 + 2249: 15,24 + 2250: 15,23 + 2251: 14,23 + 2252: 14,24 + 2253: 13,24 + 2254: 13,23 - node: color: '#FFFFFFFF' id: MiniTileDarkLineN @@ -6840,7 +6848,7 @@ entities: color: '#FFFFFFFF' id: MiniTileDarkLineN decals: - 3290: -19,20 + 3286: -19,20 - node: color: '#FFFFFFFF' id: MiniTileDarkLineS @@ -6855,640 +6863,640 @@ entities: color: '#9D9D97FF' id: MiniTileWhiteCornerNe decals: - 2435: -43,-25 - 2521: -40,-46 + 2432: -43,-25 + 2518: -40,-46 - node: color: '#9D9D97FF' id: MiniTileWhiteCornerNw decals: - 2335: -26,-9 - 2379: -55,7 - 2520: -56,-46 - 2621: 27,-19 - 2831: -27,21 + 2332: -26,-9 + 2376: -55,7 + 2517: -56,-46 + 2618: 27,-19 + 2828: -27,21 - node: color: '#9D9D97FF' id: MiniTileWhiteCornerSe decals: - 2323: -23,-11 - 2447: -46,-33 - 2451: -43,-32 + 2320: -23,-11 + 2444: -46,-33 + 2448: -43,-32 - node: color: '#9D9D97FF' id: MiniTileWhiteCornerSw decals: - 2443: -52,-32 - 2446: -50,-33 - 2597: 7,-34 - 2701: 40,1 - 2730: 19,2 + 2440: -52,-32 + 2443: -50,-33 + 2594: 7,-34 + 2698: 40,1 + 2727: 19,2 - node: color: '#9D9D97FF' id: MiniTileWhiteInnerNe decals: - 2298: -23,-30 - 2347: -25,9 - 2436: -44,-25 - 2566: -28,-30 - 2849: 77,-19 - 2850: 77,-15 + 2295: -23,-30 + 2344: -25,9 + 2433: -44,-25 + 2563: -28,-30 + 2846: 77,-19 + 2847: 77,-15 - node: color: '#9D9D97FF' id: MiniTileWhiteInnerNw decals: - 2336: -25,-9 - 2565: -41,-30 - 2613: 27,-25 - 2665: 57,-19 + 2333: -25,-9 + 2562: -41,-30 + 2610: 27,-25 + 2662: 57,-19 - node: color: '#9D9D97FF' id: MiniTileWhiteInnerSe decals: - 2322: -24,-11 - 2448: -46,-32 - 2454: -47,-33 - 2519: -54,-48 - 2564: -28,-27 - 2669: 59,-21 - 2847: 77,-13 - 2848: 77,-17 + 2319: -24,-11 + 2445: -46,-32 + 2451: -47,-33 + 2516: -54,-48 + 2561: -28,-27 + 2666: 59,-21 + 2844: 77,-13 + 2845: 77,-17 - node: color: '#9D9D97FF' id: MiniTileWhiteInnerSw decals: - 2445: -50,-32 - 2455: -49,-33 - 2518: -42,-48 - 2563: -41,-27 - 2595: 7,-32 - 2674: 52,-21 - 2700: 41,1 - 2702: 40,2 - 2770: 19,19 + 2442: -50,-32 + 2452: -49,-33 + 2515: -42,-48 + 2560: -41,-27 + 2592: 7,-32 + 2671: 52,-21 + 2697: 41,1 + 2699: 40,2 + 2767: 19,19 - node: color: '#9D9D97FF' id: MiniTileWhiteLineE decals: - 2299: -23,-29 - 2300: -24,-25 - 2301: -24,-24 - 2302: -24,-23 - 2303: -24,-23 - 2304: -24,-20 - 2305: -24,-20 + 2296: -23,-29 + 2297: -24,-25 + 2298: -24,-24 + 2299: -24,-23 + 2300: -24,-23 + 2301: -24,-20 + 2302: -24,-20 + 2303: -24,-20 + 2304: -24,-21 + 2305: -24,-21 2306: -24,-20 - 2307: -24,-21 - 2308: -24,-21 - 2309: -24,-20 - 2310: -24,-19 - 2311: -24,-19 - 2312: -24,-19 - 2313: -24,-17 - 2314: -24,-17 - 2315: -24,-16 - 2316: -24,-16 - 2317: -24,-16 - 2318: -24,-15 - 2319: -24,-14 - 2320: -24,-14 - 2321: -24,-13 - 2324: -23,-10 - 2325: -23,-9 - 2326: -23,-8 - 2337: -25,4 - 2338: -25,5 - 2339: -25,6 - 2340: -25,7 - 2352: -43,0 - 2353: -43,1 - 2354: -43,2 - 2355: -43,3 - 2356: -43,-1 - 2395: -53,-6 - 2396: -53,-7 - 2397: -53,-7 - 2398: -53,-8 - 2399: -53,-9 - 2400: -53,-9 - 2401: -53,-10 - 2402: -53,-12 - 2410: -53,-13 - 2411: -53,-13 - 2412: -53,-15 - 2413: -53,-15 - 2414: -53,-15 - 2416: -53,-14 - 2417: -53,-16 - 2418: -53,-17 - 2419: -53,-18 - 2425: -44,-20 - 2426: -44,-21 - 2427: -44,-22 - 2428: -44,-22 - 2429: -44,-23 - 2430: -44,-23 - 2431: -44,-24 - 2432: -43,-25 - 2433: -43,-26 - 2434: -43,-27 - 2452: -43,-31 - 2453: -43,-30 - 2458: -47,-35 - 2459: -47,-36 - 2460: -47,-36 - 2461: -47,-38 - 2462: -47,-39 - 2463: -47,-40 - 2474: -47,-41 - 2475: -47,-42 - 2476: -47,-42 - 2477: -47,-43 - 2478: -47,-44 - 2479: -47,-44 - 2530: -40,-47 - 2531: -40,-48 - 2532: -40,-50 - 2533: -40,-50 - 2534: -40,-51 - 2535: -40,-51 - 2536: -40,-51 - 2537: -40,-52 - 2538: -40,-53 - 2539: -40,-53 - 2540: -40,-53 - 2541: -40,-54 - 2542: -54,-51 - 2543: -54,-51 - 2544: -54,-52 - 2545: -54,-52 - 2546: -54,-53 - 2547: -54,-53 - 2548: -54,-54 - 2559: -28,-29 - 2560: -28,-28 - 2670: 59,-22 - 2675: 43,-17 - 2676: 43,-16 - 2677: 43,-15 - 2678: 43,-15 - 2684: 43,-12 - 2685: 43,-11 - 2750: 21,10 - 2751: 21,11 - 2752: 21,11 - 2753: 21,12 - 2754: 21,12 - 2755: 21,12 - 2756: 21,13 - 2757: 21,14 - 2758: 21,15 - 2845: 77,-14 - 2846: 77,-18 - 3182: -54,-50 + 2307: -24,-19 + 2308: -24,-19 + 2309: -24,-19 + 2310: -24,-17 + 2311: -24,-17 + 2312: -24,-16 + 2313: -24,-16 + 2314: -24,-16 + 2315: -24,-15 + 2316: -24,-14 + 2317: -24,-14 + 2318: -24,-13 + 2321: -23,-10 + 2322: -23,-9 + 2323: -23,-8 + 2334: -25,4 + 2335: -25,5 + 2336: -25,6 + 2337: -25,7 + 2349: -43,0 + 2350: -43,1 + 2351: -43,2 + 2352: -43,3 + 2353: -43,-1 + 2392: -53,-6 + 2393: -53,-7 + 2394: -53,-7 + 2395: -53,-8 + 2396: -53,-9 + 2397: -53,-9 + 2398: -53,-10 + 2399: -53,-12 + 2407: -53,-13 + 2408: -53,-13 + 2409: -53,-15 + 2410: -53,-15 + 2411: -53,-15 + 2413: -53,-14 + 2414: -53,-16 + 2415: -53,-17 + 2416: -53,-18 + 2422: -44,-20 + 2423: -44,-21 + 2424: -44,-22 + 2425: -44,-22 + 2426: -44,-23 + 2427: -44,-23 + 2428: -44,-24 + 2429: -43,-25 + 2430: -43,-26 + 2431: -43,-27 + 2449: -43,-31 + 2450: -43,-30 + 2455: -47,-35 + 2456: -47,-36 + 2457: -47,-36 + 2458: -47,-38 + 2459: -47,-39 + 2460: -47,-40 + 2471: -47,-41 + 2472: -47,-42 + 2473: -47,-42 + 2474: -47,-43 + 2475: -47,-44 + 2476: -47,-44 + 2527: -40,-47 + 2528: -40,-48 + 2529: -40,-50 + 2530: -40,-50 + 2531: -40,-51 + 2532: -40,-51 + 2533: -40,-51 + 2534: -40,-52 + 2535: -40,-53 + 2536: -40,-53 + 2537: -40,-53 + 2538: -40,-54 + 2539: -54,-51 + 2540: -54,-51 + 2541: -54,-52 + 2542: -54,-52 + 2543: -54,-53 + 2544: -54,-53 + 2545: -54,-54 + 2556: -28,-29 + 2557: -28,-28 + 2667: 59,-22 + 2672: 43,-17 + 2673: 43,-16 + 2674: 43,-15 + 2675: 43,-15 + 2681: 43,-12 + 2682: 43,-11 + 2747: 21,10 + 2748: 21,11 + 2749: 21,11 + 2750: 21,12 + 2751: 21,12 + 2752: 21,12 + 2753: 21,13 + 2754: 21,14 + 2755: 21,15 + 2842: 77,-14 + 2843: 77,-18 + 3178: -54,-50 - node: color: '#9D9D97FF' id: MiniTileWhiteLineN decals: - 2292: -22,-30 - 2293: -21,-30 - 2294: -20,-30 - 2295: -20,-30 - 2296: -18,-30 - 2297: -19,-30 - 2341: -19,9 - 2342: -20,9 - 2343: -21,9 - 2344: -22,9 - 2345: -24,9 - 2346: -23,9 - 2366: -51,7 - 2367: -50,7 - 2368: -49,7 - 2369: -48,7 - 2370: -47,7 - 2371: -47,7 - 2372: -46,7 - 2373: -45,7 - 2374: -42,7 - 2375: -43,7 - 2376: -54,7 - 2377: -55,7 - 2378: -53,7 - 2480: -54,-46 + 2289: -22,-30 + 2290: -21,-30 + 2291: -20,-30 + 2292: -20,-30 + 2293: -18,-30 + 2294: -19,-30 + 2338: -19,9 + 2339: -20,9 + 2340: -21,9 + 2341: -22,9 + 2342: -24,9 + 2343: -23,9 + 2363: -51,7 + 2364: -50,7 + 2365: -49,7 + 2366: -48,7 + 2367: -47,7 + 2368: -47,7 + 2369: -46,7 + 2370: -45,7 + 2371: -42,7 + 2372: -43,7 + 2373: -54,7 + 2374: -55,7 + 2375: -53,7 + 2477: -54,-46 + 2478: -51,-46 + 2479: -50,-46 + 2480: -50,-46 2481: -51,-46 - 2482: -50,-46 - 2483: -50,-46 - 2484: -51,-46 + 2482: -53,-46 + 2483: -54,-46 + 2484: -54,-46 2485: -53,-46 - 2486: -54,-46 + 2486: -52,-46 2487: -54,-46 - 2488: -53,-46 - 2489: -52,-46 - 2490: -54,-46 - 2491: -55,-46 - 2492: -46,-46 - 2493: -45,-46 - 2494: -45,-46 - 2495: -44,-46 - 2496: -44,-46 - 2497: -43,-46 - 2498: -43,-46 - 2499: -42,-46 - 2500: -42,-46 - 2501: -41,-46 - 2585: -11,-30 - 2586: -10,-30 - 2587: -10,-30 - 2611: 25,-25 - 2612: 26,-25 - 2622: 28,-19 - 2623: 29,-19 - 2624: 29,-19 - 2625: 31,-19 - 2626: 31,-19 - 2627: 32,-19 - 2628: 32,-19 - 2629: 32,-19 - 2630: 34,-19 - 2631: 34,-19 - 2632: 34,-19 - 2633: 33,-19 - 2634: 35,-19 - 2635: 35,-19 - 2636: 36,-19 - 2637: 36,-19 - 2638: 37,-19 - 2639: 37,-19 - 2640: 39,-19 - 2641: 39,-19 - 2642: 40,-19 - 2643: 40,-19 - 2644: 40,-19 - 2645: 41,-19 - 2646: 42,-19 - 2647: 42,-19 - 2648: 43,-19 - 2649: 44,-19 - 2650: 44,-19 - 2651: 45,-19 - 2652: 47,-19 - 2653: 47,-19 - 2654: 48,-19 - 2655: 49,-19 - 2656: 49,-19 - 2657: 50,-19 - 2658: 51,-19 - 2659: 52,-19 - 2660: 52,-19 - 2661: 54,-19 - 2662: 55,-19 - 2663: 56,-19 - 2664: 53,-19 - 2707: 37,4 - 2708: 35,4 - 2709: 34,4 - 2710: 33,4 - 2711: 32,4 - 2712: 32,4 - 2713: 31,4 - 2773: 20,21 - 2774: 19,21 - 2775: 19,21 - 2776: 18,21 + 2488: -55,-46 + 2489: -46,-46 + 2490: -45,-46 + 2491: -45,-46 + 2492: -44,-46 + 2493: -44,-46 + 2494: -43,-46 + 2495: -43,-46 + 2496: -42,-46 + 2497: -42,-46 + 2498: -41,-46 + 2582: -11,-30 + 2583: -10,-30 + 2584: -10,-30 + 2608: 25,-25 + 2609: 26,-25 + 2619: 28,-19 + 2620: 29,-19 + 2621: 29,-19 + 2622: 31,-19 + 2623: 31,-19 + 2624: 32,-19 + 2625: 32,-19 + 2626: 32,-19 + 2627: 34,-19 + 2628: 34,-19 + 2629: 34,-19 + 2630: 33,-19 + 2631: 35,-19 + 2632: 35,-19 + 2633: 36,-19 + 2634: 36,-19 + 2635: 37,-19 + 2636: 37,-19 + 2637: 39,-19 + 2638: 39,-19 + 2639: 40,-19 + 2640: 40,-19 + 2641: 40,-19 + 2642: 41,-19 + 2643: 42,-19 + 2644: 42,-19 + 2645: 43,-19 + 2646: 44,-19 + 2647: 44,-19 + 2648: 45,-19 + 2649: 47,-19 + 2650: 47,-19 + 2651: 48,-19 + 2652: 49,-19 + 2653: 49,-19 + 2654: 50,-19 + 2655: 51,-19 + 2656: 52,-19 + 2657: 52,-19 + 2658: 54,-19 + 2659: 55,-19 + 2660: 56,-19 + 2661: 53,-19 + 2704: 37,4 + 2705: 35,4 + 2706: 34,4 + 2707: 33,4 + 2708: 32,4 + 2709: 32,4 + 2710: 31,4 + 2770: 20,21 + 2771: 19,21 + 2772: 19,21 + 2773: 18,21 + 2774: 16,21 + 2775: 16,21 + 2776: 16,21 2777: 16,21 - 2778: 16,21 - 2779: 16,21 - 2780: 16,21 - 2781: 15,21 - 2782: 13,21 - 2783: 13,21 - 2784: 12,21 - 2785: 11,21 - 2786: 10,21 - 2787: 10,21 - 2788: 9,21 - 2789: 8,21 - 2828: -26,21 - 2838: 66,-17 - 2839: 68,-17 - 2840: 67,-17 - 2841: 69,-17 - 2842: 70,-17 - 2843: 70,-17 - 2844: 71,-17 + 2778: 15,21 + 2779: 13,21 + 2780: 13,21 + 2781: 12,21 + 2782: 11,21 + 2783: 10,21 + 2784: 10,21 + 2785: 9,21 + 2786: 8,21 + 2825: -26,21 + 2835: 66,-17 + 2836: 68,-17 + 2837: 67,-17 + 2838: 69,-17 + 2839: 70,-17 + 2840: 70,-17 + 2841: 71,-17 - node: color: '#9D9D97FF' id: MiniTileWhiteLineS decals: - 2282: -25,-32 - 2283: -23,-32 - 2284: -24,-32 - 2285: -22,-32 - 2286: -22,-32 - 2287: -21,-32 - 2288: -19,-32 - 2289: -19,-32 - 2290: -18,-32 - 2291: -18,-32 - 2357: -45,-5 - 2358: -46,-5 - 2359: -47,-5 - 2360: -48,-5 - 2361: -48,-5 - 2362: -50,-5 - 2363: -50,-5 - 2364: -49,-5 - 2365: -51,-5 - 2444: -51,-32 - 2449: -45,-32 - 2450: -44,-32 - 2502: -53,-48 - 2503: -52,-48 - 2504: -51,-48 + 2279: -25,-32 + 2280: -23,-32 + 2281: -24,-32 + 2282: -22,-32 + 2283: -22,-32 + 2284: -21,-32 + 2285: -19,-32 + 2286: -19,-32 + 2287: -18,-32 + 2288: -18,-32 + 2354: -45,-5 + 2355: -46,-5 + 2356: -47,-5 + 2357: -48,-5 + 2358: -48,-5 + 2359: -50,-5 + 2360: -50,-5 + 2361: -49,-5 + 2362: -51,-5 + 2441: -51,-32 + 2446: -45,-32 + 2447: -44,-32 + 2499: -53,-48 + 2500: -52,-48 + 2501: -51,-48 + 2502: -50,-48 + 2503: -50,-48 + 2504: -49,-48 2505: -50,-48 2506: -50,-48 - 2507: -49,-48 - 2508: -50,-48 - 2509: -50,-48 - 2510: -48,-48 - 2511: -48,-48 - 2512: -47,-48 - 2513: -47,-48 - 2514: -46,-48 - 2515: -45,-48 - 2516: -44,-48 - 2517: -43,-48 - 2567: -16,-32 - 2568: -14,-32 + 2507: -48,-48 + 2508: -48,-48 + 2509: -47,-48 + 2510: -47,-48 + 2511: -46,-48 + 2512: -45,-48 + 2513: -44,-48 + 2514: -43,-48 + 2564: -16,-32 + 2565: -14,-32 + 2566: -14,-32 + 2567: -14,-32 + 2568: -15,-32 2569: -14,-32 2570: -14,-32 - 2571: -15,-32 - 2572: -14,-32 - 2573: -14,-32 - 2574: -13,-32 - 2575: -12,-32 - 2576: -12,-32 - 2577: -11,-32 - 2578: -11,-32 - 2579: -10,-32 - 2580: -10,-32 - 2581: -7,-32 - 2582: -6,-32 - 2583: -5,-32 - 2584: -5,-32 - 2588: -4,-32 - 2589: -3,-32 - 2590: -3,-32 - 2591: -3,-32 - 2592: -2,-32 - 2593: 3,-32 - 2594: 6,-32 - 2598: 8,-34 - 2599: 9,-34 - 2600: 9,-34 - 2601: 11,-34 - 2602: 11,-34 - 2603: 12,-34 - 2604: 12,-34 - 2605: 13,-34 - 2606: 13,-34 - 2607: 14,-34 - 2608: 15,-34 - 2609: 15,-34 - 2610: 16,-34 - 2668: 60,-21 + 2571: -13,-32 + 2572: -12,-32 + 2573: -12,-32 + 2574: -11,-32 + 2575: -11,-32 + 2576: -10,-32 + 2577: -10,-32 + 2578: -7,-32 + 2579: -6,-32 + 2580: -5,-32 + 2581: -5,-32 + 2585: -4,-32 + 2586: -3,-32 + 2587: -3,-32 + 2588: -3,-32 + 2589: -2,-32 + 2590: 3,-32 + 2591: 6,-32 + 2595: 8,-34 + 2596: 9,-34 + 2597: 9,-34 + 2598: 11,-34 + 2599: 11,-34 + 2600: 12,-34 + 2601: 12,-34 + 2602: 13,-34 + 2603: 13,-34 + 2604: 14,-34 + 2605: 15,-34 + 2606: 15,-34 + 2607: 16,-34 + 2665: 60,-21 + 2700: 38,2 + 2701: 36,2 + 2702: 37,2 2703: 38,2 - 2704: 36,2 - 2705: 37,2 - 2706: 38,2 - 2714: 34,2 - 2715: 33,2 - 2716: 32,2 - 2717: 31,2 - 2718: 31,2 - 2719: 27,2 - 2720: 26,2 - 2721: 26,2 - 2722: 25,2 - 2723: 24,2 - 2724: 23,2 - 2725: 23,2 - 2726: 21,2 - 2727: 21,2 - 2728: 22,2 - 2729: 20,2 - 2771: 18,19 - 2772: 16,19 - 2790: 14,19 - 2791: 13,19 - 2792: 12,19 - 2793: 11,19 - 2794: 10,19 - 2795: 10,19 - 2796: 9,19 - 2797: 9,19 - 2798: 8,19 - 2799: 6,19 - 2800: 6,19 - 2801: 7,19 - 2802: 5,19 - 2803: 0,19 - 2804: 0,19 - 2805: -1,19 - 2806: -1,19 - 2807: -2,19 - 2808: -3,19 - 2809: -3,19 - 2810: -4,19 - 2811: -5,19 - 2812: -6,19 - 2813: -6,19 - 2814: -7,19 - 2815: -7,19 - 2816: -8,19 - 2817: -8,19 - 2818: -8,19 - 2819: -11,19 - 2820: -11,19 - 2821: -13,19 - 2822: -13,19 - 2823: -14,19 - 2824: -12,19 - 2825: -16,19 - 2826: -16,19 - 2827: -18,19 - 2832: 66,-19 - 2833: 67,-19 - 2834: 68,-19 - 2835: 69,-19 - 2836: 70,-19 - 2837: 71,-19 - 3079: 1,19 - 3080: 2,19 + 2711: 34,2 + 2712: 33,2 + 2713: 32,2 + 2714: 31,2 + 2715: 31,2 + 2716: 27,2 + 2717: 26,2 + 2718: 26,2 + 2719: 25,2 + 2720: 24,2 + 2721: 23,2 + 2722: 23,2 + 2723: 21,2 + 2724: 21,2 + 2725: 22,2 + 2726: 20,2 + 2768: 18,19 + 2769: 16,19 + 2787: 14,19 + 2788: 13,19 + 2789: 12,19 + 2790: 11,19 + 2791: 10,19 + 2792: 10,19 + 2793: 9,19 + 2794: 9,19 + 2795: 8,19 + 2796: 6,19 + 2797: 6,19 + 2798: 7,19 + 2799: 5,19 + 2800: 0,19 + 2801: 0,19 + 2802: -1,19 + 2803: -1,19 + 2804: -2,19 + 2805: -3,19 + 2806: -3,19 + 2807: -4,19 + 2808: -5,19 + 2809: -6,19 + 2810: -6,19 + 2811: -7,19 + 2812: -7,19 + 2813: -8,19 + 2814: -8,19 + 2815: -8,19 + 2816: -11,19 + 2817: -11,19 + 2818: -13,19 + 2819: -13,19 + 2820: -14,19 + 2821: -12,19 + 2822: -16,19 + 2823: -16,19 + 2824: -18,19 + 2829: 66,-19 + 2830: 67,-19 + 2831: 68,-19 + 2832: 69,-19 + 2833: 70,-19 + 2834: 71,-19 + 3075: 1,19 + 3076: 2,19 - node: color: '#9D9D97FF' id: MiniTileWhiteLineW decals: - 2265: -26,-21 - 2266: -26,-20 - 2267: -26,-18 - 2268: -26,-19 - 2269: -26,-17 - 2274: -26,-25 - 2275: -26,-24 - 2276: -26,-27 - 2277: -26,-26 - 2278: -26,-28 - 2279: -26,-29 - 2280: -26,-30 - 2281: -26,-31 - 2327: -25,-8 - 2328: -26,-10 - 2329: -26,-11 - 2330: -26,-16 - 2331: -26,-15 - 2332: -26,-15 - 2333: -26,-14 - 2334: -26,-13 - 2348: -27,7 - 2349: -27,8 - 2350: -27,6 - 2351: -27,5 - 2380: -55,5 - 2381: -55,3 - 2382: -55,2 - 2383: -55,1 - 2384: -55,0 - 2385: -55,-1 - 2386: -55,-3 - 2387: -55,-6 - 2388: -55,-6 - 2389: -55,-7 - 2390: -55,-7 - 2391: -55,-8 - 2392: -55,-9 - 2393: -55,-9 - 2394: -55,-11 - 2403: -55,-10 - 2404: -55,-11 - 2405: -55,-12 - 2406: -55,-13 - 2407: -55,-13 - 2408: -55,-15 - 2409: -55,-15 - 2415: -55,-14 - 2420: -55,-16 - 2421: -55,-17 - 2422: -55,-18 - 2423: -55,-20 - 2424: -55,-21 - 2437: -52,-28 - 2438: -52,-29 - 2439: -52,-30 - 2440: -52,-30 - 2441: -52,-31 - 2442: -52,-32 - 2456: -49,-35 - 2457: -49,-36 - 2464: -49,-38 - 2465: -49,-38 - 2466: -49,-39 - 2467: -49,-40 - 2468: -49,-40 - 2469: -49,-41 - 2470: -49,-42 - 2471: -49,-43 - 2472: -49,-43 - 2473: -49,-44 - 2522: -42,-50 - 2523: -42,-50 - 2524: -42,-51 - 2525: -42,-51 - 2526: -42,-52 - 2527: -42,-52 - 2528: -42,-53 - 2529: -42,-54 - 2549: -56,-54 - 2550: -56,-53 - 2551: -56,-52 - 2552: -56,-52 - 2553: -56,-51 - 2554: -56,-51 - 2555: -56,-48 - 2556: -56,-48 - 2557: -56,-47 - 2558: -56,-50 - 2561: -41,-29 - 2562: -41,-28 - 2596: 7,-33 - 2614: 27,-23 - 2615: 27,-23 - 2616: 27,-23 - 2617: 27,-22 - 2618: 27,-24 - 2619: 27,-21 - 2620: 27,-20 - 2666: 57,-18 - 2667: 57,-17 - 2671: 52,-24 - 2672: 52,-23 - 2673: 52,-22 - 2679: 41,-17 - 2680: 41,-16 - 2681: 41,-15 - 2682: 41,-12 - 2683: 41,-11 - 2686: 41,-9 - 2687: 41,-8 - 2688: 41,-7 - 2689: 41,-7 - 2690: 41,-6 - 2691: 41,-5 - 2692: 41,-5 - 2693: 41,-4 - 2694: 41,-3 - 2695: 41,-3 - 2696: 41,-1 - 2697: 41,-1 - 2698: 41,-1 - 2699: 41,-2 - 2731: 19,3 - 2732: 19,4 - 2733: 19,4 - 2734: 19,4 - 2735: 19,5 - 2736: 19,5 - 2737: 19,7 - 2738: 19,8 - 2739: 19,8 - 2740: 19,8 + 2262: -26,-21 + 2263: -26,-20 + 2264: -26,-18 + 2265: -26,-19 + 2266: -26,-17 + 2271: -26,-25 + 2272: -26,-24 + 2273: -26,-27 + 2274: -26,-26 + 2275: -26,-28 + 2276: -26,-29 + 2277: -26,-30 + 2278: -26,-31 + 2324: -25,-8 + 2325: -26,-10 + 2326: -26,-11 + 2327: -26,-16 + 2328: -26,-15 + 2329: -26,-15 + 2330: -26,-14 + 2331: -26,-13 + 2345: -27,7 + 2346: -27,8 + 2347: -27,6 + 2348: -27,5 + 2377: -55,5 + 2378: -55,3 + 2379: -55,2 + 2380: -55,1 + 2381: -55,0 + 2382: -55,-1 + 2383: -55,-3 + 2384: -55,-6 + 2385: -55,-6 + 2386: -55,-7 + 2387: -55,-7 + 2388: -55,-8 + 2389: -55,-9 + 2390: -55,-9 + 2391: -55,-11 + 2400: -55,-10 + 2401: -55,-11 + 2402: -55,-12 + 2403: -55,-13 + 2404: -55,-13 + 2405: -55,-15 + 2406: -55,-15 + 2412: -55,-14 + 2417: -55,-16 + 2418: -55,-17 + 2419: -55,-18 + 2420: -55,-20 + 2421: -55,-21 + 2434: -52,-28 + 2435: -52,-29 + 2436: -52,-30 + 2437: -52,-30 + 2438: -52,-31 + 2439: -52,-32 + 2453: -49,-35 + 2454: -49,-36 + 2461: -49,-38 + 2462: -49,-38 + 2463: -49,-39 + 2464: -49,-40 + 2465: -49,-40 + 2466: -49,-41 + 2467: -49,-42 + 2468: -49,-43 + 2469: -49,-43 + 2470: -49,-44 + 2519: -42,-50 + 2520: -42,-50 + 2521: -42,-51 + 2522: -42,-51 + 2523: -42,-52 + 2524: -42,-52 + 2525: -42,-53 + 2526: -42,-54 + 2546: -56,-54 + 2547: -56,-53 + 2548: -56,-52 + 2549: -56,-52 + 2550: -56,-51 + 2551: -56,-51 + 2552: -56,-48 + 2553: -56,-48 + 2554: -56,-47 + 2555: -56,-50 + 2558: -41,-29 + 2559: -41,-28 + 2593: 7,-33 + 2611: 27,-23 + 2612: 27,-23 + 2613: 27,-23 + 2614: 27,-22 + 2615: 27,-24 + 2616: 27,-21 + 2617: 27,-20 + 2663: 57,-18 + 2664: 57,-17 + 2668: 52,-24 + 2669: 52,-23 + 2670: 52,-22 + 2676: 41,-17 + 2677: 41,-16 + 2678: 41,-15 + 2679: 41,-12 + 2680: 41,-11 + 2683: 41,-9 + 2684: 41,-8 + 2685: 41,-7 + 2686: 41,-7 + 2687: 41,-6 + 2688: 41,-5 + 2689: 41,-5 + 2690: 41,-4 + 2691: 41,-3 + 2692: 41,-3 + 2693: 41,-1 + 2694: 41,-1 + 2695: 41,-1 + 2696: 41,-2 + 2728: 19,3 + 2729: 19,4 + 2730: 19,4 + 2731: 19,4 + 2732: 19,5 + 2733: 19,5 + 2734: 19,7 + 2735: 19,8 + 2736: 19,8 + 2737: 19,8 + 2738: 19,10 + 2739: 19,10 + 2740: 19,11 2741: 19,10 2742: 19,10 - 2743: 19,11 + 2743: 19,12 2744: 19,10 - 2745: 19,10 - 2746: 19,12 - 2747: 19,10 - 2748: 19,9 - 2749: 19,9 - 2759: 19,13 - 2760: 19,14 - 2761: 19,14 - 2762: 19,14 - 2763: 19,15 - 2764: 19,15 - 2765: 19,15 - 2766: 19,16 - 2767: 19,16 - 2768: 19,18 - 2769: 19,18 - 2829: -27,20 - 2830: -27,18 + 2745: 19,9 + 2746: 19,9 + 2756: 19,13 + 2757: 19,14 + 2758: 19,14 + 2759: 19,14 + 2760: 19,15 + 2761: 19,15 + 2762: 19,15 + 2763: 19,16 + 2764: 19,16 + 2765: 19,18 + 2766: 19,18 + 2826: -27,20 + 2827: -27,18 - node: color: '#52B4E996' id: MonoOverlay decals: - 6307: 44,8 + 6300: 44,8 - node: color: '#334E6DC8' id: QuarterTileOverlayGreyscale @@ -7498,7 +7506,7 @@ entities: color: '#52B4E996' id: QuarterTileOverlayGreyscale decals: - 6309: 43,9 + 6302: 43,9 - node: color: '#9FED5896' id: QuarterTileOverlayGreyscale @@ -7559,17 +7567,17 @@ entities: 1699: 27,4 1700: 23,4 1701: 22,4 - 1920: 57,-17 - 1921: 58,-17 - 1922: 59,-17 - 1923: 60,-17 - 1924: 61,-17 - 2180: -1,-33 - 6288: 38,4 - 6289: 40,4 - 6290: 41,4 - 6291: 42,4 - 6292: 43,4 + 1919: 57,-17 + 1920: 58,-17 + 1921: 59,-17 + 1922: 60,-17 + 1923: 61,-17 + 2177: -1,-33 + 6281: 38,4 + 6282: 40,4 + 6283: 41,4 + 6284: 42,4 + 6285: 43,4 - node: color: '#DE3A3A96' id: QuarterTileOverlayGreyscale @@ -7611,34 +7619,34 @@ entities: 1712: 34,-21 1713: 36,-21 1714: 35,-21 - 1931: 51,-21 - 2028: 29,-21 - 2029: 29,-22 - 2030: 29,-23 - 2031: 29,-24 - 2032: 29,-25 - 2033: 29,-26 - 2034: 29,-27 - 2035: 28,-27 - 2036: 27,-27 - 2037: 26,-27 - 2038: 25,-27 - 2039: 24,-27 - 2040: 23,-27 - 2041: 21,-27 - 2042: 21,-29 - 2043: 21,-30 - 2044: 21,-31 - 2045: 21,-32 - 2046: 21,-33 - 2047: 21,-34 - 2048: 20,-34 - 2049: 19,-34 + 1929: 51,-21 + 2025: 29,-21 + 2026: 29,-22 + 2027: 29,-23 + 2028: 29,-24 + 2029: 29,-25 + 2030: 29,-26 + 2031: 29,-27 + 2032: 28,-27 + 2033: 27,-27 + 2034: 26,-27 + 2035: 25,-27 + 2036: 24,-27 + 2037: 23,-27 + 2038: 21,-27 + 2039: 21,-29 + 2040: 21,-30 + 2041: 21,-31 + 2042: 21,-32 + 2043: 21,-33 + 2044: 21,-34 + 2045: 20,-34 + 2046: 19,-34 - node: color: '#52B4E996' id: QuarterTileOverlayGreyscale180 decals: - 6310: 45,7 + 6303: 45,7 - node: color: '#A4610696' id: QuarterTileOverlayGreyscale180 @@ -7663,28 +7671,28 @@ entities: 1707: 21,18 1708: 21,19 1709: 21,20 - 1925: 61,-17 - 1926: 61,-18 - 1927: 61,-19 - 1928: 61,-20 - 2176: -1,-33 - 2177: 0,-33 - 2178: 1,-33 - 2179: 2,-33 - 6293: 43,4 - 6294: 43,3 - 6295: 43,2 - 6296: 43,1 - 6297: 43,-1 - 6298: 43,-2 - 6299: 43,-3 - 6300: 43,-4 - 6301: 43,-5 - 6302: 43,-6 - 6303: 43,-7 - 6304: 43,-8 - 6305: 43,-9 - 6306: 43,-10 + 1924: 61,-17 + 1925: 61,-18 + 1926: 61,-19 + 1927: 61,-20 + 2173: -1,-33 + 2174: 0,-33 + 2175: 1,-33 + 2176: 2,-33 + 6286: 43,4 + 6287: 43,3 + 6288: 43,2 + 6289: 43,1 + 6290: 43,-1 + 6291: 43,-2 + 6292: 43,-3 + 6293: 43,-4 + 6294: 43,-5 + 6295: 43,-6 + 6296: 43,-7 + 6297: 43,-8 + 6298: 43,-9 + 6299: 43,-10 - node: color: '#DE3A3A96' id: QuarterTileOverlayGreyscale180 @@ -7707,7 +7715,7 @@ entities: 1599: 19,-27 1600: 19,-29 1601: 19,-30 - 6311: 43,7 + 6304: 43,7 - node: color: '#D4D4D428' id: QuarterTileOverlayGreyscale270 @@ -7730,17 +7738,17 @@ entities: 1717: 36,-21 1718: 37,-21 1719: 50,-21 - 1932: 51,-21 - 2050: 19,-34 - 2051: 20,-34 - 2052: 21,-34 - 2059: 23,-27 - 2060: 24,-27 - 2061: 25,-27 - 2062: 26,-27 - 2063: 27,-27 - 2064: 28,-27 - 2065: 29,-27 + 1930: 51,-21 + 2047: 19,-34 + 2048: 20,-34 + 2049: 21,-34 + 2056: 23,-27 + 2057: 24,-27 + 2058: 25,-27 + 2059: 26,-27 + 2060: 27,-27 + 2061: 28,-27 + 2062: 29,-27 - node: color: '#DE3A3A96' id: QuarterTileOverlayGreyscale270 @@ -7753,10 +7761,10 @@ entities: 1567: 5,-29 1568: 5,-28 1569: 5,-27 - 2171: -1,-33 - 2172: 1,-33 - 2173: 0,-33 - 2174: 2,-33 + 2168: -1,-33 + 2169: 1,-33 + 2170: 0,-33 + 2171: 2,-33 - node: color: '#334E6DC8' id: QuarterTileOverlayGreyscale90 @@ -7771,25 +7779,25 @@ entities: 1594: 21,-25 1595: 22,-25 1596: 23,-25 - 6270: 40,4 - 6271: 38,4 - 6272: 41,4 - 6273: 42,4 - 6274: 43,4 - 6275: 43,3 - 6276: 43,2 - 6277: 43,1 - 6278: 43,-1 - 6279: 43,-2 - 6280: 43,-3 - 6281: 43,-4 - 6282: 43,-5 - 6283: 43,-6 - 6284: 43,-7 - 6285: 43,-10 - 6286: 43,-9 - 6287: 43,-8 - 6308: 45,9 + 6263: 40,4 + 6264: 38,4 + 6265: 41,4 + 6266: 42,4 + 6267: 43,4 + 6268: 43,3 + 6269: 43,2 + 6270: 43,1 + 6271: 43,-1 + 6272: 43,-2 + 6273: 43,-3 + 6274: 43,-4 + 6275: 43,-5 + 6276: 43,-6 + 6277: 43,-7 + 6278: 43,-10 + 6279: 43,-9 + 6280: 43,-8 + 6301: 45,9 - node: color: '#79150096' id: QuarterTileOverlayGreyscale90 @@ -7837,7 +7845,7 @@ entities: 1916: 61,-18 1917: 61,-19 1918: 61,-20 - 1930: 57,-17 + 1928: 57,-17 - node: color: '#D4D4D428' id: QuarterTileOverlayGreyscale90 @@ -7860,18 +7868,18 @@ entities: 1648: -48,-20 1649: -52,-20 1650: -62,-22 - 2053: 21,-34 - 2054: 21,-33 - 2055: 21,-32 - 2056: 21,-31 - 2057: 21,-30 - 2058: 21,-29 - 2066: 29,-27 - 2067: 29,-26 - 2068: 29,-25 - 2069: 29,-24 - 2070: 29,-23 - 2071: 29,-22 + 2050: 21,-34 + 2051: 21,-33 + 2052: 21,-32 + 2053: 21,-31 + 2054: 21,-30 + 2055: 21,-29 + 2063: 29,-27 + 2064: 29,-26 + 2065: 29,-25 + 2066: 29,-24 + 2067: 29,-23 + 2068: 29,-22 - node: color: '#DE3A3A96' id: QuarterTileOverlayGreyscale90 @@ -7910,7 +7918,7 @@ entities: 1564: 1,-30 1565: 2,-30 1566: 3,-30 - 2175: 2,-33 + 2172: 2,-33 - node: color: '#FFFFFFFF' id: Rock01 @@ -7953,12 +7961,12 @@ entities: color: '#FFFFFFFF' id: Rust decals: - 2963: -5,-39 - 2964: -7,-40 - 2965: -6,-41 - 2966: -7,-41 - 2967: -8,-39 - 2968: -8,-42 + 2960: -5,-39 + 2961: -7,-40 + 2962: -6,-41 + 2963: -7,-41 + 2964: -8,-39 + 2965: -8,-42 - node: color: '#FFFFFFFF' id: SpaceStationSign1 @@ -8043,19 +8051,19 @@ entities: color: '#FFFFFFB1' id: VentSmall decals: - 2897: -36,22 + 2894: -36,22 - node: color: '#FFFFFFFF' id: WarnCornerNE decals: 1184: 6,32 - 6624: 91,-13 + 6617: 91,-13 - node: color: '#FFFFFFFF' id: WarnCornerNW decals: 1183: 3,32 - 6625: 88,-13 + 6618: 88,-13 - node: color: '#EFB34196' id: WarnCornerSE @@ -8065,7 +8073,7 @@ entities: color: '#FFFFFFFF' id: WarnCornerSE decals: - 6623: 91,-16 + 6616: 91,-16 - node: color: '#EFB34196' id: WarnCornerSW @@ -8075,18 +8083,30 @@ entities: color: '#FFFFFFFF' id: WarnCornerSW decals: - 6622: 88,-16 + 6615: 88,-16 + - node: + color: '#52B4E996' + id: WarnCornerSmallGreyscaleSE + decals: + 6778: 49,-11 + 6779: 52,-11 + - node: + color: '#52B4E996' + id: WarnCornerSmallGreyscaleSW + decals: + 6776: 49,-11 + 6777: 52,-11 - node: color: '#EFB34118' id: WarnCornerSmallNE decals: - 6702: 12,-30 - 6703: 12,-30 + 6695: 12,-30 + 6696: 12,-30 - node: color: '#EFB3416C' id: WarnCornerSmallNE decals: - 6701: 12,-30 + 6694: 12,-30 - node: color: '#EFB34196' id: WarnCornerSmallNE @@ -8097,27 +8117,27 @@ entities: color: '#EFB341A1' id: WarnCornerSmallNE decals: - 6158: 14,39 + 6151: 14,39 - node: color: '#FFFFFFFF' id: WarnCornerSmallNE decals: 1317: 25,23 1318: 29,23 - 2080: 11,-47 - 6358: 51,13 - 6446: 51,-11 + 2077: 11,-47 + 6351: 51,13 + 6439: 51,-11 - node: color: '#EFB34118' id: WarnCornerSmallNW decals: - 6704: 16,-30 - 6705: 16,-30 + 6697: 16,-30 + 6698: 16,-30 - node: color: '#EFB3416C' id: WarnCornerSmallNW decals: - 6700: 16,-30 + 6693: 16,-30 - node: color: '#EFB34196' id: WarnCornerSmallNW @@ -8129,7 +8149,7 @@ entities: color: '#EFB341A1' id: WarnCornerSmallNW decals: - 6159: 16,39 + 6152: 16,39 - node: color: '#FFFFFFFF' id: WarnCornerSmallNW @@ -8137,7 +8157,7 @@ entities: 1080: 39,-1 1319: 25,23 1320: 29,23 - 2081: 14,-47 + 2078: 14,-47 - node: color: '#EFB34196' id: WarnCornerSmallSE @@ -8151,13 +8171,13 @@ entities: color: '#EFB341A1' id: WarnCornerSmallSE decals: - 6157: 14,42 + 6150: 14,42 - node: color: '#FFFFFFFF' id: WarnCornerSmallSE decals: 1439: 55,-33 - 6357: 51,15 + 6350: 51,15 - node: color: '#EFB34196' id: WarnCornerSmallSW @@ -8169,7 +8189,7 @@ entities: color: '#EFB341A1' id: WarnCornerSmallSW decals: - 6156: 16,42 + 6149: 16,42 - node: color: '#EFB34196' id: WarnLineE @@ -8197,17 +8217,17 @@ entities: 279: 29,-13 280: 29,-12 281: 29,-11 - 6254: 47,14 - 6255: 47,14 - 6256: 47,15 - 6257: 47,15 + 6247: 47,14 + 6248: 47,14 + 6249: 47,15 + 6250: 47,15 - node: cleanable: True color: '#EFB341A1' id: WarnLineE decals: - 6154: 14,41 - 6155: 14,40 + 6147: 14,41 + 6148: 14,40 - node: color: '#FFFFFFFF' id: WarnLineE @@ -8223,40 +8243,40 @@ entities: 1857: 73,-16 1858: 73,-18 1859: 73,-19 - 6220: -45,23 - 6355: 51,14 - 6445: 51,-10 - 6620: 91,-15 - 6621: 91,-14 - 6713: 56,-29 - 6714: 56,-28 - 6715: 56,-27 - 6753: -33,-11 - 6754: -33,-10 + 6213: -45,23 + 6348: 51,14 + 6438: 51,-10 + 6613: 91,-15 + 6614: 91,-14 + 6706: 56,-29 + 6707: 56,-28 + 6708: 56,-27 + 6746: -33,-11 + 6747: -33,-10 - node: color: '#52B4E996' id: WarnLineGreyscaleE decals: - 6447: 52,-12 - 6448: 52,-13 - 6449: 52,-14 - 6450: 52,-15 - 6451: 49,-12 - 6452: 49,-13 - 6453: 49,-14 - 6454: 49,-15 + 6440: 52,-12 + 6441: 52,-13 + 6442: 52,-14 + 6443: 52,-15 + 6444: 49,-12 + 6445: 49,-13 + 6446: 49,-14 + 6447: 49,-15 - node: color: '#52B4E996' id: WarnLineGreyscaleW decals: - 6455: 49,-15 - 6456: 49,-14 - 6457: 49,-13 - 6458: 49,-12 - 6459: 52,-12 - 6460: 52,-13 - 6461: 52,-14 - 6462: 52,-15 + 6448: 49,-15 + 6449: 49,-14 + 6450: 49,-13 + 6451: 49,-12 + 6452: 52,-12 + 6453: 52,-13 + 6454: 52,-14 + 6455: 52,-15 - node: color: '#EFB34196' id: WarnLineN @@ -8275,14 +8295,14 @@ entities: 272: 27,-14 273: 28,-14 1474: 46,14 - 6244: 46,14 - 6245: 46,14 + 6237: 46,14 + 6238: 46,14 - node: cleanable: True color: '#EFB341A1' id: WarnLineN decals: - 6153: 15,42 + 6146: 15,42 - node: color: '#FFFFFFFF' id: WarnLineN @@ -8293,24 +8313,24 @@ entities: 1900: 68,-30 1901: 70,-30 1902: 71,-30 - 1975: 23,-38 - 1976: 24,-38 - 1977: 25,-38 - 2072: 11,-48 - 2073: 12,-48 - 2074: 14,-48 - 2075: 13,-48 - 2076: 15,-48 - 2077: 16,-48 - 2135: 0,-38 - 2136: 1,-38 - 2137: 2,-38 - 2141: 7,-45 - 2142: 8,-45 - 2143: 9,-45 - 6217: -44,24 - 6614: 89,-16 - 6615: 90,-16 + 1972: 23,-38 + 1973: 24,-38 + 1974: 25,-38 + 2069: 11,-48 + 2070: 12,-48 + 2071: 14,-48 + 2072: 13,-48 + 2073: 15,-48 + 2074: 16,-48 + 2132: 0,-38 + 2133: 1,-38 + 2134: 2,-38 + 2138: 7,-45 + 2139: 8,-45 + 2140: 9,-45 + 6210: -44,24 + 6607: 89,-16 + 6608: 90,-16 - node: color: '#EFB34196' id: WarnLineS @@ -8338,50 +8358,50 @@ entities: 275: 16,-11 276: 16,-10 277: 16,-9 - 6248: 45,16 - 6249: 45,15 - 6250: 45,14 - 6251: 45,14 - 6252: 45,15 - 6253: 45,16 + 6241: 45,16 + 6242: 45,15 + 6243: 45,14 + 6244: 45,14 + 6245: 45,15 + 6246: 45,16 - node: cleanable: True color: '#EFB341A1' id: WarnLineS decals: - 6151: 16,40 - 6152: 16,41 + 6144: 16,40 + 6145: 16,41 - node: color: '#FFFFFFFF' id: WarnLineS decals: 1773: 61,-24 1786: 61,-23 - 2003: 26,-43 - 2004: 26,-46 - 6218: -43,23 - 6356: 57,14 - 6618: 88,-15 - 6619: 88,-14 - 6751: -33,-10 - 6752: -33,-11 + 2000: 26,-43 + 2001: 26,-46 + 6211: -43,23 + 6349: 57,14 + 6611: 88,-15 + 6612: 88,-14 + 6744: -33,-10 + 6745: -33,-11 - node: color: '#EFB34118' id: WarnLineW decals: - 6706: 13,-30 - 6707: 13,-30 - 6708: 14,-30 - 6709: 14,-30 - 6710: 15,-30 - 6711: 15,-30 + 6699: 13,-30 + 6700: 13,-30 + 6701: 14,-30 + 6702: 14,-30 + 6703: 15,-30 + 6704: 15,-30 - node: color: '#EFB3416C' id: WarnLineW decals: - 6697: 13,-30 - 6698: 14,-30 - 6699: 15,-30 + 6690: 13,-30 + 6691: 14,-30 + 6692: 15,-30 - node: color: '#EFB34196' id: WarnLineW @@ -8399,7 +8419,7 @@ entities: color: '#EFB341A1' id: WarnLineW decals: - 6150: 15,39 + 6143: 15,39 - node: color: '#FFFFFFFF' id: WarnLineW @@ -8422,30 +8442,30 @@ entities: 1896: 70,-29 1897: 69,-29 1898: 71,-29 - 1972: 23,-37 - 1973: 25,-37 - 1974: 24,-37 - 2023: 28,-38 - 2024: 29,-38 - 2078: 12,-47 - 2079: 13,-47 - 2164: 9,-39 - 2165: 10,-39 - 2166: 8,-39 - 2167: 11,-39 - 2181: -5,-35 - 2195: -6,-35 - 2196: -4,-35 - 6219: -44,22 - 6443: 52,-11 - 6444: 53,-11 - 6616: 89,-13 - 6617: 90,-13 + 1969: 23,-37 + 1970: 25,-37 + 1971: 24,-37 + 2020: 28,-38 + 2021: 29,-38 + 2075: 12,-47 + 2076: 13,-47 + 2161: 9,-39 + 2162: 10,-39 + 2163: 8,-39 + 2164: 11,-39 + 2178: -5,-35 + 2192: -6,-35 + 2193: -4,-35 + 6212: -44,22 + 6436: 52,-11 + 6437: 53,-11 + 6609: 89,-13 + 6610: 90,-13 - node: color: '#FFFFFFFF' id: WoodTrimThinBox decals: - 6216: -44,23 + 6209: -44,23 - node: color: '#FFFFFFFF' id: WoodTrimThinCornerNe @@ -8464,7 +8484,7 @@ entities: decals: 401: -18,-16 501: -32,5 - 3075: -31,-45 + 3071: -31,-45 - node: color: '#FFFFFFFF' id: WoodTrimThinCornerSw @@ -8580,7 +8600,7 @@ entities: 1875: 69,-23 1876: 69,-22 1877: 69,-21 - 3072: -30,-46 + 3068: -30,-46 - node: color: '#FFFFFFFF' id: WoodTrimThinLineN @@ -8678,15 +8698,15 @@ entities: 1177: -14,31 1178: -13,31 1179: -12,31 - 3070: -30,-45 - 6135: -35,3 - 6214: 36,-24 + 3067: -30,-45 + 6128: -35,3 + 6207: 36,-24 - node: cleanable: True color: '#FFFFFFFF' id: WoodTrimThinLineN decals: - 3027: 80,-25 + 3024: 80,-25 - node: color: '#FFFFFFFF' id: WoodTrimThinLineS @@ -8770,12 +8790,12 @@ entities: 1724: 58,19 1725: 59,19 1726: 60,19 - 3073: -31,-45 - 3076: 65,-52 - 3077: 66,-52 - 3078: 67,-52 - 6213: 36,-24 - 6233: -38,-17 + 3069: -31,-45 + 3072: 65,-52 + 3073: 66,-52 + 3074: 67,-52 + 6206: 36,-24 + 6226: -38,-17 - node: color: '#FFFFFFFF' id: WoodTrimThinLineW @@ -8825,41 +8845,41 @@ entities: 1091: -59,-27 1092: -59,-26 1745: 58,19 - 2270: -27,-16 - 2271: -27,-15 - 2272: -27,-14 - 2273: -27,-13 - 3074: -31,-44 + 2267: -27,-16 + 2268: -27,-15 + 2269: -27,-14 + 2270: -27,-13 + 3070: -31,-44 - node: cleanable: True color: '#FFFFFFFF' id: bushsnowa1 decals: - 6171: 80.134224,-34.739353 + 6164: 80.134224,-34.739353 - node: cleanable: True color: '#FFFFFFFF' id: bushsnowa2 decals: - 6172: 81.98104,-35.791183 + 6165: 81.98104,-35.791183 - node: cleanable: True color: '#FFFFFFFF' id: bushsnowa3 decals: - 6173: 80.43999,-36.158104 + 6166: 80.43999,-36.158104 - node: cleanable: True color: '#FFFFFFFF' id: bushsnowb1 decals: - 6174: 83.2041,-35.583263 + 6167: 83.2041,-35.583263 - node: cleanable: True color: '#FFFFFFFF' id: bushsnowb3 decals: - 6175: 83.020645,-36.060257 + 6168: 83.020645,-36.060257 - node: color: '#FFFFFFFF' id: e @@ -8870,113 +8890,113 @@ entities: color: '#FFFFFFFF' id: grasssnow01 decals: - 6188: 83.460945,-36.10918 - 6189: 80.01192,-34.201206 + 6181: 83.460945,-36.10918 + 6182: 80.01192,-34.201206 - node: cleanable: True color: '#FFFFFFFF' id: grasssnow03 decals: - 6185: 81.7242,-35.840107 + 6178: 81.7242,-35.840107 - node: cleanable: True color: '#FFFFFFFF' id: grasssnow05 decals: - 6190: 81.07172,-34.84943 + 6183: 81.07172,-34.84943 - node: cleanable: True color: '#FFFFFFFF' id: grasssnow06 decals: - 6194: 80.39903,-34.335743 + 6187: 80.39903,-34.335743 - node: cleanable: True color: '#FFFFFFFF' id: grasssnow07 decals: - 6183: 80.04861,-36.219257 + 6176: 80.04861,-36.219257 - node: cleanable: True color: '#FFFFFFFF' id: grasssnow08 decals: - 6184: 80.8436,-35.974644 + 6177: 80.8436,-35.974644 - node: cleanable: True color: '#FFFFFFFF' id: grasssnow09 decals: - 6186: 82.201195,-35.974644 - 6193: 81.98901,-35.155193 + 6179: 82.201195,-35.974644 + 6186: 81.98901,-35.155193 - node: cleanable: True color: '#FFFFFFFF' id: grasssnow10 decals: - 6181: 80.02415,-34.922813 + 6174: 80.02415,-34.922813 - node: cleanable: True color: '#FFFFFFFF' id: grasssnow11 decals: - 6182: 80.42776,-35.546574 - 6187: 83.24079,-35.7178 + 6175: 80.42776,-35.546574 + 6180: 83.24079,-35.7178 - node: cleanable: True color: '#FFFFFFFF' id: grasssnow12 decals: - 6191: 82.99192,-34.910583 + 6184: 82.99192,-34.910583 - node: cleanable: True color: '#FFFFFFFF' id: grasssnow13 decals: - 6192: 82.56385,-34.88612 + 6185: 82.56385,-34.88612 - node: cleanable: True color: '#FFFFFFFF' id: grasssnowa1 decals: - 6178: 82.82495,-35.571033 + 6171: 82.82495,-35.571033 - node: cleanable: True color: '#FFFFFFFF' id: grasssnowa2 decals: - 6197: 83.059845,-34.91084 + 6190: 83.059845,-34.91084 - node: cleanable: True color: '#FFFFFFFF' id: grasssnowa3 decals: - 6176: 79.9263,-35.46096 + 6169: 79.9263,-35.46096 - node: cleanable: True color: '#FFFFFFFF' id: grasssnowb2 decals: - 6177: 81.369514,-35.70557 - 6195: 80.8828,-34.87415 + 6170: 81.369514,-35.70557 + 6188: 80.8828,-34.87415 - node: cleanable: True color: '#FFFFFFFF' id: grasssnowb3 decals: - 6196: 79.87989,-33.993546 + 6189: 79.87989,-33.993546 - node: cleanable: True color: '#FFFFFFFF' id: grasssnowc2 decals: - 6180: 79.79176,-36.060257 + 6173: 79.79176,-36.060257 - node: cleanable: True color: '#FFFFFFFF' id: grasssnowc3 decals: - 6179: 81.10044,-36.13364 + 6172: 81.10044,-36.13364 - node: color: '#FFFFFFFF' id: h @@ -8986,9 +9006,9 @@ entities: color: '#FFFF0066' id: shop decals: - 3064: 50.31763,23.128677 - 3065: 51.239506,23.738052 - 3066: 52.00513,23.034927 + 3061: 50.31763,23.128677 + 3062: 51.239506,23.738052 + 3063: 52.00513,23.034927 - node: color: '#FFFFFFFF' id: w @@ -10420,10 +10440,13 @@ entities: 0: 65520 -7,-12: 0: 65522 + 3: 1 -6,-12: 0: 65520 + 3: 15 -5,-12: 0: 65520 + 3: 15 -12,4: 0: 34952 -11,5: @@ -10611,6 +10634,7 @@ entities: 0: 3 11,6: 0: 22005 + 3: 10 11,7: 0: 21 -16,-18: @@ -10759,6 +10783,10 @@ entities: 0: 64435 12,-12: 0: 19968 + -6,-13: + 3: 61440 + -5,-13: + 3: 61440 uniqueMixes: - volume: 2500 temperature: 293.15 @@ -11116,13 +11144,13 @@ entities: parent: 2 - type: DeviceList devices: + - 18417 + - 18416 + - 18418 + - 8753 - 8749 - 8750 - 8751 - - 8753 - - 18418 - - 18417 - - 18416 - type: AtmosDevice joinedGrid: 2 - uid: 8370 @@ -13604,6 +13632,7 @@ entities: components: - type: MetaData flags: PvsPriority + name: Bathroom airlock - type: Transform pos: 14.5,22.5 parent: 2 @@ -13611,6 +13640,7 @@ entities: components: - type: MetaData flags: PvsPriority + name: Toilet Stall Airlock - type: Transform pos: 16.5,25.5 parent: 2 @@ -13621,6 +13651,7 @@ entities: components: - type: MetaData flags: PvsPriority + name: Toilet Stall Airlock - type: Transform pos: 16.5,23.5 parent: 2 @@ -14172,6 +14203,7 @@ entities: components: - type: MetaData flags: PvsPriority + name: South Solars airlock - type: Transform pos: 0.5,-33.5 parent: 2 @@ -14179,6 +14211,7 @@ entities: components: - type: MetaData flags: PvsPriority + name: South Solars airlock - type: Transform pos: 1.5,-33.5 parent: 2 @@ -14752,7 +14785,7 @@ entities: pos: -16.5,19.5 parent: 2 - type: Door - secondsUntilStateChange: -28399.771 + secondsUntilStateChange: -30193.105 state: Opening - uid: 4196 components: @@ -15136,6 +15169,8 @@ entities: parent: 2 - uid: 5386 components: + - type: MetaData + name: Arcade airlock - type: Transform pos: -47.5,8.5 parent: 2 @@ -15434,6 +15469,7 @@ entities: components: - type: MetaData flags: PvsPriority + name: Bathroom airlock - type: Transform pos: -5.5,41.5 parent: 2 @@ -15441,6 +15477,7 @@ entities: components: - type: MetaData flags: PvsPriority + name: Bathroom airlock - type: Transform rot: 3.141592653589793 rad pos: 2.5,41.5 @@ -16027,6 +16064,7 @@ entities: components: - type: MetaData flags: PvsPriority + name: Morgue airlock - type: Transform rot: 1.5707963267948966 rad pos: 47.5,-10.5 @@ -16171,6 +16209,7 @@ entities: components: - type: MetaData flags: PvsPriority + name: Morgue airlock - type: Transform rot: -1.5707963267948966 rad pos: 51.5,-8.5 @@ -16179,6 +16218,7 @@ entities: components: - type: MetaData flags: PvsPriority + name: Morgue airlock - type: Transform rot: -1.5707963267948966 rad pos: 49.5,-8.5 @@ -16187,6 +16227,7 @@ entities: components: - type: MetaData flags: PvsPriority + name: Cryogenics airlock - type: Transform rot: -1.5707963267948966 rad pos: 54.5,-4.5 @@ -16195,6 +16236,7 @@ entities: components: - type: MetaData flags: PvsPriority + name: Cryogenics airlock - type: Transform rot: -1.5707963267948966 rad pos: 54.5,-3.5 @@ -16221,6 +16263,7 @@ entities: components: - type: MetaData flags: PvsPriority + name: Server room airlock - type: Transform pos: 69.5,-24.5 parent: 2 @@ -16369,6 +16412,7 @@ entities: components: - type: MetaData flags: PvsPriority + name: News room airlock - type: Transform rot: 3.141592653589793 rad pos: -57.5,-27.5 @@ -16379,7 +16423,7 @@ entities: components: - type: MetaData flags: PvsPriority - name: Musician airlock + name: Musician room airlock - type: Transform pos: -37.5,-16.5 parent: 2 @@ -16387,7 +16431,7 @@ entities: components: - type: MetaData flags: PvsPriority - name: Mime airlock + name: Mime room airlock - type: Transform pos: -32.5,-16.5 parent: 2 @@ -16395,7 +16439,7 @@ entities: components: - type: MetaData flags: PvsPriority - name: Mime airlock + name: Mime room airlock - type: Transform pos: -33.5,-16.5 parent: 2 @@ -16403,7 +16447,7 @@ entities: components: - type: MetaData flags: PvsPriority - name: Clown airlock + name: Clown room airlock - type: Transform pos: -28.5,-16.5 parent: 2 @@ -16416,6 +16460,9 @@ entities: - type: Transform pos: 56.5,14.5 parent: 2 + - type: DeviceLinkSink + links: + - 21451 - proto: AirlockVirologyLocked entities: - uid: 2043 @@ -16618,6 +16665,10 @@ entities: rot: 3.141592653589793 rad pos: 44.5,12.5 parent: 2 + - type: DeviceNetwork + deviceLists: + - 8369 + - 17550 - uid: 18428 components: - type: Transform @@ -56847,43 +56898,6 @@ entities: - type: Transform pos: 81.49037,-22.441114 parent: 2 -- proto: ClosetBase - entities: - - uid: 16650 - components: - - type: Transform - pos: 16.5,37.5 - parent: 2 - - type: EntityStorage - air: - volume: 200 - immutable: False - temperature: 293.14673 - 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: - - 16652 - - 16651 - paper_label: !type:ContainerSlot - showEnts: False - occludes: True - ent: null - proto: ClosetBombFilled entities: - uid: 5086 @@ -57362,6 +57376,43 @@ entities: - type: Transform pos: 51.5,4.5 parent: 2 +- proto: ClosetSteelBase + entities: + - uid: 16650 + components: + - type: Transform + pos: 16.5,37.5 + parent: 2 + - type: EntityStorage + air: + volume: 200 + immutable: False + temperature: 293.14673 + 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: + - 16652 + - 16651 + paper_label: !type:ContainerSlot + showEnts: False + occludes: True + ent: null - proto: ClosetToolFilled entities: - uid: 876 @@ -58183,10 +58234,17 @@ entities: - type: InsideEntityStorage - proto: ClothingNeckAromanticPin entities: - - uid: 21369 + - uid: 21450 components: - type: Transform - pos: -19.497414,17.596235 + pos: -19.327265,17.651068 + parent: 2 +- proto: ClothingNeckAsexualPin + entities: + - uid: 5233 + components: + - type: Transform + pos: -19.65906,17.512405 parent: 2 - proto: ClothingNeckBling entities: @@ -58230,11 +58288,6 @@ entities: - type: Transform pos: -53.317593,-60.37925 parent: 2 - - uid: 21370 - components: - - type: Transform - pos: -19.622414,17.48686 - parent: 2 - proto: ClothingNeckScarfStripedBlue entities: - uid: 7065 @@ -59896,6 +59949,13 @@ entities: - type: Transform pos: -31.385849,-8.650845 parent: 2 +- proto: CryogenicSleepUnit + entities: + - uid: 6029 + components: + - type: Transform + pos: 3.5,48.5 + parent: 2 - proto: CryogenicSleepUnitSpawner entities: - uid: 5 @@ -59957,6 +60017,13 @@ entities: - type: Transform pos: -17.367237,-13.48901 parent: 2 +- proto: DawInstrumentMachineCircuitboard + entities: + - uid: 21449 + components: + - type: Transform + pos: -39.486645,-19.226738 + parent: 2 - proto: DefaultStationBeaconAICore entities: - uid: 20820 @@ -60027,6 +60094,11 @@ entities: - type: Transform pos: 40.5,-34.5 parent: 2 + - uid: 21456 + components: + - type: Transform + pos: 26.5,-30.5 + parent: 2 - proto: DefaultStationBeaconBrig entities: - uid: 20831 @@ -60097,6 +60169,11 @@ entities: - type: Transform pos: -24.5,27.5 parent: 2 + - uid: 21458 + components: + - type: Transform + pos: -18.5,27.5 + parent: 2 - proto: DefaultStationBeaconDisposals entities: - uid: 20842 @@ -60104,6 +60181,21 @@ entities: - type: Transform pos: -12.5,-38.5 parent: 2 + - uid: 21452 + components: + - type: Transform + pos: 66.5,-52.5 + parent: 2 + - uid: 21453 + components: + - type: Transform + pos: 89.5,-18.5 + parent: 2 + - uid: 21454 + components: + - type: Transform + pos: 14.5,24.5 + parent: 2 - proto: DefaultStationBeaconDorms entities: - uid: 20840 @@ -60160,6 +60252,11 @@ entities: - type: Transform pos: -15.5,-26.5 parent: 2 + - uid: 21457 + components: + - type: Transform + pos: -33.5,-28.5 + parent: 2 - proto: DefaultStationBeaconKitchen entities: - uid: 20848 @@ -60279,6 +60376,11 @@ entities: - type: Transform pos: -33.5,0.5 parent: 2 + - uid: 21455 + components: + - type: Transform + pos: -47.5,10.5 + parent: 2 - proto: DefaultStationBeaconSingularity entities: - uid: 17163 @@ -60326,6 +60428,11 @@ entities: - type: Transform pos: 28.5,-43.5 parent: 2 + - uid: 21370 + components: + - type: Transform + pos: 14.5,-46.5 + parent: 2 - proto: DefaultStationBeaconTheater entities: - uid: 20874 @@ -65494,6 +65601,18 @@ entities: - type: Transform pos: 51.5,-38.5 parent: 2 + - uid: 4732 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -26.5,29.5 + parent: 2 + - uid: 5991 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 60.5,2.5 + parent: 2 - uid: 17356 components: - type: Transform @@ -66169,6 +66288,18 @@ entities: rot: 3.141592653589793 rad pos: 55.5,-23.5 parent: 2 + - uid: 21369 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -25.5,36.5 + parent: 2 + - uid: 21372 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -16.5,-4.5 + parent: 2 - proto: EmergencyRollerBed entities: - uid: 985 @@ -66780,11 +66911,11 @@ entities: parent: 2 - type: DeviceList devices: + - 18418 + - 8753 - 8749 - 8750 - 8751 - - 8753 - - 18418 - type: AtmosDevice joinedGrid: 2 - uid: 17551 @@ -69217,12 +69348,20 @@ entities: - type: Transform pos: 48.5,13.5 parent: 2 + - type: DeviceNetwork + deviceLists: + - 8369 + - 17550 - uid: 8753 components: - type: Transform rot: 3.141592653589793 rad pos: 42.5,14.5 parent: 2 + - type: DeviceNetwork + deviceLists: + - 8369 + - 17550 - uid: 8754 components: - type: Transform @@ -69785,12 +69924,6 @@ entities: - type: Transform pos: 70.5,-26.5 parent: 2 - - uid: 8752 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 46.5,13.5 - parent: 2 - uid: 8756 components: - type: Transform @@ -71174,11 +71307,19 @@ entities: - type: Transform pos: 42.5,10.5 parent: 2 + - type: DeviceNetwork + deviceLists: + - 8369 + - 17550 - uid: 8750 components: - type: Transform pos: 46.5,10.5 parent: 2 + - type: DeviceNetwork + deviceLists: + - 8369 + - 17550 - uid: 8755 components: - type: Transform @@ -90285,6 +90426,9 @@ entities: - type: Transform pos: 43.5,12.5 parent: 2 + - type: DeviceNetwork + deviceLists: + - 8369 - type: AtmosDevice joinedGrid: 2 - type: AtmosPipeColor @@ -91656,6 +91800,9 @@ entities: rot: 3.141592653589793 rad pos: 45.5,12.5 parent: 2 + - type: DeviceNetwork + deviceLists: + - 8369 - type: AtmosDevice joinedGrid: 2 - type: AtmosPipeColor @@ -101378,6 +101525,14 @@ entities: - type: Transform pos: 14.5,32.5 parent: 2 +- proto: OreBox + entities: + - uid: 21459 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 1.5,-0.5 + parent: 21128 - proto: OreProcessor entities: - uid: 5541 @@ -101633,6 +101788,9 @@ entities: parent: 2 - uid: 5454 components: + - type: MetaData + desc: I pray to god you read this at least once. + name: Singularity notes - type: Transform pos: 1.74702,-14.689409 parent: 2 @@ -101716,6 +101874,8 @@ entities: parent: 2 - uid: 21421 components: + - type: MetaData + name: Central substation note - type: Transform pos: -2.5038486,15.512904 parent: 2 @@ -102096,13 +102256,6 @@ entities: - type: Transform pos: 36.49126,20.946766 parent: 2 -- proto: PillCanisterTricordrazine - entities: - - uid: 21372 - components: - - type: Transform - pos: 45.033794,13.53962 - parent: 2 - proto: PlaqueAtmos entities: - uid: 1548 @@ -102927,11 +103080,6 @@ entities: - type: Transform pos: -14.5,34.5 parent: 2 - - uid: 5233 - components: - - type: Transform - pos: 3.5,48.5 - parent: 2 - uid: 5566 components: - type: Transform @@ -104181,14 +104329,6 @@ entities: - type: Transform pos: 11.5,21.5 parent: 2 - - uid: 4732 - components: - - type: MetaData - flags: PvsPriority - - type: Transform - rot: -1.5707963267948966 rad - pos: -15.5,13.5 - parent: 2 - uid: 4733 components: - type: MetaData @@ -105185,6 +105325,12 @@ entities: - type: Transform pos: -32.5,-8.5 parent: 2 + - uid: 8752 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -15.5,13.5 + parent: 2 - uid: 10543 components: - type: Transform @@ -113180,6 +113326,11 @@ entities: - 16704 - proto: ShuttleConsoleCircuitboard entities: + - uid: 6028 + components: + - type: Transform + pos: -32.418903,38.479107 + parent: 2 - uid: 21318 components: - type: Transform @@ -113339,6 +113490,8 @@ entities: entities: - uid: 2100 components: + - type: MetaData + name: shutters button - type: Transform rot: -1.5707963267948966 rad pos: 48.5,12.5 @@ -113419,6 +113572,8 @@ entities: - Pressed: Toggle - uid: 6961 components: + - type: MetaData + name: containment button - type: Transform rot: 1.5707963267948966 rad pos: 56.5,16.5 @@ -113743,6 +113898,8 @@ entities: - Pressed: Toggle - uid: 17517 components: + - type: MetaData + name: shutters button - type: Transform pos: 46.5,-5.5 parent: 2 @@ -113754,6 +113911,8 @@ entities: - Pressed: Toggle - uid: 17518 components: + - type: MetaData + name: shutters button - type: Transform pos: 46.5,-2.5 parent: 2 @@ -113765,6 +113924,8 @@ entities: - Pressed: Toggle - uid: 17519 components: + - type: MetaData + name: shutters button - type: Transform pos: 46.5,0.5 parent: 2 @@ -113871,6 +114032,20 @@ entities: - Pressed: Toggle 21192: - Pressed: Toggle + - uid: 21451 + components: + - type: MetaData + name: lockdown button + - type: Transform + rot: 1.5707963267948966 rad + pos: 56.47196,16.864159 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 6727: + - Pressed: DoorBolt + - Pressed: Close + - Pressed: AutoClose - proto: SignAnomaly entities: - uid: 8366 @@ -147161,11 +147336,6 @@ entities: parent: 2 - proto: WindoorSecureChemistryLocked entities: - - uid: 6029 - components: - - type: Transform - pos: 46.5,14.5 - parent: 2 - uid: 6036 components: - type: Transform @@ -147856,16 +148026,6 @@ entities: rot: 3.141592653589793 rad pos: 44.5,3.5 parent: 2 - - uid: 5991 - components: - - type: Transform - pos: 47.5,14.5 - parent: 2 - - uid: 6028 - components: - - type: Transform - pos: 45.5,14.5 - parent: 2 - uid: 6699 components: - type: Transform From 7583662672bcc0d49a5fde1cd67f3c25e5ab31f7 Mon Sep 17 00:00:00 2001 From: Ubaser <134914314+UbaserB@users.noreply.github.com> Date: Sat, 20 Jan 2024 07:42:22 +1100 Subject: [PATCH 12/66] Update Rod and Transit evacuation shuttles (#24296) add --- Resources/Maps/Shuttles/emergency_rod.yml | 50 +++++++++++++++++++ Resources/Maps/Shuttles/emergency_transit.yml | 41 ++++++++++++--- 2 files changed, 84 insertions(+), 7 deletions(-) diff --git a/Resources/Maps/Shuttles/emergency_rod.yml b/Resources/Maps/Shuttles/emergency_rod.yml index 15dfc25fb4a..56480e2c334 100644 --- a/Resources/Maps/Shuttles/emergency_rod.yml +++ b/Resources/Maps/Shuttles/emergency_rod.yml @@ -3583,6 +3583,56 @@ entities: - type: Transform pos: 2.4661305,9.648575 parent: 2 +- proto: Screen + entities: + - uid: 28 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -3.5,17.5 + parent: 2 + - uid: 36 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 0.5,17.5 + parent: 2 + - uid: 57 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 0.5,5.5 + parent: 2 + - uid: 104 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 4.5,0.5 + parent: 2 + - uid: 122 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -7.5,0.5 + parent: 2 + - uid: 193 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,-11.5 + parent: 2 + - uid: 234 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -3.5,-2.5 + parent: 2 + - uid: 235 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 0.5,-2.5 + parent: 2 - proto: ShotGunCabinetFilled entities: - uid: 187 diff --git a/Resources/Maps/Shuttles/emergency_transit.yml b/Resources/Maps/Shuttles/emergency_transit.yml index a7e17509a33..42afa994759 100644 --- a/Resources/Maps/Shuttles/emergency_transit.yml +++ b/Resources/Maps/Shuttles/emergency_transit.yml @@ -3124,6 +3124,32 @@ entities: - type: Transform pos: 6.5,-20.5 parent: 2 +- proto: Screen + entities: + - uid: 161 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 6.5,-21.5 + parent: 2 + - uid: 196 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 10.5,-16.5 + parent: 2 + - uid: 197 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 11.5,-2.5 + parent: 2 + - uid: 198 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 7.5,-2.5 + parent: 2 - proto: ShotGunCabinetFilled entities: - uid: 609 @@ -3628,6 +3654,14 @@ entities: parent: 2 - proto: WallShuttle entities: + - uid: 3 + components: + - type: MetaData + flags: PvsPriority + - type: Transform + rot: 1.5707963267948966 rad + pos: 6.5,-2.5 + parent: 2 - uid: 316 components: - type: MetaData @@ -3782,13 +3816,6 @@ entities: - type: Transform pos: 14.5,-11.5 parent: 2 - - uid: 482 - components: - - type: MetaData - flags: PvsPriority - - type: Transform - pos: 6.5,-2.5 - parent: 2 - uid: 483 components: - type: MetaData From 73e94dfa92e0afe3ad0decd1d7248d13fa4f208c Mon Sep 17 00:00:00 2001 From: Nemanja <98561806+EmoGarbage404@users.noreply.github.com> Date: Fri, 19 Jan 2024 19:45:03 -0500 Subject: [PATCH 13/66] Lathe Categories (#24247) * Lathe Categories * serilog my beloathed --- .../Lathe/UI/LatheBoundUserInterface.cs | 3 +- Content.Client/Lathe/UI/LatheMenu.xaml | 12 +-- Content.Client/Lathe/UI/LatheMenu.xaml.cs | 82 ++++++++++++++-- Content.Client/Lathe/UI/RecipeTooltip.xaml.cs | 7 +- .../Prototypes/LatheCategoryPrototype.cs | 21 ++++ .../Prototypes/LatheRecipePrototype.cs | 14 ++- .../Locale/en-US/lathe/lathe-categories.ftl | 8 ++ .../Locale/en-US/lathe/ui/lathe-menu.ftl | 5 +- Resources/Prototypes/Recipes/Lathes/Parts.yml | 3 + .../Prototypes/Recipes/Lathes/categories.yml | 31 ++++++ .../Prototypes/Recipes/Lathes/devices.yml | 20 ++++ .../Prototypes/Recipes/Lathes/electronics.yml | 96 +++++++++++++++++++ .../Prototypes/Recipes/Lathes/mech_parts.yml | 19 ++++ .../Prototypes/Recipes/Lathes/medical.yml | 11 ++- Resources/Prototypes/Recipes/Lathes/misc.yml | 9 ++ .../Prototypes/Recipes/Lathes/powercells.yml | 4 + .../Prototypes/Recipes/Lathes/robotics.yml | 65 +++++++++++++ .../Prototypes/Recipes/Lathes/security.yml | 61 +++++++++++- Resources/Prototypes/Recipes/Lathes/tools.yml | 33 ++++++- 19 files changed, 472 insertions(+), 32 deletions(-) create mode 100644 Content.Shared/Lathe/Prototypes/LatheCategoryPrototype.cs create mode 100644 Resources/Locale/en-US/lathe/lathe-categories.ftl create mode 100644 Resources/Prototypes/Recipes/Lathes/categories.yml diff --git a/Content.Client/Lathe/UI/LatheBoundUserInterface.cs b/Content.Client/Lathe/UI/LatheBoundUserInterface.cs index ed2307b165d..456471598a4 100644 --- a/Content.Client/Lathe/UI/LatheBoundUserInterface.cs +++ b/Content.Client/Lathe/UI/LatheBoundUserInterface.cs @@ -43,7 +43,8 @@ protected override void UpdateState(BoundUserInterfaceState state) case LatheUpdateState msg: if (_menu != null) _menu.Recipes = msg.Recipes; - _menu?.PopulateRecipes(Owner); + _menu?.PopulateRecipes(); + _menu?.UpdateCategories(); _menu?.PopulateQueueList(msg.Queue); _menu?.SetQueueInfo(msg.CurrentlyProducing); break; diff --git a/Content.Client/Lathe/UI/LatheMenu.xaml b/Content.Client/Lathe/UI/LatheMenu.xaml index 1e60db68e26..2b97166f05a 100644 --- a/Content.Client/Lathe/UI/LatheMenu.xaml +++ b/Content.Client/Lathe/UI/LatheMenu.xaml @@ -26,14 +26,10 @@ PlaceHolder="{Loc 'lathe-menu-search-designs'}" HorizontalExpand="True"> - + > Recipes = new(); + public List>? Categories; + + public ProtoId? CurrentCategory; + public LatheMenu(LatheBoundUserInterface owner) { + _owner = owner.Owner; RobustXamlLoader.Load(this); IoCManager.InjectDependencies(this); @@ -40,13 +47,15 @@ public LatheMenu(LatheBoundUserInterface owner) SearchBar.OnTextChanged += _ => { - PopulateRecipes(owner.Owner); + PopulateRecipes(); }; AmountLineEdit.OnTextChanged += _ => { - PopulateRecipes(owner.Owner); + PopulateRecipes(); }; + FilterOption.OnItemSelected += OnItemSelected; + ServerListButton.OnPressed += a => OnServerListButtonPressed?.Invoke(a); if (_entityManager.TryGetComponent(owner.Owner, out var latheComponent)) @@ -63,10 +72,9 @@ public LatheMenu(LatheBoundUserInterface owner) /// /// Populates the list of all the recipes /// - /// - public void PopulateRecipes(EntityUid lathe) + public void PopulateRecipes() { - if (!_entityManager.TryGetComponent(lathe, out var component)) + if (!_entityManager.TryGetComponent(_owner, out var component)) return; var recipesToShow = new List(); @@ -75,6 +83,9 @@ public void PopulateRecipes(EntityUid lathe) if (!_prototypeManager.TryIndex(recipe, out var proto)) continue; + if (CurrentCategory != null && proto.Category != CurrentCategory) + continue; + if (SearchBar.Text.Trim().Length != 0) { if (proto.Name.ToLowerInvariant().Contains(SearchBar.Text.Trim().ToLowerInvariant())) @@ -89,8 +100,9 @@ public void PopulateRecipes(EntityUid lathe) if (!int.TryParse(AmountLineEdit.Text, out var quantity) || quantity <= 0) quantity = 1; + var sortedRecipesToShow = recipesToShow.OrderBy(p => p.Name); RecipeList.Children.Clear(); - foreach (var prototype in recipesToShow) + foreach (var prototype in sortedRecipesToShow) { StringBuilder sb = new(); var first = true; @@ -115,13 +127,16 @@ public void PopulateRecipes(EntityUid lathe) sb.Append(Loc.GetString("lathe-menu-tooltip-display", ("material", name), ("amount", amountText))); } - sb.Append('\n'); - sb.Append(Loc.GetString("lathe-menu-description-display", ("description", prototype.Description))); + if (!string.IsNullOrWhiteSpace(prototype.Description)) + { + sb.Append('\n'); + sb.Append(Loc.GetString("lathe-menu-description-display", ("description", prototype.Description))); + } var icon = prototype.Icon == null ? _spriteSystem.GetPrototypeIcon(prototype.Result).Default : _spriteSystem.Frame0(prototype.Icon); - var canProduce = _lathe.CanProduce(lathe, prototype, quantity); + var canProduce = _lathe.CanProduce(_owner, prototype, quantity); var control = new RecipeControl(prototype, sb.ToString(), canProduce, icon); control.OnButtonPressed += s => @@ -134,6 +149,41 @@ public void PopulateRecipes(EntityUid lathe) } } + public void UpdateCategories() + { + var currentCategories = new List>(); + foreach (var recipeId in Recipes) + { + var recipe = _prototypeManager.Index(recipeId); + + if (recipe.Category == null) + continue; + + if (currentCategories.Contains(recipe.Category.Value)) + continue; + + currentCategories.Add(recipe.Category.Value); + } + + if (Categories != null && (Categories.Count == currentCategories.Count || !Categories.All(currentCategories.Contains))) + return; + + Categories = currentCategories; + var sortedCategories = currentCategories + .Select(p => _prototypeManager.Index(p)) + .OrderBy(p => Loc.GetString(p.Name)) + .ToList(); + + FilterOption.Clear(); + FilterOption.AddItem(Loc.GetString("lathe-menu-category-all"), -1); + foreach (var category in sortedCategories) + { + FilterOption.AddItem(Loc.GetString(category.Name), Categories.IndexOf(category.ID)); + } + + FilterOption.SelectId(-1); + } + /// /// Populates the build queue list with all queued items /// @@ -162,4 +212,18 @@ public void SetQueueInfo(LatheRecipePrototype? recipe) : _spriteSystem.Frame0(recipe.Icon); NameLabel.Text = $"{recipe.Name}"; } + + private void OnItemSelected(OptionButton.ItemSelectedEventArgs obj) + { + FilterOption.SelectId(obj.Id); + if (obj.Id == -1) + { + CurrentCategory = null; + } + else + { + CurrentCategory = Categories?[obj.Id]; + } + PopulateRecipes(); + } } diff --git a/Content.Client/Lathe/UI/RecipeTooltip.xaml.cs b/Content.Client/Lathe/UI/RecipeTooltip.xaml.cs index 5d2e3ca081f..45d854e92f6 100644 --- a/Content.Client/Lathe/UI/RecipeTooltip.xaml.cs +++ b/Content.Client/Lathe/UI/RecipeTooltip.xaml.cs @@ -1,20 +1,17 @@ -using Content.Shared.Research.Prototypes; +using Content.Client.Message; using Robust.Client.AutoGenerated; -using Robust.Client.Graphics; using Robust.Client.UserInterface; using Robust.Client.UserInterface.XAML; -using Robust.Shared.Graphics; namespace Content.Client.Lathe.UI; [GenerateTypedNameReferences] public sealed partial class RecipeTooltip : Control { - public RecipeTooltip(string tooltip) { RobustXamlLoader.Load(this); - RecipeTooltipLabel.SetMessage(tooltip); + RecipeTooltipLabel.SetMarkup(tooltip); } } diff --git a/Content.Shared/Lathe/Prototypes/LatheCategoryPrototype.cs b/Content.Shared/Lathe/Prototypes/LatheCategoryPrototype.cs new file mode 100644 index 00000000000..9af8e77352c --- /dev/null +++ b/Content.Shared/Lathe/Prototypes/LatheCategoryPrototype.cs @@ -0,0 +1,21 @@ +using Content.Shared.Research.Prototypes; +using Robust.Shared.Prototypes; + +namespace Content.Shared.Lathe.Prototypes; + +/// +/// This is a prototype for a category for +/// +[Prototype] +public sealed partial class LatheCategoryPrototype : IPrototype +{ + /// + [IdDataField] + public string ID { get; } = default!; + + /// + /// A localized string used in the UI + /// + [DataField] + public LocId Name; +} diff --git a/Content.Shared/Research/Prototypes/LatheRecipePrototype.cs b/Content.Shared/Research/Prototypes/LatheRecipePrototype.cs index 709a592cc1d..8b0c866cbe3 100644 --- a/Content.Shared/Research/Prototypes/LatheRecipePrototype.cs +++ b/Content.Shared/Research/Prototypes/LatheRecipePrototype.cs @@ -1,3 +1,4 @@ +using Content.Shared.Lathe.Prototypes; using Content.Shared.Materials; using Robust.Shared.Prototypes; using Robust.Shared.Serialization; @@ -38,6 +39,7 @@ public sealed partial class LatheRecipePrototype : IPrototype [DataField("materials", customTypeSerializer: typeof(PrototypeIdDictionarySerializer))] private Dictionary _requiredMaterials = new(); + //todo make these function calls because we're eating tons of resolves here. /// /// Name displayed in the lathe GUI. /// @@ -46,7 +48,8 @@ public string Name { get { - if (_name.Trim().Length != 0) return _name; + if (_name.Trim().Length != 0) + return _name; var protoMan = IoCManager.Resolve(); protoMan.TryIndex(Result, out EntityPrototype? prototype); if (prototype?.Name != null) @@ -63,7 +66,8 @@ public string Description { get { - if (_description.Trim().Length != 0) return _description; + if (_description.Trim().Length != 0) + return _description; var protoMan = IoCManager.Resolve(); protoMan.TryIndex(Result, out EntityPrototype? prototype); if (prototype?.Description != null) @@ -93,5 +97,11 @@ public Dictionary RequiredMaterials [DataField("applyMaterialDiscount")] public bool ApplyMaterialDiscount = true; + + /// + /// A category used for visually sorting lathe recipes in the UI. + /// + [DataField] + public ProtoId? Category; } } diff --git a/Resources/Locale/en-US/lathe/lathe-categories.ftl b/Resources/Locale/en-US/lathe/lathe-categories.ftl new file mode 100644 index 00000000000..a7261c2b511 --- /dev/null +++ b/Resources/Locale/en-US/lathe/lathe-categories.ftl @@ -0,0 +1,8 @@ +lathe-category-ammo = Ammo +lathe-category-circuitry = Circuitry +lathe-category-lights = Lights +lathe-category-mechs = Mechs +lathe-category-parts = Parts +lathe-category-robotics = Robotics +lathe-category-tools = Tools +lathe-category-weapons = Weapons diff --git a/Resources/Locale/en-US/lathe/ui/lathe-menu.ftl b/Resources/Locale/en-US/lathe/ui/lathe-menu.ftl index 3ccdb2b0eb3..92f313086cb 100644 --- a/Resources/Locale/en-US/lathe/ui/lathe-menu.ftl +++ b/Resources/Locale/en-US/lathe/ui/lathe-menu.ftl @@ -3,11 +3,12 @@ lathe-menu-queue = Queue lathe-menu-server-list = Server list lathe-menu-sync = Sync lathe-menu-search-designs = Search designs -lathe-menu-search-filter = Filter +lathe-menu-category-all = All +lathe-menu-search-filter = Filter: lathe-menu-amount = Amount: lathe-menu-material-display = {$material} ({$amount}) lathe-menu-tooltip-display = {$amount} of {$material} -lathe-menu-description-display = {$description} +lathe-menu-description-display = [italic]{$description}[/italic] lathe-menu-material-amount = { $amount -> [1] {NATURALFIXED($amount, 2)} {$unit} *[other] {NATURALFIXED($amount, 2)} {MAKEPLURAL($unit)} diff --git a/Resources/Prototypes/Recipes/Lathes/Parts.yml b/Resources/Prototypes/Recipes/Lathes/Parts.yml index 658248c140e..90cff2174d6 100644 --- a/Resources/Prototypes/Recipes/Lathes/Parts.yml +++ b/Resources/Prototypes/Recipes/Lathes/Parts.yml @@ -1,6 +1,7 @@ - type: latheRecipe id: CapacitorStockPart result: CapacitorStockPart + category: Parts completetime: 1 materials: Steel: 50 @@ -9,6 +10,7 @@ - type: latheRecipe id: MatterBinStockPart result: MatterBinStockPart + category: Parts completetime: 1 materials: Steel: 50 @@ -17,6 +19,7 @@ - type: latheRecipe id: MicroManipulatorStockPart result: MicroManipulatorStockPart + category: Parts completetime: 1 materials: Steel: 50 diff --git a/Resources/Prototypes/Recipes/Lathes/categories.yml b/Resources/Prototypes/Recipes/Lathes/categories.yml new file mode 100644 index 00000000000..8faa67af1b3 --- /dev/null +++ b/Resources/Prototypes/Recipes/Lathes/categories.yml @@ -0,0 +1,31 @@ +- type: latheCategory + id: Ammo + name: lathe-category-ammo + +- type: latheCategory + id: Circuitry + name: lathe-category-circuitry + +- type: latheCategory + id: Lights + name: lathe-category-lights + +- type: latheCategory + id: Mech + name: lathe-category-mechs + +- type: latheCategory + id: Parts + name: lathe-category-parts + +- type: latheCategory + id: Robotics + name: lathe-category-robotics + +- type: latheCategory + id: Tools + name: lathe-category-tools + +- type: latheCategory + id: Weapons + name: lathe-category-weapons diff --git a/Resources/Prototypes/Recipes/Lathes/devices.yml b/Resources/Prototypes/Recipes/Lathes/devices.yml index 1a1f5326e39..066c2ba8d32 100644 --- a/Resources/Prototypes/Recipes/Lathes/devices.yml +++ b/Resources/Prototypes/Recipes/Lathes/devices.yml @@ -1,6 +1,7 @@ - type: latheRecipe id: TimerTrigger result: TimerTrigger + category: Parts completetime: 2 materials: Steel: 300 @@ -9,6 +10,7 @@ - type: latheRecipe id: SignalTrigger result: SignalTrigger + category: Parts completetime: 2 materials: Steel: 300 @@ -17,6 +19,7 @@ - type: latheRecipe id: VoiceTrigger result: VoiceTrigger + category: Parts completetime: 2 materials: Steel: 300 @@ -25,6 +28,7 @@ - type: latheRecipe id: Igniter result: Igniter + category: Parts completetime: 2 materials: Steel: 300 @@ -34,6 +38,7 @@ - type: latheRecipe id: ChemicalPayload result: ChemicalPayload + category: Weapons completetime: 2 materials: Steel: 200 @@ -42,6 +47,7 @@ - type: latheRecipe id: FlashPayload result: FlashPayload + category: Weapons completetime: 2 materials: Steel: 50 @@ -52,6 +58,7 @@ - type: latheRecipe id: ExplosivePayload result: ExplosivePayload + category: Weapons completetime: 4 materials: Steel: 100 @@ -63,6 +70,7 @@ - type: latheRecipe id: Signaller result: RemoteSignaller + category: Parts completetime: 2 materials: Steel: 100 @@ -72,6 +80,7 @@ - type: latheRecipe id: AnomalyLocator result: AnomalyLocatorEmpty + category: Tools completetime: 3 materials: Steel: 400 @@ -80,6 +89,7 @@ - type: latheRecipe id: AnomalyLocatorWide result: AnomalyLocatorWideEmpty + category: Tools completetime: 3 materials: Steel: 400 @@ -88,6 +98,7 @@ - type: latheRecipe id: AnomalyScanner result: AnomalyScanner + category: Tools completetime: 2 materials: Plastic: 200 @@ -96,6 +107,7 @@ - type: latheRecipe id: WeaponPistolCHIMP result: WeaponPistolCHIMP + category: Tools completetime: 5 materials: Steel: 500 @@ -104,6 +116,7 @@ - type: latheRecipe id: WeaponGauntletGorilla result: WeaponGauntletGorilla + category: Tools completetime: 5 materials: Steel: 1500 @@ -155,6 +168,7 @@ - type: latheRecipe id: WeaponCrusher result: WeaponCrusher + category: Weapons completetime: 5 materials: Steel: 1000 @@ -164,6 +178,7 @@ - type: latheRecipe id: WeaponCrusherDagger result: WeaponCrusherDagger + category: Weapons completetime: 5 materials: Steel: 500 @@ -173,6 +188,7 @@ - type: latheRecipe id: WeaponCrusherGlaive result: WeaponCrusherGlaive + category: Weapons completetime: 5 materials: Steel: 1500 @@ -182,6 +198,7 @@ - type: latheRecipe id: WeaponForceGun result: WeaponForceGun + category: Tools completetime: 5 materials: Steel: 500 @@ -200,6 +217,7 @@ - type: latheRecipe id: WeaponProtoKineticAccelerator result: WeaponProtoKineticAccelerator + category: Weapons completetime: 5 materials: Steel: 1000 @@ -209,6 +227,7 @@ - type: latheRecipe id: WeaponTetherGun result: WeaponTetherGun + category: Tools completetime: 5 materials: Steel: 500 @@ -218,6 +237,7 @@ - type: latheRecipe id: WeaponGrapplingGun result: WeaponGrapplingGun + category: Tools completetime: 5 materials: Steel: 500 diff --git a/Resources/Prototypes/Recipes/Lathes/electronics.yml b/Resources/Prototypes/Recipes/Lathes/electronics.yml index 123b7f60367..2e93b9518ea 100644 --- a/Resources/Prototypes/Recipes/Lathes/electronics.yml +++ b/Resources/Prototypes/Recipes/Lathes/electronics.yml @@ -1,6 +1,7 @@ - type: latheRecipe id: FirelockElectronics result: FirelockElectronics + category: Circuitry completetime: 2 materials: Steel: 100 @@ -9,6 +10,7 @@ - type: latheRecipe id: MailingUnitElectronics result: MailingUnitElectronics + category: Circuitry completetime: 4 materials: Steel: 50 @@ -17,6 +19,7 @@ - type: latheRecipe id: CellRechargerCircuitboard result: CellRechargerCircuitboard + category: Circuitry completetime: 2 materials: Steel: 50 @@ -25,6 +28,7 @@ - type: latheRecipe id: BorgChargerCircuitboard result: BorgChargerCircuitboard + category: Circuitry completetime: 2 materials: Steel: 50 @@ -33,6 +37,7 @@ - type: latheRecipe id: WeaponCapacitorRechargerCircuitboard result: WeaponCapacitorRechargerCircuitboard + category: Circuitry completetime: 2 materials: Steel: 50 @@ -41,6 +46,7 @@ - type: latheRecipe id: TurboItemRechargerCircuitboard result: TurboItemRechargerCircuitboard + category: Circuitry completetime: 2 materials: Steel: 500 @@ -50,6 +56,7 @@ - type: latheRecipe id: DoorElectronics result: DoorElectronics + category: Circuitry completetime: 2 materials: Steel: 50 @@ -58,6 +65,7 @@ - type: latheRecipe id: AirAlarmElectronics result: AirAlarmElectronics + category: Circuitry completetime: 2 materials: Steel: 100 @@ -66,6 +74,7 @@ - type: latheRecipe id: StationMapElectronics result: StationMapCircuitboard + category: Circuitry completetime: 2 materials: Steel: 50 @@ -74,6 +83,7 @@ - type: latheRecipe id: IntercomElectronics result: IntercomElectronics + category: Circuitry completetime: 2 materials: Steel: 50 @@ -82,6 +92,7 @@ - type: latheRecipe id: FireAlarmElectronics result: FireAlarmElectronics + category: Circuitry completetime: 2 materials: Steel: 100 @@ -90,6 +101,7 @@ - type: latheRecipe id: SignalTimerElectronics result: SignalTimerElectronics + category: Circuitry completetime: 2 materials: Steel: 50 @@ -98,6 +110,7 @@ - type: latheRecipe id: CloningPodMachineCircuitboard result: CloningPodMachineCircuitboard + category: Circuitry completetime: 4 materials: Steel: 100 @@ -107,6 +120,7 @@ - type: latheRecipe id: ThermomachineFreezerMachineCircuitBoard result: ThermomachineFreezerMachineCircuitBoard + category: Circuitry completetime: 4 materials: Steel: 150 @@ -116,6 +130,7 @@ - type: latheRecipe id: HellfireFreezerMachineCircuitBoard result: HellfireFreezerMachineCircuitBoard + category: Circuitry completetime: 4 materials: Steel: 150 @@ -125,6 +140,7 @@ - type: latheRecipe id: CondenserMachineCircuitBoard result: CondenserMachineCircuitBoard + category: Circuitry completetime: 4 materials: Steel: 100 @@ -133,6 +149,7 @@ - type: latheRecipe id: PortableScrubberMachineCircuitBoard result: PortableScrubberMachineCircuitBoard + category: Circuitry completetime: 4 materials: Steel: 150 @@ -142,6 +159,7 @@ - type: latheRecipe id: MedicalScannerMachineCircuitboard result: MedicalScannerMachineCircuitboard + category: Circuitry completetime: 4 materials: Steel: 100 @@ -150,6 +168,7 @@ - type: latheRecipe id: CryoPodMachineCircuitboard result: CryoPodMachineCircuitboard + category: Circuitry completetime: 4 materials: Steel: 100 @@ -159,6 +178,7 @@ - type: latheRecipe id: ChemMasterMachineCircuitboard result: ChemMasterMachineCircuitboard + category: Circuitry completetime: 4 materials: Steel: 100 @@ -167,6 +187,7 @@ - type: latheRecipe id: ChemDispenserMachineCircuitboard result: ChemDispenserMachineCircuitboard + category: Circuitry completetime: 4 materials: Steel: 100 @@ -176,6 +197,7 @@ - type: latheRecipe id: BiomassReclaimerMachineCircuitboard result: BiomassReclaimerMachineCircuitboard + category: Circuitry completetime: 4 materials: Steel: 100 @@ -185,6 +207,7 @@ - type: latheRecipe id: BiofabricatorMachineCircuitboard result: BiofabricatorMachineCircuitboard + category: Circuitry completetime: 4 materials: Steel: 100 @@ -194,6 +217,7 @@ - type: latheRecipe id: HydroponicsTrayMachineCircuitboard result: HydroponicsTrayMachineCircuitboard + category: Circuitry completetime: 4 materials: Steel: 100 @@ -202,6 +226,7 @@ - type: latheRecipe id: AutolatheMachineCircuitboard result: AutolatheMachineCircuitboard + category: Circuitry completetime: 4 materials: Steel: 100 @@ -210,6 +235,7 @@ - type: latheRecipe id: ProtolatheMachineCircuitboard result: ProtolatheMachineCircuitboard + category: Circuitry completetime: 4 materials: Steel: 100 @@ -218,6 +244,7 @@ - type: latheRecipe id: AutolatheHyperConvectionMachineCircuitboard result: AutolatheHyperConvectionMachineCircuitboard + category: Circuitry completetime: 4 materials: Steel: 100 @@ -227,6 +254,7 @@ - type: latheRecipe id: ProtolatheHyperConvectionMachineCircuitboard result: ProtolatheHyperConvectionMachineCircuitboard + category: Circuitry completetime: 4 materials: Steel: 100 @@ -236,6 +264,7 @@ - type: latheRecipe id: CircuitImprinterMachineCircuitboard result: CircuitImprinterMachineCircuitboard + category: Circuitry completetime: 4 materials: Steel: 100 @@ -244,6 +273,7 @@ - type: latheRecipe id: ExosuitFabricatorMachineCircuitboard result: ExosuitFabricatorMachineCircuitboard + category: Circuitry completetime: 5 materials: Steel: 100 @@ -252,6 +282,7 @@ - type: latheRecipe id: UniformPrinterMachineCircuitboard result: UniformPrinterMachineCircuitboard + category: Circuitry completetime: 4 materials: Steel: 100 @@ -260,6 +291,7 @@ - type: latheRecipe id: VaccinatorMachineCircuitboard result: VaccinatorMachineCircuitboard + category: Circuitry completetime: 4 materials: Steel: 100 @@ -269,6 +301,7 @@ - type: latheRecipe id: DiagnoserMachineCircuitboard result: DiagnoserMachineCircuitboard + category: Circuitry completetime: 4 materials: Steel: 100 @@ -278,6 +311,7 @@ - type: latheRecipe id: ArtifactAnalyzerMachineCircuitboard result: ArtifactAnalyzerMachineCircuitboard + category: Circuitry completetime: 4 materials: Steel: 100 @@ -287,6 +321,7 @@ - type: latheRecipe id: TraversalDistorterMachineCircuitboard result: TraversalDistorterMachineCircuitboard + category: Circuitry completetime: 4 materials: Steel: 100 @@ -296,6 +331,7 @@ - type: latheRecipe id: ArtifactCrusherMachineCircuitboard result: ArtifactCrusherMachineCircuitboard + category: Circuitry completetime: 4 materials: Steel: 100 @@ -305,6 +341,7 @@ - type: latheRecipe id: AnomalyVesselCircuitboard result: AnomalyVesselCircuitboard + category: Circuitry completetime: 4 materials: Steel: 100 @@ -313,6 +350,7 @@ - type: latheRecipe id: AnomalyVesselExperimentalCircuitboard result: AnomalyVesselExperimentalCircuitboard + category: Circuitry completetime: 4 materials: Steel: 100 @@ -322,6 +360,7 @@ - type: latheRecipe id: AnomalySynchronizerCircuitboard result: AnomalySynchronizerCircuitboard + category: Circuitry completetime: 4 materials: Steel: 100 @@ -331,6 +370,7 @@ - type: latheRecipe id: APECircuitboard result: APECircuitboard + category: Circuitry completetime: 4 materials: Steel: 100 @@ -339,6 +379,7 @@ - type: latheRecipe id: ReagentGrinderMachineCircuitboard result: ReagentGrinderMachineCircuitboard + category: Circuitry completetime: 4 materials: Steel: 100 @@ -347,6 +388,7 @@ - type: latheRecipe id: HotplateMachineCircuitboard result: HotplateMachineCircuitboard + category: Circuitry completetime: 4 materials: Steel: 100 @@ -355,6 +397,7 @@ - type: latheRecipe id: AnalysisComputerCircuitboard result: AnalysisComputerCircuitboard + category: Circuitry completetime: 4 materials: Steel: 100 @@ -364,6 +407,7 @@ - type: latheRecipe id: TechDiskComputerCircuitboard result: TechDiskComputerCircuitboard + category: Circuitry completetime: 4 materials: Steel: 100 @@ -373,6 +417,7 @@ - type: latheRecipe id: ShuttleConsoleCircuitboard result: ShuttleConsoleCircuitboard + category: Circuitry completetime: 4 materials: Steel: 100 @@ -382,6 +427,7 @@ - type: latheRecipe id: RadarConsoleCircuitboard result: RadarConsoleCircuitboard + category: Circuitry completetime: 4 materials: Steel: 100 @@ -390,6 +436,7 @@ - type: latheRecipe id: DawInstrumentMachineCircuitboard result: DawInstrumentMachineCircuitboard + category: Circuitry completetime: 4 materials: Steel: 100 @@ -398,6 +445,7 @@ - type: latheRecipe id: StasisBedMachineCircuitboard result: StasisBedMachineCircuitboard + category: Circuitry completetime: 4 materials: Steel: 100 @@ -407,6 +455,7 @@ - type: latheRecipe id: ElectrolysisUnitMachineCircuitboard result: ElectrolysisUnitMachineCircuitboard + category: Circuitry completetime: 4 materials: Steel: 100 @@ -415,6 +464,7 @@ - type: latheRecipe id: CentrifugeMachineCircuitboard result: CentrifugeMachineCircuitboard + category: Circuitry completetime: 4 materials: Steel: 100 @@ -423,6 +473,7 @@ - type: latheRecipe id: MaterialReclaimerMachineCircuitboard result: MaterialReclaimerMachineCircuitboard + category: Circuitry completetime: 4 materials: Steel: 100 @@ -431,6 +482,7 @@ - type: latheRecipe id: OreProcessorMachineCircuitboard result: OreProcessorMachineCircuitboard + category: Circuitry completetime: 4 materials: Steel: 100 @@ -439,6 +491,7 @@ - type: latheRecipe id: OreProcessorIndustrialMachineCircuitboard result: OreProcessorIndustrialMachineCircuitboard + category: Circuitry completetime: 4 materials: Steel: 100 @@ -448,6 +501,7 @@ - type: latheRecipe id: RipleyCentralElectronics result: RipleyCentralElectronics + category: Circuitry completetime: 4 materials: Steel: 100 @@ -457,6 +511,7 @@ - type: latheRecipe id: RipleyPeripheralsElectronics result: RipleyPeripheralsElectronics + category: Circuitry completetime: 4 materials: Steel: 100 @@ -466,6 +521,7 @@ - type: latheRecipe id: HonkerCentralElectronics result: HonkerCentralElectronics + category: Circuitry completetime: 4 materials: Steel: 100 @@ -475,6 +531,7 @@ - type: latheRecipe id: HonkerPeripheralsElectronics result: HonkerPeripheralsElectronics + category: Circuitry completetime: 4 materials: Steel: 100 @@ -484,6 +541,7 @@ - type: latheRecipe id: HonkerTargetingElectronics result: HonkerTargetingElectronics + category: Circuitry completetime: 4 materials: Steel: 100 @@ -493,6 +551,7 @@ - type: latheRecipe id: HamtrCentralElectronics result: HamtrCentralElectronics + category: Circuitry completetime: 4 materials: Steel: 100 @@ -502,6 +561,7 @@ - type: latheRecipe id: HamtrPeripheralsElectronics result: HamtrPeripheralsElectronics + category: Circuitry completetime: 4 materials: Steel: 100 @@ -512,6 +572,7 @@ - type: latheRecipe id: APCElectronics result: APCElectronics + category: Circuitry completetime: 2 materials: Steel: 50 @@ -520,6 +581,7 @@ - type: latheRecipe id: SubstationMachineCircuitboard result: SubstationMachineCircuitboard + category: Circuitry completetime: 4 materials: Steel: 50 @@ -528,6 +590,7 @@ - type: latheRecipe id: WallmountSubstationElectronics result: WallmountSubstationElectronics + category: Circuitry completetime: 4 materials: Steel: 50 @@ -536,6 +599,7 @@ - type: latheRecipe id: SMESMachineCircuitboard result: SMESMachineCircuitboard + category: Circuitry completetime: 4 materials: Steel: 100 @@ -544,6 +608,7 @@ - type: latheRecipe id: PortableGeneratorPacmanMachineCircuitboard result: PortableGeneratorPacmanMachineCircuitboard + category: Circuitry completetime: 4 materials: Steel: 50 @@ -552,6 +617,7 @@ - type: latheRecipe id: PortableGeneratorSuperPacmanMachineCircuitboard result: PortableGeneratorSuperPacmanMachineCircuitboard + category: Circuitry completetime: 4 materials: Steel: 50 @@ -560,6 +626,7 @@ - type: latheRecipe id: PortableGeneratorJrPacmanMachineCircuitboard result: PortableGeneratorJrPacmanMachineCircuitboard + category: Circuitry completetime: 4 materials: Steel: 50 @@ -568,6 +635,7 @@ - type: latheRecipe id: WallmountGeneratorElectronics result: WallmountGeneratorElectronics + category: Circuitry completetime: 4 materials: Steel: 50 @@ -576,6 +644,7 @@ - type: latheRecipe id: WallmountGeneratorAPUElectronics result: WallmountGeneratorAPUElectronics + category: Circuitry completetime: 4 materials: Steel: 50 @@ -584,6 +653,7 @@ - type: latheRecipe id: SolarControlComputerCircuitboard result: SolarControlComputerCircuitboard + category: Circuitry completetime: 4 materials: Steel: 100 @@ -592,6 +662,7 @@ - type: latheRecipe id: SolarTrackerElectronics result: SolarTrackerElectronics + category: Circuitry completetime: 4 materials: Steel: 150 @@ -600,6 +671,7 @@ - type: latheRecipe id: PowerComputerCircuitboard result: PowerComputerCircuitboard + category: Circuitry completetime: 4 materials: Steel: 100 @@ -608,6 +680,7 @@ - type: latheRecipe id: CloningConsoleComputerCircuitboard result: CloningConsoleComputerCircuitboard + category: Circuitry completetime: 4 materials: Steel: 100 @@ -616,6 +689,7 @@ - type: latheRecipe id: MicrowaveMachineCircuitboard result: MicrowaveMachineCircuitboard + category: Circuitry completetime: 4 materials: Steel: 100 @@ -624,6 +698,7 @@ - type: latheRecipe id: ElectricGrillMachineCircuitboard result: ElectricGrillMachineCircuitboard + category: Circuitry completetime: 4 materials: Steel: 100 @@ -632,6 +707,7 @@ - type: latheRecipe id: FatExtractorMachineCircuitboard result: FatExtractorMachineCircuitboard + category: Circuitry completetime: 4 materials: Steel: 100 @@ -640,6 +716,7 @@ - type: latheRecipe id: FlatpackerMachineCircuitboard result: FlatpackerMachineCircuitboard + category: Circuitry completetime: 4 materials: Steel: 100 @@ -649,6 +726,7 @@ - type: latheRecipe id: SheetifierMachineCircuitboard result: SheetifierMachineCircuitboard + category: Circuitry completetime: 4 materials: Steel: 100 @@ -657,6 +735,7 @@ - type: latheRecipe id: SurveillanceCameraRouterCircuitboard result: SurveillanceCameraRouterCircuitboard + category: Circuitry completetime: 4 materials: Steel: 100 @@ -665,6 +744,7 @@ - type: latheRecipe id: SurveillanceCameraWirelessRouterCircuitboard result: SurveillanceCameraWirelessRouterCircuitboard + category: Circuitry completetime: 4 materials: Steel: 100 @@ -673,6 +753,7 @@ - type: latheRecipe id: SurveillanceWirelessCameraAnchoredCircuitboard result: SurveillanceWirelessCameraAnchoredCircuitboard + category: Circuitry completetime: 4 materials: Steel: 100 @@ -681,6 +762,7 @@ - type: latheRecipe id: SurveillanceWirelessCameraMovableCircuitboard result: SurveillanceWirelessCameraMovableCircuitboard + category: Circuitry completetime: 4 materials: Steel: 100 @@ -689,6 +771,7 @@ - type: latheRecipe id: SurveillanceCameraMonitorCircuitboard result: SurveillanceCameraMonitorCircuitboard + category: Circuitry completetime: 4 materials: Steel: 100 @@ -697,6 +780,7 @@ - type: latheRecipe id: SurveillanceWirelessCameraMonitorCircuitboard result: SurveillanceWirelessCameraMonitorCircuitboard + category: Circuitry completetime: 4 materials: Steel: 100 @@ -705,6 +789,7 @@ - type: latheRecipe id: ComputerTelevisionCircuitboard result: ComputerTelevisionCircuitboard + category: Circuitry completetime: 4 materials: Steel: 100 @@ -713,6 +798,7 @@ - type: latheRecipe id: EmitterCircuitboard result: EmitterCircuitboard + category: Circuitry completetime: 4 materials: Steel: 100 @@ -721,6 +807,7 @@ - type: latheRecipe id: ThrusterMachineCircuitboard result: ThrusterMachineCircuitboard + category: Circuitry completetime: 4 materials: Steel: 100 @@ -729,6 +816,7 @@ - type: latheRecipe id: GyroscopeMachineCircuitboard result: GyroscopeMachineCircuitboard + category: Circuitry completetime: 4 materials: Steel: 100 @@ -737,6 +825,7 @@ - type: latheRecipe id: GasRecyclerMachineCircuitboard result: GasRecyclerMachineCircuitboard + category: Circuitry completetime: 4 materials: Steel: 100 @@ -745,6 +834,7 @@ - type: latheRecipe id: SeedExtractorMachineCircuitboard result: SeedExtractorMachineCircuitboard + category: Circuitry completetime: 4 materials: Steel: 100 @@ -753,6 +843,7 @@ - type: latheRecipe id: BoozeDispenserMachineCircuitboard result: BoozeDispenserMachineCircuitboard + category: Circuitry completetime: 4 materials: Steel: 100 @@ -761,6 +852,7 @@ - type: latheRecipe id: CargoTelepadMachineCircuitboard result: CargoTelepadMachineCircuitboard + category: Circuitry completetime: 4 materials: Steel: 100 @@ -770,6 +862,7 @@ - type: latheRecipe id: SodaDispenserMachineCircuitboard result: SodaDispenserMachineCircuitboard + category: Circuitry completetime: 4 materials: Steel: 100 @@ -778,6 +871,7 @@ - type: latheRecipe id: TelecomServerCircuitboard result: TelecomServerCircuitboard + category: Circuitry completetime: 4 materials: Steel: 100 @@ -786,6 +880,7 @@ - type: latheRecipe id: MassMediaCircuitboard result: ComputerMassMediaCircuitboard + category: Circuitry completetime: 4 materials: Steel: 100 @@ -794,6 +889,7 @@ - type: latheRecipe id: MiniGravityGeneratorCircuitboard result: MiniGravityGeneratorCircuitboard + category: Circuitry completetime: 6 materials: Steel: 100 diff --git a/Resources/Prototypes/Recipes/Lathes/mech_parts.yml b/Resources/Prototypes/Recipes/Lathes/mech_parts.yml index 462e285cf19..4f9f84d0dc8 100644 --- a/Resources/Prototypes/Recipes/Lathes/mech_parts.yml +++ b/Resources/Prototypes/Recipes/Lathes/mech_parts.yml @@ -2,6 +2,7 @@ - type: latheRecipe id: RipleyHarness result: RipleyHarness + category: Mech completetime: 10 materials: Steel: 1500 @@ -10,6 +11,7 @@ - type: latheRecipe id: RipleyLArm result: RipleyLArm + category: Mech completetime: 10 materials: Steel: 1000 @@ -18,6 +20,7 @@ - type: latheRecipe id: RipleyLLeg result: RipleyLLeg + category: Mech completetime: 10 materials: Steel: 1000 @@ -26,6 +29,7 @@ - type: latheRecipe id: RipleyRLeg result: RipleyRLeg + category: Mech completetime: 10 materials: Steel: 1000 @@ -34,6 +38,7 @@ - type: latheRecipe id: RipleyRArm result: RipleyRArm + category: Mech completetime: 10 materials: Steel: 1000 @@ -42,6 +47,7 @@ - type: latheRecipe id: MechEquipmentGrabber result: MechEquipmentGrabber + category: Mech completetime: 10 materials: Steel: 500 @@ -51,6 +57,7 @@ - type: latheRecipe id: HonkerHarness result: HonkerHarness + category: Mech completetime: 10 materials: Steel: 3000 @@ -60,6 +67,7 @@ - type: latheRecipe id: HonkerLArm result: HonkerLArm + category: Mech completetime: 10 materials: Steel: 3000 @@ -69,6 +77,7 @@ - type: latheRecipe id: HonkerLLeg result: HonkerLLeg + category: Mech completetime: 10 materials: Steel: 3000 @@ -78,6 +87,7 @@ - type: latheRecipe id: HonkerRLeg result: HonkerRLeg + category: Mech completetime: 10 materials: Steel: 3000 @@ -87,6 +97,7 @@ - type: latheRecipe id: HonkerRArm result: HonkerRArm + category: Mech completetime: 10 materials: Steel: 3000 @@ -96,6 +107,7 @@ - type: latheRecipe id: MechEquipmentHorn result: MechEquipmentHorn + category: Mech completetime: 10 materials: Steel: 500 @@ -105,6 +117,7 @@ - type: latheRecipe id: HamtrHarness result: HamtrHarness + category: Mech completetime: 10 materials: Steel: 1200 @@ -113,6 +126,7 @@ - type: latheRecipe id: HamtrLArm result: HamtrLArm + category: Mech completetime: 10 materials: Steel: 800 @@ -121,6 +135,7 @@ - type: latheRecipe id: HamtrLLeg result: HamtrLLeg + category: Mech completetime: 10 materials: Steel: 800 @@ -129,6 +144,7 @@ - type: latheRecipe id: HamtrRLeg result: HamtrRLeg + category: Mech completetime: 10 materials: Steel: 800 @@ -137,6 +153,7 @@ - type: latheRecipe id: HamtrRArm result: HamtrRArm + category: Mech completetime: 10 materials: Steel: 800 @@ -145,6 +162,7 @@ - type: latheRecipe id: MechEquipmentGrabberSmall result: MechEquipmentGrabberSmall + category: Mech completetime: 10 materials: Steel: 400 @@ -154,6 +172,7 @@ - type: latheRecipe id: VimHarness result: VimHarness + category: Mech completetime: 5 materials: Steel: 500 diff --git a/Resources/Prototypes/Recipes/Lathes/medical.yml b/Resources/Prototypes/Recipes/Lathes/medical.yml index d3477832e99..51cdf830502 100644 --- a/Resources/Prototypes/Recipes/Lathes/medical.yml +++ b/Resources/Prototypes/Recipes/Lathes/medical.yml @@ -1,6 +1,7 @@ - type: latheRecipe id: Scalpel result: Scalpel + category: Tools completetime: 2 materials: Steel: 200 @@ -8,6 +9,7 @@ - type: latheRecipe id: Retractor result: Retractor + category: Tools completetime: 2 materials: Steel: 200 @@ -15,6 +17,7 @@ - type: latheRecipe id: Cautery result: Cautery + category: Tools completetime: 2 materials: Steel: 200 @@ -22,6 +25,7 @@ - type: latheRecipe id: Drill result: Drill + category: Tools completetime: 2 materials: Steel: 200 @@ -30,6 +34,7 @@ - type: latheRecipe id: Saw result: Saw + category: Tools completetime: 2 materials: Steel: 200 @@ -37,6 +42,7 @@ - type: latheRecipe id: Hemostat result: Hemostat + category: Tools completetime: 2 materials: Steel: 200 @@ -74,6 +80,7 @@ - type: latheRecipe id: HandheldCrewMonitor result: HandheldCrewMonitorEmpty + category: Tools completetime: 2 materials: Glass: 1200 @@ -83,6 +90,7 @@ - type: latheRecipe id: HandheldHealthAnalyzer result: HandheldHealthAnalyzerEmpty + category: Tools completetime: 4 materials: Glass: 500 @@ -200,6 +208,7 @@ - type: latheRecipe id: HandLabeler result: HandLabeler + category: Tools completetime: 2 materials: Plastic: 100 @@ -218,7 +227,7 @@ materials: Steel: 500 Plastic: 300 - + - type: latheRecipe id: RollerBedSpawnFolded result: RollerBedSpawnFolded diff --git a/Resources/Prototypes/Recipes/Lathes/misc.yml b/Resources/Prototypes/Recipes/Lathes/misc.yml index 96cd83a7fea..a7c294a0df6 100644 --- a/Resources/Prototypes/Recipes/Lathes/misc.yml +++ b/Resources/Prototypes/Recipes/Lathes/misc.yml @@ -1,6 +1,7 @@ - type: latheRecipe id: LightTube result: LightTube + category: Lights completetime: 2 materials: Steel: 50 @@ -9,6 +10,7 @@ - type: latheRecipe id: SodiumLightTube result: SodiumLightTube + category: Lights completetime: 2 materials: Steel: 50 @@ -17,6 +19,7 @@ - type: latheRecipe id: ExteriorLightTube result: ExteriorLightTube + category: Lights completetime: 2 materials: Steel: 50 @@ -25,6 +28,7 @@ - type: latheRecipe id: LightBulb result: LightBulb + category: Lights completetime: 2 materials: Steel: 50 @@ -33,6 +37,7 @@ - type: latheRecipe id: GlowstickRed result: GlowstickRed + category: Lights completetime: 2 materials: Plastic: 50 @@ -40,6 +45,7 @@ - type: latheRecipe id: Flare result: Flare + category: Lights completetime: 2 materials: Plastic: 50 @@ -47,6 +53,7 @@ - type: latheRecipe id: FlashlightLantern result: EmptyFlashlightLantern + category: Lights completetime: 2 materials: Steel: 100 @@ -56,6 +63,7 @@ - type: latheRecipe id: FireExtinguisher result: FireExtinguisher + category: Tools completetime: 2 materials: Steel: 200 @@ -88,6 +96,7 @@ - type: latheRecipe id: NodeScanner result: NodeScanner + category: Tools completetime: 2 materials: Steel: 100 diff --git a/Resources/Prototypes/Recipes/Lathes/powercells.yml b/Resources/Prototypes/Recipes/Lathes/powercells.yml index 2982c070be2..0b63995a63a 100644 --- a/Resources/Prototypes/Recipes/Lathes/powercells.yml +++ b/Resources/Prototypes/Recipes/Lathes/powercells.yml @@ -1,6 +1,7 @@ - type: latheRecipe id: PowerCellSmall result: PowerCellSmallPrinted + category: Parts completetime: 1 materials: Steel: 100 @@ -9,6 +10,7 @@ - type: latheRecipe id: PowerCellMedium result: PowerCellMediumPrinted + category: Parts completetime: 6 materials: Steel: 300 @@ -19,6 +21,7 @@ - type: latheRecipe id: PowerCellHigh result: PowerCellHighPrinted + category: Parts completetime: 10 materials: Steel: 300 @@ -29,6 +32,7 @@ - type: latheRecipe id: PowerCellMicroreactor result: PowerCellMicroreactorPrinted + category: Parts completetime: 10 materials: Steel: 500 diff --git a/Resources/Prototypes/Recipes/Lathes/robotics.yml b/Resources/Prototypes/Recipes/Lathes/robotics.yml index c8a5810925c..1d840e3b4cb 100644 --- a/Resources/Prototypes/Recipes/Lathes/robotics.yml +++ b/Resources/Prototypes/Recipes/Lathes/robotics.yml @@ -1,6 +1,7 @@ - type: latheRecipe id: ProximitySensor result: ProximitySensor + category: Robotics completetime: 2 materials: Steel: 200 @@ -9,6 +10,7 @@ - type: latheRecipe id: SciFlash result: SciFlash + category: Robotics completetime: 2 materials: Glass: 100 @@ -18,6 +20,7 @@ - type: latheRecipe id: CyborgEndoskeleton result: CyborgEndoskeleton + category: Robotics completetime: 3 materials: Steel: 1500 @@ -25,6 +28,7 @@ - type: latheRecipe id: LeftArmBorg result: LeftArmBorg + category: Robotics completetime: 2 materials: Steel: 250 @@ -33,6 +37,7 @@ - type: latheRecipe id: RightArmBorg result: RightArmBorg + category: Robotics completetime: 2 materials: Steel: 250 @@ -41,6 +46,7 @@ - type: latheRecipe id: LeftLegBorg result: LeftLegBorg + category: Robotics completetime: 2 materials: Steel: 250 @@ -49,6 +55,7 @@ - type: latheRecipe id: RightLegBorg result: RightLegBorg + category: Robotics completetime: 2 materials: Steel: 250 @@ -57,6 +64,7 @@ - type: latheRecipe id: LightHeadBorg result: LightHeadBorg + category: Robotics completetime: 2 materials: Steel: 250 @@ -65,6 +73,7 @@ - type: latheRecipe id: TorsoBorg result: TorsoBorg + category: Robotics completetime: 2 materials: Steel: 250 @@ -73,6 +82,7 @@ - type: latheRecipe id: LeftArmBorgEngineer result: LeftArmBorgEngineer + category: Robotics completetime: 2 materials: Steel: 250 @@ -81,6 +91,7 @@ - type: latheRecipe id: RightArmBorgEngineer result: RightArmBorgEngineer + category: Robotics completetime: 2 materials: Steel: 250 @@ -89,6 +100,7 @@ - type: latheRecipe id: LeftLegBorgEngineer result: LeftLegBorgEngineer + category: Robotics completetime: 2 materials: Steel: 250 @@ -97,6 +109,7 @@ - type: latheRecipe id: RightLegBorgEngineer result: RightLegBorgEngineer + category: Robotics completetime: 2 materials: Steel: 250 @@ -105,6 +118,7 @@ - type: latheRecipe id: HeadBorgEngineer result: HeadBorgEngineer + category: Robotics completetime: 2 materials: Steel: 250 @@ -113,6 +127,7 @@ - type: latheRecipe id: TorsoBorgEngineer result: TorsoBorgEngineer + category: Robotics completetime: 2 materials: Steel: 250 @@ -121,6 +136,7 @@ - type: latheRecipe id: LeftArmBorgMedical result: LeftArmBorgMedical + category: Robotics completetime: 2 materials: Steel: 250 @@ -129,6 +145,7 @@ - type: latheRecipe id: RightArmBorgMedical result: RightArmBorgMedical + category: Robotics completetime: 2 materials: Steel: 250 @@ -137,6 +154,7 @@ - type: latheRecipe id: LeftLegBorgMedical result: LeftLegBorgMedical + category: Robotics completetime: 2 materials: Steel: 250 @@ -145,6 +163,7 @@ - type: latheRecipe id: RightLegBorgMedical result: RightLegBorgMedical + category: Robotics completetime: 2 materials: Steel: 250 @@ -153,6 +172,7 @@ - type: latheRecipe id: HeadBorgMedical result: HeadBorgMedical + category: Robotics completetime: 2 materials: Steel: 250 @@ -161,6 +181,7 @@ - type: latheRecipe id: TorsoBorgMedical result: TorsoBorgMedical + category: Robotics completetime: 2 materials: Steel: 250 @@ -169,6 +190,7 @@ - type: latheRecipe id: LeftArmBorgMining result: LeftArmBorgMining + category: Robotics completetime: 2 materials: Steel: 250 @@ -177,6 +199,7 @@ - type: latheRecipe id: RightArmBorgMining result: RightArmBorgMining + category: Robotics completetime: 2 materials: Steel: 250 @@ -185,6 +208,7 @@ - type: latheRecipe id: LeftLegBorgMining result: LeftLegBorgMining + category: Robotics completetime: 2 materials: Steel: 250 @@ -193,6 +217,7 @@ - type: latheRecipe id: RightLegBorgMining result: RightLegBorgMining + category: Robotics completetime: 2 materials: Steel: 250 @@ -201,6 +226,7 @@ - type: latheRecipe id: HeadBorgMining result: HeadBorgMining + category: Robotics completetime: 2 materials: Steel: 250 @@ -209,6 +235,7 @@ - type: latheRecipe id: TorsoBorgMining result: TorsoBorgMining + category: Robotics completetime: 2 materials: Steel: 250 @@ -217,6 +244,7 @@ - type: latheRecipe id: LeftArmBorgService result: LeftArmBorgService + category: Robotics completetime: 2 materials: Steel: 250 @@ -225,6 +253,7 @@ - type: latheRecipe id: RightArmBorgService result: RightArmBorgService + category: Robotics completetime: 2 materials: Steel: 250 @@ -233,6 +262,7 @@ - type: latheRecipe id: LeftLegBorgService result: LeftLegBorgService + category: Robotics completetime: 2 materials: Steel: 250 @@ -241,6 +271,7 @@ - type: latheRecipe id: RightLegBorgService result: RightLegBorgService + category: Robotics completetime: 2 materials: Steel: 250 @@ -249,6 +280,7 @@ - type: latheRecipe id: HeadBorgService result: HeadBorgService + category: Robotics completetime: 2 materials: Steel: 250 @@ -257,6 +289,7 @@ - type: latheRecipe id: TorsoBorgService result: TorsoBorgService + category: Robotics completetime: 2 materials: Steel: 250 @@ -265,6 +298,7 @@ - type: latheRecipe id: LeftLegBorgJanitor result: LeftLegBorgJanitor + category: Robotics completetime: 2 materials: Steel: 250 @@ -273,6 +307,7 @@ - type: latheRecipe id: RightLegBorgJanitor result: RightLegBorgJanitor + category: Robotics completetime: 2 materials: Steel: 250 @@ -281,6 +316,7 @@ - type: latheRecipe id: HeadBorgJanitor result: HeadBorgJanitor + category: Robotics completetime: 4 materials: Steel: 500 @@ -289,6 +325,7 @@ - type: latheRecipe id: TorsoBorgJanitor result: TorsoBorgJanitor + category: Robotics completetime: 4 materials: Steel: 500 @@ -297,6 +334,7 @@ - type: latheRecipe id: MMI result: MMI + category: Robotics completetime: 3 icon: sprite: Objects/Specific/Robotics/mmi.rsi @@ -310,6 +348,7 @@ - type: latheRecipe id: PositronicBrain result: PositronicBrain + category: Robotics completetime: 3 materials: Steel: 500 @@ -321,6 +360,7 @@ - type: latheRecipe id: BorgModuleCable result: BorgModuleCable + category: Robotics completetime: 3 materials: Steel: 250 @@ -330,6 +370,7 @@ - type: latheRecipe id: BorgModuleFireExtinguisher result: BorgModuleFireExtinguisher + category: Robotics completetime: 3 materials: Steel: 250 @@ -339,6 +380,7 @@ - type: latheRecipe id: BorgModuleGPS result: BorgModuleGPS + category: Robotics completetime: 3 materials: Steel: 250 @@ -348,6 +390,7 @@ - type: latheRecipe id: BorgModuleRadiationDetection result: BorgModuleRadiationDetection + category: Robotics completetime: 3 materials: Steel: 250 @@ -357,6 +400,7 @@ - type: latheRecipe id: BorgModuleTool result: BorgModuleTool + category: Robotics completetime: 3 materials: Steel: 250 @@ -366,6 +410,7 @@ - type: latheRecipe id: BorgModuleAppraisal result: BorgModuleAppraisal + category: Robotics completetime: 3 materials: Steel: 250 @@ -375,6 +420,7 @@ - type: latheRecipe id: BorgModuleMining result: BorgModuleMining + category: Robotics completetime: 3 materials: Steel: 250 @@ -384,6 +430,7 @@ - type: latheRecipe id: BorgModuleGrapplingGun result: BorgModuleGrapplingGun + category: Robotics completetime: 3 materials: Steel: 500 @@ -394,6 +441,7 @@ - type: latheRecipe id: BorgModuleAdvancedTool result: BorgModuleAdvancedTool + category: Robotics completetime: 3 materials: Steel: 500 @@ -404,6 +452,7 @@ - type: latheRecipe id: BorgModuleConstruction result: BorgModuleConstruction + category: Robotics completetime: 3 materials: Steel: 500 @@ -413,6 +462,7 @@ - type: latheRecipe id: BorgModuleGasAnalyzer result: BorgModuleGasAnalyzer + category: Robotics completetime: 3 materials: Steel: 250 @@ -422,6 +472,7 @@ - type: latheRecipe id: BorgModuleRCD result: BorgModuleRCD + category: Robotics completetime: 3 materials: Steel: 500 @@ -432,6 +483,7 @@ - type: latheRecipe id: BorgModuleLightReplacer result: BorgModuleLightReplacer + category: Robotics completetime: 3 materials: Steel: 250 @@ -441,6 +493,7 @@ - type: latheRecipe id: BorgModuleCleaning result: BorgModuleCleaning + category: Robotics completetime: 3 materials: Steel: 250 @@ -450,6 +503,7 @@ - type: latheRecipe id: BorgModuleAdvancedCleaning result: BorgModuleAdvancedCleaning + category: Robotics completetime: 3 materials: Steel: 250 @@ -460,6 +514,7 @@ - type: latheRecipe id: BorgModuleDiagnosis result: BorgModuleDiagnosis + category: Robotics completetime: 3 materials: Steel: 250 @@ -469,6 +524,7 @@ - type: latheRecipe id: BorgModuleTreatment result: BorgModuleTreatment + category: Robotics completetime: 3 materials: Steel: 250 @@ -478,6 +534,7 @@ - type: latheRecipe id: BorgModuleAdvancedTreatment result: BorgModuleAdvancedTreatment + category: Robotics completetime: 3 materials: Steel: 500 @@ -488,6 +545,7 @@ - type: latheRecipe id: BorgModuleDefibrillator result: BorgModuleDefibrillator + category: Robotics completetime: 3 materials: Steel: 500 @@ -498,6 +556,7 @@ - type: latheRecipe id: BorgModuleArtifact result: BorgModuleArtifact + category: Robotics completetime: 3 materials: Steel: 250 @@ -507,6 +566,7 @@ - type: latheRecipe id: BorgModuleAnomaly result: BorgModuleAnomaly + category: Robotics completetime: 3 materials: Steel: 250 @@ -516,6 +576,7 @@ - type: latheRecipe id: BorgModuleService result: BorgModuleService + category: Robotics completetime: 3 materials: Steel: 250 @@ -525,6 +586,7 @@ - type: latheRecipe id: BorgModuleMusique result: BorgModuleMusique + category: Robotics completetime: 3 materials: Steel: 250 @@ -534,6 +596,7 @@ - type: latheRecipe id: BorgModuleGardening result: BorgModuleGardening + category: Robotics completetime: 3 materials: Steel: 250 @@ -543,6 +606,7 @@ - type: latheRecipe id: BorgModuleHarvesting result: BorgModuleHarvesting + category: Robotics completetime: 3 materials: Steel: 250 @@ -552,6 +616,7 @@ - type: latheRecipe id: BorgModuleClowning result: BorgModuleClowning + category: Robotics completetime: 3 materials: Steel: 250 diff --git a/Resources/Prototypes/Recipes/Lathes/security.yml b/Resources/Prototypes/Recipes/Lathes/security.yml index 940d52b7f95..eb9da60d781 100644 --- a/Resources/Prototypes/Recipes/Lathes/security.yml +++ b/Resources/Prototypes/Recipes/Lathes/security.yml @@ -15,6 +15,7 @@ - type: latheRecipe id: Stunbaton result: Stunbaton + category: Weapons completetime: 2 materials: Steel: 300 @@ -23,6 +24,7 @@ - type: latheRecipe id: Truncheon result: Truncheon + category: Weapons completetime: 2 materials: Steel: 300 @@ -31,6 +33,7 @@ - type: latheRecipe id: WeaponLaserCarbine result: WeaponLaserCarbine + category: Weapons completetime: 8 materials: Steel: 2000 @@ -40,6 +43,7 @@ - type: latheRecipe id: WeaponAdvancedLaser result: WeaponAdvancedLaser + category: Weapons completetime: 5 materials: Steel: 1500 @@ -49,6 +53,7 @@ - type: latheRecipe id: WeaponLaserCannon result: WeaponLaserCannon + category: Weapons completetime: 5 materials: Steel: 1250 @@ -58,6 +63,7 @@ - type: latheRecipe id: WeaponLaserSvalinn result: WeaponLaserSvalinn + category: Weapons completetime: 5 materials: Steel: 2000 @@ -66,6 +72,7 @@ - type: latheRecipe id: WeaponXrayCannon result: WeaponXrayCannon + category: Weapons completetime: 5 materials: Steel: 1500 @@ -133,6 +140,7 @@ - type: latheRecipe id: ShellShotgunBeanbag result: ShellShotgunBeanbag + category: Ammo completetime: 2 materials: Plastic: 15 @@ -141,6 +149,7 @@ - type: latheRecipe id: CartridgePistolRubber result: CartridgePistolRubber + category: Ammo completetime: 2 materials: Plastic: 5 @@ -149,6 +158,7 @@ - type: latheRecipe id: CartridgeMagnumRubber result: CartridgeMagnumRubber + category: Ammo completetime: 2 materials: Plastic: 5 @@ -157,6 +167,7 @@ - type: latheRecipe id: CartridgeRifle result: CartridgeRifle + category: Ammo completetime: 2 materials: Steel: 15 @@ -164,6 +175,7 @@ - type: latheRecipe id: CartridgeLightRifleRubber result: CartridgeLightRifleRubber + category: Ammo completetime: 2 materials: Plastic: 10 @@ -172,6 +184,7 @@ - type: latheRecipe id: CartridgeRifleRubber result: CartridgeRifleRubber + category: Ammo completetime: 2 materials: Plastic: 10 @@ -180,6 +193,7 @@ - type: latheRecipe id: CartridgePistol result: CartridgePistol + category: Ammo completetime: 2 materials: Steel: 10 @@ -187,6 +201,7 @@ - type: latheRecipe id: ShellShotgun result: ShellShotgun + category: Ammo completetime: 2 materials: Steel: 20 @@ -194,6 +209,7 @@ - type: latheRecipe id: CartridgeMagnum result: CartridgeMagnum + category: Ammo completetime: 2 materials: Steel: 20 @@ -201,6 +217,7 @@ - type: latheRecipe id: CartridgeLightRifle result: CartridgeLightRifle + category: Ammo completetime: 2 materials: Steel: 30 @@ -208,6 +225,7 @@ - type: latheRecipe id: ShellShotgunFlare result: ShellShotgunFlare + category: Ammo completetime: 2 materials: Plastic: 20 @@ -216,6 +234,7 @@ - type: latheRecipe id: ShellTranquilizer result: ShellTranquilizer + category: Ammo completetime: 4 materials: Plastic: 15 @@ -251,6 +270,7 @@ - type: latheRecipe id: MagazinePistol result: MagazinePistol + category: Ammo completetime: 5 materials: Steel: 100 @@ -258,6 +278,7 @@ - type: latheRecipe id: MagazinePistolSubMachineGun result: MagazinePistolSubMachineGun + category: Ammo completetime: 5 materials: Steel: 300 @@ -265,6 +286,7 @@ - type: latheRecipe id: MagazinePistolSubMachineGunTopMounted result: MagazinePistolSubMachineGunTopMounted + category: Ammo completetime: 5 materials: Steel: 300 @@ -272,6 +294,7 @@ - type: latheRecipe id: MagazineBoxPistol result: MagazineBoxPistol + category: Ammo completetime: 5 materials: Steel: 650 @@ -279,6 +302,7 @@ - type: latheRecipe id: MagazineBoxPistolRubber result: MagazineBoxPistolRubber + category: Ammo completetime: 5 materials: Steel: 350 @@ -287,6 +311,7 @@ - type: latheRecipe id: MagazineBoxMagnum result: MagazineBoxMagnum + category: Ammo completetime: 5 materials: Steel: 1250 @@ -294,6 +319,7 @@ - type: latheRecipe id: MagazineBoxMagnumRubber result: MagazineBoxMagnumRubber + category: Ammo completetime: 5 materials: Steel: 350 @@ -302,6 +328,7 @@ - type: latheRecipe id: MagazineRifle result: MagazineRifle + category: Ammo completetime: 5 materials: Steel: 375 @@ -309,6 +336,7 @@ - type: latheRecipe id: MagazineLightRifle result: MagazineLightRifle + category: Ammo completetime: 5 materials: Steel: 375 @@ -316,6 +344,7 @@ - type: latheRecipe id: MagazineBoxRifle result: MagazineBoxRifle + category: Ammo completetime: 5 materials: Steel: 950 @@ -323,6 +352,7 @@ - type: latheRecipe id: MagazineBoxRifleRubber result: MagazineBoxRifleRubber + category: Ammo completetime: 5 materials: Steel: 350 @@ -331,6 +361,7 @@ - type: latheRecipe id: MagazineBoxLightRifle result: MagazineBoxLightRifle + category: Ammo completetime: 5 materials: Steel: 1800 @@ -338,6 +369,7 @@ - type: latheRecipe id: MagazineBoxLightRifleRubber result: MagazineBoxLightRifleRubber + category: Ammo completetime: 5 materials: Steel: 350 @@ -346,6 +378,7 @@ - type: latheRecipe id: SpeedLoaderMagnum result: SpeedLoaderMagnum + category: Ammo completetime: 5 materials: Steel: 200 @@ -353,6 +386,7 @@ - type: latheRecipe id: ShellShotgunIncendiary result: ShellShotgunIncendiary + category: Ammo completetime: 2 materials: Plastic: 20 @@ -360,6 +394,7 @@ - type: latheRecipe id: CartridgePistolIncendiary result: CartridgePistolIncendiary + category: Ammo completetime: 2 materials: Plastic: 10 @@ -367,6 +402,7 @@ - type: latheRecipe id: CartridgeMagnumIncendiary result: CartridgeMagnumIncendiary + category: Ammo completetime: 2 materials: Plastic: 20 @@ -374,6 +410,7 @@ - type: latheRecipe id: CartridgeLightRifleIncendiary result: CartridgeLightRifleIncendiary + category: Ammo completetime: 2 materials: Plastic: 20 @@ -381,6 +418,7 @@ - type: latheRecipe id: CartridgeRifleIncendiary result: CartridgeRifleIncendiary + category: Ammo completetime: 2 materials: Plastic: 15 @@ -388,6 +426,7 @@ - type: latheRecipe id: MagazineBoxPistolIncendiary result: MagazineBoxPistolIncendiary + category: Ammo completetime: 5 materials: Plastic: 650 @@ -395,6 +434,7 @@ - type: latheRecipe id: MagazineBoxMagnumIncendiary result: MagazineBoxMagnumIncendiary + category: Ammo completetime: 5 materials: Plastic: 1250 @@ -402,6 +442,7 @@ - type: latheRecipe id: MagazineBoxLightRifleIncendiary result: MagazineBoxLightRifleIncendiary + category: Ammo completetime: 5 materials: Plastic: 1800 @@ -409,6 +450,7 @@ - type: latheRecipe id: MagazineBoxRifleIncendiary result: MagazineBoxRifleIncendiary + category: Ammo completetime: 5 materials: Plastic: 950 @@ -416,6 +458,7 @@ - type: latheRecipe id: ShellShotgunPractice result: ShellShotgunPractice + category: Ammo completetime: 2 materials: Plastic: 20 @@ -423,6 +466,7 @@ - type: latheRecipe id: MagazineBoxPistolPractice result: MagazineBoxPistolPractice + category: Ammo completetime: 5 materials: Plastic: 600 @@ -430,6 +474,7 @@ - type: latheRecipe id: MagazineBoxMagnumPractice result: MagazineBoxMagnumPractice + category: Ammo completetime: 5 materials: Plastic: 1200 @@ -437,6 +482,7 @@ - type: latheRecipe id: MagazineBoxLightRiflePractice result: MagazineBoxLightRiflePractice + category: Ammo completetime: 5 materials: Plastic: 1000 @@ -444,6 +490,7 @@ - type: latheRecipe id: MagazineBoxRiflePractice result: MagazineBoxRiflePractice + category: Ammo completetime: 5 materials: Plastic: 900 @@ -451,6 +498,7 @@ - type: latheRecipe id: WeaponLaserCarbinePractice result: WeaponLaserCarbinePractice + category: Weapons completetime: 6 materials: Steel: 1800 @@ -460,6 +508,7 @@ - type: latheRecipe id: WeaponDisablerPractice result: WeaponDisablerPractice + category: Weapons completetime: 4 materials: Steel: 500 @@ -469,6 +518,7 @@ - type: latheRecipe id: ShellShotgunUranium result: ShellShotgunUranium + category: Ammo completetime: 2 materials: Plastic: 15 @@ -477,6 +527,7 @@ - type: latheRecipe id: CartridgePistolUranium result: CartridgePistolUranium + category: Ammo completetime: 2 materials: Plastic: 5 @@ -485,6 +536,7 @@ - type: latheRecipe id: CartridgeMagnumUranium result: CartridgeMagnumUranium + category: Ammo completetime: 2 materials: Plastic: 20 @@ -493,6 +545,7 @@ - type: latheRecipe id: CartridgeLightRifleUranium result: CartridgeLightRifleUranium + category: Ammo completetime: 2 materials: Plastic: 20 @@ -501,6 +554,7 @@ - type: latheRecipe id: CartridgeRifleUranium result: CartridgeRifleUranium + category: Ammo completetime: 2 materials: Plastic: 15 @@ -509,6 +563,7 @@ - type: latheRecipe id: MagazineBoxPistolUranium result: MagazineBoxPistolUranium + category: Ammo completetime: 5 materials: Plastic: 650 @@ -517,6 +572,7 @@ - type: latheRecipe id: MagazineBoxMagnumUranium result: MagazineBoxMagnumUranium + category: Ammo completetime: 5 materials: Plastic: 1250 @@ -525,6 +581,7 @@ - type: latheRecipe id: MagazineBoxLightRifleUranium result: MagazineBoxLightRifleUranium + category: Ammo completetime: 5 materials: Plastic: 1800 @@ -533,14 +590,16 @@ - type: latheRecipe id: MagazineBoxRifleUranium result: MagazineBoxRifleUranium + category: Ammo completetime: 5 materials: Plastic: 950 Uranium: 95 - + - type: latheRecipe id: WeaponDisablerSMG result: WeaponDisablerSMG + category: Weapons completetime: 6 materials: Steel: 1000 diff --git a/Resources/Prototypes/Recipes/Lathes/tools.yml b/Resources/Prototypes/Recipes/Lathes/tools.yml index 6c7612436e6..ce3f4cda3ce 100644 --- a/Resources/Prototypes/Recipes/Lathes/tools.yml +++ b/Resources/Prototypes/Recipes/Lathes/tools.yml @@ -4,6 +4,7 @@ sprite: Objects/Tools/wirecutters.rsi state: cutters-map result: Wirecutter + category: Tools completetime: 2 materials: Steel: 200 @@ -15,6 +16,7 @@ sprite: Objects/Tools/screwdriver.rsi state: screwdriver-map result: Screwdriver + category: Tools completetime: 2 materials: Steel: 200 @@ -23,6 +25,7 @@ - type: latheRecipe id: Welder result: Welder + category: Tools completetime: 2 materials: Steel: 400 @@ -30,6 +33,7 @@ - type: latheRecipe id: Wrench result: Wrench + category: Tools completetime: 2 materials: Steel: 200 @@ -37,6 +41,7 @@ - type: latheRecipe id: CableStack result: CableApcStack1 + category: Parts completetime: 2 materials: Steel: 30 @@ -44,6 +49,7 @@ - type: latheRecipe id: CableMVStack result: CableMVStack1 + category: Parts completetime: 2 materials: Steel: 30 @@ -51,6 +57,7 @@ - type: latheRecipe id: CableHVStack result: CableHVStack1 + category: Parts completetime: 2 materials: Steel: 30 @@ -58,6 +65,7 @@ - type: latheRecipe id: Crowbar result: Crowbar + category: Tools completetime: 2 materials: Steel: 200 @@ -65,6 +73,7 @@ - type: latheRecipe id: Pickaxe result: Pickaxe + category: Tools completetime: 4 materials: Steel: 1000 @@ -73,6 +82,7 @@ - type: latheRecipe id: Shovel result: Shovel + category: Tools completetime: 2 materials: Steel: 200 @@ -81,6 +91,7 @@ - type: latheRecipe id: Multitool result: Multitool + category: Tools completetime: 2 materials: Steel: 200 @@ -89,6 +100,7 @@ - type: latheRecipe id: NetworkConfigurator result: NetworkConfigurator + category: Tools completetime: 2 materials: Steel: 200 @@ -97,6 +109,7 @@ - type: latheRecipe id: PowerDrill result: PowerDrill + category: Tools completetime: 2 materials: Steel: 600 @@ -105,6 +118,7 @@ - type: latheRecipe id: RCD result: RCDEmpty + category: Tools completetime: 4 materials: Steel: 1000 @@ -113,6 +127,7 @@ - type: latheRecipe id: RCDAmmo result: RCDAmmo + category: Tools completetime: 2.4 materials: Steel: 500 @@ -121,6 +136,7 @@ - type: latheRecipe id: HandheldGPSBasic result: HandheldGPSBasic + category: Tools completetime: 2 materials: Steel: 800 @@ -129,6 +145,7 @@ - type: latheRecipe id: TRayScanner result: trayScanner + category: Tools completetime: 2 materials: Steel: 800 @@ -137,6 +154,7 @@ - type: latheRecipe id: GasAnalyzer result: GasAnalyzer + category: Tools completetime: 2 materials: Steel: 800 @@ -145,6 +163,7 @@ - type: latheRecipe id: SprayPainter result: SprayPainter + category: Tools completetime: 2 materials: Steel: 300 @@ -153,6 +172,7 @@ - type: latheRecipe id: UtilityBelt result: ClothingBeltUtility + category: Tools completetime: 2 materials: Cloth: 100 @@ -161,6 +181,7 @@ - type: latheRecipe id: HolofanProjector result: HolofanProjector + category: Tools completetime: 8 materials: # Inherited materials and time from PowerCellMedium recipe Steel: 600 @@ -171,6 +192,7 @@ - type: latheRecipe id: RPED result: RPED + category: Tools completetime: 10 materials: Steel: 650 @@ -180,6 +202,7 @@ - type: latheRecipe id: MiningDrill result: MiningDrill + category: Tools completetime: 3 materials: Steel: 500 @@ -188,6 +211,7 @@ - type: latheRecipe id: WelderExperimental result: WelderExperimental + category: Tools completetime: 6 materials: Steel: 800 @@ -196,27 +220,30 @@ - type: latheRecipe id: JawsOfLife result: JawsOfLife + category: Tools completetime: 6 materials: Steel: 1000 Glass: 500 Plasma: 300 Gold: 50 - + - type: latheRecipe id: HoloprojectorField result: HoloprojectorField + category: Tools completetime: 3 materials: Steel: 500 Plasma: 300 Glass: 100 - + - type: latheRecipe id: WeaponParticleDecelerator result: WeaponParticleDecelerator + category: Tools completetime: 6 materials: Steel: 750 Plasma: 150 - Uranium: 150 \ No newline at end of file + Uranium: 150 From ac809c492990746b67e948a30ec36542679084e1 Mon Sep 17 00:00:00 2001 From: PJBot Date: Sat, 20 Jan 2024 00:46:10 +0000 Subject: [PATCH 14/66] Automatic changelog update --- Resources/Changelog/Changelog.yml | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/Resources/Changelog/Changelog.yml b/Resources/Changelog/Changelog.yml index a1360f33c95..fc138ee01ad 100644 --- a/Resources/Changelog/Changelog.yml +++ b/Resources/Changelog/Changelog.yml @@ -1,10 +1,4 @@ Entries: -- author: liltenhead - changes: - - message: Replaced the Engivend's individual inflatables with the boxed version. - type: Tweak - id: 5247 - time: '2023-12-03T03:54:00.0000000+00:00' - author: Doru991 changes: - message: Skeletons now regain more health when coming in contact with milk. @@ -3782,3 +3776,12 @@ id: 5747 time: '2024-01-19T15:35:02.0000000+00:00' url: https://api.github.com/repos/space-wizards/space-station-14/pulls/23957 +- author: EmoGarbage404 + changes: + - message: You can now sort lathe recipes by category. + type: Add + - message: Recipes in lathes are now sorted alphabetically. + type: Add + id: 5748 + time: '2024-01-20T00:45:04.0000000+00:00' + url: https://api.github.com/repos/space-wizards/space-station-14/pulls/24247 From 7a2e500f689738b64abc24929e8d4a387749ba64 Mon Sep 17 00:00:00 2001 From: Scribbles0 <91828755+Scribbles0@users.noreply.github.com> Date: Fri, 19 Jan 2024 18:22:15 -0800 Subject: [PATCH 15/66] Unrevivable trait (#24226) * unrevivable trait + remove unclonable remnants * cleanup * change to hascomp --- Content.Server/Cloning/CloningSystem.cs | 13 ------------- Content.Server/Medical/DefibrillatorSystem.cs | 6 ++++++ .../Traits/Assorted/UncloneableComponent.cs | 10 ---------- .../Traits/Assorted/UnrevivableComponent.cs | 10 ++++++++++ .../en-US/medical/components/defibrillator.ftl | 1 + Resources/Locale/en-US/traits/traits.ftl | 3 +++ Resources/Prototypes/Traits/disabilities.yml | 7 +++++++ 7 files changed, 27 insertions(+), 23 deletions(-) delete mode 100644 Content.Server/Traits/Assorted/UncloneableComponent.cs create mode 100644 Content.Server/Traits/Assorted/UnrevivableComponent.cs diff --git a/Content.Server/Cloning/CloningSystem.cs b/Content.Server/Cloning/CloningSystem.cs index 95b0bd73105..da8de13af2d 100644 --- a/Content.Server/Cloning/CloningSystem.cs +++ b/Content.Server/Cloning/CloningSystem.cs @@ -195,19 +195,6 @@ public bool TryCloning(EntityUid uid, EntityUid bodyToClone, Entity(bodyToClone, out _)) - { - if (clonePod.ConnectedConsole != null) - { - _chatSystem.TrySendInGameICMessage(clonePod.ConnectedConsole.Value, - Loc.GetString("cloning-console-uncloneable-trait-error"), - InGameICChatType.Speak, false); - } - - return false; - } - // biomass checks var biomassAmount = _material.GetMaterialAmount(uid, clonePod.RequiredMaterial); diff --git a/Content.Server/Medical/DefibrillatorSystem.cs b/Content.Server/Medical/DefibrillatorSystem.cs index d8bbeb99824..e6ef8bf96a9 100644 --- a/Content.Server/Medical/DefibrillatorSystem.cs +++ b/Content.Server/Medical/DefibrillatorSystem.cs @@ -6,6 +6,7 @@ using Content.Server.Ghost; using Content.Server.Popups; using Content.Server.PowerCell; +using Content.Server.Traits.Assorted; using Content.Shared.Damage; using Content.Shared.DoAfter; using Content.Shared.Interaction; @@ -221,6 +222,11 @@ public void Zap(EntityUid uid, EntityUid target, EntityUid user, DefibrillatorCo _chatManager.TrySendInGameICMessage(uid, Loc.GetString("defibrillator-rotten"), InGameICChatType.Speak, true); } + else if (HasComp(target)) + { + _chatManager.TrySendInGameICMessage(uid, Loc.GetString("defibrillator-unrevivable"), + InGameICChatType.Speak, true); + } else { if (_mobState.IsDead(target, mob)) diff --git a/Content.Server/Traits/Assorted/UncloneableComponent.cs b/Content.Server/Traits/Assorted/UncloneableComponent.cs deleted file mode 100644 index 650b78cd0f2..00000000000 --- a/Content.Server/Traits/Assorted/UncloneableComponent.cs +++ /dev/null @@ -1,10 +0,0 @@ -namespace Content.Server.Traits.Assorted; - -/// -/// This is used for the uncloneable trait. -/// -[RegisterComponent] -public sealed partial class UncloneableComponent : Component -{ - -} diff --git a/Content.Server/Traits/Assorted/UnrevivableComponent.cs b/Content.Server/Traits/Assorted/UnrevivableComponent.cs new file mode 100644 index 00000000000..b95c922d548 --- /dev/null +++ b/Content.Server/Traits/Assorted/UnrevivableComponent.cs @@ -0,0 +1,10 @@ +namespace Content.Server.Traits.Assorted; + +/// +/// This is used for the urevivable trait. +/// +[RegisterComponent] +public sealed partial class UnrevivableComponent : Component +{ + +} diff --git a/Resources/Locale/en-US/medical/components/defibrillator.ftl b/Resources/Locale/en-US/medical/components/defibrillator.ftl index 1c32dd801d9..dc4a03aa3b1 100644 --- a/Resources/Locale/en-US/medical/components/defibrillator.ftl +++ b/Resources/Locale/en-US/medical/components/defibrillator.ftl @@ -1,3 +1,4 @@ defibrillator-not-on = The defibrillator isn't turned on. defibrillator-no-mind = No intelligence pattern can be detected in patient's brain. Further attempts futile. defibrillator-rotten = Body decomposition detected: resuscitation failed. +defibrillator-unrevivable = This patient is unable to be revived due to a unique body composition. diff --git a/Resources/Locale/en-US/traits/traits.ftl b/Resources/Locale/en-US/traits/traits.ftl index 3a8b1f3b59d..f8f8021e86f 100644 --- a/Resources/Locale/en-US/traits/traits.ftl +++ b/Resources/Locale/en-US/traits/traits.ftl @@ -18,6 +18,9 @@ trait-muted-desc = You can't speak trait-paracusia-name = Paracusia trait-paracusia-desc = You hear sounds that aren't really there +trait-unrevivable-name = Unrevivable +trait-unrevivable-desc = You are unable to be revived by defibrillators. + trait-pirate-accent-name = Pirate Accent trait-pirate-accent-desc = You can't stop speaking like a pirate! diff --git a/Resources/Prototypes/Traits/disabilities.yml b/Resources/Prototypes/Traits/disabilities.yml index 14f63305803..43d87d4c123 100644 --- a/Resources/Prototypes/Traits/disabilities.yml +++ b/Resources/Prototypes/Traits/disabilities.yml @@ -37,6 +37,13 @@ sounds: collection: Paracusia +- type: trait + id: Unrevivable + name: trait-unrevivable-name + description: trait-unrevivable-desc + components: + - type: Unrevivable + - type: trait id: Muted name: trait-muted-name From f33a3f98cde0c6c833ebce2402902eb3a77efbcb Mon Sep 17 00:00:00 2001 From: PJBot Date: Sat, 20 Jan 2024 02:23:21 +0000 Subject: [PATCH 16/66] Automatic changelog update --- Resources/Changelog/Changelog.yml | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/Resources/Changelog/Changelog.yml b/Resources/Changelog/Changelog.yml index fc138ee01ad..0b793fc20f4 100644 --- a/Resources/Changelog/Changelog.yml +++ b/Resources/Changelog/Changelog.yml @@ -1,10 +1,4 @@ Entries: -- author: Doru991 - changes: - - message: Skeletons now regain more health when coming in contact with milk. - type: Tweak - id: 5248 - time: '2023-12-04T02:32:05.0000000+00:00' - author: joshepvodka changes: - message: CentCom officers now finally have a jumpsuit that matches the ever stylish @@ -3785,3 +3779,10 @@ id: 5748 time: '2024-01-20T00:45:04.0000000+00:00' url: https://api.github.com/repos/space-wizards/space-station-14/pulls/24247 +- author: Scribbles0 + changes: + - message: Added a new trait, the Unrevivable trait. + type: Add + id: 5749 + time: '2024-01-20T02:22:15.0000000+00:00' + url: https://api.github.com/repos/space-wizards/space-station-14/pulls/24226 From f71df97b5eebbe1224c9a4d203e0a6b3bbeca3c7 Mon Sep 17 00:00:00 2001 From: Drayff Date: Sat, 20 Jan 2024 04:29:13 +0200 Subject: [PATCH 17/66] Toolboxes (#24305) * Added animations for opening toolboxes * Fix cow toolbox --- .../Entities/Objects/Tools/toolbox.yml | 10 +++++++ .../Cowtools/cow_toolbox.rsi/icon-open.png | Bin 0 -> 256 bytes .../{cow_toolbox.png => icon.png} | Bin .../Tools/Cowtools/cow_toolbox.rsi/meta.json | 5 +++- .../Toolboxes/toolbox_blue.rsi/icon-open.png | Bin 0 -> 343 bytes .../Toolboxes/toolbox_blue.rsi/meta.json | 3 +++ .../Toolboxes/toolbox_gold.rsi/icon-open.png | Bin 0 -> 2356 bytes .../Toolboxes/toolbox_gold.rsi/meta.json | 25 ++++++++++++++++++ .../Toolboxes/toolbox_green.rsi/icon-open.png | Bin 0 -> 336 bytes .../Toolboxes/toolbox_green.rsi/meta.json | 3 +++ .../Toolboxes/toolbox_red.rsi/icon-open.png | Bin 0 -> 360 bytes .../Tools/Toolboxes/toolbox_red.rsi/meta.json | 3 +++ .../Toolboxes/toolbox_syn.rsi/icon-open.png | Bin 0 -> 388 bytes .../Tools/Toolboxes/toolbox_syn.rsi/meta.json | 5 +++- .../toolbox_yellow.rsi/icon-open.png | Bin 0 -> 344 bytes .../Toolboxes/toolbox_yellow.rsi/meta.json | 3 +++ 16 files changed, 55 insertions(+), 2 deletions(-) create mode 100644 Resources/Textures/Objects/Tools/Cowtools/cow_toolbox.rsi/icon-open.png rename Resources/Textures/Objects/Tools/Cowtools/cow_toolbox.rsi/{cow_toolbox.png => icon.png} (100%) create mode 100644 Resources/Textures/Objects/Tools/Toolboxes/toolbox_blue.rsi/icon-open.png create mode 100644 Resources/Textures/Objects/Tools/Toolboxes/toolbox_gold.rsi/icon-open.png create mode 100644 Resources/Textures/Objects/Tools/Toolboxes/toolbox_green.rsi/icon-open.png create mode 100644 Resources/Textures/Objects/Tools/Toolboxes/toolbox_red.rsi/icon-open.png create mode 100644 Resources/Textures/Objects/Tools/Toolboxes/toolbox_syn.rsi/icon-open.png create mode 100644 Resources/Textures/Objects/Tools/Toolboxes/toolbox_yellow.rsi/icon-open.png diff --git a/Resources/Prototypes/Entities/Objects/Tools/toolbox.yml b/Resources/Prototypes/Entities/Objects/Tools/toolbox.yml index 64efe53f43d..250f570c5f9 100644 --- a/Resources/Prototypes/Entities/Objects/Tools/toolbox.yml +++ b/Resources/Prototypes/Entities/Objects/Tools/toolbox.yml @@ -4,6 +4,9 @@ abstract: true components: - type: Sprite + layers: + - map: [ base ] + state: icon - type: EmitSoundOnLand sound: path: /Audio/Items/toolbox_drop.ogg @@ -23,6 +26,13 @@ tags: - DroneUsable - Toolbox + - type: GenericVisualizer + visuals: + enum.StorageVisuals.Open: + base: + True: { state: icon-open } + False: { state: icon } + - type: Appearance - type: entity name: emergency toolbox diff --git a/Resources/Textures/Objects/Tools/Cowtools/cow_toolbox.rsi/icon-open.png b/Resources/Textures/Objects/Tools/Cowtools/cow_toolbox.rsi/icon-open.png new file mode 100644 index 0000000000000000000000000000000000000000..e66d0bc97cb7e68ac40854c4af6c18603022c0ee GIT binary patch literal 256 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz#^NA%Cx&(BWL^R}Ea{HEjtmSN z`?>!lvI6;>1s;*b3=DjSL74G){)!Z!V6~@T=}Ds!(Ko4(t+9i z^B3scX^=2YVayN_X!Yz}w{S9>gNb1(!lvI6;>1s;*b3=DjSL74G){)!Z!;2TdD$B+p3WC>PfIRmH6H4c%>e%Mdx6wbLb z@x+7ohVrKl^S-ltc{EGhkG(-h+$gO1(}w2q^nAxi9-bpBjy~gP;;Y!1&l=KFqwr3o z@iL=NK-B?;K)!@$6I7&ynOI~UdK7;!DE@7>=bCXt_27^9{m*$)b>AgOskQMY2e-+KI1Urry6&eO}Zhm9{T6p2=#!u3XnVU8#7R9NHA2_3^E&cEJ&pAmw`~oEm z8hV%6zbXt`gAx12r$~DoYusc$zwd=`9eGxHVN!_h7^F#y|ru hw}ToI2?q`^FnG<~=fb~sRw&Tl44$rjF6*2UngCfqe8vC( literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Tools/Toolboxes/toolbox_blue.rsi/meta.json b/Resources/Textures/Objects/Tools/Toolboxes/toolbox_blue.rsi/meta.json index 82f4d5d611d..e6723a64449 100644 --- a/Resources/Textures/Objects/Tools/Toolboxes/toolbox_blue.rsi/meta.json +++ b/Resources/Textures/Objects/Tools/Toolboxes/toolbox_blue.rsi/meta.json @@ -17,6 +17,9 @@ }, { "name": "icon" + }, + { + "name": "icon-open" } ] } diff --git a/Resources/Textures/Objects/Tools/Toolboxes/toolbox_gold.rsi/icon-open.png b/Resources/Textures/Objects/Tools/Toolboxes/toolbox_gold.rsi/icon-open.png new file mode 100644 index 0000000000000000000000000000000000000000..6ba8ef5dcbaf7951ecdae333a9a385d98cbd7432 GIT binary patch literal 2356 zcmb`Jdo+|=AIG0z%osAJNE8OGfjb~bpg;#JbD*e0ku4~|UKm>p0F)$4Ze0=+)Gz|} zLLdOZ>xBVo!smMefOxU>am+8bFD_)(yil@~Z8~qgTed(}R#RCHr>chAT@hp8)Ay&w zu0wgW;HX9mO^4XZx+y+r_g*c{2m^zY#%E(=a}bi&s)xMyp4PlmKK^mzy4@A8E2Izn zl8SL@#g4I`XC0>tTvfu zXvD=RZw=lX8QbP;KUZcj-=r@kC4>H#B{=MbB@{0d2W#+mFk@Z4@}sm78vc-#RPL6chNRJt=8zkay*vkiXy#ro-UhUX-X znz|c#`#43wiM0V;J+C23A@=EEKWf?fc4Zqz>j0r}rw0RBR>+syPXa|cKxLbuYZE!z z;IESd{=Z5iMQWf)nGx+6sxF+`+dDnQ$`9L_r~4PnN6(Gwy}b50DU$>t^*!R4BJR<0V{)Y{cPfNddh+wKNlT79z0UYh~f&`1p0rhXcuB2j>k{pl7SYjZ(J5=Kgb^l`bWfPpcN)6+uq8uQlTt{=><24U%u+5%LTGrBZDyOmK^CeD+ zV`iYvw0Pu;t~%h}7woA>2dVacOwnKN1J&cWC3L*Cv@i^xN}_3q~k4-CuR z{_6M7f}7nG@;o@RsWze|KW3dRb6i45W>plzIY(bWrmkjhF86Z|)fpXfE|R8lTl|k7 zitP7U@J73nA&~$<0eIR8C@72W+kZwHd56DCNx-!mI#~R@rKO!_cX0D;wW+HF8-KBe zVGK%|Ioq{1Vrp5;u( zuiFU31jdMKu1IY#$xu-r%Fec5!=R7Cdy+ZdB#>{kJEezY;aET!F1`rnpHRZnsM7W` z>A`=Smz{NRj$zvDoZa9(U|{667%xab|QfY$D%sq!~ik^(3B4u?ob(9W1~%l7nZL`#JX!3vCTF+!mDxkYO~)wv25s6SF1syp@G;7H_CrG&;PP0 zjv9sh(<7S94P{Yj^=xIvQ+tF)PK_UbO%Adc9yui20tPqx$)~Y*a{*c74iQ>>H1Y-nS5Zs zbcqjth^f9=AUvotT!6@k*euLbK+#kOmsqa;NiTpcbHM6k`lkV8>jby~+OXpCRgM5F z68Od|(%g!BMIW@ng^FAn;@)W;)e1h73Q?`Y5_TCbaEH-!_bTklW?|UuYm9wNTu#)ll z)-jwuM%aEtO*|8G|M3vWY*CG;p!Gz=(i6j>sb{2@>KB?`-Qwr=`br;a$YU`?)5e8D z#}!Jix65#Ogys8@_}_@-KX7z1KV8r@fn;d<6U*f*2HYfDzzvthFLLS(O(2gpj-x`w z*YszPG&^wz%>|OjKhJRVAXpfzbJ-5_P9&+m>~tWIqT#*iGpdt$FaCPdu34JR-c$z%M&mU$M0XeiXcm3qttx RoJ|!bYfHQ1Mdt2z{sKm;f&Tyi literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Tools/Toolboxes/toolbox_gold.rsi/meta.json b/Resources/Textures/Objects/Tools/Toolboxes/toolbox_gold.rsi/meta.json index afe64cd8392..becb302333b 100644 --- a/Resources/Textures/Objects/Tools/Toolboxes/toolbox_gold.rsi/meta.json +++ b/Resources/Textures/Objects/Tools/Toolboxes/toolbox_gold.rsi/meta.json @@ -39,6 +39,31 @@ 0.2 ] ] + }, + { + "name": "icon-open", + "delays": [ + [ + 0.2, + 0.2, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.2, + 0.2, + 0.2, + 0.2, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.2, + 0.2 + ] + ] } ] } diff --git a/Resources/Textures/Objects/Tools/Toolboxes/toolbox_green.rsi/icon-open.png b/Resources/Textures/Objects/Tools/Toolboxes/toolbox_green.rsi/icon-open.png new file mode 100644 index 0000000000000000000000000000000000000000..7656cfbf015eca24c986ee6c946f77f26cb8dd94 GIT binary patch literal 336 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz#^NA%Cx&(BWL^R}Ea{HEjtmSN z`?>!lvI6;>1s;*b3=DjSL74G){)!Z!;8RZ*$B+p3WC>PfIRmH6H4f@dzwM`V3a?oa zc~an_5Z}{>Y~f)sN3+EJ*c){Iryt^fn#k^xZs!!q!*gWC(Ptb@d_T56u?cCZIUttY zahcI4py~iaAYX!@po+9G6N{`vkKzvo#lOw=TnUappP#L6`*WepfLHi%+s2iL**`pE z68QW0n5}_4%a;&k3B9{!lvI6;>1s;*b3=DjSL74G){)!Z!;9pM{$B+p3WC>PfIRmH6H4A3V{AoX>Q`jYL z&xs8&@$#n*^G5yucQi}fkG(->`-7ve?b?Lr3%*l!(=~G!C~pIFihrlf^ka3nz__WWC*jYF`}S<7Uw%Gl;=?0-Y#E1`G%WPgg&ebxsLQ0C*IJ AAOHXW literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Tools/Toolboxes/toolbox_red.rsi/meta.json b/Resources/Textures/Objects/Tools/Toolboxes/toolbox_red.rsi/meta.json index 82f4d5d611d..e6723a64449 100644 --- a/Resources/Textures/Objects/Tools/Toolboxes/toolbox_red.rsi/meta.json +++ b/Resources/Textures/Objects/Tools/Toolboxes/toolbox_red.rsi/meta.json @@ -17,6 +17,9 @@ }, { "name": "icon" + }, + { + "name": "icon-open" } ] } diff --git a/Resources/Textures/Objects/Tools/Toolboxes/toolbox_syn.rsi/icon-open.png b/Resources/Textures/Objects/Tools/Toolboxes/toolbox_syn.rsi/icon-open.png new file mode 100644 index 0000000000000000000000000000000000000000..42fc6724051e4ed875815b736bafa4a020e35158 GIT binary patch literal 388 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz#^NA%Cx&(BWL^R}Ea{HEjtmSN z`?>!lvI6;>1s;*b3=DjSL74G){)!Z!21!pB$B+p3WC>PfIRmH6H3^#;PSxyr0B&Qrb;LvmH_V)b8 zUk$hzEDzkfCnv%rl03mu;d4U{&jFUD>^uTJP0j55Mjjp>4z8Z;`f+;_7}^-lX(&iA zO^M)RYWc!nAtF%1ps%kl(cH9Y-$r4d!$&qG=Da$=w7`VHcV~f&$gGY-$6GI6Rh-$% z$f4%+WRIU-!^~z~L7|cZXJ?x)RC>Z(T3Y(4m{CJdlQHErdn<#jms3-qf|?qesG|Iy zs;^yNOdM9Iu`mYYaxk}KISU*JQx@W3%wpUmthn}IgEd3Gh{Mbf<{OI=M0%P64Y=4O d3=9|;N@uM7k`VEEIWXiHJYD@<);T3K0RUCBgDC(2 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Tools/Toolboxes/toolbox_syn.rsi/meta.json b/Resources/Textures/Objects/Tools/Toolboxes/toolbox_syn.rsi/meta.json index 82f4d5d611d..f4c473b8cad 100644 --- a/Resources/Textures/Objects/Tools/Toolboxes/toolbox_syn.rsi/meta.json +++ b/Resources/Textures/Objects/Tools/Toolboxes/toolbox_syn.rsi/meta.json @@ -16,7 +16,10 @@ "directions": 4 }, { - "name": "icon" + "name": "icon" + }, + { + "name": "icon-open" } ] } diff --git a/Resources/Textures/Objects/Tools/Toolboxes/toolbox_yellow.rsi/icon-open.png b/Resources/Textures/Objects/Tools/Toolboxes/toolbox_yellow.rsi/icon-open.png new file mode 100644 index 0000000000000000000000000000000000000000..67273713b72da08756b7e6df7298ac9ec6d98b6c GIT binary patch literal 344 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz#^NA%Cx&(BWL^R}Ea{HEjtmSN z`?>!lvI6;>1s;*b3=DjSL74G){)!Z!;9E}@$B+p3WC>PfIRmH6H47{{KHE>}6jm{t zn>Hgpo$KjCw!N?SC2!?k&g?Mlw#2`dPaB$*pWj@l!^W0$C8?Ojk^Rcq_)qEewwA0?8b94j%s>^fUR+{GagW$Jcna`%hjbNU62)CI`3k zKRC;(P<8!heS#gwidim(ckDLvoI1>V;p$FFr$3%yW-jMmKVh0-nPQpnEsbvl$4`Z; z-`RgYWzf*mWNi5&JeAv_Z9+FEV^d%Pv#-OH2IT`SK4DS~Ml0D)c(q(%a^7vUNLAv4 li2;|}K@AC3W*!L%1_RT@hv!}CJqYwTgQu&X%Q~loCIJ7geU< Date: Sat, 20 Jan 2024 02:30:19 +0000 Subject: [PATCH 18/66] Automatic changelog update --- Resources/Changelog/Changelog.yml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/Resources/Changelog/Changelog.yml b/Resources/Changelog/Changelog.yml index 0b793fc20f4..bff3f3413fc 100644 --- a/Resources/Changelog/Changelog.yml +++ b/Resources/Changelog/Changelog.yml @@ -1,11 +1,4 @@ Entries: -- author: joshepvodka - changes: - - message: CentCom officers now finally have a jumpsuit that matches the ever stylish - green hue of CentCom equipment. - type: Tweak - id: 5249 - time: '2023-12-04T02:32:45.0000000+00:00' - author: EmoGarbage404 changes: - message: Roller skates are slower and have less friction and acceleration. @@ -3786,3 +3779,10 @@ id: 5749 time: '2024-01-20T02:22:15.0000000+00:00' url: https://api.github.com/repos/space-wizards/space-station-14/pulls/24226 +- author: Drayff + changes: + - message: Animations for ToolBoxes! + type: Add + id: 5750 + time: '2024-01-20T02:29:13.0000000+00:00' + url: https://api.github.com/repos/space-wizards/space-station-14/pulls/24305 From 34806400bd3fd3cf4ef30333eb3eb64770026982 Mon Sep 17 00:00:00 2001 From: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com> Date: Sat, 20 Jan 2024 13:32:57 +1100 Subject: [PATCH 19/66] Revert "Adds more grindables (#24267)" (#24311) This reverts commit 16a1f2f16a8549d538c7523f5abefea63c7ad3db. --- .../Devices/Electronics/base_electronics.yml | 2 +- .../Entities/Objects/Devices/mousetrap.yml | 8 --- .../Objects/Materials/Sheets/other.yml | 2 +- .../Entities/Objects/Materials/materials.yml | 2 +- .../Entities/Objects/Misc/paper.yml | 54 ------------------- .../Entities/Objects/Tools/flare.yml | 8 --- .../Entities/Objects/Tools/glowstick.yml | 12 ----- .../Entities/Objects/Tools/matches.yml | 8 --- 8 files changed, 3 insertions(+), 93 deletions(-) diff --git a/Resources/Prototypes/Entities/Objects/Devices/Electronics/base_electronics.yml b/Resources/Prototypes/Entities/Objects/Devices/Electronics/base_electronics.yml index ff9f0c32397..d55b5a1098f 100644 --- a/Resources/Prototypes/Entities/Objects/Devices/Electronics/base_electronics.yml +++ b/Resources/Prototypes/Entities/Objects/Devices/Electronics/base_electronics.yml @@ -17,4 +17,4 @@ materialComposition: Glass: 200 chemicalComposition: - Silicon: 20 \ No newline at end of file + Silicon: 20 diff --git a/Resources/Prototypes/Entities/Objects/Devices/mousetrap.yml b/Resources/Prototypes/Entities/Objects/Devices/mousetrap.yml index ef511373cf9..440bc4dd8a8 100644 --- a/Resources/Prototypes/Entities/Objects/Devices/mousetrap.yml +++ b/Resources/Prototypes/Entities/Objects/Devices/mousetrap.yml @@ -57,14 +57,6 @@ - type: Tag tags: - DroneUsable - - type: Extractable - grindableSolutionName: mousetrap - - type: SolutionContainerManager - solutions: - mousetrap: - reagents: - - ReagentId: Cellulose - Quantity: 3 #its probably wooden - type: entity name: mousetrap diff --git a/Resources/Prototypes/Entities/Objects/Materials/Sheets/other.yml b/Resources/Prototypes/Entities/Objects/Materials/Sheets/other.yml index ec36377cfea..18590e98dfc 100644 --- a/Resources/Prototypes/Entities/Objects/Materials/Sheets/other.yml +++ b/Resources/Prototypes/Entities/Objects/Materials/Sheets/other.yml @@ -60,7 +60,7 @@ paper: reagents: - ReagentId: Cellulose - Quantity: 10 + Quantity: 3 - type: entity diff --git a/Resources/Prototypes/Entities/Objects/Materials/materials.yml b/Resources/Prototypes/Entities/Objects/Materials/materials.yml index 8af4daef8d8..9cfc2c00f2c 100644 --- a/Resources/Prototypes/Entities/Objects/Materials/materials.yml +++ b/Resources/Prototypes/Entities/Objects/Materials/materials.yml @@ -54,7 +54,7 @@ cardboard: reagents: - ReagentId: Cellulose - Quantity: 10 + Quantity: 6 - type: entity parent: MaterialCardboard diff --git a/Resources/Prototypes/Entities/Objects/Misc/paper.yml b/Resources/Prototypes/Entities/Objects/Misc/paper.yml index 3ea2eb64e0a..86dadb8da84 100644 --- a/Resources/Prototypes/Entities/Objects/Misc/paper.yml +++ b/Resources/Prototypes/Entities/Objects/Misc/paper.yml @@ -56,14 +56,6 @@ max: 1 - !type:DoActsBehavior acts: [ "Destruction" ] - - type: Extractable - grindableSolutionName: paper - - type: SolutionContainerManager - solutions: - paper: - reagents: - - ReagentId: Cellulose - Quantity: 3 - type: entity name: paper scrap @@ -278,16 +270,6 @@ damage: types: Piercing: 3 - - type: Extractable - grindableSolutionName: pen - - type: SolutionContainerManager - solutions: - pen: - reagents: - - ReagentId: Iron - Quantity: 2 - - ReagentId: Iodine - Quantity: 1 #TODO: I want the luxury pen to write a cool font like Merriweather in the future. @@ -424,14 +406,6 @@ prob: 0.2 - id: Paper prob: 0.2 - - type: Extractable - grindableSolutionName: folder - - type: SolutionContainerManager - solutions: - folder: - reagents: - - ReagentId: Cellulose - Quantity: 4 #a little more rigid then paper so it yields slightly more - type: entity id: BoxFolderRed @@ -528,16 +502,6 @@ layers: - state: folder-centcom - state: folder-base - - type: Extractable - grindableSolutionName: centcommfolder - - type: SolutionContainerManager - solutions: - centcommfolder: - reagents: - - ReagentId: Cellulose - Quantity: 4 - - ReagentId: Gold - Quantity: 1 - type: entity id: BoxFolderClipboard @@ -597,14 +561,6 @@ damage: types: Blunt: 6 - - type: Extractable - grindableSolutionName: clipboard - - type: SolutionContainerManager - solutions: - clipboard: - reagents: - - ReagentId: Cellulose - Quantity: 5 - type: entity id: BoxFolderCentComClipboard @@ -630,16 +586,6 @@ slots: [belt] quickEquip: false sprite: Objects/Misc/cc-clipboard.rsi - - type: Extractable - grindableSolutionName: centcommclipboard - - type: SolutionContainerManager - solutions: - centcommclipboard: - reagents: - - ReagentId: Cellulose - Quantity: 4 - - ReagentId: Gold - Quantity: 1 - type: entity id: BoxFolderQmClipboard diff --git a/Resources/Prototypes/Entities/Objects/Tools/flare.yml b/Resources/Prototypes/Entities/Objects/Tools/flare.yml index 4f09f4d3baf..6ef85c015ee 100644 --- a/Resources/Prototypes/Entities/Objects/Tools/flare.yml +++ b/Resources/Prototypes/Entities/Objects/Tools/flare.yml @@ -71,11 +71,3 @@ maxDuration: 15.0 startValue: 10.0 endValue: 1.0 - - type: Extractable - grindableSolutionName: flare - - type: SolutionContainerManager - solutions: - flare: - reagents: - - ReagentId: Sulfur - Quantity: 15 diff --git a/Resources/Prototypes/Entities/Objects/Tools/glowstick.yml b/Resources/Prototypes/Entities/Objects/Tools/glowstick.yml index cdf0c266632..5aea0d8a291 100644 --- a/Resources/Prototypes/Entities/Objects/Tools/glowstick.yml +++ b/Resources/Prototypes/Entities/Objects/Tools/glowstick.yml @@ -60,18 +60,6 @@ maxDuration: 10 # 300.0 startValue: 5.0 endValue: 1.5 - - type: Extractable - grindableSolutionName: glowstick - - type: SolutionContainerManager - solutions: - glowstick: - reagents: - - ReagentId: Phenol - Quantity: 15 - - ReagentId: Hydrogen - Quantity: 10 - - ReagentId: Oxygen - Quantity: 10 - type: entity name: red glowstick diff --git a/Resources/Prototypes/Entities/Objects/Tools/matches.yml b/Resources/Prototypes/Entities/Objects/Tools/matches.yml index 3971352aa11..e8601fcf355 100644 --- a/Resources/Prototypes/Entities/Objects/Tools/matches.yml +++ b/Resources/Prototypes/Entities/Objects/Tools/matches.yml @@ -41,14 +41,6 @@ unlitIcon: match_unlit litIcon: match_lit burntIcon: match_burnt - - type: Extractable - grindableSolutionName: matchstick - - type: SolutionContainerManager - solutions: - matchstick: - reagents: - - ReagentId: Phosphorus - Quantity: 2 - type: entity parent: Matchstick From 559ff13a121ee1a79bf6d59e427d9c0fc93ec9a1 Mon Sep 17 00:00:00 2001 From: Agoichi <92464780+Agoichi@users.noreply.github.com> Date: Sat, 20 Jan 2024 04:35:44 +0200 Subject: [PATCH 20/66] Rebalance of Lobbying bundle (#24303) * Rebalance of Lobbying bundle - More money, mickey (5000 -> 30000) - Added trader`s rubberstump for high iq players - Phone to call upper managment - Some fancy and absolutely unsuspicious clothings - Patriotic Flag for the most valuable lobist of Syndicate * Thief problem fix Thief now have have separate lobbying bundle, now it calls bribing bundle * Fixing Money count, suffix * Hi Fixing money --- .../Catalog/Fills/Items/briefcases.yml | 29 +++++++++++++++++-- .../Prototypes/Catalog/thief_toolbox_sets.yml | 2 +- .../Entities/Objects/Misc/space_cash.yml | 22 ++++++++++++++ 3 files changed, 50 insertions(+), 3 deletions(-) diff --git a/Resources/Prototypes/Catalog/Fills/Items/briefcases.yml b/Resources/Prototypes/Catalog/Fills/Items/briefcases.yml index ce2cf1e2b34..c261a2c0da1 100644 --- a/Resources/Prototypes/Catalog/Fills/Items/briefcases.yml +++ b/Resources/Prototypes/Catalog/Fills/Items/briefcases.yml @@ -38,5 +38,30 @@ - type: StorageFill contents: - id: ClothingEyesGlassesSunglasses - - id: SpaceCash1000 - amount: 5 + - id: SpaceCash30000 + amount: 1 + - id: EncryptionKeySyndie + - id: RubberStampTrader + - id: PhoneInstrumentSyndicate + - id: ClothingUniformJumpsuitTacticool + - id: ClothingOuterCoatJensen + - id: ClothingHandsGlovesCombat + - id: ClothingMaskNeckGaiter + - id: SyndieHandyFlag + +- type: entity + id: BriefcaseThiefBribingBundleFilled + name: brown briefcase + parent: BriefcaseSyndie + suffix: Thief, Spesos + components: + - type: StorageFill + contents: + - id: ClothingEyesGlassesSunglasses + - id: SpaceCash20000 + amount: 1 + - id: ClothingUniformJumpsuitTacticool + - id: ClothingOuterCoatJensen + - id: ClothingHandsGlovesCombat + - id: ClothingMaskNeckGaiter + - id: ToyFigurineThief \ No newline at end of file diff --git a/Resources/Prototypes/Catalog/thief_toolbox_sets.yml b/Resources/Prototypes/Catalog/thief_toolbox_sets.yml index fb6873f5409..2c98b0b89da 100644 --- a/Resources/Prototypes/Catalog/thief_toolbox_sets.yml +++ b/Resources/Prototypes/Catalog/thief_toolbox_sets.yml @@ -90,7 +90,7 @@ - EncryptionKeyStationMaster - CyberPen - SpyCrewMonitor - - BriefcaseSyndieLobbyingBundleFilled + - BriefcaseThiefBribingBundleFilled - ClothingMaskGasVoiceChameleon #- todo Chameleon Stamp diff --git a/Resources/Prototypes/Entities/Objects/Misc/space_cash.yml b/Resources/Prototypes/Entities/Objects/Misc/space_cash.yml index f402c1abefe..57dfb400984 100644 --- a/Resources/Prototypes/Entities/Objects/Misc/space_cash.yml +++ b/Resources/Prototypes/Entities/Objects/Misc/space_cash.yml @@ -136,6 +136,28 @@ - type: Stack count: 10000 +- type: entity + parent: SpaceCash + id: SpaceCash20000 + suffix: 20000 + components: + - type: Icon + sprite: Objects/Economy/cash.rsi + state: cash_1000 + - type: Stack + count: 20000 + +- type: entity + parent: SpaceCash + id: SpaceCash30000 + suffix: 30000 + components: + - type: Icon + sprite: Objects/Economy/cash.rsi + state: cash_1000 + - type: Stack + count: 30000 + - type: entity parent: SpaceCash id: SpaceCash1000000 From 91e8234a574d33124aae96ac0d28b34db4e66bde Mon Sep 17 00:00:00 2001 From: PJBot Date: Sat, 20 Jan 2024 02:36:50 +0000 Subject: [PATCH 21/66] Automatic changelog update --- Resources/Changelog/Changelog.yml | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/Resources/Changelog/Changelog.yml b/Resources/Changelog/Changelog.yml index bff3f3413fc..43ec8015566 100644 --- a/Resources/Changelog/Changelog.yml +++ b/Resources/Changelog/Changelog.yml @@ -1,12 +1,4 @@ Entries: -- author: EmoGarbage404 - changes: - - message: Roller skates are slower and have less friction and acceleration. - type: Tweak - - message: Speed boots give a much more pronounced speed boost. Research them today! - type: Tweak - id: 5250 - time: '2023-12-04T04:31:11.0000000+00:00' - author: Slava0135 changes: - message: Gas tanks now deal damage when thrown. Be sure to hold them when opening @@ -3786,3 +3778,10 @@ id: 5750 time: '2024-01-20T02:29:13.0000000+00:00' url: https://api.github.com/repos/space-wizards/space-station-14/pulls/24305 +- author: Agoichi + changes: + - message: Rebalanced Lobbying Bundle + type: Tweak + id: 5751 + time: '2024-01-20T02:35:44.0000000+00:00' + url: https://api.github.com/repos/space-wizards/space-station-14/pulls/24303 From e89be95d4c3085d7d6d08ad5aafa942cfc32c934 Mon Sep 17 00:00:00 2001 From: Arendian <137322659+Arendian@users.noreply.github.com> Date: Sat, 20 Jan 2024 03:50:14 +0100 Subject: [PATCH 22/66] Prevent EntityStorages from being opened while inside another container (#24253) * Prevent EntityStorages from being opened while inside a mech. * compressed into few lines * unneeded line * Popup client --------- Co-authored-by: metalgearsloth --- .../EntitySystems/SharedEntityStorageSystem.cs | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/Content.Shared/Storage/EntitySystems/SharedEntityStorageSystem.cs b/Content.Shared/Storage/EntitySystems/SharedEntityStorageSystem.cs index 911c6e5380b..19e41848a1e 100644 --- a/Content.Shared/Storage/EntitySystems/SharedEntityStorageSystem.cs +++ b/Content.Shared/Storage/EntitySystems/SharedEntityStorageSystem.cs @@ -336,6 +336,17 @@ public bool CanOpen(EntityUid user, EntityUid target, bool silent = false, Share return false; } + if (_container.IsEntityInContainer(target)) + { + if (_container.TryGetOuterContainer(target,Transform(target) ,out var container) && + !HasComp(container.Owner)) + { + Popup.PopupClient(Loc.GetString("entity-storage-component-already-contains-user-message"), user, user); + + return false; + } + } + //Checks to see if the opening position, if offset, is inside of a wall. if (component.EnteringOffset != new Vector2(0, 0) && !HasComp(target)) //if the entering position is offset { From a65e3eeb8fdbecbc02731f8a1b1d6d4fb1f2b837 Mon Sep 17 00:00:00 2001 From: PJBot Date: Sat, 20 Jan 2024 02:51:20 +0000 Subject: [PATCH 23/66] Automatic changelog update --- Resources/Changelog/Changelog.yml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/Resources/Changelog/Changelog.yml b/Resources/Changelog/Changelog.yml index 43ec8015566..e1ff03fa87d 100644 --- a/Resources/Changelog/Changelog.yml +++ b/Resources/Changelog/Changelog.yml @@ -1,11 +1,4 @@ Entries: -- author: Slava0135 - changes: - - message: Gas tanks now deal damage when thrown. Be sure to hold them when opening - valve... or not. - type: Tweak - id: 5251 - time: '2023-12-04T06:32:18.0000000+00:00' - author: Chronophylos changes: - message: Included missing damage type localization for armor examination. @@ -3785,3 +3778,10 @@ id: 5751 time: '2024-01-20T02:35:44.0000000+00:00' url: https://api.github.com/repos/space-wizards/space-station-14/pulls/24303 +- author: Dygon + changes: + - message: Storage objects can't be opened anymore while stored in a container. + type: Fix + id: 5752 + time: '2024-01-20T02:50:14.0000000+00:00' + url: https://api.github.com/repos/space-wizards/space-station-14/pulls/24253 From ed2fa96ca024df553b2559632ba923e8e51d443e Mon Sep 17 00:00:00 2001 From: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com> Date: Sat, 20 Jan 2024 13:53:39 +1100 Subject: [PATCH 24/66] Add netserializable to test doafter (#24313) Might fix the test failure --- Content.IntegrationTests/Tests/DoAfter/DoAfterServerTest.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/Content.IntegrationTests/Tests/DoAfter/DoAfterServerTest.cs b/Content.IntegrationTests/Tests/DoAfter/DoAfterServerTest.cs index 45c2759aa6e..45c384f86c7 100644 --- a/Content.IntegrationTests/Tests/DoAfter/DoAfterServerTest.cs +++ b/Content.IntegrationTests/Tests/DoAfter/DoAfterServerTest.cs @@ -21,6 +21,7 @@ public sealed partial class DoAfterServerTest - type: DoAfter "; + [Serializable, NetSerializable] private sealed partial class TestDoAfterEvent : DoAfterEvent { public override DoAfterEvent Clone() From 5af1d0ea8b5a54cd1f1b48308176318032a457ea Mon Sep 17 00:00:00 2001 From: Hannah Giovanna Dawson Date: Sat, 20 Jan 2024 03:40:00 +0000 Subject: [PATCH 25/66] Fixes round restart audio clipping (#24044) * Fix round end audio clipping * weh --------- Co-authored-by: metalgearsloth --- Content.Client/Audio/BackgroundAudioSystem.cs | 21 +++++++++++++++++++ .../GameTicking/Managers/ClientGameTicker.cs | 2 ++ .../GameTicking/GameTicker.RoundFlow.cs | 3 ++- .../GameTicking/SharedGameTicker.cs | 8 ++++++- 4 files changed, 32 insertions(+), 2 deletions(-) diff --git a/Content.Client/Audio/BackgroundAudioSystem.cs b/Content.Client/Audio/BackgroundAudioSystem.cs index 09ac1efcd65..27b2dcb1b73 100644 --- a/Content.Client/Audio/BackgroundAudioSystem.cs +++ b/Content.Client/Audio/BackgroundAudioSystem.cs @@ -1,6 +1,7 @@ using Content.Client.GameTicking.Managers; using Content.Client.Lobby; using Content.Shared.CCVar; +using Content.Shared.GameTicking; using JetBrains.Annotations; using Robust.Client; using Robust.Client.State; @@ -39,6 +40,8 @@ public override void Initialize() _client.PlayerLeaveServer += OnLeave; _gameTicker.LobbySongUpdated += LobbySongUpdated; + + SubscribeNetworkEvent(PlayRestartSound); } public override void Shutdown() @@ -129,4 +132,22 @@ private void EndLobbyMusic() { LobbyStream = _audio.Stop(LobbyStream); } + + private void PlayRestartSound(RoundRestartCleanupEvent ev) + { + if (!_configManager.GetCVar(CCVars.LobbyMusicEnabled)) + return; + + var file = _gameTicker.RestartSound; + if (string.IsNullOrEmpty(file)) + { + return; + } + + var volume = _lobbyParams.WithVolume(_lobbyParams.Volume + + SharedAudioSystem.GainToVolume( + _configManager.GetCVar(CCVars.LobbyMusicVolume))); + + _audio.PlayGlobal(file, Filter.Local(), false, volume); + } } diff --git a/Content.Client/GameTicking/Managers/ClientGameTicker.cs b/Content.Client/GameTicking/Managers/ClientGameTicker.cs index a62ebab1b7b..a33a7a8e722 100644 --- a/Content.Client/GameTicking/Managers/ClientGameTicker.cs +++ b/Content.Client/GameTicking/Managers/ClientGameTicker.cs @@ -35,6 +35,7 @@ public sealed class ClientGameTicker : SharedGameTicker [ViewVariables] public bool AreWeReady { get; private set; } [ViewVariables] public bool IsGameStarted { get; private set; } [ViewVariables] public string? LobbySong { get; private set; } + [ViewVariables] public string? RestartSound { get; private set; } [ViewVariables] public string? LobbyBackground { get; private set; } [ViewVariables] public bool DisallowedLateJoin { get; private set; } [ViewVariables] public string? ServerInfoBlob { get; private set; } @@ -151,6 +152,7 @@ private void RoundEnd(RoundEndMessageEvent message) { // Force an update in the event of this song being the same as the last. SetLobbySong(message.LobbySong, true); + RestartSound = message.RestartSound; // Don't open duplicate windows (mainly for replays). if (_window?.RoundId == message.RoundId) diff --git a/Content.Server/GameTicking/GameTicker.RoundFlow.cs b/Content.Server/GameTicking/GameTicker.RoundFlow.cs index 081cf533cd3..c3e33f90eec 100644 --- a/Content.Server/GameTicking/GameTicker.RoundFlow.cs +++ b/Content.Server/GameTicking/GameTicker.RoundFlow.cs @@ -385,9 +385,10 @@ public void ShowRoundEndScoreboard(string text = "") // This ordering mechanism isn't great (no ordering of minds) but functions var listOfPlayerInfoFinal = listOfPlayerInfo.OrderBy(pi => pi.PlayerOOCName).ToArray(); + var sound = _audio.GetSound(new SoundCollectionSpecifier("RoundEnd")); RaiseNetworkEvent(new RoundEndMessageEvent(gamemodeTitle, roundEndText, roundDuration, RoundId, - listOfPlayerInfoFinal.Length, listOfPlayerInfoFinal, LobbySong)); + listOfPlayerInfoFinal.Length, listOfPlayerInfoFinal, LobbySong, sound)); } private async void SendRoundEndDiscordMessage() diff --git a/Content.Shared/GameTicking/SharedGameTicker.cs b/Content.Shared/GameTicking/SharedGameTicker.cs index dac33fe5a76..7778588f97c 100644 --- a/Content.Shared/GameTicking/SharedGameTicker.cs +++ b/Content.Shared/GameTicking/SharedGameTicker.cs @@ -166,6 +166,10 @@ public struct RoundEndPlayerInfo public int PlayerCount { get; } public RoundEndPlayerInfo[] AllPlayersEndInfo { get; } public string? LobbySong; + + /// + /// Sound gets networked due to how entity lifecycle works between client / server and to avoid clipping. + /// public string? RestartSound; public RoundEndMessageEvent( @@ -175,7 +179,8 @@ public RoundEndMessageEvent( int roundId, int playerCount, RoundEndPlayerInfo[] allPlayersEndInfo, - string? lobbySong) + string? lobbySong, + string? restartSound) { GamemodeTitle = gamemodeTitle; RoundEndText = roundEndText; @@ -184,6 +189,7 @@ public RoundEndMessageEvent( PlayerCount = playerCount; AllPlayersEndInfo = allPlayersEndInfo; LobbySong = lobbySong; + RestartSound = restartSound; } } From 0b37dbbfbd22ac616f0f4a72e7ed75f3591639aa Mon Sep 17 00:00:00 2001 From: PJBot Date: Sat, 20 Jan 2024 03:41:06 +0000 Subject: [PATCH 26/66] Automatic changelog update --- Resources/Changelog/Changelog.yml | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/Resources/Changelog/Changelog.yml b/Resources/Changelog/Changelog.yml index e1ff03fa87d..6139dda1902 100644 --- a/Resources/Changelog/Changelog.yml +++ b/Resources/Changelog/Changelog.yml @@ -1,10 +1,4 @@ Entries: -- author: Chronophylos - changes: - - message: Included missing damage type localization for armor examination. - type: Fix - id: 5252 - time: '2023-12-04T12:57:29.0000000+00:00' - author: EmoGarbage404 changes: - message: Storage now uses a grid-based system. You can drag around items in your @@ -3785,3 +3779,10 @@ id: 5752 time: '2024-01-20T02:50:14.0000000+00:00' url: https://api.github.com/repos/space-wizards/space-station-14/pulls/24253 +- author: FairlySadPanda + changes: + - message: Lobby restart sound effects no longer cut-off. + type: Fix + id: 5753 + time: '2024-01-20T03:40:01.0000000+00:00' + url: https://api.github.com/repos/space-wizards/space-station-14/pulls/24044 From 21e77dffb00d631ea0e6a5c0ad55bed5dcbaa809 Mon Sep 17 00:00:00 2001 From: Nemanja <98561806+EmoGarbage404@users.noreply.github.com> Date: Fri, 19 Jan 2024 22:47:08 -0500 Subject: [PATCH 27/66] Fix cargo product groups (#24212) --- .../CargoOrderConsoleBoundUserInterface.cs | 2 +- .../Cargo/UI/CargoConsoleMenu.xaml.cs | 25 +++++++++++++-- Content.IntegrationTests/Tests/CargoTest.cs | 4 +-- .../Components/CargoOrderConsoleComponent.cs | 17 ---------- .../Cargo/Systems/CargoSystem.Orders.cs | 5 ++- Content.Server/Cargo/Systems/CargoSystem.cs | 1 + .../StationEvents/Events/CargoGiftsRule.cs | 2 +- .../Components/CargoOrderConsoleComponent.cs | 25 +++++++++++++++ .../Cargo/Prototypes/CargoProductPrototype.cs | 32 ++++++++++++------- 9 files changed, 77 insertions(+), 36 deletions(-) delete mode 100644 Content.Server/Cargo/Components/CargoOrderConsoleComponent.cs create mode 100644 Content.Shared/Cargo/Components/CargoOrderConsoleComponent.cs diff --git a/Content.Client/Cargo/BUI/CargoOrderConsoleBoundUserInterface.cs b/Content.Client/Cargo/BUI/CargoOrderConsoleBoundUserInterface.cs index 6c9af85a2c6..ce12d16cb58 100644 --- a/Content.Client/Cargo/BUI/CargoOrderConsoleBoundUserInterface.cs +++ b/Content.Client/Cargo/BUI/CargoOrderConsoleBoundUserInterface.cs @@ -50,7 +50,7 @@ protected override void Open() base.Open(); var spriteSystem = EntMan.System(); - _menu = new CargoConsoleMenu(IoCManager.Resolve(), spriteSystem); + _menu = new CargoConsoleMenu(Owner, IoCManager.Resolve(), IoCManager.Resolve(), spriteSystem); var localPlayer = IoCManager.Resolve()?.LocalPlayer?.ControlledEntity; var description = new FormattedMessage(); diff --git a/Content.Client/Cargo/UI/CargoConsoleMenu.xaml.cs b/Content.Client/Cargo/UI/CargoConsoleMenu.xaml.cs index 0cc17a62469..5402a246676 100644 --- a/Content.Client/Cargo/UI/CargoConsoleMenu.xaml.cs +++ b/Content.Client/Cargo/UI/CargoConsoleMenu.xaml.cs @@ -1,6 +1,7 @@ using System.Linq; using Content.Client.UserInterface.Controls; using Content.Shared.Cargo; +using Content.Shared.Cargo.Components; using Content.Shared.Cargo.Prototypes; using Robust.Client.AutoGenerated; using Robust.Client.GameObjects; @@ -14,8 +15,10 @@ namespace Content.Client.Cargo.UI [GenerateTypedNameReferences] public sealed partial class CargoConsoleMenu : FancyWindow { + private IEntityManager _entityManager; private IPrototypeManager _protoManager; private SpriteSystem _spriteSystem; + private EntityUid _owner; public event Action? OnItemSelected; public event Action? OnOrderApproved; @@ -24,11 +27,13 @@ public sealed partial class CargoConsoleMenu : FancyWindow private readonly List _categoryStrings = new(); private string? _category; - public CargoConsoleMenu(IPrototypeManager protoManager, SpriteSystem spriteSystem) + public CargoConsoleMenu(EntityUid owner, IEntityManager entMan, IPrototypeManager protoManager, SpriteSystem spriteSystem) { RobustXamlLoader.Load(this); + _entityManager = entMan; _protoManager = protoManager; _spriteSystem = spriteSystem; + _owner = owner; Title = Loc.GetString("cargo-console-menu-title"); @@ -53,7 +58,21 @@ private void SetCategoryText(int id) Categories.SelectId(id); } - public IEnumerable ProductPrototypes => _protoManager.EnumeratePrototypes(); + public IEnumerable ProductPrototypes + { + get + { + var allowedGroups = _entityManager.GetComponentOrNull(_owner)?.AllowedGroups; + + foreach (var cargoPrototype in _protoManager.EnumeratePrototypes()) + { + if (!allowedGroups?.Contains(cargoPrototype.Group) ?? false) + continue; + + yield return cargoPrototype; + } + } + } /// /// Populates the list of products that will actually be shown, using the current filters. @@ -80,7 +99,7 @@ public void PopulateProducts() Product = prototype, ProductName = { Text = prototype.Name }, MainButton = { ToolTip = prototype.Description }, - PointCost = { Text = Loc.GetString("cargo-console-menu-points-amount", ("amount", prototype.PointCost.ToString())) }, + PointCost = { Text = Loc.GetString("cargo-console-menu-points-amount", ("amount", prototype.Cost.ToString())) }, Icon = { Texture = _spriteSystem.Frame0(prototype.Icon) }, }; button.MainButton.OnPressed += args => diff --git a/Content.IntegrationTests/Tests/CargoTest.cs b/Content.IntegrationTests/Tests/CargoTest.cs index 8bb07cfd967..e49f2e996ba 100644 --- a/Content.IntegrationTests/Tests/CargoTest.cs +++ b/Content.IntegrationTests/Tests/CargoTest.cs @@ -44,7 +44,7 @@ await server.WaitAssertion(() => var ent = entManager.SpawnEntity(proto.Product, testMap.MapCoords); var price = pricing.GetPrice(ent); - Assert.That(price, Is.AtMost(proto.PointCost), $"Found arbitrage on {proto.ID} cargo product! Cost is {proto.PointCost} but sell is {price}!"); + Assert.That(price, Is.AtMost(proto.Cost), $"Found arbitrage on {proto.ID} cargo product! Cost is {proto.Cost} but sell is {price}!"); entManager.DeleteEntity(ent); } }); @@ -80,7 +80,7 @@ await server.WaitAssertion(() => foreach (var bounty in bounties) { if (cargo.IsBountyComplete(ent, bounty)) - Assert.That(proto.PointCost, Is.GreaterThanOrEqualTo(bounty.Reward), $"Found arbitrage on {bounty.ID} cargo bounty! Product {proto.ID} costs {proto.PointCost} but fulfills bounty {bounty.ID} with reward {bounty.Reward}!"); + Assert.That(proto.Cost, Is.GreaterThanOrEqualTo(bounty.Reward), $"Found arbitrage on {bounty.ID} cargo bounty! Product {proto.ID} costs {proto.Cost} but fulfills bounty {bounty.ID} with reward {bounty.Reward}!"); } entManager.DeleteEntity(ent); diff --git a/Content.Server/Cargo/Components/CargoOrderConsoleComponent.cs b/Content.Server/Cargo/Components/CargoOrderConsoleComponent.cs deleted file mode 100644 index 1c418c9cc70..00000000000 --- a/Content.Server/Cargo/Components/CargoOrderConsoleComponent.cs +++ /dev/null @@ -1,17 +0,0 @@ -using Robust.Shared.Audio; - -namespace Content.Server.Cargo.Components -{ - /// - /// Handles sending order requests to cargo. Doesn't handle orders themselves via shuttle or telepads. - /// - [RegisterComponent] - public sealed partial class CargoOrderConsoleComponent : Component - { - [DataField("soundError")] public SoundSpecifier ErrorSound = - new SoundPathSpecifier("/Audio/Effects/Cargo/buzz_sigh.ogg"); - - [DataField("soundConfirm")] - public SoundSpecifier ConfirmSound = new SoundPathSpecifier("/Audio/Effects/Cargo/ping.ogg"); - } -} diff --git a/Content.Server/Cargo/Systems/CargoSystem.Orders.cs b/Content.Server/Cargo/Systems/CargoSystem.Orders.cs index 9a547bb578a..5985bbb484c 100644 --- a/Content.Server/Cargo/Systems/CargoSystem.Orders.cs +++ b/Content.Server/Cargo/Systems/CargoSystem.Orders.cs @@ -261,6 +261,9 @@ private void OnAddOrderMessage(EntityUid uid, CargoOrderConsoleComponent compone return; } + if (!component.AllowedGroups.Contains(product.Group)) + return; + var data = GetOrderData(args, product, GenerateOrderId(orderDatabase)); if (!TryAddOrder(stationUid.Value, data, orderDatabase)) @@ -313,7 +316,7 @@ private void PlayDenySound(EntityUid uid, CargoOrderConsoleComponent component) private static CargoOrderData GetOrderData(CargoConsoleAddOrderMessage args, CargoProductPrototype cargoProduct, int id) { - return new CargoOrderData(id, cargoProduct.Product, cargoProduct.PointCost, args.Amount, args.Requester, args.Reason); + return new CargoOrderData(id, cargoProduct.Product, cargoProduct.Cost, args.Amount, args.Requester, args.Reason); } public static int GetOutstandingOrderCount(StationCargoOrderDatabaseComponent component) diff --git a/Content.Server/Cargo/Systems/CargoSystem.cs b/Content.Server/Cargo/Systems/CargoSystem.cs index c39ffb186a1..d4be68efc85 100644 --- a/Content.Server/Cargo/Systems/CargoSystem.cs +++ b/Content.Server/Cargo/Systems/CargoSystem.cs @@ -9,6 +9,7 @@ using Content.Shared.Access.Systems; using Content.Shared.Administration.Logs; using Content.Shared.Cargo; +using Content.Shared.Cargo.Components; using Content.Shared.Containers.ItemSlots; using Content.Shared.Mobs.Components; using JetBrains.Annotations; diff --git a/Content.Server/StationEvents/Events/CargoGiftsRule.cs b/Content.Server/StationEvents/Events/CargoGiftsRule.cs index f0f9586ad33..4d3ffa005d7 100644 --- a/Content.Server/StationEvents/Events/CargoGiftsRule.cs +++ b/Content.Server/StationEvents/Events/CargoGiftsRule.cs @@ -60,7 +60,7 @@ protected override void ActiveTick(EntityUid uid, CargoGiftsRuleComponent compon if (!_cargoSystem.AddAndApproveOrder( station!.Value, product.Product, - product.PointCost, + product.Cost, qty, Loc.GetString(component.Sender), Loc.GetString(component.Description), diff --git a/Content.Shared/Cargo/Components/CargoOrderConsoleComponent.cs b/Content.Shared/Cargo/Components/CargoOrderConsoleComponent.cs new file mode 100644 index 00000000000..a7d1f531754 --- /dev/null +++ b/Content.Shared/Cargo/Components/CargoOrderConsoleComponent.cs @@ -0,0 +1,25 @@ +using Content.Shared.Cargo.Prototypes; +using Robust.Shared.Audio; +using Robust.Shared.GameStates; + +namespace Content.Shared.Cargo.Components; + +/// +/// Handles sending order requests to cargo. Doesn't handle orders themselves via shuttle or telepads. +/// +[RegisterComponent, NetworkedComponent] +public sealed partial class CargoOrderConsoleComponent : Component +{ + [DataField("soundError")] public SoundSpecifier ErrorSound = + new SoundPathSpecifier("/Audio/Effects/Cargo/buzz_sigh.ogg"); + + [DataField("soundConfirm")] + public SoundSpecifier ConfirmSound = new SoundPathSpecifier("/Audio/Effects/Cargo/ping.ogg"); + + /// + /// All of the s that are supported. + /// + [DataField, ViewVariables(VVAccess.ReadWrite)] + public List AllowedGroups = new() { "market" }; +} + diff --git a/Content.Shared/Cargo/Prototypes/CargoProductPrototype.cs b/Content.Shared/Cargo/Prototypes/CargoProductPrototype.cs index 54876183094..1d0ca8abdb4 100644 --- a/Content.Shared/Cargo/Prototypes/CargoProductPrototype.cs +++ b/Content.Shared/Cargo/Prototypes/CargoProductPrototype.cs @@ -1,12 +1,22 @@ using Robust.Shared.Prototypes; using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype; +using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype.Array; using Robust.Shared.Utility; namespace Content.Shared.Cargo.Prototypes { - [Prototype("cargoProduct")] - public sealed partial class CargoProductPrototype : IPrototype + [Prototype] + public sealed partial class CargoProductPrototype : IPrototype, IInheritingPrototype { + /// + [ParentDataField(typeof(AbstractPrototypeIdArraySerializer))] + public string[]? Parents { get; } + + /// + [NeverPushInheritance] + [AbstractDataField] + public bool Abstract { get; } + [DataField("name")] private string _name = string.Empty; [DataField("description")] private string _description = string.Empty; @@ -58,31 +68,31 @@ public string Description /// /// Texture path used in the CargoConsole GUI. /// - [DataField("icon")] + [DataField] public SpriteSpecifier Icon { get; private set; } = SpriteSpecifier.Invalid; /// - /// The prototype name of the product. + /// The entity prototype ID of the product. /// - [DataField("product", customTypeSerializer: typeof(PrototypeIdSerializer))] - public string Product { get; private set; } = string.Empty; + [DataField] + public EntProtoId Product { get; private set; } = string.Empty; /// /// The point cost of the product. /// - [DataField("cost")] - public int PointCost { get; private set; } + [DataField] + public int Cost { get; private set; } /// /// The prototype category of the product. (e.g. Engineering, Medical) /// - [DataField("category")] + [DataField] public string Category { get; private set; } = string.Empty; /// /// The prototype group of the product. (e.g. Contraband) /// - [DataField("group")] - public string Group { get; private set; } = string.Empty; + [DataField] + public string Group { get; private set; } = "market"; } } From 87f324b6485266b97cdb6945a6416a733e069491 Mon Sep 17 00:00:00 2001 From: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com> Date: Sat, 20 Jan 2024 15:07:07 +1100 Subject: [PATCH 28/66] Cargo fixes (#24318) Wrong button. --- .../Cargo/BUI/CargoOrderConsoleBoundUserInterface.cs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Content.Client/Cargo/BUI/CargoOrderConsoleBoundUserInterface.cs b/Content.Client/Cargo/BUI/CargoOrderConsoleBoundUserInterface.cs index ce12d16cb58..0be3ebd97f8 100644 --- a/Content.Client/Cargo/BUI/CargoOrderConsoleBoundUserInterface.cs +++ b/Content.Client/Cargo/BUI/CargoOrderConsoleBoundUserInterface.cs @@ -50,8 +50,9 @@ protected override void Open() base.Open(); var spriteSystem = EntMan.System(); - _menu = new CargoConsoleMenu(Owner, IoCManager.Resolve(), IoCManager.Resolve(), spriteSystem); - var localPlayer = IoCManager.Resolve()?.LocalPlayer?.ControlledEntity; + var dependencies = IoCManager.Instance!; + _menu = new CargoConsoleMenu(Owner, EntMan, dependencies.Resolve(), spriteSystem); + var localPlayer = dependencies.Resolve().LocalEntity; var description = new FormattedMessage(); string orderRequester; From 1ff31f8b7a450bc7aa5a638a8a63b318a5cf5363 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kacper=20Urba=C5=84czyk?= Date: Sat, 20 Jan 2024 05:57:05 +0100 Subject: [PATCH 29/66] Change what items can be fultoned while stopping anchored items from fultoning (#20628) * Check and restrict players from fultoning their equipped items * Changed fulton whitelist to items and anchorables * Stop from anchored items being fultoned * Moved containermanager check to CanFulton function * review --------- Co-authored-by: metalgearsloth --- Content.Server/Salvage/FultonSystem.cs | 4 ++-- .../Salvage/Fulton/FultonComponent.cs | 3 +-- .../Salvage/Fulton/SharedFultonSystem.cs | 23 +++++++++++++++---- 3 files changed, 21 insertions(+), 9 deletions(-) diff --git a/Content.Server/Salvage/FultonSystem.cs b/Content.Server/Salvage/FultonSystem.cs index 323b71daeae..a24bab45846 100644 --- a/Content.Server/Salvage/FultonSystem.cs +++ b/Content.Server/Salvage/FultonSystem.cs @@ -11,7 +11,6 @@ namespace Content.Server.Salvage; public sealed class FultonSystem : SharedFultonSystem { [Dependency] private readonly IRobustRandom _random = default!; - [Dependency] private readonly SharedContainerSystem _container = default!; public override void Initialize() { @@ -55,7 +54,8 @@ private void Fulton(EntityUid uid, FultonedComponent component) { if (!Deleted(component.Beacon) && TryComp(component.Beacon, out var beaconXform) && - !_container.IsEntityOrParentInContainer(component.Beacon.Value, xform: beaconXform)) + !Container.IsEntityOrParentInContainer(component.Beacon.Value, xform: beaconXform) && + CanFulton(uid)) { var xform = Transform(uid); var metadata = MetaData(uid); diff --git a/Content.Shared/Salvage/Fulton/FultonComponent.cs b/Content.Shared/Salvage/Fulton/FultonComponent.cs index b3a0d461930..236ee18c3a3 100644 --- a/Content.Shared/Salvage/Fulton/FultonComponent.cs +++ b/Content.Shared/Salvage/Fulton/FultonComponent.cs @@ -39,9 +39,8 @@ public sealed partial class FultonComponent : Component { Components = new[] { - "EntityStorage", "Item", - "ReagentTank", + "Anchorable" } }; diff --git a/Content.Shared/Salvage/Fulton/SharedFultonSystem.cs b/Content.Shared/Salvage/Fulton/SharedFultonSystem.cs index d678b14b92f..adaef16608e 100644 --- a/Content.Shared/Salvage/Fulton/SharedFultonSystem.cs +++ b/Content.Shared/Salvage/Fulton/SharedFultonSystem.cs @@ -26,6 +26,7 @@ public abstract partial class SharedFultonSystem : EntitySystem [Dependency] protected readonly SharedAudioSystem Audio = default!; [Dependency] private readonly SharedDoAfterSystem _doAfter = default!; [Dependency] private readonly FoldableSystem _foldable = default!; + [Dependency] protected readonly SharedContainerSystem Container = default!; [Dependency] private readonly SharedPopupSystem _popup = default!; [Dependency] private readonly SharedStackSystem _stack = default!; [Dependency] protected readonly SharedTransformSystem TransformSystem = default!; @@ -138,7 +139,7 @@ private void OnFultonInteract(EntityUid uid, FultonComponent component, AfterInt return; } - if (!CanFulton(args.Target.Value, uid, component)) + if (!CanApplyFulton(args.Target.Value, component)) { _popup.PopupClient(Loc.GetString("fulton-invalid"), uid, uid); return; @@ -177,15 +178,27 @@ protected virtual void UpdateAppearance(EntityUid uid, FultonedComponent fultone return; } - private bool CanFulton(EntityUid targetUid, EntityUid uid, FultonComponent component) + protected bool CanApplyFulton(EntityUid targetUid, FultonComponent component) { - if (Transform(targetUid).Anchored) + if (!CanFulton(targetUid)) return false; if (component.Whitelist?.IsValid(targetUid, EntityManager) != true) - { return false; - } + + return true; + } + + protected bool CanFulton(EntityUid uid) + { + var xform = Transform(uid); + + if (xform.Anchored) + return false; + + // Shouldn't need recursive container checks I think. + if (Container.IsEntityInContainer(uid)) + return false; return true; } From 28f0387ad5489aba291005c8d75bca87667be597 Mon Sep 17 00:00:00 2001 From: PJBot Date: Sat, 20 Jan 2024 04:58:11 +0000 Subject: [PATCH 30/66] Automatic changelog update --- Resources/Changelog/Changelog.yml | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/Resources/Changelog/Changelog.yml b/Resources/Changelog/Changelog.yml index 6139dda1902..72fee78543e 100644 --- a/Resources/Changelog/Changelog.yml +++ b/Resources/Changelog/Changelog.yml @@ -1,14 +1,4 @@ Entries: -- author: EmoGarbage404 - changes: - - message: Storage now uses a grid-based system. You can drag around items in your - bag, left click to remove them, and use right click to rotate them while dragging. - type: Add - - message: The storage window is now a fixed singleton above the hands. You can - make it moveable by toggling "Static storage UI" in the controls menu. - type: Add - id: 5253 - time: '2023-12-04T23:04:39.0000000+00:00' - author: qwerltaz changes: - message: When ghosting from a critical state, the ghost command now kills with @@ -3786,3 +3776,12 @@ id: 5753 time: '2024-01-20T03:40:01.0000000+00:00' url: https://api.github.com/repos/space-wizards/space-station-14/pulls/24044 +- author: casperr04 + changes: + - message: Fixed players being able to re-anchor items after fultoning them. + type: Fix + - message: Changed which objects can be fultoned. + type: Tweak + id: 5754 + time: '2024-01-20T04:57:05.0000000+00:00' + url: https://api.github.com/repos/space-wizards/space-station-14/pulls/20628 From 542aa11d8ea01d2b17c6d6cf46f2610161402b38 Mon Sep 17 00:00:00 2001 From: Alzore <140123969+Blackern5000@users.noreply.github.com> Date: Fri, 19 Jan 2024 23:11:01 -0600 Subject: [PATCH 31/66] Make crushers not craftable/researchable (#24319) * nomorecrushersci * nocomment --- .../Entities/Structures/Machines/lathe.yml | 3 -- .../Prototypes/Recipes/Lathes/devices.yml | 30 ------------------- Resources/Prototypes/Research/arsenal.yml | 4 --- 3 files changed, 37 deletions(-) diff --git a/Resources/Prototypes/Entities/Structures/Machines/lathe.yml b/Resources/Prototypes/Entities/Structures/Machines/lathe.yml index 5280f8e594d..7d5d571a092 100644 --- a/Resources/Prototypes/Entities/Structures/Machines/lathe.yml +++ b/Resources/Prototypes/Entities/Structures/Machines/lathe.yml @@ -294,9 +294,6 @@ - HolofanProjector - BluespaceBeaker - SyringeBluespace - - WeaponCrusher - - WeaponCrusherDagger - - WeaponCrusherGlaive - WeaponForceGun - WeaponLaserSvalinn - WeaponProtoKineticAccelerator diff --git a/Resources/Prototypes/Recipes/Lathes/devices.yml b/Resources/Prototypes/Recipes/Lathes/devices.yml index 066c2ba8d32..62582fad9cf 100644 --- a/Resources/Prototypes/Recipes/Lathes/devices.yml +++ b/Resources/Prototypes/Recipes/Lathes/devices.yml @@ -165,36 +165,6 @@ Plasma: 1500 Uranium: 150 -- type: latheRecipe - id: WeaponCrusher - result: WeaponCrusher - category: Weapons - completetime: 5 - materials: - Steel: 1000 - Glass: 250 - Plastic: 100 - -- type: latheRecipe - id: WeaponCrusherDagger - result: WeaponCrusherDagger - category: Weapons - completetime: 5 - materials: - Steel: 500 - Glass: 250 - Plastic: 50 - -- type: latheRecipe - id: WeaponCrusherGlaive - result: WeaponCrusherGlaive - category: Weapons - completetime: 5 - materials: - Steel: 1500 - Glass: 250 - Silver: 250 - - type: latheRecipe id: WeaponForceGun result: WeaponForceGun diff --git a/Resources/Prototypes/Research/arsenal.yml b/Resources/Prototypes/Research/arsenal.yml index b32ecae6a34..bf60a9e797d 100644 --- a/Resources/Prototypes/Research/arsenal.yml +++ b/Resources/Prototypes/Research/arsenal.yml @@ -12,10 +12,6 @@ recipeUnlocks: - WeaponProtoKineticAccelerator # These are roundstart but not replenishable for salvage - - WeaponCrusher - - WeaponCrusherDagger - # This is not roundstart since its a direct upgrade - - WeaponCrusherGlaive - type: technology id: DraconicMunitions From f10ecf44105185cb00aa236d7a91551f40a12531 Mon Sep 17 00:00:00 2001 From: PJBot Date: Sat, 20 Jan 2024 05:12:07 +0000 Subject: [PATCH 32/66] Automatic changelog update --- Resources/Changelog/Changelog.yml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/Resources/Changelog/Changelog.yml b/Resources/Changelog/Changelog.yml index 72fee78543e..8687802849b 100644 --- a/Resources/Changelog/Changelog.yml +++ b/Resources/Changelog/Changelog.yml @@ -1,11 +1,4 @@ Entries: -- author: qwerltaz - changes: - - message: When ghosting from a critical state, the ghost command now kills with - damage relative to current health instead of flat 200. - type: Fix - id: 5254 - time: '2023-12-04T23:06:11.0000000+00:00' - author: MACMAN2003 changes: - message: Autolathes can now print the snazzy orange "sodium" and blue "exterior" @@ -3785,3 +3778,10 @@ id: 5754 time: '2024-01-20T04:57:05.0000000+00:00' url: https://api.github.com/repos/space-wizards/space-station-14/pulls/20628 +- author: Blackern5000 + changes: + - message: Crushers can no longer be researched. + type: Remove + id: 5755 + time: '2024-01-20T05:11:02.0000000+00:00' + url: https://api.github.com/repos/space-wizards/space-station-14/pulls/24319 From 4a13dbea76e8e6061274537c7063c6915429d38a Mon Sep 17 00:00:00 2001 From: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com> Date: Sat, 20 Jan 2024 17:15:10 +1100 Subject: [PATCH 33/66] Fix some test warnings (#24324) Extracted from smug's pr. --- Content.Client/Audio/AmbientSoundSystem.cs | 18 ++++++----- Content.IntegrationTests/Tests/CargoTest.cs | 2 +- Content.IntegrationTests/Tests/EntityTest.cs | 30 ++++++++++++------- .../Tests/Shuttle/DockTest.cs | 11 ++++--- Content.IntegrationTests/Tests/ShuttleTest.cs | 2 +- 5 files changed, 36 insertions(+), 27 deletions(-) diff --git a/Content.Client/Audio/AmbientSoundSystem.cs b/Content.Client/Audio/AmbientSoundSystem.cs index d66ee434a29..d39073fa330 100644 --- a/Content.Client/Audio/AmbientSoundSystem.cs +++ b/Content.Client/Audio/AmbientSoundSystem.cs @@ -28,6 +28,7 @@ public sealed class AmbientSoundSystem : SharedAmbientSoundSystem { [Dependency] private readonly AmbientSoundTreeSystem _treeSys = default!; [Dependency] private readonly SharedAudioSystem _audio = default!; + [Dependency] private readonly SharedTransformSystem _xformSystem = default!; [Dependency] private readonly IConfigurationManager _cfg = default!; [Dependency] private readonly IGameTiming _gameTiming = default!; [Dependency] private readonly IPlayerManager _playerManager = default!; @@ -172,7 +173,7 @@ public override void Update(float frameTime) _targetTime = _gameTiming.CurTime+TimeSpan.FromSeconds(_cooldown); - var player = _playerManager.LocalPlayer?.ControlledEntity; + var player = _playerManager.LocalEntity; if (!EntityManager.TryGetComponent(player, out TransformComponent? xform)) { ClearSounds(); @@ -198,13 +199,13 @@ private readonly struct QueryState public readonly Dictionary> SourceDict = new(); public readonly Vector2 MapPos; public readonly TransformComponent Player; - public readonly EntityQuery Query; + public readonly SharedTransformSystem TransformSystem; - public QueryState(Vector2 mapPos, TransformComponent player, EntityQuery query) + public QueryState(Vector2 mapPos, TransformComponent player, SharedTransformSystem transformSystem) { MapPos = mapPos; Player = player; - Query = query; + TransformSystem = transformSystem; } } @@ -218,7 +219,7 @@ private static bool Callback( var delta = xform.ParentUid == state.Player.ParentUid ? xform.LocalPosition - state.Player.LocalPosition - : xform.WorldPosition - state.MapPos; + : state.TransformSystem.GetWorldPosition(xform) - state.MapPos; var range = delta.Length(); if (range >= ambientComp.Range) @@ -244,7 +245,7 @@ private void ProcessNearbyAmbience(TransformComponent playerXform) { var query = GetEntityQuery(); var metaQuery = GetEntityQuery(); - var mapPos = playerXform.MapPosition; + var mapPos = _xformSystem.GetMapCoordinates(playerXform); // Remove out-of-range ambiences foreach (var (comp, sound) in _playingSounds) @@ -258,9 +259,10 @@ private void ProcessNearbyAmbience(TransformComponent playerXform) xform.MapID == playerXform.MapID && !metaQuery.GetComponent(entity).EntityPaused) { + // TODO: This is just trydistance for coordinates. var distance = (xform.ParentUid == playerXform.ParentUid) ? xform.LocalPosition - playerXform.LocalPosition - : xform.WorldPosition - mapPos.Position; + : _xformSystem.GetWorldPosition(xform) - mapPos.Position; if (distance.LengthSquared() < comp.Range * comp.Range) continue; @@ -277,7 +279,7 @@ private void ProcessNearbyAmbience(TransformComponent playerXform) return; var pos = mapPos.Position; - var state = new QueryState(pos, playerXform, query); + var state = new QueryState(pos, playerXform, _xformSystem); var worldAabb = new Box2(pos - MaxAmbientVector, pos + MaxAmbientVector); _treeSys.QueryAabb(ref state, Callback, mapPos.MapId, worldAabb); diff --git a/Content.IntegrationTests/Tests/CargoTest.cs b/Content.IntegrationTests/Tests/CargoTest.cs index e49f2e996ba..09f179cf4f5 100644 --- a/Content.IntegrationTests/Tests/CargoTest.cs +++ b/Content.IntegrationTests/Tests/CargoTest.cs @@ -108,7 +108,7 @@ public async Task NoStaticPriceAndStackPrice() await server.WaitAssertion(() => { var mapId = testMap.MapId; - var grid = mapManager.CreateGrid(mapId); + var grid = mapManager.CreateGridEntity(mapId); var coord = new EntityCoordinates(grid.Owner, 0, 0); var protoIds = protoManager.EnumeratePrototypes() diff --git a/Content.IntegrationTests/Tests/EntityTest.cs b/Content.IntegrationTests/Tests/EntityTest.cs index 9f8823fd5e8..152eb725221 100644 --- a/Content.IntegrationTests/Tests/EntityTest.cs +++ b/Content.IntegrationTests/Tests/EntityTest.cs @@ -31,6 +31,7 @@ public async Task SpawnAndDeleteAllEntitiesOnDifferentMaps() var entityMan = server.ResolveDependency(); var mapManager = server.ResolveDependency(); var prototypeMan = server.ResolveDependency(); + var mapSystem = entityMan.System(); await server.WaitPost(() => { @@ -41,12 +42,13 @@ await server.WaitPost(() => .Where(p => !p.Components.ContainsKey("MapGrid")) // This will smash stuff otherwise. .Select(p => p.ID) .ToList(); + foreach (var protoId in protoIds) { var mapId = mapManager.CreateMap(); - var grid = mapManager.CreateGrid(mapId); + var grid = mapManager.CreateGridEntity(mapId); // TODO: Fix this better in engine. - grid.SetTile(Vector2i.Zero, new Tile(1)); + mapSystem.SetTile(grid.Owner, grid.Comp, Vector2i.Zero, new Tile(1)); var coord = new EntityCoordinates(grid.Owner, 0, 0); entityMan.SpawnEntity(protoId, coord); } @@ -61,7 +63,9 @@ await server.WaitPost(() => { var query = entityMan.AllEntityQueryEnumerator(); while (query.MoveNext(out var uid, out var meta)) + { yield return (uid, meta); + } } var entityMetas = Query(entityMan).ToList(); @@ -113,8 +117,10 @@ await server.WaitPost(() => { var query = entityMan.AllEntityQueryEnumerator(); while (query.MoveNext(out var uid, out var meta)) + { yield return (uid, meta); - }; + } + } var entityMetas = Query(entityMan).ToList(); foreach (var (uid, meta) in entityMetas) @@ -163,11 +169,11 @@ await server.WaitPost(() => foreach (var protoId in protoIds) { var mapId = mapManager.CreateMap(); - var grid = mapManager.CreateGrid(mapId); + var grid = mapManager.CreateGridEntity(mapId); var ent = sEntMan.SpawnEntity(protoId, new EntityCoordinates(grid.Owner, 0.5f, 0.5f)); foreach (var (_, component) in sEntMan.GetNetComponents(ent)) { - sEntMan.Dirty(component); + sEntMan.Dirty(ent, component); } } }); @@ -185,7 +191,9 @@ await server.WaitPost(() => { var query = entityMan.AllEntityQueryEnumerator(); while (query.MoveNext(out var uid, out var meta)) + { yield return (uid, meta); + } } var entityMetas = Query(sEntMan).ToList(); @@ -351,9 +359,10 @@ public async Task AllComponentsOneToOneDeleteTest() var entityManager = server.ResolveDependency(); var componentFactory = server.ResolveDependency(); var tileDefinitionManager = server.ResolveDependency(); + var mapSystem = entityManager.System(); var logmill = server.ResolveDependency().GetSawmill("EntityTest"); - MapGridComponent grid = default; + Entity grid = default!; await server.WaitPost(() => { @@ -362,13 +371,13 @@ await server.WaitPost(() => mapManager.AddUninitializedMap(mapId); - grid = mapManager.CreateGrid(mapId); + grid = mapManager.CreateGridEntity(mapId); var tileDefinition = tileDefinitionManager["Plating"]; var tile = new Tile(tileDefinition.TileId); - var coordinates = grid.ToCoordinates(); + var coordinates = new EntityCoordinates(grid.Owner, Vector2.Zero); - grid.SetTile(coordinates, tile); + mapSystem.SetTile(grid.Owner, grid.Comp!, coordinates, tile); mapManager.DoMapInitialize(mapId); }); @@ -379,7 +388,7 @@ await server.WaitAssertion(() => { Assert.Multiple(() => { - var testLocation = grid.ToCoordinates(); + var testLocation = new EntityCoordinates(grid.Owner, Vector2.Zero); foreach (var type in componentFactory.AllRegisteredTypes) { @@ -404,7 +413,6 @@ await server.WaitAssertion(() => continue; } - component.Owner = entity; logmill.Debug($"Adding component: {name}"); Assert.DoesNotThrow(() => diff --git a/Content.IntegrationTests/Tests/Shuttle/DockTest.cs b/Content.IntegrationTests/Tests/Shuttle/DockTest.cs index 3404c9fbbbe..b6fc273570a 100644 --- a/Content.IntegrationTests/Tests/Shuttle/DockTest.cs +++ b/Content.IntegrationTests/Tests/Shuttle/DockTest.cs @@ -32,6 +32,7 @@ public async Task TestDockingConfig(Vector2 dock1Pos, Vector2 dock2Pos, Angle do var entManager = server.ResolveDependency(); var mapManager = server.ResolveDependency(); var dockingSystem = entManager.System(); + var mapSystem = entManager.System(); var xformSystem = entManager.System(); var mapId = map.MapId; @@ -39,8 +40,8 @@ public async Task TestDockingConfig(Vector2 dock1Pos, Vector2 dock2Pos, Angle do await server.WaitAssertion(() => { entManager.DeleteEntity(map.GridUid); - var grid1 = mapManager.CreateGrid(mapId); - var grid2 = mapManager.CreateGrid(mapId); + var grid1 = mapManager.CreateGridEntity(mapId); + var grid2 = mapManager.CreateGridEntity(mapId); var grid1Ent = grid1.Owner; var grid2Ent = grid2.Owner; var grid2Offset = new Vector2(50f, 50f); @@ -57,7 +58,7 @@ await server.WaitAssertion(() => new(new Vector2i(0, 2), new Tile(1)), }; - grid1.SetTiles(tiles1); + mapSystem.SetTiles(grid1.Owner, grid1.Comp, tiles1); var dock1 = entManager.SpawnEntity("AirlockShuttle", new EntityCoordinates(grid1Ent, dock1Pos)); var dock1Xform = entManager.GetComponent(dock1); dock1Xform.LocalRotation = dock1Angle; @@ -71,7 +72,7 @@ await server.WaitAssertion(() => new(new Vector2i(1, 2), new Tile(1)), }; - grid2.SetTiles(tiles2); + mapSystem.SetTiles(grid2.Owner, grid2.Comp, tiles2); var dock2 = entManager.SpawnEntity("AirlockShuttle", new EntityCoordinates(grid2Ent, dock2Pos)); var dock2Xform = entManager.GetComponent(dock2); dock2Xform.LocalRotation = dock2Angle; @@ -94,9 +95,7 @@ public async Task TestPlanetDock() var otherMap = await pair.CreateTestMap(); var entManager = server.ResolveDependency(); - var mapManager = server.ResolveDependency(); var dockingSystem = entManager.System(); - var xformSystem = entManager.System(); var mapSystem = entManager.System(); var mapGrid = entManager.AddComponent(map.MapUid); diff --git a/Content.IntegrationTests/Tests/ShuttleTest.cs b/Content.IntegrationTests/Tests/ShuttleTest.cs index 304366adbf8..fb786373a5a 100644 --- a/Content.IntegrationTests/Tests/ShuttleTest.cs +++ b/Content.IntegrationTests/Tests/ShuttleTest.cs @@ -29,7 +29,7 @@ public async Task Test() await server.WaitAssertion(() => { var mapId = mapMan.CreateMap(); - var grid = mapMan.CreateGrid(mapId); + var grid = mapMan.CreateGridEntity(mapId); gridEnt = grid.Owner; Assert.Multiple(() => From bbbacf996b812d5bf2b4bb62671ef536a5e2f1b4 Mon Sep 17 00:00:00 2001 From: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com> Date: Sat, 20 Jan 2024 17:22:19 +1100 Subject: [PATCH 34/66] Fix drag-drop buckle sound playing twice (#24321) Buckle refactor somedayTM. --- Content.Shared/Buckle/SharedBuckleSystem.Buckle.cs | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/Content.Shared/Buckle/SharedBuckleSystem.Buckle.cs b/Content.Shared/Buckle/SharedBuckleSystem.Buckle.cs index 63b7fc17a3e..9b2b8ce4c8a 100644 --- a/Content.Shared/Buckle/SharedBuckleSystem.Buckle.cs +++ b/Content.Shared/Buckle/SharedBuckleSystem.Buckle.cs @@ -362,8 +362,7 @@ public bool TryBuckle(EntityUid buckleUid, EntityUid userUid, EntityUid strapUid ReAttach(buckleUid, strapUid, buckleComp, strapComp); SetBuckledTo(buckleUid, strapUid, strapComp, buckleComp); // TODO user is currently set to null because if it isn't the sound fails to play in some situations, fix that - var audioSourceUid = userUid == buckleUid ? userUid : strapUid; - _audio.PlayPredicted(strapComp.BuckleSound, strapUid, audioSourceUid); + _audio.PlayPredicted(strapComp.BuckleSound, strapUid, userUid); var ev = new BuckleChangeEvent(strapUid, buckleUid, true); RaiseLocalEvent(ev.BuckledEntity, ref ev); From 18a111bb3613eb66326781be3c0e6c9b7f00280d Mon Sep 17 00:00:00 2001 From: PJBot Date: Sat, 20 Jan 2024 06:23:25 +0000 Subject: [PATCH 35/66] Automatic changelog update --- Resources/Changelog/Changelog.yml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/Resources/Changelog/Changelog.yml b/Resources/Changelog/Changelog.yml index 8687802849b..3ff022c6849 100644 --- a/Resources/Changelog/Changelog.yml +++ b/Resources/Changelog/Changelog.yml @@ -1,11 +1,4 @@ Entries: -- author: MACMAN2003 - changes: - - message: Autolathes can now print the snazzy orange "sodium" and blue "exterior" - light tubes. - type: Tweak - id: 5255 - time: '2023-12-04T23:06:30.0000000+00:00' - author: MACMAN2003 changes: - message: The jaws of life can now fit inside of regular toolbelts. @@ -3785,3 +3778,10 @@ id: 5755 time: '2024-01-20T05:11:02.0000000+00:00' url: https://api.github.com/repos/space-wizards/space-station-14/pulls/24319 +- author: metalgearsloth + changes: + - message: Fix buckle sound playing twice in some instances. + type: Fix + id: 5756 + time: '2024-01-20T06:22:19.0000000+00:00' + url: https://api.github.com/repos/space-wizards/space-station-14/pulls/24321 From efdc6f8d4c5dc8c593b6403c6592f0ddc6212266 Mon Sep 17 00:00:00 2001 From: Errant <35878406+Errant-4@users.noreply.github.com> Date: Sat, 20 Jan 2024 09:59:41 +0100 Subject: [PATCH 36/66] Beacon localization (#24138) * localize beacons * No not like that * Tesla beacons were already depreciated, time to give the reaper their due * Entity name fallback * The real treasure was the far easier solution we missed along the way * weh * Shared mapinit * fix RT version * a single line break --- Content.Server/Pinpointer/NavMapSystem.cs | 2 +- .../Pinpointer/SharedNavMapSystem.cs | 14 ++ .../en-US/navmap-beacons/station-beacons.ftl | 72 ++++++++++ .../station_map.ftl | 0 .../Objects/Devices/station_beacon.yml | 134 ++++++++---------- Resources/migration.yml | 3 + 6 files changed, 153 insertions(+), 72 deletions(-) create mode 100644 Resources/Locale/en-US/navmap-beacons/station-beacons.ftl rename Resources/Locale/en-US/{pinpointer => navmap-beacons}/station_map.ftl (100%) diff --git a/Content.Server/Pinpointer/NavMapSystem.cs b/Content.Server/Pinpointer/NavMapSystem.cs index f2a23693a88..bf3a3b29988 100644 --- a/Content.Server/Pinpointer/NavMapSystem.cs +++ b/Content.Server/Pinpointer/NavMapSystem.cs @@ -225,7 +225,7 @@ private void OnGetState(EntityUid uid, NavMapComponent component, ref ComponentG // TODO: Make warp points use metadata name instead. string? name = beacon.Text; - if (name == null) + if (string.IsNullOrEmpty(name)) { if (TryComp(beaconUid, out var warpPoint) && warpPoint.Location != null) { diff --git a/Content.Shared/Pinpointer/SharedNavMapSystem.cs b/Content.Shared/Pinpointer/SharedNavMapSystem.cs index 17f86ac7e68..7a62e6aabed 100644 --- a/Content.Shared/Pinpointer/SharedNavMapSystem.cs +++ b/Content.Shared/Pinpointer/SharedNavMapSystem.cs @@ -8,6 +8,13 @@ public abstract class SharedNavMapSystem : EntitySystem { public const byte ChunkSize = 4; + public override void Initialize() + { + base.Initialize(); + + SubscribeLocalEvent(OnNavMapBeaconMapInit); + } + /// /// Converts the chunk's tile into a bitflag for the slot. /// @@ -31,6 +38,13 @@ public static Vector2i GetTile(int flag) return new Vector2i(x, y); } + private void OnNavMapBeaconMapInit(EntityUid uid, NavMapBeaconComponent component, MapInitEvent args) + { + component.Text ??= string.Empty; + component.Text = Loc.GetString(component.Text); + Dirty(uid, component); + } + [Serializable, NetSerializable] protected sealed class NavMapComponentState : ComponentState { diff --git a/Resources/Locale/en-US/navmap-beacons/station-beacons.ftl b/Resources/Locale/en-US/navmap-beacons/station-beacons.ftl new file mode 100644 index 00000000000..48f75cbd692 --- /dev/null +++ b/Resources/Locale/en-US/navmap-beacons/station-beacons.ftl @@ -0,0 +1,72 @@ +station-beacon-general = General + +station-beacon-command = Command +station-beacon-bridge = Bridge +station-beacon-vault = Vault +station-beacon-captain = Captain +station-beacon-hop = HOP + +station-beacon-security = Security +station-beacon-brig = Brig +station-beacon-warden = Warden +station-beacon-hos = HOS +station-beacon-armory = Armory +station-beacon-perma-brig = Perma +station-beacon-detective = Detective +station-beacon-courtroom = Courtroom +station-beacon-law = Law Office +station-beacon-security-checkpoint = Checkpoint + +station-beacon-medical = Medical +station-beacon-medbay = Medbay +station-beacon-chemistry = Chem +station-beacon-cryonics = Cryo +station-beacon-cmo = CMO +station-beacon-morgue = Morgue +station-beacon-surgery = Surgery + +station-beacon-science = Science +station-beacon-research-and-development = Research +station-beacon-research-server = Server +station-beacon-research-director = RD +station-beacon-robotics = Robotics +station-beacon-artifact-lab = Artifact +station-beacon-anomaly-gen = Anomaly + +station-beacon-supply = Supply +station-beacon-cargo = Cargo +station-beacon-cargo-bay = Cargo Bay +station-beacon-qm = QM +station-beacon-salvage = Salvage + +station-beacon-engineering = Engineering +station-beacon-ce = CE +station-beacon-ame = AME +station-beacon-solars = Solars +station-beacon-gravgen = Grav +station-beacon-pa = PA Control +station-beacon-smes = SMES +station-beacon-telecoms = Telecoms +station-beacon-atmos = Atmos +station-beacon-teg = TEG +station-beacon-tech-vault = Tech Vault + +station-beacon-service = Service +station-beacon-kitchen = Kitchen +station-beacon-bar = Bar +station-beacon-botany = Botany +station-beacon-janitor = Janitor + +station-beacon-ai = AI +station-beacon-ai-sat = AI Sat +station-beacon-ai-core = AI Core + +station-beacon-arrivals = Arrivals +station-beacon-evac = Evac +station-beacon-eva-storage = EVA Storage +station-beacon-chapel = Chapel +station-beacon-library = Library +station-beacon-dorms = Dorms +station-beacon-theater = Theater +station-beacon-tools = Tools +station-beacon-disposals = Disposals diff --git a/Resources/Locale/en-US/pinpointer/station_map.ftl b/Resources/Locale/en-US/navmap-beacons/station_map.ftl similarity index 100% rename from Resources/Locale/en-US/pinpointer/station_map.ftl rename to Resources/Locale/en-US/navmap-beacons/station_map.ftl diff --git a/Resources/Prototypes/Entities/Objects/Devices/station_beacon.yml b/Resources/Prototypes/Entities/Objects/Devices/station_beacon.yml index ac457c95475..bdf869d9b11 100644 --- a/Resources/Prototypes/Entities/Objects/Devices/station_beacon.yml +++ b/Resources/Prototypes/Entities/Objects/Devices/station_beacon.yml @@ -22,7 +22,7 @@ False: {state: icon} - type: ConfigurableNavMapBeacon - type: NavMapBeacon - text: general + text: station-beacon-general color: "#D4D4D496" - type: WarpPoint - type: ActivatableUI @@ -118,7 +118,7 @@ suffix: Command components: - type: NavMapBeacon - text: Command + text: station-beacon-command color: "#FFFF00" - type: entity @@ -127,7 +127,7 @@ suffix: Bridge components: - type: NavMapBeacon - text: Bridge + text: station-beacon-bridge - type: entity parent: DefaultStationBeaconCommand @@ -135,7 +135,7 @@ suffix: Vault components: - type: NavMapBeacon - text: Vault + text: station-beacon-vault - type: entity parent: DefaultStationBeaconCommand @@ -143,7 +143,7 @@ suffix: Captain's Quarters components: - type: NavMapBeacon - text: Captain + text: station-beacon-captain - type: entity parent: DefaultStationBeaconCommand @@ -151,7 +151,7 @@ suffix: HOP's Office components: - type: NavMapBeacon - text: HOP + text: station-beacon-hop - type: entity parent: DefaultStationBeacon @@ -159,7 +159,7 @@ suffix: Security components: - type: NavMapBeacon - text: Security + text: station-beacon-security color: "#DE3A3A" - type: entity @@ -168,7 +168,7 @@ suffix: Brig components: - type: NavMapBeacon - text: Brig + text: station-beacon-brig - type: entity parent: DefaultStationBeaconSecurity @@ -176,7 +176,7 @@ suffix: Warden's Office components: - type: NavMapBeacon - text: Warden + text: station-beacon-warden - type: entity parent: DefaultStationBeaconSecurity @@ -184,7 +184,7 @@ suffix: HOS’s Room components: - type: NavMapBeacon - text: HOS + text: station-beacon-hos - type: entity parent: DefaultStationBeaconSecurity @@ -192,7 +192,7 @@ suffix: Armory components: - type: NavMapBeacon - text: Armory + text: station-beacon-armory - type: entity parent: DefaultStationBeaconSecurity @@ -200,7 +200,7 @@ suffix: Perma Brig components: - type: NavMapBeacon - text: Perma + text: station-beacon-perma-brig - type: entity parent: DefaultStationBeaconSecurity @@ -208,7 +208,7 @@ suffix: Detective's Room components: - type: NavMapBeacon - text: Detective + text: station-beacon-detective - type: entity parent: DefaultStationBeaconSecurity @@ -216,7 +216,7 @@ suffix: Courtroom components: - type: NavMapBeacon - text: Courtroom + text: station-beacon-courtroom - type: entity parent: DefaultStationBeaconSecurity @@ -224,7 +224,7 @@ suffix: Law Office components: - type: NavMapBeacon - text: Law Office + text: station-beacon-law - type: entity parent: DefaultStationBeaconSecurity @@ -232,7 +232,7 @@ suffix: Sec Checkpoint components: - type: NavMapBeacon - text: Checkpoint + text: station-beacon-security-checkpoint - type: entity parent: DefaultStationBeacon @@ -240,7 +240,7 @@ suffix: Medical components: - type: NavMapBeacon - text: Medical + text: station-beacon-medical color: "#52B4E9" - type: entity @@ -249,7 +249,7 @@ suffix: Medbay components: - type: NavMapBeacon - text: Medbay + text: station-beacon-medbay - type: entity parent: DefaultStationBeaconMedical @@ -257,7 +257,7 @@ suffix: Chemistry components: - type: NavMapBeacon - text: Chem + text: station-beacon-chemistry - type: entity parent: DefaultStationBeaconMedical @@ -265,7 +265,7 @@ suffix: Cryonics components: - type: NavMapBeacon - text: Cryo + text: station-beacon-cryonics - type: entity parent: DefaultStationBeaconMedical @@ -273,7 +273,7 @@ suffix: CMO's room components: - type: NavMapBeacon - text: CMO + text: station-beacon-cmo - type: entity parent: DefaultStationBeaconMedical @@ -281,7 +281,7 @@ suffix: Morgue components: - type: NavMapBeacon - text: Morgue + text: station-beacon-morgue - type: entity parent: DefaultStationBeaconMedical @@ -289,7 +289,7 @@ suffix: Surgery components: - type: NavMapBeacon - text: Surgery + text: station-beacon-surgery - type: entity parent: DefaultStationBeacon @@ -297,7 +297,7 @@ suffix: Science components: - type: NavMapBeacon - text: Science + text: station-beacon-science color: "#D381C9" - type: entity @@ -306,7 +306,7 @@ suffix: Research and Development components: - type: NavMapBeacon - text: Research + text: station-beacon-research-and-development - type: entity parent: DefaultStationBeaconScience @@ -314,7 +314,7 @@ suffix: Research Server Room components: - type: NavMapBeacon - text: Server + text: station-beacon-research-server - type: entity parent: DefaultStationBeaconScience @@ -322,7 +322,7 @@ suffix: RD's Room components: - type: NavMapBeacon - text: RD + text: station-beacon-research-director - type: entity parent: DefaultStationBeaconScience @@ -330,7 +330,7 @@ suffix: Robotics components: - type: NavMapBeacon - text: Robotics + text: station-beacon-robotics - type: entity parent: DefaultStationBeaconScience @@ -338,7 +338,7 @@ suffix: Artifact Lab components: - type: NavMapBeacon - text: Artifact + text: station-beacon-artifact-lab - type: entity parent: DefaultStationBeaconScience @@ -346,7 +346,7 @@ suffix: Anomaly Generator components: - type: NavMapBeacon - text: Anomaly + text: station-beacon-anomaly-gen - type: entity parent: DefaultStationBeacon @@ -354,7 +354,7 @@ suffix: Supply components: - type: NavMapBeacon - text: Supply + text: station-beacon-supply color: "#A46106" - type: entity @@ -363,7 +363,7 @@ suffix: Cargo Reception components: - type: NavMapBeacon - text: Cargo + text: station-beacon-cargo - type: entity parent: DefaultStationBeaconSupply @@ -371,7 +371,7 @@ suffix: Cargo Bay components: - type: NavMapBeacon - text: Cargo Bay + text: station-beacon-cargo-bay - type: entity parent: DefaultStationBeaconSupply @@ -379,7 +379,7 @@ suffix: QM's Room components: - type: NavMapBeacon - text: QM + text: station-beacon-qm - type: entity parent: DefaultStationBeaconSupply @@ -387,7 +387,7 @@ suffix: Salvage components: - type: NavMapBeacon - text: Salvage + text: station-beacon-salvage - type: entity parent: DefaultStationBeacon @@ -395,7 +395,7 @@ suffix: Engineering components: - type: NavMapBeacon - text: Engineering + text: station-beacon-engineering color: "#EFB341" - type: entity @@ -404,7 +404,7 @@ suffix: CE's Room components: - type: NavMapBeacon - text: CE + text: station-beacon-ce - type: entity parent: DefaultStationBeaconEngineering @@ -412,7 +412,7 @@ suffix: AME components: - type: NavMapBeacon - text: AME + text: station-beacon-ame - type: entity parent: DefaultStationBeaconEngineering @@ -420,7 +420,7 @@ suffix: Solars components: - type: NavMapBeacon - text: Solars + text: station-beacon-solars - type: entity parent: DefaultStationBeaconEngineering @@ -428,7 +428,7 @@ suffix: Grav Gen components: - type: NavMapBeacon - text: Grav + text: station-beacon-gravgen - type: entity parent: DefaultStationBeaconEngineering @@ -436,7 +436,7 @@ suffix: PA Control components: - type: NavMapBeacon - text: PA Control + text: station-beacon-pa - type: entity parent: DefaultStationBeaconEngineering @@ -444,7 +444,7 @@ suffix: SMES Power Bank components: - type: NavMapBeacon - text: SMES + text: station-beacon-smes - type: entity parent: DefaultStationBeaconEngineering @@ -452,7 +452,7 @@ suffix: Telecoms components: - type: NavMapBeacon - text: Telecoms + text: station-beacon-telecoms - type: entity parent: DefaultStationBeaconEngineering @@ -460,7 +460,7 @@ suffix: Atmospherics components: - type: NavMapBeacon - text: Atmos + text: station-beacon-atmos - type: entity parent: DefaultStationBeaconEngineering @@ -468,15 +468,7 @@ suffix: TEG components: - type: NavMapBeacon - text: TEG - -- type: entity - parent: DefaultStationBeaconEngineering - id: DefaultStationBeaconTeslaEngine - suffix: Tesla Engine (Do Not Map - use PA Control instead) - components: - - type: NavMapBeacon - text: Tesla + text: station-beacon-teg - type: entity parent: DefaultStationBeaconEngineering @@ -484,7 +476,7 @@ suffix: Tech Vault components: - type: NavMapBeacon - text: Tech Vault + text: station-beacon-tech-vault - type: entity parent: DefaultStationBeacon @@ -492,7 +484,7 @@ suffix: Service components: - type: NavMapBeacon - text: Service + text: station-beacon-service color: "#9FED58" - type: entity @@ -501,7 +493,7 @@ suffix: Kitchen components: - type: NavMapBeacon - text: Kitchen + text: station-beacon-kitchen - type: entity parent: DefaultStationBeaconService @@ -509,7 +501,7 @@ suffix: Bar components: - type: NavMapBeacon - text: Bar + text: station-beacon-bar - type: entity parent: DefaultStationBeaconService @@ -517,7 +509,7 @@ suffix: Botany components: - type: NavMapBeacon - text: Botany + text: station-beacon-botany - type: entity parent: DefaultStationBeaconService @@ -525,7 +517,7 @@ suffix: Janitor's Closet components: - type: NavMapBeacon - text: Janitor + text: station-beacon-janitor - type: entity parent: DefaultStationBeacon @@ -533,7 +525,7 @@ suffix: AI components: - type: NavMapBeacon - text: AI + text: station-beacon-ai color: "#2ed2fd" - type: entity @@ -542,7 +534,7 @@ suffix: AI Satellite components: - type: NavMapBeacon - text: AI Sat + text: station-beacon-ai-sat - type: entity parent: DefaultStationBeaconAI @@ -550,7 +542,7 @@ suffix: AI Core components: - type: NavMapBeacon - text: AI Core + text: station-beacon-ai-core - type: entity parent: DefaultStationBeacon @@ -558,7 +550,7 @@ suffix: Arrivals components: - type: NavMapBeacon - text: Arrivals + text: station-beacon-arrivals - type: entity parent: DefaultStationBeacon @@ -566,7 +558,7 @@ suffix: Evac components: - type: NavMapBeacon - text: Evac + text: station-beacon-evac - type: entity parent: DefaultStationBeacon @@ -574,7 +566,7 @@ suffix: EVA Storage components: - type: NavMapBeacon - text: EVA Storage + text: station-beacon-eva-storage - type: entity parent: DefaultStationBeacon @@ -582,7 +574,7 @@ suffix: Chapel components: - type: NavMapBeacon - text: Chapel + text: station-beacon-chapel - type: entity parent: DefaultStationBeacon @@ -590,7 +582,7 @@ suffix: Library components: - type: NavMapBeacon - text: Library + text: station-beacon-library - type: entity parent: DefaultStationBeacon @@ -598,7 +590,7 @@ suffix: Theater components: - type: NavMapBeacon - text: Theater + text: station-beacon-theater - type: entity parent: DefaultStationBeacon @@ -606,7 +598,7 @@ suffix: Dorms components: - type: NavMapBeacon - text: Dorms + text: station-beacon-dorms - type: entity parent: DefaultStationBeacon @@ -614,7 +606,7 @@ suffix: Tool Room components: - type: NavMapBeacon - text: Tools + text: station-beacon-tools - type: entity parent: DefaultStationBeacon @@ -622,5 +614,5 @@ suffix: Disposals components: - type: NavMapBeacon - text: Disposals + text: station-beacon-disposals diff --git a/Resources/migration.yml b/Resources/migration.yml index 5d31d34d5f0..e859bbc7fe6 100644 --- a/Resources/migration.yml +++ b/Resources/migration.yml @@ -162,3 +162,6 @@ SpaceMedipen: null # 2024-01-18 ClothingHeadHelmetVoidParamed: null + +# 2024-01-19 +DefaultStationBeaconTeslaEngine: null From bd4a0b93c8f7ff40a52c56a2ee442b1357c290f9 Mon Sep 17 00:00:00 2001 From: Ilya246 <57039557+Ilya246@users.noreply.github.com> Date: Sat, 20 Jan 2024 19:05:09 +0400 Subject: [PATCH 37/66] fix scram implant uplink desc (#24336) fix --- Resources/Locale/en-US/store/uplink-catalog.ftl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Resources/Locale/en-US/store/uplink-catalog.ftl b/Resources/Locale/en-US/store/uplink-catalog.ftl index cb03a80c85f..cc10345bb7a 100644 --- a/Resources/Locale/en-US/store/uplink-catalog.ftl +++ b/Resources/Locale/en-US/store/uplink-catalog.ftl @@ -159,7 +159,7 @@ uplink-freedom-implanter-name = Freedom Implanter uplink-freedom-implanter-desc = Get away from those nasty sec officers with this three use implant! uplink-scram-implanter-name = Scram Implanter -uplink-scram-implanter-desc = A 3-use implant which teleports you within a large radius. Attempts to teleport you onto an unobstructed tile. May sometimes fail to do so. Life insurance not included. +uplink-scram-implanter-desc = A 2-use implant which teleports you within a large radius. Attempts to teleport you onto an unobstructed tile. May sometimes fail to do so. Life insurance not included. uplink-dna-scrambler-implanter-name = DNA Scrambler Implanter uplink-dna-scrambler-implanter-desc = A single use implant that can be activated to modify your DNA and give you a completely new look. From 25cde97d35bb0b00769d2447b90e52e84d2e34a4 Mon Sep 17 00:00:00 2001 From: Trevor Day Date: Sat, 20 Jan 2024 10:02:12 -0800 Subject: [PATCH 38/66] Add admin log messages for gamerule addition and end (#24092) * Add admin log messages for gamerule addition and end * Use EventRan end EventStopped LogTypes instead of new GameRule logtype * Apply suggestions from code review --------- Co-authored-by: Chief-Engineer <119664036+Chief-Engineer@users.noreply.github.com> --- .../GameTicking/GameTicker.GameRule.cs | 20 +++++++++++++++++++ .../GameTicking/Rules/SecretRuleSystem.cs | 4 ++++ 2 files changed, 24 insertions(+) diff --git a/Content.Server/GameTicking/GameTicker.GameRule.cs b/Content.Server/GameTicking/GameTicker.GameRule.cs index c04b8d67116..971e103c1b5 100644 --- a/Content.Server/GameTicking/GameTicker.GameRule.cs +++ b/Content.Server/GameTicking/GameTicker.GameRule.cs @@ -2,6 +2,7 @@ using Content.Server.Administration; using Content.Server.GameTicking.Rules.Components; using Content.Shared.Administration; +using Content.Shared.Database; using Content.Shared.Prototypes; using JetBrains.Annotations; using Robust.Shared.Console; @@ -59,6 +60,7 @@ public EntityUid AddGameRule(string ruleId) { var ruleEntity = Spawn(ruleId, MapCoordinates.Nullspace); _sawmill.Info($"Added game rule {ToPrettyString(ruleEntity)}"); + _adminLogger.Add(LogType.EventStarted, $"Added game rule {ToPrettyString(ruleEntity)}"); var ev = new GameRuleAddedEvent(ruleEntity, ruleId); RaiseLocalEvent(ruleEntity, ref ev, true); @@ -102,6 +104,7 @@ public bool StartGameRule(EntityUid ruleEntity, GameRuleComponent? ruleData = nu _allPreviousGameRules.Add((RoundDuration(), id)); _sawmill.Info($"Started game rule {ToPrettyString(ruleEntity)}"); + _adminLogger.Add(LogType.EventStarted, $"Started game rule {ToPrettyString(ruleEntity)}"); EnsureComp(ruleEntity); ruleData.ActivatedAt = _gameTiming.CurTime; @@ -131,6 +134,7 @@ public bool EndGameRule(EntityUid ruleEntity, GameRuleComponent? ruleData = null EnsureComp(ruleEntity); _sawmill.Info($"Ended game rule {ToPrettyString(ruleEntity)}"); + _adminLogger.Add(LogType.EventStopped, $"Ended game rule {ToPrettyString(ruleEntity)}"); var ev = new GameRuleEndedEvent(ruleEntity, id); RaiseLocalEvent(ruleEntity, ref ev, true); @@ -227,6 +231,14 @@ private void AddGameRuleCommand(IConsoleShell shell, string argstr, string[] arg foreach (var rule in args) { + if (shell.Player != null) + { + _adminLogger.Add(LogType.EventStarted, $"{shell.Player} tried to add game rule [{rule}] via command"); + } + else + { + _adminLogger.Add(LogType.EventStarted, $"Unknown tried to add game rule [{rule}] via command"); + } var ent = AddGameRule(rule); // Start rule if we're already in the middle of a round @@ -250,6 +262,14 @@ private void EndGameRuleCommand(IConsoleShell shell, string argstr, string[] arg { if (!NetEntity.TryParse(rule, out var ruleEntNet) || !TryGetEntity(ruleEntNet, out var ruleEnt)) continue; + if (shell.Player != null) + { + _adminLogger.Add(LogType.EventStopped, $"{shell.Player} tried to end game rule [{rule}] via command"); + } + else + { + _adminLogger.Add(LogType.EventStopped, $"Unknown tried to end game rule [{rule}] via command"); + } EndGameRule(ruleEnt.Value); } diff --git a/Content.Server/GameTicking/Rules/SecretRuleSystem.cs b/Content.Server/GameTicking/Rules/SecretRuleSystem.cs index afd6455f923..1e3858ceef6 100644 --- a/Content.Server/GameTicking/Rules/SecretRuleSystem.cs +++ b/Content.Server/GameTicking/Rules/SecretRuleSystem.cs @@ -1,8 +1,10 @@ +using Content.Server.Administration.Logs; using Content.Server.GameTicking.Presets; using Content.Server.GameTicking.Rules.Components; using Content.Shared.Random; using Content.Shared.Random.Helpers; using Content.Shared.CCVar; +using Content.Shared.Database; using Robust.Shared.Prototypes; using Robust.Shared.Random; using Robust.Shared.Configuration; @@ -14,6 +16,7 @@ public sealed class SecretRuleSystem : GameRuleSystem [Dependency] private readonly IPrototypeManager _prototypeManager = default!; [Dependency] private readonly IRobustRandom _random = default!; [Dependency] private readonly IConfigurationManager _configurationManager = default!; + [Dependency] private readonly IAdminLogManager _adminLogger = default!; protected override void Started(EntityUid uid, SecretRuleComponent component, GameRuleComponent gameRule, GameRuleStartedEvent args) { @@ -38,6 +41,7 @@ private void PickRule(SecretRuleComponent component) var presetString = _configurationManager.GetCVar(CCVars.SecretWeightPrototype); var preset = _prototypeManager.Index(presetString).Pick(_random); Logger.InfoS("gamepreset", $"Selected {preset} for secret."); + _adminLogger.Add(LogType.EventStarted, $"Selected {preset} for secret."); var rules = _prototypeManager.Index(preset).Rules; foreach (var rule in rules) From 031219688718b3c27c0fc1aa2952a3c0aee5f7d3 Mon Sep 17 00:00:00 2001 From: PJBot Date: Sat, 20 Jan 2024 18:03:18 +0000 Subject: [PATCH 39/66] Automatic changelog update --- Resources/Changelog/Changelog.yml | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/Resources/Changelog/Changelog.yml b/Resources/Changelog/Changelog.yml index 3ff022c6849..9c2cc641a96 100644 --- a/Resources/Changelog/Changelog.yml +++ b/Resources/Changelog/Changelog.yml @@ -1,10 +1,4 @@ Entries: -- author: MACMAN2003 - changes: - - message: The jaws of life can now fit inside of regular toolbelts. - type: Fix - id: 5256 - time: '2023-12-04T23:06:46.0000000+00:00' - author: Repo changes: - message: Doors can close over conveyor belts. @@ -3785,3 +3779,13 @@ id: 5756 time: '2024-01-20T06:22:19.0000000+00:00' url: https://api.github.com/repos/space-wizards/space-station-14/pulls/24321 +- author: tday + changes: + - message: Added admin log messages for adding and ending game rules, and for the + commands to do so. + type: Add + - message: Added admin log messages for secret mode rule selection. + type: Add + id: 5757 + time: '2024-01-20T18:02:13.0000000+00:00' + url: https://api.github.com/repos/space-wizards/space-station-14/pulls/24092 From 4f307a49be5796eaa7b02f5988a83ea04db95535 Mon Sep 17 00:00:00 2001 From: Kot <1192090+koteq@users.noreply.github.com> Date: Sun, 21 Jan 2024 02:03:10 +0400 Subject: [PATCH 40/66] Fix issue where round could reset all job priorities to high (#24340) * Update job priorities when job requirements are getting updated * Sort jobs by weight and then by the name * Sort departments too --- .../UI/HumanoidProfileEditor.xaml.cs | 19 ++++++++++++++++--- Content.Shared/Roles/DepartmentPrototype.cs | 6 ++++++ .../Prototypes/Roles/Jobs/departments.yml | 4 ++++ 3 files changed, 26 insertions(+), 3 deletions(-) diff --git a/Content.Client/Preferences/UI/HumanoidProfileEditor.xaml.cs b/Content.Client/Preferences/UI/HumanoidProfileEditor.xaml.cs index c9a64eb0973..dc72cbc49e2 100644 --- a/Content.Client/Preferences/UI/HumanoidProfileEditor.xaml.cs +++ b/Content.Client/Preferences/UI/HumanoidProfileEditor.xaml.cs @@ -523,7 +523,12 @@ private void UpdateRoleRequirements() _jobCategories.Clear(); var firstCategory = true; - foreach (var department in _prototypeManager.EnumeratePrototypes()) + var departments = _prototypeManager.EnumeratePrototypes() + .OrderByDescending(department => department.Weight) + .ThenBy(department => Loc.GetString($"department-{department.ID}")) + .ToList(); + + foreach (var department in departments) { var departmentName = Loc.GetString($"department-{department.ID}"); @@ -567,8 +572,11 @@ private void UpdateRoleRequirements() _jobList.AddChild(category); } - var jobs = department.Roles.Select(o => _prototypeManager.Index(o)).Where(o => o.SetPreference).ToList(); - jobs.Sort((x, y) => -string.Compare(x.LocalizedName, y.LocalizedName, StringComparison.CurrentCultureIgnoreCase)); + var jobs = department.Roles.Select(jobId => _prototypeManager.Index(jobId)) + .Where(job => job.SetPreference) + .OrderByDescending(job => job.Weight) + .ThenBy(job => job.LocalizedName) + .ToList(); foreach (var job in jobs) { @@ -605,6 +613,11 @@ private void UpdateRoleRequirements() } } + + if (Profile is not null) + { + UpdateJobPriorities(); + } } private void OnFlavorTextChange(string content) diff --git a/Content.Shared/Roles/DepartmentPrototype.cs b/Content.Shared/Roles/DepartmentPrototype.cs index b3549d9584d..f79b03f4a60 100644 --- a/Content.Shared/Roles/DepartmentPrototype.cs +++ b/Content.Shared/Roles/DepartmentPrototype.cs @@ -30,4 +30,10 @@ public sealed partial class DepartmentPrototype : IPrototype /// [DataField, ViewVariables(VVAccess.ReadWrite)] public bool Primary = true; + + /// + /// Departments with a higher weight sorted before other departments in UI. + /// + [DataField("weight")] + public int Weight { get; private set; } = 0; } diff --git a/Resources/Prototypes/Roles/Jobs/departments.yml b/Resources/Prototypes/Roles/Jobs/departments.yml index e1df3977219..20b1847699e 100644 --- a/Resources/Prototypes/Roles/Jobs/departments.yml +++ b/Resources/Prototypes/Roles/Jobs/departments.yml @@ -11,6 +11,7 @@ id: Civilian description: department-Civilian-description color: "#9FED58" + weight: -10 roles: - Bartender - Borg @@ -44,6 +45,7 @@ - ResearchDirector - Quartermaster primary: false + weight: 100 - type: department id: Engineering @@ -71,6 +73,7 @@ id: Security description: department-Security-description color: "#DE3A3A" + weight: 20 roles: - HeadOfSecurity - SecurityCadet @@ -91,6 +94,7 @@ id: Specific description: department-Specific-description color: "#9FED58" + weight: 10 roles: - Boxer - Reporter From 6a0c8004923769a3cb5db88c4fb602c9def12abd Mon Sep 17 00:00:00 2001 From: Nim <128169402+Nimfar11@users.noreply.github.com> Date: Sun, 21 Jan 2024 01:38:10 +0200 Subject: [PATCH 41/66] Add snake kebab (#24341) * add snake kebab * fix sprite * just meat --- .../Random/Food_Drinks/food_single.yml | 1 + .../Objects/Consumable/Food/skewer.yml | 18 ++++++++++++++++++ .../Recipes/Cooking/meal_recipes.yml | 11 +++++++++++ .../Consumable/Food/skewer.rsi/meta.json | 6 ++++++ .../Food/skewer.rsi/skewer-snake1.png | Bin 0 -> 382 bytes .../Food/skewer.rsi/skewer-snake2.png | Bin 0 -> 412 bytes 6 files changed, 36 insertions(+) create mode 100644 Resources/Textures/Objects/Consumable/Food/skewer.rsi/skewer-snake1.png create mode 100644 Resources/Textures/Objects/Consumable/Food/skewer.rsi/skewer-snake2.png diff --git a/Resources/Prototypes/Entities/Markers/Spawners/Random/Food_Drinks/food_single.yml b/Resources/Prototypes/Entities/Markers/Spawners/Random/Food_Drinks/food_single.yml index 36386b55a06..829ae92fc9d 100644 --- a/Resources/Prototypes/Entities/Markers/Spawners/Random/Food_Drinks/food_single.yml +++ b/Resources/Prototypes/Entities/Markers/Spawners/Random/Food_Drinks/food_single.yml @@ -74,6 +74,7 @@ - FoodMeatLizardtailKebab - FoodMeatRatKebab - FoodMeatRatdoubleKebab + - FoodMeatSnakeKebab - FoodPizzaArnoldSlice - FoodTacoRat rareChance: 0.05 diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Food/skewer.yml b/Resources/Prototypes/Entities/Objects/Consumable/Food/skewer.yml index 4cbd975a081..c313f2d0465 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Food/skewer.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Food/skewer.yml @@ -157,3 +157,21 @@ - state: skewer-corn2 - state: skewer-mushroom2 - state: skewer-tomato1 + +- type: entity + name: snake kebab + parent: FoodSkewerBase + id: FoodMeatSnakeKebab + description: Snake meat on a stick. It's a little tough. + components: + - type: Sprite + layers: + - state: skewer + - state: skewer-snake1 + - state: skewer-snake2 + - type: SolutionContainerManager + solutions: + food: + reagents: + - ReagentId: Nutriment + Quantity: 12 diff --git a/Resources/Prototypes/Recipes/Cooking/meal_recipes.yml b/Resources/Prototypes/Recipes/Cooking/meal_recipes.yml index 8416430cebc..0b66658d163 100644 --- a/Resources/Prototypes/Recipes/Cooking/meal_recipes.yml +++ b/Resources/Prototypes/Recipes/Cooking/meal_recipes.yml @@ -1818,6 +1818,17 @@ FoodMeatLizard: 1 FoodKebabSkewer: 1 +- type: microwaveMealRecipe + id: RecipeSnakeKebab + name: snake kebab recipe + result: FoodMeatSnakeKebab + time: 15 + reagents: + Wine: 5 + solids: + FoodMeatSnake: 1 + FoodKebabSkewer: 1 + - type: microwaveMealRecipe id: RecipeFoodMealSoftTaco name: soft taco recipe diff --git a/Resources/Textures/Objects/Consumable/Food/skewer.rsi/meta.json b/Resources/Textures/Objects/Consumable/Food/skewer.rsi/meta.json index 0416b444609..03fb0afdaea 100644 --- a/Resources/Textures/Objects/Consumable/Food/skewer.rsi/meta.json +++ b/Resources/Textures/Objects/Consumable/Food/skewer.rsi/meta.json @@ -93,6 +93,12 @@ }, { "name": "skewer-rat2" + }, + { + "name": "skewer-snake1" + }, + { + "name": "skewer-snake2" } ] } diff --git a/Resources/Textures/Objects/Consumable/Food/skewer.rsi/skewer-snake1.png b/Resources/Textures/Objects/Consumable/Food/skewer.rsi/skewer-snake1.png new file mode 100644 index 0000000000000000000000000000000000000000..a3a7ce808b90cf6755134369fed90f0a9e5e1088 GIT binary patch literal 382 zcmV-^0fGLBP)Px$I7vi7R9J=Wlp&A8FcioCy%0zcQ$sBX#DW}Ea|n`|OZ6uC0FzVu1g9qX0LY!j zEkWQ;amWh-ahckwi6zYR1a#rpK&>;^pL=c7_kVr=S3sdq{C9|qOGDS@hvNtnBgJa7 zf10D$cJf!sIFMnvI0MjeN*TAz3~%orjY3}97BDeV%*Gl3z>5;HT%3^?_rKgPxXiATNeNTmYMyDy(l4;nIR6G+ABygAprP{a#6V#B?P#bGcQWar+T#} z6`xTa2M)jQf9Tp(EL}zD+I%+Fu>1OH9LZKa5V|(^8EtgCHtaV}LaQ$zsukS!S?t~S zUP=pY4Jd@ffy39^LG5>xIt8cHxc-P2KEHG1McIu2AwnDWaX5}(nOQA)C-{s$G^RqK cP$&T47p`A);D$9GT>t<807*qoM6N<$g8KlV0ssI2 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Consumable/Food/skewer.rsi/skewer-snake2.png b/Resources/Textures/Objects/Consumable/Food/skewer.rsi/skewer-snake2.png new file mode 100644 index 0000000000000000000000000000000000000000..aac0763b6ee1ce9ad725868083b1c69eb7962b84 GIT binary patch literal 412 zcmV;N0b~A&P)Px$R!KxbR9J=Wlp$}zKorOSw=9q#s;FuZ2!e!DI0Q)zIZY)Wpt6cjfU4vJAd4n5 zO%OO#sU#H@q^hV25->Nhb!l0baW{h5{oJK}_kQ>8-UAd0g+lS)Au>U;$$*EEj<%6t zu@0p6$axhF7*oc96w}cKKofDoc(0RUzS>ENyod(0jRgIc1^}>JpG-#=WasOr*b@X6 z>wqjb^{=(%`efK`%H;lCz-F}aRJ~4GTIZFRO$Pj@7%71`G2l7ow+-j39oZgE@Enup z-!0cC0PvS;R8mZGi_Iwa9Fxo5KX6AI+Kh6oQ7b*XD#`8PB-N642aGA>AFWrGm`w(} z-_o!@W(Xr4Z^2qfLg?qb8rk`ZVYgW+QdOac2^2+&kIiy@;yET?ZtB9*QF@HpjPf`! zkY5V`?2j3;^Yu9bxrElJA&hkNI;n8-hhQ@*JbV-iMUi(%ypJ=dS*NT30000 Date: Sun, 21 Jan 2024 01:38:26 +0200 Subject: [PATCH 42/66] Cerberus Wideswing (#24328) arf --- Resources/Prototypes/Entities/Mobs/Player/familiars.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Resources/Prototypes/Entities/Mobs/Player/familiars.yml b/Resources/Prototypes/Entities/Mobs/Player/familiars.yml index b87c82f209b..63e27b8c530 100644 --- a/Resources/Prototypes/Entities/Mobs/Player/familiars.yml +++ b/Resources/Prototypes/Entities/Mobs/Player/familiars.yml @@ -46,7 +46,7 @@ rules: ghost-role-information-cerberus-rules - type: GhostTakeoverAvailable - type: MeleeWeapon - angle: 0 + altDisarm: false animation: WeaponArcBite damage: types: From 949b07dce07475d652ef02ad4fd3b628244afc0f Mon Sep 17 00:00:00 2001 From: Ubaser <134914314+UbaserB@users.noreply.github.com> Date: Sun, 21 Jan 2024 10:39:10 +1100 Subject: [PATCH 43/66] Buff potassium availability from bananas (#24257) * banana * yes --- .../Prototypes/Entities/Objects/Consumable/Food/produce.yml | 2 ++ Resources/Prototypes/Recipes/Reactions/food.yml | 4 ++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Food/produce.yml b/Resources/Prototypes/Entities/Objects/Consumable/Food/produce.yml index 1fc47c8c43e..b137cadae0d 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Food/produce.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Food/produce.yml @@ -254,6 +254,8 @@ - type: Extractable juiceSolution: reagents: + - ReagentId: JuiceBanana + Quantity: 10 - ReagentId: Nothing Quantity: 5 - type: Tag diff --git a/Resources/Prototypes/Recipes/Reactions/food.yml b/Resources/Prototypes/Recipes/Reactions/food.yml index cc471c1b2c6..f758babde5e 100644 --- a/Resources/Prototypes/Recipes/Reactions/food.yml +++ b/Resources/Prototypes/Recipes/Reactions/food.yml @@ -307,8 +307,8 @@ JuiceBanana: amount: 10 products: - Sugar: 9 - Potassium: 1 + Sugar: 5 + Potassium: 5 - type: reaction id: OilBreakdown From 9efa01d71205c0c2ba026627b7ccde82d06d7a5e Mon Sep 17 00:00:00 2001 From: PJBot Date: Sat, 20 Jan 2024 23:39:32 +0000 Subject: [PATCH 44/66] Automatic changelog update --- Resources/Changelog/Changelog.yml | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/Resources/Changelog/Changelog.yml b/Resources/Changelog/Changelog.yml index 9c2cc641a96..6fa02995d3f 100644 --- a/Resources/Changelog/Changelog.yml +++ b/Resources/Changelog/Changelog.yml @@ -1,16 +1,4 @@ Entries: -- author: Repo - changes: - - message: Doors can close over conveyor belts. - type: Fix - id: 5257 - time: '2023-12-04T23:07:48.0000000+00:00' -- author: 27alaing - changes: - - message: Pun Pun can become a revolutionary again - type: Tweak - id: 5258 - time: '2023-12-04T23:09:36.0000000+00:00' - author: Bhijn and Myr changes: - message: Speech bubbles now display the name of whatever or whoever spoke them! @@ -3789,3 +3777,17 @@ id: 5757 time: '2024-01-20T18:02:13.0000000+00:00' url: https://api.github.com/repos/space-wizards/space-station-14/pulls/24092 +- author: Nimfar11 + changes: + - message: Adds snake kebab and its recipe. + type: Add + id: 5758 + time: '2024-01-20T23:38:11.0000000+00:00' + url: https://api.github.com/repos/space-wizards/space-station-14/pulls/24341 +- author: Alekshhh + changes: + - message: Cerberus now has a wideswing that works similarly to spears. + type: Tweak + id: 5759 + time: '2024-01-20T23:38:27.0000000+00:00' + url: https://api.github.com/repos/space-wizards/space-station-14/pulls/24328 From 1085dbef6524ee8ba7c901459dcea8abf1f1993a Mon Sep 17 00:00:00 2001 From: GreyMario Date: Sat, 20 Jan 2024 15:40:01 -0800 Subject: [PATCH 45/66] Remove ability to start pulling while inside a container (#24235) * why was this even possible * what coding at 6am does to a mf --- Content.Shared/Pulling/Systems/SharedPullingSystem.Actions.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Content.Shared/Pulling/Systems/SharedPullingSystem.Actions.cs b/Content.Shared/Pulling/Systems/SharedPullingSystem.Actions.cs index b3f9c0d1c04..1e2bb90c61e 100644 --- a/Content.Shared/Pulling/Systems/SharedPullingSystem.Actions.cs +++ b/Content.Shared/Pulling/Systems/SharedPullingSystem.Actions.cs @@ -59,7 +59,7 @@ public bool CanPull(EntityUid puller, EntityUid pulled) return false; } - if (!_containerSystem.IsInSameOrNoContainer(puller, pulled)) + if(_containerSystem.IsEntityInContainer(puller) || _containerSystem.IsEntityInContainer(pulled)) { return false; } From ecc21d8f5291d92072729cfc2c0ec59d576af502 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sat, 20 Jan 2024 20:25:15 -0500 Subject: [PATCH 46/66] Update Credits (#24352) Co-authored-by: PJBot --- 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 bc0a3e4e612..9331e0e2007 100644 --- a/Resources/Credits/GitHub.txt +++ b/Resources/Credits/GitHub.txt @@ -1 +1 @@ -08A, 0x6273, 2013HORSEMEATSCANDAL, 20kdc, 4dplanner, 612git, 778b, Ablankmann, Acruid, actioninja, adamsong, Admiral-Obvious-001, Adrian16199, Aerocrux, Aexxie, Ahion, AJCM-git, AjexRose, Alekshhh, AlexMorgan3817, AlmondFlour, AlphaQwerty, Altoids1, amylizzle, ancientpower, areitpog, Arendian, arimah, artak10t, Arteben, AruMoon, as334, AsikKEsel, asperger-sind, astriloqua, avghdev, AzzyIsNotHere, BananaFlambe, BasedUser, BGare, bhespiritu, BingoJohnson-zz, BismarckShuffle, Bixkitts, Blackern5000, Blazeror, Boaz1111, BobdaBiscuit, brainfood1183, Brandon-Huu, Bright0, brndd, BubblegumBlue, BYONDFuckery, c0rigin, c4llv07e, CakeQ, CaptainSqrBeard, Carbonhell, CatTheSystem, Centronias, chairbender, Charlese2, Cheackraze, cheesePizza2, Chief-Engineer, chromiumboy, Chronophylos, civilCornball, clement-or, Clyybber, ColdAutumnRain, collinlunn, ComicIronic, coolmankid12345, corentt, crazybrain23, creadth, CrigCrag, Crotalus, CrudeWax, CrzyPotato, Cyberboss, d34d10cc, Daemon, daerSeebaer, dahnte, dakamakat, DamianX, DangerRevolution, daniel-cr, Darkenson, DawBla, dch-GH, Deahaka, DEATHB4DEFEAT, DeathCamel58, deathride58, DebugOk, Decappi, degradka, Delete69, deltanedas, DerbyX, DmitriyMX, DoctorBeard, DogZeroX, dontbetank, Doru991, DoubleRiceEddiedd, DrMelon, drongood12, DrSmugleaf, drteaspoon420, DTanxxx, DubiousDoggo, Duddino, Dutch-VanDerLinde, Easypoller, eclips_e, EEASAS, Efruit, efzapa, ElectroSR, elthundercloud, Emisse, EmoGarbage404, Endecc, enumerate0, eoineoineoin, ERORR404V1, Errant-4, estacaoespacialpirata, exp111, Fahasor, FairlySadPanda, ficcialfaint, FillerVK, Fishfish458, Flareguy, FluffiestFloof, FluidRock, FoLoKe, fooberticus, forthbridge, Fortune117, freeman2651, Fromoriss, GalacticChimp, gbasood, Geekyhobo, Genkail, Git-Nivrak, github-actions[bot], gituhabu, GNF54, GoodWheatley, Gotimanga, graevy, GreyMario, gusxyz, h3half, Hardly3D, harikattar, Hebiman, Henry12116, HerCoyote23, HoofedEar, hord-brayden, hubismal, Hugal31, Hyenh, iacore, IamVelcroboy, icekot8, iczero, igorsaux, ike709, illersaver, Illiux, Ilya246, IlyaElDunaev, Injazz, InquisitivePenguin, Insineer, IntegerTempest, Interrobang01, IProduceWidgets, ItsMeThom, j-giebel, Jackal298, Jackrost, jamessimo, janekvap, JerryImMouse, Jessetriesagain, jessicamaybe, Jezithyr, jicksaw, JiimBob, JoeHammad1844, joelhed, JohnGinnane, johnku1, joshepvodka, jproads, Jrpl, juliangiebel, JustCone14, JustinTether, JustinTrotter, Kadeo64, KaiShibaa, kalane15, kalanosh, KEEYNy, Keikiru, Kelrak, kerisargit, keronshb, KIBORG04, KingFroozy, kira-er, Kit0vras, KittenColony, Klaypexx, Kmc2000, komunre, koteq, kxvvv, lajolico, Lamrr, LankLTE, laok233, lapatison, Leander-0, LetterN, Level10Cybermancer, lever1209, LightVillet, liltenhead, LittleBuilderJane, Lomcastar, LordCarve, LordEclipse, luckyshotpictures, LudwigVonChesterfield, Lukasz825700516, lunarcomets, luringens, lvvova1, lzimann, lzk228, M3739, MACMAN2003, Macoron, magmodius, MagnusCrowe, ManelNavola, matthst, Matz05, MehimoNemo, MeltedPixel, MemeProof, Menshin, Mervill, metalgearsloth, mhamsterr, MilenVolf, Minty642, Mirino97, mirrorcult, MishaUnity, MisterMecky, Mith-randalf, ModeratelyAware, Moneyl, Moomoobeef, moony, Morb0, mr-bo-jangles, Mr0maks, Myakot, Myctai, N3X15, Nails-n-Tape, Nairodian, Naive817, namespace-Memory, NickPowers43, nikthechampiongr, Nimfar11, Nirnael, nmajask, nok-ko, notafet, notquitehadouken, noudoit, noverd, nuke-haus, NULL882, Nylux, och-och, OctoRocket, OldDanceJacket, OliverOtter, onoira, Owai-Seek, pali6, Pangogie, patrikturi, PaulRitter, Peptide90, peptron1, pewter-wiz, Phantom-Lily, Phill101, PixelTheKermit, PJB3005, pofitlo, pointer-to-null, PoorMansDreams, potato1234x, ProfanedBane, ProPandaBear, PrPleGoo, Psychpsyo, psykzz, PuroSlavKing, PursuitInAshes, Putnam3145, quatre, QuietlyWhisper, qwerltaz, Radosvik, Radrark, Rainbeon, Rainfey, Rane, Ranger6012, ravage123321, rbertoche, Redict, RedlineTriad, RednoWCirabrab, RemberBM, RemieRichards, RemTim, rene-descartes2021, renodubois, RiceMar1244, RieBi, RIKELOLDABOSS, Rinkashikachi, Rockdtben, rok-povsic, rolfero, Saakra, SadAways, Samsterious, SamV522, SaphireLattice, ScalyChimp, scrato, Scribbles0, ScumbagDog, Serkket, SethLafuente, ShadowCommander, Shadowtheprotogen546, shaeone, SignalWalker, Simyon264, SirDragooon, Sirionaut, siyengar04, Skarletto, Skrauz, Skyedra, SlamBamActionman, Slava0135, snebl, Snowni, SonicHDC, SoulSloth, SpaceManiac, SpeltIncorrectyl, spoogemonster, ssdaniel24, Stanislav4ix, Stealthbomber16, StrawberryMoses, Subversionary, SweptWasTaken, Szunti, TaralGit, Tayrtahn, tday93, TekuNut, TemporalOroboros, tentekal, tgrkzus, thatrandomcanadianguy, TheArturZh, theashtronaut, thedraccx, themias, Theomund, theOperand, TheShuEd, ThunderBear2006, timothyteakettle, TimrodDX, Titian3, TK-A369, tkdrg, tmtmtl30, tom-leys, tomasalves8, Tomeno, tosatur, Tryded, TsjipTsjip, Tunguso4ka, TurboTrackerss14, Tyler-IN, Tyzemol, UbaserB, UKNOWH, Uriende, UristMcDorf, Vaaankas, Varen, VasilisThePikachu, veliebm, Veritius, Verslebas, VigersRay, Visne, volundr-, Vordenburg, vulppine, Warentan, waylon531, weaversam8, whateverusername0, Willhelm53, wixoaGit, WlarusFromDaSpace, wrexbe, WTCWR68, xRiriq, Ygg01, YotaXP, youarereadingthis, YuriyKiss, zach-hill, Zandario, ZelteHonor, zerorulez, ZeWaka, zionnBE, zlodo, ZNixian, ZoldorfTheWizard, Zth--, Zumorica, Zymem +08A, 0x6273, 2013HORSEMEATSCANDAL, 20kdc, 21Melkuu, 4dplanner, 612git, 778b, Ablankmann, Acruid, actioninja, adamsong, Admiral-Obvious-001, Adrian16199, Aerocrux, Aexxie, Ahion, AJCM-git, AjexRose, Alekshhh, AlexMorgan3817, AlmondFlour, AlphaQwerty, Altoids1, amylizzle, ancientpower, areitpog, Arendian, arimah, artak10t, Arteben, AruMoon, as334, AsikKEsel, asperger-sind, astriloqua, avghdev, AzzyIsNotHere, BananaFlambe, BasedUser, BGare, bhespiritu, BingoJohnson-zz, BismarckShuffle, Bixkitts, Blackern5000, Blazeror, Boaz1111, BobdaBiscuit, brainfood1183, Brandon-Huu, Bright0, brndd, BubblegumBlue, BYONDFuckery, c0rigin, c4llv07e, CakeQ, CaptainSqrBeard, Carbonhell, casperr04, CatTheSystem, Centronias, chairbender, Charlese2, Cheackraze, cheesePizza2, Chief-Engineer, chromiumboy, Chronophylos, civilCornball, clement-or, Clyybber, ColdAutumnRain, collinlunn, ComicIronic, coolmankid12345, corentt, crazybrain23, creadth, CrigCrag, Crotalus, CrudeWax, CrzyPotato, Cyberboss, d34d10cc, Daemon, daerSeebaer, dahnte, dakamakat, DamianX, DangerRevolution, daniel-cr, Darkenson, DawBla, dch-GH, Deahaka, DEATHB4DEFEAT, DeathCamel58, deathride58, DebugOk, Decappi, degradka, Delete69, deltanedas, DerbyX, DmitriyMX, DoctorBeard, DogZeroX, dontbetank, Doru991, DoubleRiceEddiedd, DrMelon, drongood12, DrSmugleaf, drteaspoon420, DTanxxx, DubiousDoggo, Duddino, Dutch-VanDerLinde, Easypoller, eclips_e, EEASAS, Efruit, efzapa, ElectroSR, elthundercloud, Emisse, EmoGarbage404, Endecc, enumerate0, eoineoineoin, ERORR404V1, Errant-4, estacaoespacialpirata, exp111, Fahasor, FairlySadPanda, ficcialfaint, FillerVK, Fishfish458, Flareguy, FluffiestFloof, FluidRock, FoLoKe, fooberticus, forthbridge, Fortune117, freeman2651, Fromoriss, GalacticChimp, gbasood, Geekyhobo, Genkail, Git-Nivrak, github-actions[bot], gituhabu, GNF54, GoodWheatley, Gotimanga, graevy, GreyMario, gusxyz, h3half, Hardly3D, harikattar, Hebiman, Henry12116, HerCoyote23, HoofedEar, hord-brayden, hubismal, Hugal31, Hyenh, iacore, IamVelcroboy, icekot8, iczero, igorsaux, ike709, illersaver, Illiux, Ilya246, IlyaElDunaev, Injazz, InquisitivePenguin, Insineer, IntegerTempest, Interrobang01, IProduceWidgets, ItsMeThom, j-giebel, Jackal298, Jackrost, jamessimo, janekvap, JerryImMouse, Jessetriesagain, jessicamaybe, Jezithyr, jicksaw, JiimBob, JoeHammad1844, joelhed, JohnGinnane, johnku1, joshepvodka, jproads, Jrpl, juliangiebel, JustCone14, JustinTether, JustinTrotter, Kadeo64, KaiShibaa, kalane15, kalanosh, KEEYNy, Keikiru, Kelrak, kerisargit, keronshb, KIBORG04, KingFroozy, kira-er, Kit0vras, KittenColony, Klaypexx, Kmc2000, komunre, koteq, Krunklehorn, kxvvv, lajolico, Lamrr, LankLTE, laok233, lapatison, Leander-0, LetterN, Level10Cybermancer, lever1209, LightVillet, liltenhead, LittleBuilderJane, Lomcastar, LordCarve, LordEclipse, luckyshotpictures, LudwigVonChesterfield, Lukasz825700516, lunarcomets, luringens, lvvova1, lzimann, lzk228, M3739, MACMAN2003, Macoron, magmodius, MagnusCrowe, ManelNavola, matthst, Matz05, MehimoNemo, MeltedPixel, MemeProof, Menshin, Mervill, metalgearsloth, mhamsterr, MilenVolf, Minty642, Mirino97, mirrorcult, MishaUnity, MisterMecky, Mith-randalf, ModeratelyAware, Moneyl, Moomoobeef, moony, Morb0, mr-bo-jangles, Mr0maks, Myakot, Myctai, N3X15, Nails-n-Tape, Nairodian, Naive817, namespace-Memory, NickPowers43, nikthechampiongr, Nimfar11, Nirnael, nmajask, nok-ko, notafet, notquitehadouken, noudoit, noverd, nuke-haus, NULL882, Nylux, och-och, OctoRocket, OldDanceJacket, OliverOtter, onoira, Owai-Seek, pali6, Pangogie, patrikturi, PaulRitter, Peptide90, peptron1, pewter-wiz, Phantom-Lily, Phill101, PixelTheKermit, PJB3005, pofitlo, pointer-to-null, PoorMansDreams, potato1234x, ProfanedBane, ProPandaBear, PrPleGoo, Psychpsyo, psykzz, PuroSlavKing, PursuitInAshes, Putnam3145, quatre, QuietlyWhisper, qwerltaz, Radosvik, Radrark, Rainbeon, Rainfey, Rane, Ranger6012, ravage123321, rbertoche, Redict, RedlineTriad, RednoWCirabrab, RemberBM, RemieRichards, RemTim, rene-descartes2021, renodubois, revsys413, RiceMar1244, RieBi, RIKELOLDABOSS, Rinkashikachi, Rockdtben, rok-povsic, rolfero, Saakra, SadAways, Samsterious, SamV522, SaphireLattice, ScalyChimp, scrato, Scribbles0, ScumbagDog, Serkket, SethLafuente, ShadowCommander, Shadowtheprotogen546, SignalWalker, Simyon264, SirDragooon, Sirionaut, siyengar04, Skarletto, Skrauz, Skyedra, SlamBamActionman, Slava0135, Snowni, SonicHDC, SoulSloth, SpaceManiac, SpeltIncorrectyl, spoogemonster, ssdaniel24, Stanislav4ix, Stealthbomber16, StrawberryMoses, Subversionary, SweptWasTaken, Szunti, TaralGit, Tayrtahn, tday93, TekuNut, TemporalOroboros, tentekal, tgrkzus, thatrandomcanadianguy, TheArturZh, theashtronaut, thedraccx, themias, Theomund, theOperand, TheShuEd, ThunderBear2006, timothyteakettle, TimrodDX, Titian3, TK-A369, tkdrg, tmtmtl30, tom-leys, tomasalves8, Tomeno, tosatur, Tryded, TsjipTsjip, Tunguso4ka, TurboTrackerss14, Tyler-IN, Tyzemol, UbaserB, UKNOWH, Uriende, UristMcDorf, Vaaankas, Varen, VasilisThePikachu, veliebm, Veritius, Verslebas, VigersRay, Visne, Volotomite, volundr-, Vordenburg, vulppine, Warentan, waylon531, weaversam8, Willhelm53, wixoaGit, WlarusFromDaSpace, wrexbe, WTCWR68, xRiriq, Ygg01, YotaXP, youarereadingthis, YuriyKiss, zach-hill, Zandario, ZelteHonor, zerorulez, ZeWaka, zionnBE, zlodo, ZNixian, ZoldorfTheWizard, Zth--, Zumorica, Zymem From 691c3d55b801026f268225355e9c28ccc53825a4 Mon Sep 17 00:00:00 2001 From: Nemanja <98561806+EmoGarbage404@users.noreply.github.com> Date: Sat, 20 Jan 2024 20:25:52 -0500 Subject: [PATCH 47/66] Allow chemical-fueled generators to use multiple reagents (#24258) multi-reagent generators --- .../ChemicalFuelGeneratorAdapterComponent.cs | 18 +++----- .../Power/Generator/GeneratorSystem.cs | 44 +++++++++++++------ .../Power/Generation/portable_generator.yml | 3 +- 3 files changed, 39 insertions(+), 26 deletions(-) diff --git a/Content.Server/Power/Generator/ChemicalFuelGeneratorAdapterComponent.cs b/Content.Server/Power/Generator/ChemicalFuelGeneratorAdapterComponent.cs index 20d71493325..58e0e8b012a 100644 --- a/Content.Server/Power/Generator/ChemicalFuelGeneratorAdapterComponent.cs +++ b/Content.Server/Power/Generator/ChemicalFuelGeneratorAdapterComponent.cs @@ -2,6 +2,7 @@ using Content.Shared.Chemistry.Components.SolutionManager; using Content.Shared.Chemistry.Reagent; using Content.Shared.FixedPoint; +using Robust.Shared.Prototypes; using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype; namespace Content.Server.Power.Generator; @@ -13,11 +14,10 @@ namespace Content.Server.Power.Generator; public sealed partial class ChemicalFuelGeneratorAdapterComponent : Component { /// - /// The reagent to accept as fuel. + /// A dictionary relating a reagent to accept as fuel to a value to multiply reagent amount by to get fuel amount. /// - [DataField("reagent", customTypeSerializer: typeof(PrototypeIdSerializer))] - [ViewVariables(VVAccess.ReadWrite)] - public string Reagent = "WeldingFuel"; + [DataField] + public Dictionary, float> Reagents = new(); /// /// The name of . @@ -32,16 +32,10 @@ public sealed partial class ChemicalFuelGeneratorAdapterComponent : Component [DataField("solutionRef")] public Entity? Solution = null; - /// - /// Value to multiply reagent amount by to get fuel amount. - /// - [DataField("multiplier"), ViewVariables(VVAccess.ReadWrite)] - public float Multiplier = 1f; - /// /// How much reagent (can be fractional) is left in the generator. /// Stored in units of . /// - [DataField("fractionalReagent"), ViewVariables(VVAccess.ReadWrite)] - public float FractionalReagent; + [DataField] + public Dictionary, float> FractionalReagents = new(); } diff --git a/Content.Server/Power/Generator/GeneratorSystem.cs b/Content.Server/Power/Generator/GeneratorSystem.cs index a23b0b8eed2..fc6ac073400 100644 --- a/Content.Server/Power/Generator/GeneratorSystem.cs +++ b/Content.Server/Power/Generator/GeneratorSystem.cs @@ -1,4 +1,5 @@ -using Content.Server.Audio; +using System.Linq; +using Content.Server.Audio; using Content.Server.Chemistry.Containers.EntitySystems; using Content.Server.Fluids.EntitySystems; using Content.Server.Materials; @@ -81,7 +82,7 @@ private void ChemicalGetClogged(Entity en foreach (var reagentQuantity in solution) { - if (reagentQuantity.Reagent.Prototype != entity.Comp.Reagent) + if (!entity.Comp.Reagents.ContainsKey(reagentQuantity.Reagent.Prototype)) { args.Clogged = true; return; @@ -94,14 +95,21 @@ private void ChemicalUseFuel(Entity entit if (!_solutionContainer.ResolveSolution(entity.Owner, entity.Comp.SolutionName, ref entity.Comp.Solution, out var solution)) return; - var availableReagent = solution.GetTotalPrototypeQuantity(entity.Comp.Reagent).Value; - var toRemove = RemoveFractionalFuel( - ref entity.Comp.FractionalReagent, - args.FuelUsed, - entity.Comp.Multiplier * FixedPoint2.Epsilon.Float(), - availableReagent); - - _solutionContainer.RemoveReagent(entity.Comp.Solution.Value, entity.Comp.Reagent, FixedPoint2.FromCents(toRemove)); + var totalAvailableReagents = solution.GetTotalPrototypeQuantity(entity.Comp.Reagents.Keys.Select(p => p.Id).ToArray()).Value; + foreach (var (reagentId, multiplier) in entity.Comp.Reagents) + { + var availableReagent = solution.GetTotalPrototypeQuantity(reagentId).Value; + var removalPercentage = availableReagent / totalAvailableReagents; + var fractionalReagent = entity.Comp.FractionalReagents.GetValueOrDefault(reagentId); + var toRemove = RemoveFractionalFuel( + ref fractionalReagent, + args.FuelUsed * removalPercentage, + multiplier * FixedPoint2.Epsilon.Float(), + availableReagent); + + entity.Comp.FractionalReagents[reagentId] = fractionalReagent; + _solutionContainer.RemoveReagent(entity.Comp.Solution.Value, reagentId, FixedPoint2.FromCents(toRemove)); + } } private void ChemicalGetFuel(Entity entity, ref GeneratorGetFuelEvent args) @@ -109,9 +117,19 @@ private void ChemicalGetFuel(Entity entit if (!_solutionContainer.ResolveSolution(entity.Owner, entity.Comp.SolutionName, ref entity.Comp.Solution, out var solution)) return; - var availableReagent = solution.GetTotalPrototypeQuantity(entity.Comp.Reagent).Float(); - var reagent = entity.Comp.FractionalReagent * FixedPoint2.Epsilon.Float() + availableReagent; - args.Fuel = reagent * entity.Comp.Multiplier; + var totalAvailableReagents = solution.GetTotalPrototypeQuantity(entity.Comp.Reagents.Keys.Select(p => p.Id).ToArray()); + var fuel = 0f; + foreach (var (reagentId, multiplier) in entity.Comp.Reagents) + { + var availableReagent = solution.GetTotalPrototypeQuantity(reagentId); + var percentage = availableReagent / totalAvailableReagents; + var fractionalReagent = (availableReagent * percentage).Float(); + + var reagent = entity.Comp.FractionalReagents.GetValueOrDefault(reagentId) * FixedPoint2.Epsilon.Float() + fractionalReagent; + fuel += reagent * multiplier; + } + + args.Fuel = fuel; } private void SolidUseFuel(EntityUid uid, SolidFuelGeneratorAdapterComponent component, GeneratorUseFuel args) diff --git a/Resources/Prototypes/Entities/Structures/Power/Generation/portable_generator.yml b/Resources/Prototypes/Entities/Structures/Power/Generation/portable_generator.yml index d900d791d3e..d1f84f5b6e1 100644 --- a/Resources/Prototypes/Entities/Structures/Power/Generation/portable_generator.yml +++ b/Resources/Prototypes/Entities/Structures/Power/Generation/portable_generator.yml @@ -292,7 +292,8 @@ fuelEfficiencyConstant: 0.3 - type: ChemicalFuelGeneratorAdapter solution: tank - reagent: WeldingFuel + reagents: + WeldingFuel: 1 - type: SolutionContainerManager solutions: tank: From b3b64e6cf29f313a9782fb95ae8727f907b1836a Mon Sep 17 00:00:00 2001 From: Ed <96445749+TheShuEd@users.noreply.github.com> Date: Sun, 21 Jan 2024 04:31:12 +0300 Subject: [PATCH 48/66] The glowing forest anomaly (#24351) * sans * Papyrus * add to game * tweak stick * fixes * Update Resources/Prototypes/Entities/Objects/Misc/kudzu.yml Co-authored-by: Kara * Update Resources/Prototypes/Entities/Structures/Specific/Anomaly/anomalies.yml Co-authored-by: Kara --------- Co-authored-by: Kara --- .../Anomaly/Effects/TileAnomalySystem.cs | 5 -- .../Components/ConditionalSpawnerComponent.cs | 11 ++- .../Components/RandomSpawnerComponent.cs | 12 +-- .../EntitySystems/ConditionalSpawnerSystem.cs | 3 +- Content.Server/Spreader/KudzuComponent.cs | 15 ++-- Content.Server/Spreader/KudzuSystem.cs | 2 +- .../Effects/Components/TileSpawnAnomaly.cs | 8 +- .../Prototypes/Entities/Effects/mobspawn.yml | 46 +++++++++- .../Markers/Spawners/Random/anomaly.yml | 1 + .../Entities/Mobs/NPCs/living_light.yml | 20 ++--- .../Entities/Objects/Misc/kudzu.yml | 53 ++++++++++++ .../Structures/Specific/Anomaly/anomalies.yml | 81 +++++++++++++++++- .../Structures/Specific/Anomaly/cores.yml | 26 ++++++ .../Objects/Misc/kudzuflower.rsi/kudzu_11.png | Bin 0 -> 1425 bytes .../Objects/Misc/kudzuflower.rsi/kudzu_12.png | Bin 0 -> 1112 bytes .../Objects/Misc/kudzuflower.rsi/kudzu_13.png | Bin 0 -> 1072 bytes .../Objects/Misc/kudzuflower.rsi/kudzu_14.png | Bin 0 -> 1214 bytes .../Objects/Misc/kudzuflower.rsi/kudzu_15.png | Bin 0 -> 1112 bytes .../Objects/Misc/kudzuflower.rsi/kudzu_21.png | Bin 0 -> 1744 bytes .../Objects/Misc/kudzuflower.rsi/kudzu_22.png | Bin 0 -> 1343 bytes .../Objects/Misc/kudzuflower.rsi/kudzu_23.png | Bin 0 -> 1431 bytes .../Objects/Misc/kudzuflower.rsi/kudzu_24.png | Bin 0 -> 1362 bytes .../Objects/Misc/kudzuflower.rsi/kudzu_25.png | Bin 0 -> 1722 bytes .../Objects/Misc/kudzuflower.rsi/kudzu_31.png | Bin 0 -> 2065 bytes .../Objects/Misc/kudzuflower.rsi/kudzu_32.png | Bin 0 -> 1634 bytes .../Objects/Misc/kudzuflower.rsi/kudzu_33.png | Bin 0 -> 1930 bytes .../Objects/Misc/kudzuflower.rsi/kudzu_34.png | Bin 0 -> 1535 bytes .../Objects/Misc/kudzuflower.rsi/kudzu_35.png | Bin 0 -> 1982 bytes .../Objects/Misc/kudzuflower.rsi/meta.json | 56 ++++++++++++ .../Anomalies/Cores/flora_core.rsi/core.png | Bin 0 -> 268 bytes .../Anomalies/Cores/flora_core.rsi/meta.json | 25 ++++++ .../Anomalies/Cores/flora_core.rsi/pulse.png | Bin 0 -> 370 bytes .../Anomalies/flora_anom.rsi/anom.png | Bin 0 -> 1716 bytes .../Anomalies/flora_anom.rsi/bulb.png | Bin 0 -> 746 bytes .../Anomalies/flora_anom.rsi/meta.json | 44 ++++++++++ .../Anomalies/flora_anom.rsi/pulse.png | Bin 0 -> 1942 bytes 36 files changed, 368 insertions(+), 40 deletions(-) create mode 100644 Resources/Textures/Objects/Misc/kudzuflower.rsi/kudzu_11.png create mode 100644 Resources/Textures/Objects/Misc/kudzuflower.rsi/kudzu_12.png create mode 100644 Resources/Textures/Objects/Misc/kudzuflower.rsi/kudzu_13.png create mode 100644 Resources/Textures/Objects/Misc/kudzuflower.rsi/kudzu_14.png create mode 100644 Resources/Textures/Objects/Misc/kudzuflower.rsi/kudzu_15.png create mode 100644 Resources/Textures/Objects/Misc/kudzuflower.rsi/kudzu_21.png create mode 100644 Resources/Textures/Objects/Misc/kudzuflower.rsi/kudzu_22.png create mode 100644 Resources/Textures/Objects/Misc/kudzuflower.rsi/kudzu_23.png create mode 100644 Resources/Textures/Objects/Misc/kudzuflower.rsi/kudzu_24.png create mode 100644 Resources/Textures/Objects/Misc/kudzuflower.rsi/kudzu_25.png create mode 100644 Resources/Textures/Objects/Misc/kudzuflower.rsi/kudzu_31.png create mode 100644 Resources/Textures/Objects/Misc/kudzuflower.rsi/kudzu_32.png create mode 100644 Resources/Textures/Objects/Misc/kudzuflower.rsi/kudzu_33.png create mode 100644 Resources/Textures/Objects/Misc/kudzuflower.rsi/kudzu_34.png create mode 100644 Resources/Textures/Objects/Misc/kudzuflower.rsi/kudzu_35.png create mode 100644 Resources/Textures/Objects/Misc/kudzuflower.rsi/meta.json create mode 100644 Resources/Textures/Structures/Specific/Anomalies/Cores/flora_core.rsi/core.png create mode 100644 Resources/Textures/Structures/Specific/Anomalies/Cores/flora_core.rsi/meta.json create mode 100644 Resources/Textures/Structures/Specific/Anomalies/Cores/flora_core.rsi/pulse.png create mode 100644 Resources/Textures/Structures/Specific/Anomalies/flora_anom.rsi/anom.png create mode 100644 Resources/Textures/Structures/Specific/Anomalies/flora_anom.rsi/bulb.png create mode 100644 Resources/Textures/Structures/Specific/Anomalies/flora_anom.rsi/meta.json create mode 100644 Resources/Textures/Structures/Specific/Anomalies/flora_anom.rsi/pulse.png diff --git a/Content.Server/Anomaly/Effects/TileAnomalySystem.cs b/Content.Server/Anomaly/Effects/TileAnomalySystem.cs index 16f32f6f4b1..08ec3a1c938 100644 --- a/Content.Server/Anomaly/Effects/TileAnomalySystem.cs +++ b/Content.Server/Anomaly/Effects/TileAnomalySystem.cs @@ -1,13 +1,8 @@ -using System.Linq; using System.Numerics; -using Content.Server.Maps; using Content.Shared.Anomaly.Components; using Content.Shared.Anomaly.Effects.Components; using Content.Shared.Maps; -using Content.Shared.Physics; using Robust.Shared.Map; -using Robust.Shared.Physics; -using Robust.Shared.Physics.Components; using Robust.Shared.Random; namespace Content.Server.Anomaly.Effects; diff --git a/Content.Server/Spawners/Components/ConditionalSpawnerComponent.cs b/Content.Server/Spawners/Components/ConditionalSpawnerComponent.cs index 1910431eee3..5b98989bb3e 100644 --- a/Content.Server/Spawners/Components/ConditionalSpawnerComponent.cs +++ b/Content.Server/Spawners/Components/ConditionalSpawnerComponent.cs @@ -1,5 +1,4 @@ using Robust.Shared.Prototypes; -using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype.List; namespace Content.Server.Spawners.Components { @@ -8,15 +7,15 @@ namespace Content.Server.Spawners.Components public partial class ConditionalSpawnerComponent : Component { [ViewVariables(VVAccess.ReadWrite)] - [DataField("prototypes", customTypeSerializer: typeof(PrototypeIdListSerializer))] - public List Prototypes { get; set; } = new(); + [DataField] + public List Prototypes { get; set; } = new(); [ViewVariables(VVAccess.ReadWrite)] - [DataField("gameRules", customTypeSerializer: typeof(PrototypeIdListSerializer))] - public List GameRules = new(); + [DataField] + public List GameRules = new(); [ViewVariables(VVAccess.ReadWrite)] - [DataField("chance")] + [DataField] public float Chance { get; set; } = 1.0f; } } diff --git a/Content.Server/Spawners/Components/RandomSpawnerComponent.cs b/Content.Server/Spawners/Components/RandomSpawnerComponent.cs index ece17de974a..9bf4d6d2531 100644 --- a/Content.Server/Spawners/Components/RandomSpawnerComponent.cs +++ b/Content.Server/Spawners/Components/RandomSpawnerComponent.cs @@ -1,5 +1,4 @@ using Robust.Shared.Prototypes; -using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype.List; namespace Content.Server.Spawners.Components { @@ -7,15 +6,18 @@ namespace Content.Server.Spawners.Components public sealed partial class RandomSpawnerComponent : ConditionalSpawnerComponent { [ViewVariables(VVAccess.ReadWrite)] - [DataField("rarePrototypes", customTypeSerializer:typeof(PrototypeIdListSerializer))] - public List RarePrototypes { get; set; } = new(); + [DataField] + public List RarePrototypes { get; set; } = new(); [ViewVariables(VVAccess.ReadWrite)] - [DataField("rareChance")] + [DataField] public float RareChance { get; set; } = 0.05f; [ViewVariables(VVAccess.ReadWrite)] - [DataField("offset")] + [DataField] public float Offset { get; set; } = 0.2f; + + [DataField] + public bool DeleteSpawnerAfterSpawn = true; } } diff --git a/Content.Server/Spawners/EntitySystems/ConditionalSpawnerSystem.cs b/Content.Server/Spawners/EntitySystems/ConditionalSpawnerSystem.cs index 5248d512b89..66167465068 100644 --- a/Content.Server/Spawners/EntitySystems/ConditionalSpawnerSystem.cs +++ b/Content.Server/Spawners/EntitySystems/ConditionalSpawnerSystem.cs @@ -30,7 +30,8 @@ private void OnCondSpawnMapInit(EntityUid uid, ConditionalSpawnerComponent compo private void OnRandSpawnMapInit(EntityUid uid, RandomSpawnerComponent component, MapInitEvent args) { Spawn(uid, component); - QueueDel(uid); + if (component.DeleteSpawnerAfterSpawn) + QueueDel(uid); } private void OnRuleStarted(ref GameRuleStartedEvent args) diff --git a/Content.Server/Spreader/KudzuComponent.cs b/Content.Server/Spreader/KudzuComponent.cs index 36b1796b833..ed89a51a267 100644 --- a/Content.Server/Spreader/KudzuComponent.cs +++ b/Content.Server/Spreader/KudzuComponent.cs @@ -17,28 +17,33 @@ public sealed partial class KudzuComponent : Component /// /// Chance to spread whenever an edge spread is possible. /// - [DataField("spreadChance")] + [DataField] public float SpreadChance = 1f; /// /// How much damage is required to reduce growth level /// - [DataField("growthHealth")] + [DataField] public float GrowthHealth = 10.0f; /// /// How much damage is required to prevent growth /// - [DataField("growthBlock")] + [DataField] public float GrowthBlock = 20.0f; /// /// How much the kudzu heals each tick /// - [DataField("damageRecovery")] + [DataField] public DamageSpecifier? DamageRecovery = null; - [DataField("growthTickChance")] + [DataField] public float GrowthTickChance = 1f; + /// + /// number of sprite variations for kudzu + /// + [DataField] + public int SpriteVariants = 3; } diff --git a/Content.Server/Spreader/KudzuSystem.cs b/Content.Server/Spreader/KudzuSystem.cs index b59569b4e15..d15a2c667f4 100644 --- a/Content.Server/Spreader/KudzuSystem.cs +++ b/Content.Server/Spreader/KudzuSystem.cs @@ -92,7 +92,7 @@ private void SetupKudzu(EntityUid uid, KudzuComponent component, ComponentStartu return; } - _appearance.SetData(uid, KudzuVisuals.Variant, _robustRandom.Next(1, 3), appearance); + _appearance.SetData(uid, KudzuVisuals.Variant, _robustRandom.Next(1, component.SpriteVariants), appearance); _appearance.SetData(uid, KudzuVisuals.GrowthLevel, 1, appearance); } diff --git a/Content.Shared/Anomaly/Effects/Components/TileSpawnAnomaly.cs b/Content.Shared/Anomaly/Effects/Components/TileSpawnAnomaly.cs index 69209680bb2..7e3125ba201 100644 --- a/Content.Shared/Anomaly/Effects/Components/TileSpawnAnomaly.cs +++ b/Content.Shared/Anomaly/Effects/Components/TileSpawnAnomaly.cs @@ -1,7 +1,5 @@ using Content.Shared.Maps; using Robust.Shared.Prototypes; -using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype; -using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype.List; namespace Content.Shared.Anomaly.Effects.Components; @@ -11,7 +9,7 @@ public sealed partial class TileSpawnAnomalyComponent : Component /// /// The maximum radius of tiles scales with stability /// - [DataField("spawnRange"), ViewVariables(VVAccess.ReadWrite)] + [DataField, ViewVariables(VVAccess.ReadWrite)] public float SpawnRange = 5f; /// @@ -23,6 +21,6 @@ public sealed partial class TileSpawnAnomalyComponent : Component /// /// The tile that is spawned by the anomaly's effect /// - [DataField("floorTileId", customTypeSerializer: typeof(PrototypeIdSerializer)), ViewVariables(VVAccess.ReadWrite)] - public string FloorTileId = "FloorFlesh"; + [DataField, ViewVariables(VVAccess.ReadWrite)] + public ProtoId FloorTileId = "FloorFlesh"; } diff --git a/Resources/Prototypes/Entities/Effects/mobspawn.yml b/Resources/Prototypes/Entities/Effects/mobspawn.yml index c82adc7ba0f..20a205feb0c 100644 --- a/Resources/Prototypes/Entities/Effects/mobspawn.yml +++ b/Resources/Prototypes/Entities/Effects/mobspawn.yml @@ -57,4 +57,48 @@ sprite: /Textures/Effects/mobspawn.rsi state: crab_uranium - type: SpawnOnDespawn - prototype: MobUraniumCrab \ No newline at end of file + prototype: MobUraniumCrab + +- type: entity + id: EffectAnomalyFloraBulb + noSpawn: true + components: + - type: TimedDespawn + lifetime: 0.4 + - type: Sprite + drawdepth: Effects + noRot: true + layers: + - shader: unshaded + map: ["enum.EffectLayers.Unshaded"] + sprite: Effects/emp.rsi + state: emp_disable + - type: EffectVisuals + - type: Tag + tags: + - HideContextMenu + - type: AnimationPlayer + - type: RandomSpawner + deleteSpawnerAfterSpawn: false + rareChance: 0.2 + offset: 0.5 + chance: 1 + prototypes: + - FoodAmbrosiaVulgaris + - FoodAmbrosiaDeus + - FoodBlueTomato + - FoodAloe + - FoodCabbage + - FoodCarrot + - FoodGalaxythistle + - FoodGatfruit + - FoodLemon + - FoodLemoon + - FoodLime + - FoodPeaPod + - FoodPineapple + - FoodOnionRed + - FoodWatermelon + rarePrototypes: + - MobLuminousEntity + - MobLuminousObject \ No newline at end of file diff --git a/Resources/Prototypes/Entities/Markers/Spawners/Random/anomaly.yml b/Resources/Prototypes/Entities/Markers/Spawners/Random/anomaly.yml index 3b5d33ee06d..6d2149965f7 100644 --- a/Resources/Prototypes/Entities/Markers/Spawners/Random/anomaly.yml +++ b/Resources/Prototypes/Entities/Markers/Spawners/Random/anomaly.yml @@ -18,5 +18,6 @@ - AnomalyIce - AnomalyRock - AnomalyLiquid + - AnomalyFlora chance: 1 offset: 0.15 # not to put it higher. The anomaly sychnronizer looks for anomalies within this radius, and if the radius is higher, the anomaly can be attracted from a neighboring tile. diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/living_light.yml b/Resources/Prototypes/Entities/Mobs/NPCs/living_light.yml index 52a0a1c5897..e7ed489cb0f 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/living_light.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/living_light.yml @@ -33,7 +33,7 @@ - type: MobThresholds thresholds: 0: Alive - 100: Dead + 50: Dead - type: DamageStateVisuals states: Alive: @@ -70,15 +70,15 @@ types: Heat: -0.2 - type: NoSlip + - type: Pullable - type: ZombieImmune - type: NameIdentifier group: GenericNumber - type: GhostTakeoverAvailable - type: PointLight - color: "#e4de6c" - radius: 8 - softness: 2 - energy: 5 + radius: 3.0 + energy: 4.5 + color: "#6270bb" - type: FootstepModifier footstepSoundCollection: collection: FootstepBells @@ -105,7 +105,7 @@ - type: MeleeWeapon damage: types: - Heat: 16 + Heat: 10 animation: WeaponArcFist - type: StaminaDamageOnHit damage: 16 @@ -127,7 +127,7 @@ - type: MobThresholds thresholds: 0: Alive - 50: Dead + 30: Dead - type: DamageStateVisuals states: Alive: @@ -139,7 +139,7 @@ - type: MeleeWeapon damage: types: - Heat: 8 + Heat: 6 - type: Destructible thresholds: - trigger: @@ -167,7 +167,7 @@ - type: MobThresholds thresholds: 0: Alive - 60: Dead + 40: Dead - type: DamageStateVisuals states: Alive: @@ -181,7 +181,7 @@ types: Heat: 5 - type: HitscanBatteryAmmoProvider - proto: Pulse + proto: RedLaser fireCost: 140 - type: Battery maxCharge: 1000 diff --git a/Resources/Prototypes/Entities/Objects/Misc/kudzu.yml b/Resources/Prototypes/Entities/Objects/Misc/kudzu.yml index 5f3f8bb5cb6..2c643bc57de 100644 --- a/Resources/Prototypes/Entities/Objects/Misc/kudzu.yml +++ b/Resources/Prototypes/Entities/Objects/Misc/kudzu.yml @@ -103,6 +103,59 @@ - type: Kudzu spreadChance: 0.3 +- type: entity + id: KudzuFlowerFriendly + name: floral carpet + suffix: Friendly, Floral Anomaly + description: A colorful carpet of flowers sprawling in every direction. You're not sure whether to take it down or leave it up. + parent: Kudzu + components: + - type: Sprite + drawdepth: FloorObjects + sprite: Objects/Misc/kudzuflower.rsi + state: kudzu_11 + - type: Kudzu + spriteVariants: 5 + spreadChance: 0.01 + - type: SlowContacts + walkSpeedModifier: 0.8 + sprintSpeedModifier: 0.8 + ignoreWhitelist: + components: + - IgnoreKudzu + - type: RandomSpawner + deleteSpawnerAfterSpawn: false + rareChance: 0.3 + offset: 0.2 + chance: 0.1 + prototypes: + - FloraTree01 + - FloraTree02 + - FloraTree03 + - FloraTree04 + - FloraTree05 + - FloraTree06 + - FloraTreeLarge01 + - FloraTreeLarge02 + - FloraTreeLarge03 + - CrystalCyan + rarePrototypes: + - AnomalyFloraBulb + +- type: entity + id: KudzuFlowerAngry + suffix: Angry, Floral Anomaly + parent: KudzuFlowerFriendly + components: + - type: Kudzu + spreadChance: 0.4 + - type: RandomSpawner + chance: 0.2 + rarePrototypes: + - AnomalyFloraBulb + - MobLuminousEntity + - MobLuminousObject + - type: entity id: FleshKudzu name: tendons diff --git a/Resources/Prototypes/Entities/Structures/Specific/Anomaly/anomalies.yml b/Resources/Prototypes/Entities/Structures/Specific/Anomaly/anomalies.yml index fdda7ea0a4a..dabfd810341 100644 --- a/Resources/Prototypes/Entities/Structures/Specific/Anomaly/anomalies.yml +++ b/Resources/Prototypes/Entities/Structures/Specific/Anomaly/anomalies.yml @@ -208,7 +208,6 @@ types: Radiation: 10 - - type: entity id: AnomalyIce parent: BaseAnomaly @@ -290,6 +289,86 @@ - WallSpawnAsteroid - SpawnMobOreCrab +- type: entity + id: AnomalyFlora + parent: BaseAnomaly + suffix: Flora + components: + - type: Sprite + drawdepth: Mobs + sprite: Structures/Specific/Anomalies/flora_anom.rsi + layers: + - state: anom + map: ["enum.AnomalyVisualLayers.Base"] + - state: pulse + map: ["enum.AnomalyVisualLayers.Animated"] + visible: false + - type: PointLight + radius: 8.0 + energy: 8.5 + color: "#6270bb" + - type: Anomaly + animationTime: 6 + offset: 0.05, 0 + corePrototype: AnomalyCoreFlora + coreInertPrototype: AnomalyCoreFloraInert + anomalyContactDamage: + types: + Slash: 0 + - type: TileSpawnAnomaly + floorTileId: FloorAstroGrass + spawnRange: 10 + - type: EntitySpawnAnomaly + maxSpawnAmount: 30 + spawnRange: 10 + superCriticalSpawns: + - KudzuFlowerAngry + spawns: + - KudzuFlowerFriendly + +- type: entity + id: AnomalyFloraBulb + name: strange glowing berry + parent: BaseStructure + description: It's a beautiful strange glowing berry. It seems to have something growing inside it... + suffix: Flora Anomaly + components: + - type: Transform + anchored: true + - type: Physics + bodyType: Static + - type: Fixtures + fixtures: + fix1: + shape: + !type:PhysShapeCircle + radius: 0.2 + - type: InteractionOutline + - type: Damageable + damageContainer: Biological + damageModifierSet: Diona + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 1 + behaviors: + - !type:DoActsBehavior + acts: [ "Destruction" ] + - !type:SpawnEntitiesBehavior + spawn: + EffectAnomalyFloraBulb: + min: 1 + max: 1 + - type: PointLight + radius: 2.0 + energy: 4.5 + color: "#6270bb" + - type: Sprite + noRot: true + sprite: Structures/Specific/Anomalies/flora_anom.rsi + state: bulb + - type: entity id: AnomalyLiquid parent: BaseAnomaly diff --git a/Resources/Prototypes/Entities/Structures/Specific/Anomaly/cores.yml b/Resources/Prototypes/Entities/Structures/Specific/Anomaly/cores.yml index 6679b2d5333..928516f21b2 100644 --- a/Resources/Prototypes/Entities/Structures/Specific/Anomaly/cores.yml +++ b/Resources/Prototypes/Entities/Structures/Specific/Anomaly/cores.yml @@ -135,6 +135,19 @@ castShadows: false - type: Electrified +- type: entity + parent: BaseAnomalyCore + id: AnomalyCoreFlora + suffix: Flora + components: + - type: Sprite + sprite: Structures/Specific/Anomalies/Cores/flora_core.rsi + - type: PointLight + radius: 1.5 + energy: 2.0 + color: "#6270bb" + castShadows: false + # Inert cores - type: entity @@ -255,3 +268,16 @@ energy: 2.0 color: "#ffffaa" castShadows: false + +- type: entity + parent: BaseAnomalyInertCore + id: AnomalyCoreFloraInert + suffix: Flora, Inert + components: + - type: Sprite + sprite: Structures/Specific/Anomalies/Cores/flora_core.rsi + - type: PointLight + radius: 1.5 + energy: 2.0 + color: "#6270bb" + castShadows: false diff --git a/Resources/Textures/Objects/Misc/kudzuflower.rsi/kudzu_11.png b/Resources/Textures/Objects/Misc/kudzuflower.rsi/kudzu_11.png new file mode 100644 index 0000000000000000000000000000000000000000..10b9c0e59a2aa0d8353a90e167ad09d8522840e8 GIT binary patch literal 1425 zcmV;C1#bF@P)Px)OG!jQR9JcNG78Lmz5Z-3pRP?vyC?M~W@_;EXNoA-ioE%wm18DP${= zvaQfj>PyT107+gZVS?KjErmj(4&1TuKCwY@l^m1f$w_6f z4hN$?)zjgqlKU(NxOZy_TU7&*a1?8Mg(o=|@aOfLV0O7M8EliA0i#mFn*KiEp`=Rg zK676!L_FX)IVaHzrqE%+*wz6*roeZYflM!#X?nR#*-VP2m&^2GebaOI)3Xz#j`sKp zlRDZ%^5nZ&mIX=hWa|af?t38ct>aKgX~yLjRJfHzNxu!qGy<1BNDb0BE zdK1t7`Ue1flLJ8i*dT5`e&(x=yO~ibA(2!m!2OeZQ#Ie=?-&2#)3$vGDb2Rjx`Xg6 z+dtLvA9C+S4=OMqASr&!PcOIN*QSX*dPk| zBCMK)uP>d&frH;QyeYu@*Uy&$z^Pn~P;E$v#UwY%A zmu1GYCJ`3lZ2EW)Z;(DbLcdi#n^c_Ci}06fe+5Rq`yk%W^UJ^L}z zcb+)r=~3~OO}$<)g&e2RU?LV*s4LM;>Szxg8E7LJ2;klM(s!PaJF)z~JMEIb2;^a8 zy;ox=!7Y*fjRMQDT8_6n&dV0?J0zQSBQLlm%*KZ#mVx@UbVmT3faP`Y^fByTCmcC& z7=?Th>Dh^0wLd*OLH%Qc0P6j=YL-1mvAANlPyoP@fi@cXrr#qvBLn9luVcV_k=j^Y z!BAf>fcl{E!okU9MdX6qTXZBGtqT#~Y3>t0(Xz43Zmh1@EXl(qZ#}%W9ctQRZ&&9d zpE+&>7ikZbT$#HS{J?lN8Oh|umKk|_wAG=O_iioO=d+m)Ca5c zVyA<)MnU-vaSxl{`b_36|%!nH;m^=CX)Q^9t%Dx?iXlnSHP-7<%Yz_L-y4&wb fHwgEyE&%u+6+Q~7cl+4e00000NkvXXu0mjff^fIs literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Misc/kudzuflower.rsi/kudzu_12.png b/Resources/Textures/Objects/Misc/kudzuflower.rsi/kudzu_12.png new file mode 100644 index 0000000000000000000000000000000000000000..ded87828507bc1a523936870c40ce845583b775e GIT binary patch literal 1112 zcmV-e1gHCnP)HsKtN?L8FU|j36CmS8AIUMiI0aEL()oqB7d}df)YZ&+py2Z?pr$ zn|JTI=l^`?zQ70_>DUvVIeEfdx;mOO9=dnuT$r_|G%(m1;#quL%H+NE^h#KsSulaS zF}v_3^?rNoa=5xZXRh~+Y^c~(4u|kRzq`fmwYToI@(&$vHKj=T%8!+G1IS$Y_A&7k z%1d+aEu(83c(yidF~3*-ChIth-&}dg8k;=LlHD)H=cZzrZ;G#Tfj?x^A=XO5h=WgF zOp4AA!G03ibuh{nh2VphClnCuGYXV~d^b%|8B?;>YaWQ_c z`x%;soek#bz_Cz`u*#$J{2xFN!>>dm;5n4@kb3PBQbM{mbT>&M6fyrQ2hj>t85p&4 zu|8KGO;Tjv<9sU7tI~XW9Y)~EDEkagiZIIv3eWNyM6WajN?B1(8K6dFDQEAN9?s<4 zb5P*6uuHCUDFX`k&xfV?@-I1zT6&$xG8V#R}h_T`PR{nX8zYpg~Xks_c4+RwgF z6Bo31T?1J0D<*H=E-cnGmRP}P1n6gNK{vGUWZcuwN?P$q!*b=T*I39);5>>3(iUjm zUGKsCC!?QzM&QX}^A)YHPSRaq*03L*G)9UM9jtRrDGTW~;$aa|U*H~K?g*9Yol+Lk zY0D|kzMwvp`>F_F162#M%*NF0ea*X%V1)8iK7H_FO`ub7xVOs;UwmXesHI$uK%F!? zt>yA42tjUsuqAm9bea_=rxNhl=<hZ2vEO~6 z-_*U!uNPT#R)Gvk+WOkeGO(z;l&Y~L0;R1C#YhpMlyLnkDpK(E%V6Rj`&^-&GIdyaXMuf21zB{wDizm->F{!^ e-<|ulc>e*iP)VBr$4u)00000k7RCt`7SIshNx^yeb82Pv1T?AB$h*bKz48=PKo$RNUUV z#$+58>zWn(-1eb{qKN|hgS z@b@5i#(V9cXX%ydpUq&S-bAHXqi2uviz#>p<)^&?smM+cm6i1ksrmcTy#v8n8b_r3 zzaYvwI!yp#f@>!W(YB*!-@a+8Q zG*EfACl?7fL##!6stwuu;5{MyS96rCJMon zme!jJOnb`|4o(cpR`DztL??(JdK7fW~<^sc0%@Tk5d) z^_&yk*4lWa1~hVgsU!t~|2Ah345GufMxEKl8vqpYq*bkjHNXmIe&G<96K$>8GXj95 z1A{C;U6>SIbhZ+vqUw_wfY@G!H14n4&UrLMs?>&b&$^0^z)Gs}?H1PSx@8H(vkz!P zFs`p&O`%Ybx!NxUUpWNfcJW8Kz8<+HA$1^4OlTY8wHb_Rs_1a|#k)F|;C|@%?$aIB3%kh^{oJ4pasp#U;xouUTaYD!b`!Xu4+;{9O=7{}z58M-9zmy1C$dLg2j0pt3> zAh_&uF3h=}7qwUR$W75Tg7b*f`29)w@cd1K2ded1-Zfr~&;;oK0000St&AfT{-gCZl&Uel|uP~7_Uk|y1d$!oOKisP6`=5UO-rb#iWGf3zo11x_td&Wb zo&!fVyMaxgTm6?tay|htcxuq5?$389?0My^x4+kxZNRQxKI(FSS1+G+59j~2=8LD{ ze=y=faP7{$>F^%w_>X7mhyX6#{?0YL@#UAxVUrpeAG=Zu>vK;GhPY0{G{ES*35??4iLp^zSzEK_^{17bpbn<*(3!&t2-+&bpCjf-9C$@^kek=eyQSr~#vH>q zqXpn|_B`x^r!zi<4eyBR)b!7SQLj{9~!aWD>VR=fw`!JCci zjQmmM&>8sBP9H_V7J7i;Ct@hvTC7R(j6+c1A07CD{fo{2jG(BG4&1puk(8y9J#c^r zU>v`Q!s1*lD%|Q1=Xut$#QuC;9l#pW)b#oRgzpKqP;xN}>%D=x-=Hb%a-I}cAz(84{LqErKt@doDn)08Zi0P%yLKmK{ayel zKn!vrB^nJa-74W8q_?W9O98Nk*h^0Le!QY*Ix>^F+5_^-M3oUlh=@!H2Fdnzv(8rLz7?-9AOKEX>#2a~RiNW)e(a;4vsouVxm cQuZzRKmXFA&$&-51^@s607*qoM6N<$f~)>U>;M1& literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Misc/kudzuflower.rsi/kudzu_15.png b/Resources/Textures/Objects/Misc/kudzuflower.rsi/kudzu_15.png new file mode 100644 index 0000000000000000000000000000000000000000..ded87828507bc1a523936870c40ce845583b775e GIT binary patch literal 1112 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 l5!EyGTRH&1tm&~*;BcUmleheb zOpU)}XFvO{re{YFAGP-PY3WSK0W3~TkGrAghwSafJ1#bW3r?Ru;dZy3>7K98zwfSZ z{bt!8w~BkrJArSkwXUv*d933%zUf?W;MJ2y+~Rw)_Qk2MYCkNm+FWzq(#}nbBjv?Y z{<}W;M%aUBX@KaAjBUB>_OBsotZ{zh+Lm!I&f&hE1BYHQES_8b#KD2VKmW4y(zTj5 zQi%pG0UBK&Q8zb?d7MxEJv)zg?DV@QiYRp+d*K+-O7P==hxGoxyCEVBz=`pB^Fl2g z&gbDZ4hDnA&6ya-z&;px`Y`i%3|c(TbP*NUPIwt2ni_r4S{^zWA(4jv-nAJ&e;_v= zbE0Dpir?6GecN*(&o^NPn%u+S=zLN{;hn%CLWhgn5s5Tfp20fySMHN_o+}W{N1_)3 z67^6$)^Xe}5yF zrm8E^%Vs}X2t}xI=4i+rVWotS%cYASxODSgFjQ4oU~tr*ry-uBBM5Y2d%UP4Nkhmr zkQbQyp0U($s0q1*;Lwwue@vCY9BWiqSLyYmx$0PJ5`|o4*L~QVQwhDC3>Grf!U89> zIzoneu8KRTH$X69{t$79#ybI2y7|VgmnD=z<2W?8JYOm-AR6ZD)8qE^*_uydPm*UZ z?Xf>D*F>xe75DYDn~asDu(B2}ss2UA`64gZl#lx)ENg zOgM*#2M%rqV}bF9w;Ut~gp}b`{J|QbXZ=tK7o}L4$~4gPxu)xDOu%;Z5&8m7=JkHR zelSQlN>4%(@s&b*HtXB7);B9*j{MNZgwfJ4{&GE&egculed3IF0wc|xD^dXO@cy$s zL!L-Xs)4y>v@{;W%9e|DU}WrdJJ*~KYRhsoOdZfF2qS=+4d+CjYd%J?rZHmH(=oi9 zs2e!TCKrvbK4OVR!bw~d@_BN`+9Ji))vQnoA0ZMAb7|xlo^3jYpx`K#LRpq%$cjeD zmpl(Rw9VRM``#O&0mKL)n1wfAv&zRvpH>ivWMV$+A5J^e_RhwIK4(gj%e!Q%hbVEd zw|La41@+(`oREUJXCE26>GY-3{M}f)QR6GzX2Vd*3eqz z1!Z<^!L9gGtoyarQ-Uzc0u~dMh$WO3J7T^APdo=W7uS52VmKBz8cZRa(2}j?S)crJ zL*l(s*>R2$ajzDp`2RwMx!p`l1x(95Q&Um_Mq1JB?B@iLe~D?O UQ;4KJi~s-t07*qoM6N<$f(>PcOaK4? literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Misc/kudzuflower.rsi/kudzu_25.png b/Resources/Textures/Objects/Misc/kudzuflower.rsi/kudzu_25.png new file mode 100644 index 0000000000000000000000000000000000000000..2598af3d4fe637fd9afe0015cf80b8dfc749f6d2 GIT binary patch literal 1722 zcmV;r21WUaP)Px*bV)=(R9JK9t!$7)>&VACof;Shx^(+mc4;+FZXmc7oE2iKA27{TK=zh z@Jr4CATp{lms{a3x55X;`namkA-j}CVPIwS!{t^u02t{cLP0<8>A%4S#`?G#OCY=P|(jQBVW5m{FW1-?C4z}I$N@(bRGa~F1NysbP|oHF2SLc zBV*>^y)cf9nZsmi0qRhU$=N%r>tUpmXzgx;&EXVAoz?ZAjJ+4e(HWe8Ln%jvyT8b} zTqT>O6abcAuj0j{w*Y|a{YMcB`nh}v0Cde{wiOP0r5%TShed{)>>Di3UdES^F>?q+ zXZiffYLT7DsLF)%k(m_Fm^r+7^cLULeucWGEjW8%50j(THIupA3U^l50{|ME8=&fQ zs9NDL(n&b0>(SCP2-(h?`FGfLWGfs>xv&QS17m$$izPmTkk+mvTLAzWGlxRwls(+Y zXB`8o00F#ThsH6PT7W|-2R_-UYpOxU%;9?fQQ;#H?zMm$05HF@Y60NLOp423`M)KD zFc9t)HcGwsbTxBoov6U0KYF0X=K;VHt+TowI?OLRrz#ogB!;h^=jS>uvp^VJ)#r-d z``SJHpz~Yw4BcP=z~p(p_2407P*V11jy795hf&^#TLBW-@OF=QP{f%QjkD;sz(w)AK_PCs*}342<>hUrzpRsT?gLGFp*Q zmC2Q{h|$H4%Z##=34;PGeD)+V#j;CTXrH*A_LT~RTH|Z?Si}i{bwp@WsqrI@r;#n? z2*{7&z*wK9m1NK5R=B6DS!j$+R>9$`=Su=>=ZRX2!O7HupxBX_ln^m;uIh8Re>)B! zKl2~9eQl{w)e0A_u@P7RVEFDmQ7T!*c5d4NEtU{~BT9Yo=q+Bxmn~(M5f1>_r7To^ z4z1m7VxN&tifR`1OD;XlDgYev9p?5*JJg{VBi&ejy(+l=qPLN)$C@^W6LhxF2OAjc zDCPKm&kk|c(^OkjQD3{K$T3u!jYr zv%Icp3+kG-AYS!Kg*C7!R0dHg`#j&LWk8dvG&HOuYL7hx3U-wh8l}h>)K_=4x-`P z0D$4=&nz}}o~Y&fPws~?Slo6|1z8mX(OF*jUjE)I{AOJ5i-~@d3I@WxVo%Zai+;;o z@TF_k_OgxQi%7m3$~r=Joz?Xq4*B=_v*No$DKRO`iu9a7R+#a6)m(4ye`=n;p`gjf Q;{X5v07*qoM6N<$f)8gxVE_OC literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Misc/kudzuflower.rsi/kudzu_31.png b/Resources/Textures/Objects/Misc/kudzuflower.rsi/kudzu_31.png new file mode 100644 index 0000000000000000000000000000000000000000..59beb95b95b52365a55efe2bf91c64325df807c2 GIT binary patch literal 2065 zcmV+s2=4cZP)Px+%Sl8*R9J;=mtjm)*%ilsZ*~%3D&izKni({s5oD-C@Pj%^V(mCU+Eq%4k-@Mv zu+;8mu>{vHq-m4(3xRaEhLyxDaW&HzL1GN6_5(0ZHYUo@G+mpqjJU*o5#K~--6Dd+ zn3#F}Fx=bs!1HC^-1pu&_n!0rpZ|FPbYDBA?+aGyKEF%v>uuICSogJ4df>w<9YEYO zuD#8IO#waF6foWQ`CXcG`cM~)P^olAk!iQpV9KFxt^c0OX)x0XU6Ip)f?$8}Y zoa}kNLTWBW?ay`-j@~CVmtwOu4}gj)uW4rq)K&rKh^F1+#8P(@a@26x1lEDOvGk+Rcyyt zuJ+E0O5uV|CaD5o@%dePMU|K5`Erx1P6o)*)V4M7_{|cF(^F)UD$$6hwCpNXl3JRI zBcI|Z`wffJQ!*ow6(tNd1#~qLm)DA@V`?tNp`&}aIXp=wsZ!h4z|G-F8g`a25t~K4 zRCoNSX@k}6{Uo(C55NAN4cpdIP?Q6J!Dc1th{ zU|#v=q0B@yqA4(}i%qE0QzW%C4p%Po+t%`I<|PG1>v6bpIse)FGR-QWCgMaRn&R`j z^sJw(S;FVWmGHT7B^uF`kggRuYq7hATJ3W-w zmvepSBf9D;l#$Qh#o@}u;mS3EF&fbnk(s%g|Lzlub%|XHa=zR(oboP2TNt#>xdYkp#-p%|Y_E@I6 zPD{(39y#ct`;WJoUj~@Nl`Ee!;vqbgt*`I{S?UVlsiExJ;tF-4hdW!cHkjeaw%NI@}K(@bh3xlI$s~kUmvt&m1 z@?iwcH(T@Mn#JKJ8qt(!L{luRu>GZ5aJX_A`TSjyS{ftrpUw{Ot6%#8q~p6ocNEKl zPV2{CvM*SvH`Y`mN)zzy$ku(iGiLG?$qr%Gl}P>IlS33PWHA^X{hdht?ex%otdfpT&r3h=h>J)6eDvqtrCa}`CgME!_kZ~Lp`SAQ!yNyeo#(~EbKFi3 z2kQMiN$WUs3Mp&smcgIRyu@m?N+J5{Y6k$XAAgI-^J8XznB&bmKVt6b45N4dWjcri zp`ey9(eL+qHzC@t$Vz#AIp;rnABQVfYC!Rx0{QN-ma{VT#JrJK|0lIH*M~lmR28Ns;*5lbDO}J^sTXmq;vu)wLllj^ z-ex`D-^oDdK~D7Ek^mE^&sw$xU%qfsuJ?pGberAAK<7cmmK9HQ%)Q=C5=V_S)h0|S zkX6FQnrb;Ph``1nqpPk$3YVIQlPt)i^}SktU;kIb#o2$It?$)xz5j~bwa@R;>wf!p39ym_*&$<~^Pmj0W_uX`0pAX~j-QcP$SjX` zk?|OTn!m{RPW0Ylf9V#s<>yH1MJzlJIH(bg7(gfN>8Xmr{K7x6=YSh=@(mZ zJ3WY$S{!a{cH1iI+UzzNT$E7YWvs8wG?rNwr>98Gr3gpwGZCAW<2mquWY35A;FCjG z9B$M^90Ax&QkD8{oC^-Si)4WLC$D+<_4h!w%|Cv#WSWXBMn`HQE*%LixOeq5c~4)M zdbn{sE3YqSaCA(L>yVwG^QQYus_Jm%a`jdmo82abOVY6J_)*I1%d@(EZd_^DSpq;; zU4=4qDXa{Rj`5TAYvsv|4bauexM@-2k4hwn+bRTvXaYKCqtQILT(Fj%m5}bnTM(zvR9v0HP?1#5)z-Ymy vfbR3VbaAgI)M5HGH{M(6>usOtEB*WroHRPdl`vcV00000NkvXXu0mjfOT`_+ literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Misc/kudzuflower.rsi/kudzu_32.png b/Resources/Textures/Objects/Misc/kudzuflower.rsi/kudzu_32.png new file mode 100644 index 0000000000000000000000000000000000000000..6640797aad08b285299bebd7e2776021b24a2811 GIT binary patch literal 1634 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 Q`2YX_07*qoM6N<$f|QiYXaE2J literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Misc/kudzuflower.rsi/kudzu_34.png b/Resources/Textures/Objects/Misc/kudzuflower.rsi/kudzu_34.png new file mode 100644 index 0000000000000000000000000000000000000000..cc226a2721907749ba4c897600a2f8e8b5bca416 GIT binary patch literal 1535 zcmV)8cYa%7f}k&!=Hs$E zwEy>h$2|&}%)Y4iM&23`IAWFJKNMq)4IdYA#^ufr3uUMQpUf;|RB-iy)VF^Vc>46@ z(Qs(9bVsd*lHK~Bx|e@_G`!#1YZ*;P8g6eO>Q*$dh-k_ELH4@SL%9(l`xTHncwqHG z-}6#QDaXa)&$ophmAw#ztyJ03d$J)i0q?vcSU_dsz4I}{1!JJE?(ShlxR~>oxF{T6 zZ2CQhCjWjxVLse$38*^dGzt*UIW!5qh1&9?{@3r}cLaeprV!qA)>9EYhjL!Be1U;g z*$Kjd9K3CM@2w++lpK;Y0@PT5vTJWN2&bauU;a=5ZEsiNOEXhq`9cEH5gJcJfE5&1 zeW-|@9pWt8#!KmB0}iBn};>xfUWkj1CXTy;>v02~gA9k*U|D@$W%=ZSt(1 zvFB{a;3*8}dn`-f`ciAJ>9d1r9wE24YC|E#x{lqAI}!84@5)j*{fgi`L%@)s;FLW{ zv;B`W6f!QMZqP`O5@**<4T;nfcUbe*L&}#pTyzR301FV`yVy|S*x#*Y)F>E)w4(PU z-Wv`CY@*2tKxQxh-gT*mD{omWN-ZRSv-IJ+fevI2w*)s6>^py5K>%bh${eoy_BKBoH%-pyZcH=~3Bw%?~c{l5_5o=deb(rJz89||qk^5fc-S%LRl zI2%ea3k;qC56A=W0W+qcPQ?i!(t6N06}+6jJfvlvo)S?Ym{uMTz#-Or63*6u1kAdU zCAeBykim?2OKK42lG>jvSm z)K~_tMaWMILV7WlY)Du+M?{-S?eR)t^b82M9d7dUg)sfnQ*sK9guz98A)+81tz37r z%CUe9Yk2dCB*wE5=Q+ctf~7S(!!BNEVN3mk^*$U=^oK@f5umV*y42G5_aZ-#Qp^EN~9jD5iT zgF~cK)uS%RX_ACC-hhvM7$2>bFC&qFdh9MMW zYeA=RTYS8g;XX4s8&W2}1!x$W+kt6z&kQ83c(vws%y}$4fUGoA4&Mq;q=$S1vL74F l^+fJhcGSV5|Hh!4{{UTs*ZG#21TFvo002ovPDHLkV1fn^+?N0V literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Misc/kudzuflower.rsi/kudzu_35.png b/Resources/Textures/Objects/Misc/kudzuflower.rsi/kudzu_35.png new file mode 100644 index 0000000000000000000000000000000000000000..379ae4c176dad2a7341084d16082853b5cd08244 GIT binary patch literal 1982 zcmV;v2SNCWP)Px+cu7P-R9J;|mt9O#X&T3Wry-GcMV7>=8w#Xr5U0cvyjTU@Y$i}36UPo3L(6Pu zi7wI14kHm~12+?IHUxIvm^viRvZIC#Bb6A^bXoB{6GKaIqW@=FIxMW1VBldP59eS3xKw+3!=5JNwoGgi6h>l z0>JBY2>|_>{#uIH=MwT+`Hbt63d1wH!cv%it!_8es# zAQFygYqL`-8(K-3O-SQbTRQRBx>9JhrPJA5P9z-DygrwRE=(sKt*apvnIv>=Nb|R! z7BWg%4p-G*u-ejRigxv1Q`1b=rdC;@RrP7H%3mn5=dp;aIW+#T8B! z{flQS?8)DS)t1g?Jc(Oe}56wpeYxr`4@;3_$Q zCCj2vAD{XgR$IE#^XuQ{0x;-rP&kshELj#*8-DfYeuih}xOL+*K05Oy0E_dT-0ipx zKy6hejmd2M z1Wg52>%p$OWhT%q|7Gd`Q47&)K*n;$eD-#)(8@`JNFkV zUE@O&iXS#JG&HZzB}$#iH1!M&s)%5VAN0L0L1xLa5V|&GASKVi0;S_^F^JZJ65oe=fg}mZ==A};t!pzLMct4N z{J1ZR{@yVj21c~Dt_xx_L*sGZV}ru#x*Eu=Gel^$rL#ESNq_GcoAIc@Xe1m{x_l&Sy z=T(MAbzKdSa7;6JsaR20qksH848WZS(~8|>i$3}8C42IBvF~su@z^>o)x`=Ek|lcv z2GwlIOEUxTpZ~tWl4YT+!nsufIb`H@sWX?JfkDo;KS(i{nX|({+wyw+&gTTWLk8O3 zPVCtZ<%A~ZwlpZCUz?pG5{_xEPb$PmXTBsJTW9(C1}~niQ1IS6%CO8x@anM?LwX$O zjh8xeX>7i!0md$HH+TpSO^{eh@IlRC1xA3j;JDBmJXM~YAHy?q#AEANZRy;)@fpYM zIR+r>_XB-aq$4KjWh5NaB+qZgqv-j%EjTX5?|g2k|M1KltzQiDbZl8EO)MqQ19|U> zeDUMHETRk31iC|7BplPEz39R;Jp+Rn`ctMwf=6Et$r1K!2bGN-DJ8iZ_*7-f>vIV` zqe|8sy?;r3|8fP{+JWv+vI|=KnnZu^7@mU#G&bMVWLL<@WSQ*Q4vJ0|VKV(Lr6a7i zbT#)!?_UxZE`LpJRVB9{J;9P?VfU&qta_3w(qL=U-hT9i?GWs4@X+5oMxZ;Sy~@x8 z{4s@|_3PUg-#!FjbYh$?ZAc+Go@vJ2;9+!Po=7;RMHi-7o1Iep0m(rnBj1z1ix1a99h^@pNpN%$ywnoGN#apRq%s{8fgg5N=+4&FI8D#T8EEz>yv0^|?gxsmpA~ zA-)gy8ovv6uL{*-a>zh(O?!LV!T+D}o`VHy;#Hr&NAT(~1EuS??UcEH>DMsXWwJ~r*#Yhb4?P2e4A0DAp7mq3rK|Ky33l}w zz$iaL{Oza3?p2|TLy{Fkkx7b97V)-my%<)i4{8ppeJ|M6OZEACv{VZ-YB!vQg=l&=|3`M4~HU?xEnl}XZ^}^z41smrs<8BI&%&0L2|l!4i>OB zJEaJ#zjw@#oz}i4p=u**_%JY{Nl=Ea4H>4TTw1oH=}0)X?R(qdL;vjm0PPx##z{m$R9J=W)2|MKP!z}UFBVK90SvHNoSRR;X0o{X9A*NQC$JjGK8Ksd+p6#6bJKMP+gb+e>unrC?jA8{4MzLB42i0|!*5&c(!UCX5 zY7AEg;BqY3ZI`X*_1ZR!CIbL$r_X#f#&-IR`qu+&d{3*A8p|9q8<|+Px$EJ;K`RCt{2+C2_}FciS?hYJ&v9>7HI;+eS%CL92#PE2)btPN3+(pS>|FL9Lj zL8*pU5dZ)H;6pczHpgovcZB4_9J^t(y_wSH-J8j}Ptw3a4r{-2+8We#|M4^;BGNW> zwe_0c%r!d9VU53&^%HnJjoh!7T?-H6x?;D+-Mj)~B(YYk;zc4gAf>jcE5C5nO}ZOK ztNkm{n@Kl^T$-R6AMTHb=ABSqi8(C89CA=obn)=85&!@I002Po)Mo~2!T0d(b<q1F%Ui636aq4+>|{H(tZr#D}GZFVLA&4dqEbs2>`Ib3q*b#XgtcK QtN;K207*qoM6N<$f{QVrv;Y7A literal 0 HcmV?d00001 diff --git a/Resources/Textures/Structures/Specific/Anomalies/flora_anom.rsi/anom.png b/Resources/Textures/Structures/Specific/Anomalies/flora_anom.rsi/anom.png new file mode 100644 index 0000000000000000000000000000000000000000..c71c52652df01a49bf76feeac3b5a4670faa6833 GIT binary patch literal 1716 zcmV;l221&gP)Px*Zb?KzRCt{2noUm|M;OQdPBz#`uwIA73$cr^Sz{#%v_ckeisD|w%CfpFkU zRO%r}mG}g`TqLlac>kW?0G5{t^j4Ja}pHtYBWQtZ^p_ON+2v7s3C)cGYe|rzySc@ zyR!fQhv-LEiMQMdtiz2q0QEcJOucYwd?vMyOllp40|y+UACbjy%cCEhSx_CK9}dwE z)&`P8^jA2j7S-$k7S4BPQ7rDGPr3xYJF7Ro9j`!SF>Hw}hApfO%><$53c;BLl^PhH zji`dqi(GCG0NT>^jSA03^hjrwIDp0iP;(DpAD&g>$mRAR2))QEaX3VOz1*giRpJnY zUj4jL8|oSZj0Q+Dub;CKX|;$&L1;!bJ0Lt8QR#PW?m7S^n{4JKW@V}WyjL|GN=~-9}IB1Y`PHuPGxE|1^_?>Kc6h=_cp>m(gDGl z1=S-5FnYBgPL~Z2))d&?RxHgg!y^ZDAZcTD7kGc~WXOw+)!n96Xk-Hg!0EE#>BBr8 z{Cw|J`E?C~zyI(I9ytI>=HYbN;FWp+03JDj%|ui)0>JcysP&q!zJx~()V(;N#!~>M zCq$&Ti-7j-8b$FFd}_~?i_J~~q2DQXO@w%9?3oI_=T(2LDPw4&Zg&u^4Zk!Cq8 zzt-oUVK4duB76Z6=@)-gz}QBo5(VUwB^_L?q3r$a@%T-*_N(HAdigAyz0RJqukKO& zvn<@^;?deF@|kt0DFu65WyqoPK$5$a%4Fx8;oEqwX}*OFAdmP0A^_lN zRDn1oV)*j6*ouAgAp)<4F?D6`P}Co-t)jTEEeMR)ss7+)ZPwk1m7zRW@Oa~|j`Q_( z02u>71pskKgu|&-b~pi>Q@d4JiDE0Zr5hui*N*L7z(4y6-u7s7^uu3o1Au=0LePfC z-zVV=kVfw5vfe!6|sJmqp(`D?$%6PK!@{p0mbQun(W<)Wq{YV6-dSoy~ z@ubGLlV8=MV!Di{QAIz0?=cks26qRJG+y1+B0^xc-q?+!>vfV})dAJIDf^C&-57w) z$yIory!&M3Wkp@%yIqUg$#3YN6dJWzuNu7GQk^EhDP!5`s~rvhuklTpGG)q?sgGO@ zf32nCcJB$Y{Ep-Y&@M53qGI>x+u@9k<_C}>i(!j#kG^o=(DMfx`2t*vI+`CqA`jCZ zeV=p*#o|8r?kvc-Mn8ksqK@SU7)8+lw6C$b++KwNY(7CN)b{)Uqi7tU#*-1GR*wfA z%@1I`FUkC&#$q!)RlOZp%N*o?JpnsCSHg{dmA!y2?8u>t*@&i~ffmqT0d_Gyi zWXOwrvV`y{ZjaZ>|8VUT^8>1Zoh}>he7BBkbJvkimh^qORH6Xi)MxsB9BofGI~KG$ zKj7F`fcEDnLtaczh{z{PSejqf-#g!wz2bh_s$zF+o0$$-KII1(^AqfDD;%O9cW?is zZ-`EYyby$5)UqZydmNlikce*-@c7`7PSknb6tr2_5hz>y@)ZNfCH-q z{m!8i`5$e504v{=9sYm|4$+UL`Q=Y1KY(mA?ofX+`2pILP{Q4I#pX$oeTl^CM0000< KMNUMnLSTaCJwBTN literal 0 HcmV?d00001 diff --git a/Resources/Textures/Structures/Specific/Anomalies/flora_anom.rsi/bulb.png b/Resources/Textures/Structures/Specific/Anomalies/flora_anom.rsi/bulb.png new file mode 100644 index 0000000000000000000000000000000000000000..d06908204373e43e96cd30a88e52a77270547ead GIT binary patch literal 746 zcmVPx%q)9|URCt{2n!irlP!z^LSC()kRD?wSHVY(VDe>fiHB2aC;0<_=J^{~>H^@+- zPR-gOQ=kh3=#T<&D@t<5LPAblCO6=?VoqKZbu_J!~!!QiPFw7f8 zQ@N;qa4h`C+Fw2^&9!KKT}60ze-CS=760jBQ1eR0JoIA^tREZ;uW70QgMQgt(8`=yT3QFOjU`}-^#5j>&HrfAIkRC;7R53 z#Q61-#1WYQvsxAaFz7wvq5u3Uh@kJA6>BC{5T#FxSJj``1W6PC%%c)++ARPU0J+Dg z6#b%fe$ab-HCOliGImc$Q$H{$vsxD0)&}lv`CS-?*sNH{RXzZ~q%J%re%P?NANm|XL5#`} zxb6W|j($j3bL7}!-9We5pK9T0>qkBabi~CvVC>CACH#>u^Jd1}-8+{lE%1eYtfIaeqC}xZ(b##Z1GZ z^=FD%Eemf$du#d(!!QiPFbu;m46|ggKR`v8{Q+1We?U_GME(FG$@}?P=zEW)>JK2& z_6baSE3C?Y?+-|-&;Ee0AlM(k{s8s|us?u4vp<0S0qhT8e?WBT><^g8qTkOiTAyJU chFMnr0pGxPSw<7m=Kufz07*qoM6N<$g3q2`p#T5? literal 0 HcmV?d00001 diff --git a/Resources/Textures/Structures/Specific/Anomalies/flora_anom.rsi/meta.json b/Resources/Textures/Structures/Specific/Anomalies/flora_anom.rsi/meta.json new file mode 100644 index 00000000000..31c0fc14e07 --- /dev/null +++ b/Resources/Textures/Structures/Specific/Anomalies/flora_anom.rsi/meta.json @@ -0,0 +1,44 @@ +{ + "version": 1, + "license": "CC0-1.0", + "copyright": "Created by TheShuEd (github) for ss14", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "anom", + "delays": [ + [ + 0.38625, + 0.38625, + 0.38625, + 0.38625 + ] + ] + }, + { + "name": "pulse", + "delays": [ + [ + 0.25625, + 0.25625, + 0.25625, + 0.25625 + ] + ] + }, + { + "name": "bulb", + "delays": [ + [ + 0.25625, + 0.25625, + 0.25625, + 0.25625 + ] + ] + } + ] +} diff --git a/Resources/Textures/Structures/Specific/Anomalies/flora_anom.rsi/pulse.png b/Resources/Textures/Structures/Specific/Anomalies/flora_anom.rsi/pulse.png new file mode 100644 index 0000000000000000000000000000000000000000..06580ddfe33887d0be077dcc1234286c3ccb30ad GIT binary patch literal 1942 zcmV;H2Wj|;P)Px+P)S5VRCt{2nomd@Sscf|S!B(j7+N&$nzS@TgR)e@B6um$BHdCcNI_UiQ9)bi zVGrV-ENIb!?y2-z`~z(eFG5==x*}2=Jgn4%*n=U72&-AvD3;hB;v&o*lHbdF^M6up z+THnH#F@Yzx_cKSt#gx)uc}^O$Th{{ml(nC zKMVl?CZ4XLrz?nwr)vO!nnoA45~I@VSN*KPD>p_ZUv&d6-#(92GK2KakM{U8d?k%*cdi3~^!io5>rLSJJGV-Nc~~Og^{;NiPY+k3_eGcJ%mT(|w9g^Zd%{GE`QVp{CKr_?GU1 z%Ug=r(jEfM73}={_#9Gyt>NXHXP8;sV8>%idqTh@YQyZK(A~Qr1)3|6-Z?rI{x?Pe ztVG5!v$z45w-f+C!H{xyK~Q?<2!ZAb1ez=0@|MEoEk#YE3pI@{OPwb^1+K=YyKcnq z=?bE!E2!Y>P9g*cfR4d_0YCu(KzmCa%f9>^0JuF)EKh9%F#qhE;kUQcv14*Re+~df z1|q6_VGba0{yEK0CT&ffEC`pk6mE|bp<16Jc!IYzb+Tjbsv!8uN=wA2VcXH1?{s*0 zlnry@1Aza`x7hsnPr-bafbQM}>GJLKh_9qsw)kN9XUy$!!sD(G0^k$U*3^lYZ=M0j z-kDsm5&+FW_!Wovy9q8CgZ-FU++cTh^WbClZ?5xhj}xh6hIPJUu%G=lH<7CH9Rv?F zSEx=LG@SXNO$qRyJ0o-=65T?m)+bCxB)Vhaq34PqsPoiuGkkvZZ616?GL?-zmCPvE z{55xPJrejObmy0+wi&pl(Io)*Ne}=+wLZ2y0YEafhfu9g=sZ7BxxA&qzMwwfm)2vO zEcw*=%IdP*ULntwCxR4-Zn06AOzkN;uEw8OSyS*GlmN=!{P>(AdulT+C4f3c0rJl( zi62?C46V-I!+LDf!4G`^xO?l7f~B_7(1=pw^An~K-$4`4R$>(ZaIWkH03g1)kMaxU z`01A?m>-{mBl7~g2N%&X*slpEg@;E0vL+Q#JLt3~HK0C7mv2mBHM zlwT;vSvT-L1)OyQ(db1svFI&%@*pT++8t65yNN@#Bw69}GQ+3In0AM9zUquzAMi`{ zU0z6g$L!cz#H$$ES^1gL?{NNX~(+U}?D-5#gvW2M)w;oBf-^6^#2^3=9wN9pcc{o-SV zKQa&zHcE0nEp1lXHJt#G+v5~oO@Zu}p405STt($~_by12Z==$0FV@&!y>D=*!B2cR zV*JF1qtD7`K}^1lN|SG+pC68V5{lA!K8T{hzW}~1TefW3vSrKGS1;QiU<8*}R{^kB zQlt7jc?v{X_Xnsc65TT8PcY&e`U7ejU5Kxwh59^wl^L7v!`)k=KOj`=6TaHW%WPKt z0YKiLKy8rB_!ErynhD4Ur|%B{fFFMRS-N)TI#S6DW|AB1ck+Pwpo~U9p?m z@dv2MDqm5h1@gm&Z%AJAlUHcv6=AB(0EPPl zEk%8vtSB_>mN;V)*;Dw0@ppD?x(_1*4FK-3AVRf1;C9}hpvISXT+N?ghJWqOb;OqP z{8O#ZQ#Ds!pXa~hTjjre^Gws60YETFY4JbFAHb_ne*islR{a5H%JVc*C<#XXgc3lk zo2|z-9rXdfRCUD(Y3~@{yK^U^c_)^U`1*W!cvPs*1KF)@pt%Cwx$US~zEN?O)YjCg z$_K#w&e<*Tf@H}baFX@;o~{r^mhuznN%489`4g6Ne3I=CP-{%9KJWH8H3J}7tN_1MEwDU)aQ%MKQVs*y>OhSKj1X@C*lv_*Hx?SeQo@r*XN7vPhde5vp!#Je*z2Q czu*t}7h*C(#S4&WqyPW_07*qoM6N<$g6h?|3IG5A literal 0 HcmV?d00001 From 8f1d67014cc3c261ffba31226c6d6f89b0ce3d3d Mon Sep 17 00:00:00 2001 From: PJBot Date: Sun, 21 Jan 2024 01:32:18 +0000 Subject: [PATCH 49/66] Automatic changelog update --- Resources/Changelog/Changelog.yml | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) diff --git a/Resources/Changelog/Changelog.yml b/Resources/Changelog/Changelog.yml index 6fa02995d3f..85319bd9de7 100644 --- a/Resources/Changelog/Changelog.yml +++ b/Resources/Changelog/Changelog.yml @@ -1,15 +1,4 @@ Entries: -- author: Bhijn and Myr - changes: - - message: Speech bubbles now display the name of whatever or whoever spoke them! - The options menu has a setting to disable this outright, or add a background - to the name for the sake of accessibility, for anyone who would like those options. - type: Add - - message: The bubbles associated with emotes and LOOC now display exactly what - the associated message prints in your chatbox. - type: Tweak - id: 5259 - time: '2023-12-04T23:10:49.0000000+00:00' - author: brainfood1183 changes: - message: Clowns can now craft the Banana Clown outfit. @@ -3791,3 +3780,10 @@ id: 5759 time: '2024-01-20T23:38:27.0000000+00:00' url: https://api.github.com/repos/space-wizards/space-station-14/pulls/24328 +- author: TheShuEd + changes: + - message: Added new Floral anomaly! + type: Add + id: 5760 + time: '2024-01-21T01:31:12.0000000+00:00' + url: https://api.github.com/repos/space-wizards/space-station-14/pulls/24351 From b126aadd9cb867e9d64e10acce48d759385c1659 Mon Sep 17 00:00:00 2001 From: Krunklehorn <42424291+Krunklehorn@users.noreply.github.com> Date: Sun, 21 Jan 2024 01:32:47 -0500 Subject: [PATCH 50/66] Cancel CanBuckle before popup for foldable items (#24358) * Cancel CanBuckle before popup for foldable items * Moved to FoldableSystem --- Content.Shared/Foldable/FoldableSystem.cs | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/Content.Shared/Foldable/FoldableSystem.cs b/Content.Shared/Foldable/FoldableSystem.cs index 7bf00a5d243..6f2e9f3ee5e 100644 --- a/Content.Shared/Foldable/FoldableSystem.cs +++ b/Content.Shared/Foldable/FoldableSystem.cs @@ -1,4 +1,5 @@ using Content.Shared.Buckle; +using Content.Shared.Buckle.Components; using Content.Shared.Storage.Components; using Content.Shared.Verbs; using Robust.Shared.Containers; @@ -26,6 +27,8 @@ public override void Initialize() SubscribeLocalEvent(OnInsertEvent); SubscribeLocalEvent(OnStoreThisAttempt); SubscribeLocalEvent(OnFoldableOpenAttempt); + + SubscribeLocalEvent(OnBuckleAttempt); } private void OnGetState(EntityUid uid, FoldableComponent component, ref ComponentGetState args) @@ -61,6 +64,12 @@ public void OnStoreThisAttempt(EntityUid uid, FoldableComponent comp, ref StoreM args.Cancelled = true; } + public void OnBuckleAttempt(EntityUid uid, FoldableComponent comp, ref BuckleAttemptEvent args) + { + if (args.Buckling && comp.IsFolded) + args.Cancelled = true; + } + /// /// Returns false if the entity isn't foldable. /// From b057ec61044c5a55e021dd3cd8f5974f7e7b1a2a Mon Sep 17 00:00:00 2001 From: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com> Date: Sun, 21 Jan 2024 17:41:10 +1100 Subject: [PATCH 51/66] Content grid merging (#22448) Mainly fixing thruster bugs --- .../Shuttles/Systems/ThrusterSystem.cs | 51 ++++++++++++------- Resources/engineCommandPerms.yml | 1 + 2 files changed, 33 insertions(+), 19 deletions(-) diff --git a/Content.Server/Shuttles/Systems/ThrusterSystem.cs b/Content.Server/Shuttles/Systems/ThrusterSystem.cs index 09607381c7a..73e1ab0bebe 100644 --- a/Content.Server/Shuttles/Systems/ThrusterSystem.cs +++ b/Content.Server/Shuttles/Systems/ThrusterSystem.cs @@ -45,7 +45,6 @@ public override void Initialize() SubscribeLocalEvent(OnThrusterShutdown); SubscribeLocalEvent(OnPowerChange); SubscribeLocalEvent(OnAnchorChange); - SubscribeLocalEvent(OnThrusterReAnchor); SubscribeLocalEvent(OnRotate); SubscribeLocalEvent(OnIsHotEvent); SubscribeLocalEvent(OnStartCollide); @@ -151,9 +150,9 @@ private void OnActivateThruster(EntityUid uid, ThrusterComponent component, Acti private void OnRotate(EntityUid uid, ThrusterComponent component, ref MoveEvent args) { // TODO: Disable visualizer for old direction + // TODO: Don't make them rotatable and make it require anchoring. if (!component.Enabled || - component.Type != ThrusterType.Linear || !EntityManager.TryGetComponent(uid, out TransformComponent? xform) || !EntityManager.TryGetComponent(xform.GridUid, out ShuttleComponent? shuttleComponent)) { @@ -176,22 +175,44 @@ private void OnRotate(EntityUid uid, ThrusterComponent component, ref MoveEvent // Disable if new tile invalid if (component.IsOn && !canEnable) { - DisableThruster(uid, component, xform, args.OldRotation); + DisableThruster(uid, component, args.OldPosition.EntityId, xform, args.OldRotation); return; } var oldDirection = (int) args.OldRotation.GetCardinalDir() / 2; var direction = (int) args.NewRotation.GetCardinalDir() / 2; + var oldShuttleComponent = shuttleComponent; - shuttleComponent.LinearThrust[oldDirection] -= component.Thrust; - shuttleComponent.BaseLinearThrust[oldDirection] -= component.BaseThrust; - DebugTools.Assert(shuttleComponent.LinearThrusters[oldDirection].Contains(uid)); - shuttleComponent.LinearThrusters[oldDirection].Remove(uid); + if (args.ParentChanged) + { + oldShuttleComponent = Comp(args.OldPosition.EntityId); + + // If no parent change doesn't matter for angular. + if (component.Type == ThrusterType.Angular) + { + oldShuttleComponent.AngularThrust -= component.Thrust; + DebugTools.Assert(oldShuttleComponent.AngularThrusters.Contains(uid)); + oldShuttleComponent.AngularThrusters.Remove(uid); + + shuttleComponent.AngularThrust += component.Thrust; + DebugTools.Assert(!shuttleComponent.AngularThrusters.Contains(uid)); + shuttleComponent.AngularThrusters.Add(uid); + return; + } + } - shuttleComponent.LinearThrust[direction] += component.Thrust; - shuttleComponent.BaseLinearThrust[direction] += component.BaseThrust; - DebugTools.Assert(!shuttleComponent.LinearThrusters[direction].Contains(uid)); - shuttleComponent.LinearThrusters[direction].Add(uid); + if (component.Type == ThrusterType.Linear) + { + oldShuttleComponent.LinearThrust[oldDirection] -= component.Thrust; + oldShuttleComponent.BaseLinearThrust[oldDirection] -= component.BaseThrust; + DebugTools.Assert(oldShuttleComponent.LinearThrusters[oldDirection].Contains(uid)); + oldShuttleComponent.LinearThrusters[oldDirection].Remove(uid); + + shuttleComponent.LinearThrust[direction] += component.Thrust; + shuttleComponent.BaseLinearThrust[direction] += component.BaseThrust; + DebugTools.Assert(!shuttleComponent.LinearThrusters[direction].Contains(uid)); + shuttleComponent.LinearThrusters[direction].Add(uid); + } } private void OnAnchorChange(EntityUid uid, ThrusterComponent component, ref AnchorStateChangedEvent args) @@ -206,14 +227,6 @@ private void OnAnchorChange(EntityUid uid, ThrusterComponent component, ref Anch } } - private void OnThrusterReAnchor(EntityUid uid, ThrusterComponent component, ref ReAnchorEvent args) - { - DisableThruster(uid, component, args.OldGrid); - - if (CanEnable(uid, component)) - EnableThruster(uid, component); - } - private void OnThrusterInit(EntityUid uid, ThrusterComponent component, ComponentInit args) { _ambient.SetAmbience(uid, false); diff --git a/Resources/engineCommandPerms.yml b/Resources/engineCommandPerms.yml index 423da9cdc8f..b425d06099c 100644 --- a/Resources/engineCommandPerms.yml +++ b/Resources/engineCommandPerms.yml @@ -67,6 +67,7 @@ - scene - replay_recording_stats - print_pvs_ack + - merge_grids - Flags: MAPPING From fda8035a5ebdb0f04283d5e82b23837f9b74ac21 Mon Sep 17 00:00:00 2001 From: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com> Date: Sun, 21 Jan 2024 18:15:12 +1100 Subject: [PATCH 52/66] Make radarcontrol use approx grids (#24360) --- Content.Client/Shuttles/UI/RadarControl.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Content.Client/Shuttles/UI/RadarControl.cs b/Content.Client/Shuttles/UI/RadarControl.cs index 764fb854a74..eaf73b18ee8 100644 --- a/Content.Client/Shuttles/UI/RadarControl.cs +++ b/Content.Client/Shuttles/UI/RadarControl.cs @@ -198,7 +198,7 @@ protected override void Draw(DrawingHandleScreen handle) var shown = new HashSet(); _grids.Clear(); - _mapManager.FindGridsIntersecting(xform.MapID, new Box2(pos - MaxRadarRangeVector, pos + MaxRadarRangeVector), ref _grids); + _mapManager.FindGridsIntersecting(xform.MapID, new Box2(pos - MaxRadarRangeVector, pos + MaxRadarRangeVector), ref _grids, approx: true, includeMap: false); // Draw other grids... differently foreach (var grid in _grids) From 60dd9f8951ae1bc742fde9122bf6da2a7a2c1f17 Mon Sep 17 00:00:00 2001 From: Nemanja <98561806+EmoGarbage404@users.noreply.github.com> Date: Sun, 21 Jan 2024 02:36:03 -0500 Subject: [PATCH 53/66] Fix keyboard sounds not playing when opening a computer UI (#24348) Fix keyboard sounds not playing on UI open --- Content.Server/Sound/EmitSoundSystem.cs | 6 +++--- .../Machines/Computers/base_structurecomputers.yml | 2 ++ 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/Content.Server/Sound/EmitSoundSystem.cs b/Content.Server/Sound/EmitSoundSystem.cs index e4f9ebcb436..3c7713b305c 100644 --- a/Content.Server/Sound/EmitSoundSystem.cs +++ b/Content.Server/Sound/EmitSoundSystem.cs @@ -29,7 +29,7 @@ public override void Update(float frameTime) { if (soundSpammer.PopUp != null) Popup.PopupEntity(Loc.GetString(soundSpammer.PopUp), uid); - TryEmitSound(uid, soundSpammer); + TryEmitSound(uid, soundSpammer, predict: false); } } } @@ -44,12 +44,12 @@ public override void Initialize() private void HandleEmitSoundOnUIOpen(EntityUid uid, EmitSoundOnUIOpenComponent component, AfterActivatableUIOpenEvent args) { - TryEmitSound(uid, component, args.User); + TryEmitSound(uid, component, args.User, false); } private void HandleEmitSoundOnTrigger(EntityUid uid, EmitSoundOnTriggerComponent component, TriggerEvent args) { - TryEmitSound(uid, component); + TryEmitSound(uid, component, args.User, false); args.Handled = true; } } diff --git a/Resources/Prototypes/Entities/Structures/Machines/Computers/base_structurecomputers.yml b/Resources/Prototypes/Entities/Structures/Machines/Computers/base_structurecomputers.yml index 5aa602aedd9..a5e26463b99 100644 --- a/Resources/Prototypes/Entities/Structures/Machines/Computers/base_structurecomputers.yml +++ b/Resources/Prototypes/Entities/Structures/Machines/Computers/base_structurecomputers.yml @@ -52,6 +52,8 @@ - type: EmitSoundOnUIOpen sound: collection: Keyboard + params: + volume: -1 - type: ContainerContainer containers: board: !type:Container From 2cf77d3a5795d2fa308607f58cf952d92b0e7603 Mon Sep 17 00:00:00 2001 From: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com> Date: Sun, 21 Jan 2024 18:59:47 +1100 Subject: [PATCH 54/66] Update submodule to 207.1.0 (#24361) --- RobustToolbox | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/RobustToolbox b/RobustToolbox index 0cf842cacce..bcaa97a79be 160000 --- a/RobustToolbox +++ b/RobustToolbox @@ -1 +1 @@ -Subproject commit 0cf842caccebb43aa06ac05f76eb5dc89196dfe0 +Subproject commit bcaa97a79be1afb9823832a790dbf9b5512965cd From a2d5d74b46060d330e5aa14e166692f32dcce7a9 Mon Sep 17 00:00:00 2001 From: Ed <96445749+TheShuEd@users.noreply.github.com> Date: Sun, 21 Jan 2024 11:58:40 +0300 Subject: [PATCH 55/66] Star Wars 14: Shuttle weapon update (#23644) * setup codebase * make auto-fire, but its broken * collider problem * fix rate, add toggle port * add laser * power cages * ginormous cells * fix inhand * add pirate cannon * salvage gun * functional Nuke cannon * rewrite to standart grenade * fix naming, add emp sprite * grenade cartridge * thruster fix * nuke cannon * audio + visual polish * balance tweak * tweaks * laser balance tweak: new Electronic damage modifier set, reduce structural cannon damage * resprite energy cages, start implementing in game * fix cage recharger craft * add small laser gun * fix colliders * add lasers and ptk to research and crafting * finish implementing weapon to rnd and sec * some fixes * splitted grenades and cannon balls * integrate new cannon balls * tweaks stick * move circuits to sectechfab, fix * fix? * add ability to E shoot, without signals * fix! * fix?!?! and naming tweak * go! * Lank fix * oh * mornings don't start with coffee. * the morning starts with bug fixes. * fucking bugs! * finally * it is now possible to craft projectiles separately from cartridges * +2 fix * refactor * piu * More weight * add AutoShootGunComponent * move autoshoot to partial * SetEnabled() * some fixes * remove CanShootWithoutUser field * remove null-checks ToCoordinates from AttemptShoot() * war without reason * return to home * ? * forgot remove it * review * Fix formatting and update path --------- Co-authored-by: metalgearsloth --- .../Components/GunSignalControlComponent.cs | 24 ++ .../Systems/GunSignalControlSystem.cs | 46 +++ .../PneumaticCannon/PneumaticCannonSystem.cs | 4 +- .../Ranged/Systems/GunSystem.AutoFire.cs | 29 ++ .../Weapons/Ranged/Systems/GunSystem.cs | 4 +- .../Components/AutoShootGunComponent.cs | 14 + .../Weapons/Ranged/Components/GunComponent.cs | 1 - .../Systems/SharedGunSystem.AutoFire.cs | 11 + .../Weapons/Ranged/Systems/SharedGunSystem.cs | 22 +- .../Locale/en-US/research/technologies.ftl | 2 + Resources/Prototypes/Damage/modifier_sets.yml | 10 + .../Circuitboards/Machine/production.yml | 110 +++++ .../Entities/Objects/Power/powercells.yml | 136 +++++++ .../Guns/Ammunition/Magazines/grenade.yml | 87 ++++ .../Weapons/Guns/Ammunition/explosives.yml | 42 +- .../Weapons/Guns/Launchers/launchers.yml | 2 +- .../Weapons/Guns/Projectiles/hitscan.yml | 17 + .../Weapons/Guns/Projectiles/projectiles.yml | 47 +++ .../Structures/Machines/Computers/frame.yml | 2 +- .../Entities/Structures/Machines/lathe.yml | 19 + .../Entities/Structures/Power/chargers.yml | 40 ++ .../Entities/Structures/Shuttles/cannons.yml | 375 ++++++++++++++++++ .../Structures/Shuttles/thrusters.yml | 18 +- .../Prototypes/Recipes/Lathes/electronics.yml | 51 +++ .../Prototypes/Recipes/Lathes/powercells.yml | 28 ++ .../Prototypes/Recipes/Lathes/security.yml | 36 ++ Resources/Prototypes/Research/arsenal.yml | 38 ++ Resources/Prototypes/tags.yml | 9 + .../Objects/Power/power_cages.rsi/high.png | Bin 0 -> 376 bytes .../Power/power_cages.rsi/inhand-left.png | Bin 0 -> 748 bytes .../Power/power_cages.rsi/inhand-right.png | Bin 0 -> 748 bytes .../Objects/Power/power_cages.rsi/medium.png | Bin 0 -> 433 bytes .../Objects/Power/power_cages.rsi/meta.json | 34 ++ .../Objects/Power/power_cages.rsi/o1.png | Bin 0 -> 186 bytes .../Objects/Power/power_cages.rsi/o2.png | Bin 0 -> 198 bytes .../Objects/Power/power_cages.rsi/small.png | Bin 0 -> 399 bytes .../Explosives/explosives.rsi/emp.png | Bin 0 -> 393 bytes .../Explosives/explosives.rsi/meta.json | 5 +- .../Grenade/grenade_cartridge.rsi/base.png | Bin 0 -> 509 bytes .../Grenade/grenade_cartridge.rsi/icon.png | Bin 0 -> 653 bytes .../grenade_cartridge.rsi/inhand-left.png | Bin 0 -> 409 bytes .../grenade_cartridge.rsi/inhand-right.png | Bin 0 -> 415 bytes .../Grenade/grenade_cartridge.rsi/mag-1.png | Bin 0 -> 155 bytes .../Grenade/grenade_cartridge.rsi/mag-2.png | Bin 0 -> 155 bytes .../Grenade/grenade_cartridge.rsi/mag-3.png | Bin 0 -> 200 bytes .../Grenade/grenade_cartridge.rsi/mag-4.png | Bin 0 -> 317 bytes .../Grenade/grenade_cartridge.rsi/meta.json | 37 ++ .../projectiles.rsi/beam_heavy2.png | Bin 0 -> 308 bytes .../projectiles.rsi/impact_beam_heavy2.png | Bin 0 -> 1472 bytes .../Projectiles/projectiles.rsi/meta.json | 45 +++ .../projectiles.rsi/muzzle_beam_heavy2.png | Bin 0 -> 962 bytes .../Guns/Shuttles/kinetic.rsi/mag-1.png | Bin 0 -> 154 bytes .../Guns/Shuttles/kinetic.rsi/mag-2.png | Bin 0 -> 187 bytes .../Guns/Shuttles/kinetic.rsi/mag-3.png | Bin 0 -> 205 bytes .../Guns/Shuttles/kinetic.rsi/mag-4.png | Bin 0 -> 207 bytes .../Guns/Shuttles/kinetic.rsi/mag-5.png | Bin 0 -> 210 bytes .../Guns/Shuttles/kinetic.rsi/mag-6.png | Bin 0 -> 212 bytes .../Guns/Shuttles/kinetic.rsi/mag-7.png | Bin 0 -> 214 bytes .../Guns/Shuttles/kinetic.rsi/meta.json | 35 ++ .../Guns/Shuttles/kinetic.rsi/ptk-800.png | Bin 0 -> 1096 bytes .../Guns/Shuttles/laser.rsi/lse-1200c.png | Bin 0 -> 1391 bytes .../Guns/Shuttles/laser.rsi/lse-400c.png | Bin 0 -> 843 bytes .../Shuttles/laser.rsi/mag-unshaded-0.png | Bin 0 -> 143 bytes .../Shuttles/laser.rsi/mag-unshaded-1.png | Bin 0 -> 197 bytes .../Shuttles/laser.rsi/mag-unshaded-2.png | Bin 0 -> 207 bytes .../Shuttles/laser.rsi/mag-unshaded-3.png | Bin 0 -> 244 bytes .../Shuttles/laser.rsi/mag-unshaded-4.png | Bin 0 -> 249 bytes .../Shuttles/laser.rsi/mag-unshaded-5.png | Bin 0 -> 253 bytes .../Shuttles/laser.rsi/mag-unshaded-6.png | Bin 0 -> 256 bytes .../Shuttles/laser.rsi/mag-unshaded-7.png | Bin 0 -> 259 bytes .../Shuttles/laser.rsi/mag-unshaded-8.png | Bin 0 -> 261 bytes .../Shuttles/laser.rsi/mag-unshaded-9.png | Bin 0 -> 263 bytes .../Weapons/Guns/Shuttles/laser.rsi/meta.json | 107 +++++ .../Guns/Shuttles/launcher.rsi/exp-2100g.png | Bin 0 -> 1404 bytes .../Guns/Shuttles/launcher.rsi/exp-320g.png | Bin 0 -> 977 bytes .../Guns/Shuttles/launcher.rsi/mag-1.png | Bin 0 -> 144 bytes .../Guns/Shuttles/launcher.rsi/mag-2.png | Bin 0 -> 159 bytes .../Guns/Shuttles/launcher.rsi/mag-3.png | Bin 0 -> 178 bytes .../Guns/Shuttles/launcher.rsi/mag-4.png | Bin 0 -> 176 bytes .../Guns/Shuttles/launcher.rsi/mag-5.png | Bin 0 -> 177 bytes .../Guns/Shuttles/launcher.rsi/mag-6.png | Bin 0 -> 177 bytes .../Guns/Shuttles/launcher.rsi/mag-7.png | Bin 0 -> 191 bytes .../Guns/Shuttles/launcher.rsi/meta.json | 38 ++ .../Guns/Shuttles/pirate_cannon.rsi/base.png | Bin 0 -> 1440 bytes .../Guns/Shuttles/pirate_cannon.rsi/meta.json | 14 + .../Power/cage_recharger.rsi/empty.png | Bin 0 -> 775 bytes .../Power/cage_recharger.rsi/full.png | Bin 0 -> 919 bytes .../cage_recharger.rsi/light-charged.png | Bin 0 -> 803 bytes .../cage_recharger.rsi/light-charging.png | Bin 0 -> 1047 bytes .../Power/cage_recharger.rsi/light-empty.png | Bin 0 -> 271 bytes .../Power/cage_recharger.rsi/light-off.png | Bin 0 -> 1886 bytes .../Power/cage_recharger.rsi/meta.json | 52 +++ .../Power/cage_recharger.rsi/open.png | Bin 0 -> 775 bytes 93 files changed, 1570 insertions(+), 21 deletions(-) create mode 100644 Content.Server/DeviceLinking/Components/GunSignalControlComponent.cs create mode 100644 Content.Server/DeviceLinking/Systems/GunSignalControlSystem.cs create mode 100644 Content.Server/Weapons/Ranged/Systems/GunSystem.AutoFire.cs create mode 100644 Content.Shared/Weapons/Ranged/Components/AutoShootGunComponent.cs create mode 100644 Content.Shared/Weapons/Ranged/Systems/SharedGunSystem.AutoFire.cs create mode 100644 Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Magazines/grenade.yml create mode 100644 Resources/Prototypes/Entities/Structures/Shuttles/cannons.yml create mode 100644 Resources/Textures/Objects/Power/power_cages.rsi/high.png create mode 100644 Resources/Textures/Objects/Power/power_cages.rsi/inhand-left.png create mode 100644 Resources/Textures/Objects/Power/power_cages.rsi/inhand-right.png create mode 100644 Resources/Textures/Objects/Power/power_cages.rsi/medium.png create mode 100644 Resources/Textures/Objects/Power/power_cages.rsi/meta.json create mode 100644 Resources/Textures/Objects/Power/power_cages.rsi/o1.png create mode 100644 Resources/Textures/Objects/Power/power_cages.rsi/o2.png create mode 100644 Resources/Textures/Objects/Power/power_cages.rsi/small.png create mode 100644 Resources/Textures/Objects/Weapons/Guns/Ammunition/Explosives/explosives.rsi/emp.png create mode 100644 Resources/Textures/Objects/Weapons/Guns/Ammunition/Magazine/Grenade/grenade_cartridge.rsi/base.png create mode 100644 Resources/Textures/Objects/Weapons/Guns/Ammunition/Magazine/Grenade/grenade_cartridge.rsi/icon.png create mode 100644 Resources/Textures/Objects/Weapons/Guns/Ammunition/Magazine/Grenade/grenade_cartridge.rsi/inhand-left.png create mode 100644 Resources/Textures/Objects/Weapons/Guns/Ammunition/Magazine/Grenade/grenade_cartridge.rsi/inhand-right.png create mode 100644 Resources/Textures/Objects/Weapons/Guns/Ammunition/Magazine/Grenade/grenade_cartridge.rsi/mag-1.png create mode 100644 Resources/Textures/Objects/Weapons/Guns/Ammunition/Magazine/Grenade/grenade_cartridge.rsi/mag-2.png create mode 100644 Resources/Textures/Objects/Weapons/Guns/Ammunition/Magazine/Grenade/grenade_cartridge.rsi/mag-3.png create mode 100644 Resources/Textures/Objects/Weapons/Guns/Ammunition/Magazine/Grenade/grenade_cartridge.rsi/mag-4.png create mode 100644 Resources/Textures/Objects/Weapons/Guns/Ammunition/Magazine/Grenade/grenade_cartridge.rsi/meta.json create mode 100644 Resources/Textures/Objects/Weapons/Guns/Projectiles/projectiles.rsi/beam_heavy2.png create mode 100644 Resources/Textures/Objects/Weapons/Guns/Projectiles/projectiles.rsi/impact_beam_heavy2.png create mode 100644 Resources/Textures/Objects/Weapons/Guns/Projectiles/projectiles.rsi/muzzle_beam_heavy2.png create mode 100644 Resources/Textures/Objects/Weapons/Guns/Shuttles/kinetic.rsi/mag-1.png create mode 100644 Resources/Textures/Objects/Weapons/Guns/Shuttles/kinetic.rsi/mag-2.png create mode 100644 Resources/Textures/Objects/Weapons/Guns/Shuttles/kinetic.rsi/mag-3.png create mode 100644 Resources/Textures/Objects/Weapons/Guns/Shuttles/kinetic.rsi/mag-4.png create mode 100644 Resources/Textures/Objects/Weapons/Guns/Shuttles/kinetic.rsi/mag-5.png create mode 100644 Resources/Textures/Objects/Weapons/Guns/Shuttles/kinetic.rsi/mag-6.png create mode 100644 Resources/Textures/Objects/Weapons/Guns/Shuttles/kinetic.rsi/mag-7.png create mode 100644 Resources/Textures/Objects/Weapons/Guns/Shuttles/kinetic.rsi/meta.json create mode 100644 Resources/Textures/Objects/Weapons/Guns/Shuttles/kinetic.rsi/ptk-800.png create mode 100644 Resources/Textures/Objects/Weapons/Guns/Shuttles/laser.rsi/lse-1200c.png create mode 100644 Resources/Textures/Objects/Weapons/Guns/Shuttles/laser.rsi/lse-400c.png create mode 100644 Resources/Textures/Objects/Weapons/Guns/Shuttles/laser.rsi/mag-unshaded-0.png create mode 100644 Resources/Textures/Objects/Weapons/Guns/Shuttles/laser.rsi/mag-unshaded-1.png create mode 100644 Resources/Textures/Objects/Weapons/Guns/Shuttles/laser.rsi/mag-unshaded-2.png create mode 100644 Resources/Textures/Objects/Weapons/Guns/Shuttles/laser.rsi/mag-unshaded-3.png create mode 100644 Resources/Textures/Objects/Weapons/Guns/Shuttles/laser.rsi/mag-unshaded-4.png create mode 100644 Resources/Textures/Objects/Weapons/Guns/Shuttles/laser.rsi/mag-unshaded-5.png create mode 100644 Resources/Textures/Objects/Weapons/Guns/Shuttles/laser.rsi/mag-unshaded-6.png create mode 100644 Resources/Textures/Objects/Weapons/Guns/Shuttles/laser.rsi/mag-unshaded-7.png create mode 100644 Resources/Textures/Objects/Weapons/Guns/Shuttles/laser.rsi/mag-unshaded-8.png create mode 100644 Resources/Textures/Objects/Weapons/Guns/Shuttles/laser.rsi/mag-unshaded-9.png create mode 100644 Resources/Textures/Objects/Weapons/Guns/Shuttles/laser.rsi/meta.json create mode 100644 Resources/Textures/Objects/Weapons/Guns/Shuttles/launcher.rsi/exp-2100g.png create mode 100644 Resources/Textures/Objects/Weapons/Guns/Shuttles/launcher.rsi/exp-320g.png create mode 100644 Resources/Textures/Objects/Weapons/Guns/Shuttles/launcher.rsi/mag-1.png create mode 100644 Resources/Textures/Objects/Weapons/Guns/Shuttles/launcher.rsi/mag-2.png create mode 100644 Resources/Textures/Objects/Weapons/Guns/Shuttles/launcher.rsi/mag-3.png create mode 100644 Resources/Textures/Objects/Weapons/Guns/Shuttles/launcher.rsi/mag-4.png create mode 100644 Resources/Textures/Objects/Weapons/Guns/Shuttles/launcher.rsi/mag-5.png create mode 100644 Resources/Textures/Objects/Weapons/Guns/Shuttles/launcher.rsi/mag-6.png create mode 100644 Resources/Textures/Objects/Weapons/Guns/Shuttles/launcher.rsi/mag-7.png create mode 100644 Resources/Textures/Objects/Weapons/Guns/Shuttles/launcher.rsi/meta.json create mode 100644 Resources/Textures/Objects/Weapons/Guns/Shuttles/pirate_cannon.rsi/base.png create mode 100644 Resources/Textures/Objects/Weapons/Guns/Shuttles/pirate_cannon.rsi/meta.json create mode 100644 Resources/Textures/Structures/Power/cage_recharger.rsi/empty.png create mode 100644 Resources/Textures/Structures/Power/cage_recharger.rsi/full.png create mode 100644 Resources/Textures/Structures/Power/cage_recharger.rsi/light-charged.png create mode 100644 Resources/Textures/Structures/Power/cage_recharger.rsi/light-charging.png create mode 100644 Resources/Textures/Structures/Power/cage_recharger.rsi/light-empty.png create mode 100644 Resources/Textures/Structures/Power/cage_recharger.rsi/light-off.png create mode 100644 Resources/Textures/Structures/Power/cage_recharger.rsi/meta.json create mode 100644 Resources/Textures/Structures/Power/cage_recharger.rsi/open.png diff --git a/Content.Server/DeviceLinking/Components/GunSignalControlComponent.cs b/Content.Server/DeviceLinking/Components/GunSignalControlComponent.cs new file mode 100644 index 00000000000..a9067951edb --- /dev/null +++ b/Content.Server/DeviceLinking/Components/GunSignalControlComponent.cs @@ -0,0 +1,24 @@ +using Content.Server.DeviceLinking.Systems; +using Content.Shared.DeviceLinking; +using Robust.Shared.Prototypes; + +namespace Content.Server.DeviceLinking.Components; + +/// +/// A system that allows you to fire GunComponent + AmmoProvider by receiving signals from DeviceLinking +/// +[RegisterComponent, Access(typeof(GunSignalControlSystem))] +public sealed partial class GunSignalControlComponent : Component +{ + [DataField] + public ProtoId TriggerPort = "Trigger"; + + [DataField] + public ProtoId TogglePort = "Toggle"; + + [DataField] + public ProtoId OnPort = "On"; + + [DataField] + public ProtoId OffPort = "Off"; +} diff --git a/Content.Server/DeviceLinking/Systems/GunSignalControlSystem.cs b/Content.Server/DeviceLinking/Systems/GunSignalControlSystem.cs new file mode 100644 index 00000000000..538a191ab94 --- /dev/null +++ b/Content.Server/DeviceLinking/Systems/GunSignalControlSystem.cs @@ -0,0 +1,46 @@ +using Content.Server.DeviceLinking.Components; +using Content.Server.DeviceLinking.Events; +using Content.Shared.Weapons.Ranged.Components; +using Content.Shared.Weapons.Ranged.Systems; +using Robust.Shared.Map; +using System.Numerics; + +namespace Content.Server.DeviceLinking.Systems; + +public sealed partial class GunSignalControlSystem : EntitySystem +{ + [Dependency] private readonly DeviceLinkSystem _signalSystem = default!; + [Dependency] private readonly SharedGunSystem _gun = default!; + + public override void Initialize() + { + SubscribeLocalEvent(OnInit); + SubscribeLocalEvent(OnSignalReceived); + } + + private void OnInit(Entity gunControl, ref MapInitEvent args) + { + _signalSystem.EnsureSinkPorts(gunControl, gunControl.Comp.TriggerPort, gunControl.Comp.TogglePort, gunControl.Comp.OnPort, gunControl.Comp.OffPort); + } + + private void OnSignalReceived(Entity gunControl, ref SignalReceivedEvent args) + { + if (!TryComp(gunControl, out var gun)) + return; + + if (args.Port == gunControl.Comp.TriggerPort) + _gun.AttemptShoot(gunControl, gun); + + if (!TryComp(gunControl, out var autoShoot)) + return; + + if (args.Port == gunControl.Comp.TogglePort) + _gun.SetEnabled(gunControl, autoShoot, !autoShoot.Enabled); + + if (args.Port == gunControl.Comp.OnPort) + _gun.SetEnabled(gunControl, autoShoot, true); + + if (args.Port == gunControl.Comp.OffPort) + _gun.SetEnabled(gunControl, autoShoot, false); + } +} diff --git a/Content.Server/PneumaticCannon/PneumaticCannonSystem.cs b/Content.Server/PneumaticCannon/PneumaticCannonSystem.cs index f16a327e6bf..9db9aa296d8 100644 --- a/Content.Server/PneumaticCannon/PneumaticCannonSystem.cs +++ b/Content.Server/PneumaticCannon/PneumaticCannonSystem.cs @@ -78,8 +78,8 @@ private void OnShoot(Entity cannon, ref GunShotEvent a if (gas == null && component.GasUsage > 0f) return; - if(TryComp(args.User, out var status) - && component.Power == PneumaticCannonPower.High) + if (TryComp(args.User, out var status) + && component.Power == PneumaticCannonPower.High) { _stun.TryParalyze(args.User, TimeSpan.FromSeconds(component.HighPowerStunTime), true, status); Popup.PopupEntity(Loc.GetString("pneumatic-cannon-component-power-stun", diff --git a/Content.Server/Weapons/Ranged/Systems/GunSystem.AutoFire.cs b/Content.Server/Weapons/Ranged/Systems/GunSystem.AutoFire.cs new file mode 100644 index 00000000000..39cd2486ed7 --- /dev/null +++ b/Content.Server/Weapons/Ranged/Systems/GunSystem.AutoFire.cs @@ -0,0 +1,29 @@ +using Content.Shared.Weapons.Ranged.Components; + +namespace Content.Server.Weapons.Ranged.Systems; + +public sealed partial class GunSystem +{ + public override void Update(float frameTime) + { + base.Update(frameTime); + + /* + * On server because client doesn't want to predict other's guns. + */ + + // Automatic firing without stopping if the AutoShootGunComponent component is exist and enabled + var query = EntityQueryEnumerator(); + + while (query.MoveNext(out var uid, out var autoShoot, out var gun)) + { + if (!autoShoot.Enabled) + continue; + + if (gun.NextFire > Timing.CurTime) + continue; + + AttemptShoot(uid, gun); + } + } +} diff --git a/Content.Server/Weapons/Ranged/Systems/GunSystem.cs b/Content.Server/Weapons/Ranged/Systems/GunSystem.cs index 96108c2e122..4f236c0fa74 100644 --- a/Content.Server/Weapons/Ranged/Systems/GunSystem.cs +++ b/Content.Server/Weapons/Ranged/Systems/GunSystem.cs @@ -212,7 +212,9 @@ public override void Shoot(EntityUid gunUid, GunComponent gun, List<(EntityUid? // can't use map coords above because funny FireEffects var fromEffect = fromCoordinates; var dir = mapDirection.Normalized(); - var lastUser = user; + + //in the situation when user == null, means that the cannon fires on its own (via signals). And we need the gun to not fire by itself in this case + var lastUser = user ?? gunUid; if (hitscan.Reflective != ReflectType.None) { diff --git a/Content.Shared/Weapons/Ranged/Components/AutoShootGunComponent.cs b/Content.Shared/Weapons/Ranged/Components/AutoShootGunComponent.cs new file mode 100644 index 00000000000..16b3110b85a --- /dev/null +++ b/Content.Shared/Weapons/Ranged/Components/AutoShootGunComponent.cs @@ -0,0 +1,14 @@ +using Content.Shared.Weapons.Ranged.Systems; +using Robust.Shared.GameStates; + +namespace Content.Shared.Weapons.Ranged.Components; + +/// +/// Allows GunSystem to automatically fire while this component is enabled +/// +[RegisterComponent, NetworkedComponent, Access(typeof(SharedGunSystem)), AutoGenerateComponentState] +public sealed partial class AutoShootGunComponent : Component +{ + [DataField, ViewVariables(VVAccess.ReadWrite), AutoNetworkedField] + public bool Enabled; +} diff --git a/Content.Shared/Weapons/Ranged/Components/GunComponent.cs b/Content.Shared/Weapons/Ranged/Components/GunComponent.cs index 350dd85d697..95853bbd2ea 100644 --- a/Content.Shared/Weapons/Ranged/Components/GunComponent.cs +++ b/Content.Shared/Weapons/Ranged/Components/GunComponent.cs @@ -5,7 +5,6 @@ using Robust.Shared.Map; using Robust.Shared.Prototypes; using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom; -using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype.List; namespace Content.Shared.Weapons.Ranged.Components; diff --git a/Content.Shared/Weapons/Ranged/Systems/SharedGunSystem.AutoFire.cs b/Content.Shared/Weapons/Ranged/Systems/SharedGunSystem.AutoFire.cs new file mode 100644 index 00000000000..4c19547a399 --- /dev/null +++ b/Content.Shared/Weapons/Ranged/Systems/SharedGunSystem.AutoFire.cs @@ -0,0 +1,11 @@ +using Content.Shared.Weapons.Ranged.Components; + +namespace Content.Shared.Weapons.Ranged.Systems; + +public partial class SharedGunSystem +{ + public void SetEnabled(EntityUid uid, AutoShootGunComponent component, bool status) + { + component.Enabled = status; + } +} diff --git a/Content.Shared/Weapons/Ranged/Systems/SharedGunSystem.cs b/Content.Shared/Weapons/Ranged/Systems/SharedGunSystem.cs index 4e5d8b9762a..c7456ed0193 100644 --- a/Content.Shared/Weapons/Ranged/Systems/SharedGunSystem.cs +++ b/Content.Shared/Weapons/Ranged/Systems/SharedGunSystem.cs @@ -37,7 +37,7 @@ namespace Content.Shared.Weapons.Ranged.Systems; public abstract partial class SharedGunSystem : EntitySystem { - [Dependency] private readonly ActionBlockerSystem _actionBlockerSystem = default!; + [Dependency] private readonly ActionBlockerSystem _actionBlockerSystem = default!; [Dependency] protected readonly IGameTiming Timing = default!; [Dependency] protected readonly IMapManager MapManager = default!; [Dependency] private readonly INetManager _netManager = default!; @@ -214,6 +214,17 @@ public void AttemptShoot(EntityUid user, EntityUid gunUid, GunComponent gun, Ent gun.ShotCounter = 0; } + /// + /// Shoots by assuming the gun is the user at default coordinates. + /// + public void AttemptShoot(EntityUid gunUid, GunComponent gun) + { + var coordinates = new EntityCoordinates(gunUid, new Vector2(0, -1)); + gun.ShootCoordinates = coordinates; + AttemptShoot(gunUid, gunUid, gun); + gun.ShotCounter = 0; + } + private void AttemptShoot(EntityUid user, EntityUid gunUid, GunComponent gun) { if (gun.FireRate <= 0f || @@ -385,12 +396,9 @@ public void ShootProjectile(EntityUid uid, Vector2 direction, Vector2 gunVelocit var finalLinear = physics.LinearVelocity + targetMapVelocity - currentMapVelocity; Physics.SetLinearVelocity(uid, finalLinear, body: physics); - if (user != null) - { - var projectile = EnsureComp(uid); - Projectiles.SetShooter(uid, projectile, user.Value); - projectile.Weapon = gunUid; - } + var projectile = EnsureComp(uid); + Projectiles.SetShooter(uid, projectile, user ?? gunUid); + projectile.Weapon = gunUid; TransformSystem.SetWorldRotation(uid, direction.ToWorldAngle()); } diff --git a/Resources/Locale/en-US/research/technologies.ftl b/Resources/Locale/en-US/research/technologies.ftl index 973ef360a9d..411ce429ab7 100644 --- a/Resources/Locale/en-US/research/technologies.ftl +++ b/Resources/Locale/en-US/research/technologies.ftl @@ -45,6 +45,8 @@ research-technology-wave-particle-harnessing = Wave Particle Harnessing research-technology-advanced-riot-control = Advanced Riot Control research-technology-portable-microfusion-weaponry = Portable Microfusion Weaponry research-technology-experimental-battery-ammo = Experimental Battery Ammo +research-technology-basic-shuttle-armament = Shuttle basic armament +research-technology-advanced-shuttle-weapon = Advanced shuttle weapons research-technology-basic-robotics = Basic Robotics research-technology-basic-anomalous-research = Basic Anomalous Research diff --git a/Resources/Prototypes/Damage/modifier_sets.yml b/Resources/Prototypes/Damage/modifier_sets.yml index 8b63604b227..bf88837e8da 100644 --- a/Resources/Prototypes/Damage/modifier_sets.yml +++ b/Resources/Prototypes/Damage/modifier_sets.yml @@ -60,6 +60,16 @@ Heat: 5 Piercing: 10 +# for fragile electronics like consoles or shuttle engines. +- type: damageModifierSet + id: Electronic + coefficients: + Blunt: 0.7 + Slash: 0.5 + Piercing: 0.7 + Shock: 2 + Heat: 3 + # Like metallic, but without flat reduction so it can be damaged with fists. - type: damageModifierSet id: FlimsyMetallic diff --git a/Resources/Prototypes/Entities/Objects/Devices/Circuitboards/Machine/production.yml b/Resources/Prototypes/Entities/Objects/Devices/Circuitboards/Machine/production.yml index 672d6488e35..6581fecbac8 100644 --- a/Resources/Prototypes/Entities/Objects/Devices/Circuitboards/Machine/production.yml +++ b/Resources/Prototypes/Entities/Objects/Devices/Circuitboards/Machine/production.yml @@ -661,6 +661,29 @@ - type: StaticPrice price: 15 +- type: entity + id: PowerCageRechargerCircuitboard + parent: BaseMachineCircuitboard + name: cage recharger machine board + description: A machine printed circuit board for a energy cage recharger. + components: + - type: Sprite + sprite: Objects/Misc/module.rsi + state: charger_APC + - type: MachineBoard + prototype: PowerCageRecharger + requirements: + Capacitor: 4 + materialRequirements: + Steel: 5 + Cable: 10 + - type: PhysicalComposition + materialComposition: + Steel: 30 + Plastic: 30 + - type: StaticPrice + price: 30 + - type: entity id: BorgChargerCircuitboard parent: BaseMachineCircuitboard @@ -1229,3 +1252,90 @@ Steel: 5 CableHV: 5 Uranium: 2 + +- type: entity + id: ShuttleGunSvalinnMachineGunCircuitboard + parent: BaseMachineCircuitboard + name: LSE-400c "Svalinn machine gun" machine board + description: A machine printed circuit board for an LSE-400c "Svalinn machine gun" + components: + - type: Sprite + state: security + - type: MachineBoard + prototype: ShuttleGunSvalinnMachineGun + requirements: + MatterBin: 2 + Manipulator: 4 + materialRequirements: + Steel: 5 + CableHV: 5 + +- type: entity + id: ShuttleGunPerforatorCircuitboard + parent: BaseMachineCircuitboard + name: LSE-1200c "Perforator" machine board + description: A machine printed circuit board for an LSE-1200c "Perforator" + components: + - type: Sprite + state: security + - type: MachineBoard + prototype: ShuttleGunPerforator + requirements: + MatterBin: 4 + Manipulator: 6 + materialRequirements: + Steel: 10 + CableHV: 5 + +- type: entity + id: ShuttleGunFriendshipCircuitboard + parent: BaseMachineCircuitboard + name: EXP-320g "Friendship" machine board + description: A machine printed circuit board for an EXP-320g "Friendship" + components: + - type: Sprite + state: security + - type: MachineBoard + prototype: ShuttleGunFriendship + requirements: + MatterBin: 3 + Manipulator: 2 + materialRequirements: + Steel: 7 + CableHV: 5 + +- type: entity + id: ShuttleGunDusterCircuitboard + parent: BaseMachineCircuitboard + name: EXP-2100g "Duster" machine board + description: A machine printed circuit board for an EXP-2100g "Duster" + components: + - type: Sprite + state: security + - type: MachineBoard + prototype: ShuttleGunDuster + requirements: + MatterBin: 6 + Manipulator: 4 + materialRequirements: + Steel: 10 + CableHV: 5 + Uranium: 2 + +- type: entity + id: ShuttleGunKineticCircuitboard + parent: BaseMachineCircuitboard + name: PTK-800 "Matter Dematerializer" machine board + description: A machine printed circuit board for an PTK-800 "Matter Dematerializer" + components: + - type: Sprite + state: security + - type: MachineBoard + prototype: ShuttleGunKinetic + requirements: + MatterBin: 2 + Manipulator: 3 + materialRequirements: + Steel: 5 + CableHV: 2 + \ No newline at end of file diff --git a/Resources/Prototypes/Entities/Objects/Power/powercells.yml b/Resources/Prototypes/Entities/Objects/Power/powercells.yml index 841288c479d..758d5f7b423 100644 --- a/Resources/Prototypes/Entities/Objects/Power/powercells.yml +++ b/Resources/Prototypes/Entities/Objects/Power/powercells.yml @@ -267,3 +267,139 @@ - type: BatterySelfRecharger autoRecharge: true autoRechargeRate: 40 + +# Power cage (big heavy power cell for big devices) + +- type: entity + id: BasePowerCage + abstract: true + parent: BasePowerCell + components: + - type: Item + size: Ginormous + - type: MultiHandedItem + - type: SolutionContainerManager + solutions: + battery: + maxVol: 15 + - type: Extractable + juiceSolution: + reagents: + - ReagentId: Zinc + Quantity: 15 + - type: Tag + tags: + - PowerCage + - type: HitscanBatteryAmmoProvider + proto: RedShuttleLaser + fireCost: 150 + - type: ClothingSpeedModifier + walkModifier: 0.8 + sprintModifier: 0.8 + - type: HeldSpeedModifier + +- type: entity + id: PowerCageSmall + parent: BasePowerCage + name: small-capacity power cage + description: A rechargeable power cage for big devices. This is the cheapest kind you can find. + components: + - type: Sprite + sprite: Objects/Power/power_cages.rsi + layers: + - map: [ "enum.PowerCellVisualLayers.Base" ] + state: small + - map: [ "enum.PowerCellVisualLayers.Unshaded" ] + state: o2 + shader: unshaded + - type: Battery + maxCharge: 1400 + startingCharge: 1400 + +- type: entity + id: PowerCageMedium + parent: BasePowerCage + name: medium-capacity power cage + description: A rechargeable power cage for big devices. The gold standard of capacity and cost. + components: + - type: Sprite + sprite: Objects/Power/power_cages.rsi + layers: + - map: [ "enum.PowerCellVisualLayers.Base" ] + state: medium + - map: [ "enum.PowerCellVisualLayers.Unshaded" ] + state: o2 + shader: unshaded + - type: Battery + maxCharge: 2700 + startingCharge: 2700 + +- type: entity + id: PowerCageHigh + parent: BasePowerCage + name: high-capacity power cage + description: A rechargeable power cage for big devices. Increased capacity for increased power levels. + components: + - type: Sprite + sprite: Objects/Power/power_cages.rsi + layers: + - map: [ "enum.PowerCellVisualLayers.Base" ] + state: high + - map: [ "enum.PowerCellVisualLayers.Unshaded" ] + state: o2 + shader: unshaded + - type: Battery + maxCharge: 6200 + startingCharge: 6200 + +- type: entity + id: PowerCageSmallEmpty + parent: PowerCageSmall + suffix: Empty + components: + - type: Sprite + sprite: Objects/Power/power_cages.rsi + layers: + - map: [ "enum.PowerCellVisualLayers.Base" ] + state: small + - map: [ "enum.PowerCellVisualLayers.Unshaded" ] + state: o2 + shader: unshaded + visible: false + - type: Battery + maxCharge: 1400 + startingCharge: 0 + +- type: entity + id: PowerCageMediumEmpty + parent: PowerCageMedium + suffix: Empty + components: + - type: Sprite + sprite: Objects/Power/power_cages.rsi + layers: + - map: [ "enum.PowerCellVisualLayers.Base" ] + state: small + - map: [ "enum.PowerCellVisualLayers.Unshaded" ] + state: o2 + shader: unshaded + visible: false + - type: Battery + startingCharge: 0 + +- type: entity + id: PowerCageHighEmpty + parent: PowerCageHigh + suffix: Empty + components: + - type: Sprite + sprite: Objects/Power/power_cages.rsi + layers: + - map: [ "enum.PowerCellVisualLayers.Base" ] + state: small + - map: [ "enum.PowerCellVisualLayers.Unshaded" ] + state: o2 + shader: unshaded + visible: false + - type: Battery + startingCharge: 0 \ No newline at end of file diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Magazines/grenade.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Magazines/grenade.yml new file mode 100644 index 00000000000..0b23ebc9666 --- /dev/null +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Magazines/grenade.yml @@ -0,0 +1,87 @@ +- type: entity + id: BaseMagazineGrenade + name: grenade cartridge + parent: BaseItem + abstract: true + components: + - type: Tag + tags: + - MagazineGrenade + - type: BallisticAmmoProvider + mayTransfer: true + whitelist: + tags: + - Grenade + capacity: 5 + soundRack: + path: /Audio/Weapons/Guns/Bolt/lmg_bolt_closed.ogg + params: + variation: 0.05 + soundInsert: + path: /Audio/Weapons/Guns/MagIn/rifle_load.ogg + params: + variation: 0.05 + - type: Item + size: Large + - type: ContainerContainer + containers: + ballistic-ammo: !type:Container + - type: Sprite + sprite: Objects/Weapons/Guns/Ammunition/Magazine/Grenade/grenade_cartridge.rsi + layers: + - state: base + map: ["enum.GunVisualLayers.Base"] + - state: mag-4 + map: ["enum.GunVisualLayers.Mag"] + - type: MagazineVisuals + magState: mag + steps: 5 + zeroVisible: false + - type: Appearance + +- type: entity + id: MagazineGrenadeEmpty + name: grenade cartridge + parent: BaseMagazineGrenade + components: + - type: BallisticAmmoProvider + +- type: entity + id: MagazineGrenadeFrag + name: frag grenade cartridge + parent: BaseMagazineGrenade + components: + - type: BallisticAmmoProvider + proto: GrenadeFrag + +- type: entity + id: MagazineGrenadeEMP + name: EMP grenade cartridge + parent: BaseMagazineGrenade + components: + - type: BallisticAmmoProvider + proto: GrenadeEMP + +- type: entity + id: MagazineGrenadeFlash + name: flash grenade cartridge + parent: BaseMagazineGrenade + components: + - type: BallisticAmmoProvider + proto: GrenadeFlash + +- type: entity + id: MagazineGrenadeBlast + name: blast grenade cartridge + parent: BaseMagazineGrenade + components: + - type: BallisticAmmoProvider + proto: GrenadeBlast + +- type: entity + id: MagazineGrenadeBaton + name: baton grenade cartridge + parent: BaseMagazineGrenade + components: + - type: BallisticAmmoProvider + proto: GrenadeBaton \ No newline at end of file diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/explosives.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/explosives.yml index 9d04ee82617..152de7e92f2 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/explosives.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/explosives.yml @@ -122,12 +122,44 @@ - type: SpentAmmoVisuals state: frag suffix: false + +- type: entity + id: GrenadeEMP + name: EMP grenade + parent: BaseGrenade + components: + - type: CartridgeAmmo + proto: BulletGrenadeEMP + - type: Sprite + sprite: Objects/Weapons/Guns/Ammunition/Explosives/explosives.rsi + layers: + - state: emp + map: ["enum.AmmoVisualLayers.Base"] + - type: Appearance + - type: SpentAmmoVisuals + state: frag + suffix: false + +# Cannon Balls +- type: entity + id: BaseCannonBall + name: base cannon ball + parent: BaseItem + abstract: true + components: + - type: Tag + tags: + - CannonBall + - type: Item + size: Small + - type: Sprite + - type: entity id: CannonBall name: cannonball suffix: Pirate - parent: BaseGrenade + parent: BaseCannonBall components: - type: CartridgeAmmo proto: BulletCannonBall @@ -137,10 +169,10 @@ state: ball - type: entity - id: Grapeshot + id: CannonBallGrapeshot name: grapeshot suffix: Pirate - parent: BaseGrenade + parent: BaseCannonBall components: - type: CartridgeAmmo proto: PelletGrapeshot @@ -152,10 +184,10 @@ state: grapeshot - type: entity - id: Glassshot + id: CannonBallGlassshot name: glassshot suffix: Pirate - parent: BaseGrenade + parent: BaseCannonBall components: - type: CartridgeAmmo proto: PelletGlass diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Launchers/launchers.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Launchers/launchers.yml index 635de1c64bf..ecabe2a4abb 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Launchers/launchers.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Launchers/launchers.yml @@ -144,7 +144,7 @@ - type: BallisticAmmoProvider whitelist: tags: - - Grenade + - CannonBall capacity: 1 proto: CannonBall soundInsert: diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Projectiles/hitscan.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Projectiles/hitscan.yml index cb4e813943e..99c4a7bdf21 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Projectiles/hitscan.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Projectiles/hitscan.yml @@ -121,3 +121,20 @@ impactFlash: sprite: Objects/Weapons/Guns/Projectiles/projectiles.rsi state: impact_blue + +- type: hitscan + id: RedShuttleLaser + maxLength: 60 + damage: + types: + Heat: 45 + Structural: 10 + muzzleFlash: + sprite: Objects/Weapons/Guns/Projectiles/projectiles.rsi + state: muzzle_beam_heavy2 + travelFlash: + sprite: Objects/Weapons/Guns/Projectiles/projectiles.rsi + state: beam_heavy2 + impactFlash: + sprite: Objects/Weapons/Guns/Projectiles/projectiles.rsi + state: impact_beam_heavy2 diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Projectiles/projectiles.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Projectiles/projectiles.yml index a442804b3d5..5bfd511dbce 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Projectiles/projectiles.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Projectiles/projectiles.yml @@ -420,6 +420,32 @@ - type: TimedDespawn lifetime: 0.4 +- type: entity + id: BulletKineticShuttle + parent: BaseBullet + noSpawn: true + components: + - type: Sprite + noRot: false + sprite: Objects/Weapons/Guns/Projectiles/magic.rsi + layers: + - state: chronobolt + shader: unshaded + - type: Projectile + impactEffect: BulletImpactEffectKinetic + damage: + types: + Blunt: 30 + Structural: 35 + - type: Ammo + muzzleFlash: HitscanEffect + - type: TimedDespawn + lifetime: 1.5 + - type: PointLight + radius: 2.5 + color: white + energy: 0.5 + - type: entity id: BulletCharge name: charge bolt @@ -692,6 +718,27 @@ intensitySlope: 1 maxIntensity: 10 +- type: entity + id: BulletGrenadeEMP + name: EMP rocket + parent: BaseBulletTrigger + noSpawn: true + components: + - type: Sprite + sprite: Objects/Weapons/Guns/Projectiles/projectiles2.rsi + layers: + - state: frag + - type: EmpOnTrigger + range: 5 + energyConsumption: 50000 + disableDuration: 10 + - type: Ammo + muzzleFlash: null + - type: PointLight + radius: 3.5 + color: blue + energy: 0.5 + - type: entity id: BulletCap name: cap bullet diff --git a/Resources/Prototypes/Entities/Structures/Machines/Computers/frame.yml b/Resources/Prototypes/Entities/Structures/Machines/Computers/frame.yml index 884f68fc229..08e3173334b 100644 --- a/Resources/Prototypes/Entities/Structures/Machines/Computers/frame.yml +++ b/Resources/Prototypes/Entities/Structures/Machines/Computers/frame.yml @@ -26,7 +26,7 @@ drawdepth: Objects - type: Damageable damageContainer: Inorganic - damageModifierSet: Metallic + damageModifierSet: Electronic - type: Destructible thresholds: - trigger: diff --git a/Resources/Prototypes/Entities/Structures/Machines/lathe.yml b/Resources/Prototypes/Entities/Structures/Machines/lathe.yml index 7d5d571a092..c3f51df2de8 100644 --- a/Resources/Prototypes/Entities/Structures/Machines/lathe.yml +++ b/Resources/Prototypes/Entities/Structures/Machines/lathe.yml @@ -169,6 +169,7 @@ - MagazineBoxMagnum - MagazineBoxRifle - MagazineBoxLightRifle + - GrenadeBlast emagDynamicRecipes: - CartridgePistolRubber - CartridgeMagnumRubber @@ -197,6 +198,12 @@ - MagazineBoxMagnumUranium - MagazineBoxLightRifleUranium - MagazineBoxRifleUranium + - PowerCageSmall + - PowerCageMedium + - PowerCageHigh + - MagazineGrenadeEmpty + - GrenadeEMP + - GrenadeFlash - type: entity id: AutolatheHyperConvection @@ -422,10 +429,12 @@ - WallmountGeneratorElectronics - WallmountGeneratorAPUElectronics - WallmountSubstationElectronics + - PowerCageRechargerCircuitboard - EmitterCircuitboard - ThrusterMachineCircuitboard - GyroscopeMachineCircuitboard - MiniGravityGeneratorCircuitboard + - ShuttleGunKineticCircuitboard - GasRecyclerMachineCircuitboard - SeedExtractorMachineCircuitboard - AnalysisComputerCircuitboard @@ -691,6 +700,9 @@ - MagazineBoxMagnumRubber - MagazineBoxPistolRubber - MagazineBoxRifleRubber + - MagazineGrenadeEmpty + - GrenadeEMP + - GrenadeFlash - ShellShotgunBeanbag - ShellShotgunIncendiary - ShellShotgunUranium @@ -706,6 +718,13 @@ - WeaponLaserCannon - WeaponLaserCarbine - WeaponXrayCannon + - PowerCageSmall + - PowerCageMedium + - PowerCageHigh + - ShuttleGunSvalinnMachineGunCircuitboard + - ShuttleGunPerforatorCircuitboard + - ShuttleGunFriendshipCircuitboard + - ShuttleGunDusterCircuitboard - type: MaterialStorage whitelist: tags: diff --git a/Resources/Prototypes/Entities/Structures/Power/chargers.yml b/Resources/Prototypes/Entities/Structures/Power/chargers.yml index a8e20df1929..44f748307cc 100644 --- a/Resources/Prototypes/Entities/Structures/Power/chargers.yml +++ b/Resources/Prototypes/Entities/Structures/Power/chargers.yml @@ -107,6 +107,46 @@ blacklist: tags: - PotatoBattery + +- type: entity + parent: [ BaseItemRecharger, ConstructibleMachine ] + id: PowerCageRecharger + name: cage recharger + components: + - type: Fixtures + fixtures: + fix1: + shape: + !type:PhysShapeAabb + bounds: "-0.25,-0.35,0.25,0.35" + density: 190 + mask: + - MachineMask + layer: + - MachineLayer + - type: LitOnPowered + - type: PointLight + radius: 1.5 + color: "#03fc4e" + energy: 0.7 + - type: Charger + chargeRate: 50 + - type: Sprite + sprite: Structures/Power/cage_recharger.rsi + - type: PowerCellSlot + cellSlotId: charger_slot + - type: ItemSlots + slots: + charger_slot: + ejectOnInteract: true + name: Power cage + whitelist: + tags: + - PowerCage + - type: Machine + board: PowerCageRechargerCircuitboard + - type: StaticPrice + price: 500 - type: entity parent: BaseItemRecharger diff --git a/Resources/Prototypes/Entities/Structures/Shuttles/cannons.yml b/Resources/Prototypes/Entities/Structures/Shuttles/cannons.yml new file mode 100644 index 00000000000..d3408f54e5e --- /dev/null +++ b/Resources/Prototypes/Entities/Structures/Shuttles/cannons.yml @@ -0,0 +1,375 @@ +- type: entity + id: ShuttleGunBase + name: shittle gun + abstract: true + placement: + mode: SnapgridCenter + components: + - type: Appearance + - type: Clickable + - type: InteractionOutline + - type: Anchorable + - type: Pullable + - type: Rotatable + - type: Physics + bodyType: Static + - type: ContainerContainer + - type: Gun + - type: Fixtures + fixtures: + fix1: + shape: + !type:PhysShapeAabb + bounds: "-0.45,-0.45,0.45,0.45" + density: 450 + mask: + - MachineMask + layer: + - MachineLayer + - type: Damageable + damageContainer: Inorganic + damageModifierSet: Electronic + - type: Transform + anchored: true + - type: DeviceNetwork + deviceNetId: Wireless + receiveFrequencyId: BasicDevice + - type: WirelessNetworkConnection + range: 200 + - type: DeviceLinkSink + ports: + - Trigger + - Toggle + - On + - Off + - type: AutoShootGun + - type: GunSignalControl + - type: StaticPrice + price: 1500 + +# ---- Laser weapon branch ---- +# naming: LSE (Laser) + conventional power + suffix (c for PowerCage, e for wired energy) + Name +# example: LSE-100e "Clown destroyer" (powered by the wiring, very weak) + +- type: entity + id: ShuttleGunSvalinnMachineGun + parent: [ ShuttleGunBase, ConstructibleMachine] + name: LSE-400c "Svalinn machine gun" + description: Basic stationary laser unit. Effective against live targets and electronics. Uses regular power cells to fire, and has an extremely high rate of fire + components: + - type: Sprite + sprite: Objects/Weapons/Guns/Shuttles/laser.rsi + layers: + - state: lse-400c + - state: mag-unshaded-9 + map: ["enum.GunVisualLayers.MagUnshaded"] + shader: unshaded + - type: ContainerContainer + containers: + machine_board: !type:Container + machine_parts: !type:Container + gun_magazine: !type:ContainerSlot + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 150 + behaviors: + - !type:ChangeConstructionNodeBehavior + node: machineFrame + - !type:DoActsBehavior + acts: ["Destruction"] + - type: Gun + fireRate: 5 + useKey: false + selectedMode: SemiAuto + availableModes: + - SemiAuto + soundGunshot: + path: /Audio/Weapons/Guns/Gunshots/laser_cannon.ogg + params: + variation: 0.05 + - type: MagazineVisuals + magState: mag + steps: 10 + zeroVisible: true + - type: Machine + board: ShuttleGunSvalinnMachineGunCircuitboard + - type: ItemSlots + slots: + gun_magazine: + name: Magazine + insertSound: /Audio/Weapons/Guns/MagIn/batrifle_magin.ogg + ejectSound: /Audio/Weapons/Guns/MagOut/batrifle_magout.ogg + whitelist: + tags: + - PowerCell + - PowerCellSmall + - type: MagazineAmmoProvider + +- type: entity + id: ShuttleGunPerforator + parent: [ ShuttleGunBase, ConstructibleMachine] + name: LSE-1200c "Perforator" + description: Advanced stationary laser unit. Annihilates electronics and is extremely dangerous to health! Uses the power cage to fire. + components: + - type: Sprite + sprite: Objects/Weapons/Guns/Shuttles/laser.rsi + layers: + - state: lse-1200c + - state: mag-unshaded-9 + map: ["enum.GunVisualLayers.MagUnshaded"] + shader: unshaded + - type: ContainerContainer + containers: + machine_board: !type:Container + machine_parts: !type:Container + gun_magazine: !type:ContainerSlot + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 300 + behaviors: + - !type:ChangeConstructionNodeBehavior + node: machineFrame + - !type:DoActsBehavior + acts: ["Destruction"] + - type: Gun + fireRate: 1 + useKey: false + selectedMode: SemiAuto + availableModes: + - SemiAuto + soundGunshot: + path: /Audio/Weapons/Guns/Gunshots/laser_cannon2.ogg + params: + variation: 0.05 + - type: MagazineVisuals + magState: mag + steps: 10 + zeroVisible: true + - type: Machine + board: ShuttleGunPerforatorCircuitboard + - type: ItemSlots + slots: + gun_magazine: + name: Magazine + insertSound: /Audio/Weapons/Guns/MagIn/batrifle_magin.ogg + ejectSound: /Audio/Weapons/Guns/MagOut/batrifle_magout.ogg + whitelist: + tags: + - PowerCage + - type: MagazineAmmoProvider + +# ---- Launchers ---- +# naming: EXP (Explosion) + conventional power + suffix (g for Grenade, c for RPG Cartridge) + Name +# example: EXP-100c "Poppy" + +- type: entity + id: ShuttleGunFriendship + parent: [ShuttleGunBase, ConstructibleMachine] + name: EXP-320g "Friendship" + description: A small stationary grenade launcher that holds 2 grenades. + components: + - type: Sprite + sprite: Objects/Weapons/Guns/Shuttles/launcher.rsi + layers: + - state: exp-320g + - state: mag-7 + map: ["enum.GunVisualLayers.Mag"] + - type: ContainerContainer + containers: + machine_board: !type:Container + machine_parts: !type:Container + ballistic-ammo: !type:Container + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 200 + behaviors: + - !type:ChangeConstructionNodeBehavior + node: machineFrame + - !type:DoActsBehavior + acts: ["Destruction"] + - type: Gun + projectileSpeed: 80 + fireRate: 4 + angleDecay: 45 + minAngle: 0 + maxAngle: 15 + selectedMode: FullAuto + availableModes: + - FullAuto + soundGunshot: + path: /Audio/Items/Mining/fultext_launch.ogg + params: + pitch: 0.8 + soundEmpty: + path: /Audio/Weapons/Guns/Empty/empty.ogg + - type: BallisticAmmoProvider + whitelist: + tags: + - Grenade + capacity: 2 + soundInsert: + path: /Audio/Weapons/Guns/MagIn/batrifle_magin.ogg + - type: Machine + board: ShuttleGunFriendshipCircuitboard + - type: MagazineVisuals + magState: mag + steps: 8 + zeroVisible: false + +- type: entity + id: ShuttleGunDuster + parent: [ShuttleGunBase, ConstructibleMachine] + name: EXP-2100g "Duster" + description: A powerful stationary grenade launcher. A cartridge is required for use. + components: + - type: Sprite + sprite: Objects/Weapons/Guns/Shuttles/launcher.rsi + layers: + - state: exp-2100g + - state: mag-7 + map: ["enum.GunVisualLayers.Mag"] + - type: ContainerContainer + containers: + machine_board: !type:Container + machine_parts: !type:Container + gun_magazine: !type:ContainerSlot + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 350 + behaviors: + - !type:ChangeConstructionNodeBehavior + node: machineFrame + - !type:DoActsBehavior + acts: ["Destruction"] + - type: Gun + projectileSpeed: 40 + fireRate: 0.3 + selectedMode: FullAuto + availableModes: + - FullAuto + soundGunshot: + path: /Audio/Items/Mining/fultext_launch.ogg + params: + variation: 0.05 + pitch: 0.8 + soundEmpty: + path: /Audio/Weapons/Guns/Empty/empty.ogg + - type: Machine + board: ShuttleGunDusterCircuitboard + - type: MagazineAmmoProvider + - type: MagazineVisuals + magState: mag + steps: 8 + zeroVisible: false + - type: ItemSlots + slots: + gun_magazine: + name: Magazine + priority: 2 + whitelist: + tags: + - MagazineGrenade + insertSound: + path: /Audio/Weapons/Guns/MagIn/kinetic_reload.ogg + params: + pitch: 2 + ejectSound: /Audio/Weapons/Guns/MagOut/smg_magout.ogg + +# ---- Other weapon ---- + +- type: entity + id: ShuttleGunPirateCannon + parent: ShuttleGunBase + name: pirate ship cannon + description: Kaboom! + components: + - type: ContainerContainer + containers: + ballistic-ammo: !type:Container + - type: Damageable + damageContainer: Inorganic + damageModifierSet: Metallic + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 300 + behaviors: + - !type:DoActsBehavior + acts: ["Destruction"] + - type: Sprite + sprite: Objects/Weapons/Guns/Shuttles/pirate_cannon.rsi + layers: + - state: base + - type: Gun + fireRate: 1 + soundGunshot: + path: /Audio/Weapons/Guns/Gunshots/mateba.ogg + - type: BallisticAmmoProvider + whitelist: + tags: + - CannonBall + capacity: 1 + proto: CannonBall + soundInsert: + path: /Audio/Weapons/Guns/Gunshots/grenade_launcher.ogg + +- type: entity + id: ShuttleGunKinetic + parent: [ ShuttleGunBase, ConstructibleMachine] + name: PTK-800 "Matter Dematerializer" + description: Salvage stationary mining turret. Gradually accumulates charges on its own, extremely effective for asteroid excavation. + components: + - type: Sprite + sprite: Objects/Weapons/Guns/Shuttles/kinetic.rsi + layers: + - state: ptk-800 + - state: mag-7 + - type: ContainerContainer + containers: + machine_board: !type:Container + machine_parts: !type:Container + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 100 + behaviors: + - !type:ChangeConstructionNodeBehavior + node: machineFrame + - !type:DoActsBehavior + acts: ["Destruction"] + - type: Gun + projectileSpeed: 20 + fireRate: 2 + selectedMode: SemiAuto + angleDecay: 45 + minAngle: 5 + maxAngle: 15 + availableModes: + - SemiAuto + soundGunshot: + path: /Audio/Weapons/Guns/Gunshots/kinetic_accel.ogg + params: + variation: 0.12 + - type: RechargeBasicEntityAmmo + rechargeCooldown: 2 + rechargeSound: + path: /Audio/Weapons/Guns/Bolt/lmg_bolt_closed.ogg + params: + pitch: 1.2 + variation: 0.08 + - type: BasicEntityAmmoProvider + proto: BulletKineticShuttle + capacity: 5 + count: 5 + - type: Machine + board: ShuttleGunKineticCircuitboard diff --git a/Resources/Prototypes/Entities/Structures/Shuttles/thrusters.yml b/Resources/Prototypes/Entities/Structures/Shuttles/thrusters.yml index 787101c5b55..eb299e3f3a6 100644 --- a/Resources/Prototypes/Entities/Structures/Shuttles/thrusters.yml +++ b/Resources/Prototypes/Entities/Structures/Shuttles/thrusters.yml @@ -5,6 +5,17 @@ description: A thruster that allows a shuttle to move. abstract: true components: + - type: Fixtures + fixtures: + fix1: + shape: + !type:PhysShapeAabb + bounds: "-0.45,-0.45,0.45,0.45" + density: 60 + mask: + - MachineMask + layer: + - MachineLayer - type: AmbientSound enabled: false range: 4 @@ -30,12 +41,12 @@ - type: ExtensionCableReceiver - type: Damageable damageContainer: Inorganic - damageModifierSet: Metallic + damageModifierSet: Electronic - type: Destructible thresholds: - trigger: !type:DamageTrigger - damage: 300 # Considering we need a lot of thrusters didn't want to make an individual one too tanky + damage: 100 # Considering we need a lot of thrusters didn't want to make an individual one too tanky behaviors: - !type:DoActsBehavior acts: ["Destruction"] @@ -185,6 +196,9 @@ - type: UpgradePowerDraw powerDrawMultiplier: 0.75 scaling: Exponential + - type: Damageable + damageContainer: Inorganic + damageModifierSet: Electronic - type: StaticPrice price: 2000 diff --git a/Resources/Prototypes/Recipes/Lathes/electronics.yml b/Resources/Prototypes/Recipes/Lathes/electronics.yml index 2e93b9518ea..3af8eb4e529 100644 --- a/Resources/Prototypes/Recipes/Lathes/electronics.yml +++ b/Resources/Prototypes/Recipes/Lathes/electronics.yml @@ -895,3 +895,54 @@ Steel: 100 Glass: 900 Gold: 100 + +- type: latheRecipe + id: PowerCageRechargerCircuitboard + result: PowerCageRechargerCircuitboard + completetime: 6 + materials: + Steel: 100 + Glass: 900 + +- type: latheRecipe + id: ShuttleGunSvalinnMachineGunCircuitboard + result: ShuttleGunSvalinnMachineGunCircuitboard + completetime: 6 + materials: + Steel: 100 + Glass: 900 + +- type: latheRecipe + id: ShuttleGunPerforatorCircuitboard + result: ShuttleGunPerforatorCircuitboard + completetime: 10 + materials: + Steel: 100 + Glass: 900 + Gold: 100 + +- type: latheRecipe + id: ShuttleGunKineticCircuitboard + result: ShuttleGunKineticCircuitboard + completetime: 6 + materials: + Steel: 100 + Glass: 900 + +- type: latheRecipe + id: ShuttleGunFriendshipCircuitboard + result: ShuttleGunFriendshipCircuitboard + completetime: 8 + materials: + Steel: 100 + Glass: 900 + Gold: 50 + +- type: latheRecipe + id: ShuttleGunDusterCircuitboard + result: ShuttleGunDusterCircuitboard + completetime: 12 + materials: + Steel: 100 + Glass: 900 + Gold: 100 diff --git a/Resources/Prototypes/Recipes/Lathes/powercells.yml b/Resources/Prototypes/Recipes/Lathes/powercells.yml index 0b63995a63a..21928a53d2a 100644 --- a/Resources/Prototypes/Recipes/Lathes/powercells.yml +++ b/Resources/Prototypes/Recipes/Lathes/powercells.yml @@ -39,3 +39,31 @@ Glass: 400 Uranium: 200 Gold: 100 + +- type: latheRecipe + id: PowerCageSmall + result: PowerCageSmall + completetime: 3 + materials: + Steel: 200 + Plastic: 100 + +- type: latheRecipe + id: PowerCageMedium + result: PowerCageMedium + completetime: 6 + materials: + Steel: 500 + Glass: 500 + Plastic: 250 + Gold: 40 + +- type: latheRecipe + id: PowerCageHigh + result: PowerCageHigh + completetime: 10 + materials: + Steel: 600 + Glass: 800 + Plastic: 400 + Gold: 100 \ No newline at end of file diff --git a/Resources/Prototypes/Recipes/Lathes/security.yml b/Resources/Prototypes/Recipes/Lathes/security.yml index eb9da60d781..dceeb302636 100644 --- a/Resources/Prototypes/Recipes/Lathes/security.yml +++ b/Resources/Prototypes/Recipes/Lathes/security.yml @@ -605,3 +605,39 @@ Steel: 1000 Glass: 500 Plastic: 500 + +- type: latheRecipe + id: MagazineGrenadeEmpty + result: MagazineGrenadeEmpty + completetime: 3 + materials: + Steel: 150 + Plastic: 50 + +- type: latheRecipe + id: GrenadeEMP + result: GrenadeEMP + completetime: 3 + materials: + Steel: 150 + Plastic: 100 + Glass: 20 + +- type: latheRecipe + id: GrenadeBlast + result: GrenadeBlast + completetime: 3 + materials: + Steel: 150 + Plastic: 100 + Gold: 50 + +- type: latheRecipe + id: GrenadeFlash + result: GrenadeFlash + completetime: 3 + materials: + Steel: 150 + Plastic: 100 + Glass: 20 + \ No newline at end of file diff --git a/Resources/Prototypes/Research/arsenal.yml b/Resources/Prototypes/Research/arsenal.yml index bf60a9e797d..71e85c691aa 100644 --- a/Resources/Prototypes/Research/arsenal.yml +++ b/Resources/Prototypes/Research/arsenal.yml @@ -11,6 +11,7 @@ cost: 5000 recipeUnlocks: - WeaponProtoKineticAccelerator + - ShuttleGunKineticCircuitboard # These are roundstart but not replenishable for salvage - type: technology @@ -145,6 +146,27 @@ - HoloprojectorSecurity - WeaponDisablerSMG +- type: technology + id: BasicShuttleArmament + name: research-technology-basic-shuttle-armament + icon: + sprite: Structures/Power/cage_recharger.rsi + state: full + discipline: Arsenal + tier: 2 + cost: 10500 + recipeUnlocks: + - PowerCageRechargerCircuitboard + - PowerCageSmall + - PowerCageMedium + - MagazineGrenadeEmpty + - GrenadeFlash + - ShuttleGunSvalinnMachineGunCircuitboard + - ShuttleGunPerforatorCircuitboard + - ShuttleGunFriendshipCircuitboard + technologyPrerequisites: + - SalvageWeapons + # Tier 3 - type: technology @@ -170,3 +192,19 @@ cost: 15000 recipeUnlocks: - WeaponLaserSvalinn + +- type: technology + id: AdvancedShuttleWeapon + name: research-technology-advanced-shuttle-weapon + icon: + sprite: Objects/Weapons/Guns/Ammunition/Magazine/Grenade/grenade_cartridge.rsi + state: icon + discipline: Arsenal + tier: 3 + cost: 15000 + recipeUnlocks: + - GrenadeEMP + - PowerCageHigh + - ShuttleGunDusterCircuitboard + technologyPrerequisites: + - BasicShuttleArmament \ No newline at end of file diff --git a/Resources/Prototypes/tags.yml b/Resources/Prototypes/tags.yml index 61e2c56c4a9..40736c3fc52 100644 --- a/Resources/Prototypes/tags.yml +++ b/Resources/Prototypes/tags.yml @@ -250,6 +250,9 @@ - type: Tag id: CanPilot +- type: Tag + id: CannonBall + - type: Tag id: CannonRestrict @@ -784,6 +787,9 @@ - type: Tag id: MagazinePistolSubMachineGun +- type: Tag + id: MagazineGrenade + - type: Tag id: MailingUnitElectronics @@ -940,6 +946,9 @@ - type: Tag id: PowerCellSmall +- type: Tag + id: PowerCage + - type: Tag id: Powerdrill diff --git a/Resources/Textures/Objects/Power/power_cages.rsi/high.png b/Resources/Textures/Objects/Power/power_cages.rsi/high.png new file mode 100644 index 0000000000000000000000000000000000000000..703cdcac080c28a6882789ffd26565a95e5029b7 GIT binary patch literal 376 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 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Weapons/Guns/Ammunition/Explosives/explosives.rsi/meta.json b/Resources/Textures/Objects/Weapons/Guns/Ammunition/Explosives/explosives.rsi/meta.json index 3faf26ebe57..15ed620c3e0 100644 --- a/Resources/Textures/Objects/Weapons/Guns/Ammunition/Explosives/explosives.rsi/meta.json +++ b/Resources/Textures/Objects/Weapons/Guns/Ammunition/Explosives/explosives.rsi/meta.json @@ -5,7 +5,7 @@ "y": 32 }, "license": "CC-BY-SA-3.0", - "copyright": "https://github.com/discordia-space/CEV-Eris/raw/e1d495c3faf4642b6ec1c4be8acc7cd5bc51d785/icons/obj/ammo.dmi, ball, glassshot and grapeshot Made by Alekshhh (Github) for ss14", + "copyright": "https://github.com/discordia-space/CEV-Eris/raw/e1d495c3faf4642b6ec1c4be8acc7cd5bc51d785/icons/obj/ammo.dmi, ball, glassshot and grapeshot Made by Alekshhh (Github) for ss1, emp made by TheShuEd (github)", "states": [ { "name": "baton" @@ -25,6 +25,9 @@ { "name": "ball" }, + { + "name": "emp" + }, { "name": "grapeshot" }, diff --git a/Resources/Textures/Objects/Weapons/Guns/Ammunition/Magazine/Grenade/grenade_cartridge.rsi/base.png b/Resources/Textures/Objects/Weapons/Guns/Ammunition/Magazine/Grenade/grenade_cartridge.rsi/base.png new file mode 100644 index 0000000000000000000000000000000000000000..27c6f16dc7534b23c2a8aeb82cc5ffb6c78feb0c GIT binary patch literal 509 zcmVPx$w@E}nR9J=WRy|L`P!v6W#29E=qa6^EvcSOL0JDF?!C4k2V_23+r}=`@QZ$b`F7Z}hn0MV6_x^@h$XEZv}bn200000NkvXXu0mjfkEh=Q literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Weapons/Guns/Ammunition/Magazine/Grenade/grenade_cartridge.rsi/icon.png b/Resources/Textures/Objects/Weapons/Guns/Ammunition/Magazine/Grenade/grenade_cartridge.rsi/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..93359d84096671b3ff661c42df0b1ddd7a69c846 GIT binary patch literal 653 zcmV;80&@L{P)Px%M@d9MR9J=WmQP5NaTv!xR)lP01Dm)%v0VnC(P0vFDYk+jI(V>K&}|nFVl_`j zN=?Fp7VY9?N6*GCp&{GCKuC0mtZlf<)?O1C=*C77h90JG?$7(a+k6S3eJ{V~_k4fP z_xbYvp7-U2HvV^X$dMz@ULM+Q){0zjep-y(8J65j z<<0l<;@I+v{P5Ee99v#e7PGX-BQu*{H(E20&ImQRgZ!=-$M-fk$nO&0lWriT(~yDf zo$Xo!xqUGfi~m?(f=uSKUZsAoW@F`&~Ju;ymPoM0Tnnwv#14mE778miAgv$LZ53^aQ8 zO&e%*2I}2?B9T11fpb3tQhX>9ru*)5$vV|$px)hwB4K=spYTsDoZW!Z3{>BJC=$jw z_5uIY0^&bvbt@wajtL#BUjE3d7A3c00000NkvXXu0mjf_x3cN literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Weapons/Guns/Ammunition/Magazine/Grenade/grenade_cartridge.rsi/inhand-left.png b/Resources/Textures/Objects/Weapons/Guns/Ammunition/Magazine/Grenade/grenade_cartridge.rsi/inhand-left.png new file mode 100644 index 0000000000000000000000000000000000000000..14265b1c7da6a6a8be502387e415f8fe7a8b67ac GIT binary patch literal 409 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=jKx9jP7LeL$-D%zgFRgwLn`LH zy|vNrP=Ls>kNk&~cT7AWETG&xdHur&Zx#t3lr&3|EiEj&aB;^32IdwQo+BF`aCl0y znM-=UO7L1SLFuhy@ZbMxRg>y;pU->3w^s;g0}y;zzeMM-p5FSse-6eiFsrD#SoyN# z@$-nZR?q0R-eY}k$?lV;RPLU%xmwIxJMWy8^|ZuyN2aPg-6Xk``>KO(R@kn9P`%lm zQ$>$$Vcd7|#>F+^W+!KTJ@t9zEw;;SJniczH39Nr#Cq6pSsFix-sfX z=l_K0ix4zPRH14E-!zY-Hdf$_Kb$st9A4Jrf1!s z_=3%2KD*{0d-a%s=&>I%P`Ap1OB{an^LB{Ts5y$rVi literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Weapons/Guns/Ammunition/Magazine/Grenade/grenade_cartridge.rsi/inhand-right.png b/Resources/Textures/Objects/Weapons/Guns/Ammunition/Magazine/Grenade/grenade_cartridge.rsi/inhand-right.png new file mode 100644 index 0000000000000000000000000000000000000000..826d0bb3f7a87faaf81b1c647df0b721654622a7 GIT binary patch literal 415 zcmV;Q0bu@#P)Px$SxH1eRCt{2+ObZ;P!z`T55pt4k-!rWBZHH#;o$6|6TulaW*v2LcEHiNkN^XO zL=42R;0Q?@1~(Z=>R?J*;HIsBwDJF&$hj@~dhSU&^hy8#00000z`v3*E!^DRJNc6% zUv2pMuItjJ@t%GAP3E*|VLY)ko>yjJ%Vv}=RDCrQV*_0CetFT=q!>>u&HLq0*9JDgI{~B7$7acP%+2SWfFMkOX<>P{ z8?B~>gLZ7+0FpEuv{Q{%(^m_cTH^!dk58TDKi?$WUrKUz0000000000fcPkuDo(xA zb?Tk2Q!G`S;5*{YctFC$p4xhTdRhEVy1=i)UT5bQD?7ffmL!oHP`N+7gmLyC- zl#9K){WY7d)RHJt1Eik=2kyhi{m4uhk>3K6)O+h~I|l&l#W%nDjOzeYYC!-1002ov JPDHLkV1keFy}JMa literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Weapons/Guns/Ammunition/Magazine/Grenade/grenade_cartridge.rsi/mag-1.png b/Resources/Textures/Objects/Weapons/Guns/Ammunition/Magazine/Grenade/grenade_cartridge.rsi/mag-1.png new file mode 100644 index 0000000000000000000000000000000000000000..6b233bee38f1be13aa2e808b2d1c50cf01f940dc GIT binary patch literal 155 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz#^NA%Cx&(BWL^R}p`I>|ArY;~ z2@*Z%JJ?(4iZEx+O`@A9W6?1ii2|Ceh;egA);k=f$v w1s#?-UDy8B7yU7Co;zPadF>mJ#tH_8?mA)fMdJCdffg`$y85}Sb4q9e0Ip>;egFUf literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Weapons/Guns/Ammunition/Magazine/Grenade/grenade_cartridge.rsi/mag-2.png b/Resources/Textures/Objects/Weapons/Guns/Ammunition/Magazine/Grenade/grenade_cartridge.rsi/mag-2.png new file mode 100644 index 0000000000000000000000000000000000000000..6b233bee38f1be13aa2e808b2d1c50cf01f940dc GIT binary patch literal 155 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz#^NA%Cx&(BWL^R}p`I>|ArY;~ z2@*Z%JJ?(4iZEx+O`@A9W6?1ii2|Ceh;egA);k=f$v w1s#?-UDy8B7yU7Co;zPadF>mJ#tH_8?mA)fMdJCdffg`$y85}Sb4q9e0Ip>;egFUf literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Weapons/Guns/Ammunition/Magazine/Grenade/grenade_cartridge.rsi/mag-3.png b/Resources/Textures/Objects/Weapons/Guns/Ammunition/Magazine/Grenade/grenade_cartridge.rsi/mag-3.png new file mode 100644 index 0000000000000000000000000000000000000000..f8e3f08c8fe6d07257ec2747356e402a128a0565 GIT binary patch literal 200 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz#^NA%Cx&(BWL^R}O`a}}ArY;~ z2@gwp+uXXKY82|S&U_#^L8S7`p+`2xz! z%*@Tr&CH^6thn3`YJhbIFwE(?_V>8zahL4V=6im%T`ro{yyNQn|JI^wf7d@az&Ix> qLyXDK_4Pk{%Q}gBYG6GNm>4?WDp>SLPIwJ;4TGnvpUXO@geCx+j7d=d literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Weapons/Guns/Ammunition/Magazine/Grenade/grenade_cartridge.rsi/mag-4.png b/Resources/Textures/Objects/Weapons/Guns/Ammunition/Magazine/Grenade/grenade_cartridge.rsi/mag-4.png new file mode 100644 index 0000000000000000000000000000000000000000..b3ea88e15fc6b39ebe34b92b93271786af2067ac GIT binary patch literal 317 zcmV-D0mA-?P)Px#_en%SR9J=W)-g-NKp4jHf5f4XO_5d*x(Eel!Ab526hy(Hd;JD3`2cN+i{Hah zINA=SV?u@wrK=z~cG9&`x7W!+(K8?f2jAa#&wF?BQ7?@VPc5XDZGvz)RYky7ddPbfk7_kEQ4 P00000NkvXXu0mjf;aiKM literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Weapons/Guns/Ammunition/Magazine/Grenade/grenade_cartridge.rsi/meta.json b/Resources/Textures/Objects/Weapons/Guns/Ammunition/Magazine/Grenade/grenade_cartridge.rsi/meta.json new file mode 100644 index 00000000000..32d2f5b7f04 --- /dev/null +++ b/Resources/Textures/Objects/Weapons/Guns/Ammunition/Magazine/Grenade/grenade_cartridge.rsi/meta.json @@ -0,0 +1,37 @@ +{ + "version": 1, + "size": { + "x": 32, + "y": 32 + }, + "license": "CC-BY-SA-3.0", + "copyright": "created by TheShuEd (github) for Space Station 14", + "states": [ + { + "name": "base" + }, + { + "name": "icon" + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + }, + { + "name": "mag-1" + }, + { + "name": "mag-2" + }, + { + "name": "mag-3" + }, + { + "name": "mag-4" + } + ] +} diff --git a/Resources/Textures/Objects/Weapons/Guns/Projectiles/projectiles.rsi/beam_heavy2.png b/Resources/Textures/Objects/Weapons/Guns/Projectiles/projectiles.rsi/beam_heavy2.png new file mode 100644 index 0000000000000000000000000000000000000000..b171a562cb0d742c3dd04b493eb7bc4e1a003f7c GIT binary patch literal 308 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7OGojKx9jP7LeL$-D$|-g&w>hE&XX zd;6fLv!ejpgGvM28O`R7Q>IK{a`8}K`8={Sf%V>AkEREX9~XqK@oo9j{&yeSzr-^6 ze179lpniq}t~xK7?tSA|p83D(kLR)Q{`ID}8ty+2HriKq@yn{z9zolNUv*u_mOtfB zD4MI6@J)ZgWnPc}%>Ux-7X6HKd>AeOG6W3Lx2-Y1y|TTSfByT6FAvg6_1kbtMFpUXO@geCwm27N*R literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Weapons/Guns/Projectiles/projectiles.rsi/impact_beam_heavy2.png b/Resources/Textures/Objects/Weapons/Guns/Projectiles/projectiles.rsi/impact_beam_heavy2.png new file mode 100644 index 0000000000000000000000000000000000000000..b5d43d2bf06e037592225ce7383fe5abfacdf283 GIT binary patch literal 1472 zcmV;x1wZPx)dPzh*K~mh+@EEs9 zEU{_Q(USs!kSG!%0Z%bom}3Sr#^W*Lz~1w#B4aqm=gj~4#sL_HVHk#C7=~dO=G<6{ zp0xe0cT7iqCq_YA);m`KfJShQC3^DD@Sj@I-zofsQ(+XelTz0b52*bWI)9d>=*jh9 zwsWl|9)M;S`0QKxaCS9-0$=Z3p%Gli7n@zk4@j3u5SO?6c2$~PjDlx*7rhqp!72gN z=8+?-XbPL^2ke$)6OsTlyW5MOed_>FU=QKnTmS&pgIQeS3G!iM-v&>92)hnMG1v(D z)@>lQqlZvSdZsU*{rI<{*FyFwxF$Yj`ccBZXPdb_2k>b1Rc&?N`)zmZl;}Jh`119A zfa3t4y8W+Dz-RyP=dJ^kXJ5rh4JhJ(O1cxYWED+w?s&}a14{57KJQ)2?gRQq_rq%B za;l@C_rLGqaufvM;3&w({@G2$vgQG{6CqQ?<*oew;~N0Yz+sb!-y#9T|79k8wh8!3 zC=u#fP?=_!DM^{tP=;X`hG7_nVHk#C7=~dOhG7`SF<-8VC;~~sRlDoKtnfy-Elbgp z=?(cW-HKd_o|IBb`5|Og+j66zEtjGv<%dXYkAk)|k(ZRUOSaPXm!fBF-%1%r#@2%w z)`NSrUjB_mOQFrL6=OJA0Fwp$!3_1z6pijr)H_r705Bgru}L-WJ$%;M2OeYXkcEBY zs-vC=Aw@u1v1X%-F@X~9-&~;Hx!SeAk%Uli!ui-qbD;V_B$5=w&u(MiGp#zq$pSuN zL6lY>~>YXVtS(NhS5aE1W6PLGgI9VhGA%Udn7WO@zK3*lQ zlg!j<9#NmKv;Tcl;#biWt7y8XPHP0$@CUQP&46hEBtO+wK#fHs=v&$Mat|Yj{5&-*yaVkTTj&sxT0^4}JhtFsU zl=i{PbwK%?oM;5s+d~=3NMt>@FYG{`eP6xr=?(tPh4x(6Dw>)FGllW6aXyYa?2J*6 zt$okb0d*em9zJi!;U$h}0tNw~2gi0Eu(jV$<^d*6Ng2}ffb=NHrtkp;X2N&TYmJ7O zNlDl|bn7J!f~z%|BuVoz#AFc%V)I#}yKR?UO~R<~tp~HDl>0Xq@o=~ctoo1E_N|s8 z$k6h~H`(a^OsZfNP%Thr!D?V!a2LJSMu2RI2SBa;8~cD^U!s9mLkn%HtB4sk!r;Tx7 z`_{x&G{vu{H>b8;VzeorrH?0JQdRnV+W#e0#&>K*xdM>qn1nxy+&okiV#CQIdFw1~ zRJ&{v)Xn#BKCXrHaqZXB8-U{a&QroD0e8`B^01Ty|K?&V#b|b&2SF$MP?dTnD(6!q zvkB6b=CnT2S3a}V=bK=nxv@E$a0+No$e8|9gF^4#FNv;wKj)^0(4LSf^j|GXV%l%0 z_nl*Bn}t>#?Q3pKCq;Km$Oe;Oip$%x9O0OtS4S&~>{0Q7E4&nVoR@ zVd;b*u&dc`ZT_~^$D6P-;>y6aJlz#W!_ZOCPTrkQ!BFP}Rp|3|eHA6eW%6B9NS>~i zMD?VKYkfWtH+v&MCNp6GR4C51^aF+o$kWGHrO&4%0K02JuGgVX23`$i7=~dOhG7_n aDbIh*4ubH(u~6jz0000V6O3WaSW-L z^Y-pWzsCj=>>uivRI_)L?2=YmIM3?B+_l_JT@t?}I!_&FHfXqWdYr5~bmU)2{Z^G4& zsc&4Z4nDs;d$NVA@el8stM$rtYnctiZC9qv_S=(qasS257gsS_GHV{1_U2w$fY|-k zJ=#CL|C}|e`4axtL;crlt;tH|3}4oSZ(ir-D6nR$UWwH*!Q50Tp&^J7WHBZ|R9g<`ZW(@4C()JiqBxE!VBnF<+KU z30md&(XmAr=u8>6=|w=j`?xjlx6bLF_hqYeT(|zx%RlawP1IW{`|@-}Tk?HQ`L*vq zZB|f10l)TX{dKDc270JuKzZ#2waszQV`7+3bSqt)!_GM zliR-gC$)~$Olg}To9A+N>!TI#a*w}eSYb2cXk=({z%Rwm4M%qFxOO#h{Yhnpi17Be zw+cQ_U|~p~ni(qee3M@0YfeeiOWD&(C%*dnu1GD!Om^x%S6?RMpAKf4Yu*a%?^u<* zl{4OgA??%Wu7az%3=yi!CY5Zsd^=>5bf7TM8D)mrN6c4N@7*aE8d~L+6V1A1@~aoR zPk*X?u9*>4Gxvt!Kef`XV_`2DUKqV?djE4#p7koV%Qr;>0*z!@cR1IEJ6OxII6KUX znfuaZHgjUM`2O|NKk~#b*0oC#3+yfcN;0iT=e@vq%=oWJ%C!@#S$?dT7~Va1*Y|uo zCb=$-=xfiXc;`D>9Vlse(=}s(;QhxjYtFs;r6m|1-ndIh|4R0}?~D%H)M6E^b@;CA z;6HJA?uOlS4FoZOWm@dX)M|%=&*S&~m5=-{EdM%KOH4ha;qiQiYs>{NxSl$zPw0Sy cvXA@^4gMH4|K9ipm?;@NUHx3vIVCg!08Z4qGynhq literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Weapons/Guns/Shuttles/kinetic.rsi/mag-1.png b/Resources/Textures/Objects/Weapons/Guns/Shuttles/kinetic.rsi/mag-1.png new file mode 100644 index 0000000000000000000000000000000000000000..99f8264d14a1980702e04d86b62e0d84e482a9d3 GIT binary patch literal 154 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=jKx9jP7LeL$-D$|LOfj@Ln`LH zJ!dHD5WvuO@&D0)LwOS&xSC^yb~|!$>XfM-sYtSDuja0aX96k*g8c#aI`l3_wC`Jz sxm)FA?cAIFvnub#{bYp5GBE6W&3Jq|7n7&-IgsrPp00i_>zopr03WL_(*OVf literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Weapons/Guns/Shuttles/kinetic.rsi/mag-2.png b/Resources/Textures/Objects/Weapons/Guns/Shuttles/kinetic.rsi/mag-2.png new file mode 100644 index 0000000000000000000000000000000000000000..9ccfc11bb381b4bb751a8f628bffb7893002dbed GIT binary patch literal 187 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=jKx9jP7LeL$-D$|NHq)$ literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Weapons/Guns/Shuttles/kinetic.rsi/mag-3.png b/Resources/Textures/Objects/Weapons/Guns/Shuttles/kinetic.rsi/mag-3.png new file mode 100644 index 0000000000000000000000000000000000000000..6facc2d8f6a45a0b8f26edb54c304def49b7fefb GIT binary patch literal 205 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=jKx9jP7LeL$-D$|+C5zyLn`LH zy|j?`5QB*8#p^5wxj1BIafz@6@_L6nn90(gz*WM^7RtDb?;zKXO$@tyAIxFBclNwL zP%jWX&=*PWk^5e{|E|bP-Rqu{u0Ni3dh7XzC31Vxr!a?fht5}dS~E*!r~Q4;Nz1a? v-_PW+ouRUO)tT-58N14QWFTfRFx1^*FRYN#IsYy;5hUd4>gTe~DWM4f(0@k( literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Weapons/Guns/Shuttles/kinetic.rsi/mag-4.png b/Resources/Textures/Objects/Weapons/Guns/Shuttles/kinetic.rsi/mag-4.png new file mode 100644 index 0000000000000000000000000000000000000000..72473343c8dee8a5d1a69a61f53ef70f8b5f713a GIT binary patch literal 207 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=jKx9jP7LeL$-D$|Iz3$+Ln`LH zy|j?`5Ca3tf&8WfRu(>AR<7n1ZK?tlY6q2PFvT`HhBmBo-oUg@ry)ehtq@zS=XvUCGym{c-`@ec#8r{fC&sz|gS&JL?;JMcu`QQpO-LPgg&ebxsLQ06i&4KmY&$ literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Weapons/Guns/Shuttles/kinetic.rsi/mag-5.png b/Resources/Textures/Objects/Weapons/Guns/Shuttles/kinetic.rsi/mag-5.png new file mode 100644 index 0000000000000000000000000000000000000000..cea633b3bcea46125cef5cf3491feaf3c3a26ba9 GIT binary patch literal 210 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=jKx9jP7LeL$-D$|dOTemLn`LH zy`(6_n8?8TV7qaXHpi@-<|Q0P(*;V@FS0J5V6HLA;hx%#rfqr(|FeJWRR@rer>mdKI;Vst0Ck>C A?EnA( literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Weapons/Guns/Shuttles/kinetic.rsi/mag-6.png b/Resources/Textures/Objects/Weapons/Guns/Shuttles/kinetic.rsi/mag-6.png new file mode 100644 index 0000000000000000000000000000000000000000..4a892b1ef2ab8af98be17b44874174da8de4c842 GIT binary patch literal 212 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=jKx9jP7LeL$-D$|`aE46Ln`LH zy`(6_n8?8TAljF{7g?82V0FFaa8GSV(>6VY|JiB#-!r{GJ9|1% zD-aw|==sHA`>yN#f7t6Q2_@muko`CbyV<&}d_MG(O<1ZD@b-BTN z&hIEmn3VHcYrkAU?(9dgHVaA;9x>K`g_y;_Akm=DFJTy-nx5VZ67qEQb6Mw<&;$TC Cj7+Nl literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Weapons/Guns/Shuttles/kinetic.rsi/mag-7.png b/Resources/Textures/Objects/Weapons/Guns/Shuttles/kinetic.rsi/mag-7.png new file mode 100644 index 0000000000000000000000000000000000000000..f2540aac061c2a6681cfb12c65588de84e7373e2 GIT binary patch literal 214 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=jKx9jP7LeL$-D$|CV09yhE&XX zdr47zopr E0K+O!cK`qY literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Weapons/Guns/Shuttles/kinetic.rsi/meta.json b/Resources/Textures/Objects/Weapons/Guns/Shuttles/kinetic.rsi/meta.json new file mode 100644 index 00000000000..537e6f85385 --- /dev/null +++ b/Resources/Textures/Objects/Weapons/Guns/Shuttles/kinetic.rsi/meta.json @@ -0,0 +1,35 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Created by TheShuEd (github) for Space Station 14", + "size": { + "x": 64, + "y": 64 + }, + "states": [ + { + "name": "ptk-800" + }, + { + "name": "mag-1" + }, + { + "name": "mag-2" + }, + { + "name": "mag-3" + }, + { + "name": "mag-4" + }, + { + "name": "mag-5" + }, + { + "name": "mag-6" + }, + { + "name": "mag-7" + } + ] +} diff --git a/Resources/Textures/Objects/Weapons/Guns/Shuttles/kinetic.rsi/ptk-800.png b/Resources/Textures/Objects/Weapons/Guns/Shuttles/kinetic.rsi/ptk-800.png new file mode 100644 index 0000000000000000000000000000000000000000..7a11cb93a5b297ea4047398cab89997744968cff GIT binary patch literal 1096 zcmV-O1h@N%P)Px(0!c(cRCt{2nafWbR}_aoOcWfVAmhr^9z5{_A}9-^hDZ)cSBZpB(_I$nvfXsS zrhh?Mq<=v-S!C00yI|K!5fa@s#8MxMD^;;Vz?Q)#wFCx>#Di)ki{XyP#7UIab8jE_ zTX{V9j?X#%orkYMqtR$I8jVJy(P%UpjYgx<$YRvU+M`C+R%yd2RUbTRWbOW;3@vk- zQLwivxjq$k1XO&eaNhptW6pf?A^k%cR4GA8003I%Gz0Iauzua3WlpOyLtP5=mml){ zoA&FLB0Hq#T{>>OR_g1U6{$A$TmiztZjPkmhJE?s6p7d{6Nz&j_X?#3rRpw#{i?mM zdhXw$rvXUE4g1!OtK{+<038NlB++0E&-KY+ixr)G+X}$x!%oKydvRf&q-g+74M+xK09ckqeQ%%o-hNyD#|i)^ z6&4rf-RJmar!NW+ju%P|w-W#)V#6e2!?5C9cbx-(2gmCRr3SZdTouKzr~O~xTM86P z4Y&OXO4VHwv0<{;(;Yp1`gpxq15hki+;#{lzs&Tn3!KbhaV@4nXb(1C=O6s?JKgsE zYuligZb1-qb6y5g&jW;GkDhG0QU}NRM^838*2qH1fym@o+;te7fJ~0XRhXjYKxDgC zXL2m=s$g;~&UUS?!W1<%0B~mmfz0vOi*yAfO~V~_<}RNHoGuWJgq%sy69^eduK`Dg z2?DhXFLeP`DIh%nfzu_9B9GbmDN5nH^Gr;=2jHqgHp)(g!};K)@Y_4Y z)ug_QvKk=R{9u)EsX?Q1OZQPx)DM>^@RCt{2n$K$!TNKAXc|7ou+(}6%g5gPE9yGCJX+SKlo4p{o73{WKp$iu- z1h;Nm=pWEOAf#)5Y;+mabTJSj37Tnee(@9@^A`4A^J8jLI(K|N=L><%+@I&%bI$kN zdj~RP$dDmJh77+da%m1GgosSjJhj|$9DLtTbxyyhHINj(SS*sy=P8v+s%$cu5Qd?A zjM7xXZ)puQjW7(EOeVmB@Tntp1-PzzuJ^i;x&n&D;KKtcR7xMr7O{39R=p!5*V@%a^ zU6%q-St(;5dxT-A`j_J+fkYHw7)ERmTwh-YP)q=D`SRsc`;jal@!{h~6-ej%ACJdL zOkJM^*tU)9x?H((W$Au`69vef;%GEdIlzC~0^%SOp?bZ}yLaz^uX%qE1U!58Y@zg%U-0SUQc)oPX1)m56!Ch&Cyr658GHa9nU_39PJ$H(;h{h45@6RDgB zbUGdS{XR!WM;sm=;`_c5-t#H9-Ba!N_xE}6;>7|BbUGd6 zT|%u^n?4Un>`){T3-EnEXWO=-s#>k4_Vh9Unx@Ix+8Udin+PE=jIY~d!!Qs+U|AMx zYil#Y16qZL1YICb2@-KEP%f7-41;pHjPLu{wjIj?I)w)fr^3_jAfx^~PRj)2&}cNY z2@e_)p%Y7pWZ;@VF6(x?Jb(T?wr!))Q1ztHI)w*~_X5%qwzjsYR4ND|*xTEi$p?Jj z&&ktdDg6EW_wjw7;c&?A?ygqhA*Be#koE@?i9!ew2_d2z zH*Q4of0Ff+fcCwBWP?_#MWfL;^}x7eYjHUxaFB0j(||FH7X7 xG0Pwb0!pP)Y804?uT9h0Sr)KNy$l(W!@uUs>V`6) literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Weapons/Guns/Shuttles/laser.rsi/lse-400c.png b/Resources/Textures/Objects/Weapons/Guns/Shuttles/laser.rsi/lse-400c.png new file mode 100644 index 0000000000000000000000000000000000000000..7bbc5758479855fd5f81b03fa881110a5ac3c369 GIT binary patch literal 843 zcmV-R1GM~!P)Px&1xZ9fRCt{2n!jt~NEF9EzB{-(YwWXZrMYejgG0)#HnuO-7RNb_TqUbD+P6k#=)kjB1=6f8+or&;M7lXbf#8iKp^8bWnHvA$nh*GMa zOePG6L;C&xtA15g@$m2fP)mvM!v#=E)wTBry+1v20OvP$pFY3v(;q*O|NM>Kz@zSc zLkWo>QUiWhj%n{ceMW1|U@$Nrt#wP3r~W@0kz3#?`s0Te8Ib4s_Y5ct>2PEOaPlt< zdcOkD|Lc*bk3hr2BUE1jsPiv8N(6?G0EdT%IL`O9J~%jd)$i`^4uG;OiK0j%G#LS| zuC5pkhXCB(-oENrRTV()6-L955v%iP?n|f zmq28)(ail_*CmP~mdhm<7Z)T+g6DahoSYB@0rUBsEXzdK1|su-q9}TC9Gic3JRXxI z33;BABnjj37(o2TgYaS~j$_l#^SpI^ZkIxAE#Uh;j^i+yOqk7PE&FUXW4T;%e}7L| zmTWc~v9*9$1~`txbUJ0RSfG?@*_2W&77M1+sVS6Fh)spdvgGFGhBQq%K0a>QilX51 z^3r60Bq9P7MbX=AHfBGdDS8dp*VhC=(DIjv3xtcH*4nfOgF);1+%ARaYOvW1Nz)Y1 z^8oNXk2FnNc1c79a9x-Ad`=Jqt(jmm3F-pz{Q$>t@O_{2^K;YZ`#ykp0R+JsP!vTk ziXyh#ZL6oUazG?0Xh(1wOZl2ZmZ9AT~@1=bSQwZ z0L`LkG#a(~N25_^r$g`lWJpv1rBto8X20LJ`uF=iTI+vxdh}mmi=gy?wg}oH__nY` zPaDyiWwBT+7K_DVu~^<0e*;m% VX|WYLg@ynC002ovPDHLkV1o7Kk>~&b literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Weapons/Guns/Shuttles/laser.rsi/mag-unshaded-0.png b/Resources/Textures/Objects/Weapons/Guns/Shuttles/laser.rsi/mag-unshaded-0.png new file mode 100644 index 0000000000000000000000000000000000000000..135ff86ab5863ce6b2ece46739e7a7eed6612673 GIT binary patch literal 143 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!3HERU8}DLQjEnx?oJHr&dIz4ay&g<978JR zygg^g$e_T%V6ds+;*n(`Mto%-9^MqvVFIdvfQJ0Jrr)2GT+4}viJ;ICUl|&9v&n6p R(|!ab?&<31vd$@?2>{FeBq9I+ literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Weapons/Guns/Shuttles/laser.rsi/mag-unshaded-1.png b/Resources/Textures/Objects/Weapons/Guns/Shuttles/laser.rsi/mag-unshaded-1.png new file mode 100644 index 0000000000000000000000000000000000000000..e617be2bf91b31a5c7fbe4088969347adab27e5a GIT binary patch literal 197 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!3HERU8}DLQjEnx?oJHr&dIz4a_T)@978JR zyuGlSlgUwp^}_bfl?j~8hn6&%CF@=@J}Z&4YePbY#*A5K+?FllpHnQgV?GB^7X&qT~fW}k>CHiD(@csx^YR#$xnY1j=W`HI4~h<<=;x{?_pWz-%U#V@)xEL bP9MmZ_KcE!p=x%<1SIC^>gTe~DWM4f?`TB4 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Weapons/Guns/Shuttles/laser.rsi/mag-unshaded-2.png b/Resources/Textures/Objects/Weapons/Guns/Shuttles/laser.rsi/mag-unshaded-2.png new file mode 100644 index 0000000000000000000000000000000000000000..eb16f29278eeca62642dfd4715855dc52b2a6724 GIT binary patch literal 207 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!3HERU8}DLQjEnx?oJHr&dIz4aymU-978JR zyuF~y<>V;Bc475FtsO0liK`aOF4SF@ZuYq;RG{Y=`}(M3DO=+T&)q!mU6>K53j+Q$ zhq`5GZHqrjXuRO?`K=s=V``nsaESYQ+`bS`})j> m)LF)lFZb?~hZzB*8`j@rOHsD7m)WNR67qEQb6Mw<&;$UJs7ERQ literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Weapons/Guns/Shuttles/laser.rsi/mag-unshaded-3.png b/Resources/Textures/Objects/Weapons/Guns/Shuttles/laser.rsi/mag-unshaded-3.png new file mode 100644 index 0000000000000000000000000000000000000000..a7c4b3df0619df93f08881f4fc1bea520fd11782 GIT binary patch literal 244 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!3HERU8}DLQjEnx?oJHr&dIz4a@KjeIEGZr zd3(b!?@)jM%LT`-J8p~oQaPVoV-4phf6%axr`20vnnjapl+^M@ySr{5tIz6}r)|CJ z57Y|*4gV8@4NEe1FTHR3x$?%d!gB+l!a<_-1 zulx}Ht3HJHUHSQ%+V_+1OsWp;vU*=X!LB&-|0ZUM*r# literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Weapons/Guns/Shuttles/laser.rsi/mag-unshaded-4.png b/Resources/Textures/Objects/Weapons/Guns/Shuttles/laser.rsi/mag-unshaded-4.png new file mode 100644 index 0000000000000000000000000000000000000000..3541031ce54b188b17415c239b99728cba7721fe GIT binary patch literal 249 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!3HERU8}DLQjEnx?oJHr&dIz4ayEOqIEGZr zd3!_A?}&p0>x1KMS0=4-GmQ+2J}7#_y5K+@TOj96HCrd)9ACpLkN@%hwKM*-*F5Qn z3Q#Wu9H{>gAZWGa?zQ-9HhbrN{<|?{&a6G><5goVR)dJ;9Toe5;l_Z(;g!vrL&i d%o-S7|AqO$30)(rtJmc~LY}UEF6*2UngI2dUYP&@ literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Weapons/Guns/Shuttles/laser.rsi/mag-unshaded-5.png b/Resources/Textures/Objects/Weapons/Guns/Shuttles/laser.rsi/mag-unshaded-5.png new file mode 100644 index 0000000000000000000000000000000000000000..1d76b9e0d45bf1bee88d4be5dc890ee735c687fe GIT binary patch literal 253 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!3HERU8}DLQjEnx?oJHr&dIz4a<+TAIEGZr zd3(b!>#&0W>xK6MSEPcL3*A@|I#K&b`3c6-nIc-kIv)gC^6qN*-dQd^xpw`{Pv_&s z*vuG#x*_0SbFAx&EBv=BcBKCQHtF^AS(Pt875>zlx%AXuzNj~R3=AfjuiD?fzLFno zpL2C{NX3+Y=R*%ZemL#=_vA^%MJs15I`>yT#&0W>xK6MSEPcL3*A@|I#K&b`3c6-nIc-kIv)gC^6qN*)-;49Z+dSUeeVBh zk<)5G-4Jk~e#2@BtFMR6 zwXe1EZgqe8KgP7e=FX>Ibv{LYdZC)H?)-N=wr1(y`LEnQbLcoc2BK5<7(QQ8wfsNt n?ab+V$=A|;GsA3y&>z(8k6zO?J9d{-2qfU?>gTe~DWM4fdURz% literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Weapons/Guns/Shuttles/laser.rsi/mag-unshaded-7.png b/Resources/Textures/Objects/Weapons/Guns/Shuttles/laser.rsi/mag-unshaded-7.png new file mode 100644 index 0000000000000000000000000000000000000000..bbab730d892ef72e72abe12ebaa4bba2fdc909de GIT binary patch literal 259 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!3HERU8}DLQjEnx?oJHr&dIz4a`t+#&0W>xK6MSEPcL3*A@|I#K&b`3c6-nIc-kIv)gC^6qN*)-;49Z+dSUeeVBh zk<)5G-4Jk~e#2@BtFMR6 zwXe1EZgqe8KgP7e=FX>Ibv{LYdZC)H?)-N=wr1(y`LEnQbLcochM-e&jh`>6TK=E+ ncII@wXR2sI4g9JQX{an^LB{Ts5rB7w7 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Weapons/Guns/Shuttles/laser.rsi/mag-unshaded-8.png b/Resources/Textures/Objects/Weapons/Guns/Shuttles/laser.rsi/mag-unshaded-8.png new file mode 100644 index 0000000000000000000000000000000000000000..7cdab8829a50ee8c157c8d38f659de44fea9324d GIT binary patch literal 261 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!3HERU8}DLQjEnx?oJHr&dIz4a`t<=IEGZr zd3(b!>#&0W>xK6MSEPcL3*A@|I#K&b`3c6-nIc-kIv)gC^6qN*)-;+VZ+dSUeeTaw z^WB_4-4O6W{*6|f-`@?r?a|-z^>@~-n>k%ie){`Kv8(R9UvTsd(E7>C>Tc}w`)l^~ zaM)h&R`-+tV@xY-?tJ=H=TqdT7aDzK=l|xONbk?~S9_lcYB)R=Sy0Gz!Gbj-=B9Q+ t+%A>p_cz;qzLa|AR!$wvN(lY$0sF2yx>l=#-cJJwc)I$ztaD0e0svvUXP5v0 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Weapons/Guns/Shuttles/laser.rsi/mag-unshaded-9.png b/Resources/Textures/Objects/Weapons/Guns/Shuttles/laser.rsi/mag-unshaded-9.png new file mode 100644 index 0000000000000000000000000000000000000000..8bba7f1a0f5a8530d1a432a1e2f3102dbdf0890a GIT binary patch literal 263 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!3HERU8}DLQjEnx?oJHr&dIz4at?aBIEGZr zd3(b!>#&0W>xK6MSEPcL3*A@|I#K&b`3c6-nIc-kIv)gC^6qN*)-;+VZ+dSUeeTaw z^WB_4-4O6W{*6|f-`@?r?a|-z^>@~-n>k%ie){`Kv8(R9UvTsd(E7>C>Tc}w`)l^~ zaM)h&R`-+tV@xY-?tJ=H=TqdT7aDzK=l|xONbk?~S9_lcYB)R=Sy0Gz!Gbko4wK2c vHPx)Hc3Q5RCt{2nn7#ZNECp->=tL&Qe8vSP|2|1L!k{AN^&*i=p1rs&-w}e1^EH~ z1^x*-H`Tgwdj8dt@=g*%3zUh8;b_PJF(~?d?l#u7a{f&~Y3& z@*5i)Se6Aqzu#X;cB9b%W?pu3azdxm;r;vfxUQ>Y5me;?Yp&}~#mL{idsn)0tJT6N zm%mGHdU{HlrlJi_PEJUYM49rS$O8mo(W=+$)M_;V48xEHC>zF&oi)I4I3x%H zKhYntY?Ua!mVK@jl# zA9(TWY;^5fjc&KQv~IiICK?WTad;@}EXw-dtN~&Q1VO+bzx@t>eW7d^bi3Wz*0``E zq-jdG+r@Dl09i-K$;%Uz?gCd~tgq8(G;m#aPWf`VO!<6$FbsoMtA*>jG#U+z^>rOx z(_?^#_8t2D{w3uFi$>`8`#iLBbIv)m7~n@HR|ELI|3k>Qj@=pw((&nkE40*RS%KtCU|X6Ln0}q}6H> z1i@UQMHR{nV4CK%-ELE@R&g8$&-1Wt8-Vc7FTjO@BBix>WuFmsY}>~3JQ+Z>+ij&r zP@WI4EQ?;RC!;!nNNQM?#b7WXj$>I?sZ;=X^yrby^kkDNLiwGY9Y&*((tNaq$gw%%7U{wtXRVy?qX zNimAqQ4*dJh9TqeSO!7j8jr_>VMwpnlSVjCv;eb=P}VrvHdjH(E+9Jg^5sk5;!u-y zQ86vXvp?S$8m_F2$-!4i=OhmDDeQXh}pJHrBYcsKPQt3 zM@L6Xl@}O>!O_tXlgVW6ci{<@N<}KK$^a{SK$0YDdwY8~dSi2)^8fWrk|b-LPDlBh zA!SKX6>@H)9W5P)*=`{YLur~WJr0X9&-1hyRnL(t!%ahBU1&cI-ZT`}g;o#9hQiAj zjYjP5?&5i#wmxZ@XQpXRv!QUW*OTFI9LH2D72-ISp)SlqVIAv$Ru9OY6GTu05JeH? za+zMQH)jMLXf;4K8hmh``xj)RKyixHfi?p~QFP-_SSQ+cfmK4`Jkh!ht`Z98#ZR9V zzLiiI=HCkdoSvQnXb**ddJoWk765qs_%Xm-UJx$4KquM_VB0ot-n>~__Vnpf27`gt z{%AFTVHmu7_wL%aJ)4`G8hfO94LCkNzE*kP_c=a3*4U$4SOo9izyDojd7*6^gxOZu zY&QAu;ltAMCr_T>`@Xg<5HuSAE{w1Y-O9r)7yz#R`@C-D0saM_pTcKR%4bLb0000< KMNUMnLSTXgy`sqg literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Weapons/Guns/Shuttles/launcher.rsi/exp-320g.png b/Resources/Textures/Objects/Weapons/Guns/Shuttles/launcher.rsi/exp-320g.png new file mode 100644 index 0000000000000000000000000000000000000000..bc76168636a21ca488878e2b67226c75e3e601bd GIT binary patch literal 977 zcmV;?11|iDP)Px&i%CR5RCt{2n!QfzNEF9^cXi1Xc=#xyXfYBZ(nW$I9c3g+*W?Y-Q&9T>@&xH= zQYUpveDeU2Qh=5s70wE!2$Aj8WmobRVJw@Ee3%)ytDT<|IX<5Mc+SBy=Zpgw3rqYHvS`}nlqKnM|+%jNX>-1b2bB;SX_q4pqX?OZxP91e5o zrB-JUv~?_mh>OJ{)!M)sjA2*2s*G)O^}0 z9v>e8czAeN`6#tI`H(5_9&}FuEuFrW_8i9nz}ncDs|}+FfNr<@;+l>id{y0{5F$Q5 zKgYIhc6WCH7>!1_u1oFgj19|L*hjn5q0wk$^uF)YY&K)nK~Nq5AaTB4uO~Lgagx98 zJi;i#aU5LNO>CE!mpX)L{#Z4D?E zi)?Ogt{i|U41w8`AOisUszT*yFzx(XWpAt1TFUm+A27=XdG{3aP!a$kL@YlSYwL4U zU#r#PVr@O+@N2f`jK^ax*48ukQZe>-uL0>*-*sKAZ{OhWzW^8v2AQ_CvonB98%f&M z?sPKO^)mYbU!0FI81I6OQ|oH_jdJ*f(#FicYB zBAsfq1i<%wf*`>2JPr;H0Ps8yfa!EPJOA+`mrga>-UxY~N2ydw&P%0I;tb3xyYy#S zooci^0h7rD>y=H9Wm!xn6X4}aE`*4e(Wyq;ZqRWYEX&GNbYU3M?RMW>$nxsmgZ7uA zzd9xWpFM!j#suKA2k_Zw55WHZK07-*AEsLstpTuY8_)CT_xsqktzDM~ZF>RBvgr5w z^m@I-magzr>++&40QdLzTwh-&=jrb{ba~PG<7l;7O&mBrKBm{}Ev)A9>hhxfKSZk4 zD!@ukNnD+w`yZc&t`^T$#S) h+t%02KyfH&Fy`I3nw?Rwc;y?Ah^MQc%Q~loCIE60EFu5^ literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Weapons/Guns/Shuttles/launcher.rsi/mag-2.png b/Resources/Textures/Objects/Weapons/Guns/Shuttles/launcher.rsi/mag-2.png new file mode 100644 index 0000000000000000000000000000000000000000..eef8e7aca58894a5328129b69f45cb15405f194c GIT binary patch literal 159 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=jKx9jP7LeL$-D$|B0XIkLn`LH zy|j_D!9l>~qHB-H5g(m{2VQJoj^6yvbSvX|=X==?{0#(wY8mz@uQ&X@_57Y=f2vLg whbtH51-n@$&1~-|y5g~I`Biq15-9jz!W^T;?-B2ByA&ki>FVdQ&MBb@02{V5oB#j- literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Weapons/Guns/Shuttles/launcher.rsi/mag-3.png b/Resources/Textures/Objects/Weapons/Guns/Shuttles/launcher.rsi/mag-3.png new file mode 100644 index 0000000000000000000000000000000000000000..0dd49f106519d23e75b45f471d7d42208c3f7b49 GIT binary patch literal 178 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=jKx9jP7LeL$-D$|ay(reLn`LH zJ-3ke5Q9X^#pV!4r-Bwi0gX$%5xr|~ELi!Dr)0cvWfypkM$ zy*T*ty1$y9+q`@3=(nF*d-mmy(_8*8h)jB7xyStFZmIbBOWuFd2C9aF12Ow*(xp9i S>`8tN67h8Pb6Mw<&;$Uj^+I<5 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Weapons/Guns/Shuttles/launcher.rsi/mag-4.png b/Resources/Textures/Objects/Weapons/Guns/Shuttles/launcher.rsi/mag-4.png new file mode 100644 index 0000000000000000000000000000000000000000..5615c7b5c3be42d7fcbed91eeddd155d9739ab8e GIT binary patch literal 176 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=jKx9jP7LeL$-D$|vOHZJLn`LH zJ-3ke5Q9X^#pV!4r-Bwi0gX$%5xr|~ELi!Dr>YPI2yUr+uLTgMGl3FDv6r)<)>SC&nTAJ?DD-1q4o3s6(T{}s2l z`5oVPZOha3zTFdF?^r!Y-||iSnoRH7?uoyXUmE#;t=T)d^3--FpkgTa^NLxs)%03N Rry|H&22WQ%mvv4FO#nI1L)riU literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Weapons/Guns/Shuttles/launcher.rsi/mag-7.png b/Resources/Textures/Objects/Weapons/Guns/Shuttles/launcher.rsi/mag-7.png new file mode 100644 index 0000000000000000000000000000000000000000..1e1dfaef55c771131a40f101f03a95f6c7536ed4 GIT binary patch literal 191 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=jKx9jP7LeL$-D$|Dm`5sLn`LH zy|9tFAOAkRwUGtm#ASK@t1bJ=bF@kE;T;Fc~`&+O2XJm`3oP7E%%c%G1#~Ss^GvYs2{WtM` f!wk|00sqd6?_BM)VZZ1%0g!;FtDnm{r-UW|te-|^ literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Weapons/Guns/Shuttles/launcher.rsi/meta.json b/Resources/Textures/Objects/Weapons/Guns/Shuttles/launcher.rsi/meta.json new file mode 100644 index 00000000000..75a018b6650 --- /dev/null +++ b/Resources/Textures/Objects/Weapons/Guns/Shuttles/launcher.rsi/meta.json @@ -0,0 +1,38 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Created by TheShuEd (github) for Space Station 14", + "size": { + "x": 64, + "y": 64 + }, + "states": [ + { + "name": "exp-320g" + }, + { + "name": "exp-2100g" + }, + { + "name": "mag-1" + }, + { + "name": "mag-2" + }, + { + "name": "mag-3" + }, + { + "name": "mag-4" + }, + { + "name": "mag-5" + }, + { + "name": "mag-6" + }, + { + "name": "mag-7" + } + ] +} diff --git a/Resources/Textures/Objects/Weapons/Guns/Shuttles/pirate_cannon.rsi/base.png b/Resources/Textures/Objects/Weapons/Guns/Shuttles/pirate_cannon.rsi/base.png new file mode 100644 index 0000000000000000000000000000000000000000..eb000ac7b504d1aaa8c151ca2d7e1a2156bc9c93 GIT binary patch literal 1440 zcmV;R1z-A!P)Px)T1iAfRCt{2nqO#BR~W#5DI2+0cYB*&O{eE)91$H&LV$H&LV$H&LV$LFaq6pwpD@woRi)^1R>P(1;K z;0Js55silH&XLVCDi#@v$GvDY%#mEwJD*MmgrJ7512A%KoR>R0RcxgO=?WN%$2}ov zJQBff?eK25Zlxt`kq4GCSzhSc&$UdJ%;H_y+o>U-Vv(VE+?&tkaCdgoXc`opBDrj~ zYEH9d(P$cE7Vk1KaY4zxK#>9f5{Z5<+`6?a{O{S{s_t*Gwm%gmNIe4Ltk36i*lT0; zga^uFjiv#>U}vWn(lkb=rlcxDS`-kD?{X?dJQ6|EH40AgZ=WkTMKoO_77AhLy7b5( zJq$jncQ-AAA7*Aa*t1Wn5~L|$bZRPaF7uEdA8z7oZW;K?ydOuSY2es4W3zW?Xz$_F z)g|(-D{Gtb6wuo@;Ay&6HP#ZgXtpf2Slesn3n$nTwyMT8U1PDOUDh_`IKke&0Z(}I z7yrl-?bycHY!cYm3Ysm8j*d1aE=^K$3mog%MmnA0S1iJ(_^}#l<8u*QaST4Vo>h>S{ENvhV=ubcVd^GBI%>P;iR>==eMd%4&h*-P4Q@2LVXk zO5xac)s?!HqU07B9}aT7dz!rKa%N^mdM=<$0fO=2ASJg@_Yw*Muqh3B>KJ4si{CZ zodIBQM5mavH+-&`v>6=HtHu(Eeoy!m8A#J|Z{L6i;Fer$CsT9(`>#3x2ySj?<=z~x zyg6Glr^yT>LaB@h0FsNLM55mVu$>IYyQevNcvsCYyq+^BN__jvO-^6wqR9*cNG*({ zpEHrhUMM}}%!v}fhDxZse`8jS50JWuXoi@U!Px8_bghxGcb70?O#tZe{u&2(?6Ve1 zZh@Y_10`WlNfh|z;$_&fn*I)b`8+{Q(v&u5&iGjIK4JX&OOItI6yNPLUPY#dTduZh_aDpJVTyom`r{Dzzt|EDvZa zIV=F0R$U;OritS?mEX9+ch39c!j(h7tH2x5p&h(+a@B$(Dt1s=B`qD&M zF;r;<8zHQtY11aUcgHx`vyYK;<2YG4X)q{M!1;7K0JToA5^=A4cMK<66f zjzBV>R~7}NDWLKNXgm_Zv<%2Cm(5(1%#}HSAQlSA+Exuxe1ORQE~irL-Ln(ZG7voh zLA@TIP);(Rm$9w7NV5RbGI;&a0WM8m1=gZ~ZZi7Tt+irkspc8c5K+|*1BscSI0C|n zO@6$~Gh$6Nw8sFd+F_z80`O=qNik{D^TEykemN|t6#mg%l0zqJJ465%KMj}Xs8WKG zJYeDWU5ZKjvBCo!I+-a8zi?a4pCy$2Kj5P`@Bq5n4Bq>qehPf*ZHMWF)tunNuhr~L unF0ht5gVaOa33EZA0HndA0MCpIe!8L%45pi4-~2Z0000Px%!AV3xR9J=WS3PgjKp1`;Sq>ylB+>-6F=a@rstS&}pt3}Q33&%G^8=Wf^CLR< zAF!t*CppP;7&RE!2Hl^)$TT#Oe7rqY^WT;}KNvUO70Z+lBauom)r?>BnapC)kGbM`* z0O*AR7r}&xuu@pyeHd>VqV`#RQ~+=tM~XBJ*KvgHN&XmD1ptpyc$B6VAVL~{Dj@`h zVay$j5E84)`Xhuuoo=KO%5%A#l=EqE42EHFkr4ruQgpjrOePbdV@=awnx>Qp8Dx^X z{8_|O@Vju+S_prO2-rV8mU6y-dW^@pTCCl&tbpZxb8}P34+~R|0w2!#5CBjwEuw3W z5(U&ti#WLAxPi}u*J?GGrYSWDw%9XEN*3$I3f7C2R5QRhOG*~^T5tH}Gx+oYJ3BkP z^p5u)z_`=s*4{egSp)T2fA@^b-I8002ovPDHLk FV1o6ySr`BS literal 0 HcmV?d00001 diff --git a/Resources/Textures/Structures/Power/cage_recharger.rsi/full.png b/Resources/Textures/Structures/Power/cage_recharger.rsi/full.png new file mode 100644 index 0000000000000000000000000000000000000000..ed52d0851f2b50677c4d145d4e81a41de40953fa GIT binary patch literal 919 zcmV;I18Dq-P)Px&QAtEWR9J=Wm)&aoSIb`FYFvAACpW|VJ~(c7|xk@ z-sgRvIp>{o&cJ^i3V>l4Znpt)xtww=0fu3?!$U(|2iV=)JC=wZ|IN$t7A33FmQb=P zyew~Zo39BGfASO2DC4ogwuJH6ASEi4tV*D7*eT8Ba!SN+_)x1sEDSXmN10N?FkCqW zKO{~8bR6E2RpCRe)^Vi5q6a{W#iR&NND#(jgVM+2H6qB~$|nL~TUIDiBW%kGw0DZ< zaU%eZ5I8~{SwIku5-(z!Cdp*7>tv>BHrcQZ+tL;vILR;Pe*7*; zI|@h)54Usd!}aEUettes zoL^XE+pS@}-veM;A7Oo~EE5J{S|8!{A;)%WGWpop7^ze$kmrY2>^-AOl&St9ruv8E z2y{Yme@Ajgl_&$*MY;KGzIe#m+L~;gonl=pgkW`bRmSSsc5A$TzbD@a;E$hvYnj+@ z_c+^bjknnqc^=rGAW+nSl>QZe-XCA#Kc6$KD4QU->(#bBG&`n)L#Rivx_d*9splA zDlbmEz7)_H*l`>Zi9|qJD3{Akwzt_8<)fy#-sj~{5Yz|Q+}uRbG|kOqGJy#@A)n7< t+qR-002ovPDHLkV1nviqyGQ^ literal 0 HcmV?d00001 diff --git a/Resources/Textures/Structures/Power/cage_recharger.rsi/light-charged.png b/Resources/Textures/Structures/Power/cage_recharger.rsi/light-charged.png new file mode 100644 index 0000000000000000000000000000000000000000..bf313a1e5ce510ddf8347c40771fcae70358adba GIT binary patch literal 803 zcmV+;1Kj+HP)4Tx04R}tkv&MmP!xqvQ>CI62Rn!eW~fdUii$W&6^me@v=v%)FnQ@8G-*gu zTpR`0f`dPcRR=oSM(uB6~(B;Og)ia%)oPf-NVQCy9m$nzW3+qSMnwUd?N82(+!JwgLr1s z(mC%FhgeBch|h^93~G@0k?XR{Z=8z`3p_JqWK#3QA!4!E!Ey()lA#h$6NeR5qkJLj zvch?bvs$UKR-gQZ!MwJT<~r2~;#figNr;e9Lm3rVh|sQ)Vj@N7F%SQ+<4=-HCRZ7Z z91EyIh2;3b|KRs*&BD~An-q)z-7mKNF$M&7fo9#dzmILZc>?&Kfh(=;uQq_$Ptxmc zEqnwFYy%h9ZB5<-E_Z;TCtWfmNAgn%g#z$?M&FbJ25*7hHFs{UbDTZ^8JgAd4RCM> zj29_;-Q(Roopby5PHTQYq5^WdJ4uHv00046NklDZ8zegN9Yl{Xphq_dW0Uqg=EvMRC<9fgdpld4M^xFT}|*eW;!;4ecxu1ykx$Y z$D3h55ClOG1VIpl|A>_pd`+6S>iWUzz3WWeda5T*^@3`n#AL9b+9*-3*#PuALxSgF zrrXrtyssp#XK#(o$1%OPsReMpM}D<*ua(4n90L$dzE{TOSQe&!*R#32siZ}pjbh3* zo7pJl>tmX}x3vID9);G6<0nL+h2tlWI!U;m&GlV9m8&k83>JI8J%oQgUj5Pam||xK z062a^i#CDZ&EwpV^gF|qXQ~VGbbzVf^=!5+!CW1nXwgo`0KFvC8Z*JfpJ$H&IMYw- zw2%TEJAq@9Spc=}bl2aZD8ipvfGD&G=n{p-``NE3!oPFo^@9lTse2kTp(y{K9fc3U hvHgM|2!bG-Ha|VMtG$t$m_h&m002ovPDHLkV1lB_cMJdk literal 0 HcmV?d00001 diff --git a/Resources/Textures/Structures/Power/cage_recharger.rsi/light-charging.png b/Resources/Textures/Structures/Power/cage_recharger.rsi/light-charging.png new file mode 100644 index 0000000000000000000000000000000000000000..869aee685a404a7a6b027c270ef6f504504f7274 GIT binary patch literal 1047 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 Y02}Ewnr@L;u>b%707*qoM6N<$f{Iybi~s-t literal 0 HcmV?d00001 diff --git a/Resources/Textures/Structures/Power/cage_recharger.rsi/meta.json b/Resources/Textures/Structures/Power/cage_recharger.rsi/meta.json new file mode 100644 index 00000000000..8a1714eac0c --- /dev/null +++ b/Resources/Textures/Structures/Power/cage_recharger.rsi/meta.json @@ -0,0 +1,52 @@ +{ + "version": 1, + "size": { + "x": 32, + "y": 32 + }, + "license": "CC-BY-SA-3.0", + "copyright": "Created by TheShuEd (github) for Space Station 14", + "states": [ + { + "name": "light-off" + }, + { + "name": "empty" + }, + { + "name": "full" + }, + { + "name": "open" + }, + { + "name": "light-charging", + "delays": [ + [ + 0.3, + 0.3, + 0.3, + 0.3 + ] + ] + }, + { + "name": "light-charged", + "delays": [ + [ + 0.6, + 0.6 + ] + ] + }, + { + "name": "light-empty", + "delays": [ + [ + 0.8, + 0.8 + ] + ] + } + ] +} diff --git a/Resources/Textures/Structures/Power/cage_recharger.rsi/open.png b/Resources/Textures/Structures/Power/cage_recharger.rsi/open.png new file mode 100644 index 0000000000000000000000000000000000000000..28d040cd32217924293b317ce1fb895c066e9571 GIT binary patch literal 775 zcmV+i1Ni)jP)Px%!AV3xR9J=WS3PgjKp1`;Sq>ylB+>-6F=a@rstS&}pt3}Q33&%G^8=Wf^CLR< zAF!t*CppP;7&RE!2Hl^)$TT#Oe7rqY^WT;}KNvUO70Z+lBauom)r?>BnapC)kGbM`* z0O*AR7r}&xuu@pyeHd>VqV`#RQ~+=tM~XBJ*KvgHN&XmD1ptpyc$B6VAVL~{Dj@`h zVay$j5E84)`Xhuuoo=KO%5%A#l=EqE42EHFkr4ruQgpjrOePbdV@=awnx>Qp8Dx^X z{8_|O@Vju+S_prO2-rV8mU6y-dW^@pTCCl&tbpZxb8}P34+~R|0w2!#5CBjwEuw3W z5(U&ti#WLAxPi}u*J?GGrYSWDw%9XEN*3$I3f7C2R5QRhOG*~^T5tH}Gx+oYJ3BkP z^p5u)z_`=s*4{egSp)T2fA@^b-I8002ovPDHLk FV1o6ySr`BS literal 0 HcmV?d00001 From 8c5898b0065cd2cf196c0383bc99c57c0f11795b Mon Sep 17 00:00:00 2001 From: Kot <1192090+koteq@users.noreply.github.com> Date: Sun, 21 Jan 2024 13:14:01 +0400 Subject: [PATCH 56/66] Add chat.max_announcement_length cvar (#23571) * Add announce message length to UI and make a cvar for it * Update comm console server-side trim to use the cvar * Rely on the new OnTextChanged event Because OnKeyBindUp only works for keys that have binds * Add a similar indicator to nukies' war declaration UI * Remove message length indicators for now cuz it requires the engine update * Rename cvar slightly * Refactor duplicated code to a helper method * Remove message trimming from *Window class as it's better to live in the BoundUserInterface where the other message handling happens * Rename to chat.max_announcement_length --- ...CommunicationsConsoleBoundUserInterface.cs | 26 +++++----------- .../UI/CommunicationsConsoleMenu.xaml.cs | 2 +- .../WarDeclaratorBoundUserInterface.cs | 13 +++++--- .../NukeOps/WarDeclaratorWindow.xaml.cs | 9 +----- .../CommunicationsConsoleSystem.cs | 21 ++----------- .../NukeOps/WarDeclaratorComponent.cs | 4 --- Content.Server/NukeOps/WarDeclaratorSystem.cs | 22 ++++---------- Content.Shared/CCVar/CCVars.cs | 3 ++ Content.Shared/Chat/SharedChatSystem.cs | 30 +++++++++++++++++++ 9 files changed, 61 insertions(+), 69 deletions(-) diff --git a/Content.Client/Communications/UI/CommunicationsConsoleBoundUserInterface.cs b/Content.Client/Communications/UI/CommunicationsConsoleBoundUserInterface.cs index dc7448aab1e..07492b310f3 100644 --- a/Content.Client/Communications/UI/CommunicationsConsoleBoundUserInterface.cs +++ b/Content.Client/Communications/UI/CommunicationsConsoleBoundUserInterface.cs @@ -1,5 +1,7 @@ -using Content.Shared.Communications; -using Robust.Client.GameObjects; +using Content.Shared.CCVar; +using Content.Shared.Chat; +using Content.Shared.Communications; +using Robust.Shared.Configuration; using Robust.Shared.Timing; namespace Content.Client.Communications.UI @@ -7,6 +9,7 @@ namespace Content.Client.Communications.UI public sealed class CommunicationsConsoleBoundUserInterface : BoundUserInterface { [Dependency] private readonly IGameTiming _gameTiming = default!; + [Dependency] private readonly IConfigurationManager _cfg = default!; [ViewVariables] private CommunicationsConsoleMenu? _menu; @@ -63,22 +66,9 @@ public void EmergencyShuttleButtonPressed() public void AnnounceButtonPressed(string message) { - var msg = (message.Length <= 256 ? message.Trim() : $"{message.Trim().Substring(0, 256)}...").ToCharArray(); - - // No more than 2 newlines, other replaced to spaces - var newlines = 0; - for (var i = 0; i < msg.Length; i++) - { - if (msg[i] != '\n') - continue; - - if (newlines >= 2) - msg[i] = ' '; - - newlines++; - } - - SendMessage(new CommunicationsConsoleAnnounceMessage(new string(msg))); + var maxLength = _cfg.GetCVar(CCVars.ChatMaxAnnouncementLength); + var msg = SharedChatSystem.SanitizeAnnouncement(message, maxLength); + SendMessage(new CommunicationsConsoleAnnounceMessage(msg)); } public void CallShuttle() diff --git a/Content.Client/Communications/UI/CommunicationsConsoleMenu.xaml.cs b/Content.Client/Communications/UI/CommunicationsConsoleMenu.xaml.cs index 8ab444f9baf..37fcdd5e29c 100644 --- a/Content.Client/Communications/UI/CommunicationsConsoleMenu.xaml.cs +++ b/Content.Client/Communications/UI/CommunicationsConsoleMenu.xaml.cs @@ -23,7 +23,7 @@ public CommunicationsConsoleMenu(CommunicationsConsoleBoundUserInterface owner) var loc = IoCManager.Resolve(); MessageInput.Placeholder = new Rope.Leaf(loc.GetString("comms-console-menu-announcement-placeholder")); - AnnounceButton.OnPressed += (_) => Owner.AnnounceButtonPressed(Rope.Collapse(MessageInput.TextRope).Trim()); + AnnounceButton.OnPressed += (_) => Owner.AnnounceButtonPressed(Rope.Collapse(MessageInput.TextRope)); AnnounceButton.Disabled = !owner.CanAnnounce; AlertLevelButton.OnItemSelected += args => diff --git a/Content.Client/NukeOps/WarDeclaratorBoundUserInterface.cs b/Content.Client/NukeOps/WarDeclaratorBoundUserInterface.cs index 7394e27043a..20103a97432 100644 --- a/Content.Client/NukeOps/WarDeclaratorBoundUserInterface.cs +++ b/Content.Client/NukeOps/WarDeclaratorBoundUserInterface.cs @@ -1,13 +1,16 @@ -using Content.Shared.NukeOps; +using Content.Shared.CCVar; +using Content.Shared.Chat; +using Content.Shared.NukeOps; using JetBrains.Annotations; -using Robust.Client.GameObjects; -using Robust.Shared.Timing; +using Robust.Shared.Configuration; namespace Content.Client.NukeOps; [UsedImplicitly] public sealed class WarDeclaratorBoundUserInterface : BoundUserInterface { + [Dependency] private readonly IConfigurationManager _cfg = default!; + [ViewVariables] private WarDeclaratorWindow? _window; @@ -44,6 +47,8 @@ protected override void Dispose(bool disposing) private void OnWarDeclaratorActivated(string message) { - SendMessage(new WarDeclaratorActivateMessage(message)); + var maxLength = _cfg.GetCVar(CCVars.ChatMaxAnnouncementLength); + var msg = SharedChatSystem.SanitizeAnnouncement(message, maxLength); + SendMessage(new WarDeclaratorActivateMessage(msg)); } } diff --git a/Content.Client/NukeOps/WarDeclaratorWindow.xaml.cs b/Content.Client/NukeOps/WarDeclaratorWindow.xaml.cs index 8fb10b8215d..104e776daa4 100644 --- a/Content.Client/NukeOps/WarDeclaratorWindow.xaml.cs +++ b/Content.Client/NukeOps/WarDeclaratorWindow.xaml.cs @@ -2,7 +2,6 @@ using Content.Shared.NukeOps; using Robust.Client.AutoGenerated; using Robust.Client.Graphics; -using Robust.Client.UserInterface.Controls; using Robust.Client.UserInterface.CustomControls; using Robust.Client.UserInterface.XAML; using Robust.Shared.Timing; @@ -27,7 +26,7 @@ public WarDeclaratorWindow() _gameTiming = IoCManager.Resolve(); - WarButton.OnPressed += ActivateWarDeclarator; + WarButton.OnPressed += (_) => OnActivated?.Invoke(Rope.Collapse(MessageEdit.TextRope)); var loc = IoCManager.Resolve(); MessageEdit.Placeholder = new Rope.Leaf(loc.GetString("war-declarator-message-placeholder")); @@ -129,10 +128,4 @@ public void UpdateTimer() return; } } - - private void ActivateWarDeclarator(BaseButton.ButtonEventArgs obj) - { - var message = Rope.Collapse(MessageEdit.TextRope); - OnActivated?.Invoke(message); - } } diff --git a/Content.Server/Communications/CommunicationsConsoleSystem.cs b/Content.Server/Communications/CommunicationsConsoleSystem.cs index ea27450956c..6a4cd23ba12 100644 --- a/Content.Server/Communications/CommunicationsConsoleSystem.cs +++ b/Content.Server/Communications/CommunicationsConsoleSystem.cs @@ -11,6 +11,7 @@ using Content.Shared.Access.Components; using Content.Shared.Access.Systems; using Content.Shared.CCVar; +using Content.Shared.Chat; using Content.Shared.Communications; using Content.Shared.Database; using Content.Shared.Emag.Components; @@ -35,8 +36,6 @@ public sealed class CommunicationsConsoleSystem : EntitySystem [Dependency] private readonly IConfigurationManager _cfg = default!; [Dependency] private readonly IAdminLogManager _adminLogger = default!; - private const int MaxMessageLength = 256; - private const int MaxMessageNewlines = 2; private const float UIUpdateInterval = 5.0f; public override void Initialize() @@ -231,22 +230,8 @@ private void OnSelectAlertLevelMessage(EntityUid uid, CommunicationsConsoleCompo private void OnAnnounceMessage(EntityUid uid, CommunicationsConsoleComponent comp, CommunicationsConsoleAnnounceMessage message) { - var msgWords = message.Message.Trim(); - var msgChars = (msgWords.Length <= MaxMessageLength ? msgWords : $"{msgWords[0..MaxMessageLength]}...").ToCharArray(); - - var newlines = 0; - for (var i = 0; i < msgChars.Length; i++) - { - if (msgChars[i] != '\n') - continue; - - if (newlines >= MaxMessageNewlines) - msgChars[i] = ' '; - - newlines++; - } - - var msg = new string(msgChars); + var maxLength = _cfg.GetCVar(CCVars.ChatMaxAnnouncementLength); + var msg = SharedChatSystem.SanitizeAnnouncement(message.Message, maxLength); var author = Loc.GetString("comms-console-announcement-unknown-sender"); if (message.Session.AttachedEntity is { Valid: true } mob) { diff --git a/Content.Server/NukeOps/WarDeclaratorComponent.cs b/Content.Server/NukeOps/WarDeclaratorComponent.cs index 15279ee13ca..ef6a3db5af6 100644 --- a/Content.Server/NukeOps/WarDeclaratorComponent.cs +++ b/Content.Server/NukeOps/WarDeclaratorComponent.cs @@ -22,10 +22,6 @@ public sealed partial class WarDeclaratorComponent : Component [DataField] public bool AllowEditingMessage = true; - [ViewVariables(VVAccess.ReadWrite)] - [DataField] - public int MaxMessageLength = 512; - /// /// War declarement text color /// diff --git a/Content.Server/NukeOps/WarDeclaratorSystem.cs b/Content.Server/NukeOps/WarDeclaratorSystem.cs index dcf6c28d434..328990738e7 100644 --- a/Content.Server/NukeOps/WarDeclaratorSystem.cs +++ b/Content.Server/NukeOps/WarDeclaratorSystem.cs @@ -3,9 +3,12 @@ using Content.Server.GameTicking.Rules.Components; using Content.Server.Popups; using Content.Server.UserInterface; +using Content.Shared.CCVar; +using Content.Shared.Chat; using Content.Shared.Database; using Content.Shared.NukeOps; using Robust.Server.GameObjects; +using Robust.Shared.Configuration; namespace Content.Server.NukeOps; @@ -18,6 +21,7 @@ public sealed class WarDeclaratorSystem : EntitySystem [Dependency] private readonly IAdminLogManager _adminLogger = default!; [Dependency] private readonly NukeopsRuleSystem _nukeopsRuleSystem = default!; [Dependency] private readonly PopupSystem _popupSystem = default!; + [Dependency] private readonly IConfigurationManager _cfg = default!; public override void Initialize() { @@ -52,22 +56,8 @@ private void OnActivated(EntityUid uid, WarDeclaratorComponent component, WarDec return; } - var text = (args.Message.Length <= component.MaxMessageLength ? args.Message.Trim() : $"{args.Message.Trim().Substring(0, 256)}...").ToCharArray(); - - // No more than 2 newlines, other replaced to spaces - var newlines = 0; - for (var i = 0; i < text.Length; i++) - { - if (text[i] != '\n') - continue; - - if (newlines >= 2) - text[i] = ' '; - - newlines++; - } - - string message = new string(text); + var maxLength = _cfg.GetCVar(CCVars.ChatMaxAnnouncementLength); + var message = SharedChatSystem.SanitizeAnnouncement(args.Message, maxLength); if (component.AllowEditingMessage && message != string.Empty) { component.Message = message; diff --git a/Content.Shared/CCVar/CCVars.cs b/Content.Shared/CCVar/CCVars.cs index a3b875feef0..f0b6c2f9232 100644 --- a/Content.Shared/CCVar/CCVars.cs +++ b/Content.Shared/CCVar/CCVars.cs @@ -1598,6 +1598,9 @@ public static readonly CVarDef public static readonly CVarDef ChatMaxMessageLength = CVarDef.Create("chat.max_message_length", 1000, CVar.SERVER | CVar.REPLICATED); + public static readonly CVarDef ChatMaxAnnouncementLength = + CVarDef.Create("chat.max_announcement_length", 256, CVar.SERVER | CVar.REPLICATED); + public static readonly CVarDef ChatSanitizerEnabled = CVarDef.Create("chat.chat_sanitizer_enabled", true, CVar.SERVERONLY); diff --git a/Content.Shared/Chat/SharedChatSystem.cs b/Content.Shared/Chat/SharedChatSystem.cs index 69918f8098b..931bfb37fcb 100644 --- a/Content.Shared/Chat/SharedChatSystem.cs +++ b/Content.Shared/Chat/SharedChatSystem.cs @@ -184,4 +184,34 @@ public string SanitizeMessageCapitalizeTheWordI(string message, string theWordI return message; } + + public static string SanitizeAnnouncement(string message, int maxLength = 0, int maxNewlines = 2) + { + var trimmed = message.Trim(); + if (maxLength > 0 && trimmed.Length > maxLength) + { + trimmed = $"{message[..maxLength]}..."; + } + + // No more than max newlines, other replaced to spaces + if (maxNewlines > 0) + { + var chars = trimmed.ToCharArray(); + var newlines = 0; + for (var i = 0; i < chars.Length; i++) + { + if (chars[i] != '\n') + continue; + + if (newlines >= maxNewlines) + chars[i] = ' '; + + newlines++; + } + + return new string(chars); + } + + return trimmed; + } } From eb0a54fef295d4b05f864a0f4af404e8870d505f Mon Sep 17 00:00:00 2001 From: Menshin Date: Sun, 21 Jan 2024 10:17:17 +0100 Subject: [PATCH 57/66] PA control box part detection fix (#24356) * * Fixed rounding errors when the PA control box was checking for parts, sometimes leading to the obscure "port/starboard emitters are not detected". * Auto-rotated the PA control box toward the fuel box when checking for parts * Swapped the wired/completed state sprites for the PA control box as it appears they were inverted * Update Content.Server/ParticleAccelerator/EntitySystems/ParticleAcceleratorSystem.Parts.cs --------- Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com> --- .../ParticleAcceleratorSystem.Parts.cs | 30 ++++++++++-------- .../ParticleAcceleratorSystem.cs | 1 + .../PA/control_box.rsi/completed.png | Bin 1446 -> 1422 bytes .../Generation/PA/control_box.rsi/wired.png | Bin 1441 -> 1408 bytes 4 files changed, 17 insertions(+), 14 deletions(-) diff --git a/Content.Server/ParticleAccelerator/EntitySystems/ParticleAcceleratorSystem.Parts.cs b/Content.Server/ParticleAccelerator/EntitySystems/ParticleAcceleratorSystem.Parts.cs index abc68543ff3..bdbc7b3f5bc 100644 --- a/Content.Server/ParticleAccelerator/EntitySystems/ParticleAcceleratorSystem.Parts.cs +++ b/Content.Server/ParticleAccelerator/EntitySystems/ParticleAcceleratorSystem.Parts.cs @@ -48,12 +48,12 @@ public void RescanParts(EntityUid uid, ICommonSession? user = null, ParticleAcce return; var gridUid = xform.GridUid; - if (gridUid == null || gridUid != xform.ParentUid || !_mapManager.TryGetGrid(gridUid, out var grid)) + if (gridUid == null || gridUid != xform.ParentUid || !TryComp(gridUid, out var grid)) return; // Find fuel chamber first by scanning cardinals. var fuelQuery = GetEntityQuery(); - foreach (var adjacent in grid.GetCardinalNeighborCells(xform.Coordinates)) + foreach (var adjacent in _mapSystem.GetCardinalNeighborCells(gridUid.Value, grid, xform.Coordinates)) { if (fuelQuery.HasComponent(adjacent) && partQuery.TryGetComponent(adjacent, out var partState) @@ -75,21 +75,23 @@ public void RescanParts(EntityUid uid, ICommonSession? user = null, ParticleAcce // You'll have to take my word for it that that breaks everything, yeah? controller.CurrentlyRescanning = true; - // Align ourselves to match fuel chamber orientation. - // This means that if you mess up the orientation of the control box it's not a big deal, - // because the sprite is far from obvious about the orientation. + // Automatically rotate the control box sprite to face the fuel chamber var fuelXform = xformQuery.GetComponent(controller.FuelChamber!.Value); - var rotation = fuelXform.LocalRotation; - _transformSystem.SetLocalRotation(uid, rotation, xform); + var fuelDir = (fuelXform.LocalPosition - xform.LocalPosition).GetDir(); + _transformSystem.SetLocalRotation(uid, fuelDir.ToAngle(), xform); // Calculate offsets for each of the parts of the PA. // These are all done relative to the fuel chamber BC that is basically the center of the machine. - var positionFuelChamber = grid.TileIndicesFor(fuelXform.Coordinates); // // - var positionEndCap = positionFuelChamber + (Vector2i) rotation.RotateVec(new Vector2(0, 1)); // n // n: End Cap - var positionPowerBox = positionFuelChamber + (Vector2i) rotation.RotateVec(new Vector2(0, -1)); // CF // C: Control Box, F: Fuel Chamber - var positionPortEmitter = positionFuelChamber + (Vector2i) rotation.RotateVec(new Vector2(1, -2)); // P // P: Power Box - var positionForeEmitter = positionFuelChamber + (Vector2i) rotation.RotateVec(new Vector2(0, -2)); // EEE // E: Emitter (Starboard, Fore, Port) - var positionStarboardEmitter = positionFuelChamber + (Vector2i) rotation.RotateVec(new Vector2(-1, -2)); // // + var rotation = fuelXform.LocalRotation; + var offsetVect = rotation.GetCardinalDir().ToIntVec(); + var orthoOffsetVect = new Vector2i(-offsetVect.Y, offsetVect.X); + + var positionFuelChamber = _mapSystem.TileIndicesFor(gridUid!.Value, grid, fuelXform.Coordinates); // n // n: End Cap + var positionEndCap = positionFuelChamber - offsetVect; // CF // C: Control Box, F: Fuel Chamber + var positionPowerBox = positionFuelChamber + offsetVect; // P // P: Power Box + var positionPortEmitter = positionFuelChamber + offsetVect * 2 + orthoOffsetVect; // EEE // E: Emitter (Starboard, Fore, Port) + var positionForeEmitter = positionFuelChamber + offsetVect * 2; + var positionStarboardEmitter = positionFuelChamber + offsetVect * 2 - orthoOffsetVect; ScanPart(gridUid!.Value, positionEndCap, rotation, out controller.EndCap, out var _, grid); ScanPart(gridUid!.Value, positionPowerBox, rotation, out controller.PowerBox, out var _, grid); @@ -137,7 +139,7 @@ private bool ScanPart(EntityUid uid, Vector2i coordinates, Angle? rotation, [ } var compQuery = GetEntityQuery(); - foreach (var entity in grid.GetAnchoredEntities(coordinates)) + foreach (var entity in _mapSystem.GetAnchoredEntities(uid, grid, coordinates)) { if (compQuery.TryGetComponent(entity, out comp) && TryComp(entity, out var partState) && partState.Master == null diff --git a/Content.Server/ParticleAccelerator/EntitySystems/ParticleAcceleratorSystem.cs b/Content.Server/ParticleAccelerator/EntitySystems/ParticleAcceleratorSystem.cs index c50e054281e..ddc7e2a0830 100644 --- a/Content.Server/ParticleAccelerator/EntitySystems/ParticleAcceleratorSystem.cs +++ b/Content.Server/ParticleAccelerator/EntitySystems/ParticleAcceleratorSystem.cs @@ -21,6 +21,7 @@ public sealed partial class ParticleAcceleratorSystem : EntitySystem [Dependency] private readonly SharedPhysicsSystem _physicsSystem = default!; [Dependency] private readonly SharedTransformSystem _transformSystem = default!; [Dependency] private readonly UserInterfaceSystem _uiSystem = default!; + [Dependency] private readonly MapSystem _mapSystem = default!; public override void Initialize() { diff --git a/Resources/Textures/Structures/Power/Generation/PA/control_box.rsi/completed.png b/Resources/Textures/Structures/Power/Generation/PA/control_box.rsi/completed.png index 0636a46df9baaafaea66ad875e65680a6ca24945..932eed803e8b9e07262dc372fbb21200cc607978 100644 GIT binary patch delta 1403 zcmV->1%&#h3yuqrB!32COGiWi000000Qp0^e*gdlLrFwIRCwC$nmumgIuOVI3RJi- z0tDc8%msv0sZy#k_5j)&r1Tx4+##iJusXoPm8(Eist2Ed-3kaGxKPJeM58yNNST&x zY2Vrd7&0Yle#7C%P$Yr>foMSYrT=>21wM7*1M`NI@~qxfN`D1?&&TEmCj9B?>8!Px z=eg4fQ}6>DJkRs9z`1_Y2~+Vyn}+~kKA)cyzT54P=Q;M(@Ywv&mYLvpcXua&e|~;q zKA&T^+j-?5lYirS=~VEcy2j$);KJqVfU5&WmUD%;q5NwL7#n!*nckuNi*Es8-{fIR z8H*p<1_<97+kc@_Rh8EOH6}ka`$t)pxV^naS(fgE)?xJOG;i^o;U7 zK0Y>jxW0Y;b8LRVzr^-sj^h}c%?7jCtnnz_wGBoaDMRpf#YSlv)VU(hqzscxpiV z@VWHaV(KD2#1CyR*wW8RVI}2%&x-;=2)(Swgf~auGi&Ol{y&?|tYPWZ)1DT$wuSO6 zi^6IT&woSw(9B>OMkDS@%Ek%&8Ksv>HTNm6%`x}veN(;((G-jq#?(n^0GJtel8rM< z?58}|d4QBsS5?)i6`p<*qE%3C5Es||Hz69sq9|%b4C1?5lBv^`eiH(4Ot`A5YMem) zRxFO9s1on&j*-hj&&j$dw zo(}+U{{4A6@MMO@i#Q)ZbAkW}Y$w0|`tt#=J&Pb?%A{Lkv;;P#4dGPa7uNSRpjVgD z0%(+vJA3b2<3du3gpA@Y>%6T;056|!1{0V1%E@H zcNtE3cns#Nxh#B{(h;$zFn&j&ml_+H)r&T>A$$Cf_6 zwN)iaqQPcqX}zz{({xSyXLF6N@3jsorKb1H_rHJr@9=Hs6Sxf=Xrx=Zm>vy4hmJ1Q zNz=BJsXVnnQ->#h0g!D&o4m9>@PDhvp1Rv;gQ5AA>C}B?ll35OIzZC{o{^8%DSPHB zXzKVc9otyx*LccnwEMmh!cqrwC1uOWuCjFI0a8k>lVC?Bn<89eO?>%QC<70pvM;&2**2bCxwV zml`!G8EB|*eoh>APJp;60Qt4l-Llh%AKIWKv_DTx#=NdrJbzy-I{A6p6q-@eqUgOR z|Gn1Bxzb^0AHSYd9e+OHh>w!a#>f=>peOvDQv#3hJ2w9^Z delta 1428 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 Date: Sun, 21 Jan 2024 09:18:23 +0000 Subject: [PATCH 58/66] Automatic changelog update --- Resources/Changelog/Changelog.yml | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/Resources/Changelog/Changelog.yml b/Resources/Changelog/Changelog.yml index 85319bd9de7..33ba147e4d4 100644 --- a/Resources/Changelog/Changelog.yml +++ b/Resources/Changelog/Changelog.yml @@ -1,10 +1,4 @@ Entries: -- author: brainfood1183 - changes: - - message: Clowns can now craft the Banana Clown outfit. - type: Add - id: 5260 - time: '2023-12-04T23:12:02.0000000+00:00' - author: enumerate0 changes: - message: Fixed Christmas tree bounding box @@ -3787,3 +3781,13 @@ id: 5760 time: '2024-01-21T01:31:12.0000000+00:00' url: https://api.github.com/repos/space-wizards/space-station-14/pulls/24351 +- author: Menshin + changes: + - message: The PA control box should now properly detect the PA parts in all situations + (notably on Origin) + type: Fix + - message: The PA control box now automatically face the control box on part scanning + type: Tweak + id: 5761 + time: '2024-01-21T09:17:17.0000000+00:00' + url: https://api.github.com/repos/space-wizards/space-station-14/pulls/24356 From 86700e13346b268f0a710bdaca7e4ff0036ee576 Mon Sep 17 00:00:00 2001 From: Ed <96445749+TheShuEd@users.noreply.github.com> Date: Sun, 21 Jan 2024 13:50:01 +0300 Subject: [PATCH 59/66] Flora anom hotfix (#24364) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix * less entities * ф --- .../Prototypes/Entities/Effects/mobspawn.yml | 20 ++++++--- .../Entities/Mobs/NPCs/living_light.yml | 44 +++++++------------ .../Entities/Objects/Misc/kudzu.yml | 6 +-- .../Structures/Specific/Anomaly/anomalies.yml | 6 +-- 4 files changed, 35 insertions(+), 41 deletions(-) diff --git a/Resources/Prototypes/Entities/Effects/mobspawn.yml b/Resources/Prototypes/Entities/Effects/mobspawn.yml index 20a205feb0c..4529497021e 100644 --- a/Resources/Prototypes/Entities/Effects/mobspawn.yml +++ b/Resources/Prototypes/Entities/Effects/mobspawn.yml @@ -80,25 +80,33 @@ - type: AnimationPlayer - type: RandomSpawner deleteSpawnerAfterSpawn: false - rareChance: 0.2 - offset: 0.5 + rareChance: 0.1 + offset: 0.3 chance: 1 prototypes: - FoodAmbrosiaVulgaris - - FoodAmbrosiaDeus - - FoodBlueTomato - FoodAloe - FoodCabbage - FoodCarrot - FoodGalaxythistle - - FoodGatfruit - FoodLemon - - FoodLemoon - FoodLime - FoodPeaPod - FoodPineapple - FoodOnionRed - FoodWatermelon + - FoodAmbrosiaVulgaris + - FoodAloe + - FoodCabbage + - FoodCarrot + - FoodGalaxythistle + - FoodLemon + - FoodLime + - FoodPeaPod + - FoodPineapple + - FoodOnionRed + - FoodWatermelon + - FoodGatfruit rarePrototypes: - MobLuminousEntity - MobLuminousObject \ No newline at end of file diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/living_light.yml b/Resources/Prototypes/Entities/Mobs/NPCs/living_light.yml index e7ed489cb0f..cc75405e103 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/living_light.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/living_light.yml @@ -18,8 +18,8 @@ - SimpleHostile - type: MovementIgnoreGravity - type: MovementSpeedModifier - baseWalkSpeed: 5.5 - baseSprintSpeed: 5.5 + baseWalkSpeed: 3.5 + baseSprintSpeed: 3.5 - type: Sprite drawdepth: Mobs sprite: Mobs/Elemental/living_light/luminous_person.rsi @@ -34,6 +34,9 @@ thresholds: 0: Alive 50: Dead + - type: SlowOnDamage + speedModifierThresholds: + 20: 0.5 - type: DamageStateVisuals states: Alive: @@ -87,16 +90,17 @@ - type: Tag tags: - FootstepSound - - DoorBumpOpener - type: Destructible thresholds: - - trigger: - !type:DamageTypeTrigger - damageType: Heat - damage: 150 - behaviors: - - !type:DoActsBehavior - acts: [ "Destruction" ] + - trigger: + !type:DamageTrigger + damage: 50 + behaviors: + - !type:DoActsBehavior + acts: [ "Destruction" ] + - !type:PlaySoundBehavior + sound: + collection: GlassBreak - type: entity id: MobLuminousPerson @@ -127,7 +131,7 @@ - type: MobThresholds thresholds: 0: Alive - 30: Dead + 50: Dead - type: DamageStateVisuals states: Alive: @@ -140,15 +144,6 @@ damage: types: Heat: 6 - - type: Destructible - thresholds: - - trigger: - !type:DamageTypeTrigger - damageType: Heat - damage: 80 - behaviors: - - !type:DoActsBehavior - acts: [ "Destruction" ] - type: entity id: MobLuminousEntity @@ -200,12 +195,3 @@ path: /Audio/Weapons/Guns/Gunshots/laser3.ogg soundEmpty: path: /Audio/Items/Lighters/lighter_off.ogg - - type: Destructible - thresholds: - - trigger: - !type:DamageTypeTrigger - damageType: Heat - damage: 100 - behaviors: - - !type:DoActsBehavior - acts: [ "Destruction" ] diff --git a/Resources/Prototypes/Entities/Objects/Misc/kudzu.yml b/Resources/Prototypes/Entities/Objects/Misc/kudzu.yml index 2c643bc57de..eefce3a851c 100644 --- a/Resources/Prototypes/Entities/Objects/Misc/kudzu.yml +++ b/Resources/Prototypes/Entities/Objects/Misc/kudzu.yml @@ -125,9 +125,9 @@ - IgnoreKudzu - type: RandomSpawner deleteSpawnerAfterSpawn: false - rareChance: 0.3 + rareChance: 0.15 offset: 0.2 - chance: 0.1 + chance: 0.05 prototypes: - FloraTree01 - FloraTree02 @@ -150,7 +150,7 @@ - type: Kudzu spreadChance: 0.4 - type: RandomSpawner - chance: 0.2 + chance: 0.1 rarePrototypes: - AnomalyFloraBulb - MobLuminousEntity diff --git a/Resources/Prototypes/Entities/Structures/Specific/Anomaly/anomalies.yml b/Resources/Prototypes/Entities/Structures/Specific/Anomaly/anomalies.yml index dabfd810341..aecef8c637b 100644 --- a/Resources/Prototypes/Entities/Structures/Specific/Anomaly/anomalies.yml +++ b/Resources/Prototypes/Entities/Structures/Specific/Anomaly/anomalies.yml @@ -317,10 +317,10 @@ Slash: 0 - type: TileSpawnAnomaly floorTileId: FloorAstroGrass - spawnRange: 10 + spawnRange: 6 - type: EntitySpawnAnomaly - maxSpawnAmount: 30 - spawnRange: 10 + maxSpawnAmount: 15 + spawnRange: 6 superCriticalSpawns: - KudzuFlowerAngry spawns: From 15f91b07207b803e7bb581bf30dd2a21d813edf0 Mon Sep 17 00:00:00 2001 From: Magnus Larsen Date: Sun, 21 Jan 2024 11:13:19 +0000 Subject: [PATCH 60/66] Fix security camera sprite when viewed at an angle (#24357) The 8-directions is a vestige of /tg/station, where the extra directions were used to place cameras on the left or right half of the wall. Setting it to 1 directions (sic) allows the game engine to rotate the sprite for us, which is fine as the art currently has no perspective. --- .../Wallmounts/camera.rsi/meta.json | 74 ++++++++++++++++++- 1 file changed, 73 insertions(+), 1 deletion(-) diff --git a/Resources/Textures/Structures/Wallmounts/camera.rsi/meta.json b/Resources/Textures/Structures/Wallmounts/camera.rsi/meta.json index a2a3e76d381..b8cedc6db63 100644 --- a/Resources/Textures/Structures/Wallmounts/camera.rsi/meta.json +++ b/Resources/Textures/Structures/Wallmounts/camera.rsi/meta.json @@ -1 +1,73 @@ -{"version": 1, "size": {"x": 32, "y": 32}, "license": "CC-BY-SA-3.0", "copyright": "Taken from /tg/station at https://github.com/tgstation/tgstation/commit/6bfe3b2e4fcbcdac9159dc4f0327a82ddf05ba7bi", "states": [{"name": "camera", "directions": 8, "delays": [[0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3], [0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3], [0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3], [0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3], [0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3], [0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3], [0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3], [0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3]]}, {"name": "camera_assembly", "directions": 8, "delays": [[1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0]]}, {"name": "camera_emp", "directions": 8, "delays": [[0.2, 0.2, 0.1, 0.1], [0.2, 0.2, 0.1, 0.1], [0.2, 0.2, 0.1, 0.1], [0.2, 0.2, 0.1, 0.1], [0.2, 0.2, 0.1, 0.1], [0.2, 0.2, 0.1, 0.1], [0.2, 0.2, 0.1, 0.1], [0.2, 0.2, 0.1, 0.1]]}, {"name": "camera_in_use", "directions": 8, "delays": [[0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3], [0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3], [0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3], [0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3], [0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3], [0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3], [0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3], [0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3]]}, {"name": "camera_off", "directions": 8, "delays": [[1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0]]}, {"name": "cameracase", "directions": 1, "delays": [[1.0]]}, {"name": "xraycamera", "directions": 8, "delays": [[0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3], [0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3], [0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3], [0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3], [0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3], [0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3], [0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3], [0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3]]}, {"name": "xraycamera_assembly", "directions": 8, "delays": [[1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0]]}, {"name": "xraycamera_emp", "directions": 8, "delays": [[0.2, 0.2, 0.1, 0.1], [0.2, 0.2, 0.1, 0.1], [0.2, 0.2, 0.1, 0.1], [0.2, 0.2, 0.1, 0.1], [0.2, 0.2, 0.1, 0.1], [0.2, 0.2, 0.1, 0.1], [0.2, 0.2, 0.1, 0.1], [0.2, 0.2, 0.1, 0.1]]}, {"name": "xraycamera_in_use", "directions": 8, "delays": [[0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3], [0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3], [0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3], [0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3], [0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3], [0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3], [0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3], [0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3]]}, {"name": "xraycamera_off", "directions": 8, "delays": [[1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0]]}]} \ No newline at end of file +{ + "version": 1, + "size": { + "x": 32, + "y": 32 + }, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from /tg/station at https://github.com/tgstation/tgstation/commit/6bfe3b2e4fcbcdac9159dc4f0327a82ddf05ba7bi", + "states": [ + { + "name": "camera", + "directions": 1, + "delays": [ + [ 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3 ] + ] + }, + { + "name": "camera_assembly", + "directions": 1 + }, + { + "name": "camera_emp", + "directions": 1, + "delays": [ + [ 0.2, 0.2, 0.1, 0.1 ] + ] + }, + { + "name": "camera_in_use", + "directions": 1, + "delays": [ + [ 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3 ] + ] + }, + { + "name": "camera_off", + "directions": 1 + }, + { + "name": "cameracase", + "directions": 1 + }, + { + "name": "xraycamera", + "directions": 1, + "delays": [ + [ 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3 ] + ] + }, + { + "name": "xraycamera_assembly", + "directions": 1 + }, + { + "name": "xraycamera_emp", + "directions": 1, + "delays": [ + [ 0.2, 0.2, 0.1, 0.1 ] + ] + }, + { + "name": "xraycamera_in_use", + "directions": 1, + "delays": [ + [ 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3 ] + ] + }, + { + "name": "xraycamera_off", + "directions": 1 + } + ] +} \ No newline at end of file From 9bb2781bfca68bde47ce52576cb894bb41ab6511 Mon Sep 17 00:00:00 2001 From: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com> Date: Sun, 21 Jan 2024 22:16:46 +1100 Subject: [PATCH 61/66] Bunch of revolver fixes (#19649) * Bunch of revolver fixes Some stuff wasn't working with prediction so this should fix all of it. * a * fix weh * Also usedelay --- .../Ranged/Systems/GunSystem.AmmoCounter.cs | 12 +- Content.Shared/Timing/UseDelaySystem.cs | 8 ++ .../Systems/SharedGunSystem.Revolver.cs | 112 ++++++++++++------ .../Weapons/Ranged/Systems/SharedGunSystem.cs | 4 +- .../Weapons/Guns/Revolvers/revolvers.yml | 3 + 5 files changed, 94 insertions(+), 45 deletions(-) diff --git a/Content.Client/Weapons/Ranged/Systems/GunSystem.AmmoCounter.cs b/Content.Client/Weapons/Ranged/Systems/GunSystem.AmmoCounter.cs index dfb5418f116..32343af56f0 100644 --- a/Content.Client/Weapons/Ranged/Systems/GunSystem.AmmoCounter.cs +++ b/Content.Client/Weapons/Ranged/Systems/GunSystem.AmmoCounter.cs @@ -58,11 +58,11 @@ private void UpdateAmmoCount(EntityUid uid, AmmoCounterComponent component) RaiseLocalEvent(uid, ev, false); } - protected override void UpdateAmmoCount(EntityUid uid) + protected override void UpdateAmmoCount(EntityUid uid, bool prediction = true) { // Don't use resolves because the method is shared and there's no compref and I'm trying to // share as much code as possible - if (!Timing.IsFirstTimePredicted || + if (prediction && !Timing.IsFirstTimePredicted || !TryComp(uid, out var clientComp)) { return; @@ -98,7 +98,7 @@ public DefaultStatusControl() { MinHeight = 15; HorizontalExpand = true; - VerticalAlignment = VAlignment.Center; + VerticalAlignment = Control.VAlignment.Center; AddChild(new BoxContainer { Orientation = BoxContainer.LayoutOrientation.Vertical, @@ -213,7 +213,7 @@ public BoxesStatusControl() { MinHeight = 15; HorizontalExpand = true; - VerticalAlignment = VAlignment.Center; + VerticalAlignment = Control.VAlignment.Center; AddChild(new BoxContainer { @@ -300,7 +300,7 @@ public ChamberMagazineStatusControl() { MinHeight = 15; HorizontalExpand = true; - VerticalAlignment = VAlignment.Center; + VerticalAlignment = Control.VAlignment.Center; AddChild(new BoxContainer { @@ -419,7 +419,7 @@ public RevolverStatusControl() { MinHeight = 15; HorizontalExpand = true; - VerticalAlignment = VAlignment.Center; + VerticalAlignment = Control.VAlignment.Center; AddChild((_bulletsList = new BoxContainer { Orientation = BoxContainer.LayoutOrientation.Horizontal, diff --git a/Content.Shared/Timing/UseDelaySystem.cs b/Content.Shared/Timing/UseDelaySystem.cs index eb1819aeb7c..34f12fa55e2 100644 --- a/Content.Shared/Timing/UseDelaySystem.cs +++ b/Content.Shared/Timing/UseDelaySystem.cs @@ -61,4 +61,12 @@ public bool TryResetDelay(Entity ent, bool checkDelayed = fal Dirty(ent); return true; } + + public bool TryResetDelay(EntityUid uid, bool checkDelayed = false, UseDelayComponent? component = null) + { + if (!Resolve(uid, ref component, false)) + return false; + + return TryResetDelay((uid, component), checkDelayed); + } } diff --git a/Content.Shared/Weapons/Ranged/Systems/SharedGunSystem.Revolver.cs b/Content.Shared/Weapons/Ranged/Systems/SharedGunSystem.Revolver.cs index d3d3b7fcdea..b8b00799c1b 100644 --- a/Content.Shared/Weapons/Ranged/Systems/SharedGunSystem.Revolver.cs +++ b/Content.Shared/Weapons/Ranged/Systems/SharedGunSystem.Revolver.cs @@ -8,6 +8,7 @@ using Robust.Shared.Utility; using System; using System.Linq; +using Content.Shared.Interaction.Events; using JetBrains.Annotations; namespace Content.Shared.Weapons.Ranged.Systems; @@ -25,6 +26,17 @@ protected virtual void InitializeRevolver() SubscribeLocalEvent>(OnRevolverVerbs); SubscribeLocalEvent(OnRevolverInteractUsing); SubscribeLocalEvent(OnRevolverGetAmmoCount); + SubscribeLocalEvent(OnRevolverUse); + } + + private void OnRevolverUse(EntityUid uid, RevolverAmmoProviderComponent component, UseInHandEvent args) + { + if (!_useDelay.TryResetDelay(uid)) + return; + + Cycle(component); + UpdateAmmoCount(uid, prediction: false); + Dirty(uid, component); } private void OnRevolverGetAmmoCount(EntityUid uid, RevolverAmmoProviderComponent component, ref GetAmmoCountEvent args) @@ -69,10 +81,9 @@ private void OnRevolverHandleState(EntityUid uid, RevolverAmmoProviderComponent } // Handle spins - if (Timing.IsFirstTimePredicted) + if (oldIndex != state.CurrentIndex) { - if (oldIndex != state.CurrentIndex) - UpdateAmmoCount(uid); + UpdateAmmoCount(uid, prediction: false); } } @@ -133,6 +144,7 @@ public bool TryRevolverInsert(EntityUid revolverUid, RevolverAmmoProviderCompone component.AmmoSlots[index] = ent.Value; Containers.Insert(ent.Value, component.AmmoContainer); + SetChamber(index, component, uid); if (ev.Ammo.Count == 0) break; @@ -140,8 +152,8 @@ public bool TryRevolverInsert(EntityUid revolverUid, RevolverAmmoProviderCompone DebugTools.Assert(ammo.Count == 0); UpdateRevolverAppearance(revolverUid, component); - UpdateAmmoCount(uid); - Dirty(uid, component); + UpdateAmmoCount(revolverUid); + Dirty(revolverUid, component); Audio.PlayPredicted(component.SoundInsert, revolverUid, user); Popup(Loc.GetString("gun-revolver-insert"), revolverUid, user); @@ -161,11 +173,12 @@ public bool TryRevolverInsert(EntityUid revolverUid, RevolverAmmoProviderCompone component.AmmoSlots[index] = uid; Containers.Insert(uid, component.AmmoContainer); + SetChamber(index, component, uid); Audio.PlayPredicted(component.SoundInsert, revolverUid, user); Popup(Loc.GetString("gun-revolver-insert"), revolverUid, user); UpdateRevolverAppearance(revolverUid, component); - UpdateAmmoCount(uid); - Dirty(uid, component); + UpdateAmmoCount(revolverUid); + Dirty(revolverUid, component); return true; } @@ -173,6 +186,17 @@ public bool TryRevolverInsert(EntityUid revolverUid, RevolverAmmoProviderCompone return false; } + private void SetChamber(int index, RevolverAmmoProviderComponent component, EntityUid uid) + { + if (TryComp(uid, out var cartridge) && cartridge.Spent) + { + component.Chambers[index] = false; + return; + } + + component.Chambers[index] = true; + } + private void OnRevolverVerbs(EntityUid uid, RevolverAmmoProviderComponent component, GetVerbsEvent args) { if (!args.CanAccess || !args.CanInteract || args.Hands == null) @@ -252,8 +276,7 @@ private int GetRevolverUnspentCount(RevolverAmmoProviderComponent component) public void EmptyRevolver(EntityUid revolverUid, RevolverAmmoProviderComponent component, EntityUid? user = null) { - var xform = Transform(revolverUid); - var mapCoordinates = xform.MapPosition; + var mapCoordinates = TransformSystem.GetMapCoordinates(revolverUid); var anyEmpty = false; for (var i = 0; i < component.Capacity; i++) @@ -284,6 +307,7 @@ public void EmptyRevolver(EntityUid revolverUid, RevolverAmmoProviderComponent c { component.AmmoSlots[i] = null; Containers.Remove(slot.Value, component.AmmoContainer); + component.Chambers[i] = null; if (!_netManager.IsClient) EjectCartridge(slot.Value); @@ -295,7 +319,7 @@ public void EmptyRevolver(EntityUid revolverUid, RevolverAmmoProviderComponent c if (anyEmpty) { Audio.PlayPredicted(component.SoundEject, revolverUid, user); - UpdateAmmoCount(revolverUid); + UpdateAmmoCount(revolverUid, prediction: false); UpdateRevolverAppearance(revolverUid, component); Dirty(revolverUid, component); } @@ -328,51 +352,63 @@ private void OnRevolverTakeAmmo(EntityUid uid, RevolverAmmoProviderComponent com { var index = (currentIndex + i) % component.Capacity; var chamber = component.Chambers[index]; + EntityUid? ent = null; - // Get unspawned ent first if possible. - if (chamber != null) + // Get contained entity if it exists. + if (component.AmmoSlots[index] != null) + { + ent = component.AmmoSlots[index]!; + component.Chambers[index] = false; + } + // Try to spawn a round if it's available. + else if (chamber != null) { if (chamber == true) { - // TODO: This is kinda sussy boy - var ent = Spawn(component.FillPrototype, args.Coordinates); + // Pretend it's always been there. + ent = Spawn(component.FillPrototype, args.Coordinates); - if (TryComp(ent, out var cartridge)) + if (!_netManager.IsClient) { - component.Chambers[index] = false; - SetCartridgeSpent(ent, cartridge, true); - var spawned = Spawn(cartridge.Prototype, args.Coordinates); - args.Ammo.Add((spawned, EnsureShootable(spawned))); - Del(ent); - continue; + component.AmmoSlots[index] = ent; + Containers.Insert(ent.Value, component.AmmoContainer); } - component.Chambers[i] = null; - args.Ammo.Add((ent, EnsureShootable(ent))); + component.Chambers[index] = false; } } - else if (component.AmmoSlots[index] != null) - { - var ent = component.AmmoSlots[index]!; - if (TryComp(ent, out var cartridge)) - { - if (cartridge.Spent) - continue; + // Chamber empty or spent + if (ent == null) + continue; - SetCartridgeSpent(ent.Value, cartridge, true); - var spawned = Spawn(cartridge.Prototype, args.Coordinates); - args.Ammo.Add((spawned, EnsureShootable(spawned))); + if (TryComp(ent, out var cartridge)) + { + if (cartridge.Spent) continue; - } - Containers.Remove(ent.Value, component.AmmoContainer); - component.AmmoSlots[index] = null; - args.Ammo.Add((ent.Value, EnsureShootable(ent.Value))); - TransformSystem.SetCoordinates(ent.Value, args.Coordinates); + // Mark cartridge as spent and if it's caseless delete from the chamber slot. + SetCartridgeSpent(ent.Value, cartridge, true); + var spawned = Spawn(cartridge.Prototype, args.Coordinates); + args.Ammo.Add((spawned, EnsureComp(spawned))); + + if (cartridge.DeleteOnSpawn) + component.Chambers[index] = null; + } + else + { + component.Chambers[index] = null; + args.Ammo.Add((ent.Value, EnsureComp(ent.Value))); + } + + // Delete the cartridge entity on client + if (_netManager.IsClient) + { + QueueDel(ent); } } + UpdateAmmoCount(uid, prediction: false); UpdateRevolverAppearance(uid, component); Dirty(uid, component); } diff --git a/Content.Shared/Weapons/Ranged/Systems/SharedGunSystem.cs b/Content.Shared/Weapons/Ranged/Systems/SharedGunSystem.cs index c7456ed0193..5d061a3f8a6 100644 --- a/Content.Shared/Weapons/Ranged/Systems/SharedGunSystem.cs +++ b/Content.Shared/Weapons/Ranged/Systems/SharedGunSystem.cs @@ -15,6 +15,7 @@ using Content.Shared.Projectiles; using Content.Shared.Tag; using Content.Shared.Throwing; +using Content.Shared.Timing; using Content.Shared.Verbs; using Content.Shared.Weapons.Melee; using Content.Shared.Weapons.Melee.Events; @@ -61,6 +62,7 @@ public abstract partial class SharedGunSystem : EntitySystem [Dependency] protected readonly SharedTransformSystem TransformSystem = default!; [Dependency] protected readonly TagSystem TagSystem = default!; [Dependency] protected readonly ThrowingSystem ThrowingSystem = default!; + [Dependency] private readonly UseDelaySystem _useDelay = default!; private const float InteractNextFire = 0.3f; private const double SafetyNextFire = 0.5; @@ -408,7 +410,7 @@ public void ShootProjectile(EntityUid uid, Vector2 direction, Vector2 gunVelocit /// /// Call this whenever the ammo count for a gun changes. /// - protected virtual void UpdateAmmoCount(EntityUid uid) {} + protected virtual void UpdateAmmoCount(EntityUid uid, bool prediction = true) {} protected void SetCartridgeSpent(EntityUid uid, CartridgeAmmoComponent cartridge, bool spent) { diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Revolvers/revolvers.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Revolvers/revolvers.yml index be64e7eb2c0..bd043c997da 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Revolvers/revolvers.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Revolvers/revolvers.yml @@ -21,6 +21,7 @@ slots: - suitStorage - Belt + - type: AmmoCounter - type: Gun selectedMode: SemiAuto fireRate: 1.5 @@ -28,6 +29,8 @@ - SemiAuto soundGunshot: path: /Audio/Weapons/Guns/Gunshots/revolver.ogg + - type: UseDelay + delay: 0.66 - type: ContainerContainer containers: revolver-ammo: !type:Container From 14e583cf3ed533f623799f57de227e9127b5656a Mon Sep 17 00:00:00 2001 From: PJBot Date: Sun, 21 Jan 2024 11:17:52 +0000 Subject: [PATCH 62/66] Automatic changelog update --- Resources/Changelog/Changelog.yml | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/Resources/Changelog/Changelog.yml b/Resources/Changelog/Changelog.yml index 33ba147e4d4..93ecbed088a 100644 --- a/Resources/Changelog/Changelog.yml +++ b/Resources/Changelog/Changelog.yml @@ -1,10 +1,4 @@ Entries: -- author: enumerate0 - changes: - - message: Fixed Christmas tree bounding box - type: Fix - id: 5261 - time: '2023-12-05T06:20:54.0000000+00:00' - author: JoeHammad changes: - message: Paramedics are now available on barratry @@ -3791,3 +3785,10 @@ id: 5761 time: '2024-01-21T09:17:17.0000000+00:00' url: https://api.github.com/repos/space-wizards/space-station-14/pulls/24356 +- author: metalgearsloth + changes: + - message: Fix revolver prediction. + type: Fix + id: 5762 + time: '2024-01-21T11:16:46.0000000+00:00' + url: https://api.github.com/repos/space-wizards/space-station-14/pulls/19649 From 6ae64929ba2737da78baf07d6f78969fcdba66b2 Mon Sep 17 00:00:00 2001 From: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com> Date: Sun, 21 Jan 2024 23:14:47 +1100 Subject: [PATCH 63/66] Fix dock highlighting (#24369) Nentity casualty --- Content.Client/Shuttles/UI/RadarControl.cs | 5 ++--- Content.Client/Shuttles/UI/ShuttleConsoleWindow.xaml.cs | 2 +- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/Content.Client/Shuttles/UI/RadarControl.cs b/Content.Client/Shuttles/UI/RadarControl.cs index eaf73b18ee8..45e6da22f42 100644 --- a/Content.Client/Shuttles/UI/RadarControl.cs +++ b/Content.Client/Shuttles/UI/RadarControl.cs @@ -47,7 +47,7 @@ public sealed class RadarControl : MapGridControl /// /// Currently hovered docked to show on the map. /// - public EntityUid? HighlightedDock; + public NetEntity? HighlightedDock; /// /// Raised if the user left-clicks on the radar control with the relevant entitycoordinates. @@ -325,14 +325,13 @@ private void DrawDocks(DrawingHandleScreen handle, EntityUid uid, Matrix3 matrix { foreach (var state in docks) { - var ent = _entManager.GetEntity(state.Entity); var position = state.Coordinates.Position; var uiPosition = matrix.Transform(position); if (uiPosition.Length() > WorldRange - DockScale) continue; - var color = HighlightedDock == ent ? state.HighlightedColor : state.Color; + var color = HighlightedDock == state.Entity ? state.HighlightedColor : state.Color; uiPosition.Y = -uiPosition.Y; diff --git a/Content.Client/Shuttles/UI/ShuttleConsoleWindow.xaml.cs b/Content.Client/Shuttles/UI/ShuttleConsoleWindow.xaml.cs index 828b98868fc..d67227549a9 100644 --- a/Content.Client/Shuttles/UI/ShuttleConsoleWindow.xaml.cs +++ b/Content.Client/Shuttles/UI/ShuttleConsoleWindow.xaml.cs @@ -234,7 +234,7 @@ private void UpdateDocks(List docks) private void OnDockMouseEntered(GUIMouseHoverEventArgs obj, DockingInterfaceState state) { - RadarScreen.HighlightedDock = _entManager.GetEntity(state.Entity); + RadarScreen.HighlightedDock = state.Entity; } private void OnDockMouseExited(GUIMouseHoverEventArgs obj, DockingInterfaceState state) From c7fd5f3aae921584b52e575de338cf483cd71ce5 Mon Sep 17 00:00:00 2001 From: PJBot Date: Sun, 21 Jan 2024 12:15:52 +0000 Subject: [PATCH 64/66] Automatic changelog update --- Resources/Changelog/Changelog.yml | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/Resources/Changelog/Changelog.yml b/Resources/Changelog/Changelog.yml index 93ecbed088a..1387cafb880 100644 --- a/Resources/Changelog/Changelog.yml +++ b/Resources/Changelog/Changelog.yml @@ -1,10 +1,4 @@ Entries: -- author: JoeHammad - changes: - - message: Paramedics are now available on barratry - type: Add - id: 5262 - time: '2023-12-05T07:35:36.0000000+00:00' - author: JoeHammad changes: - message: Paramedics are now available on marathon @@ -3792,3 +3786,10 @@ id: 5762 time: '2024-01-21T11:16:46.0000000+00:00' url: https://api.github.com/repos/space-wizards/space-station-14/pulls/19649 +- author: metalgearsloth + changes: + - message: Fix shuttle docking highlights being inaccurate. + type: Fix + id: 5763 + time: '2024-01-21T12:14:47.0000000+00:00' + url: https://api.github.com/repos/space-wizards/space-station-14/pulls/24369 From 4e7c577f38feb8d7bd078da7f3495c2d3914883a Mon Sep 17 00:00:00 2001 From: Zack Backmen Date: Sun, 21 Jan 2024 21:01:36 +0300 Subject: [PATCH 65/66] upd --- .../Backmen/Adminbuse/mechi_silicon.yml | 18 +++++++++--------- .../Backmen/Entities/Mobs/NPC/robots.yml | 6 +++--- .../Airlocks/Glass/double_glass_airlock.yml | 5 ++--- .../Structures/Furniture/Tables/tables.yml | 2 +- .../Entities/Structures/Machines/laundry.yml | 4 ++-- .../Entities/Structures/Walls/walls.yml | 10 +++++----- .../Backmen/Entities/Weapons/Melee/blunt.yml | 4 ++-- .../Entities/Objects/Decoration/containers.yml | 2 +- Resources/Prototypes/Traits/disabilities.yml | 12 ------------ 9 files changed, 25 insertions(+), 38 deletions(-) diff --git a/Resources/Prototypes/Backmen/Adminbuse/mechi_silicon.yml b/Resources/Prototypes/Backmen/Adminbuse/mechi_silicon.yml index 50395e6576c..27a54653a6f 100644 --- a/Resources/Prototypes/Backmen/Adminbuse/mechi_silicon.yml +++ b/Resources/Prototypes/Backmen/Adminbuse/mechi_silicon.yml @@ -27,7 +27,7 @@ acts: ["Destruction"] - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak - !type:ExplodeBehavior - !type:SpawnEntitiesBehavior spawn: @@ -73,7 +73,7 @@ acts: ["Destruction"] - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak - !type:ExplodeBehavior - !type:SpawnEntitiesBehavior spawn: @@ -162,7 +162,7 @@ acts: ["Destruction"] - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak - !type:ExplodeBehavior - !type:SpawnEntitiesBehavior spawn: @@ -198,7 +198,7 @@ acts: ["Destruction"] - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak - !type:ExplodeBehavior - !type:SpawnEntitiesBehavior spawn: @@ -257,7 +257,7 @@ acts: ["Destruction"] - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak - !type:ExplodeBehavior - !type:SpawnEntitiesBehavior spawn: @@ -318,7 +318,7 @@ acts: ["Destruction"] - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak - !type:ExplodeBehavior - !type:SpawnEntitiesBehavior spawn: @@ -396,7 +396,7 @@ acts: ["Destruction"] - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak - !type:ExplodeBehavior - !type:SpawnEntitiesBehavior spawn: @@ -472,7 +472,7 @@ acts: ["Destruction"] - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak - !type:ExplodeBehavior - !type:SpawnEntitiesBehavior spawn: @@ -534,7 +534,7 @@ acts: ["Destruction"] - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak - !type:ExplodeBehavior - !type:SpawnEntitiesBehavior spawn: diff --git a/Resources/Prototypes/Backmen/Entities/Mobs/NPC/robots.yml b/Resources/Prototypes/Backmen/Entities/Mobs/NPC/robots.yml index 4f87e66bc40..f2a41fd9a6e 100644 --- a/Resources/Prototypes/Backmen/Entities/Mobs/NPC/robots.yml +++ b/Resources/Prototypes/Backmen/Entities/Mobs/NPC/robots.yml @@ -138,7 +138,7 @@ acts: [ "Destruction" ] - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak - type: Fixtures fixtures: fix1: @@ -224,7 +224,7 @@ acts: [ "Destruction" ] - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak - type: Fixtures fixtures: fix1: @@ -319,7 +319,7 @@ acts: [ "Destruction" ] - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak - type: Fixtures fixtures: fix1: diff --git a/Resources/Prototypes/Backmen/Entities/Structures/Doors/Airlocks/Glass/double_glass_airlock.yml b/Resources/Prototypes/Backmen/Entities/Structures/Doors/Airlocks/Glass/double_glass_airlock.yml index f5c66a0ca5f..2021a85866a 100644 --- a/Resources/Prototypes/Backmen/Entities/Structures/Doors/Airlocks/Glass/double_glass_airlock.yml +++ b/Resources/Prototypes/Backmen/Entities/Structures/Doors/Airlocks/Glass/double_glass_airlock.yml @@ -7,8 +7,7 @@ - type: MeleeSound soundGroups: Brute: - path: - "/Audio/Effects/glass_hit.ogg" + collection: GlassSmack - type: Door occludes: false - type: Occluder @@ -46,4 +45,4 @@ - type: Tag tags: - GlassAirlock - # This tag is used to nagivate the Airlock construction graph. It's needed because the construction graph is shared between Airlock, AirlockGlass, and HighSecDoor \ No newline at end of file + # This tag is used to nagivate the Airlock construction graph. It's needed because the construction graph is shared between Airlock, AirlockGlass, and HighSecDoor diff --git a/Resources/Prototypes/Backmen/Entities/Structures/Furniture/Tables/tables.yml b/Resources/Prototypes/Backmen/Entities/Structures/Furniture/Tables/tables.yml index e37ca12b410..56f933713c5 100644 --- a/Resources/Prototypes/Backmen/Entities/Structures/Furniture/Tables/tables.yml +++ b/Resources/Prototypes/Backmen/Entities/Structures/Furniture/Tables/tables.yml @@ -24,7 +24,7 @@ behaviors: - !type:PlaySoundBehavior sound: - path: /Audio/Effects/woodhit.ogg + collection: GlassBreak - !type:SpawnEntitiesBehavior spawn: MaterialWoodPlank: diff --git a/Resources/Prototypes/Backmen/Entities/Structures/Machines/laundry.yml b/Resources/Prototypes/Backmen/Entities/Structures/Machines/laundry.yml index 3a4995f2e71..dd4097260ad 100644 --- a/Resources/Prototypes/Backmen/Entities/Structures/Machines/laundry.yml +++ b/Resources/Prototypes/Backmen/Entities/Structures/Machines/laundry.yml @@ -105,7 +105,7 @@ behaviors: - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak - !type:SpawnEntitiesBehavior spawn: SheetSteel1: @@ -170,7 +170,7 @@ behaviors: - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak - !type:SpawnEntitiesBehavior spawn: SheetSteel1: diff --git a/Resources/Prototypes/Backmen/Entities/Structures/Walls/walls.yml b/Resources/Prototypes/Backmen/Entities/Structures/Walls/walls.yml index 5c8ff8562d4..b3555bd7c8d 100644 --- a/Resources/Prototypes/Backmen/Entities/Structures/Walls/walls.yml +++ b/Resources/Prototypes/Backmen/Entities/Structures/Walls/walls.yml @@ -25,7 +25,7 @@ behaviors: - !type:PlaySoundBehavior sound: - path: /Audio/Effects/woodhit.ogg + collection: GlassBreak - !type:DoActsBehavior acts: ["Destruction"] - type: IconSmooth @@ -69,7 +69,7 @@ thresholds: - trigger: !type:DamageTrigger - damage: 300 + damage: 300 behaviors: - !type:DoActsBehavior acts: ["Destruction"] @@ -79,13 +79,13 @@ behaviors: - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak - !type:ChangeConstructionNodeBehavior node: girder - !type:DoActsBehavior acts: ["Destruction"] destroySound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak - type: IconSmooth key: walls - base: paperwall \ No newline at end of file + base: paperwall diff --git a/Resources/Prototypes/Backmen/Entities/Weapons/Melee/blunt.yml b/Resources/Prototypes/Backmen/Entities/Weapons/Melee/blunt.yml index fdb4342a431..4aae5e0e436 100644 --- a/Resources/Prototypes/Backmen/Entities/Weapons/Melee/blunt.yml +++ b/Resources/Prototypes/Backmen/Entities/Weapons/Melee/blunt.yml @@ -15,10 +15,10 @@ types: Blunt: 4 soundHit: - path: /Audio/Effects/woodhit.ogg + collection: GlassBreak - type: StaminaDamageOnHit damage: 10 - type: Item size: Huge sprite: Backmen/Objects/Weapons/Melee/shinai.rsi - - type: DisarmMalus \ No newline at end of file + - type: DisarmMalus diff --git a/Resources/Prototypes/Entities/Objects/Decoration/containers.yml b/Resources/Prototypes/Entities/Objects/Decoration/containers.yml index 461820cd39f..80098305d54 100644 --- a/Resources/Prototypes/Entities/Objects/Decoration/containers.yml +++ b/Resources/Prototypes/Entities/Objects/Decoration/containers.yml @@ -37,7 +37,7 @@ max: 20 - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak - !type:DoActsBehavior acts: [ "Destruction" ] diff --git a/Resources/Prototypes/Traits/disabilities.yml b/Resources/Prototypes/Traits/disabilities.yml index 570e12362a5..1aaf0a85fe8 100644 --- a/Resources/Prototypes/Traits/disabilities.yml +++ b/Resources/Prototypes/Traits/disabilities.yml @@ -76,18 +76,6 @@ components: - type: Muted -- type: trait - id: Uncloneable - name: trait-uncloneable-name - description: trait-uncloneable-desc - blacklist: - components: - - BSSDrone #backmen: bssdrone - - StationAI # backmen: AI - - BorgChassis - components: - - type: Uncloneable - - type: trait id: WheelchairBound name: trait-wheelchair-bound-name From 6312807535f0c18c4a6fef643785f15514da88a7 Mon Sep 17 00:00:00 2001 From: Zack Backmen Date: Sun, 21 Jan 2024 21:55:51 +0300 Subject: [PATCH 66/66] fix --- .../Recipes/Construction/furniture.yml | 564 +++++++++--------- 1 file changed, 282 insertions(+), 282 deletions(-) diff --git a/Resources/Prototypes/Backmen/Recipes/Construction/furniture.yml b/Resources/Prototypes/Backmen/Recipes/Construction/furniture.yml index 2bcfe82fe32..095d3d9cbb8 100644 --- a/Resources/Prototypes/Backmen/Recipes/Construction/furniture.yml +++ b/Resources/Prototypes/Backmen/Recipes/Construction/furniture.yml @@ -1,138 +1,138 @@ -- type: construction - name: nanotrasen altar - id: AltarNanotrasen - graph: Altar - startNode: start - targetNode: nanotrasen - category: construction-category-furniture - description: Altar of the Gods. Those with some divine potential can sacrifice psionics on top of it. - icon: - sprite: Structures/Furniture/Altars/Gods/nanotrasen.rsi - state: nanotrasen - objectType: Structure - placementMode: SnapgridCenter - canBuildInImpassable: false - conditions: - - !type:TileNotBlocked - -- type: construction - name: chaos altar - id: AltarChaos - graph: Altar - startNode: start - targetNode: chaos - category: construction-category-furniture - description: Altar of the Gods. Those with some divine potential can sacrifice psionics on top of it. - icon: - sprite: Structures/Furniture/Altars/Gods/nanotrasen.rsi - state: chaos - objectType: Structure - placementMode: SnapgridCenter - canBuildInImpassable: false - conditions: - - !type:TileNotBlocked - -- type: construction - name: druid altar - id: AltarDruid - graph: Altar - startNode: start - targetNode: druid - category: construction-category-furniture - description: Altar of the Gods. Those with some divine potential can sacrifice psionics on top of it. - icon: - sprite: Structures/Furniture/Altars/Gods/nanotrasen.rsi - state: druid - objectType: Structure - placementMode: SnapgridCenter - canBuildInImpassable: false - conditions: - - !type:TileNotBlocked +#- type: construction +# name: nanotrasen altar +# id: AltarNanotrasen +# graph: Altar +# startNode: start +# targetNode: nanotrasen +# category: construction-category-furniture +# description: Altar of the Gods. Those with some divine potential can sacrifice psionics on top of it. +# icon: +# sprite: Structures/Furniture/Altars/Gods/nanotrasen.rsi +# state: nanotrasen +# objectType: Structure +# placementMode: SnapgridCenter +# canBuildInImpassable: false +# conditions: +# - !type:TileNotBlocked -- type: construction - name: toolbox altar - id: AltarToolbox - graph: Altar - startNode: start - targetNode: toolbox - category: construction-category-furniture - description: Altar of the Gods. Those with some divine potential can sacrifice psionics on top of it. - icon: - sprite: Structures/Furniture/Altars/Gods/nanotrasen.rsi - state: toolbox - objectType: Structure - placementMode: SnapgridCenter - canBuildInImpassable: false - conditions: - - !type:TileNotBlocked +#- type: construction +# name: chaos altar +# id: AltarChaos +# graph: Altar +# startNode: start +# targetNode: chaos +# category: construction-category-furniture +# description: Altar of the Gods. Those with some divine potential can sacrifice psionics on top of it. +# icon: +# sprite: Structures/Furniture/Altars/Gods/nanotrasen.rsi +# state: chaos +# objectType: Structure +# placementMode: SnapgridCenter +# canBuildInImpassable: false +# conditions: +# - !type:TileNotBlocked -- type: construction - name: space-christian altar - id: AltarSpaceChristian - graph: Altar - startNode: start - targetNode: spacechristian - category: construction-category-furniture - description: Altar of the Gods. Those with some divine potential can sacrifice psionics on top of it. - icon: - sprite: Structures/Furniture/Altars/Gods/nanotrasen.rsi - state: space-christian - objectType: Structure - placementMode: SnapgridCenter - canBuildInImpassable: false - conditions: - - !type:TileNotBlocked +#- type: construction +# name: druid altar +# id: AltarDruid +# graph: Altar +# startNode: start +# targetNode: druid +# category: construction-category-furniture +# description: Altar of the Gods. Those with some divine potential can sacrifice psionics on top of it. +# icon: +# sprite: Structures/Furniture/Altars/Gods/nanotrasen.rsi +# state: druid +# objectType: Structure +# placementMode: SnapgridCenter +# canBuildInImpassable: false +# conditions: +# - !type:TileNotBlocked -- type: construction - name: satanic altar - id: AltarSatana - graph: Altar - startNode: start - targetNode: satana - category: construction-category-furniture - description: Altar of the Gods. Those with some divine potential can sacrifice psionics on top of it. - icon: - sprite: Structures/Furniture/Altars/Gods/nanotrasen.rsi - state: satana - objectType: Structure - placementMode: SnapgridCenter - canBuildInImpassable: false - conditions: - - !type:TileNotBlocked +#- type: construction +# name: toolbox altar +# id: AltarToolbox +# graph: Altar +# startNode: start +# targetNode: toolbox +# category: construction-category-furniture +# description: Altar of the Gods. Those with some divine potential can sacrifice psionics on top of it. +# icon: +# sprite: Structures/Furniture/Altars/Gods/nanotrasen.rsi +# state: toolbox +# objectType: Structure +# placementMode: SnapgridCenter +# canBuildInImpassable: false +# conditions: +# - !type:TileNotBlocked -- type: construction - name: technology altar - id: AltarTechnology - graph: Altar - startNode: start - targetNode: technology - category: construction-category-furniture - description: Altar of the Gods. Those with some divine potential can sacrifice psionics on top of it. - icon: - sprite: Structures/Furniture/Altars/Gods/nanotrasen.rsi - state: technology - objectType: Structure - placementMode: SnapgridCenter - canBuildInImpassable: false - conditions: - - !type:TileNotBlocked +#- type: construction +# name: space-christian altar +# id: AltarSpaceChristian +# graph: Altar +# startNode: start +# targetNode: spacechristian +# category: construction-category-furniture +# description: Altar of the Gods. Those with some divine potential can sacrifice psionics on top of it. +# icon: +# sprite: Structures/Furniture/Altars/Gods/nanotrasen.rsi +# state: space-christian +# objectType: Structure +# placementMode: SnapgridCenter +# canBuildInImpassable: false +# conditions: +# - !type:TileNotBlocked -- type: construction - name: festival altar - id: AltarConvertFestival - graph: Altar - startNode: start - targetNode: festival - category: construction-category-furniture - description: Altar of the Gods. Those with some divine potential can sacrifice psionics on top of it. - icon: - sprite: Structures/Furniture/Altars/Gods/convertaltar.rsi - state: festival - objectType: Structure - placementMode: SnapgridCenter - canBuildInImpassable: false - conditions: - - !type:TileNotBlocked +#- type: construction +# name: satanic altar +# id: AltarSatana +# graph: Altar +# startNode: start +# targetNode: satana +# category: construction-category-furniture +# description: Altar of the Gods. Those with some divine potential can sacrifice psionics on top of it. +# icon: +# sprite: Structures/Furniture/Altars/Gods/nanotrasen.rsi +# state: satana +# objectType: Structure +# placementMode: SnapgridCenter +# canBuildInImpassable: false +# conditions: +# - !type:TileNotBlocked +# +#- type: construction +# name: technology altar +# id: AltarTechnology +# graph: Altar +# startNode: start +# targetNode: technology +# category: construction-category-furniture +# description: Altar of the Gods. Those with some divine potential can sacrifice psionics on top of it. +# icon: +# sprite: Structures/Furniture/Altars/Gods/nanotrasen.rsi +# state: technology +# objectType: Structure +# placementMode: SnapgridCenter +# canBuildInImpassable: false +# conditions: +# - !type:TileNotBlocked +# +#- type: construction +# name: festival altar +# id: AltarConvertFestival +# graph: Altar +# startNode: start +# targetNode: festival +# category: construction-category-furniture +# description: Altar of the Gods. Those with some divine potential can sacrifice psionics on top of it. +# icon: +# sprite: Structures/Furniture/Altars/Gods/convertaltar.rsi +# state: festival +# objectType: Structure +# placementMode: SnapgridCenter +# canBuildInImpassable: false +# conditions: +# - !type:TileNotBlocked #- type: construction # name: maint altar @@ -151,158 +151,158 @@ # conditions: # - !type:TileNotBlocked -- type: construction - name: blue altar - id: AltarConvertBlue - graph: Altar - startNode: start - targetNode: blue - category: construction-category-furniture - description: Altar of the Gods. Those with some divine potential can sacrifice psionics on top of it. - icon: - sprite: Structures/Furniture/Altars/Gods/convertaltar.rsi - state: blue - objectType: Structure - placementMode: SnapgridCenter - canBuildInImpassable: false - conditions: - - !type:TileNotBlocked - -- type: construction - name: burden altar - id: AltarConvertBurden - graph: Altar - startNode: start - targetNode: burden - category: construction-category-furniture - description: Altar of the Gods. Those with some divine potential can sacrifice psionics on top of it. - icon: - sprite: Structures/Furniture/Altars/Gods/convertaltar.rsi - state: burden - objectType: Structure - placementMode: SnapgridCenter - canBuildInImpassable: false - conditions: - - !type:TileNotBlocked - -- type: construction - name: convert altar - id: AltarConvert - graph: Altar - startNode: start - targetNode: convert - category: construction-category-furniture - description: Altar of the Gods. Those with some divine potential can sacrifice psionics on top of it. - icon: - sprite: Structures/Furniture/Altars/Gods/convertaltar.rsi - state: convertaltar - objectType: Structure - placementMode: SnapgridCenter - canBuildInImpassable: false - conditions: - - !type:TileNotBlocked - -- type: construction - name: orange altar - id: AltarConvertOrange - graph: Altar - startNode: start - targetNode: orange - category: construction-category-furniture - description: Altar of the Gods. Those with some divine potential can sacrifice psionics on top of it. - icon: - sprite: Structures/Furniture/Altars/Gods/convertaltar.rsi - state: orange - objectType: Structure - placementMode: SnapgridCenter - canBuildInImpassable: false - conditions: - - !type:TileNotBlocked - -- type: construction - name: red altar - id: AltarConvertRed - graph: Altar - startNode: start - targetNode: red - category: construction-category-furniture - description: Altar of the Gods. Those with some divine potential can sacrifice psionics on top of it. - icon: - sprite: Structures/Furniture/Altars/Gods/convertaltar.rsi - state: red - objectType: Structure - placementMode: SnapgridCenter - canBuildInImpassable: false - conditions: - - !type:TileNotBlocked - -- type: construction - name: white altar - id: AltarConvertWhite - graph: Altar - startNode: start - targetNode: white - category: construction-category-furniture - description: Altar of the Gods. Those with some divine potential can sacrifice psionics on top of it. - icon: - sprite: Structures/Furniture/Altars/Gods/convertaltar.rsi - state: white - objectType: Structure - placementMode: SnapgridCenter - canBuildInImpassable: false - conditions: - - !type:TileNotBlocked - -- type: construction - name: yellow altar - id: AltarConvertYellow - graph: Altar - startNode: start - targetNode: yellow - category: construction-category-furniture - description: Altar of the Gods. Those with some divine potential can sacrifice psionics on top of it. - icon: - sprite: Structures/Furniture/Altars/Gods/convertaltar.rsi - state: yellow - objectType: Structure - placementMode: SnapgridCenter - canBuildInImpassable: false - conditions: - - !type:TileNotBlocked - -- type: construction - name: heaven altar - id: AltarHeaven - graph: Altar - startNode: start - targetNode: heaven - category: construction-category-furniture - description: Altar of the Gods. Those with some divine potential can sacrifice psionics on top of it. - icon: - sprite: Structures/Furniture/Altars/Cults/heaven.rsi - state: full - objectType: Structure - placementMode: SnapgridCenter - canBuildInImpassable: false - conditions: - - !type:TileNotBlocked - -- type: construction - name: fanged altar - id: AltarFangs - graph: Altar - startNode: start - targetNode: fanged - category: construction-category-furniture - description: Altar of the Gods. Those with some divine potential can sacrifice psionics on top of it. - icon: - sprite: Structures/Furniture/Altars/Cults/fangs.rsi - state: full - objectType: Structure - placementMode: SnapgridCenter - canBuildInImpassable: false - conditions: - - !type:TileNotBlocked +#- type: construction +# name: blue altar +# id: AltarConvertBlue +# graph: Altar +# startNode: start +# targetNode: blue +# category: construction-category-furniture +# description: Altar of the Gods. Those with some divine potential can sacrifice psionics on top of it. +# icon: +# sprite: Structures/Furniture/Altars/Gods/convertaltar.rsi +# state: blue +# objectType: Structure +# placementMode: SnapgridCenter +# canBuildInImpassable: false +# conditions: +# - !type:TileNotBlocked +# +#- type: construction +# name: burden altar +# id: AltarConvertBurden +# graph: Altar +# startNode: start +# targetNode: burden +# category: construction-category-furniture +# description: Altar of the Gods. Those with some divine potential can sacrifice psionics on top of it. +# icon: +# sprite: Structures/Furniture/Altars/Gods/convertaltar.rsi +# state: burden +# objectType: Structure +# placementMode: SnapgridCenter +# canBuildInImpassable: false +# conditions: +# - !type:TileNotBlocked +# +#- type: construction +# name: convert altar +# id: AltarConvert +# graph: Altar +# startNode: start +# targetNode: convert +# category: construction-category-furniture +# description: Altar of the Gods. Those with some divine potential can sacrifice psionics on top of it. +# icon: +# sprite: Structures/Furniture/Altars/Gods/convertaltar.rsi +# state: convertaltar +# objectType: Structure +# placementMode: SnapgridCenter +# canBuildInImpassable: false +# conditions: +# - !type:TileNotBlocked +# +#- type: construction +# name: orange altar +# id: AltarConvertOrange +# graph: Altar +# startNode: start +# targetNode: orange +# category: construction-category-furniture +# description: Altar of the Gods. Those with some divine potential can sacrifice psionics on top of it. +# icon: +# sprite: Structures/Furniture/Altars/Gods/convertaltar.rsi +# state: orange +# objectType: Structure +# placementMode: SnapgridCenter +# canBuildInImpassable: false +# conditions: +# - !type:TileNotBlocked +# +#- type: construction +# name: red altar +# id: AltarConvertRed +# graph: Altar +# startNode: start +# targetNode: red +# category: construction-category-furniture +# description: Altar of the Gods. Those with some divine potential can sacrifice psionics on top of it. +# icon: +# sprite: Structures/Furniture/Altars/Gods/convertaltar.rsi +# state: red +# objectType: Structure +# placementMode: SnapgridCenter +# canBuildInImpassable: false +# conditions: +# - !type:TileNotBlocked +# +#- type: construction +# name: white altar +# id: AltarConvertWhite +# graph: Altar +# startNode: start +# targetNode: white +# category: construction-category-furniture +# description: Altar of the Gods. Those with some divine potential can sacrifice psionics on top of it. +# icon: +# sprite: Structures/Furniture/Altars/Gods/convertaltar.rsi +# state: white +# objectType: Structure +# placementMode: SnapgridCenter +# canBuildInImpassable: false +# conditions: +# - !type:TileNotBlocked +# +#- type: construction +# name: yellow altar +# id: AltarConvertYellow +# graph: Altar +# startNode: start +# targetNode: yellow +# category: construction-category-furniture +# description: Altar of the Gods. Those with some divine potential can sacrifice psionics on top of it. +# icon: +# sprite: Structures/Furniture/Altars/Gods/convertaltar.rsi +# state: yellow +# objectType: Structure +# placementMode: SnapgridCenter +# canBuildInImpassable: false +# conditions: +# - !type:TileNotBlocked +# +#- type: construction +# name: heaven altar +# id: AltarHeaven +# graph: Altar +# startNode: start +# targetNode: heaven +# category: construction-category-furniture +# description: Altar of the Gods. Those with some divine potential can sacrifice psionics on top of it. +# icon: +# sprite: Structures/Furniture/Altars/Cults/heaven.rsi +# state: full +# objectType: Structure +# placementMode: SnapgridCenter +# canBuildInImpassable: false +# conditions: +# - !type:TileNotBlocked +# +#- type: construction +# name: fanged altar +# id: AltarFangs +# graph: Altar +# startNode: start +# targetNode: fanged +# category: construction-category-furniture +# description: Altar of the Gods. Those with some divine potential can sacrifice psionics on top of it. +# icon: +# sprite: Structures/Furniture/Altars/Cults/fangs.rsi +# state: full +# objectType: Structure +# placementMode: SnapgridCenter +# canBuildInImpassable: false +# conditions: +# - !type:TileNotBlocked #- type: construction # name: reinforced wood table