Formas conocidas de la web, reconstruidas alrededor de lo que un juego necesita de ellas.
GoRewardCalendar — asistencia diaria
Un selector de fechas casi nunca es útil en un juego. La forma de un calendario sí lo es — para las recompensas por asistencia, donde lo que importa es en qué día vas, no qué fecha es.
var attendance := GoRewardCalendar.make(days, claimed_until)
attendance.claimed.connect(func(day: int) -> void: server.claim_day(day))
Solo se puede pulsar la casilla de hoy — un botón que no hace nada al pulsarlo se lee como algo roto. Reclamado, hoy y futuro se diferencian por tres cosas a la vez: un glifo de marca, un borde de acento y un atenuado.
GoRadar y GoDonut — estadísticas de un vistazo
var stats := GoRadar.make({"STR": 0.85, "AGI": 0.5, "INT": 0.3, "VIT": 0.7, "LUK": 0.45})
stats.set_compare(with_new_sword) # una superposición discontinua
var share := GoDonut.make([{"label": "Físico", "value": 620}, {"label": "Mágico", "value": 340}])
card.add_child(share.legend())
Los valores del radar van de 0 a 1 porque qué cuenta como lleno es una decisión del juego — un 120 de STR en bruto junto a un 45 de INT dibujaría una mentira. Los valores del donut van en bruto y él divide por ti; pasadas cinco porciones agrupa el resto, porque una sexta porción es un hilo que nadie puede leer. La línea de comparación es discontinua, no solo de otro color, y la leyenda escribe el porcentaje en texto.
GoCarousel — banners y selección de personaje
banners.set_pages([promo, event, pack])
banners.autoplay_seconds = 5.0 # desactivado por omisión
No avanza por su cuenta a menos que se lo pidas, y cinco segundos es el suelo: un banner que cambia
cada tres se lleva el texto antes de que se lea. Tocarlo reinicia el temporizador, y con
reduce_motion activado no avanza nunca solo. Los puntos se pueden pulsar con el mínimo táctil
aunque el punto dibujado sea pequeño.
GoKbd — pistas de teclas que no mienten
hint.add_child(GoKbd.for_action(&"interact")) # lee la asignación real
Un "Pulsa F" escrito a mano sigue diciendo F después de que el jugador reasigne las teclas — la mentira más común en una interfaz de PC.
for_action() lee InputMap; si la acción está asignada a un mando, devuelve
vacío y el widget se oculta, porque "Ninguna" sería otra mentira suya. En Android y iOS se oculta solo.