From 752503d8926bd8730dd4ffe5ebe37bcfe4b95fd0 Mon Sep 17 00:00:00 2001 From: tobspr Date: Thu, 29 Apr 2021 18:27:46 +0200 Subject: [PATCH] Puzzle mode, part 1 --- gulp/webpack.production.config.js | 2 +- res/ui/building_icons/constant_producer.png | Bin 8087 -> 3494 bytes res/ui/building_icons/goal_acceptor.png | Bin 8087 -> 3590 bytes res/ui/icons/puzzle_complete_indicator.png | Bin 0 -> 1732 bytes res/ui/icons/puzzle_upvotes.png | Bin 0 -> 3035 bytes res/ui/icons/state_next_button.png | Bin 0 -> 1846 bytes res/ui/puzzle_dlc_logo.png | Bin 0 -> 32244 bytes .../sprites/blueprints/constant_producer.png | Bin 8583 -> 25250 bytes res_raw/sprites/blueprints/goal_acceptor.png | Bin 8583 -> 26500 bytes .../underground_belt_exit-tier2.png | Bin 9829 -> 9824 bytes .../sprites/buildings/constant_producer.png | Bin 7864 -> 15085 bytes res_raw/sprites/buildings/goal_acceptor.png | Bin 7864 -> 16989 bytes res_raw/sprites/create_blueprint_previews.py | 4 +- src/css/ingame_hud/mode_menu_back.scss | 15 +- src/css/ingame_hud/mode_menu_next.scss | 22 +- src/css/ingame_hud/puzzle_dlc_logo.scss | 12 + src/css/main.scss | 3 + src/css/states/puzzle_menu.scss | 181 +++++++++++++++ src/css/variables.scss | 16 +- src/js/application.js | 2 + src/js/game/camera.js | 17 +- src/js/game/game_mode.js | 10 + src/js/game/hud/hud.js | 85 ++++--- src/js/game/hud/parts/mode_menu_back.js | 2 +- src/js/game/hud/parts/mode_menu_next.js | 2 +- src/js/game/hud/parts/puzzle_dlc_logo.js | 13 ++ src/js/game/hud/parts/settings_menu.js | 44 ++-- src/js/game/modes/puzzle.js | 10 + src/js/game/modes/regular.js | 2 + src/js/game/systems/constant_producer.js | 13 +- src/js/game/systems/constant_signal.js | 6 +- src/js/states/ingame.js | 12 +- src/js/states/main_menu.js | 12 +- src/js/states/puzzle_menu.js | 218 ++++++++++++++++++ translations/base-en.yaml | 25 +- 35 files changed, 618 insertions(+), 110 deletions(-) create mode 100644 res/ui/icons/puzzle_complete_indicator.png create mode 100644 res/ui/icons/puzzle_upvotes.png create mode 100644 res/ui/icons/state_next_button.png create mode 100644 res/ui/puzzle_dlc_logo.png create mode 100644 src/css/ingame_hud/puzzle_dlc_logo.scss create mode 100644 src/css/states/puzzle_menu.scss create mode 100644 src/js/game/hud/parts/puzzle_dlc_logo.js create mode 100644 src/js/states/puzzle_menu.js diff --git a/gulp/webpack.production.config.js b/gulp/webpack.production.config.js index 1779a76f..dc9559b4 100644 --- a/gulp/webpack.production.config.js +++ b/gulp/webpack.production.config.js @@ -40,7 +40,7 @@ module.exports = ({ G_ALL_UI_IMAGES: JSON.stringify(getAllResourceImages()), }; - const minifyNames = environment === "prod"; + const minifyNames = false; return { mode: "production", diff --git a/res/ui/building_icons/constant_producer.png b/res/ui/building_icons/constant_producer.png index ca267ea6b785e7f1f477f98282754d5d0625de43..887a3ae636aa980ae6232278434fb6db43821528 100644 GIT binary patch delta 2792 zcmZ`(dpHve7vE-Nd1<*s$kuYpbz^gzuo;;*gt^qBhN;Z0P_9ivx{0ROtzHwATuR9; z)swDs*mYivEUCYD(sqc?On!ruX4NxX%Q;e}5 z+z4reGDI2~qA>a>lm*7f0%e@}Ba%@A)Mp?-ScWf9gJBJ}w}=i2cXF~Ig!xB>P(ve$ zgae4Jj6uNZ01HzB29HLW;BhFV2?}M0$J^qKaki#-v>C=0WnyQ`s1Q?y|7ybh-=<*@ zhH)EWh%gH@r%;Vd&Ge~AVvxwKFJBGA zZPCgPmiJ~_UyX+g+%unCQ`f^c>OIpDC_|u5jXGzE<0@1Z)<9sGxli2&%}?t(h|sb; zwoupAZ0EZd*e0DLbg_HMU09v8+t@Ea+-)|a&ub#vZulAPe}O@a&q zP~Ab%4ZzMug5)77nhkNEW0%g+;Oe`TchP!>=FUm0_C!!>B`BHz{PPIUuE3#u;h@#b zSKgP5LrdRzJ*GR~mH%RI-VwNh#qTS(vs@5gq=14J#_8^?R{bSM&NC)|~^~#}6D$oF2|%2!=Qu z_9fdL9(F4oe`rjqpkFlkn?erniU0PoT`?tos`b)Q96L2#{*|eX*(aUiDqz;8DgoVN>n?4ydJLU*+AqK7G8V zxaGskLSB`{x|E*&7t(sdrP3zbss5^jb%wX!SM~lb`3Adx-n> zsq~6yq9>b#*Ml@B7>ZKHPG?_$1CtKcEVuX=DxRcQO-sZktfr2cS4#H$UQ0T@$(-g> zq}wF-Ikxrk+>MWy+_-V$*<@&Nzz2n=5^GBuQG}7s?hHT_=(@1#5pA0LPCQC9>*F$D zp!c?HVuBoWf)8YW{fYx6>-*Iw#Cd3i^cJm;vhHGs$}hG@yMSgqFFzh^&+cV~l#4*# zGN0)*DwP<2Ni4HUf`VvS85PSFMpZE5Wlng!Ufn&2cWj@*-Mq^~)(%#(7%{^UxF0T3>Z^WzkRefY@fcl;? zi%{Q{S*FEuRhRKgWu2=jNhtsC=+nu1@b1@~ z8Lb$dR;t3iD@>#;Ai5KQ%M*r}n z=Y}w+{34!gc}RKUVLXbIwO>a3Fe7aaiu7nwt$`VpgO^Jcg4SP6fwg6}6H+n?9*xFl zWz;$tNbw~Ez68Gql#FZ_FBi5vLm}v3ke6ew?EEoi_jrx zj8YJQ)G`!y2dwF97^H6CNZYZm@W&Onu(?F{Vx%(&eA5*>(N3g=hRzo*>tiB*NJY)J zWjXI#!y!IZtZtJbEk0InVY&9LjpVG%^9#eZ)%K6a10}nLJC&IRsJC>mq`Q1?fT?C2 zM#LY#HYpRX+G+C}qr0`uK5-8l?CG}ak6HZ{64IQoKLimp(O0GM{)qw1;3m$kr_=BL#5=E^qxrzBX~gECz5`iOZv~3LUmF z182N+vODRWQ^hHZ^hV9hZw?o2ZNjx5EpVRAa|%mxXTt3EAelz%@ z05cxu4J4^FO~~U;XxB%NSaYlgIo;F#3m+$`b~(l3l4=@s>mbdl$5#0km3hsYFuPn!1Zo({oUTEmsI^0STY_%?wt<1~3^9U^;?LMB-T|pS#_Rt}58X%`H zrN-L4+=a_jjJMRif3_^WX>>liZBRX%=`MdfRMG zmbh-`oE7*Pa7dLh3+nHYDX4;#rC1-9l0t?~@}*_0n7YBP12D{l*eN+qs>!_y8LQSh z2w16_w{kbG;rdh2DO!^riYx`nif%-%J!ma_=dTH61{CaR#>OV^mI<*61_AxfjTN1y zho6dg3kE@>z_N*8xC0>RU#?9Xo%_K%-n8!ayBDG~Z@oTjvXT=Z7&cbbLNqpssi762hX>J!9t#h2u4W?Q5OFZEIkZOE_2&d4%7(>n4jJ@}r_ zq?A~wM>;wG1OLUOZA%g>o3L*-c2a~4z|It+`2`su7-EwF_~q#T3_pkg9o^0hlKw)Q zJvXO;fGkB=OM2elb(?g8+q|)VGw96TD#f&cL5Ft1T6AEwp$5uD@z2>5DuXB|8E#)( zEbQ<1TFl0Jzr$X&0&jasPe||*n$>7aYfBdwm@UL5b?cOV+>LBaYvHR^CHju z+ts5#A!P#vk1l7IKD})YD6-@mZRfo2d(Qiw>szjGu4`ug^E|)jzJJgC{O^0|_<0jgX%l`)g;;xq0st!%mfs?P+&pFBgA?0rn_!#09gfE18c^sw zD#IX>8zMvl09y!=Arx8=Lja*N0@%T((DAF+p%6CR6zYkwN7#p$GgxfvXgZw3V}3%BTV2(Gz@8kGeqD}D9HC0ROpRQXX0GQmfw8| zf0;sA0zn844v&b4Fo-}K@c036Bo>Q>BT#S@3MNFrLZgBOlt@@`==vWP$c#`LpB*A# z^MWDE7AaI-n7|Y&WcqCj+>oDUgG0ZENf z|ASblz=iR9X#U1>A^hj!5Ef6s3uW>CA_zaH{~;6tHuEnWF39c3KDICHZi0^A;0@I=W%#^dmddFbD{m^1IG!?3#n3;Q_K{K{64sCS*@I~Z-d4t zgzyDNE`NTX_xca>zfZddvxOl>K_SbM!F~1bDy&{Y0!A1N8uNYJi5 z1ZDEaDX)K;S}teHX^OLEhYE!k^}XP@GIoA{;;4c{bk(f3_kl0O8BFfpA;bfi~jzj z?*3k3{Qo#7`0|b6TS%{PfP!@jD9K%_oIW5guQLKY=(X> zHfEH7pJfOCqqQJ~*@rSVM8cTHXcUZrSmudB(_q5up9$53$}pxRd$KU@oiuD=cm@0!bx zKQFn$A3v|jj9_6c;tMaq31osl0H82xLngUJ_Kx~~E>vt%itjgVi>=U?gcc>dfT~MM z>H|-{SgqjfyqchzwDyG(fw~|%X)bAVjR+y{yNy;Q8LE;!J`okS$Yl8+BcA2IqPsXke3N~(iT-x!~Co^68~F1C-!-sG_VyR zxZ67GIWMWoH(cpd`x4Q;!DuW>>~h+j(LBabm19v{PNKf1h&-p4|)O!BI&^7qUgdM`HdtEYZ zy^}pWW#65=T*NKiy4Z8Mq^{Cet>04PsTVW))LfVdW8_Rxeuf#RaYnA}Nz>KKE8fLB z7dC}|d3IxfolY1d*7b*^M#bH)E0I;Lzuj82Iq~fNBe?3+=EXNtO1g7PKE}z-r%`+E zEv&ngFA+7vn=Z<~X%G5MJZ(PPo@nMirUJZw-@YjBnmBRahq3r|jbKY2T>iucv1#bS zPPKQD-D>*Pule0dC5z5MNn1e2Hiw6Fh)<}I50ccQ%g@aFu3U7nqw>{;DRmH36v(;> zW-)-wOa*}!EJbH`mMk^K7m#E7#b?vumxn2x6(GcB{-{p~LFe+2-}qQ@+QEB)vIngy zK%Z}vpFAKS`zAC5%}x!J)b1}^e|}Cm4h+N{!&Rn0lvy6PuJ%5PaO}P$c~~l$G#98> zqCusrxmRs;dmIj#A*?vnl!4CDS2Ffle1%i1ODBT*Ns2A_iAMT)RkvJC5*iEEtgglk<&+cRUERYdh>Q;j{C={kJpT!+b=wm zvQFw)%pE->A&{u`_v{Q`NJ3gDFu@!t87vU!CIOWuCiE8JS45XzD=tk`wzT0MFJ3y7 zZBJ5Zv~SK&_ufCS1Pqi|o6D0KyUba4OVavv_$68VBGz{I!$Rx27(iJ1xIQ2$MBUKg zs0%*te(u`Sp)rSp=Dc@hS>{VreiX`eDP`t;n$3st3Jflwi~=p|!YyRpTn|S1V&hsL ztktOwlo+3!4?iUC2Z*menD=Ym(%BlnoIM64a%H%vjMBlYX+%M|Hfw(Oz4$zix${P4 z?!02Woh6i$SY%_z`ZDmz9xA!n1b-$7ykNj3<)BbiZyl9vWnCYQa(o_rQ4Q3np2{wI zUcv2Mk6PLrLjsJrp{96V4tEuGA^uT#vbw66%kfuF7P~y`H75rpoo*jSIX*qQQqn_;t~7HR$KF)Dh=oLDMNQ@Y`*HXN zJLZ*aGLmm zJKc}xMhQ1waOYIYo}JEudbR%A?|G8oWDt2)UC}$K9+(~!dpdZu4!vaMc-HS((8Kwe z8^B`^Y7KQK8``Eh9dyKJa*qp9n{{Ny4xvwy!3St)us| z!|p6}RQ1CQs=KzF**mn$uVF2DRqLC2x!6)1_v-4%Cx9<;&wCPgyNoICd34^QzJ19j z4oZ}DwTgO3@<<^xc5fD0K#4BILH*5DV(T3^Hk0R{a9(wYOpS*t{(7%FM6Jrdz9I)#5xcC_l@^#)S?W=1N66l;%|XUV z*A?R(l)`%x#^jRDkEA)o6M zXt~W%$B8>dfG*KkI9=&kewhx}sdrdQkV{>!>Evq6)eC zjErO2s9|pnNdLJVFnDm|%GSEunFErv4QF4=ovKJs&hO{)29G(Hw^QRZ?H zub?M*^hndhtFj9wc88OzH*QXIei{KfiN*)eFN)w{&onyPd^`DiIcIZY#pBF%HdB6O z`JUE}Z}`{((P~^G`WJtxhRMBl>)jxd6BFi;(m(&~)F;Yj!i!;p(**$ug(=x>x;1{S z^X`2bI<0ylE9KV_!90^~hntxpFl8%J>=_{b87@5ls%C-6f+5J#i*_8HE6Q1@T(^l>RZSj>$0^0{2U8|h?M&IG4 z#!O;8QL9D1vs`uZ8X89~EEnS%8<%e!AGcU|>I$|%_` zI{JhJ%cf5)stT}X&j*RlnuLm>x^99*%A0=)#+84?XIRfYaKT} zud8g`SHyi1q^jt|BTjg3QzcEm>;Px7=Tu3>b$fbeHuq#eJE`}w&Z(;#wT!F!ltw93 zAKvc6$kjQC{giyIFM}tUNlcQleAA;do7#4B*IucKM%!r>yV?)0_0vUD%pPGb8P+N zrNd=|p=R4ulOH-hA`0frOeGFhbR~G0=P-Wb#RB%nu&=n>nGwB&Gnj2VXdU=ya42*A z$I%P}es+IyHfeEUKBInbko<741)*R@ry=#&$k9|D?(xhkUK1{F#cV70XkyGxW9Gfm zhU8Qkf6mR|T@D(nWc6y24RLLn@`Zb&KE@zOfg6;mC(qT}+}3v|K^rzaII{Th#_5A+ z=0}q{Ty*Vw?rIcm>ZwGo8&Xjzd6yQ2DbEoljNC8YJGy_v@lV9*eHD2H*b6f9A|;hJ zC)D-VjD|JwG%hf@0H<`LxB)XIg_icO=y zbJ$fYdaH4!#+}gET60?iDG!|s;<0erxl0N$4|lTkov&)SUX9%f$R(N$vb4v7GAX8{ zExx;>;m>NG22JEB74cz(<-?YuFAY%vDEpqX^>t>7^j^P*iF>z;t-@g4?5zzN4z=3xBr`Sps&ADY8XbQ^e z^A@%yOIF{DMSJ{Re1|mah}vCCz)hfY3T<>#C=+EoQ1SK~!p4b(R$Z%WL% zC(vpcO6nBs%rFPoLY$%L3%j*Q0}0GE*e+3ROmA<`dvGn}Q;O z?{LOq)EoU@hAjy#-IE>-+H>LalQHgqa>vxKtH)B!iB654ujB8mc+YA@^=EVf%!fKG z(c3GEEF$$U0U9L=cfVVDAf+Q|NOXB=f9a(&LS3XJO5^T3eQAy5uo% zwofH1qHb}sU7=aS`XPyTJFddqu9rk?bc)`1w4LT|@yxqX@*s5R!D`~C6|<{kFUAtq zCl1S3KD+aI!*%T&4kGZx80p2uX0GV@&t85C4Z*rbaO+G)o@2qbN!7Yn7LYT#)VI1) z_uk(vQ;gQ!6C@SM7o7i1(I@u-sb7mEqk>PFSywL~x9jjVIf&~atEfnNuYy@0gk_$o{d$VnO1Hvir zVFqjz$}nqiMRX|zW`REaJN-RI+W=eIf z%*(x3q#fUfuUOdq`q|z&{z#Ro?LF6#BcCztPiYHtpKs&~bCYSF6+q9=83r-{u zb6py;H#xi-5mn}d#@HIKEo|UUh^@&yX8p9Dg*tT$@I0{m3Aif_Y;|&=j@b9{h)e`%^C8Yrp5@Z zoo_rRxLJdr`TmK8#H0=)p%_uyUiM%Q_)_X1Jp5wp#lprK3n0$qM!?|4=B&~o z^ya&{gfuvA{adXh!o#AAx6YYza8Z5-ch)a>Rz4lc*OsULjmDza)ihVGRr?U5{?fV5JwUBCj`fPU1 zbh_9!$(WT3y05&*)6-`}`m=73CRe$|eVjNKBL}fQZj?Qz9AhA&gI10`u}-m9{81&Q zq2OkQB9QO7%M=6(evo>gaidk{MKAc2HF0C%0~PC$W@Y>=oCXT%-U{s0`qT|c9A~7A zuG`Ig{pjhn0Ml*99){)uvP8wdOaKxbJrernZH%mmZ58My%9yXl8cp6ZL}%ta4UU#df8n!eniekJIx9%!aVmmyVQ)t9FoZ?<{=CAXd_c6;rS@AwKK6)K|u diff --git a/res/ui/building_icons/goal_acceptor.png b/res/ui/building_icons/goal_acceptor.png index ca267ea6b785e7f1f477f98282754d5d0625de43..81451757e0fa3f6dd946adc264b669e51fde2730 100644 GIT binary patch delta 2889 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 literal 8087 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 diff --git a/res/ui/icons/puzzle_complete_indicator.png b/res/ui/icons/puzzle_complete_indicator.png new file mode 100644 index 0000000000000000000000000000000000000000..e2c95b8bd6a6d1d4c1ef7252840962db76c59c5d GIT binary patch literal 1732 zcmd6neK=HE9LHybP_2f-$V;smYKx(4*lCQCms=WAi4~))R9j)#te1vcPiuxrxfC(n zWTo~gd0N$$%*b0!n?_~Pizc&ILa{S7+{w(Hz4v+c|NhV*AdyH5fY6PRBoY~yWRjUFKJDUN+KW%d=^KFUX86c8`$2%m=Bc4E=_HaVu1y7G z5%}^2Zc;OXqBFLo?9IsB%}XL>W@dWqKm22Q;_lQWj}%^V)#N&RJbOK`asBq6#UF-P zS6q`EyN750cp4$Iczz|Sdr#~VqXp(<>l=OD4^izCPEuUfhSQILW)(6|GnmGO<#@OwF&ODP+T{@Bt>^FCDig z+49N|*&}>Ms~Axi%E|BdPnH^v4<`HU!9CD)&>A&)k7 z%cME1mdAe8{F%AsAGdEd%LXxHdjE8N(9JxPa8eq9XZ`pA5~S3EGZ zoA5rXi1JctI=AOL_FV>;E!NFJ zf&Lt_#CSYaZK-6$%mkrUgZ^%Y0PLKGE1(Q|s4U<1G-r8XzD+Fu*}0zvnse4mjBj?x z*q68sABxm;PdvHJY0Iqb5ms=*b`ExLsA`(=!B=7&j35eu;-dafW-$XS@zweuU~?WA zoZz5ToOk|JUnKU(b9h%S$4=gHkujcPCpZHdJMcB0H#tem+cay-jFT9D9!40-8k)R8 zKd+{7!prEYpSH-$D6ErPMhVb$QNcT%;Z`mYC1{qjOGE+ccZM?PuS&nz!c!Ya2lYO` zP%2>5&(@`hrA%f7ContZC+t9#5I$}PrU~H~TnpeBDwrmKgX};|2nSI?z7XDlYXQ6i z*8O_3U=U{3Km(js}hW--S}&}%)~JIoaU06qfCA#YP%|gtwe1FLO4>?meUyy1PACA z?aVUnw7l$Rq%3eegU6|b7A{Nqz8z;naQ#)R16kGKbkiGOoj2HSCUE}BQ;l=4r;?!e zQ=B%Qgm2UL5oc8I-)6bq%7VXMRU_JF%R_e#XQW!T%G1<*p`vqpLOqQqZ+Akiol!`Q>hnXXLA2n~a)OntB~-1c(hl5NBiKhJ<7P0;Z`b A#sB~S literal 0 HcmV?d00001 diff --git a/res/ui/icons/puzzle_upvotes.png b/res/ui/icons/puzzle_upvotes.png new file mode 100644 index 0000000000000000000000000000000000000000..cf6ba21237e27ebb758234c429a9ef502f386349 GIT binary patch literal 3035 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 Do6%R+ literal 0 HcmV?d00001 diff --git a/res/ui/puzzle_dlc_logo.png b/res/ui/puzzle_dlc_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..1c430c827c7ef86b0321eb2f109959486760d8f7 GIT binary patch literal 32244 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 N!h2On8Q94G{{hXcKf3?` literal 0 HcmV?d00001 diff --git a/res_raw/sprites/blueprints/constant_producer.png b/res_raw/sprites/blueprints/constant_producer.png index 2288c07d27d101fbc800d7fe9b20848d3ad8aa4f..85b55ded5e3de4a6a1f8156c6e29f5a1d460525b 100644 GIT binary patch literal 25250 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 Ymwlc&4I2f%JpodCs-@hZXdUtY0A=g-bN~PV literal 8583 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 diff --git a/res_raw/sprites/buildings/constant_producer.png b/res_raw/sprites/buildings/constant_producer.png index 573ef372aaf5be9b29b839eeff43525120836554..4bd8a60fc3512de3b38cb873cd4e889871de17a0 100644 GIT binary patch delta 14476 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 Ef3sqI$^ZZW literal 7864 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 .content { - @include SuperSmallText; - @include S(font-size, 7px); - @include S(width, 150px); + @include SuperDuperSmallText; + @include S(width, 180px); + @include S(padding-right, 25px); text-align: right; + text-transform: uppercase; + color: $accentColorDark; } } diff --git a/src/css/ingame_hud/puzzle_dlc_logo.scss b/src/css/ingame_hud/puzzle_dlc_logo.scss new file mode 100644 index 00000000..921e853c --- /dev/null +++ b/src/css/ingame_hud/puzzle_dlc_logo.scss @@ -0,0 +1,12 @@ +#ingame_HUD_PuzzleDLCLogo { + position: absolute; + @include S(width, 150px); + @include S(height, 40px); + @include S(bottom, 10px); + @include S(right, 15px); + + & { + /* @load-async */ + background: uiResource("puzzle_dlc_logo.png") center center / contain no-repeat; + } +} diff --git a/src/css/main.scss b/src/css/main.scss index f857050e..89ebbb10 100644 --- a/src/css/main.scss +++ b/src/css/main.scss @@ -29,6 +29,7 @@ @import "states/about"; @import "states/mobile_warning"; @import "states/changelog"; +@import "states/puzzle_menu"; @import "ingame_hud/buildings_toolbar"; @import "ingame_hud/building_placer"; @@ -59,12 +60,14 @@ @import "ingame_hud/mode_menu_next"; @import "ingame_hud/mode_menu"; @import "ingame_hud/mode_settings"; +@import "ingame_hud/puzzle_dlc_logo"; // prettier-ignore $elements: // Base ingame_Canvas, ingame_VignetteOverlay, +ingame_HUD_PuzzleDLCLogo, // Ingame overlays ingame_HUD_Waypoints, diff --git a/src/css/states/puzzle_menu.scss b/src/css/states/puzzle_menu.scss new file mode 100644 index 00000000..e3c139a8 --- /dev/null +++ b/src/css/states/puzzle_menu.scss @@ -0,0 +1,181 @@ +#state_PuzzleMenuState { + > .headerBar { + display: grid; + grid-template-columns: 1fr auto; + align-items: center; + } + + > .container { + > .mainContent { + overflow: hidden; + + > .categoryChooser { + display: grid; + grid-auto-columns: 1fr; + grid-auto-flow: column; + @include S(grid-gap, 2px); + @include S(padding-right, 10px); + + > .category { + background: $accentColorBright; + border-radius: 0; + color: $accentColorDark; + transition: all 0.12s ease-in-out; + transition-property: opacity, background-color, color; + + &:first-child { + @include S(border-top-left-radius, $globalBorderRadius); + @include S(border-bottom-left-radius, $globalBorderRadius); + } + &:last-child { + border-top-right-radius: $globalBorderRadius; + border-bottom-right-radius: $globalBorderRadius; + } + + &.active { + background: $colorBlueBright; + opacity: 1 !important; + color: #fff; + cursor: default; + } + } + } + + > .puzzles { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); + @include S(grid-auto-rows, 120px); + @include S(grid-gap, 3px); + @include S(grid-auto-columns, 1fr); + @include S(margin-top, 10px); + @include S(padding-right, 4px); + @include S(height, 360px); + overflow-y: scroll; + pointer-events: all; + + > .puzzle { + width: 100%; + @include S(height, 120px); + background: #f3f3f8; + @include S(border-radius, $globalBorderRadius); + + display: grid; + grid-template-columns: 1fr auto; + grid-template-rows: D(15px) 1fr auto; + @include S(padding, 5px); + @include S(grid-column-gap, 5px); + box-sizing: border-box; + pointer-events: all; + cursor: pointer; + position: relative; + + @include InlineAnimation(0.12s ease-in-out) { + 0% { + opacity: 0; + } + 100% { + opacity: 1; + } + } + + &:hover { + background: #f0f0f8; + } + + > .title { + grid-column: 1 / 2; + grid-row: 1/ 2; + @include PlainText; + } + + > .icon { + grid-column: 1 / 3; + grid-row: 2 / 3; + align-self: center; + justify-self: center; + @include S(width, 70px); + @include S(height, 70px); + + canvas { + width: 100%; + height: 100%; + } + } + + > .author { + grid-column: 1 / 2; + grid-row: 3 / 4; + @include SuperSmallText; + color: $accentColorDark; + align-self: end; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + } + + > .playcount { + grid-column: 1 / 2; + display: none; + grid-row: 3 / 4; + @include SuperSmallText; + } + + > .upvotes { + @include SuperSmallText; + grid-column: 2 / 3; + grid-row: 3 / 4; + color: $accentColorDark; + align-self: end; + justify-self: end; + font-weight: bold; + @include S(padding-right, 12px); + + & { + /* @load-async */ + background: uiResource("icons/puzzle_upvotes.png") calc(100% - #{D(2px)}) #{D( + 3.3px + )} / #{D(8px)} #{D(8px)} no-repeat; + } + } + + &.completed { + .icon, + .upvotes, + .playcount, + .author, + .title { + opacity: 0.5; + } + + background: #fafafa; + + &::after { + content: ""; + position: absolute; + @include S(top, 10px); + @include S(right, 10px); + @include S(width, 30px); + @include S(height, 30px); + opacity: 0.1; + + & { + /* @load-async */ + background: uiResource("icons/puzzle_complete_indicator.png") center center / + contain no-repeat; + } + } + } + } + + > .loader { + grid-column: 1 / -1; + grid-row: 1 / 3; + display: flex; + align-items: center; + color: $accentColorBright; + justify-content: center; + } + } + } + } +} diff --git a/src/css/variables.scss b/src/css/variables.scss index d2798f41..f7bdc900 100644 --- a/src/css/variables.scss +++ b/src/css/variables.scss @@ -18,8 +18,10 @@ $textLineHeight: 21px; $plainTextFontSize: 13px; $plainTextLineHeight: 17px; -$supersmallTextFontSize: 10px; -$supersmallTextLineHeight: 13px; +$superDuperSmallTextFontSize: 8px; +$superDuperSmallTextLineHeight: 9px; +$superSmallTextFontSize: 10px; +$superSmallTextLineHeight: 13px; $buttonFontSize: 14px; $buttonLineHeight: 18px; @@ -76,8 +78,16 @@ $mainFontScale: 1; // } } +@mixin SuperDuperSmallText { + @include ScaleFont($superDuperSmallTextFontSize, $superDuperSmallTextLineHeight); + font-weight: $mainFontWeight; + font-family: $mainFont; + letter-spacing: $mainFontSpacing; + @include DebugText(green); +} + @mixin SuperSmallText { - @include ScaleFont($supersmallTextFontSize, $supersmallTextLineHeight); + @include ScaleFont($superSmallTextFontSize, $superSmallTextLineHeight); font-weight: $mainFontWeight; font-family: $mainFont; letter-spacing: $mainFontSpacing; diff --git a/src/js/application.js b/src/js/application.js index 2c632ef9..3921c474 100644 --- a/src/js/application.js +++ b/src/js/application.js @@ -31,6 +31,7 @@ import { PreloadState } from "./states/preload"; import { SettingsState } from "./states/settings"; import { ShapezGameAnalytics } from "./platform/browser/game_analytics"; import { RestrictionManager } from "./core/restriction_manager"; +import { PuzzleMenuState } from "./states/puzzle_menu"; /** * @typedef {import("./platform/achievement_provider").AchievementProviderInterface} AchievementProviderInterface @@ -159,6 +160,7 @@ export class Application { KeybindingsState, AboutState, ChangelogState, + PuzzleMenuState, ]; for (let i = 0; i < states.length; ++i) { diff --git a/src/js/game/camera.js b/src/js/game/camera.js index a62745e8..68968d6b 100644 --- a/src/js/game/camera.js +++ b/src/js/game/camera.js @@ -474,6 +474,7 @@ export class Camera extends BasicSerializableObject { // Clamp everything afterwards this.clampZoomLevel(); + this.clampToBounds(); return false; } @@ -759,18 +760,16 @@ export class Camera extends BasicSerializableObject { } /** - * Clamps x, y position within set boundaries - * @param {Vector} vector + * Clamps the center within set boundaries */ - clampToBounds(vector) { + clampToBounds() { if (!this.root.gameMode.hasBounds()) { return; } const bounds = this.root.gameMode.getBounds().allScaled(globalConfig.tileSize); - - vector.x = clamp(vector.x, bounds.x, bounds.x + bounds.w); - vector.y = clamp(vector.y, bounds.y, bounds.y + bounds.h); + this.center.x = clamp(this.center.x, bounds.x, bounds.x + bounds.w); + this.center.y = clamp(this.center.y, bounds.y, bounds.y + bounds.h); } /** @@ -876,7 +875,7 @@ export class Camera extends BasicSerializableObject { // Panning this.currentPan = mixVector(this.currentPan, this.desiredPan, 0.06); this.center = this.center.add(this.currentPan.multiplyScalar((0.5 * dt) / this.zoomLevel)); - this.clampToBounds(this.center); + this.clampToBounds(); } } @@ -942,7 +941,7 @@ export class Camera extends BasicSerializableObject { ) ); - this.clampToBounds(this.center); + this.clampToBounds(); } /** @@ -1029,7 +1028,7 @@ export class Camera extends BasicSerializableObject { this.center.x += moveAmount * forceX * movementSpeed; this.center.y += moveAmount * forceY * movementSpeed; - this.clampToBounds(this.center); + this.clampToBounds(); } } } diff --git a/src/js/game/game_mode.js b/src/js/game/game_mode.js index f2b46c55..31189306 100644 --- a/src/js/game/game_mode.js +++ b/src/js/game/game_mode.js @@ -177,6 +177,16 @@ export class GameMode extends BasicSerializableObject { return false; } + /** @returns {boolean} */ + getIsSaveable() { + return true; + } + + /** @returns {boolean} */ + getSupportsCopyPaste() { + return true; + } + /** @returns {string} */ getBlueprintShapeKey() { return "CbCbCbRb:CwCwCwCw"; diff --git a/src/js/game/hud/hud.js b/src/js/game/hud/hud.js index c6f12af1..8f4257b9 100644 --- a/src/js/game/hud/hud.js +++ b/src/js/game/hud/hud.js @@ -1,58 +1,56 @@ /* typehints:start */ -import { GameRoot } from "../root"; -/* typehints:end */ - -/* dev:start */ -import { TrailerMaker } from "./trailer_maker"; -/* dev:end */ - -import { Signal } from "../../core/signal"; +import { globalConfig, IS_MOBILE } from "../../core/config"; import { DrawParameters } from "../../core/draw_parameters"; +/* dev:end */ +import { Signal } from "../../core/signal"; +import { KEYMAPPINGS } from "../key_action_mapper"; +import { MetaBuilding } from "../meta_building"; +import { GameRoot } from "../root"; +import { ShapeDefinition } from "../shape_definition"; +import { HUDBetaOverlay } from "./parts/beta_overlay"; +import { HUDBlueprintPlacer } from "./parts/blueprint_placer"; import { HUDBuildingsToolbar } from "./parts/buildings_toolbar"; import { HUDBuildingPlacer } from "./parts/building_placer"; -import { HUDBlueprintPlacer } from "./parts/blueprint_placer"; -import { HUDKeybindingOverlay } from "./parts/keybinding_overlay"; -import { HUDUnlockNotification } from "./parts/unlock_notification"; -import { HUDGameMenu } from "./parts/game_menu"; -import { HUDShop } from "./parts/shop"; -import { IS_MOBILE, globalConfig } from "../../core/config"; -import { HUDMassSelector } from "./parts/mass_selector"; -import { HUDVignetteOverlay } from "./parts/vignette_overlay"; -import { HUDStatistics } from "./parts/statistics"; -import { MetaBuilding } from "../meta_building"; -import { HUDPinnedShapes } from "./parts/pinned_shapes"; -import { ShapeDefinition } from "../shape_definition"; -import { HUDNotifications, enumNotificationType } from "./parts/notifications"; -import { HUDSettingsMenu } from "./parts/settings_menu"; +import { HUDCatMemes } from "./parts/cat_memes"; +import { HUDColorBlindHelper } from "./parts/color_blind_helper"; +import { HUDConstantSignalEdit } from "./parts/constant_signal_edit"; +import { HUDChangesDebugger } from "./parts/debug_changes"; import { HUDDebugInfo } from "./parts/debug_info"; import { HUDEntityDebugger } from "./parts/entity_debugger"; -import { KEYMAPPINGS } from "../key_action_mapper"; -import { HUDWatermark } from "./parts/watermark"; -import { HUDModalDialogs } from "./parts/modal_dialogs"; -import { HUDPartTutorialHints } from "./parts/tutorial_hints"; -import { HUDWaypoints } from "./parts/waypoints"; +import { HUDGameMenu } from "./parts/game_menu"; import { HUDInteractiveTutorial } from "./parts/interactive_tutorial"; -import { HUDScreenshotExporter } from "./parts/screenshot_exporter"; -import { HUDColorBlindHelper } from "./parts/color_blind_helper"; -import { HUDShapeViewer } from "./parts/shape_viewer"; -import { HUDWiresOverlay } from "./parts/wires_overlay"; -import { HUDChangesDebugger } from "./parts/debug_changes"; -import { queryParamOptions } from "../../core/query_parameters"; -import { HUDSandboxController } from "./parts/sandbox_controller"; -import { HUDWiresToolbar } from "./parts/wires_toolbar"; -import { HUDWireInfo } from "./parts/wire_info"; -import { HUDLeverToggle } from "./parts/lever_toggle"; +import { HUDKeybindingOverlay } from "./parts/keybinding_overlay"; import { HUDLayerPreview } from "./parts/layer_preview"; +import { HUDLeverToggle } from "./parts/lever_toggle"; +import { HUDMassSelector } from "./parts/mass_selector"; import { HUDMinerHighlight } from "./parts/miner_highlight"; -import { HUDBetaOverlay } from "./parts/beta_overlay"; -import { HUDStandaloneAdvantages } from "./parts/standalone_advantages"; -import { HUDCatMemes } from "./parts/cat_memes"; -import { HUDTutorialVideoOffer } from "./parts/tutorial_video_offer"; -import { HUDConstantSignalEdit } from "./parts/constant_signal_edit"; +import { HUDModalDialogs } from "./parts/modal_dialogs"; +import { HUDModeMenu } from "./parts/mode_menu"; import { HUDModeMenuBack } from "./parts/mode_menu_back"; import { HUDModeMenuNext } from "./parts/mode_menu_next"; -import { HUDModeMenu } from "./parts/mode_menu"; import { HUDModeSettings } from "./parts/mode_settings"; +import { enumNotificationType, HUDNotifications } from "./parts/notifications"; +import { HUDPinnedShapes } from "./parts/pinned_shapes"; +import { HUDPuzzleDLCLogo } from "./parts/puzzle_dlc_logo"; +import { HUDSandboxController } from "./parts/sandbox_controller"; +import { HUDScreenshotExporter } from "./parts/screenshot_exporter"; +import { HUDSettingsMenu } from "./parts/settings_menu"; +import { HUDShapeViewer } from "./parts/shape_viewer"; +import { HUDShop } from "./parts/shop"; +import { HUDStandaloneAdvantages } from "./parts/standalone_advantages"; +import { HUDStatistics } from "./parts/statistics"; +import { HUDPartTutorialHints } from "./parts/tutorial_hints"; +import { HUDTutorialVideoOffer } from "./parts/tutorial_video_offer"; +import { HUDUnlockNotification } from "./parts/unlock_notification"; +import { HUDVignetteOverlay } from "./parts/vignette_overlay"; +import { HUDWatermark } from "./parts/watermark"; +import { HUDWaypoints } from "./parts/waypoints"; +import { HUDWiresOverlay } from "./parts/wires_overlay"; +import { HUDWiresToolbar } from "./parts/wires_toolbar"; +import { HUDWireInfo } from "./parts/wire_info"; +/* typehints:end */ +/* dev:start */ +import { TrailerMaker } from "./trailer_maker"; export class GameHUD { /** @@ -96,6 +94,7 @@ export class GameHUD { modeMenuNext: HUDModeMenuNext, modeMenu: HUDModeMenu, modeSettings: HUDModeSettings, + puzzleDlcLogo: HUDPuzzleDLCLogo, // Must always exist pinnedShapes: HUDPinnedShapes, diff --git a/src/js/game/hud/parts/mode_menu_back.js b/src/js/game/hud/parts/mode_menu_back.js index ff729706..9eae74cc 100644 --- a/src/js/game/hud/parts/mode_menu_back.js +++ b/src/js/game/hud/parts/mode_menu_back.js @@ -9,7 +9,7 @@ export class HUDModeMenuBack extends BaseHUDPart { this.element = makeDiv(parent, "ingame_HUD_ModeMenuBack"); this.button = document.createElement("button"); this.button.classList.add("button"); - this.button.textContent = "⬅ " + T.ingame.modeMenu[key].back.title; + this.button.textContent = T.ingame.modeMenu[key].back.title; this.element.appendChild(this.button); this.trackClicks(this.button, this.back); diff --git a/src/js/game/hud/parts/mode_menu_next.js b/src/js/game/hud/parts/mode_menu_next.js index a3698269..6453a793 100644 --- a/src/js/game/hud/parts/mode_menu_next.js +++ b/src/js/game/hud/parts/mode_menu_next.js @@ -9,7 +9,7 @@ export class HUDModeMenuNext extends BaseHUDPart { this.element = makeDiv(parent, "ingame_HUD_ModeMenuNext"); this.button = document.createElement("button"); this.button.classList.add("button"); - this.button.textContent = T.ingame.modeMenu[key].next.title + " ➡ "; + this.button.textContent = T.ingame.modeMenu[key].next.title; this.element.appendChild(this.button); this.content = makeDiv(this.element, null, ["content"], T.ingame.modeMenu[key].next.desc); diff --git a/src/js/game/hud/parts/puzzle_dlc_logo.js b/src/js/game/hud/parts/puzzle_dlc_logo.js new file mode 100644 index 00000000..ec50808a --- /dev/null +++ b/src/js/game/hud/parts/puzzle_dlc_logo.js @@ -0,0 +1,13 @@ +import { makeDiv } from "../../../core/utils"; +import { BaseHUDPart } from "../base_hud_part"; + +export class HUDPuzzleDLCLogo extends BaseHUDPart { + createElements(parent) { + this.element = makeDiv(parent, "ingame_HUD_PuzzleDLCLogo"); + parent.appendChild(this.element); + } + + initialize() {} + + next() {} +} diff --git a/src/js/game/hud/parts/settings_menu.js b/src/js/game/hud/parts/settings_menu.js index eb902934..16da0440 100644 --- a/src/js/game/hud/parts/settings_menu.js +++ b/src/js/game/hud/parts/settings_menu.js @@ -13,17 +13,19 @@ export class HUDSettingsMenu extends BaseHUDPart { this.menuElement = makeDiv(this.background, null, ["menuElement"]); - this.statsElement = makeDiv( - this.background, - null, - ["statsElement"], - ` + if (this.root.gameMode.hasHub()) { + this.statsElement = makeDiv( + this.background, + null, + ["statsElement"], + ` ${T.ingame.settingsMenu.beltsPlaced} ${T.ingame.settingsMenu.buildingsPlaced} ${T.ingame.settingsMenu.playtime} ` - ); + ); + } this.buttonContainer = makeDiv(this.menuElement, null, ["buttons"]); @@ -94,23 +96,25 @@ export class HUDSettingsMenu extends BaseHUDPart { const totalMinutesPlayed = Math.ceil(this.root.time.now() / 60); - /** @type {HTMLElement} */ - const playtimeElement = this.statsElement.querySelector(".playtime"); - /** @type {HTMLElement} */ - const buildingsPlacedElement = this.statsElement.querySelector(".buildingsPlaced"); - /** @type {HTMLElement} */ - const beltsPlacedElement = this.statsElement.querySelector(".beltsPlaced"); + if (this.root.gameMode.hasHub()) { + /** @type {HTMLElement} */ + const playtimeElement = this.statsElement.querySelector(".playtime"); + /** @type {HTMLElement} */ + const buildingsPlacedElement = this.statsElement.querySelector(".buildingsPlaced"); + /** @type {HTMLElement} */ + const beltsPlacedElement = this.statsElement.querySelector(".beltsPlaced"); - playtimeElement.innerText = T.global.time.xMinutes.replace("", `${totalMinutesPlayed}`); + playtimeElement.innerText = T.global.time.xMinutes.replace("", `${totalMinutesPlayed}`); - buildingsPlacedElement.innerText = formatBigNumberFull( - this.root.entityMgr.getAllWithComponent(StaticMapEntityComponent).length - + buildingsPlacedElement.innerText = formatBigNumberFull( + this.root.entityMgr.getAllWithComponent(StaticMapEntityComponent).length - + this.root.entityMgr.getAllWithComponent(BeltComponent).length + ); + + beltsPlacedElement.innerText = formatBigNumberFull( this.root.entityMgr.getAllWithComponent(BeltComponent).length - ); - - beltsPlacedElement.innerText = formatBigNumberFull( - this.root.entityMgr.getAllWithComponent(BeltComponent).length - ); + ); + } } close() { diff --git a/src/js/game/modes/puzzle.js b/src/js/game/modes/puzzle.js index 2f7f50ca..31cfcb3d 100644 --- a/src/js/game/modes/puzzle.js +++ b/src/js/game/modes/puzzle.js @@ -11,6 +11,7 @@ import { HUDKeybindingOverlay } from "../hud/parts/keybinding_overlay"; import { HUDPartTutorialHints } from "../hud/parts/tutorial_hints"; import { HUDPinnedShapes } from "../hud/parts/pinned_shapes"; import { HUDWaypoints } from "../hud/parts/waypoints"; +import { HUDMassSelector } from "../hud/parts/mass_selector"; export class PuzzleGameMode extends GameMode { static getType() { @@ -33,6 +34,7 @@ export class PuzzleGameMode extends GameMode { this.setHudParts({ [HUDGameMenu.name]: false, + [HUDMassSelector.name]: false, [HUDInteractiveTutorial.name]: false, [HUDKeybindingOverlay.name]: false, [HUDPartTutorialHints.name]: false, @@ -122,6 +124,14 @@ export class PuzzleGameMode extends GameMode { return 1; } + getIsSaveable() { + return false; + } + + getSupportsCopyPaste() { + return false; + } + /** @returns {boolean} */ getIsFreeplayAvailable() { return true; diff --git a/src/js/game/modes/regular.js b/src/js/game/modes/regular.js index 0a2e127f..4f8e9ec2 100644 --- a/src/js/game/modes/regular.js +++ b/src/js/game/modes/regular.js @@ -14,6 +14,7 @@ import { HUDModeSettings } from "../hud/parts/mode_settings"; import { enumGameModeIds, enumGameModeTypes, GameMode } from "../game_mode"; import { ShapeDefinition } from "../shape_definition"; import { enumHubGoalRewards } from "../tutorial_goals"; +import { HUDPuzzleDLCLogo } from "../hud/parts/puzzle_dlc_logo"; /** @typedef {{ * shape: string, @@ -522,6 +523,7 @@ export class RegularGameMode extends GameMode { [HUDModeMenuNext.name]: false, [HUDModeMenu.name]: false, [HUDModeSettings.name]: false, + [HUDPuzzleDLCLogo.name]: false, }); this.setBuildings({ diff --git a/src/js/game/systems/constant_producer.js b/src/js/game/systems/constant_producer.js index 9b1ec96f..0f167829 100644 --- a/src/js/game/systems/constant_producer.js +++ b/src/js/game/systems/constant_producer.js @@ -1,11 +1,12 @@ /* typehints:start */ -import { GameRoot } from "../root"; /* typehints:end */ - import { globalConfig } from "../../core/config"; +import { DrawParameters } from "../../core/draw_parameters"; import { ConstantSignalComponent } from "../components/constant_signal"; import { ItemProducerComponent } from "../components/item_producer"; import { GameSystemWithFilter } from "../game_system_with_filter"; +import { MapChunk } from "../map_chunk"; +import { GameRoot } from "../root"; export class ConstantProducerSystem extends GameSystemWithFilter { /** @param {GameRoot} root */ @@ -29,6 +30,12 @@ export class ConstantProducerSystem extends GameSystemWithFilter { } } + /** + * + * @param {DrawParameters} parameters + * @param {MapChunk} chunk + * @returns + */ drawChunk(parameters, chunk) { const contents = chunk.containedEntitiesByLayer.regular; for (let i = 0; i < contents.length; ++i) { @@ -48,7 +55,7 @@ export class ConstantProducerSystem extends GameSystemWithFilter { // TODO: Better looking overlay const center = staticComp.getTileSpaceBounds().getCenter().toWorldSpace(); - item.drawItemCenteredClipped(center.x, center.y, parameters, globalConfig.tileSize); + item.drawItemCenteredClipped(center.x, center.y + 1, parameters, globalConfig.tileSize * 0.65); } } } diff --git a/src/js/game/systems/constant_signal.js b/src/js/game/systems/constant_signal.js index 6a9c2a02..2fab1eb8 100644 --- a/src/js/game/systems/constant_signal.js +++ b/src/js/game/systems/constant_signal.js @@ -61,12 +61,14 @@ export class ConstantSignalSystem extends GameSystemWithFilter { }); const items = [ - BOOL_FALSE_SINGLETON, - BOOL_TRUE_SINGLETON, ...Object.values(COLOR_ITEM_SINGLETONS), this.root.shapeDefinitionMgr.getShapeItemFromShortKey(this.root.gameMode.getBlueprintShapeKey()), ]; + if (entity.components.ConstantSignal.type === enumConstantSignalType.wired) { + items.unshift(BOOL_FALSE_SINGLETON, BOOL_TRUE_SINGLETON); + } + if (this.root.gameMode.hasHub()) { items.push( this.root.shapeDefinitionMgr.getShapeItemFromDefinition( diff --git a/src/js/states/ingame.js b/src/js/states/ingame.js index 34f360e3..32ef3edc 100644 --- a/src/js/states/ingame.js +++ b/src/js/states/ingame.js @@ -8,6 +8,7 @@ import { KeyActionMapper } from "../game/key_action_mapper"; import { Savegame } from "../savegame/savegame"; import { GameCore } from "../game/core"; import { MUSIC } from "../platform/sound"; +import { enumGameModeIds } from "../game/game_mode"; const logger = createLogger("state/ingame"); @@ -150,7 +151,11 @@ export class InGameState extends GameState { * Goes back to the menu state */ goBackToMenu() { - this.saveThenGoToState("MainMenuState"); + if ([enumGameModeIds.puzzleEdit, enumGameModeIds.puzzlePlay].includes(this.gameModeId)) { + this.saveThenGoToState("PuzzleMenuState"); + } else { + this.saveThenGoToState("MainMenuState"); + } } /** @@ -437,6 +442,11 @@ export class InGameState extends GameState { logger.warn("Skipping double save and returning same promise"); return this.currentSavePromise; } + + if (!this.core.root.gameMode.getIsSaveable()) { + return Promise.resolve(); + } + logger.log("Starting to save game ..."); this.savegame.updateData(this.core.root); diff --git a/src/js/states/main_menu.js b/src/js/states/main_menu.js index b82252ff..13cabdaa 100644 --- a/src/js/states/main_menu.js +++ b/src/js/states/main_menu.js @@ -207,12 +207,12 @@ export class MainMenuState extends GameState { const qs = this.htmlElement.querySelector.bind(this.htmlElement); - if (G_IS_DEV && globalConfig.debug.fastGameEnter) { - if (globalConfig.debug.testPuzzleMode) { - this.onPuzzleEditButtonClicked(); - return; - } + if (G_IS_DEV && globalConfig.debug.testPuzzleMode) { + this.onPuzzleModeButtonClicked(); + return; + } + if (G_IS_DEV && globalConfig.debug.fastGameEnter) { const games = this.app.savegameMgr.getSavegamesMetaData(); if (games.length > 0 && globalConfig.debug.resumeGameOnFastEnter) { this.resumeGame(games[0]); @@ -369,7 +369,7 @@ export class MainMenuState extends GameState { } onPuzzleModeButtonClicked() { - this.renderPuzzleModeMenu(); + this.moveToState("PuzzleMenuState"); } onBackButtonClicked() { diff --git a/src/js/states/puzzle_menu.js b/src/js/states/puzzle_menu.js new file mode 100644 index 00000000..d6465627 --- /dev/null +++ b/src/js/states/puzzle_menu.js @@ -0,0 +1,218 @@ +import { TextualGameState } from "../core/textual_game_state"; +import { formatBigNumberFull } from "../core/utils"; +import { enumGameModeIds } from "../game/game_mode"; +import { ShapeDefinition } from "../game/shape_definition"; +import { T } from "../translations"; + +const categories = ["levels", "new", "topRated", "myPuzzles"]; + +/** + * @typedef {{ + * shortKey: string; + * upvotes: number; + * playcount: number; + * title: string; + * author: string; + * completed: boolean; + * }} PuzzleMetadata + */ + +const SAMPLE_PUZZLE = { + shortKey: "CuCuCuCu", + upvotes: 10000, + playcount: 1000, + title: "Level 1", + author: "verylongsteamnamewhichbreaks", + completed: false, +}; +const BUILTIN_PUZZLES = [ + { ...SAMPLE_PUZZLE, completed: true }, + { ...SAMPLE_PUZZLE, completed: true }, + SAMPLE_PUZZLE, + SAMPLE_PUZZLE, + SAMPLE_PUZZLE, + SAMPLE_PUZZLE, + SAMPLE_PUZZLE, + SAMPLE_PUZZLE, + SAMPLE_PUZZLE, + SAMPLE_PUZZLE, + SAMPLE_PUZZLE, + SAMPLE_PUZZLE, + SAMPLE_PUZZLE, +]; + +export class PuzzleMenuState extends TextualGameState { + constructor() { + super("PuzzleMenuState"); + this.loading = false; + this.activeCategory = ""; + } + + getStateHeaderTitle() { + return T.puzzleMenu.title; + } + /** + * Overrides the GameState implementation to provide our own html + */ + internalGetFullHtml() { + let headerHtml = ` +

