|
|
|
|
using TMPro;
|
|
|
|
|
using UnityEngine;
|
|
|
|
|
using UnityEngine.UI;
|
|
|
|
|
|
|
|
|
|
namespace Networking.UI {
|
|
|
|
|
public class PlayerSlotItem : MonoBehaviour {
|
|
|
|
|
|
|
|
|
|
public TextMeshProUGUI nameText;
|
|
|
|
|
|
|
|
|
|
public Sprite readySprite;
|
|
|
|
|
public Sprite notReadySprite;
|
|
|
|
|
public Image readyButtonImage;
|
|
|
|
|
|
|
|
|
|
public Button leaveButton;
|
|
|
|
|
public Button readyButton;
|
|
|
|
|
public Button promoteButton;
|
|
|
|
|
|
|
|
|
|
public Image colorImage;
|
|
|
|
|
|
|
|
|
|
public bool IsReady { get; set; }
|
|
|
|
|
|
|
|
|
|
public int ClientId { get; set; }
|
|
|
|
|
|
|
|
|
|
public bool IsLeader { get; set; }
|
|
|
|
|
|
|
|
|
|
public int ColorId { get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public void OnLeaveButtonClicked() {
|
|
|
|
|
if (ClientId.Equals(Client.Instance.Id))
|
|
|
|
|
RoomSend.Leave();
|
|
|
|
|
else
|
|
|
|
|
RoomSend.Kick(ClientId);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public void OnReadyButtonClicked() {
|
|
|
|
|
RoomSend.Ready(!IsReady);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public void OnPromoteButtonClicked() {
|
|
|
|
|
RoomSend.Leader(ClientId);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public void UpdateUI(int leaderId) {
|
|
|
|
|
int myClientId = Client.Instance.Id;
|
|
|
|
|
readyButtonImage.sprite = IsReady ? readySprite : notReadySprite;
|
|
|
|
|
readyButton.interactable = ClientId.Equals(myClientId);
|
|
|
|
|
promoteButton.interactable = leaderId.Equals(myClientId);
|
|
|
|
|
promoteButton.gameObject.SetActive(!ClientId.Equals(leaderId));
|
|
|
|
|
leaveButton.interactable = ClientId.Equals(myClientId) || leaderId.Equals(myClientId);
|
|
|
|
|
colorImage.color = Client.Instance.ColorFromId(ColorId);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|