Update init flow
This commit is contained in:
@@ -10,12 +10,13 @@ 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<RoleInfo> _onClickItemChar;
|
||||
private Action _onCreateCharacterComplete;
|
||||
private Action<RoleInfo> _onCreateCharacterComplete;
|
||||
|
||||
private void Start()
|
||||
{
|
||||
@@ -25,7 +26,7 @@ namespace BrewMonster.UI
|
||||
}
|
||||
}
|
||||
|
||||
public void InitScreen(List<RoleInfo> roleInfos, Action<RoleInfo> OnClickItemChar, Action onCreateCharacterComplete = null)
|
||||
public void InitScreen(List<RoleInfo> roleInfos, Action<RoleInfo> OnClickItemChar, Action<RoleInfo> onCreateCharacterComplete = null)
|
||||
{
|
||||
_onClickItemChar = OnClickItemChar;
|
||||
_onCreateCharacterComplete = onCreateCharacterComplete;
|
||||
@@ -50,6 +51,49 @@ namespace BrewMonster.UI
|
||||
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<Button>();
|
||||
if (addButton == null)
|
||||
{
|
||||
addButton = addCharacterItem.GetComponentInChildren<Button>();
|
||||
}
|
||||
if (addButton != null)
|
||||
{
|
||||
addButton.onClick.RemoveAllListeners();
|
||||
addButton.onClick.AddListener(OnCreateCharacterClicked);
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// Show the createCharacterButton if we have 8 or more roles
|
||||
if (createCharacterButton != null)
|
||||
{
|
||||
createCharacterButton.gameObject.SetActive(true);
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// If roleInfos is null, show createCharacterButton
|
||||
if (createCharacterButton != null)
|
||||
{
|
||||
createCharacterButton.gameObject.SetActive(true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -70,7 +114,7 @@ namespace BrewMonster.UI
|
||||
}
|
||||
|
||||
gameObject.SetActive(true);
|
||||
_onCreateCharacterComplete?.Invoke();
|
||||
_onCreateCharacterComplete?.Invoke(newRole);
|
||||
}
|
||||
|
||||
private void OnCreateCharacterCancel()
|
||||
|
||||
Reference in New Issue
Block a user