Des formes familières du web, refaites autour de ce qu'un jeu leur demande.
GoRewardCalendar — la présence quotidienne
Un sélecteur de date n'est presque jamais utile dans un jeu. Une forme de calendrier, si — pour les récompenses de présence, où ce qui compte est le jour où vous en êtes, pas la date qu'il est.
var attendance := GoRewardCalendar.make(days, claimed_until)
attendance.claimed.connect(func(day: int) -> void: server.claim_day(day))
Seule la case du jour s'appuie — un bouton qui ne fait rien quand on appuie dessus se lit comme cassé. Réclamé, aujourd'hui et à venir diffèrent par trois choses à la fois : un glyphe de coche, une bordure d'accent et un assombrissement.
GoRadar et GoDonut — les statistiques d'un coup d'œil
var stats := GoRadar.make({"FOR": 0.85, "AGI": 0.5, "INT": 0.3, "VIT": 0.7, "CHA": 0.45})
stats.set_compare(with_new_sword) # une superposition en pointillés
var share := GoDonut.make([{"label": "Physique", "value": 620}, {"label": "Magique", "value": 340}])
card.add_child(share.legend())
Les valeurs du radar vont de 0 à 1, parce que ce qui compte comme « au maximum » est une décision de jeu — 120 de FOR brut à côté de 45 d'INT dessinerait un mensonge. Les valeurs du donut sont brutes et il fait la division pour vous ; au-delà de cinq parts, il regroupe le reste, car une sixième part est un fil que personne ne peut lire. La ligne de comparaison est en pointillés, pas simplement d'une autre couleur, et la légende écrit le pourcentage en toutes lettres.
GoCarousel — bannières et sélection de personnage
banners.set_pages([promo, event, pack])
banners.autoplay_seconds = 5.0 # désactivé par défaut
Il n'avance pas tout seul à moins qu'on le lui demande, et cinq secondes est le plancher : une bannière qui
change toutes les trois retire le texte avant qu'il soit lu. Le toucher remet le minuteur à zéro, et avec
reduce_motion, il n'avance jamais de lui-même. Les pastilles s'appuient à la taille tactile
minimale, même si la pastille dessinée est petite.
GoKbd — des indications de touche qui ne mentent pas
hint.add_child(GoKbd.for_action(&"interact")) # lit la vraie assignation
Un « Appuyez sur F » écrit en dur continue de dire F après que le joueur a réassigné ses touches — le
mensonge le plus courant dans une interface PC. for_action() lit InputMap ; si
l'action est assignée à une manette, il renvoie une chaîne vide et le widget se masque, parce que « Aucune » serait un mensonge de plus. Sur Android et iOS, il se masque de lui-même.