using CSNetwork.Protocols.RPCData; using System; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using BrewMonster; namespace BrewMonster.UI { public class SelecScreenCharacter : MonoBehaviour { [SerializeField] private GameObject characterItemPrefab; [SerializeField] private GameObject addCharacterItemPrefab; [SerializeField] private RectTransform parentItems; [SerializeField] private Button createCharacterButton; [SerializeField] private CreateCharacterScreen createCharacterScreen; private Action _onClickItemChar; private Action _onCreateCharacterComplete; private void Start() { if (createCharacterButton != null) { createCharacterButton.onClick.AddListener(OnCreateCharacterClicked); } } public void InitScreen(List roleInfos, Action OnClickItemChar, Action onCreateCharacterComplete = null) { _onClickItemChar = OnClickItemChar; _onCreateCharacterComplete = onCreateCharacterComplete; // Clear existing items if (parentItems != null) { foreach (Transform child in parentItems) { Destroy(child.gameObject); } } // Create character items if (roleInfos != null) { foreach (RoleInfo info in roleInfos) { if (characterItemPrefab != null && parentItems != null) { CharacterItemUI item = Instantiate(characterItemPrefab, parentItems).GetComponent(); item.InitItem(info, OnClickItemChar); } } // If number of roles < 8, spawn addCharacterItemPrefab and hide createCharacterButton if (roleInfos.Count < 8) { // Hide the createCharacterButton if (createCharacterButton != null) { createCharacterButton.gameObject.SetActive(false); } // Spawn addCharacterItemPrefab if (addCharacterItemPrefab != null && parentItems != null) { GameObject addCharacterItem = Instantiate(addCharacterItemPrefab, parentItems); // Set up click handler for the add character item Button addButton = addCharacterItem.GetComponent