using System;
using Cute;
using UnityEngine;
using Wizard;
using Wizard.RoomMatch;

public class TopBar : MonoBehaviour
{

	[SerializeField]
	public GameObject TitleObject;

	[SerializeField]
	public GameObject NameWindowObject;

	[SerializeField]
	public UIButton BuyCrystalButton;

	[SerializeField]
	public UILabel NameLabel;

	[SerializeField]
	public UIButton BackButton;

	[SerializeField]
	private UILabelGradientOverwriter _backLabelGradientOverwriter;

	[SerializeField]
	private UILabel BackButtonTitleLabel;

	[SerializeField]
	private UISprite _backButtonTitleLabelBG;

	private Vector3 _firstPositionBack;

	private Vector3 _firstPositionTitle;

	private Vector3 _firstPositionName;

	private bool _isWideMode;

	public void SetBackButtonEnable(bool enable)
	{
		// Pre-Phase-5b: also flipped GameMgr's InputMgr back-key flag. Headless has no
		// InputMgr; the button toggle below is the only observable effect.
		BackButton.enabled = enable;
		UIManager.SetObjectToGrey(BackButton.gameObject, !enable);
	}

	private void Awake()
	{
		TitleObject.SetActive(value: true);
		NameWindowObject.SetActive(value: false);
		_firstPositionBack = BackButton.transform.localPosition;
		_firstPositionTitle = TitleObject.transform.localPosition;
		_firstPositionName = NameWindowObject.transform.localPosition;
	}

	public void SetTitleLabel(string text, bool isWideMode)
	{
		_isWideMode = isWideMode;
		SetTitleLabel(text);
	}

	public void SetTitleLabel(string text)
	{
		if (string.IsNullOrEmpty(text))
		{
			return;
		}
		int length = text.Length;
		int num = 16;
		int num2 = 15;
		if (CustomPreference.GetTextLanguage() == Global.LANG_TYPE.Jpn.ToString() || CustomPreference.GetTextLanguage() == Global.LANG_TYPE.Cht.ToString() || CustomPreference.GetTextLanguage() == Global.LANG_TYPE.Chs.ToString() || CustomPreference.GetTextLanguage() == Global.LANG_TYPE.Kor.ToString())
		{
			num = 9;
			num2 = 30;
		}
		int num3 = 294;
		int num4 = (_isWideMode ? 543 : 504);
		if (length > num)
		{
			int num5 = length - num;
			num3 += num5 * num2;
			if (num3 > num4)
			{
				num3 = num4;
			}
		}
		BackButtonTitleLabel.width = num3 + -30;
		_backButtonTitleLabelBG.width = num3;
		BackButtonTitleLabel.text = text;
	}

	public void SetTitleLabelWidth(int width)
	{
		BackButtonTitleLabel.width = width + -30;
		_backButtonTitleLabelBG.width = width;
	}

	public void OverwriteBackLabelColors(eColorCodeId gradientTopColorId, eColorCodeId gradientBottomColorId)
	{
		OverwriteBackLabelGradient(gradientTopColorId, gradientBottomColorId);
	}

	private void OverwriteBackLabelGradient(eColorCodeId topColorId, eColorCodeId bottomColorId)
	{
		_backLabelGradientOverwriter.enabled = true;
		_backLabelGradientOverwriter.GradientTopColorId = topColorId;
		_backLabelGradientOverwriter.GradientBottomColorId = bottomColorId;
	}
}
