diff --git a/unity-client/Assets/Editor/CreateDeckBuilderScene.cs b/unity-client/Assets/Editor/CreateDeckBuilderScene.cs index bb4f6a7..c564cea 100644 --- a/unity-client/Assets/Editor/CreateDeckBuilderScene.cs +++ b/unity-client/Assets/Editor/CreateDeckBuilderScene.cs @@ -150,6 +150,7 @@ public static class CreateDeckBuilderScene pieHlg.spacing = 6; pieHlg.childForceExpandWidth = true; pieHlg.childForceExpandHeight = false; Color[] pieColors = { Color.white, new Color(0.3f,0.6f,1f), new Color(0.1f,0.1f,0.1f), new Color(0.8f,0.2f,0.2f), new Color(0.2f,0.7f,0.2f) }; string[] pieLabels = { "W", "U", "B", "R", "G" }; + var pieSliceImages = new Image[pieColors.Length]; for (int i = 0; i < pieColors.Length; i++) { var slice = new GameObject("Slice_" + pieLabels[i]); @@ -157,6 +158,7 @@ public static class CreateDeckBuilderScene var sliceImg = slice.AddComponent(); sliceImg.color = pieColors[i]; var sliceText = CreateTMPText(slice.transform, "Label", pieLabels[i], 14, FontStyles.Bold, TextAlignmentOptions.Center); + pieSliceImages[i] = sliceImg; } // -- Card type breakdown -- @@ -165,6 +167,175 @@ public static class CreateDeckBuilderScene var typeText = CreateTMPText(rightPanel.transform, "TypeBreakdownText", "", 14, FontStyles.Normal, TextAlignmentOptions.TopLeft); SetAnchors(typeText.GetComponent(), new Vector2(0.05f, 0.01f), new Vector2(0.95f, 0.08f)); + // ── Error Panel (hidden initially) ──────────────────────────────────── + var errorPanel = CreatePanel(canvasGo.transform, "ErrorPanel", new Color(0.15f, 0.05f, 0.05f, 0.97f)); + SetAnchors(errorPanel.GetComponent(), new Vector2(0.25f, 0.35f), new Vector2(0.75f, 0.65f)); + errorPanel.SetActive(false); + CreateTMPText(errorPanel.transform, "ErrorTitle", "Error", 22, FontStyles.Bold, TextAlignmentOptions.Center); + var errorText = CreateTMPText(errorPanel.transform, "ErrorText", "", 16, FontStyles.Normal, TextAlignmentOptions.TopLeft); + SetAnchors(errorText.GetComponent(), new Vector2(0.05f, 0.25f), new Vector2(0.95f, 0.85f)); + var retryBtn = CreateTMPButton(errorPanel.transform, "RetryButton", "Retry", new Color(0.55f, 0.2f, 0.2f)); + SetAnchors(retryBtn.GetComponent(), new Vector2(0.3f, 0.05f), new Vector2(0.7f, 0.22f)); + + // ── Prefabs (disabled GameObjects parented to canvas, used as prefabs) ── + + // deckRowPrefab: horizontal layout with TMP_Text for deck name and a Button + var deckRowPrefab = new GameObject("DeckRowPrefab"); + deckRowPrefab.transform.SetParent(canvasGo.transform, false); + deckRowPrefab.SetActive(false); + deckRowPrefab.AddComponent().color = new Color(0.15f, 0.15f, 0.22f, 0.9f); + var drkHlg = deckRowPrefab.AddComponent(); + drkHlg.padding = new RectOffset(8, 8, 4, 4); + drkHlg.spacing = 8; + drkHlg.childForceExpandWidth = true; + drkHlg.childForceExpandHeight = true; + deckRowPrefab.AddComponent().minHeight = 40; + var drkNameCell = new GameObject("DeckName"); + drkNameCell.transform.SetParent(deckRowPrefab.transform, false); + var drkNameTxt = drkNameCell.AddComponent(); + drkNameTxt.text = "Deck"; drkNameTxt.fontSize = 16; drkNameTxt.color = Color.white; + var drkBtn = new GameObject("SelectButton"); + drkBtn.transform.SetParent(deckRowPrefab.transform, false); + drkBtn.AddComponent().color = new Color(0.2f, 0.4f, 0.7f); + drkBtn.AddComponent