{% extends 'wfbo/_layout.html.twig' %} {% block title %}Pusoy Dos Hand #{{ hand.id }} — WFBO{% endblock %} {% block wfbo_title %}Pusoy Dos Hand #{{ hand.id }}{% endblock %} {% macro cards(list) %}{% for c in list %}{{ pusoy_card(c) }}{{ not loop.last ? ' ' }}{% else %}pass{% endfor %}{% endmacro %} {% block wfbo_content %} {% import _self as pd %} {% set seats = hand.seatsAtDeal %}

← Pusoy Dos Results

Table

{{ hand.tier|capitalize }}{% if hand.table.private %} Private · {{ hand.table.code }}{% endif %}

{{ hand.seatsAtDeal|length }} seats · pot ₱{{ (hand.stake * hand.seatsAtDeal|length)|number_format(2) }} · entry ₱{{ hand.stake|number_format(2) }}

Dealt

{{ hand.createdAt|date('M d, Y h:i:s A') }}

{{ hand.status == 'settled' ? 'Settled ' ~ hand.settledAt|date('h:i:s A') : 'Still being played' }}

Deal Seed

{{ hand.seed }}

Fair shuffle — replay with PusoyDealer::deal(seed)

{% for seatNo, s in seats %} {% set bet = null %} {% for b in bets %}{% if b.seat == seatNo %}{% set bet = b %}{% endif %}{% endfor %} {% endfor %}
Seat Player Dealt Hand Finish Entry Payout
{{ seatNo + 1 }} {{ s.name }}

{{ s.type == 'bot' ? 'Bot · ' ~ s.botLevel : 'Player' }}

{{ pd.cards(deal[seatNo]) }} {{ places[seatNo] is defined ? '#' ~ places[seatNo] : '—' }} {{ bet ? '₱' ~ bet.amount|number_format(2) : '—' }} {{ bet and bet.payout ? '₱' ~ bet.payout|number_format(2) : '—' }}

Move Log

Every play and pass in order. Bots only see their own cards and what has been played; the reason column is the bot's own note.

{% for m in moves %} {% else %} {% endfor %}
# Time Seat Play By Reason
{{ m.seq }} {{ m.createdAt|date('h:i:s A') }} {{ seats[m.seat].name }} {{ pd.cards(m.cards) }}{% if m.comboType %} {{ m.comboType|replace({'_': ' '}) }}{% endif %} {{ {human: 'Player', bot: 'Bot', standin: 'Stand-in', timeout: 'Timeout'}[m.actor] ?? m.actor }} {{ m.reason ?? '' }}
No moves yet.

Table Chat

Messages sent at this table during the hand and its results screen, as typed (players see bad words masked).

{% for c in chat %} {% else %} {% endfor %}
Time Seat Player Message
{{ c.createdAt|date('h:i:s A') }} {{ c.seat is not null ? c.seat + 1 : 'Watching' }} {{ c.name }} {{ c.message }}
No chat messages.
{% endblock %}