﻿using System;
using UnityEngine;
using UnityEngine.UI;

namespace AsmodeeDigital.PlayReal.Samples.UI.LobbyPlayers
{
    /// <summary>
    /// Chat frame
    /// </summary>
    public class ChatItem : MonoBehaviour
    {
        /// <summary>
        /// UI references of ChatItem
        /// </summary>
        [Serializable]
        public class UI
        {
            public Text PlayerName;
            public Text DateTime;
            public Text Text;
        }

        public Color OtherPlayerColor;
        public Color CurrentPlayerColor;
        public Color CensureColor;

        /// <summary>
        /// UI instance
        /// </summary>
        public UI ui;

        public void Init(ChatEntry chatEntry, Transform parent)
        {
            ui.PlayerName.text = chatEntry.PlayerName;

            if (chatEntry.ShowDate)
                ui.DateTime.text = chatEntry.DateTime.ToString("dd-MM HH:mm");
            else
                ui.DateTime.text = chatEntry.DateTime.ToString("HH:mm");

            ui.Text.text = chatEntry.Text;

            transform.SetParent(parent);
            transform.localScale = Vector3.one;
            transform.localPosition = Vector3.zero;

            if(chatEntry.IsCensored)
            {
                ui.PlayerName.color = CensureColor;
                ui.DateTime.gameObject.SetActive(false);
                ui.Text.fontStyle = FontStyle.Italic;
                ui.Text.color = CensureColor;
            }
            else if (chatEntry.IsLocalPlayer)
            {
                ui.PlayerName.color = CurrentPlayerColor;
                ui.PlayerName.text = "You";
            }
            else
            {
                ui.PlayerName.color = OtherPlayerColor;
            }
        }
    }
}
