🌊 The Obstacle List

🎴 Deck: {{ deck_count }} cards left
{% for obs in game.obstacles %}
{{ obs.symbol }} {{ obs.suit.upper() }} {{ obs.original_card }}

{{ obs.title }}

{{ obs.description }}

Current Difficulty {% if parse_card(obs.original_card).value in ["J", "Q", "K"] %} Rank ({{ player.rank }}) {% else %} {{ obs.current_value }} {% endif %}
Card History (Column)
{% set column_cards = json_loads(obs.played_cards) %}
{{ obs.original_card[:-1] }} {{ obs.symbol }}
{% for pc in column_cards %}
{{ pc.card[:-1] if not pc.card.startswith('Joker') else '🃏' }} {{ parse_card(pc.card).symbol }} {{ pc.player_name[:4] }}
{% endfor %}
{% else %}

No active obstacles. Deep players can end the scene!

{% endfor %}

⚔️ Active Challenges

{% for chal in game.challenges if chal.is_active %} {% set applied_ids = json_loads(chal.applied_obstacle_ids) %}

{{ chal.title }}

{% if chal.description %}

{{ chal.description }}

{% endif %}
Applied Obstacles to beat (Success on any, but failures carry complications!):
{% for obs_id in applied_ids %} {% set obs = get_obstacle_by_id(obs_id) %} {% if obs %}
{{ obs.symbol }} {{ obs.title }} (Difficulty: {% if parse_card(obs.original_card).value in ["J", "Q", "K"] %} Rank ({{ player.rank }}) {% else %} {{ obs.current_value }} {% endif %})
{% if player.role == "pirat" %}
{% else %} Waiting for Pi-Rats to resolve {% endif %}
{% endif %} {% endfor %}
{% else %}

No active challenges. Deep players should describe the scene and call for challenges!

{% endfor %}
{% if player.role == "deep" %}

🌊 Deep Master Control Panel

1. Call for a New Challenge:

{% for obs in game.obstacles %} {% endfor %}

3. End the Current Scene:

Deep players can conclude the scene once players have made attempts or the obstacle list is depleted.

{% endif %}

🃏 Your Hand

Keep your cards secret! Max hand size: {{ max_hand_size }} cards. {% if is_captain(player, game.players) %} (Includes +1 Captain bonus) {% endif %}

{% for card in hand %} {% set parsed = parse_card(card) %}
{{ parsed.value }} {{ parsed.symbol }}
{% if parsed.is_joker %} 🃏 {% else %} {{ parsed.symbol }} {% endif %}
{% if parsed.value == "J" %}
J: "{{ player.tech_jack }}"
{% elif parsed.value == "Q" %}
Q: "{{ player.tech_queen }}"
{% elif parsed.value == "K" %}
K: "{{ player.tech_king }}"
{% elif parsed.is_joker %}
{% endif %}
{{ parsed.value }} {{ parsed.symbol }}
{% else %}

Your hand is empty! (You draw cards when playing cards that match the suit color of the obstacle.)

{% endfor %}

🐀 Your Character sheet

Description:

Look: {{ player.avatar_look }}

Smell: {{ player.avatar_smell }}

First Words: "{{ player.first_words }}"

Likes: "{{ player.other_like }}" (by {{ get_player_name(player.other_like_from_player_id) }})

Hates: "{{ player.other_hate }}" (by {{ get_player_name(player.other_hate_from_player_id) }})

Assigned Secret Techniques (J/Q/K):

  • Jack (J): "{{ player.tech_jack }}"
  • Queen (Q): "{{ player.tech_queen }}"
  • King (K): "{{ player.tech_king }}"

Objectives Tracker:

Toggle your objectives as you complete them to earn Ranks and unlock privileges.

Privilege: +1 to Black cards (Clubs/Spades). Tax: Can ask a Gatted player to do challenges.
Privilege: +1 to Red cards (Hearts/Diamonds). Tax: Can ask a Named player to do challenges.
Bonus: Rank up another player.