`; + + return ` + ${headerHtml} +
+ ${this.getInnerHTML()} +
+ `; + } + + getMainContentHTML() { + let html = ` + + +
+ ${categories + .map( + category => ` + + ` + ) + .join("")} +
+ +
+
+
+
+
+
+ `; + + return html; + } + + selectCategory(category) { + if (category === this.activeCategory) { + return; + } + if (this.loading) { + return; + } + this.loading = true; + this.activeCategory = category; + + const activeCategory = this.htmlElement.querySelector(".active[data-category]"); + if (activeCategory) { + activeCategory.classList.remove("active"); + } + + this.htmlElement.querySelector(`[data-category="${category}"]`).classList.add("active"); + + const container = this.htmlElement.querySelector("#mainContainer"); + while (container.firstChild) { + container.removeChild(container.firstChild); + } + + const loadingElement = document.createElement("div"); + loadingElement.classList.add("loader"); + loadingElement.innerText = T.global.loading + "..."; + container.appendChild(loadingElement); + + this.asyncChannel + .watch(this.getPuzzlesForCategory(category)) + .then( + puzzles => this.renderPuzzles(puzzles), + error => { + this.dialogs.showWarning( + T.dialogs.puzzleLoadFailed.title, + T.dialogs.puzzleLoadFailed.desc + " " + error + ); + } + ) + .then(() => (this.loading = false)); + } + + /** + * + * @param {PuzzleMetadata[]} puzzles + */ + renderPuzzles(puzzles) { + const container = this.htmlElement.querySelector("#mainContainer"); + while (container.firstChild) { + container.removeChild(container.firstChild); + } + + for (const puzzle of puzzles) { + const elem = document.createElement("div"); + elem.classList.add("puzzle"); + elem.classList.toggle("completed", puzzle.completed); + + if (puzzle.title) { + const title = document.createElement("div"); + title.classList.add("title"); + title.innerText = puzzle.title; + elem.appendChild(title); + } + + if (puzzle.author) { + const author = document.createElement("div"); + author.classList.add("author"); + author.innerText = "by " + puzzle.author; + elem.appendChild(author); + } + + if (puzzle.upvotes) { + const upvotes = document.createElement("div"); + upvotes.classList.add("upvotes"); + upvotes.innerText = formatBigNumberFull(puzzle.upvotes); + elem.appendChild(upvotes); + } + + if (puzzle.playcount) { + const playcount = document.createElement("div"); + playcount.classList.add("playcount"); + playcount.innerText = String(puzzle.playcount) + " plays"; + elem.appendChild(playcount); + } + + const definition = ShapeDefinition.fromShortKey(puzzle.shortKey); + const canvas = definition.generateAsCanvas(100 * this.app.getEffectiveUiScale()); + + const icon = document.createElement("div"); + icon.classList.add("icon"); + icon.appendChild(canvas); + elem.appendChild(icon); + + container.appendChild(elem); + } + } + + getPuzzlesForCategory(category) { + return new Promise(resolve => setTimeout(() => resolve(BUILTIN_PUZZLES), 100)); + } + + onEnter() { + this.selectCategory("levels"); + + for (const category of categories) { + const button = this.htmlElement.querySelector(`[data-category="${category}"]`); + this.trackClicks(button, () => this.selectCategory(category)); + } + + this.trackClicks(this.htmlElement.querySelector("button.createPuzzle"), this.createNewPuzzle); + } + + createNewPuzzle() { + const savegame = this.app.savegameMgr.createNewSavegame(); + this.moveToState("InGameState", { + gameModeId: enumGameModeIds.puzzleEdit, + savegame, + }); + } +} diff --git a/translations/base-en.yaml b/translations/base-en.yaml index a2bb4fde..29c610a7 100644 --- a/translations/base-en.yaml +++ b/translations/base-en.yaml @@ -122,6 +122,14 @@ mainMenu: puzzleMenu: play: Play edit: Edit + title: Puzzle Mode + createPuzzle: Create Puzzle + + categories: + levels: Levels + new: New + topRated: Top Rated + myPuzzles: My Puzzles dialogs: buttons: @@ -259,6 +267,11 @@ dialogs: title: Tutorial Available desc: There is a tutorial video available for this level, but it is only available in English. Would you like to watch it? + puzzleLoadFailed: + title: Puzzles failed to load + desc: >- + Unfortunately the puzzles could not be loaded: + ingame: # This is shown in the top left corner and displays useful keybindings in # every situation @@ -486,18 +499,18 @@ ingame: modeMenu: puzzleEditMode: back: - title: Main Menu - next: + title: Menu + next: title: Playtest - desc: You will have to complete the puzzle before being able to publish it + desc: Required for publishing puzzleEditTestMode: - back: + back: title: Edit - next: + next: title: Publish puzzlePlayMode: back: - title: Puzzle Menu + title: Menu next: title: Next