Preserve interpolation, numeric ToString formatting, line breaks and ON/OFF refresh logic. Update initial construction and later refresh assignments. Helper name/help sources are G5Helpers.Name and G5Helpers.Info in G5Logic.cs. Level names and hints are separate JSON content. Visible title appears in the game Title property, HzGameInfo and sometimes separate screen lettering/art; review all branding deliberately.
There is no automatic translation of hard-coded game strings. A translation table must be called by each assignment. Word dictionaries/answer banks are gameplay data and do not translate Guess Five menus. Test title, tutorial, helper unlocks, HUD, settings/result popups and refreshed labels in both orientations.
| Exact source reference | Current assignment |
|---|
GuessFiveBoard.cs:144 | var t = HzUI.Label("T", chip.transform, text, (int)(font * scale), Color.white, TextAnchor.MiddleLeft, false); |
GuessFiveBoard.cs:164 | _timerText = HzUI.Label("Secs", back.transform, "", (int)(h * 0.62f), Color.white, TextAnchor.MiddleRight); |
GuessFiveBoard.cs:176 | _timerText.text = (s / 60) + ":" + (s % 60).ToString("00"); |
GuessFiveBoard.cs:194 | var t = HzUI.Label("Title", _layer, title, 76, T.text); At(t.rectTransform, W / 2, hy - 20, 560, 90); |
GuessFiveBoard.cs:196 | var st = HzUI.Label("Sub", _layer, sub, 30, T.sub, TextAnchor.MiddleCenter, false); st.fontStyle = FontStyle.Bold; |
GuessFiveBoard.cs:202 | var t = HzUI.Label("Title", _layer, title, 68, T.text, TextAnchor.MiddleLeft); At(t.rectTransform, tx + 300, hy - 18, 600, 80); |
GuessFiveBoard.cs:204 | var st = HzUI.Label("Sub", _layer, sub, 28, T.sub, TextAnchor.MiddleLeft, false); st.fontStyle = FontStyle.Bold; |
GuessFiveBoard.cs:238 | var rules = HzUI.Label("Rules", _layer, RulesText(), 32, T.sub, TextAnchor.MiddleCenter, false); |
GuessFiveBoard.cs:271 | t.txt = HzUI.Label("L", t.rt, "", (int)(tile * 0.56f), T.text); |
GuessFiveBoard.cs:332 | v.lockText = HzUI.Label("Lv", lockBg.transform, "LV " + G5Helpers.UnlockLevel[h], (int)(bs * 0.22f), Color.white); |
GuessFiveBoard.cs:339 | v.badgeText = HzUI.Label("N", v.badge.transform, "", (int)(bs * 0.26f), Color.white); v.badgeText.rectTransform.Stretch(); |
GuessFiveBoard.cs:341 | v.label = HzUI.Label("Name", _layer, G5Helpers.Name[h].ToUpperInvariant(), (int)(bs * 0.2f), T.sub, TextAnchor.MiddleCenter, false); |
GuessFiveBoard.cs:360 | v.badgeText.text = n > 0 ? n.ToString() : "AD"; |
GuessFiveBoard.cs:383 | k.txt = HzUI.Label("K", img.transform, char.ToUpperInvariant(c).ToString(), (int)(h * 0.44f), T.keyText); |
GuessFiveBoard.cs:395 | t.txt.text = letter == '.' || letter == '\0' ? "" : char.ToUpperInvariant(letter).ToString(); |
GuessFiveBoard.cs:459 | var l = HzUI.Label("T", bg.transform, text, 46, Color.white); l.rectTransform.Stretch(8); |
GuessFiveBoard.cs:476 | var t = HzUI.Label("T", root, title, 104, Color.white); t.rectTransform.Place(new Vector2(0.5f, 0.5f), new Vector2(cs.x, 130), new Vector2(0, 30)); |
GuessFiveBoard.cs:479 | var s = HzUI.Label("S", root, sub, 46, Gold, TextAnchor.MiddleCenter, false); s.fontStyle = FontStyle.Bold; |
GuessFiveGame.cs:282 | Note("Unlocks at level " + G5Helpers.UnlockLevel[h]); |
GuessFiveGame.cs:293 | HzPlatform.Rewarded(GameId, "helper_" + G5Helpers.Name[h].ToLowerInvariant().Replace(' ', '_'), ok => |
GuessFiveGame.cs:306 | case G5Helpers.Reveal: return R.HintColumn() < 0 ? "All letters found!" : null; |
GuessFiveGame.cs:307 | case G5Helpers.Eliminate: return R.EliminateCandidates().Count == 0 ? "Nothing left to erase" : null; |
GuessFiveGame.cs:308 | case G5Helpers.ExtraRow: return R.extraUsed ? "One extra row per word" : R.maxRows >= G5Rules.MaxRowsCap ? "No room for more rows" : null; |
GuessFiveGame.cs:309 | case G5Helpers.Vowels: return R.CanVowelScan() ? null : "Vowels already known"; |
GuessFiveGame.cs:422 | case "unlockall": for (int h = 0; h < G5Helpers.Count; h++) { P.unlockedMask |= 1 << h; P.charges[h] = Mathf.Max(P.charges[h], 3); } SaveProgress(); RefreshHelpers(); return "ok"; |
GuessFiveScreens.cs:31 | var st = HzUI.Label("N", pill.transform, P.TotalStars.ToString(), 50, Color.white, TextAnchor.MiddleLeft); st.rectTransform.Stretch(); st.rectTransform.offsetMin = new Vector2(96, 0); |
GuessFiveScreens.cs:37 | string word = "GUESS"; Color[] cols = { Correct, Present, T.absent, Correct, Present }; |
GuessFiveScreens.cs:43 | var l = HzUI.Label("L", t.transform, word[i].ToString(), (int)(ts * 0.62f), Color.white); l.rectTransform.Stretch(); |
GuessFiveScreens.cs:48 | var five = HzUI.Label("Five", _layer, "FIVE", port ? 120 : 96, T.text); |
GuessFiveScreens.cs:75 | var play = HzUI.Button("Play", _layer, "Level " + cur, Correct, Color.white, PlayLevel, port ? 80 : 68, 44); |
GuessFiveScreens.cs:79 | var ps = HzUI.Label("Kind", play.transform, lvNow.KindLabel().ToUpperInvariant(), 30, new Color(1, 1, 1, 0.85f), TextAnchor.MiddleCenter, false); |
GuessFiveScreens.cs:82 | var classic = HzUI.Button("Classic", _layer, "Classic", Present, Color.white, PlayClassic, port ? 58 : 52, 40); |
GuessFiveScreens.cs:86 | var cs2 = HzUI.Label("Sub", classic.transform, "WORD #" + P.classicWord + " · STREAK " + S.streak, 26, new Color(1, 1, 1, 0.85f), TextAnchor.MiddleCenter, false); |
GuessFiveScreens.cs:101 | var t = HzUI.Label("N", node.transform, n.ToString(), (int)(size * 0.42f), Color.white); t.rectTransform.Stretch(); |
GuessFiveScreens.cs:118 | var lbl = HzUI.Label("Kind", _layer, lv.KindLabel().ToUpperInvariant(), current ? 28 : 24, T.sub, TextAnchor.MiddleCenter, false); |
GuessFiveScreens.cs:142 | var five = HzUI.Label("Five", cover.transform, "GUESS FIVE", 120, T.text); |
GuessFiveScreens.cs:168 | var tl = HzUI.Label("Title", ribbon.transform, title, 64, Color.white); tl.rectTransform.Stretch(6); |
GuessFiveScreens.cs:217 | var t = HzUI.Label("Txt", m.card, text, size, color, TextAnchor.MiddleCenter, display); |
GuessFiveScreens.cs:240 | res[c] = HzUI.Label("L", p.transform, ch == '.' ? "" : char.ToUpperInvariant(ch).ToString(), (int)(size * 0.56f), mk == Mark.None ? T.text : Color.white); |
GuessFiveScreens.cs:285 | theme.onClick.AddListener(() => { HzAudio.Play("toggle", 0.5f); DayMode = !DayMode; theme.SetText(ThemeLabel()); BuildView(); m.card.GetComponent<Image>().color = T.card; }); |
GuessFiveScreens.cs:286 | sound = CardButton(m, SoundLabel(), HzUI.Hex("#4C9EEB"), 320, 560, 108, null); |
GuessFiveScreens.cs:287 | sound.onClick.AddListener(() => { HzAudio.Muted = !HzAudio.Muted; sound.SetText(SoundLabel()); HzAudio.Play("toggle", 0.5f); }); |
GuessFiveScreens.cs:288 | music = CardButton(m, MusicLabel(), HzUI.Hex("#3DBE9E"), 450, 560, 108, null); |
GuessFiveScreens.cs:289 | music.onClick.AddListener(() => { HzAudio.MusicMuted = !HzAudio.MusicMuted; music.SetText(MusicLabel()); HzAudio.Play("toggle", 0.5f); }); |
GuessFiveScreens.cs:296 | static string SoundLabel() => HzAudio.Muted ? "Sound: OFF" : "Sound: ON"; |
GuessFiveScreens.cs:297 | static string MusicLabel() => HzAudio.MusicMuted ? "Music: OFF" : "Music: ON"; |
GuessFiveScreens.cs:318 | HzUI.Label("t", chip.transform, "+" + G5Helpers.FreeCharges[h] + " FREE", 36, Color.white).rectTransform.Stretch(); |
GuessFiveScreens.cs:358 | Note(G5Helpers.Name[h] + " used: it was free!", Green, 1.6f); |
GuessFiveScreens.cs:373 | var ct = HzUI.Label("T", cap.transform, "Tap <color=" + HexOf(Present) + ">" + G5Helpers.Name[h] + "</color> to try it.\nThis first use is free!", 38, T.cardText, TextAnchor.MiddleCenter, false); |
GuessFiveScreens.cs:375 | var skip = HzUI.Button("Later", dim.transform, "Later", T.muted, Color.white, () => { CloseCoach(); P.coachedMask |= 1 << h; SaveProgress(); HzTween.Delay(0.2f, Pump); }, 36, 26); |
GuessFiveScreens.cs:445 | HzUI.Label("t", tag.transform, "AD", 28, Color.white).rectTransform.Stretch(); |
GuessFiveScreens.cs:617 | HzUI.Label("t", ad.transform, "AD", 24, Color.white).rectTransform.Stretch(); |
GuessFiveScreens.cs:640 | var bl = HzUI.Label("v", bar.transform, S.dist[i].ToString(), 28, Color.white, TextAnchor.MiddleRight); |