gohud

العتامة — اللعبة خلف اللوحة

← السمات

النوافذ المنبثقة ومربعات الحوار والأوراق والبطاقات ولوحات HUD والتنبيهات وأشرطة الرسائل ترسم وجهها بعتامة 80%. فالقتال ماضٍ خلف مربع حوار التأكيد، والخريطة ظاهرة تحت ورقة الحقيبة. وهذا في اللعبة ليس زخرفًا — بل هو ما يُبقي اللاعب عارفًا أين هو. أما اللوحة المعتمة تمامًا فتمحو الموضع الذي كان يقف فيه لحظةَ تُفتح نافذة.

الوجه وحده هو الذي يرقّ. فالنصوص والأيقونات والأزرار والشارات والخانات السريعة تبقى حادّة، وكذلك الحدود والظلال. فاللوحة نصف الشفافة لا تُقرأ زجاجًا إلا ما دام حدّها الخارجي واضحًا؛ فإن أخفتَّ الحدّ لم تعد تعرف أين تنتهي اللوحة. وإن أخفتَّ المحتوى لم تُقرأ الواجهة أصلًا — وتلك ليست نافذة شفافة، بل هي عطب. ولهذا لا تُطبَّق القيمة عبر modulate.a أبدًا.

خمس طبقات، الأخصّ أولًا

الترتيبالموضعالوحدةالمدى
الوسيط عند ذلك الاستدعاء — surface.alpha، GoStyle.card(…, alpha)نسبة 0.0–1.0نافذة واحدة
GoConfig.container_alpha_overrides[kind]نسبة 0.0–1.0نوع واحد من اللوحات، في المشروع كله
GoConfig.metric_overrides[<kind>_alpha]نسبة مئويةالمشاريع التي تجمع كل المقاسات في مكان واحد
GoConfig.container_alphaنسبة 0.0–1.0كل اللوحات دفعةً واحدة
GoHud/constants/<kind>_alpha في السمةنسبة مئويةما يقرّره المظهر العام — مصدر الحقيقة

وإن لم يُضبط أيٌّ منها كانت القيمة 100، فلا يتغيّر في السمة الأقدم شيء.

العتامة نسبة في كل موضع — إلا في السمة. فكل حقل alpha وكل وسيط يأخذ 0.0–1.0، بالوحدات نفسها التي يأخذها Color.a وmodulate.a، والقيمة السالبة تعني «غير مضبوطة». والاستثناء الوحيد ثوابتُ السمة، لأنّ ثابت Theme لا يسع عددًا عشريًّا: فهي والقناة التي تتجاوزها (metric_overrides، وهي تشارك السمة أسماءها ونوعها الصحيح) تُكتب 80. ولا شيء غير ذلك.
# نافذة واحدة فقط — مربع حوار تأكيد يجب ألّا يحجب القتال خلفه
surface.alpha = 0.6
sheet.alpha = 0.7
dialogs.alpha = 0.9                          # حقول @export نسبٌ هي الأخرى
drawer.alpha = 0.7
GoPopover.open(slot, body, {"alpha": 0.9})
var glass := GoStyle.card(Color.TRANSPARENT, -1.0, -1.0, -1.0, 0.5)

# حسب النوع — أبقِ HUD معتمًا تقريبًا، لأن نصّه يجلس فوق العالم مباشرةً
GoUi.config.container_alpha_overrides = {
    GoTheme.BOX_PANEL: 0.7,                   # مربعات الحوار والأوراق تستطيع أن تتنفّس
    GoTheme.BOX_HUD: 0.95,
}
GoUi.refresh()                               # يعيد رسم الودجات المفتوحة سلفًا

# المشروع كله — عالم مزدحم يريد لوحاته معتمة من جديد
GoUi.config.container_alpha = 1.0
GoUi.refresh()

GoUi.surface_alpha(GoTheme.BOX_PANEL)        # النسبة الناتجة، مثلًا 0.8

ما الذي يتبع القيمة وما الذي لا يتبعها

يتبعها — الحاوياتيتجاهلها — ما تضغطه، والعلامات
GoSurface (القشرة الواحدة خلف مربعات الحوار والأوراق والقوائم المنسدلة) · GoSheet · GoDialogs · GoDrawer · GoPopover · GoNotice · GoSnackbar · GoPromptCard · GoCoachMark · GoConsole كل زرّ · GoSlot (الخانات السريعة) · GoBadge · أدوات التحكم المقسّمة · خلايا الاختيار · الشرائح · الأقراص والصور الرمزية
GoStyle.card() · hud_panel() · overlay_panel() · alert() · plate() · edge_card_panel() · style_notice_panel() · floating() · box() · surface() كل النصوص والأيقونات

والزرّ الذي بهتت حالته لم يعد يقول ما هو، والشارة إنما وُجدت لتجعل حرفين مقروءين — وليس أيٌّ منهما حاوية، فلا يتبع أيٌّ منهما القيمة.

القوائم المنبثقة تبقى معتمة (popup_alpha 100). فقد يستضيف المحرّك PopupMenu في Window خاصّة به، وهناك لا يدمجها نظام التشغيل مع اللعبة: فتخرج نصف الشفافية سوداء لا شفّافة. ولا تخفضها إلا في المشاريع التي تضمّن نوافذها الفرعية (gui_embed_subwindows).

ثلاثة تفاصيل جاءت من شاشات حقيقية

الوجوه المخصّصة تخفت هي الأخرى — وهنا يقع العطب صامتًا

اللوحة مقطوعة الأركان (GoStyleBoxCut) والإطار المطروق (GoStyleBoxMedieval) ليسا StyleBoxFlat؛ بل يرسمان نفسيهما. فضع العتامة في الفرع المسطّح وحده تتجاهلها هاتان السمتان في صمت بينما يظلّ كل اختبار قائم على القيم ناجحًا. وكلاهما يخفت خلفيته ويُبقي التوهّج والمسامير ونقش الأركان والإبراز المشطوف بكامل قوّتها — وحبيبات وجه العصور الوسطى وإبرازه كانت أصلًا متناسبة مع ألفا خلفيته، فترقّ مع اللوحة.

وهذه هي النقطة الأوسع: فـbg_color.a == 0.8 رقم. أما أن ينفذ العالم من خلفها ويبقى النص مقروءًا فهو المطلوب. ويفحص gohud الأول في حزمة اختباراته بلا شاشة، ويفحص الثاني برسم لوحات فوق خطوط مائلة على شاشة افتراضية (tests/gohud_alpha_shot.gd) — على الوجه المسطّح والمقطوع والمطروق، في السمة الداكنة والفاتحة كلتيهما.