From e9909fa967b3470cf405aaaf726623babe2f3373 Mon Sep 17 00:00:00 2001 From: "Aaron D. Lee" Date: Mon, 26 Jan 2026 00:24:57 -0500 Subject: [PATCH] More UI tweaks and fixes. --- client/style.css | 4 ++-- server/game.py | 6 ++++++ server/games.db | Bin 17104896 -> 17231872 bytes 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/client/style.css b/client/style.css index 2c88c4a..8a31dfc 100644 --- a/client/style.css +++ b/client/style.css @@ -1060,8 +1060,8 @@ input::placeholder { /* Round winner highlight */ .opponent-area.round-winner h4, .player-area.round-winner h4 { - background: rgba(200, 255, 50, 0.7); - box-shadow: 0 0 15px rgba(200, 255, 50, 0.9), 0 0 30px rgba(200, 255, 50, 0.5); + background: rgba(200, 255, 50, 0.6); + box-shadow: 0 0 8px rgba(200, 255, 50, 0.5); color: #0a2a10; } diff --git a/server/game.py b/server/game.py index a6b75fb..93bcfcd 100644 --- a/server/game.py +++ b/server/game.py @@ -828,6 +828,8 @@ class Game: If the player has revealed all cards and is the first to do so, triggers FINAL_TURN phase where other players get one more turn. + In FINAL_TURN phase, reveal all of the player's cards after their turn. + Args: player: The player whose turn just ended. """ @@ -835,6 +837,10 @@ class Game: self.finisher_id = player.id self.phase = GamePhase.FINAL_TURN self.players_with_final_turn.add(player.id) + elif self.phase == GamePhase.FINAL_TURN: + # Reveal this player's cards immediately after their final turn + for card in player.cards: + card.face_up = True self._next_turn() diff --git a/server/games.db b/server/games.db index 3d728781261f7ab3dfadaa96bdcdef04458998d5..acef4c71a6b3d48ed4fc3a641467f763785169f0 100644 GIT binary patch delta 30613 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 Pm*LA4T<{3bq_F=7u90u2 delta 3363 zcmZA33s_Xe9suw&Gv~3u?%9Pfkk>l&FLYMP?ig4#n(Hzn+Wy7HJs zAw7aP8pf{q;!^nl*(u|)+U=bcS4_T{I=g+FPU|nN6$DepR&xqkd&KITj#kuWV3Tx0m>jyJT(M5T>e%vW))-NhLwD5W zSZ@nuNnX+?Qtb>Uu{bAd*^+*w3E&UD%f*SwVw$Zrmr=|N4HguQo zTwa9lZz(rF-7-xbBItzRM|~)S^uepwWZA|J5CmM)dlgZm=JehpiYgh57q7}%^Vs4g zi6$z@^C8#|C17%(Qiuni|OY1JKJgJ72!R@ys5`yo4r@+0= z;a-OT1_X#e0y0p54upVE5C-(X090TECJ+uHz-=HB^Z|WAKM)1}25txa!2mE23<86J z8QcMefM^f{VnH0Z6AT6MAOQ>m!?}B%B^{v|T(Vof3+1jSqni->p~MpF_@>kX62V;{ z35)=DgL}Ze;65-C{2hz}qrn((KS%~+!8nit#)Ao9BA5gwgMWZ2-~o^d9t2atLtq+6 z1LD-;|r={c@hcY8YwIOQ)q8$sTq&tRbw-&|)}h*n~$(bM%|_i}hplCaj|NuyOh} z{hR1mSY+6f#xqDmkE3K1p)(6taCU`jQWT45RfjTdMxw-636Ei;OL+pjR074>LcWeI z3S7>h{9(4n!4t>>Qa3XVk-LK{&iF3tY-ZbNiD&C8tRqnZA5N?psSYdLj2Oc_yFH!MbiX|fi1J8g}U^U1A&w^aA20RCz2QPpZK^|BO)`9iF4mN;%Pyh-+ z5um^Uior&(36y|R@DkVzwg3%m1!bTdYy%ZwJ78c3*a=?d6}u`|PC_!5S}Sj$A)-ip z^93a6nYpd#)O4?i9+**<=p?2x^cU>A4= zQ~@V&f!*L$um|h~`@nv1091p2f*SA|cpba}4uV7AFgOBgK^-{CWp91=%7~fpGBaA*pAaTE2v0oo_&UA-j~%W1No` zNa$cswI154QCc9A;@R7Q?CmP%nLRT>9ZoyUDBd$0%2?7fg7YqjGmL7SYHw2QEvg-( z+S^oXpxVEv)<`uE)s9o`1l8W5+P|sxF4f+n+WS=dfNCF7?IWsvOtnv_c9LqJQtdOU zeNMF|s{My*r>NFUwbNAlf@)`|c9v@AsP-k*&Qt9xs$FnvUyH}ZAMrqe*}@IUd~!xV zCt}~;adiwE+u%3wThUi3!pSB_?W`7X5wwDDcOjx*S%q`Y9!s`6d>{_kA|A36%Q$l)gWomCF zl@&Mme-7!r#H`rkf6n-S2aObo=fqwu4P~{_S1kkvVBy}d{(*f{8EfJV)rY!&SBjLf0icV{OZSe~&Iv5C7oZfAM6S#dnVY+l&2GhE%%ksF3b-^;xl+Vsd# zcBljV$jc6Ot~4v;G>XC5LcJ+29~QeEpT|x3ecXU+aWyR4apESg!`o&D*-Q$_3$SR9 zlLcfZNhRaRy(EE{VafCaV?XXR`d~}8;Z4|%bMbPVEiMd?ZKyfSklx<3ZvP#KPGL#f0Q5mS{7by#n;7`#bPm+obEl;r7Y~JvEgSs zr?X|}I;XIrvz=cP<9?wc{Ke_P$C0(4=}cv&=9_u!=&76YQ5Mf{?mUb6k#n5`mC)Wu zV@I;MJ?)u2n=*b_TCgilndWZogmi0?%mN!!=NrNkGoCt!*~_)QLPlpr4PlLSzN9F~ zB)57PvT3hcC8mlK#bkI?lf(q(-E(a&GdC&cn5#%9I%4)+176StegZ#(U%;w28;n`Q7A? z#l(61vfH1FJqsR`QMK$4kNd%m1LE}3EbRtvk(VX#@q9DDQ&*#C~dw4e&eOh zzd!q%VmO8_h_b+}hkePO&@PN}5bth^-h^1~sqS?w|8(~hE}!leb#mY&KK49IKk7?k zA2j+>S>;im#*7|cQQ)A+xjS@b0OM06_Te>{A0-v9sr