From 6aa14d2faf2c1126c59fb4833f845297459cf280 Mon Sep 17 00:00:00 2001 From: tresabhi <43380238+tresabhi@users.noreply.github.com> Date: Sun, 31 May 2026 14:45:20 -0500 Subject: [PATCH] oh shit i forgot to commit... uhh i added state icons --- cspell.json | 3 +- .../public/media/status/ammo_bay_damaged.png | Bin 0 -> 849 bytes .../public/media/status/caught_on_fire.png | Bin 0 -> 3763 bytes .../public/media/status/chassis_damaged.png | Bin 0 -> 1833 bytes .../public/media/status/commander_dead.png | Bin 0 -> 1356 bytes .../public/media/status/driver_dead.png | Bin 0 -> 2007 bytes .../public/media/status/engine_damaged.png | Bin 0 -> 1431 bytes .../public/media/status/fuel_tank_damaged.png | Bin 0 -> 1559 bytes .../public/media/status/gun_damaged.png | Bin 0 -> 1382 bytes .../public/media/status/gunner_dead.png | Bin 0 -> 1673 bytes .../public/media/status/loader_dead.png | Bin 0 -> 1606 bytes .../public/media/status/shooting.png | Bin 0 -> 760 bytes .../public/media/status/turret_damaged.png | Bin 0 -> 1266 bytes .../public/media/status/viewport_damaged.png | Bin 0 -> 940 bytes .../index.module.css | 8 ++-- .../TankopediaLoadout/index.module.css | 22 +++++++--- .../components/TankopediaLoadout/index.tsx | 38 ++++++++++-------- .../components/TankopediaSandbox/index.tsx | 12 +++--- .../[...locale]/tanks/[slug]/index.astro | 5 ++- .../src/tankopedia/characteristics.ts | 12 +++--- .../src/tankopedia/characteristicsOrder.tsx | 28 +++++++++---- .../website-ue/src/tankopedia/tankState.ts | 28 ++++++------- 22 files changed, 93 insertions(+), 63 deletions(-) create mode 100644 packages/website-ue/public/media/status/ammo_bay_damaged.png create mode 100644 packages/website-ue/public/media/status/caught_on_fire.png create mode 100644 packages/website-ue/public/media/status/chassis_damaged.png create mode 100644 packages/website-ue/public/media/status/commander_dead.png create mode 100644 packages/website-ue/public/media/status/driver_dead.png create mode 100644 packages/website-ue/public/media/status/engine_damaged.png create mode 100644 packages/website-ue/public/media/status/fuel_tank_damaged.png create mode 100644 packages/website-ue/public/media/status/gun_damaged.png create mode 100644 packages/website-ue/public/media/status/gunner_dead.png create mode 100644 packages/website-ue/public/media/status/loader_dead.png create mode 100644 packages/website-ue/public/media/status/shooting.png create mode 100644 packages/website-ue/public/media/status/turret_damaged.png create mode 100644 packages/website-ue/public/media/status/viewport_damaged.png diff --git a/cspell.json b/cspell.json index edc0cd11e..6ac80dcae 100644 --- a/cspell.json +++ b/cspell.json @@ -7,6 +7,7 @@ "oodle", "blitzkit", "webp", - "hocs" + "hocs", + "cooldown" ] } \ No newline at end of file diff --git a/packages/website-ue/public/media/status/ammo_bay_damaged.png b/packages/website-ue/public/media/status/ammo_bay_damaged.png new file mode 100644 index 0000000000000000000000000000000000000000..fbcf9b7d5b3b0b49b7bed93622c62facfa3ce2cd GIT binary patch literal 849 zcmV-X1FrmuP)tIiuV-$oKMkX2B_+?-j2%s<)9GtS=li2{wz*dnrA6h%>VF@i4Vwo|PbQOZf*`!X zNG+GkJCyro+fb6EtJP}tkzVfcL$~a5C=`-d{WIZ2)0s>r3EPo*090U9C=`;c{#n@3 zv}vJf8o+owb`pRi|NF3%5HuZrEbZH!$OPebKA+#A{LH0x!@p$!jGDHM8~%?jVr0U~ z#w48Z`ac=~v`D;!*T0=@^hM(baBlnn&W*zWxOYw0aTvhMJ5>2=;M|-r0B_chUjh4g zvjO-OI5&O(+u(q5@EMM}uD_4N;qJDWOeP7=u`_fTG#pgSEn`g-#VHQ`#7#H?*v)jO z(@`sxO0HI`<Mqen=YPEi%lW-l2#S-iL^t#<{|3aTXZaST2$VL*H&8CPf%NW@M zLnhCY=Ey$_0&NAB%jH*_FQC`5EZ?S5DcWh~`HkSMf7GZ{sYR}hP84900000NkvXXu0mjfOPGzp literal 0 HcmV?d00001 diff --git a/packages/website-ue/public/media/status/caught_on_fire.png b/packages/website-ue/public/media/status/caught_on_fire.png new file mode 100644 index 0000000000000000000000000000000000000000..691dde6c148f5c2a2a2efdb84f07bddc26f076e0 GIT binary patch literal 3763 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 literal 0 HcmV?d00001 diff --git a/packages/website-ue/public/media/status/chassis_damaged.png b/packages/website-ue/public/media/status/chassis_damaged.png new file mode 100644 index 0000000000000000000000000000000000000000..90995b4549e857adeca3901235b3e8938e9e9df6 GIT binary patch literal 1833 zcmV+^2iEwBP)x zQv(E4HYOTVqb3?-O^hy#fo0uP_bMA*XrieJBwdK4woU26nsn1@86&3B1{$3w^S*QZ zzL`72+{=Y~hYlf{`I5ujx##si&j0=Y8HA{!iYoroaF`94oSd{TE-t#8nwmU~jg7gs zd-raa+wFGr^z=ydNwI^lZPwS_-R-$_=~7=NlNpgxK8trgeAe1*wiuqT*zNXdr_*`y zz<~oRilU_aet#P8vtoxq!E07mS9>Cn$ZR&7U4_s|w5-%3jTS?HFdB{ijCKa&2Rl1E z?`vsk@p28Zxq-Gv`2PNWPaqI@7sA~^Q=~O;ToTGeL!r>$;c)mzD0B)&cyiyqeZID~ zw%UP#0q3?WM5|GF2ojN2ku`jqL5pJ@=n`H)n~KF^&*9x89UUDFP|A(%?4knDSOgn9 zhL3r)`whmX&@vpRZq6g(6y}iXJRZ3;6!GKv0-k4Z+yQ zx$%aEhSM1HfG87kZS$gcAj1ltFM^_{T`t#^=H})w*3X!-+nzmpJed52$}Gjx4J`0j zp&14rl&M9~GG-DR#DQ^yY#vc5v{le@fMft7m>|2sE4#>UhGf9Nf*@C=cEcDZpHwGo zh>?*I&b_GjbF1-gX^^^qd6 z=qECtD+=KA8MJn6O3wylWkAEkq0DkuSJy7?U!*bwkzUZO*Xs=k6Ce|F;h@kmh#hW! zxV5!)2_AY2-=Bh#ztWmw3rthG9a=4#tGH3_kKHaIf81b#!^(!3OKX%Gz>ar~hz%P8 zK7r>O!^6Ybf~V zk>J?a*q30hm+|#aaSxt=L5e3Q7obQcX}r9M$4;^49ygBA8w(2y-=Oa|gAH@V-t_eJ zJN5PT4+*UY6nOQT&*xJLW1&zJj?o8Bhw~)9*9-Hqf=4p}uO+cosqiA6NF)%mYYO!C z_NGBwGnnu?2DnNVX~w(n(MI>~-Mh#H!7D_qevH#hehc=|oe(R(Qc9=~w?`gQWR z4g0m@^D8LYCA6N}3@MPvnfCVfk1=mu*^e?lqQM? zO|4Xo_+McksaZ8+3&wF>tA$}v0@h^kz(?@3*Hm3zTp-v{%nNU@EcrZ!7A2L*JVzVh z7A(%1%Em;eQmj!fph8gy8G_*gY5|#Erwb}v7MN;zzBx{uIN^rI6Y3qHT;u{5Wk;{f zXKtSRb|stD=K$I_K`%kMBWTU!bj<6zDjKaNgE zK`6Mq5o`P|wK2tlZK@C-M!tWmiWNi@8j`9k*`~dKw`7a z&(E8kV;lBzNNJp?k#{s5R@}ilX=!k9@FXmI8Vj#lm_y!v8qJ{-gNgGAvwbgLzI+gZ z>Slo&g)3!6 zP=Vks3sj_{3J?_t?wwUYMIpF(fmgOmk5UCH@&juL3YmKt!99m$YMQyXf^~P|3WJ$@ z0X54Dv$M0O@O$dpFdFx%$bWKpCr*^yiMRFldRC?QvDPED0qUK2NB_N5MHN+4@jt-7 X-e8sw^3+O>00000NkvXXu0mjfFG^_} literal 0 HcmV?d00001 diff --git a/packages/website-ue/public/media/status/commander_dead.png b/packages/website-ue/public/media/status/commander_dead.png new file mode 100644 index 0000000000000000000000000000000000000000..dd3bde670d3035abb92732ef0f877ab5ca32fa1e GIT binary patch literal 1356 zcmV-S1+)5zP)k0y1%jfe2yjnqR&d$zMH=oI5=*c5n2x!`>R;%ArpTYn} z9}zH{ZW7j{n}P67+_t(fR-n`Agx1rndyv9>uSLRGfe1+0wcX7hA0JOAHI~sHhymGd zx5?|cLT9sCkra|z0dkF$7~6JS7%2eZ9Hms~#so)*nCSLpgxCrY8BI-1<;KRwhHcx< z!bHe@a+_279tSQpY!g$RDwRsPiHV6kjUg`6v`O&A#l<{)^>5gW508$HUgLQS1wO)+ zcAQ|GqV1o{%gd?N)m7{C^z;VGPMEeG>I-D|7X7~P#<;PtuwaWz@LuZVN{X9ciQ)mKXk0B)2 zHN6W+%wQQNbmVBkbxu`yp^Sl2{Q#;v!O{C9v*fOD#$>>h&C*eVTNSk8n6mr*66@}RR|+0zXIF+V{>!!8bz8o zKVK)Egg(fGW)O<7Cd77HEEW|!P_zj-_({<~uHi3+;Q!#zZ;A7%cf5Lk8@i#0!wdH0 z_7$l)&Sw5=zR!$4{xpRZG?9wzF0k!JN~ax|3A|IJViKAU!iQw zDu58!^7cT#3H6k~SAUqFpMM|sUT1D@F1@w2^%1dB)HaS}W7a&d2UJ`Zj*ORj0A`Ne zK8lUm71-O`%Rw+>8ow+cB33&)JKw>aFRm*6;8uWUXaaVf*nN&Bw24f@b&ZMyZ!I*C z!hZabW8**piGYwKb{VA!Iv0#`Y#b=y7qakW!r~uEx zUu92|47UHezPGXup)8yLBG%PHF!&Q)Fa%Ww3P>#M-A2SwKpDDQ*_UD30i#@HAdy*? z<$x{gh(X@bVb5QOcN%X9X|_8yW~ePRf&Sa@EOgAQLqIw{exS6s9m*|)Ds`?OPI-m@ z!3x|*6gu>T4|V*hM{!W>T~4=lNG^_iI6s8`V}dxVD!!5z8DM|`62vDq8fHhrFZu=m O0000&72b*o)UX-%PzMcdf5Slzf&+pVC2HAwd&)vc|qtFB$U_5m2)XBftIDdl^3g zSTAY_WWF&N41Nw`b6Cj&Oi`FHm|6rp!+JgMu2zMLCI!mD_sM@PT2sB2y zS5y%U5{DMA^UzsbAPQz~k};TnZF_sW_sEeWb#{pOjE5dtZl<8vcM~}C6q3ng;<$f> zN)S~5gW7|?{|SU?oq50%?(e6`8A3&g02~H24Fw#h`^bE^N>O2Z_U!SA3c&RFvzq3~ zcnU-*P**vOTY*6#9*=he@3_>?6=~9)80|zkK*ZFJ@>LUQ5(1rvyR?YvhP|Ad!hJ5v z{4gBh!7e8{5n+ci?Q8z&N_+S2T_uO9TR~vSjdxBdmnsS@J7C3+D?=^EU{JVgSbYYo0RnrmFHZnZ0qo-c3WY3| zX8}$RM6LnX_s9?;kz>>C^Z85{a?*eq5;MXXC#~f-ae}`k9AxPvKp3l4Z3+Xy`vU_5 zi%9Rbgt%{JW~K#<{eky4IxxS0$o3&{&K1MSz;NfzopoNXcM^Xo1bKUkb74P@QDO8~ zJ&Yoh9WK^onV`bxDK(w21BTHvF7t{9QE^ZU%W3jv4WrgGkb*XE<2SATH-Mp`@$qrT zxPAZr{p8W3N6#Ty{m4XSc}xbLfq^fEhlhW_U@PH-4~dK=&0+GOZlzJuOhN(nu18HX zUF%u|(Wz1jIpA1@Z9Tv-Z{h$Wi}=}6G>ck*?Iz0@sd@vJH{?w?B~`U?PS2j~eciZ` z2^1KDKQxI0UvTTzt);|b4{7Q(87CQieSIy@#_t25r;d={CPVfBxLj^>TpfaWkY3X;z5Ad>^}QXgCYvP)oN! zA?+0cvlrLKEm_rE1%%s@9E^HlLJqO?DZw142X2s5B7mAu=wp^7c)6hFr|tn8H(7d9 zPSH3{acr>56hNOrWi-W6m=0m1INK9FG&J-tkbQ~GG40(xtZ(G2saaLWDsUbDty{N# zYHV!mQ?z)97(l)SFONkzBX~9+94^WH2{Z?><1lrX-I*xG0_?ExN*6WHp_!)n1ait~ z#lzl%2M_vjfUnE^ffG&4$@4LlBl4`#-QDeT5`c`8Ib_@Ycx6iF4|>xSNDa^`2l_oq ziYpwvN?nRfCd%mnV>aWwDiJ((0+4CG!{^+C`!`gy$!ZZNsTAgJjN%rU;Am2*jT%ik zm~a-6xYT%^^~<{uZpLH`*ZelHh0oM@of?nG<>U2eEynAwK@EF9RguB^DJiSY3I$xW zFvn~214lyUj}FZ*HBVuYlbi{OTEdAFCpb3gU~EHhxy^ySN!9b3v3Sb?_y{{c6}=1uFwhR^^2002ovPDHLkV1gHdp0NM` literal 0 HcmV?d00001 diff --git a/packages/website-ue/public/media/status/engine_damaged.png b/packages/website-ue/public/media/status/engine_damaged.png new file mode 100644 index 0000000000000000000000000000000000000000..c062f0c953700b9338506152aa370bc99e8ae6f1 GIT binary patch literal 1431 zcmV;I1!($-P){M zZ55aS=p`VYpP#=aisDy-AV~P;?F_~kdX)-=!ngDD^FJFQVPQJqbUHm2i)9=|J8P2w zt0*paadENA3_>pf0ooHlKtx$&I?>hD#f(Dt4uC)j8ccA`^GvY=E|<#*6H(1u0+PvO z9DTLbC1w!1oj4c_T8@v8oz-vn1BY2zcXxMx#Cr-=Qnd|44<{!lC*tvVPC19&Zcpv+ z@2eE>Trn~-;)um!VQ9L*6@cIe!^6W)_6$(nYJsVDgR|DOqOyPT3+#k;E(Q*Q$Kw$c z>$E!mm9WSQxUqOZc1)f~B#yA)UubG(qXNdKRPxx_6N)-#|(nBA;Lz3SY!=lE1n!2?xU%xsnxx`J+e;$_AV(0t*@^Sba!|E z1ZVX&n3E1SNmECPNXhFF`7D(5@$~fceGtx9JK;Pag4LZ-t&6r2YoO5b4nTWM7T#VZ zg=kWqXmoVcvbMH%*Wqw@ip3(QgA2lcinpJ&9t6nLYCeFmcFgz9#>U2*DE~=Sk|dR~ z+3W+i+Z`nm(P-2Sx#qB25(Nn0cy@MnM|+6;epw7qY_GYxg>^?j= zIJl{85Yy@OyAU!VhwTFF?sqtLm|{9&_%E>i9DnwR;qftfcTpaoBSh0D4|%?yn3!-~ zMu1S{mBXm|TnA!s;-SI8K^Hw#=JfVoN?czX}8vJ~Eh}=jeBuq?LSy|b^fkGFX z*H~vzyK*9x&}OF`7p+Jr6#408Sm5IkcQ0ZUndDfZ`OuMC`d%)1@%7vaz!=@lO2%jlGF|h zcpL}>>LOuBY?nwZE-v0e(SfbkJ13u+nR!yZGLj;fmzQtDyuC2fzhND5M5Z(LqWnW@ l5dtZPnJ{6(gb5Q(@IPHH`7=tU9IF5T002ovPDHLkV1kyLoM`|6 literal 0 HcmV?d00001 diff --git a/packages/website-ue/public/media/status/fuel_tank_damaged.png b/packages/website-ue/public/media/status/fuel_tank_damaged.png new file mode 100644 index 0000000000000000000000000000000000000000..bba8b0a3bc91df74ccc076ed6b0c90e162932b15 GIT binary patch literal 1559 zcmV+y2I%>TP)K0c1AmS;tP zAP6m?P-q*!6>8_00JGVAlSm{MMn*=y+27y4X2n2jYpb=szTOEByJ;|46uY{*9Fa)m zHIz?a@E9SLgJcDs=Occ<|0R8g8HJ9HjtWu??|&y84$r~6n;4<9v$NBlo*uVE)O>Yy z^+7V345fA9k7Kb|JN|ymaa?PzLC-KcAR81!1cSkV?7ewWD1}V$W+UD?g)xcicb!hB zRh(Cbdr6t0cHH{{so=n6;`;h}6^i^(D5raSd#g7$H+h%KmANG_l~6Q*79za4UsY8_ z-Y6%f6~xWEySwi@9FF(sZ;UV&tfvQ=fqoa+Y1)3HOECiYtLpuHhc`qFEDSjPHCklEE8yW2bca*2nid=m~#0zE6 zvcA49)YjHMW$DGNqytA_t8Xq5@ z@%j87TvGW9O9%9d!1Er+JSW-AThGtWEqL}&lP+p;D*|$N@_dxMIXF02C7na8H5!dR z7MW&CX5hMIU|_%|5jAC^hBW1*G1d|R-3Ew8a55w4B<4nLS7SZ6vs$ecdwYAoVNDY?5M;7uL?JphHr5WsV_5X_FzN}* zRYoUY@3WsLmrkDTAVT1t!PG8x>y^>-XzMq;T2!=TCzEz0I z_6_h0l}4P8t!SeV%}BLXq=IA^$|y&b3P;TtHm{#?J9in?fcqGbB4%hprRagz>*X+F zeSLlHN|R1bPJ$SWXb1KJrh)(}LT?z!^KlusA%g_82J`lS#AhkFf4P&-gLkR!g=&HV zm5AdUuqfj}S#A@g)*9wXMgVDbfoI>#xf9L7yMCZle3Mjyh?f^Bos=kFwYIkQZC-l7 zQepc9w8KPaf$i;WVyPxXg?gxevGnQ8*k&_DfV`21%Z1_5mvkmjB4$bikmgb&7x##6 zXW1x4%*Y5x>Y^aMbb`puZf$Lu@y!P~c1|-D6-6X~Pc}9-sGH)&yyxupX-vTV1TzBE zNSu0rPtPwWKLbl$WS_HdX{^{pVf@C6w@%;2$ujuMtQ7SZDwM002ov JPDHLkV1hT{#{mEU literal 0 HcmV?d00001 diff --git a/packages/website-ue/public/media/status/gun_damaged.png b/packages/website-ue/public/media/status/gun_damaged.png new file mode 100644 index 0000000000000000000000000000000000000000..687b11316f52c81ce82f64c41762d287100e2f7e GIT binary patch literal 1382 zcmV-s1)2JZP)7{}k)-7f48ka(eMInYQ;B}lLY2<0GX zLc+<~2nP>F{0Dk89*i7JPo{U<*o%ojLaIcs)^N}R6%M9C2*E%!G$Dnu!0xiY$Imm) z-~zks%&=WNfJHuuHj@u9}X#%WE{8p_Nmn36}a0v_69yoCH32n2pYR{Q$;RyQ^_vUPQJ zMHI`=%*+&dUR3`9L;-&;mwOc=-!l%|e6ONXDDgAv{XQ`<@nC9ds-R8>ZD?r7zqYm( zAgp~D*-xaX&CSgO&vcm(5F(KO4I+zp;4=3<8w>kQ3G$9=0F2KfL&)2EdwU-*EG#UV zO1dJtw6qiKwhK;Y8o=xCiP ze>Q|@K+cbxqxSap23|dzOeTBq;)Em+l)uY5%lsZkc9E2ME_2paVr-=O*y<%peak;FQ2L=X0Y$z!;TV)}!{5IE1h_#SWPb4Mt?6gEnAz_`s%j+2ABgQc^g&#*t zOG^mLeWw2tbCr-|-W{1=N}dd1)stEvE%gY}KOnEk`qC+=lOTjl51gogSU;UkUo_pQ z4Gs=AloZ3$pkS_HS^I^Kj*jT$+3SpB zRjsZ5t^;MEs}p+!ojhEGw2_DLgs;B7{yf8=atn4JGL*YAdhhiAz!`NhS>teuxD zDp0M#A%s+ObF-p_FzyS5f|H&|+Khdyy+dKTh1~A!?0nqY+nbx8pLbNf1Ii^dDZwRx zglw!=c}=XHB?aDRd}Cx}WDYN8R#sLr@{mfboWiXFeu%t8NjDA_saM?nCGr;X+>yCr z?Hsa2Y~PATqqoT>yW`{IsoB}t+BbZ5vk*v8tR}1i#(@s<-g{(@Kk07c8Q>~jUQ7&3@*C7N#gw6YSVTy514jl*ZbCkNv`8Xg#W0uS3^SL93QbVDODEBSn z81sEZ)Hbv+2TBw`!pO5 zU%~p4Dg4SE&X{t5DiysHt~_EWz;|pbtw6uB|4nQg4p_O$JU(*|>)`!gkPv#vRsI}s zq=-S911A;Hu?yWN>%+@{W&U%z%J`9T2vMLw_xFJQL3ixBvhE literal 0 HcmV?d00001 diff --git a/packages/website-ue/public/media/status/gunner_dead.png b/packages/website-ue/public/media/status/gunner_dead.png new file mode 100644 index 0000000000000000000000000000000000000000..db7d531e40872dcae1116fcbaee9dd6eb2184c6e GIT binary patch literal 1673 zcmV;426p+0P)Ptz!T z(um=C=Ka?9+eV0MT*DPK;SIFW(b3S!$w_%(dwV;IKT^C6=(PUQ zgVzu!EIdG?s6VupmX-!w!M3)xb}mRM3k?ko)IKf#|Fgo<(vq*Ir>A9VYN{PtzXPp* zQz#S?(g5z`$z<|jB9R!Qb@(h^^NBYNGCn>&9ymQcy%&qcz60aCU^WJxljK{Tf%ggg z7R56!r8MxPtnPRr^*VKVuAJ`N!^vBxJ}U0nh3A3}pG zbbR=`Fu2;PJf8A@)*zjWc+3o1X~wgWHOlv zDoWHD8VKAb0Sog4Lo7l zY3>D=dnij$%0!N|4fm`GK59Ug!k>vO4<8Srs52H876OK{)VvahVE1c^O5NSvH^{8w z`}BMI^?>jOn&FnJ!qO~JjM~W-j*@kDb~eNJKfNAr{Gt(@RbQXlrY0y{)aS?};tsm z85$b;2gx$OwY8-?(qptZIy%~C3^%f*8k_T2J7I#VSEpstGxs!dM?_X8wgl<1%d^s} z2!(#XzuZY#;Da_oKzV_i3zxWno(YiE0(i!jUd0)>3RBqFb0{zhRclsSOtGStgPo~t#!&RZuGX;UBY3VkVE?npo5iny%&w8?bX!F{do0}Wg z*VjJ_1Oh(@<1mqVT*G5yV|pFOCCu3Esz4hX8}H+Gjj|ZaNtD=+W@l%A!I|?_OHac~ zW3tq7nMk0X|KgGo!WFnTdj_?nfcACrA{@e~lMl<8nVG+6T4l|T(E1o_j!DHWj*pN1 z*=+Vx+%}nONNlmm$;rRPRjtfM8!s;_r9`np^s?<^nIe@=jvVOKOW1=t_GR^{r}#ts-L=`)yn=RT8*#2=KW$D<*3L-Gy#*&a{QgTS_u+K5o|& zlX1Q)OC_{jOS$Z(nK=h}K~qoDTM1Rs)N6)f9vH1;!D3+wF$TaDgDviD(C}tDr;HXirSpi8TGgec6vuTUOBpt2!+3GD$i2Oo%Gn9ghnT$# zE$h-9inCNBNZgcO4|i42ml@Zxt5t>$++h(Q>`GZR~TtnIr4K7+)Irx8~}gK&rkde#SrRh;^r|l zTE#jW1=Af~__!CfJ--KNW~YV!3#jo^C@1phwCeta(yLQ{uG1pkst?`Qc$e@mEZmLq TSli literal 0 HcmV?d00001 diff --git a/packages/website-ue/public/media/status/loader_dead.png b/packages/website-ue/public/media/status/loader_dead.png new file mode 100644 index 0000000000000000000000000000000000000000..1da191db170a7e563024770b20de1ef65606a144 GIT binary patch literal 1606 zcmV-M2D$l(P)7%Q6rORKwoX!FqePKQ4#BZ8L`oD9st_d- zq2&@O7f^FT{Ip0pAy5w-IG`AixFI+rxvIFLh;t?27!{OC2q7gciMXU7g*cA?9XIRY zd(OI@UC*p{ouArLKWVj_-I;msee>qMH{&q&6c+G-fr0Lkk&&~k4Z%yLQY@Ft-A<)a zHzp<~dRZHR3n5~-)^Qn?N~Ms=WPZbQl)kYRhpc=>JjMZx_yIG~<2o3=-$!)O z`aZb^6ul3&1G3Q+VY1omeW70P!Z3_nxm#i2p@!8!Bl62NA|JcKgTyM`!u7d zqw2~I3b}BrOOSg9?)R3N)thoLP6-AB{RDxA@Wwv5+^&PsWt!E&!9l+)aA9Gg1K(c3 zwPhNa0TBr*Jv zpT~Qp%jwFKqq1+%+OU-k4cW)HB0}fKk~`F7t?9a;{ar43R(6SPHCH?mgzy=LN$+Wvtht>mZQ<=8lFY%i7GvGLwD9YAfPu$i70>^32T4uXwJoMxd0A1>;z|sMx1k9=`pv@R019 zooPpa5jVAqJ$q8ALCMEUsloBwD9Wj1IRorJ3qc83UUtbyRS^hU7tYDf!oHcbH0)P& zvK+xld9s$`Efl(|P^hkUAw@82A2=mDAZKSE@51Qgb*A+&BS-?uBrvUCNVN|MsI7;8 za79>saj`cV=xtJJt?qDs|*(mGXr;xGi3q>=J4=u0rT4xyIXg&n%j z88i#wx+Ut9S2YBp|7A%LVn1@M>=Ptc*pwB4;v00^@B% zh&?&bk%;`aI6R7PdG@uyj64q|*MvH8HO+ogr_&z6`}_NQ;6e|u^`u?ee~LEtJwnT% zdZ>$NbO(vRSA21}r#PTJ1pR9Q zYbW5;`7HfQ0_vUbaDRcd!7uqL@TsXOKW3pVl|NSe5Atz?UO;$Tg#Z8m07*qoM6N<$ Ef_lUUT>t<8 literal 0 HcmV?d00001 diff --git a/packages/website-ue/public/media/status/shooting.png b/packages/website-ue/public/media/status/shooting.png new file mode 100644 index 0000000000000000000000000000000000000000..7c65495a39f70a0812a7a1036c14b73859b49d18 GIT binary patch literal 760 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 O0000 -
- {vehicleStatusKeys.map((key) => ( - { - Tankopedia.mutate((draft) => { - draft.protagonist.status[key] = !draft.protagonist.status[key]; - }); - }} - > - - +
+ {vehicleStatusKeys.map((group, index) => ( +
+ {group.map((key) => ( + { + Tankopedia.mutate((draft) => { + draft.protagonist.status[key] = + !draft.protagonist.status[key]; + }); + }} + > + + + ))} +
))}
diff --git a/packages/website-ue/src/components/TankopediaSandbox/index.tsx b/packages/website-ue/src/components/TankopediaSandbox/index.tsx index 129ba7acb..4185d9eb6 100644 --- a/packages/website-ue/src/components/TankopediaSandbox/index.tsx +++ b/packages/website-ue/src/components/TankopediaSandbox/index.tsx @@ -1,6 +1,5 @@ import { OrbitControls } from "@react-three/drei"; -import { Canvas, useLoader } from "@react-three/fiber"; -import { FogExp2 } from "three"; +import { useLoader } from "@react-three/fiber"; import { GLTFLoader } from "three-stdlib"; import styles from "./index.module.css"; @@ -8,14 +7,14 @@ export function TankopediaSandbox() { return (
- {!import.meta.env.SSR && } - + */}
); @@ -24,10 +23,9 @@ export function TankopediaSandbox() { function Content() { const gltf = useLoader(GLTFLoader, "/amogos.glb"); - gltf.scene.traverse(child => - { + gltf.scene.traverse((child) => { child.castShadow = true; - }) + }); return ( <> diff --git a/packages/website-ue/src/pages/[...locale]/tanks/[slug]/index.astro b/packages/website-ue/src/pages/[...locale]/tanks/[slug]/index.astro index a1bd40bdb..e41516244 100644 --- a/packages/website-ue/src/pages/[...locale]/tanks/[slug]/index.astro +++ b/packages/website-ue/src/pages/[...locale]/tanks/[slug]/index.astro @@ -2,10 +2,10 @@ import "@radix-ui/colors/violet-dark.css"; import { api } from "../../../../api/dynamic"; import { mixStaticPaths } from "../../../../astro/mixStaticPaths"; +import ColorScale from "../../../../components/ColorScale.astro"; import BaseLayout from "../../../../layouts/BaseLayout.astro"; import { getStaticPaths as _getStaticPaths } from "../index.astro"; import { Page } from "./_index"; -import ColorScale from "../../../../components/ColorScale.astro"; export const getStaticPaths = mixStaticPaths(_getStaticPaths, async () => { const { list } = await api.tankList(); @@ -21,5 +21,8 @@ const { id, locale } = Astro.props; + + + diff --git a/packages/website-ue/src/tankopedia/characteristics.ts b/packages/website-ue/src/tankopedia/characteristics.ts index f26c2bcba..c6897a338 100644 --- a/packages/website-ue/src/tankopedia/characteristics.ts +++ b/packages/website-ue/src/tankopedia/characteristics.ts @@ -242,12 +242,12 @@ export const characteristics = { const maxSpeed = characteristic("speed_forward") as number; return ( - (state.isGunDamaged ? gunDamaged : 1) * + (state.status.gun_damaged ? gunDamaged : 1) * (base + (state.speed / maxSpeed) * movement + - (state.isHullTraversing ? vehicleRotation : 0) + - (state.isTurretTraversing ? turretRotation : 0) + - (state.isShooting ? afterShot : 0)) + (state.status.hull_traversing ? vehicleRotation : 0) + + (state.status.turret_traversing ? turretRotation : 0) + + (state.status.shooting ? afterShot : 0)) ); }, @@ -376,7 +376,7 @@ export const characteristics = { 100 * base * (1 + moving * state.speed) * - (state.isShooting ? shooting : 1) + (state.status.shooting ? shooting : 1) ); }, @@ -409,7 +409,7 @@ export const characteristics = { }, id({ state }) { - return state.id; + return state.id.split(".").at(-1)!; }, slug({ tank }) { diff --git a/packages/website-ue/src/tankopedia/characteristicsOrder.tsx b/packages/website-ue/src/tankopedia/characteristicsOrder.tsx index f93bf1d10..d33885532 100644 --- a/packages/website-ue/src/tankopedia/characteristicsOrder.tsx +++ b/packages/website-ue/src/tankopedia/characteristicsOrder.tsx @@ -103,8 +103,13 @@ export const characteristicsOrder: CharacteristicsGroup[] = [ { name: "module_damage", units: "hp" }, { name: "clip_size" }, { name: "intra_clip", decimals: 2, units: "s" }, + // { name: "burst_size" }, // TODO: implement burst size + // { name: 'intra_burst', decimals: 2, units: "s" }, // TODO: implement intra burst + // TODO: investigate ATTRIBUTE_NAME_SHELLS_SLOTS + // TODO: investigate ATTRIBUTE_NAME_RELOAD_SPEED_SCALE + // TODO: investigate ATTRIBUTE_NAME_AVERAGE_THICKNESS - { toy: "ricochet" }, + // { toy: "ricochet" }, { name: "penetration", units: "mm" }, { name: "caliber", units: "mm" }, { name: "normalization", units: "deg" }, @@ -114,29 +119,33 @@ export const characteristicsOrder: CharacteristicsGroup[] = [ { name: "shell_range", units: "m" }, { name: "shell_capacity" }, - { toy: "aim_time" }, + // { toy: "aim_time" }, { name: "aim_time", decimals: 1, units: "s" }, { name: "dispersion", decimals: 3, units: "m" }, + // { name: "dispersion_angle", decimals: 3, units: "m" }, // TODO: implement dispersion angle - { toy: "flexibility" }, + // { toy: "flexibility" }, { name: "gun_depression", decimals: 0, units: "deg" }, { name: "gun_elevation", decimals: 0, units: "deg" }, + // { name: "gun_yaw_range", decimals: 0, units: "deg" }, // TODO: implement gun yaw range ], }, { group: "maneuverability", order: [ - { toy: "traverse" }, + // { toy: "traverse" }, { name: "speed_forward", units: "km_h" }, { name: "speed_backward", units: "km_h" }, { name: "engine_power", units: "bhp" }, + // { name: "brake_force", units: "N" }, // TODO: implement brake force { name: "weight", decimals: 1, units: "t" }, { name: "terrain_coefficient" }, { name: "power_to_weight", decimals: 1, units: "bhp_t" }, { name: "hull_traverse_speed", units: "deg_s" }, { name: "turret_traverse_speed", units: "deg_s" }, + // { name: "gun_traverse_speed", units: "deg_s" }, // TODO: implement gun traverse speed ], }, { @@ -144,13 +153,18 @@ export const characteristicsOrder: CharacteristicsGroup[] = [ order: [ { name: "health", units: "hp" }, { name: "fire_chance", units: "%" }, + // { name: "fire_health_burn", units: "hp_s" }, // TODO: implement fire health burn + // { name: "ramming_resistance", units: "%" }, // TODO: implement ramming resistance - { toy: "view_range" }, + // { toy: "view_range" }, { name: "view_range", units: "m" }, { name: "camouflage", decimals: 0, units: "%" }, - // TODO: implement width - // { name: "width", units: "m" }, + // { name: "consumable_cooldown", decimals: 0, units: "%" }, // TODO: implement consumable cooldown + // { name: "consumable_duration", decimals: 0, units: "s" }, // TODO: implement consumable duration + // { name: "consumable_reload", decimals: 0, units: "s" }, // TODO: implement consumable reload + + // { name: "width", units: "m" }, // TODO: implement width { name: "height", units: "m" }, { name: "length", units: "m" }, { name: "volume", units: "m" }, diff --git a/packages/website-ue/src/tankopedia/tankState.ts b/packages/website-ue/src/tankopedia/tankState.ts index 11851e44b..2f1979e74 100644 --- a/packages/website-ue/src/tankopedia/tankState.ts +++ b/packages/website-ue/src/tankopedia/tankState.ts @@ -21,23 +21,19 @@ export interface TankState { } export const vehicleStatusKeys = [ - "commander_dead", - "gunner_dead", - "driver_dead", - "loader_dead", + ["commander_dead", "gunner_dead", "driver_dead", "loader_dead"], - "fuel_tank_damaged", - "engine_damaged", - "chassis_damaged", - "viewport_damaged", - "ammo_bay_damaged", - "gun_damaged", - "turret_damaged", + [ + "fuel_tank_damaged", + "engine_damaged", + "chassis_damaged", + "viewport_damaged", + "ammo_bay_damaged", + "gun_damaged", + "turret_damaged", + ], - "caught_on_fire", - "shooting", - "turret_traversing", - "hull_traversing", + ["caught_on_fire", "shooting", "turret_traversing", "hull_traversing"], ] as const; -export type VehicleStatusKey = (typeof vehicleStatusKeys)[number]; +export type VehicleStatusKey = (typeof vehicleStatusKeys)[number][number];