Những hình dạng quen thuộc của web, dựng lại quanh cái mà một game cần ở chúng.
GoRewardCalendar — điểm danh hằng ngày
Một bộ chọn ngày gần như chẳng bao giờ có ích trong game. Hình dạng của một cuốn lịch thì có — cho phần thưởng điểm danh, nơi thứ quan trọng là bạn đang ở ngày thứ mấy, chứ không phải hôm nay là ngày nào.
var attendance := GoRewardCalendar.make(days, claimed_until)
attendance.claimed.connect(func(day: int) -> void: server.claim_day(day))
Chỉ ô của hôm nay là bấm được — một cái nút bấm vào mà không làm gì thì người ta đọc ra là hỏng. Ô đã nhận, ô hôm nay và ô sắp tới khác nhau ở ba thứ cùng lúc: một dấu tích, một cái viền màu nhấn và độ mờ.
GoRadar và GoDonut — chỉ số nhìn một cái là thấy
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) # một lớp phủ nét đứt
var share := GoDonut.make([{"label": "Vật lý", "value": 620}, {"label": "Phép thuật", "value": 340}])
card.add_child(share.legend())
Giá trị của radar nằm trong khoảng 0–1 vì thế nào là đầy là quyết định của từng game — 120 STR thô đặt cạnh 45 INT sẽ vẽ ra một lời nói dối. Giá trị của donut thì để thô và nó tự chia giúp bạn; quá năm miếng thì nó gộp phần còn lại, vì miếng thứ sáu chỉ còn là một sợi chỉ chẳng ai đọc nổi. Đường so sánh là nét đứt chứ không chỉ là thêm một màu khác, và phần chú giải in tỷ lệ phần trăm ra thành chữ.
GoCarousel — banner và màn chọn nhân vật
banners.set_pages([promo, event, pack])
banners.autoplay_seconds = 5.0 # mặc định tắt
Nó không tự chuyển trang trừ khi bạn yêu cầu, và năm giây là mức sàn: một banner cứ ba giây đổi một lần sẽ
lấy mất dòng chữ trước khi người ta đọc xong. Chạm vào nó là đồng hồ đếm lại từ đầu, và khi bật
reduce_motion thì nó không bao giờ tự chuyển. Mấy cái chấm bấm được ở kích thước chạm tối thiểu,
dù cái chấm được vẽ ra thì nhỏ.
GoKbd — gợi ý phím không nói dối
hint.add_child(GoKbd.for_action(&"interact")) # đọc đúng phím đang gán
Một dòng "Nhấn F" viết chết trong code vẫn cứ nói F sau khi người chơi đổi phím — lời nói dối phổ biến nhất
trong giao diện PC. for_action() đọc InputMap; nếu hành động đó lại được gán vào
tay cầm thì nó trả về rỗng và widget tự ẩn, vì "Không có" sẽ lại là một lời nói dối khác. Trên Android và
iOS nó tự ẩn mình.