| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- using UnityEngine;
- using UnityEngine.UI;
- using TMPro;
- public class RecruitDialogueUI : MonoBehaviour
- {
- public static RecruitDialogueUI Instance;
- public GameObject panel;
- public TextMeshProUGUI messageText;
- public Button yesButton;
- public Button noButton;
- private RecruitableCharacter currentRecruit;
- private void Awake()
- {
- Instance = this;
- panel.SetActive(false); // Panel caché au démarrage
- }
- public void ShowRecruitDialog(RecruitableCharacter recruit)
- {
- currentRecruit = recruit;
- messageText.text = "Bonjour, puis-je me joindre à vous ?";
- panel.SetActive(true);
- yesButton.onClick.RemoveAllListeners();
- noButton.onClick.RemoveAllListeners();
- yesButton.onClick.AddListener(() =>
- {
- AddToParty(currentRecruit);
- panel.SetActive(false);
- Destroy(currentRecruit.gameObject);
- });
- noButton.onClick.AddListener(() =>
- {
- panel.SetActive(false);
- });
- }
- public void Hide()
- {
- panel.SetActive(false);
- }
- void AddToParty(RecruitableCharacter recruit)
- {
- if (FindObjectOfType<TeamCohesionManager>().groupMembers.Count >= 5)
- {
- return;
- }
- var newChar = recruit.GenerateCharacter();
- TeamCohesionManager team = FindObjectOfType<TeamCohesionManager>();
- var existing = team.groupMembers;
- for (int y = 0; y < 5; y++)
- {
- for (int x = 0; x < 5; x++)
- {
- bool used = existing.Exists(c => c.gridX == x && c.gridY == y);
- if (!used)
- {
- newChar.gridX = x;
- newChar.gridY = y;
- team.groupMembers.Add(newChar);
- PositionGridManager grid = FindObjectOfType<PositionGridManager>();
- if (grid != null)
- {
- grid.AddCharacter(newChar);
- }
- PartyUIManager ui = FindObjectOfType<PartyUIManager>();
- ui.DisplayPartyUI();
- return;
- }
- }
- }
- }
- }
|