From ba1144479e142b115ca10eba5302541816a44d56 Mon Sep 17 00:00:00 2001 From: Lexi Quinn Date: Tue, 13 Jun 2023 19:21:13 +1000 Subject: [PATCH] added simple service duration selector --- Assets/15min.png | Bin 0 -> 2512 bytes Assets/15min.png.import | 34 +++ Assets/15min_hovered.png | Bin 0 -> 2505 bytes Assets/15min_hovered.png.import | 34 +++ Assets/1hour.png | Bin 0 -> 2424 bytes Assets/1hour.png.import | 34 +++ Assets/1hour_hovered.png | Bin 0 -> 2418 bytes Assets/1hour_hovered.png.import | 34 +++ Assets/30min.png | Bin 0 -> 2399 bytes Assets/30min.png.import | 34 +++ Assets/30min_hovered.png | Bin 0 -> 2399 bytes Assets/30min_hovered.png.import | 34 +++ Assets/45min.png | Bin 0 -> 2440 bytes Assets/45min.png.import | 34 +++ Assets/45min_hovered.png | Bin 0 -> 2441 bytes Assets/45min_hovered.png.import | 34 +++ Assets/client_bonus_frame.png | Bin 0 -> 1088 bytes Assets/client_bonus_frame.png.import | 34 +++ Assets/task.png | Bin 3850 -> 4458 bytes Assets/watch.png | Bin 0 -> 5610 bytes Assets/watch.png.import | 34 +++ Scenes/bonus_icon.tscn | 19 +- Scenes/client_card.tscn | 284 ++++++++++-------- Scenes/client_editor.tscn | 118 ++------ Scenes/human_player.tscn | 32 +- .../PlayerStateMachine/player_controller.gd | 1 + Scripts/bonus_icon.gd | 2 +- Scripts/client.gd | 147 +++++---- Scripts/client_card_crafter.gd | 15 +- Scripts/game.gd | 2 +- 30 files changed, 616 insertions(+), 344 deletions(-) create mode 100644 Assets/15min.png create mode 100644 Assets/15min.png.import create mode 100644 Assets/15min_hovered.png create mode 100644 Assets/15min_hovered.png.import create mode 100644 Assets/1hour.png create mode 100644 Assets/1hour.png.import create mode 100644 Assets/1hour_hovered.png create mode 100644 Assets/1hour_hovered.png.import create mode 100644 Assets/30min.png create mode 100644 Assets/30min.png.import create mode 100644 Assets/30min_hovered.png create mode 100644 Assets/30min_hovered.png.import create mode 100644 Assets/45min.png create mode 100644 Assets/45min.png.import create mode 100644 Assets/45min_hovered.png create mode 100644 Assets/45min_hovered.png.import create mode 100644 Assets/client_bonus_frame.png create mode 100644 Assets/client_bonus_frame.png.import create mode 100644 Assets/watch.png create mode 100644 Assets/watch.png.import diff --git a/Assets/15min.png b/Assets/15min.png new file mode 100644 index 0000000000000000000000000000000000000000..7b0d10035ebea3942c9bfb08d091e2394bcd7a69 GIT binary patch literal 2512 zcmeH}=~vQO7{`AQ7HTS@xp8Vxv}5I#X_`w?ZkT%}QiP&eF2v$wN}~o?sEv`C>9|Z2 zW{XEh%jvj8Vq_=MNT=aFTUq_?&sX+o{0zx z)YGxh0RTWR2xgHJw8J&f*?+hp`f~4|<(ol)r8Pm@ii;U~PwAt=y@cQ%K1^#E9ESHln5-|BawF9|{ z@*y|;r=CdTA_w{@=j-myi4Rf6&DNx-y|ODe-gHOe?|hNS_Jp4u6lCV}KMkiT^7%QY zn?29X1t+kXrI4C22oNUhI} z6aaw3gZy^wV?rih5orThgqD;&gp+p)_6M7Et|>4GE-ncZS5sqN?Oa|v({=UzOLF4@ z4D+YyLI47V!4YUI`@8r*HsRwPQL7~G^*R`QIs4>aGrx7-{Kb@&r#Ph<%7>2lWXnsw z!r?>`jmTv|!uSiK+VOK41MEQO4J>=UrbGTQ3#8{Dny-mve<02pxj#=2M5T%_70o{k zG6#D{=3wxb;Gu%8Cdy6ApD|lQT}MJYCw(BiK?wu|&%s2>bX+|@nX3DgCa9shjut<) zD5A7e-W&~v!gREg+qs=ik5`~Et_o^YPi6^W0*EF;$ zN=KF7y9RMpMSTMtVQa_NnCL%B9@E`N5iIdsM}#^XLTGLX{eI5q4)^=Bg?vXk8axPx?JSa74fVn8}Y35}B z2L>@!oHm}svawr0^^bQs6^HB7_vOsqCS9hP1;j0C|C_;e+Zyd@h>kb_*85NH7}F@K zSr)Z8+*pvMo7^s(+2##_>S?(s@~X{G*zw2DQN5x9v8sj=ZV((n@Dp(}i}?*fZ0ve4 z(_?@6X@KJo`&HwBOkb?*&5#-OJ`Y#*JeF+-n}lE}sfY`P+K4VBL;1}Uzd&1KkVCo) zG2L@kLN%pbIPGi?fkL1T?GVcY9DoxGD$tuGjLt7?k|1hrMp^vY()^S#6Wr(ao7)s6 ztcb9aS-kl~GCiCPaD;5}UDGsH3dey*P))8Js?*H%N@l@$V<{7rcjV2ImO52jsa_eD zlw(zws{ix`k!OH_d9&YMgKb#nUT;WgFWMNfblieInH>TG210}~t1Er4vrIRVGbfH@ zB|7uw3(5wOXe>FGE%t=;5fKY@q8dGdY^9FTb5q8oyi3^p{hj?jWB&6&tAVm0k0wa^ U&zKXF;70)n@(=TC+)d8?8@$K)4FCWD literal 0 HcmV?d00001 diff --git a/Assets/15min.png.import b/Assets/15min.png.import new file mode 100644 index 0000000..4f20ba4 --- /dev/null +++ b/Assets/15min.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://di826qgsyf8ed" +path="res://.godot/imported/15min.png-1d598812b7d812cc8435a9a4586212f3.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/15min.png" +dest_files=["res://.godot/imported/15min.png-1d598812b7d812cc8435a9a4586212f3.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/Assets/15min_hovered.png b/Assets/15min_hovered.png new file mode 100644 index 0000000000000000000000000000000000000000..04291d26dbb263b237388183d325aa95ef029edc GIT binary patch literal 2505 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 literal 0 HcmV?d00001 diff --git a/Assets/30min.png.import b/Assets/30min.png.import new file mode 100644 index 0000000..13dc2a0 --- /dev/null +++ b/Assets/30min.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bvn600licjeml" +path="res://.godot/imported/30min.png-7e7417babf5d72f607d58c46dfcfbbad.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/30min.png" +dest_files=["res://.godot/imported/30min.png-7e7417babf5d72f607d58c46dfcfbbad.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/Assets/30min_hovered.png b/Assets/30min_hovered.png new file mode 100644 index 0000000000000000000000000000000000000000..69fddfe795a4942133157ab8e5d5510d54fd44bf GIT binary patch literal 2399 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 literal 0 HcmV?d00001 diff --git a/Assets/45min.png.import b/Assets/45min.png.import new file mode 100644 index 0000000..4c754a4 --- /dev/null +++ b/Assets/45min.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://b8wsa3qkt5w71" +path="res://.godot/imported/45min.png-ae31e5ea0b790d9a7f758a82ad2c0a94.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/45min.png" +dest_files=["res://.godot/imported/45min.png-ae31e5ea0b790d9a7f758a82ad2c0a94.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/Assets/45min_hovered.png b/Assets/45min_hovered.png new file mode 100644 index 0000000000000000000000000000000000000000..7c36239e237c892d38cea0c36e98a5e7c4eab2b3 GIT binary patch literal 2441 zcmeAS@N?(olHy`uVBq!ia0y~yV2lH@e{rw@$(I-P!+-*Lna<7unaRlv3>p(lCt7F$QsjK`}#$Y*HZ z(Bf!P>bP<9cb3YU@)$*>v}reg7p9$i`Yy7-y*uh;&djEun?{c&78EG%l=xzI*-hN; z7v~a_;Q4(=7n#J$Z{HEJS2A$#toy&qOH(#2W7C`ep=Fu$v<*JaC1)>*=5v0}Xbo}u z;ZSj70%NQG)Olq;JPYqVG(YO5WXGI$)p*ALqc7vvi1tkSFri>Y$eIlM&nxs_o|*Ri z`I2uZ`4WWGon|OxYOM)4lH`&VY4rQP`LDOLQ$uZL?I~R)@#sXb!21m=L|@LDI!oAA z+kfJ!Q-Aa4rRCL}d3jH=?V9`TI$4JIW>>Pe{jJQn{Z;vc&4J3D596oKQM>QD-gL_a zyC3EczARd}wERJiaMk;-QzrhJX0z$;PMJM(9KwZmtzTGs^5m=Ma~@lJtU0Z}tLd(- z#FXFvp6b87lEHXqQpk5;1aKC3L>4nJ@F#*W;|lxbnG6i<2R&UJLn;{G-gWdlY#_jT zp~-^#PS@c=?HxR8W@+V4Rx{aleBSZ4Ei04GOP~I=N$YFLC-(*hMkW>x0R@Lq#%Lgn zrUY0nnBe_DHGJpa(BJ>Qeyq;FW>a9?dO0QW>cIQ7=@7Q~zYe`~#nX8a}tp z1Ln}iSRhkxU6p*^+=}gCT9WxwKUp$~Gj@JYde{Zb$Du4L_q5LZW`C*rF>kGp(LJrF z#gafFp4c#DMy7>8R>0dGK51KyRIl^-Wb6H7ex$>rvv+E@3M*W2IdJTD%iRSm94TTO zKBm3fcZ*XXL+Qh{l#u3S!UfxAuY1ZBCpe)Zyx@+KLxTe+qjWxJ=y?^OYr7hH%UO@> z0@KYDfejz01$^}ZGS_h2Kq$SRrLpkU%*hS;#y%o?96mtzyF6?Hy0w%gXHV&zUMHZZ zJP#bR4%`9syn`%bI#BR(@1q>^*wdnWoE;wBZG5^ISUg!cIXtp;x@fG%=vls~z%e1v z;Zf|8!e*d3sVsk(TqUm`o_FiEexS#m_O17t*~BJPu;;D2#39h3`Jl%SRsY`Ch zp7zDjWhQR37wf|D1Q- z?se(5+drEO{~{|_xp#0^tQDj8o@QN%rzXHSn7u)I3Pa-=U^p(gYj5?_YgepC2KrWt2X-*k>uw4D!B()b5G+I+ zx59s*tzfGl2#O$LXYbZX81GAjh$L@#b3e{|=W^!^xFb0|Z?#NAzF?cNaLB)ySn{{O z(uNlgeGDaa%b1BqBQ#xK_qbHO8&$oU-)p$KR#TP^t`6Zz-7sxonTE)^Z7ALr?$xu& zRpBGypeX|iUn^a!@r&Y2jXxBd@z^Z5RZoBB4{Lu|&zgDR5#c~SSJHpyQD4%XDlE)P z9gsbUMT{^Z{AiR|BZtkX)PiKz*f&=7%~2GOE^mV}rZ_TW#Tyj0BwbTd)1s&3$x&9h z|IgD(PmI^PcZZ<$*>T>7pnVrAJC5^x>^PMZ@I1j~q3$nAPE((v@6@%xA^0}o{Hm^L zdvLJ@{f|b{Ojae2Ynj`3creMLw>F82jAEEn^W8WNbY|z=_m$ZK_jRjSL4N z5J40O(uRo8Ac80mq>YhZO+i}kZe!K2Ec~kLYEXZgy5#aZ{3Ifv;*eu;x$vDLPDB)x zUAZ+v1Saq0tlIlgzjkhRA9a?zQ$);;%jkX!5pVLmLV5lLCrFIo_RuGvweByb+&xB8Cu zWmP|!M?@rLS-)sW1b6T4Y_3;}qxEy@S45oT*cZHAlKYz(+Clpyo35PHTSQFjYLnpT z`sAc+$|y@gfzJ#?L_wjITSp>LS7bm5-|tC#5#cL#bM`-JVm6Z8>YZQ!0000| literal 0 HcmV?d00001 diff --git a/Assets/client_bonus_frame.png.import b/Assets/client_bonus_frame.png.import new file mode 100644 index 0000000..2817dde --- /dev/null +++ b/Assets/client_bonus_frame.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://d24a6eab77cys" +path="res://.godot/imported/client_bonus_frame.png-9906590e7d7b3900f244ec35641236fb.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/client_bonus_frame.png" +dest_files=["res://.godot/imported/client_bonus_frame.png-9906590e7d7b3900f244ec35641236fb.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/Assets/task.png b/Assets/task.png index 2d7faa2d18fea631b2ca77be0bd42bd7da0bbc06..8fdbf0ad21261fff8109bf2ba4e73b71c619ff25 100644 GIT binary patch literal 4458 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 literal 3850 zcmeHK|3B0F9^ZC9vFWNI`hqN>I!GOfI9R2Vs6Mw-G0IuSU)&r*|cUGKl>?l>G#=wcOTY{bfDri<#C^QaR>%tJ{_J|GjHx zlIN!57DQ|aeVA7lts7A%^PMIv3^yFRc+jO|JEmh-Tex58Siookr;upug zMZ-q#ZJqR`TQ37`Yg=m5^=7EoIdPoWwHNg-?mtjne^eSAWBi}82Imm^$@$Sjn=ean z#9tlaf~>9kN}g%w3^fb4h(-l=l*VegcgDU<+(~VrNnhI(4-CW69)2H#1QSUhAW&^pMRJVt9@xNKR4Kgd~_Hm^1 zHo`MExQ{z9DL22DZx}Fx>u*afM)sZ#INxnLIn~M>QbsQ6=}w%&ob@WZ3o?L7^d%-E z5UY!Lup9G(9V2$zp0)CZn>k{7`Xv`PcNK%q}F%z*N()ij}FLs zxo{4S>8ETRq@CZL!7N+p=WfG@F6xzj+5cLldOOaJ(a-)pb74Yi<*ogN0im(D9RU(v zPv(jAw!?`hUHWk;80>$m$X< z$P_(uI>w?GO^`|$9hi04lRF??X>nFJ$*=rw_jKungFv6Z@q)xjWJj=iw~HQ760s%c zVL$cxU@Vb=wxEuji4xJi4S=ivDFtv|5?k5?&Z^)+@A9pT#Zf{33*pk@pn&SP6?}Egu8oQc_n1cRVt-s(=2362a@s+oE({j;V*^t;J@xmD zlDTmkqCEXwehgLIE(PnQao-l|UBGh;QpbnZXr!y8f;wzjI!e)Lqe=|Ook+m4sI^f)QvqIL8Vre&Ab3(QpxnR610ZMTL$V&~-9}indusO2p8=B0S z!xu$JW9aZW8aA!d{50!4(CEopVz3!ccT&g!FvVrb8@#ncU!!fod5^D|<=ONJ%isOW zWypiXQAS@8p-b=z)}2X`2}Ml&OO|^{M;g4$@61?EEON$=q4>hi`!@n$(LgRY2a#n0 z^c_wtzV9&IPl}@-Ht1tS(mAB1pQVsHiqCk`l};8aT;7N2lCJP8r=AHuRO9- zyzK=pqhZ2wf7$!$_74Rc%-~u1N&2+}MMcvaI!8U07UHJRHDf2Zdk^4DT6SjYVEUGgqMcfG^|%~BSAA8b^&GifKhik$iah4H=g$mkCVQ@> z+{o0wt~-R9RqqOH7L#{Pr`Gfu;qW*c9BqH$02YU@vd7T`Au=$7u*O(;lkZs|JvYU| zQQN4X^UxUdF!ttdAiV~q$1Pc&VHY5Xf(|hUQpyU55`M@M#Cabo+ZFo35J*j^>_+>V zd;oV7vei7hcR4Ci$kxHDAqPRs3Yikay{DI>$7M2_6fE12beS-HX zdY@|VQ)~P`3>Ha4kk#4kcB%={Nc7~T$W>YGC~u8QJpOO|#XMJL-3l;GOTm(5oqCAp z5aw4T-1CFC1*sXzr=m9cj2SHpOjb4ceLl%EN|at}wN|TRXp)z@#Zrb^>n#*kmajV< zwJ1I*d_Q()QKM$)9>l*TIc3bu>zdU`1B$4b!-xIAs)8nb2W;a33n8*4LzUTqBR<=8hS$`haKgWVTf!OTmm7&%!` zIort~;@5sD$!F%xugYhE=Rf8$CF1=@4=*D$!oq2Zun%z36UulZ$dw`K{f%ofQt2%f zafDivx{+G`O4n)b)np5hvM_^%4*u0d(w;L*EAKbd54vNn6ROl}$<%;9IfU0Z8`9MG z^m^QVI!{b%ImdGd62|!Py4wVy{+>X`Zi8zyS5)PMim!Y|`q@ivlV}IHLD^I(A5dKk zvK6@V+8T{@D`rYOd&Kv`P|)^GIGR(Ec@%_1k-#1&HAVCvVz$@<7HXSNeHn+B_=EKL zr*#~|U>{syN*=bIO)-Md*9mx4<(mYeJrc#jVqw;UE8DXXSd;fj-=QvDyCvayeE5 diff --git a/Assets/watch.png b/Assets/watch.png new file mode 100644 index 0000000000000000000000000000000000000000..0eb5307859f18943efd75b3995be3cf939299aa4 GIT binary patch literal 5610 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%0AEhOeR4M(}a}I*9ZbLAk-?u&pQ%O^959}4c$Ha}L za5sY)h7Dq~8s#X{xi{Y&hKU&_MTCGa8EW88wVyD17>Dw4g1;teEHkjHRK7NLTzV95 z{g)+Zpg2+PBsj)ZpZrPD#}OU1gX@cJF@-^3L8t(@e!YiJ*Q6tBhHg@watSo)$@xZdv*?fDn!6TDRU zv0G<8M=#{p2C|>rvU^{$Kbc+foUF*TA_uZ59Bbexl3zd6P$&*>>N|n72Yg~bQS%4) zGeQZ3+zQz#yRh|L>3LVjIefCLW;-+@citga|o%=DaoTl+UgI0<6AQ AQUCw| literal 0 HcmV?d00001 diff --git a/Assets/watch.png.import b/Assets/watch.png.import new file mode 100644 index 0000000..20f0585 --- /dev/null +++ b/Assets/watch.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://ffu6m58vkcmm" +path="res://.godot/imported/watch.png-d70b3befdc1624e7d10836a35a228232.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/watch.png" +dest_files=["res://.godot/imported/watch.png-d70b3befdc1624e7d10836a35a228232.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/Scenes/bonus_icon.tscn b/Scenes/bonus_icon.tscn index 2139b4c..8b78fa6 100644 --- a/Scenes/bonus_icon.tscn +++ b/Scenes/bonus_icon.tscn @@ -1,9 +1,10 @@ -[gd_scene load_steps=5 format=3 uid="uid://cqy1p45nku4hr"] +[gd_scene load_steps=6 format=3 uid="uid://cqy1p45nku4hr"] [ext_resource type="Script" path="res://Scripts/bonus_icon.gd" id="1_1qclg"] [ext_resource type="Texture2D" uid="uid://b4qqaaqnfnlft" path="res://Assets/icons.png" id="1_awpqe"] [ext_resource type="Texture2D" uid="uid://c2oy6ox1ukog8" path="res://Assets/frame.png" id="2_au4d6"] [ext_resource type="Texture2D" uid="uid://b4lont873b556" path="res://Assets/super.png" id="3_qnk7l"] +[ext_resource type="Texture2D" uid="uid://d24a6eab77cys" path="res://Assets/client_bonus_frame.png" id="5_ah6dq"] [node name="Bonus1" type="Node2D"] script = ExtResource("1_1qclg") @@ -14,6 +15,7 @@ region_enabled = true region_rect = Rect2(0, 0, 32, 32) [node name="frame1" type="Sprite2D" parent="."] +visible = false position = Vector2(0, -3) texture = ExtResource("2_au4d6") region_rect = Rect2(0, 0, 32, 32) @@ -24,11 +26,16 @@ position = Vector2(0, -3) texture = ExtResource("3_qnk7l") region_rect = Rect2(0, 0, 32, 32) +[node name="clientframe" type="Sprite2D" parent="."] +position = Vector2(21, 0) +texture = ExtResource("5_ah6dq") + [node name="Label" type="Label" parent="."] visible = false -offset_left = 24.0 -offset_top = -12.0 -offset_right = 64.0 -offset_bottom = 14.0 +offset_left = 29.0 +offset_top = -28.0 +offset_right = 69.0 +offset_bottom = 6.0 theme_override_colors/font_color = Color(0, 0, 0, 1) -text = "120" +theme_override_font_sizes/font_size = 22 +text = "$4" diff --git a/Scenes/client_card.tscn b/Scenes/client_card.tscn index df4dcd7..856872a 100644 --- a/Scenes/client_card.tscn +++ b/Scenes/client_card.tscn @@ -1,14 +1,22 @@ -[gd_scene load_steps=13 format=3 uid="uid://c7j6lwbwgbosr"] +[gd_scene load_steps=25 format=3 uid="uid://c7j6lwbwgbosr"] [ext_resource type="Script" path="res://Scripts/client.gd" id="1_bvmvn"] [ext_resource type="Texture2D" uid="uid://dpu7jjppeja2v" path="res://Assets/task.png" id="2_k2tqp"] [ext_resource type="Texture2D" uid="uid://de0gq6h0onwex" path="res://Assets/slice.png" id="3_pxlet"] -[ext_resource type="Texture2D" uid="uid://b72amudxuxo8n" path="res://Assets/hard.png" id="4_8gylx"] [ext_resource type="Texture2D" uid="uid://qhoam0u12smd" path="res://Assets/bad_pip.png" id="4_h1e7v"] [ext_resource type="Texture2D" uid="uid://bj07g3riacndc" path="res://Assets/back.png" id="4_tye4g"] [ext_resource type="Texture2D" uid="uid://dsqwv4h4oynxu" path="res://Assets/medium_pip.png" id="5_2itu6"] -[ext_resource type="Texture2D" uid="uid://ws1ghxt16a54" path="res://Assets/hardest.png" id="5_hl5js"] [ext_resource type="Texture2D" uid="uid://bo6ohnvl8b64o" path="res://Assets/good_pip.png" id="6_6ba24"] +[ext_resource type="PackedScene" uid="uid://cqy1p45nku4hr" path="res://Scenes/bonus_icon.tscn" id="7_24rgf"] +[ext_resource type="Texture2D" uid="uid://ffu6m58vkcmm" path="res://Assets/watch.png" id="9_uqpfx"] +[ext_resource type="Texture2D" uid="uid://bvn600licjeml" path="res://Assets/30min.png" id="10_8sc0o"] +[ext_resource type="Texture2D" uid="uid://b8wsa3qkt5w71" path="res://Assets/45min.png" id="11_bvudy"] +[ext_resource type="Texture2D" uid="uid://lpq7mg772eix" path="res://Assets/15min_hovered.png" id="11_prrc3"] +[ext_resource type="Texture2D" uid="uid://d2po8n2mbv375" path="res://Assets/1hour.png" id="12_lheht"] +[ext_resource type="Texture2D" uid="uid://di826qgsyf8ed" path="res://Assets/15min.png" id="13_mmi0r"] +[ext_resource type="Texture2D" uid="uid://dolp5x82fgr1l" path="res://Assets/30min_hovered.png" id="13_s80fk"] +[ext_resource type="Texture2D" uid="uid://0o3k8q5k10oc" path="res://Assets/45min_hovered.png" id="15_72glw"] +[ext_resource type="Texture2D" uid="uid://pparncsv7qag" path="res://Assets/1hour_hovered.png" id="17_3rk3r"] [sub_resource type="LabelSettings" id="LabelSettings_xciys"] font_size = 25 @@ -17,6 +25,18 @@ shadow_size = 0 [sub_resource type="LabelSettings" id="LabelSettings_88ebh"] font_size = 24 +[sub_resource type="RectangleShape2D" id="RectangleShape2D_obgb8"] +size = Vector2(59.8477, 59.3524) + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_055ge"] +size = Vector2(62.4642, 56.7848) + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_4n4wm"] +size = Vector2(68.011, 58.4376) + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_c0coy"] +size = Vector2(60.7945, 58.1036) + [sub_resource type="RectangleShape2D" id="RectangleShape2D_70vuu"] size = Vector2(350, 250) @@ -35,9 +55,9 @@ modulate = Color(0, 0, 0, 1) texture_filter = 1 layout_mode = 0 offset_left = 166.0 -offset_top = 6.0 +offset_top = 10.0 offset_right = 296.0 -offset_bottom = 44.0 +offset_bottom = 48.0 label_settings = SubResource("LabelSettings_xciys") horizontal_alignment = 1 vertical_alignment = 1 @@ -47,16 +67,17 @@ uppercase = true modulate = Color(0, 0, 0, 1) texture_filter = 1 layout_mode = 0 -offset_left = 117.0 -offset_top = 6.0 -offset_right = 156.0 -offset_bottom = 43.0 +offset_left = 119.0 +offset_top = 11.0 +offset_right = 158.0 +offset_bottom = 48.0 label_settings = SubResource("LabelSettings_88ebh") horizontal_alignment = 1 vertical_alignment = 1 uppercase = true [node name="Slice1" type="TextureRect" parent="front"] +visible = false layout_mode = 0 offset_left = 318.0 offset_top = 12.0 @@ -65,6 +86,7 @@ offset_bottom = 30.0 texture = ExtResource("3_pxlet") [node name="Slice2" type="TextureRect" parent="front"] +visible = false layout_mode = 0 offset_left = 318.0 offset_top = 28.0 @@ -74,6 +96,7 @@ texture = ExtResource("3_pxlet") flip_v = true [node name="Slice3" type="TextureRect" parent="front"] +visible = false layout_mode = 0 offset_left = 302.0 offset_top = 28.0 @@ -84,6 +107,7 @@ flip_h = true flip_v = true [node name="Slice4" type="TextureRect" parent="front"] +visible = false layout_mode = 0 offset_left = 302.0 offset_top = 12.0 @@ -163,133 +187,21 @@ offset_right = 309.0 offset_bottom = 223.0 texture = ExtResource("6_6ba24") -[node name="easy" type="Node2D" parent="."] +[node name="Bonus1" parent="front" instance=ExtResource("7_24rgf")] visible = false +position = Vector2(156, 109) -[node name="Standard" type="Node2D" parent="easy"] -position = Vector2(134, 73) -scale = Vector2(0.5, 0.5) - -[node name="Great1" type="Node2D" parent="easy"] -position = Vector2(180, 151) -scale = Vector2(0.9, 0.9) - -[node name="Great2" type="Node2D" parent="easy"] -position = Vector2(270, 151) -scale = Vector2(0.9, 0.9) - -[node name="medium" type="Node2D" parent="."] +[node name="Bonus2" parent="front" instance=ExtResource("7_24rgf")] visible = false +position = Vector2(260, 109) -[node name="Background_Image" type="TextureRect" parent="medium"] -offset_left = 117.0 -offset_top = 55.0 -offset_right = 340.0 -offset_bottom = 187.0 -texture = ExtResource("4_8gylx") - -[node name="Standard" type="Node2D" parent="medium"] -position = Vector2(134, 73) -scale = Vector2(0.5, 0.5) - -[node name="Good1" type="Node2D" parent="medium"] -position = Vector2(180, 105) -scale = Vector2(0.9, 0.9) - -[node name="Good2" type="Node2D" parent="medium"] -position = Vector2(270, 105) -scale = Vector2(0.9, 0.9) - -[node name="Great1" type="Node2D" parent="medium"] -position = Vector2(180, 196) -scale = Vector2(0.9, 0.9) - -[node name="Great2" type="Node2D" parent="medium"] -position = Vector2(270, 196) -scale = Vector2(0.9, 0.9) - -[node name="hard" type="Node2D" parent="."] +[node name="Bonus3" parent="front" instance=ExtResource("7_24rgf")] visible = false +position = Vector2(156, 171) -[node name="Background_Image" type="TextureRect" parent="hard"] -offset_left = 117.0 -offset_top = 55.0 -offset_right = 340.0 -offset_bottom = 187.0 -texture = ExtResource("5_hl5js") - -[node name="Standard" type="Node2D" parent="hard"] -position = Vector2(134, 73) -scale = Vector2(0.5, 0.5) - -[node name="Poor1" type="Node2D" parent="hard"] -position = Vector2(180, 87) -scale = Vector2(0.9, 0.9) - -[node name="Poor2" type="Node2D" parent="hard"] -position = Vector2(270, 87) -scale = Vector2(0.9, 0.9) - -[node name="Good1" type="Node2D" parent="hard"] -position = Vector2(180, 151) -scale = Vector2(0.9, 0.9) - -[node name="Good2" type="Node2D" parent="hard"] -position = Vector2(270, 151) -scale = Vector2(0.9, 0.9) - -[node name="Great1" type="Node2D" parent="hard"] -position = Vector2(180, 209) -scale = Vector2(0.9, 0.9) - -[node name="Great2" type="Node2D" parent="hard"] -position = Vector2(270, 209) -scale = Vector2(0.9, 0.9) - -[node name="Area2D" type="Area2D" parent="."] - -[node name="CollisionShape2D" type="CollisionShape2D" parent="Area2D"] -position = Vector2(175, 125) -shape = SubResource("RectangleShape2D_70vuu") - -[node name="Control" type="Control" parent="."] +[node name="Bonus4" parent="front" instance=ExtResource("7_24rgf")] visible = false -layout_mode = 3 -anchors_preset = 0 -offset_right = 40.0 -offset_bottom = 40.0 - -[node name="4turn" type="Button" parent="Control"] -layout_mode = 0 -offset_left = 91.0 -offset_top = 56.0 -offset_right = 155.0 -offset_bottom = 118.0 -text = "4" - -[node name="3turn" type="Button" parent="Control"] -layout_mode = 0 -offset_left = 90.0 -offset_top = 131.0 -offset_right = 154.0 -offset_bottom = 193.0 -text = "3" - -[node name="2turn" type="Button" parent="Control"] -layout_mode = 0 -offset_left = 176.0 -offset_top = 132.0 -offset_right = 240.0 -offset_bottom = 194.0 -text = "2" - -[node name="1turn" type="Button" parent="Control"] -layout_mode = 0 -offset_left = 176.0 -offset_top = 56.0 -offset_right = 240.0 -offset_bottom = 118.0 -text = "1" +position = Vector2(260, 171) [node name="back" type="TextureRect" parent="."] offset_top = 250.0 @@ -298,7 +210,113 @@ offset_bottom = 600.0 rotation = -1.5708 texture = ExtResource("4_tye4g") -[connection signal="pressed" from="Control/4turn" to="." method="_on_turn_pressed" binds= [4]] -[connection signal="pressed" from="Control/3turn" to="." method="_on_turn_pressed" binds= [3]] -[connection signal="pressed" from="Control/2turn" to="." method="_on_turn_pressed" binds= [2]] -[connection signal="pressed" from="Control/1turn" to="." method="_on_turn_pressed" binds= [1]] +[node name="watch" type="TextureRect" parent="."] +visible = false +offset_right = 350.0 +offset_bottom = 250.0 +texture = ExtResource("9_uqpfx") + +[node name="time1" type="TextureRect" parent="watch"] +visible = false +layout_mode = 0 +offset_right = 350.0 +offset_bottom = 250.0 +texture = ExtResource("13_mmi0r") + +[node name="time2" type="TextureRect" parent="watch"] +visible = false +layout_mode = 0 +offset_right = 350.0 +offset_bottom = 250.0 +texture = ExtResource("10_8sc0o") + +[node name="time3" type="TextureRect" parent="watch"] +visible = false +layout_mode = 0 +offset_right = 350.0 +offset_bottom = 250.0 +texture = ExtResource("11_bvudy") + +[node name="time4" type="TextureRect" parent="watch"] +visible = false +layout_mode = 0 +offset_right = 350.0 +offset_bottom = 250.0 +texture = ExtResource("12_lheht") + +[node name="time_hovered1" type="TextureRect" parent="watch"] +visible = false +layout_mode = 0 +offset_right = 350.0 +offset_bottom = 250.0 +texture = ExtResource("11_prrc3") + +[node name="time_hovered2" type="TextureRect" parent="watch"] +visible = false +layout_mode = 0 +offset_right = 350.0 +offset_bottom = 250.0 +texture = ExtResource("13_s80fk") + +[node name="time_hovered3" type="TextureRect" parent="watch"] +visible = false +layout_mode = 0 +offset_right = 350.0 +offset_bottom = 250.0 +texture = ExtResource("15_72glw") + +[node name="time_hovered4" type="TextureRect" parent="watch"] +visible = false +layout_mode = 0 +offset_right = 350.0 +offset_bottom = 250.0 +texture = ExtResource("17_3rk3r") + +[node name="Area2D2" type="Area2D" parent="watch"] + +[node name="CollisionShape2D" type="CollisionShape2D" parent="watch/Area2D2"] +position = Vector2(212.509, 120.249) +rotation = 0.306916 +scale = Vector2(1, 1) +shape = SubResource("RectangleShape2D_obgb8") + +[node name="Area2D3" type="Area2D" parent="watch"] + +[node name="CollisionShape2D" type="CollisionShape2D" parent="watch/Area2D3"] +position = Vector2(187.897, 177.388) +rotation = 0.349425 +scale = Vector2(1, 1) +shape = SubResource("RectangleShape2D_055ge") + +[node name="Area2D4" type="Area2D" parent="watch"] + +[node name="CollisionShape2D" type="CollisionShape2D" parent="watch/Area2D4"] +position = Vector2(120.328, 158.61) +rotation = 0.386902 +shape = SubResource("RectangleShape2D_4n4wm") + +[node name="Area2D" type="Area2D" parent="watch"] + +[node name="CollisionShape2D" type="CollisionShape2D" parent="watch/Area2D"] +position = Vector2(149, 101) +rotation = 0.365652 +shape = SubResource("RectangleShape2D_c0coy") + +[node name="Area2D" type="Area2D" parent="."] + +[node name="CollisionShape2D" type="CollisionShape2D" parent="Area2D"] +position = Vector2(175, 125) +shape = SubResource("RectangleShape2D_70vuu") + +[connection signal="input_event" from="watch/Area2D2" to="." method="_on_watch_segment_input_event" binds= [0]] +[connection signal="mouse_entered" from="watch/Area2D2" to="." method="_on_watch_segment_mouse_entered" binds= [0]] +[connection signal="mouse_exited" from="watch/Area2D2" to="." method="_on_watch_segment_mouse_exited" binds= [0]] +[connection signal="input_event" from="watch/Area2D3" to="." method="_on_watch_segment_input_event" binds= [1]] +[connection signal="mouse_entered" from="watch/Area2D3" to="." method="_on_watch_segment_mouse_entered" binds= [1]] +[connection signal="mouse_exited" from="watch/Area2D3" to="." method="_on_watch_segment_mouse_exited" binds= [1]] +[connection signal="input_event" from="watch/Area2D4" to="." method="_on_watch_segment_input_event" binds= [2]] +[connection signal="mouse_entered" from="watch/Area2D4" to="." method="_on_watch_segment_mouse_entered" binds= [2]] +[connection signal="mouse_exited" from="watch/Area2D4" to="." method="_on_watch_segment_mouse_exited" binds= [2]] +[connection signal="input_event" from="watch/Area2D" to="." method="_on_watch_segment_input_event" binds= [3]] +[connection signal="mouse_entered" from="watch/Area2D" to="." method="_on_watch_segment_mouse_entered" binds= [3]] +[connection signal="mouse_exited" from="watch/Area2D" to="." method="_on_watch_segment_mouse_exited" binds= [3]] diff --git a/Scenes/client_editor.tscn b/Scenes/client_editor.tscn index bdc7fad..d17a864 100644 --- a/Scenes/client_editor.tscn +++ b/Scenes/client_editor.tscn @@ -515,86 +515,12 @@ popup/item_9/text = "gust" popup/item_9/icon = SubResource("AtlasTexture_02lrn") popup/item_9/id = 9 -[node name="ItemList5" type="OptionButton" parent="Control"] -layout_mode = 2 -offset_left = -32.0 -offset_top = 104.0 -offset_right = 111.0 -offset_bottom = 165.0 -item_count = 10 -popup/item_0/text = "none" -popup/item_0/id = 0 -popup/item_1/text = "cross" -popup/item_1/icon = SubResource("AtlasTexture_4fx3s") -popup/item_1/id = 1 -popup/item_2/text = "square" -popup/item_2/icon = SubResource("AtlasTexture_thch8") -popup/item_2/id = 2 -popup/item_3/text = "triangle" -popup/item_3/icon = SubResource("AtlasTexture_um33r") -popup/item_3/id = 3 -popup/item_4/text = "crescent" -popup/item_4/icon = SubResource("AtlasTexture_1bvig") -popup/item_4/id = 4 -popup/item_5/text = "puppy" -popup/item_5/icon = SubResource("AtlasTexture_t81qe") -popup/item_5/id = 5 -popup/item_6/text = "river" -popup/item_6/icon = SubResource("AtlasTexture_703sl") -popup/item_6/id = 6 -popup/item_7/text = "star" -popup/item_7/icon = SubResource("AtlasTexture_cyh1f") -popup/item_7/id = 7 -popup/item_8/text = "chain" -popup/item_8/icon = SubResource("AtlasTexture_kkprq") -popup/item_8/id = 8 -popup/item_9/text = "gust" -popup/item_9/icon = SubResource("AtlasTexture_02lrn") -popup/item_9/id = 9 - -[node name="ItemList6" type="OptionButton" parent="Control"] -layout_mode = 2 -offset_left = 115.0 -offset_top = 104.0 -offset_right = 258.0 -offset_bottom = 165.0 -item_count = 10 -popup/item_0/text = "none" -popup/item_0/id = 0 -popup/item_1/text = "cross" -popup/item_1/icon = SubResource("AtlasTexture_4fx3s") -popup/item_1/id = 1 -popup/item_2/text = "square" -popup/item_2/icon = SubResource("AtlasTexture_thch8") -popup/item_2/id = 2 -popup/item_3/text = "triangle" -popup/item_3/icon = SubResource("AtlasTexture_um33r") -popup/item_3/id = 3 -popup/item_4/text = "crescent" -popup/item_4/icon = SubResource("AtlasTexture_1bvig") -popup/item_4/id = 4 -popup/item_5/text = "puppy" -popup/item_5/icon = SubResource("AtlasTexture_t81qe") -popup/item_5/id = 5 -popup/item_6/text = "river" -popup/item_6/icon = SubResource("AtlasTexture_703sl") -popup/item_6/id = 6 -popup/item_7/text = "star" -popup/item_7/icon = SubResource("AtlasTexture_cyh1f") -popup/item_7/id = 7 -popup/item_8/text = "chain" -popup/item_8/icon = SubResource("AtlasTexture_kkprq") -popup/item_8/id = 8 -popup/item_9/text = "gust" -popup/item_9/icon = SubResource("AtlasTexture_02lrn") -popup/item_9/id = 9 - [node name="LineEdit" type="LineEdit" parent="Control"] layout_mode = 0 offset_left = 29.0 -offset_top = -111.0 +offset_top = -107.0 offset_right = 188.0 -offset_bottom = -69.0 +offset_bottom = -65.0 theme_override_colors/font_color = Color(0, 0, 0, 1) theme_override_colors/font_placeholder_color = Color(0, 0, 0, 0.537255) theme_override_font_sizes/font_size = 24 @@ -605,10 +531,10 @@ flat = true [node name="LineEdit2" type="LineEdit" parent="Control"] layout_mode = 0 -offset_left = -58.0 -offset_top = -112.0 -offset_right = 38.0 -offset_bottom = -70.0 +offset_left = -53.0 +offset_top = -109.0 +offset_right = 43.0 +offset_bottom = -67.0 theme_override_colors/font_color = Color(0, 0, 0, 1) theme_override_colors/font_placeholder_color = Color(0, 0, 0, 0.537255) theme_override_font_sizes/font_size = 24 @@ -618,10 +544,10 @@ flat = true [node name="TextureButton2" type="TextureButton" parent="Control"] layout_mode = 0 -offset_left = 226.0 -offset_top = -91.0 -offset_right = 266.0 -offset_bottom = -51.0 +offset_left = 216.5 +offset_top = -86.4999 +offset_right = 234.5 +offset_bottom = -68.4999 scale = Vector2(1.25, 1.25) toggle_mode = true button_pressed = true @@ -630,10 +556,10 @@ flip_v = true [node name="TextureButton" type="TextureButton" parent="Control"] layout_mode = 0 -offset_left = 227.0 -offset_top = -88.0 -offset_right = 267.0 -offset_bottom = -48.0 +offset_left = 216.5 +offset_top = -82.4999 +offset_right = 234.5 +offset_bottom = -64.4999 rotation = -1.57079 scale = Vector2(1.25, 1.25) toggle_mode = true @@ -643,10 +569,10 @@ flip_v = true [node name="TextureButton4" type="TextureButton" parent="Control"] layout_mode = 0 -offset_left = 228.0 -offset_top = -89.0 -offset_right = 268.0 -offset_bottom = -49.0 +offset_left = 220.5 +offset_top = -82.4999 +offset_right = 238.5 +offset_bottom = -64.4999 rotation = -3.14159 scale = Vector2(1.25, 1.25) toggle_mode = true @@ -656,10 +582,10 @@ flip_v = true [node name="TextureButton3" type="TextureButton" parent="Control"] layout_mode = 0 -offset_left = 228.0 -offset_top = -91.0 -offset_right = 268.0 -offset_bottom = -51.0 +offset_left = 220.5 +offset_top = -86.4998 +offset_right = 238.5 +offset_bottom = -68.4998 rotation = -4.71238 scale = Vector2(1.25, 1.25) toggle_mode = true diff --git a/Scenes/human_player.tscn b/Scenes/human_player.tscn index 49f8d4a..2d0c088 100644 --- a/Scenes/human_player.tscn +++ b/Scenes/human_player.tscn @@ -92,22 +92,6 @@ text = "0/1" horizontal_alignment = 1 vertical_alignment = 1 -[node name="VBoxContainer" type="VBoxContainer" parent="CanvasLayer/UI"] -layout_mode = 1 -anchors_preset = -1 -anchor_top = 1.0 -anchor_bottom = 1.0 -offset_top = -178.0 -offset_right = 254.0 -grow_vertical = 0 - -[node name="RichTextLabel" type="RichTextLabel" parent="CanvasLayer/UI/VBoxContainer"] -layout_mode = 2 -size_flags_vertical = 3 - -[node name="LineEdit" type="LineEdit" parent="CanvasLayer/UI/VBoxContainer"] -layout_mode = 2 - [node name="Hire" type="Button" parent="CanvasLayer/UI"] layout_mode = 1 anchors_preset = -1 @@ -221,6 +205,22 @@ grow_horizontal = 2 grow_vertical = 0 color = Color(0.85098, 0, 1, 1) +[node name="VBoxContainer" type="VBoxContainer" parent="CanvasLayer/UI"] +layout_mode = 1 +anchors_preset = -1 +anchor_top = 1.0 +anchor_bottom = 1.0 +offset_top = -178.0 +offset_right = 254.0 +grow_vertical = 0 + +[node name="RichTextLabel" type="RichTextLabel" parent="CanvasLayer/UI/VBoxContainer"] +layout_mode = 2 +size_flags_vertical = 3 + +[node name="LineEdit" type="LineEdit" parent="CanvasLayer/UI/VBoxContainer"] +layout_mode = 2 + [connection signal="pressed" from="CanvasLayer/UI/Confirm" to="." method="_on_confirm_pressed"] [connection signal="pressed" from="CanvasLayer/UI/HBoxContainer/LobbyReadyButton" to="." method="_on_lobby_ready_button_pressed"] [connection signal="text_submitted" from="CanvasLayer/UI/VBoxContainer/LineEdit" to="." method="_on_line_edit_text_submitted"] diff --git a/Scripts/PlayerStateMachine/player_controller.gd b/Scripts/PlayerStateMachine/player_controller.gd index 22f4af0..86f17a6 100644 --- a/Scripts/PlayerStateMachine/player_controller.gd +++ b/Scripts/PlayerStateMachine/player_controller.gd @@ -58,6 +58,7 @@ func select_workspace(workspace): return rpc("networked_select_workspace", workspace.get_path(), current_client.get_path()) #workspace.add_client(current_client) + current_client.show_time_selector() current_client = null #rpc("end_turn") diff --git a/Scripts/bonus_icon.gd b/Scripts/bonus_icon.gd index 324b308..365ef9e 100644 --- a/Scripts/bonus_icon.gd +++ b/Scripts/bonus_icon.gd @@ -12,6 +12,6 @@ func get_icon(x): func set_service(_service): service = _service - $Label.text = str(Data.service_prices[service]) + $Label.text = "$" + str(Data.service_prices[service]) $Label.visible = true $"Icon1".region_rect = Rect2(get_icon(service), 0, 32, 32) diff --git a/Scripts/client.gd b/Scripts/client.gd index ba4a598..5e9770a 100644 --- a/Scripts/client.gd +++ b/Scripts/client.gd @@ -3,14 +3,11 @@ extends Card signal time_slots_selected -enum difficulties {EASY, MEDIUM, HARD} - var icon_prefab = preload("res://Scenes/bonus_icon.tscn") var bad_pip_sprite = preload("res://Assets/bad_pip.png") var medium_pip_sprite = preload("res://Assets/medium_pip.png") var good_pip_sprite = preload("res://Assets/good_pip.png") var title = "New Task" -var difficulty = difficulties.EASY var initial_stress = 0 var turns_left = 4 var time_slots = [true, true, false, true] @@ -18,7 +15,10 @@ var icon_list = [] var medium_threshold := 5 var good_threshold := 8 var satisfaction := 1 +var watch_on := false @export var pip_sprites: Array[TextureRect] = [] +@export var time_button_sprites: Array[TextureRect] = [] +@export var time_hovered_sprites: Array[TextureRect] = [] func _ready(): @@ -30,6 +30,18 @@ func _ready(): pip_sprites.append($front/pip7) pip_sprites.append($front/pip8) pip_sprites.append($front/pip9) + icon_list.append($front/Bonus1) + icon_list.append($front/Bonus2) + icon_list.append($front/Bonus3) + icon_list.append($front/Bonus4) + time_button_sprites.append($watch/time1) + time_button_sprites.append($watch/time2) + time_button_sprites.append($watch/time3) + time_button_sprites.append($watch/time4) + time_hovered_sprites.append($watch/time_hovered1) + time_hovered_sprites.append($watch/time_hovered2) + time_hovered_sprites.append($watch/time_hovered3) + time_hovered_sprites.append($watch/time_hovered4) func _process(delta): @@ -37,40 +49,17 @@ func _process(delta): slide(delta) -func setup(_title, _initial_stress, _time_slots, _services, _medium, _good): +func setup(_title, _initial_stress, _time_slots, _services): if _title != "": title = _title initial_stress = _initial_stress time_slots = _time_slots - medium_threshold = _medium - good_threshold = _good - for x in pip_sprites.size(): - if x < 2: - continue - if x >= good_threshold: - pip_sprites[x - 2].texture = good_pip_sprite - if x < good_threshold: - pip_sprites[x - 2].texture = medium_pip_sprite - if x < medium_threshold: - pip_sprites[x - 2].texture = bad_pip_sprite - if time_slots[0] == true: - $"Control/1turn".visible = true - if time_slots[1] == true: - $"Control/2turn".visible = true - if time_slots[2] == true: - $"Control/3turn".visible = true - if time_slots[3] == true: - $"Control/4turn".visible = true services = [] if _services != null and _services != []: services.append_array(_services) - match services.size(): - 2, 3: - difficulty = difficulties.EASY - 4, 5: - difficulty = difficulties.MEDIUM - 6, 7: - difficulty = difficulties.HARD + for x in time_button_sprites.size(): + if time_slots[x] == true: + time_button_sprites[x].visible = true $front/Slice1.visible = false $front/Slice2.visible = false $front/Slice3.visible = false @@ -85,65 +74,50 @@ func setup(_title, _initial_stress, _time_slots, _services, _medium, _good): $front/Slice4.visible = true $front/Title.text = str(title) $"front/Initial Stress".text = str(initial_stress) - for x in icon_list: - x.queue_free() - icon_list = [] - match difficulty: - difficulties.EASY: - $easy.visible = true - var array_of_bullshit = [] - array_of_bullshit.append($easy/Standard) - array_of_bullshit.append($easy/Great1) - array_of_bullshit.append($easy/Great2) - for x in array_of_bullshit: - var instance = icon_prefab.instantiate() - icon_list.append(instance) - x.add_child(instance) - difficulties.MEDIUM: - $medium.visible = true - var array_of_bullshit = [] - array_of_bullshit.append($medium/Standard) - array_of_bullshit.append($medium/Good1) - array_of_bullshit.append($medium/Good2) - array_of_bullshit.append($medium/Great1) - array_of_bullshit.append($medium/Great2) - for x in array_of_bullshit: - var instance = icon_prefab.instantiate() - icon_list.append(instance) - x.add_child(instance) - difficulties.HARD: - $hard.visible = true - var array_of_bullshit = [] - array_of_bullshit.append($hard/Standard) - array_of_bullshit.append($hard/Poor1) - array_of_bullshit.append($hard/Poor2) - array_of_bullshit.append($hard/Good1) - array_of_bullshit.append($hard/Good2) - array_of_bullshit.append($hard/Great1) - array_of_bullshit.append($hard/Great2) - for x in array_of_bullshit: - var instance = icon_prefab.instantiate() - icon_list.append(instance) - x.add_child(instance) - for x in icon_list.size(): - if x < services.size(): - icon_list[x].set_service(services[x]) - else: - icon_list[x].visible = false + for x in services.size(): + if x == 0: + continue + icon_list[x - 1].set_service(services[x]) + icon_list[x - 1].visible = true + good_threshold = 10 - (5 - services.size()) + medium_threshold = 4 + if time_slots[3] == false: + good_threshold -= 1 + if time_slots[2] == false: + good_threshold -= 1 + if time_slots[1] == false: + good_threshold -= 1 + if time_slots[0] == false: + medium_threshold += 1 + if time_slots[1] == false: + medium_threshold += 1 + if time_slots[2] == false: + medium_threshold += 1 + for x in pip_sprites.size() + 2: + if x < 2: + continue + if x >= good_threshold: + pip_sprites[x - 2].texture = good_pip_sprite + if x < good_threshold: + pip_sprites[x - 2].texture = medium_pip_sprite + if x < medium_threshold: + pip_sprites[x - 2].texture = bad_pip_sprite func show_time_selector(): - $Control.visible = true + watch_on = true + $watch.visible = true func update_counter(): - $"Background/Turns Left Counter".text = str(turns_left) + $"front/Turns Left Counter".text = str(turns_left) func _on_turn_pressed(num): turns_left = num update_counter() - $Control.visible = false + $watch.visible = false + watch_on = false time_slots_selected.emit() @@ -155,3 +129,20 @@ func turn_front(): func turn_back(): $back.visible = true $front.visible = false + + +func _on_watch_segment_mouse_entered(extra_arg_0: int) -> void: + if not watch_on or not time_slots[extra_arg_0]: + return + for x in extra_arg_0 + 1: + time_hovered_sprites[x].visible = true + + +func _on_watch_segment_mouse_exited(extra_arg_0: int) -> void: + for sprite in time_hovered_sprites: + sprite.visible = false + + +func _on_watch_segment_input_event(viewport: Node, event: InputEvent, shape_idx: int, extra_arg_0: int) -> void: + if event is InputEventMouseButton and event.pressed: + _on_turn_pressed(extra_arg_0 + 1) diff --git a/Scripts/client_card_crafter.gd b/Scripts/client_card_crafter.gd index d9115d0..3d0fbda 100644 --- a/Scripts/client_card_crafter.gd +++ b/Scripts/client_card_crafter.gd @@ -73,7 +73,6 @@ func load_deck(): bool_array.append(bool(x)) for x in value.slice(5, value.size()): int_array.append(int(x)) - card_instance.setup(key, int(value[0]), bool_array, int_array) card_instance.position = Vector2(-927, -176) card_instance.scale = Vector2(1.288, 1.288) card_instance.turn_front() @@ -83,6 +82,7 @@ func load_deck(): card_array[selected_card].visible = false selected_card = card_array.size() - 1 add_child(card_instance) + card_instance.setup(key, int(value[0]), bool_array, int_array) $Control/LineEdit.text = "task " + str(card_count) count_traits() $card_count.text = str(selected_card + 1) + "/" + str(card_array.size()) @@ -111,13 +111,6 @@ func count_traits(): var difficulty_counts = [0, 0, 0] var symbol_counts = [0, 0, 0, 0, 0, 0, 0, 0, 0] for card in card_array: - match card.difficulty: - 0: - difficulty_counts[0] += 1 - 1: - difficulty_counts[1] += 1 - 2: - difficulty_counts[2] += 1 for x in 10: if x == 0: continue @@ -145,10 +138,6 @@ func determine_card(): services.append($Control/ItemList3.selected) if $Control/ItemList4.selected > 0: services.append($Control/ItemList4.selected) - if $Control/ItemList5.selected > 0: - services.append($Control/ItemList5.selected) - if $Control/ItemList6.selected > 0: - services.append($Control/ItemList6.selected) card.append_array(services) return card @@ -176,7 +165,6 @@ func generate_card_from_buttons(): if card == null: return var card_instance = card_scene.instantiate() - card_instance.setup(str($Control/LineEdit.text), card[0], card.slice(1, 5), card.slice(5, card.size())) card_instance.position = Vector2(-926, -176) card_instance.scale = Vector2(1.288, 1.288) card_instance.turn_front() @@ -186,6 +174,7 @@ func generate_card_from_buttons(): card_array[selected_card].visible = false selected_card = card_array.size() - 1 add_child(card_instance) + card_instance.setup(str($Control/LineEdit.text), card[0], card.slice(1, 5), card.slice(5, card.size())) $Control/LineEdit.text = "task " + str(card_count) count_traits() $card_count.text = str(selected_card + 1) + "/" + str(card_array.size()) diff --git a/Scripts/game.gd b/Scripts/game.gd index bb1d8ee..b0a9560 100644 --- a/Scripts/game.gd +++ b/Scripts/game.gd @@ -72,8 +72,8 @@ func _load_clients(): bool_array.append(bool(x)) for x in value.slice(5, value.size()): int_array.append(int(x)) - card_instance.setup(key, int(value[0]), bool_array, int_array) add_child(card_instance) + card_instance.setup(key, int(value[0]), bool_array, int_array) client_deck.place(card_instance) client_deck.shuffle()