using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using TcgEngine; using Unity.VisualScripting; namespace TcgEngine.UI { public class PresetDeck : UIPanel { [Header("展示面板")] public UIPanel preset_lineup; public Button preset_lineup_button; public UIPanel hide_panel; public GameObject deck_lines_prefab; public RectTransform deck_line_content; [Header("展示卡组")] public GameObject card_lines_prefab; public GridLayoutGroup deck_display_grid; [Header("预设面板")] public Button deleteDeckButton; public DeckSelector deckSelector; public DropdownValue dropdownValue; private Button hide_panel_button; // 卡组管理 public int active_lines_size = 12; private List active_pool = new List(); private List active_lines = new List(); // 卡组展示管理 public int card_lines_size = 12; private List card_pool = new List(); private List card_lines = new List(); private List deck_cards = new List(); private UserData lastUserData; private int currIndex = 0; private static PresetDeck instance; protected override void Awake() { base.Awake(); instance = this; for (int i = 0; i < deck_line_content.transform.childCount; i++) Destroy(deck_line_content.transform.GetChild(i).gameObject); for (int i = 0; i < deck_display_grid.transform.childCount; i++) Destroy(deck_display_grid.transform.GetChild(i).gameObject); for (int i = 0; i < active_lines_size; i++) { GameObject deckLine = Instantiate(deck_lines_prefab, deck_line_content.transform); DeckLine line = deckLine.GetComponent(); line.gameObject.SetActive(false); line.onClick += OnClickLine; active_pool.Add(line); } for (int i = 0; i < card_lines_size; i++) { GameObject card = Instantiate(card_lines_prefab, deck_display_grid.transform); DeckLine line = card.GetComponent(); line.gameObject.SetActive(false); card_pool.Add(line); } } protected override void Start() { base.Start(); preset_lineup_button.onClick.AddListener(OnPresetLineupPanle); hide_panel_button = hide_panel.GetComponent