From 3a9fdc8b3df8ab578d0ccdd92dc0d9d030ee616c Mon Sep 17 00:00:00 2001 From: Anuken Date: Mon, 22 Nov 2021 22:34:22 -0500 Subject: [PATCH] Phase synthesizer implementation --- .../production/phase-synthesizer-bottom.png | Bin 0 -> 462 bytes .../production/phase-synthesizer-heat.png | Bin 0 -> 7086 bytes .../production/phase-synthesizer-vents.png | Bin 0 -> 10744 bytes .../phase-synthesizer-weave-glow.png | Bin 0 -> 9433 bytes .../production/phase-synthesizer-weave.png | Bin 0 -> 322 bytes .../blocks/production/phase-synthesizer.png | Bin 0 -> 2353 bytes .../sprites/blocks/turrets/sublimate.png | Bin 0 -> 794 bytes core/src/mindustry/content/Blocks.java | 32 ++++++------- .../src/mindustry/world/draw/DrawCircles.java | 6 +-- .../mindustry/world/draw/DrawMultiWeave.java | 39 ++++++++++++++++ core/src/mindustry/world/draw/DrawSpikes.java | 42 ++++++++++++++++++ 11 files changed, 100 insertions(+), 19 deletions(-) create mode 100644 core/assets-raw/sprites/blocks/production/phase-synthesizer-bottom.png create mode 100644 core/assets-raw/sprites/blocks/production/phase-synthesizer-heat.png create mode 100644 core/assets-raw/sprites/blocks/production/phase-synthesizer-vents.png create mode 100644 core/assets-raw/sprites/blocks/production/phase-synthesizer-weave-glow.png create mode 100644 core/assets-raw/sprites/blocks/production/phase-synthesizer-weave.png create mode 100644 core/assets-raw/sprites/blocks/production/phase-synthesizer.png create mode 100644 core/assets-raw/sprites/blocks/turrets/sublimate.png create mode 100644 core/src/mindustry/world/draw/DrawMultiWeave.java create mode 100644 core/src/mindustry/world/draw/DrawSpikes.java diff --git a/core/assets-raw/sprites/blocks/production/phase-synthesizer-bottom.png b/core/assets-raw/sprites/blocks/production/phase-synthesizer-bottom.png new file mode 100644 index 0000000000000000000000000000000000000000..4f4b6a2b8fa10ba52de5f54471a2bd0c9083c362 GIT binary patch literal 462 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7OGojKx9jP7LeL$-D%zJ3L(+Ln`LH zy}P^cuz?8cMQ-sF^>_Q3R8ySGSo%{xH>*#)<4~>C*^*{b&h6lR@%QoP;a|e9!N<8uTI-#&7Yj_?uGBzLG!5Ij#}44}Tnw>fZ3gK1X@H%zvr<%71DK{$zjU&@HSvWpg*GxaOMlU-r1Uj0tQFk_>4KGX^80 za-wv`yu7okc@)dTCCl7)9D9^HZ?53Et(9|g(_4ypVqe^md>FA*`>eIHOmgm@6m^HB zmh{}-`8+HhJs(!={W$p`L#N;>w`2ZXj6%viQnL1%Y#u!umK)Vgs$rhID9Pen<}G0S PFfe$!`njxgN@xNAtYD$; literal 0 HcmV?d00001 diff --git a/core/assets-raw/sprites/blocks/production/phase-synthesizer-heat.png b/core/assets-raw/sprites/blocks/production/phase-synthesizer-heat.png new file mode 100644 index 0000000000000000000000000000000000000000..0b92689db7b0b047fea25e4421ed2da6e59b5d8b GIT binary patch literal 7086 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 YU#W6L3*m|2$N&HU07*qoM6N<$g58h8b^rhX literal 0 HcmV?d00001 diff --git a/core/assets-raw/sprites/blocks/production/phase-synthesizer-vents.png b/core/assets-raw/sprites/blocks/production/phase-synthesizer-vents.png new file mode 100644 index 0000000000000000000000000000000000000000..fc374249d2dc256eecd7810f3c87047c1e096cc3 GIT binary patch literal 10744 zcmXw-19Y6<)5mv{4H}z`oyN9pyJ6$Tww*LK+t{{kr?G7t&3}LIIqyCD?A`P1+1WeK zotgWYZ-kP9BqAIh8~^}7l$H`x0ndj2U9iyL_uVu%E&u=p%TrCuS;feW*xu33%<`ux zv9pK0DY2=$r5OO=zFL`K>8jhB5d3L^*$JBHcVx=BbDbH#Vzj3jQ&~}W?Zl$jKm8>n zVJ1dyQUCcQIQ)(*$b4XBOv~P!MK4%8c*sjs=Ht8S-isuUpsdxHt0vU-(&l8oAO#UNwbdc*HiZm zi!Ox@QIC(Ir<$CYe;fv`7=Iejkl{A3wgWq_9&m+cs^PN@I=!Z53H_ejoj4C%SRrmr zJ&AO!{SanSiT%7;w(>v!-P1pJbw7sL)q4LneZHQDWbj!d+Kjys6yWNR-0vnl-u!Uk zsorwZ;5QenKVwFpeIF~q|M}#AukbaPZ+)Dly3cOcskM5jeASjJj*<6boBg{Jq1rEp zS^A|7hd0~eOa$iF3wYftDj`b)#6eC$;i-_4RNk&&ERB+Fjt>r!nzioX-Aku6pH1gv zD#qc`O$S!D-hYGR?;E{>9_da+BKtpmh9ez34%quq96gWd01ihXx^2LJ?w#Asg8Rs& zaDgYGtt`E^!%k80>*ls0QBK<(1CKN$=3|~4{wO!+1BTQA$3I<3TF-ypba6?3{RVK6 zxD>sI1nJ56GD{JOj%;EWbmmO54{kX5+^$%2u7gl$_LX{yLXfnWDQ}AhWRM;(RODz5 z)Ku6@3v)z&aUW#KVvRna$RaQP8>iR>fj#oCU>YQz4P6hEi zon~#Vu)f2R{bIYN&i}>nO73HpWqGJ=mTmKRps6)8FjijCwtBjjj;MOxGC$RR-nMob zrpLQ8kfu8M^q>n(?dOShDdb1(b9i2&C7}?C#u3*$ zJokY%VqniX@yIhZeiM`5o4EhV@BxrMD|L*dB5izSADW8nA=&t8BIYv0R~Ew?+~mZ| zEFJ3c_GWV(|Lv^gpT2a&v5K6iY%#;~)A@o_M3z5sEB6?#tP@;eY>dqpZq!X9PSM)! zS>!iG4yTuSf?!oDwe%&Pe}97GD(22h$t;FEh&0n`GyiVj=Ca&BpU#smz)#tlAMChQ z3$zJ)9Yn)utKy!$eo)V{&Bw!){ouuH0RRWF|-nc$9 zmLr)d^#;!<}G8R`zBY!1p zva4leb~c)%w}GtTG|Zs=*QOS7B(_8CyK`32&*U{8e=3Kusi8#I=%2w`a=BM)NyEEE z8(9q8m*}xTf5dAw4Ic&tC*F{YvzFd16{$Fp;3-?;IXdelzo9h630Gp{&z zs={SG8zjk57mA5s^w#F`KbgDcBEwjN9RFKCMu$(J5p^N*ENZw55h zFel^u&4A>>0nXm`5lp&^=%f@M2#Jl|fwoFLmhYYmlLTs236#wwPa2{S2_DY|ON>>% zFH`MrV4ga3&Qr(YG8yvkz_xIHk>P0}F^*&-{35KIvXX-y^>r=t3>)Js91_}Rx<7vc=q5NL6BWR; z9u17oY+le{s#q|7zgs{z(+fX(+=`y4{k+6ipAv`9U^`ijB&K-BzA;G@_1^bUNLeaP@wb*F zKdzfM|L)JC(Q(W-<`ZE&3@HztFwV=9UBY>1#n3h}E>|hHRc79B@%d1+f(AyTbltB^ z(6xzaqF~No2?b;nlbH zukOrE`|YFh(gM{{|iMz-u zNG-q+7d@C1aJ9jlSajL?`Gtui%l~sH+=)K*!(zDY&xokWbCuiRyMrOqE+%ADdPGVa z$^60%fm4G808{jaLtZY?riC3x33?9sfowNUOtr$bnb#mMV|cPkEz|!`gSE`j z5sQ_tqPbt=g%pK+zr$ZK7YGHqQ=-J8ftD`xYt#w#aT9^xCWeF!ijAVJ%TQ{ShOcK+ zdX{|%*I12rSyQ8IR-L2?_RboAMmSM_9jBMdm$y;+7%V+O+pj1@OM=F!MX+~=lYUyHqn@xwQu1+SzrB|yreeNVfBUH%^D_&FoU(~%AWHc zkW&ht?HPJ4xPI^n@Tj(5y6c2EJxF7{Jpw+EZVLTa){7zX&ls|orIiRq{kGX0F%^nIhw|_V2K~TKj8tE& zI~3ca@0TH`6>*0%a4f}x@!Cy0Gh?YQyZ4xfWM_dR^vWw3iZ1fj0{Dti3#S}x>gh<& ztAwY7ZxP&*#O#v}1QjC{`(GU%EZWK6s1bmoge4x|u2E6yGB_K%DQLBGN7Ij-NkeE< zAkY2I^=cqdbqy%YOFoh5aCZzA9_y*tyJtHb_m26Z?GA7tei?lP%*~xNonewPVJqeb zYPQ@PzqORpu)yE5#z_zS%&_0+8<*L^!icjf3{DbD(5%s+&=XjLy&^~mSm&9r6Rh{* zUw@BKZu!P@G9d>!s22voj_-?U%ce;qP0d*N2c~fH4|edc3Y>zSg{!h<1=p8EnI1Q3 zCU}_qANMKOrTtvo{3=EfySR?1cc=IziAGfd_BEM@?5`8W0~gAwEFXAUw^szNchxrM z%@>Te&IISu?hu~q5vM&KC2`eDy|na79_L3^s761L&;v>i$RvqnsWvFNQx^>qU`NNY zi!{Gh$Hd)qfQJ5JFfSDdEjoOJ+SA5l;9%PgsPrp2z>w z9r57v_d$R)f>5CxXZq%m=wSOV6J{lx212IAdr37`o5gbE9l~&vdem9aM$fW5^h$%h zJo`+Jl5~paa}Smm@9K0-*q&j_ci7cktx!Mvp_5H;!+c zjZ>XaxNWf*j9gi=eYWe?noCp!n5*)V->TKXK=i6)6VYeb z))eU4w)yww>2uAV3wY~1!OQMYN&uYmuRvpR3Qsyf>=xM+R@VS?-e|29(-_m2&(I&X zd`XP{FNvYdrSk1{zx3XkemibQs1lL^O)8+zwbjJNx$~aKaD5kFj@Vrzwh?e$VE>O9 z9U3a-}%HI0^+(@OI53NpG2Wym(6KUbRqrecVFt|+kL2-2yT9Gof_?# zd?tnQ_^b!R>27(>c3R*XGt^j+6@JziFSh|wT>B?jc8NtNxJp6T6 z%<7C^~q@x4eWyIjBZDpLQ1=3dxet6OTfUE>}}lM9yb2lJE*M*qbZE?4sdXCQgMz)`&`1% z8F05>k9B(@bh`rl)-cZa%M7$=v!UE$X3o~egseX9CH4o3nVR7`B_#PDJ-3C$R=c6* z9Qa&L&z76fLqCh{YMZ5T+(6&l7uncvQX$m_R-omg$7VVU?@CsEW9W96;?&wsCt*#_ zqC!HAdg0JmO~aInagXGxu;Mv@w@g)^(#>jA31Pn)HNcrT{Wh*w%pJ&uRSWt;ilL?? z_JxDA;j})&Owz1vnu)@`2g@d0qVb1bzbsoMbyH_*ni zl49T)JYGcG{lL=~dns)v0018SzY7S+$ie~NgmIRZ7l%23$A&~ey$4hS0RZfIX)$3n z_tlHL>ef%Rh9y@TXp@UB`rTHt5LK;jFOqgGw|2%<;;NC35mDcXsaDp|(p#}AN+iAh>UM&J7S zSBCFx!HtdV>z!WMqd!<+pOx%+VEAb@Iu%e7yU7PYRuf#X*#Q>Pk zS!e36zD7pC@$vEH<>j7A-DX1^39V|%zLr%K;!MCU01c2Zr>II7^zofj`dA9KpNUCO z@ak>DR98w`1aOOtLn&V$WTwguoxI! z!%n9!8?luMCmrtWpx$W9VdU=4#RTj_6Gny?aPXl`wwiy!X3*=In?uvk)O2`zw3(Qg z2nHHJ@i_1SbAe3Ih9VUXwRM3wmN%PeVj#gclr-3Vr4bH)6EQJZ{H&8~|D$auQQ234 z%t_MJaj=hAsSMxyPETnsH#^Js(*WD(*Lsr$pj2~k0Z)TqB3n#yk3lz*LSYzNi2to5 z4=Wq|gC!z8J)NU{W)!*vq3QI)vl$?Zxsp&zp%}I>b+OiLlwnrA?PN=Y<^K!Lp31u? zS4ql$G@2bXIl6J`@+uND4R+Q7gO!!lf+N#Lxem@uB4c#U2gQRZ2$h0NR;D!5>po3SXe$&62|W5fNKu5?K|SAVyuz1^qicb!6@w7hKAsS1JeSP z(!6aadoExos0QSyWA7a8P+b*A9OFaynLX7(6(bEP?GKqpqY;Jrdr%;sOjxB91Dva! z)VTgIp5=dUv8X_uVX}b?XFf<>v~8XCI}lh{SbW!_1xcoYxh<@t_a7zO=V^he5whIN zNC13)s62!`*zNjfZJ-i5aXVTK{f(!naBvUyia3&Y{mMNSm4C%AKFeF#iu9tBgFBiL z(y4Cm7nc93!=%}pJk?o3Z!|0u9W>m)RRTZ;P-ct>4*?k+c zqEV;DX6@TH3Q(s~BNK!o9BoT;@RQ@rl&$)EduU8d3~`lN@p!Tj6{ZRrEpWH7?OD*l zMoy~Ny!XH|0ze_0rrP^)yOmH&89`#q>BT%in^{v^yCV%m4X7()0kX*l?Qt=+1qiaU zheTmB?yfdkj~v~FOXPn9A{T{y@s9CBh2nO9$cV zuZWU(8GXr%ny3tRx67tSvJ#67fBC>W@B9_0EMfo-^%w6=GJyIL7cd+aY%-MSIWaLY zEiScI#bE_g8EAPKN!W8ZkTYH|q`-CF z)#YWOMx78-ZT*;ZS%2*Fg!XhP@~Oh)(x9Dh&WtV5unhBmGk%ciNjs9t@r#o~aG~wA zER1T;c0tqWpJQlU?5qlb_*-i%F)kchy#5e5(4#uCB5k~Bsm!qTzi{! zDXf)J7hzCgdV4RIe1&N5zx|y#JuOSspuE0XZ$)ni<&7Jnh9X%Ph&Xt3hz$^It~whz zaI|2<%Yh@s&-;A8n@-Ek9R?q4wM|W-UQd@Uckb`2;tc}aZ3d$b-8=jrIcrZVCbc++ zhlks3wz?)k|Hc`+4Lv+?Ic?X41ahwyo99b~Y3+O8cst(lU_|)A_Q4w?N*aHShu>h} z_knqKcGlv4W2|*5>CK0FWbKLdNpTJHZ~ed#mzS4!1_>EC==mi>QK_Fb0twy<8gKbM zs>Q$-`(2kYoxmD^#GFE1V5pipA??n}eAmC>k1eMrC3WqEP%7?l3NKB%k zn4!zH(0D_N$n$jFZ0tq%a)}32)ORD_pG)*G{-GtAi;T?FPN03w=?xRP!l$E9piq^G zQJc}fPK}sJ1X)Bf8tzv3@&+;<^p~J?qD_r?CzU&3lm=f#ys4wb^=M1xkieptYrPhV zt}}s-)r1sxD%^9>x|>1A$_;M6AG}wZVm>~6zzot-73ItmqsOqs{>@q&3oZmgrVx!y zUX&+$XktRHyVUv8TMUMu$WxxE976cKp`dtX3k!kEu~9}n1@T|QCZUtvUv zH|WrV!K+#$e)LD2LNRKrU#Zlh6+76MtgNi<{e4iO%9kb^(IpoIWaNA`+TXL!Di;V+ zAkCelW^%=9iW-uK`2lV9Uu=P8kLRKBfJ;|2U})O&EOx#OMz`fL2l86e&EX_|htC_< z)n;e^&W;g&8W?R#)!ejk+T~m>6lc4lQg|(!QTMxV#q*ZrXc3H-I^Ul>&2=hMsGvHsup_)%5wC^| zoU1J}Y_4J@^7T&|C9h4rq%Q7714(r0h%2e19fDg6jtc^RY$&eh_O7UnQNI~eWIY@X zugH_3HMXOXrH*?LA{G9ONF*4x{AMwtO5<%2xVrE1{plRquJI&s?|>WHal8~Nv>=b# zcM(KbCtC)zk70<;RB8$E8)b~%?T%MxSrQz4X7pnZ{3P#{elB~F$hiI?hOlg9}K z%Fl!O{O8)EIvJS%@nU=}-B}Rq%D|ZE!7PS+!S0(5*yIqLC>ZEVz2vh>q+_kz204hT zZz31F>(IrZZev`;)G8B|xplT+kS9u~6|EE{lsv?8wm_JN*j72p&GRi;EJ{+c(W3ev zVvkTJ{3aZFu_V|iHZH;iicQDW`F}|XcTB^%&BWu{3PT^E{86txJsmr|2ZryQUW#N< z9s_m<(&ptm0$m7KCu@QPha!;=govdP0!1kf<%6siBM9a;?&%O!+LTzpDCY$YQNbC{ z?u~n9u_&}=&hW!pb?-NKc#;1)n!TI6HFD>ElA)ZXAJgYDjS$_vH?E_Dp9Y_QzoC(W zjyzCw;l`~eR-dvWiF0#wUfk_E&-=^GoDZ}DhhZ9ZCZi}kVf*&g#9}ZF@dTFHfq$Co(opKbv-C2AaR$>qnt@-5h;r9TWo)k~KMgqg!~hUovle+87^)N(5M8dgs90UbfKPzQZ z^odFF~N_JZ(zS+Emy;(;tRa4M+86m;EW-n!Z!3*Ib$0v3>ud^a@} zX(_RypcKTf$+JzhZB$V5_A(_eSwt5x@PNBd!vG{7*t~NSc5mn0{&yX?O2K+LqRH>- zIM=r$RDCi4;IukYYf{n*LSl6OsJM!>SU6!c(~Q8vtYL5o>^fc`fDhsj7f5Bn?++`? z`ICu;%Ty&!>BrmaX}BsP0@`(FQNBrS8n*O!tr)VHlC;=&8R0CJOS@;Lf;DL<%SaZz zAk&wzKv*^{DwuBskg>KaGvKmU9X%37(~0$C?!%JCa3REyA1ee=co*W~s5Tu{$An)azd9$L5P_!OcKtLve`;>V1dz zb^C7r2LUq^1c>yP7+}l=e}dv~AzwJ{8+Hko=y&)60qEJ3gz9GXstDi6%1Q zS~G@bSN7#!!k&j}CADL~096M>u4yv_0b?83H$eP0Kk zhEG>p!*@s1we|Hu;E(xA)IvlA1P`|d-nsQFD=T)b+F^?!?d-YtLe<^F%}H4j`2lZF zS9{?8%Kh#T@$u=&!QDN4I#*Csv3UOIv9sWFdV1P#Je+j|8fRlFPT0Tu?a)j2{Ydb$ zx88jE`t`vY`5la=;3NO|#{GR=e|R$`GBg0}OLb*8S!AKh=-{~Syc@*Q)m0Em)s?lA z6T08~4UDU+>uL{U>UfDp`Hb|^8^MYg%&oV0RqAwzGQnK`bbLIg*8?v*8N|aPTy|3} z5jCnSSiyb1G3oGpfVkMO2n^@kznOcl3rHm)6a{2sk(AYO8TiJwz9)uI`fis|ks$(Q}A$e+$eDgJ#` zbk{{8DSUeC_5$;nG5`{4tB#J({kn&>jY!b<9&f7buhrUYIM2hZJx!eILP3U^nVF}J z{e$eySiLz-mOQS+tbV{BZm5if-}IM~-YkS@9C{eA}mJ$e7B|g}z&K~Q1I=^x| z8ei`q|9yOL9*~AUy*QJc@pK5+~|1z-Z5l^jF&gOFV~QpdGEA zihTUn{7nL@Vk%u_BM>bAyuG(~G&tGL&(96P83G2n=c8P||85%Bx>pVAyF?DPih94p z_I?riNVyM4m!p)rMS^vW%lL-r$3{s}_VP_XIl+sg)Ge9Fj#Sb47R_oq*tk`12;9K( zO?^J!kb#MLwdd$xm(|FC%lA*G0dLG^wg3@pa0W` zh!lH5#G1V+c?2?6?!W-xc8>(30SnFfcsa0o5)C%^-5-ycM;G4D*T3a2 z>^l`VR%xe-$K!xU0qJ{OH8yWw9rn?KjwQhG`r_S{DSxbSO!X88W4LfH^TCM$c@6p1 zN)AFHEu&UT?)Rz^4byXq>CSAvB;j+efRB|dGZ z1uBc>xm|h|1;&Rn@RP2Ne!kq`#efTOO3ZTBimkY75766AE~T3x2+%gO}6=#A;11gIo(dmtRn|N|X(# zNO+EBC@rvRjMQVmZkl0yDk_5>J^(rj5O0)n(uduxs@okx5&-I1c|1K@6eRbn z>+5=q?4V@Nz(8W#>Yn+B>m5-(zkeN-UIB2&b*st;u4*~^Lh5k_N#~ji@zYZ>^Fa(x0OOVMU-S0yy!P9g#>S9TMgwDTR)K*o%GR6lG)7W;>*tVTCPGfxc_s6%-!Lz&1IWx06 z=bd*ZN?B0~8G!%+001D%NQ9!|>4Mz=h2hH*v9q7E+Gp_LTVUE^pz;1Y@0{PPBo#w~ z92f*>*!YHP~P1YV9?u(WBs+=lVVB!PKXxTQTYGHV5^T`1h5^Sl42W+M-9n z^Ec1Z+Yh;@qmC93z*rDFzzRdo-iB1sRL~ySkhNMJc#G! z&iJB7L&$rk5z?!T_}Ne2N3mFxm50R8E7 zP=3Q2&#TU+bXa6sx(e6It_dEqx+uw&U6|IP;gMfg%~ZwnE=>YU-tSKH6A|IV)`Wfp zik#Xjr|?m%WZN<#3F_LFHk=CAOaSKhdM$2MlXwQsgzS2Qn4Glfw$RrN|9md7{ZR(T zGAI~CnCJYi4MV>tJ{FIuMl|ScL6gDGKc189NIb8T8UT!`XuWQT56`aaSC+S+a!`gt z1|cHRw|p}82%%PNmZ`+^FT*rp!4>DkfoL~>CrqV-uzca!A~1Zh%gE4%VT406<>U)N zXwGSalvIP-e>AMVPaowGTs9?@MCM9n1A_T~VB2~V1*WQo3vqC8vpY}F9qT(!P9Ek- zMNy^d%a#p_+b?LVO*Sp)>Rq@suBeVzHLmHN+qs^iBTsbQujyU+AvuM>A`cPh3vm|} zswA5;={8v{v;CZw|2qBU+_qu5&U7$LzOw$zx}v5oWSw?Uk?*Sh+`i+=X=g2pCf9eY ztTfkuh{l?wT&T+*vgx{z8ker4+P`o}N9%kTt?z)6&>Tcf7wE|W1!}}I?+#1(lkj!I z7dMF)U5Dw`H7}3_G*D6N^&?2flNNB zM>)Azm&084p@s(?375>QG}ee}`6t_{zwloSa)ex@G{4i(Ef^D#`@81WIiHwVS$3S< zs%jOW4H-c06Q!j@yg1QAdZb+mNjD(m-cADdYiw|=cH_=e$%$6!Tk zvy^dXy+LH~+;ROjP?VhahCG(`ivtZioHXb$)V2}^xv-LkRxFT|H-$zVvhXm`-6qVa z1~c=Hx3@dPOYblSV~pQrYsSj~J z%RhxAEpIG#H*gpL6!S~ld_ie)ts3s}E6_VvVqa|rU4=&sUr&Js4T zLCcQNRhLWQqG5h*?od$#B(?2uxxz=2d}Q6i$3Qw#eqzsfBwZKoM)aeHdI`oSJh z1D~P{bHd+nO(Nbh)cbDU{;qz`45v$YJbncE0>~%C zI(?i#gYz`!-^vw`4!RALJzt-4ktOYJhU&-cmf5m4H8_H^!RPpK!)Fz*HJqTGnGvWYQ&1WA$5V66(iUC>HODTu^107!*($1X%NpDt z6$I*~=q=bt(1vApO;Zz&RM6__E^nbknPT1swFyFf9UTm2YRilxJxFQjU_ct)5@d)n z(bLw!SBx6-1C%boz&dHBxvfo6D35MAI1DmP5MvJlHoDi3;_ujJ5SJ^kB(YlOiI{LW z%X~eR)eQ+YnrS~-CL%eprL^d-Pj;==YkO9{K-egIWTf1*R=-Q9=vL+{L2*sRrq;<3 zk`!fLXr~yAe;R|apG_+BvUs-PdVltP6*j^=+rGJ(7 zub|-BKe>3U95(4hD_P|l45Jyb17>Bu&4~?8wH;d%OWI4uX-$DVk`m8yzN=ssANtz_XDvGwv`sDH}Mnq-OyMOq)s?RS>D9{>xBqHilYq7*Lor`xRdAy?L z%n5O8xNTobJ5=Iv=_4ma6XA-}FXJ~t(%Gp<_VVtW(9KX7xMlqd+L$p3uY_r;ud~TM z2WS0wAUJ3%4-)n5Oce?2lxk@WP*a^f)$$bT5{DNh)hznu8dx`OY%=*uB(70!n7A8) zF;r;(6an-0jCO@Kia`;s)e)x$k_AoU=)3jr6pVX6Lf2}OI3V*1((qxq2w&|gV5+Yc zt^ND$Z8>Pfd4;#ErwoV>WcZmTx%y{zhg!SYJ|GbaiMDC=Vwn03fqy>?(LbDBA++Xx zH%*K(HU}J;VpZW9Ni-*^+)vT5WGAoWl&2ndPNIa!JEP*jWNr}Nz57LFQ*gq3I9*8{ zNOg6S!Rl_$$?QpZ`()i*up2k9=)Pb&wcX6=$pN@SCStI0pWA0R&s9!zPr}8xQ8-5$ zpr9hEM^Ab~e=m*)SjG|s;PZRKru+F&W1mTvgn2g2yqg&QTOK|m?*fGF63PWomQB)S z1mB~MeJzrE@q>=|<=qj!T`TkQLE&M1C=w%|e1jx9*``^Oq1oyB(Qm#SJH_{opX-A7 zDwp#*?bMxU3aT6P4||u)N{X<`5&D7HbQ;|X5-WP&8Oixv-kflWxo-}hO?Y*Dd&&@6y6=M*a7RKqxg2wNf*^OPrN7s;| zsz(XA`~~w;sjm~+NnP1oJY?4Pd|f{D=k4oHkDjLjagW^__dHk& z{YLb7SCDlbm)>uEbc1EF(9=?UeJ zh#cIrR*Y0Sy3JAO;zcIfU1(BBbv^7*{>6NEKy{6?&3Hv-BGnNN604k7u*rbpitxX4ZJVn_dXguYT0dfjyzCPD78R89u z3wOKZ{+xy#;8wi3-poeQZPw-~VBJntoKvii(643W71LabaXaNS&i&JBXysrl$&bc^ zhyy(sRD@5j#x^rY+-$d$u)aj5m)Kk)!;Yf1BPRIZwju`1%ejGW>!77nis1M|?lPd* z%yQYZzC=1Z-7IHi%bgY}Gw5Di37NETg9(i)U3Y%e@affHc?;26AGFn+^Sz-)1>V0| zAq@gve&`Ngb%^-{My<5uGcX!XkW%gZ0d*}P^Ltk+&0(8ri)*@EA;md4qptkTSL`+& zgi2v|t|#GvBixIy)9{roQNPnx?;NAR0c9t;-8}-PjpBwV(k$b!Ab7@LwP=etIBlcmc&aO|q#>o6d{4=f}O*`)2lfVruh1KWJkGZ(n`fbc6~i`l5lTHTy>d zjB2CEZo*1w(YjdgCDSBOI&yvnYBJPCfON1A$4@bt5a(3OEyw?388KPzdN0Y{_C*9{>NuIPxhW25~{$A6Yp2LMe>nE~34X72< z>qA`vFP%7F9*d^Cb6c>YqY;EzOTCJMP=pk&uPz56V(srvc@t&G)|Bmyj6w^7W>^F{ik z@MO?(7v){b&iO~abY`EdNS?m@;+eJ9++!Q=(x6>Q57i+Bn+?hD2DiwBzx(rbdelTY zW1a=E_SK_Gs__$NZltF~Qf8vZrxAW}og?9;na56}H5(-P=54LL(BY7an?_=2^7`!< z87l0DV(W7|G26xTC^Z&_$lUcPcbrE@Ft0rWu0!J64iWM&30*!723H)){`E#mvK{U} zy^4!yy@@ZID{Kl9xkVR@G|6hTjqUJ&;EZMKG+R7`2>bMZgnpSE6qlcXLCe_c%Es|O z002a&m6({ajF{N}YXjhlK#pIcfb@Vc(V(GPNg+0D^bc;+--L5J5ntnho_FYXIXzop&II!$zNcfJ z!FdC7bN|cEaf=3}F1QjSA2UANRb)@9nt{2;X^KmGCzI@JY7Pwwdh|1==2`}}e5~gW z?n-OkLqw}|jVZmHCe<*Gt5HL|i8F?A{ZgJ_Zk#$OcycUtWpQ{;^2W1bZRt7xi205+mmJFk9OU~6-6YrV%J>-`tRnzC!8=Op zxBvi%nE!PMKvoVO_#v#TjDiI0AtEl28{QzaIvoJOXqOQeQTJTCFnD&r9KG`+iN9Kp zBR&pCOZ)2#w<3Y~_9+ebhdz>#mJuRJSbC59MxgusJ*axi*GRlmBs=afglItxZ&zTljfp9Iy_AY%O@{FfCV(7q*Fu{6ZJBUZB_3_OBw z?OPB5C;z-}6F-h>49#b25T2kqbq;rYy1vN(X##s`>La0mo0aYQ)p9fc^D9lE0jB2;>;!XP*cHS|=S6Cklb3p{f*E(}Wm++CgnK(SFT2O|dZv#< zwy&f>Xo1^T5zFTn6a}lch2LuAz7xbs=3~3^=608l%?HE*z?k9IrL@nX5Hh?k0zwmJ z#S`Zyl4QjT1uv`qe0#odC;aD4+@xDIE!C*Yw0brwt1jfU`XSt7drEfQ^{r;Xqx$Cl z8!eV7J3%T38eH%G4FI59g@ZI8T&5m8eVn}Qz?qF<3G8099({E|Y-6OGs{uagulot+ zQ}$oDi!HlB0U^YTR46gvi&g2sqc}ObXV*7?aKoy2oBq)AGtcdFC*?dVQscUvD=#rv z1@>$Ob^_#6y~xmU*RdB3%V)uSC0Th8+6hJ9{tXBVfh<+l*x#RI)fOjH9_GfAC`cGw z;=_YM2m>lADxyV+A8?c}mfQY=>Ndvv;=Q+fYNiwHpSk11PxAEcUv{zUi1$-j+L}KR zGkTC!NGN`BQKPb|%Gk^d`qY&`Fdr2#W67Q{e(31v80g6#XT%x_Zr|%7C5y<2U8^*c zr?UM~n?A;qDBi#HmewZq#*33j4t}r4K*#zAHm|a}dT%P1Z)Ihr)zL41I^yuqjFE+f zB3F?DBMJm=`O^ceNDJp~>J=L5^w?O@5-08cK>(od66Hw)R6d+?AB|lpLHsa!tYnFq zX@ky2n+vRqi%aw4`pSwhKZz7S$?)tfI(;gFbrXSX2?p5W;6702H-~(rGPg88D8ICw z?4~zy@*r2w!kr2Cbi!tRB*@GQ~JW-fBxo>U`V`*v0@$N|BzmH^P1%K-5{dc>zy`6q^ z{LuO7NOhcMWXFoG${GjON}A_uMIaT6((E`4W?@z5U*@VZh+t z-k$o$ELc5olcx@G04hMyX5QY{#n4nl% z*Vq`U*J8i>@&4-h_Qck|d%cjmwYNuJIQ#qWpR!YUV5WuTsO&G1U>}^FX*MR9ffn>IK#vjY)gZ=%%e+iYhq^bHCUB;r?RG~5sFX`fFN(sSYWJ_vm zYXkoi(-#8k`SI2kb8MjlK9u#Vl}Kt;(#qq-GLA|ZzD>!4KCM_c6VucCL$QRd9#rJm^rxDiK*0~f8a!;SSv3Y=#a`*LIwck-y8_%~vP_eV^>XzS?o9UW2U z@p}b_g@riNkd_>9ieF>1xaeblV|drxEdadpDvyoA zd~IhZ<2<&epb>^(-v!ivKhosQ^vi1cdK*~pkEeaqjcz}mm67m3XT6bFB>)L*0#pJ< zJex?cly8lNXrTG*Ei8HJs3}^kBXgHu3;E1x55@Y~512bdRL_sfb6*c_;W2Qc^%lhUo z#80BM?Mu~EUS`W|7{}C$}hsfBF5Fm*fl^8-+l7ug~615pu#Lx7&-AadOg@<1v8;+~g!LJ9m%cHv=1=%J(3B(cgg zJp8vBTrfUPnyV>#uu=5W!M}hIm5G^`-!0jHn0|?Re)g)YtlUXA^zR#pK+P>qF`!1_ z{6oYrSYdFp8ktZKS{s`3#Q4X94?qw2A(|wu3wIx$P=XLxE-LJifTRK+G2r=h{gdeA zc$BZ98;Gh=Wh&ib{m#EfcI{QE1oa;hwmLy(XJ<>7s4C9EGyl30gz(p2i1e&t2t5Ds z7*$aFB%fhWL7g{$4644uj7J8TJqUSZ4qPJdqXIzSaN**DnJOz`uKEnc$`Su(l$B6v zCL)nUFf6oRQI^S~LFYek^Yh!Jd(tnG`JM!rD=hH|%~2mL%72FWMn*YY;|n9YB)V5e z#TZ>&Ud3&?TuWJ5Q$qnp&$l~1$3ot6iCI)LZmE%T$BSe1 zsm`Z$CS8suQPe9T7V4!UepoNaHa5VBn=Lu%MzP>(qU_dMQ!&_n>1A@r#VU;;tbkoB*}O6~VRV6!5kv(C+BpY;4B%C~rk5+P05}2? z_$mry5@yB*_nXyo0eI4X-ro3C%do&0nKSUm;%*koNMXL1v^Ev=71mY~iiQj$3MpH^ zp&p2O2XSCo#8`Mk`wmQ(D4a5z%io#G^*5E^KTb^C|68_xAxVkR1`y0&on&hyP-?!2 zycxt`cQB;-9)r%rF^p+c7RH&JD$=VLi)ty$qKmtXlyML*DQlJmFOgonRK_O~tq%EPl)Xie)TYCXw-8D9+Wf?nmlKgu}xsbjBDW(rrvaa`N|0Yc7KLr@qc)2p=&Q^FiJ>1@wHC?}H}6D+&NBrcw>{T4>)uYK*%8ufG@kt1E9~CULb`zf`jTxyT`;moyQ8?b#g|JiW?J@sq3AMWc@^8k%GOhp!CNOYPBMP$^G5nBq;EyXf~FsrHP^Bb&|zr*TaL7*Oz5MyExB^q<# zd*GGLT`&eVOaztY!kzzn;jYRL+3ub8dgr+5;EjP3^zlkyEUW6Ctlq>~=KSN53N;)? zy+6mVtO(T-BZ90?N-5wgl7)W_j%0_<__>P1r*FzA7!c}%)9?)vA3|RW^dVh4EyygG zoMOwL^wB>R$EYwQlM2Di*|}|liy;g1C-YH5Z19BUTUl?#PP#1B!JQWoDJh>@r}a4( z6srZ`wh-sqg}f^0!|H(eVYB+yBSJ<|&9{ZTT4GrM^YIIeb`TT(@bK`+@f~fdEUq*w zMZfHidy%<)=Qid>-vL(BaUmh0;n7ie6cm&kTMo&dV1NyR746<}r$V}A(-{z%Ri;pC z?xFeio0@(Id1$$3S7bf|UG!d_0-~Xj9(a+Xvokra)l3?fd74r4J8~*wyD?|R#BulU zh7zk^u3%zKo``qUf|>x8C9~hX5vt z)=j$kSjg7T%~0H@2{&1zrs0|O_7cJoqtdyH&7S!<_g?b4pLBsH0Gh&*d24C%0&;7+ z1=`=LWjkO(fU7ISq_T&>PRrOt)f*FP%xikUFn4iq%bZ`>3w z32=EHB2Lk zQb4nUf>jC`h*|To|-tIu5K@2z}uSGQ<>~CqXam$M_+evuz&gp8Mec z`1pA9^3P`Vw#V<)96?Y*(D!SpagtkHb449_Q2wmwDf}8U$y3|;2pr{aQ&*kg*x@It z!M-dj{u;5;Uo9;yH(>U<3l42hw}*%*sHjv=lzhHLLLC_aj6j%Y=%(QbKHK70L`1}a zOMKJx*@H4flJcdDp_Yh|fA=u|oDI9Y!>X#7eBYkXeSCbLZuVgnm6TLyv0m5%h^~n- zjU<6wTweo(b6dcM*m5$oAh{bMpP3B*QQ?x$vGEWtoT|qQ55i^nwzJvcv9h^2*w+UU z7a#BB?oLh2Y=~du-k1}I9@Au%j}LD>lv2u?HAxNT-MO}Fu-S|>9!td8->R6tRB0lz zeCzCecxaAsb#5b?nwm0|vPs&Bm+uAf?4`=9O=9s1paO7P$kpD(rh%SPk)6KJ7*|_e z1IN?(hn!Hwk3_!R6?@z}@e+a9@aCbv_5Pf<$Jui7%`w3~MI;8n2DUhCf48wg%op@K zi@q5@ybU9{g=1EibML^)=)Cp zMT7hy4yPa%hc&T-(NVITUtuy z1$cNwek!w0S}P*Hm7x{r2Iq3Pb{J#|-M+r>6P>WC^YHWkSz5x`>IsP7+%(9Xrzssr zbztZDL^oYuN3Z$dsSMti&Qu zKh?sZcIU4jzK}@fmW|6hKFf-flbgE>KFub?2SZ;o&0*V!Nl5liPJXl04e{yBJGXwN z5~d1D(l;eO!(rL9$BmVQEK!B0p`r1U!Y3gjLh?%?1AsZjcMFT*d)fhCK^6vwXY=87 zdBV4{{~XV%8y{lQ9J5Im`S|$QFTyKHQjhp(bi7n4zqX+vO53F8VW&RLEbOwm~V!j{Ni zCY7b;D!Sz4?G4VY<}APz1&jiw4ohd!F6C!{m&(3;9*7X>o$2gJ^KJW3Un$)IR%QBB za3=aPmBNJt2@XMn-&Kw-tr9kDy$>}2pQ>=R6hXavuMXb)ByAo6MYF<9x?$kz1rOy1 zuf{)i%64XSC+yxHcHlxlhV+gJY-dd`tSh+80Zy0r3G@2(oEyW9N7R8ql}Sc!PyGQu z0I6_!He^7{F$#w&aUd~Gzh6Z8)fu}}12$8-!TmUl;RVGt7PN%S*?F!aY literal 0 HcmV?d00001 diff --git a/core/assets-raw/sprites/blocks/production/phase-synthesizer-weave.png b/core/assets-raw/sprites/blocks/production/phase-synthesizer-weave.png new file mode 100644 index 0000000000000000000000000000000000000000..0c82c7a8020d1baadc1b84abec96dec88320a745 GIT binary patch literal 322 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7OGojKx9jP7LeL$-D$|{&>1LhE&XX zd*`4pv!j5^MYER^L>niHew=aHi-U85&iSyjpYEL%Umg43W*#F@IT$o(?_A1Xapmvh zzyH2|e)~1|^!-gwFWx_H|3)HlcXPee{|(VC)4wq8|C#+}^Sb8P=L(z(39HEToBv$A;g*N>6XfR+r#KIx0;6oN;jn)Cl^WC@R8HBRVh_nv4{lmDG zG3^@9Rf~Tq5oFF{J_Al?y2zAt@ftN4SVE3f}XB^ JF6*2UngHe$c@_Ww literal 0 HcmV?d00001 diff --git a/core/assets-raw/sprites/blocks/production/phase-synthesizer.png b/core/assets-raw/sprites/blocks/production/phase-synthesizer.png new file mode 100644 index 0000000000000000000000000000000000000000..04a97dad3514dd9e13a061e2d78efa941ccf3863 GIT binary patch literal 2353 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 Y0O&5R@x21`8UO$Q07*qoM6N<$f;rb list){} + + @Override + public void drawBase(Building build){ + if(build.warmup() <= 0.001f) return; + + Draw.color(color, build.warmup() * color.a); + + Lines.stroke(stroke); + float curSpeed = 1f; + for(int i = 0; i < layers; i++){ + Lines.spikes(build.x + x, build.y + y, radius, length, amount, build.totalProgress() * rotateSpeed * curSpeed); + curSpeed *= layerSpeed; + } + + Draw.reset(); + } +}