using UnityEngine;

namespace Wizard.Battle.Player.ClassCharacter;

internal class PlayerSpineClassCharacter : SpineClassCharacter
{
	protected readonly Vector3 WIDGET_POSITION = new Vector3(0f, -460f, 30f);

	protected readonly int WIDGET_OFFSET_BOTTOM = 71;

	protected readonly int WIDGET_OFFSET_TOP = 171;

	protected readonly Vector3 PP_PANEL_POSITION = new Vector3(0f, -34.22f, -29.25f);

	protected override Vector3 MessagePosition => UIManager.GetInstance().getCamera().ScreenToWorldPoint(new Vector3((float)Screen.width * ScreenWidthFraction, (float)Screen.height * ScreenHeightFraction, 0f));

	protected override string GetTagName()
	{
		return "Player";
	}

	protected override void SetUpAnchor(GameObject o)
	{
		o.transform.localPosition = WIDGET_POSITION;
		UIWidget uIWidget = o.AddComponent<UIWidget>();
		uIWidget.bottomAnchor.relative = 0f;
		uIWidget.bottomAnchor.absolute = WIDGET_OFFSET_BOTTOM;
		Transform transform = BattleManagerBase.GetIns().Battle3DContainer.transform;
		uIWidget.bottomAnchor.target = transform;
		uIWidget.topAnchor.target = transform;
		uIWidget.topAnchor.relative = 0f;
		uIWidget.topAnchor.absolute = WIDGET_OFFSET_TOP;
	}

	protected override void AttachOtherUI(GameObject o)
	{
		BattleManagerBase.GetIns().BattlePlayer.BattleView.EpPanel.transform.parent = o.transform;
	}

	public override void PlayMotion(ClassCharaPrm.MotionType motionType)
	{
		base.PlayMotion(motionType);
		if (_isNoEvolveShift && motionType == ClassCharaPrm.MotionType.extra)
		{
			BattleCoroutine.GetInstance().StartCoroutine(WaitReturnOnAnimation());
		}
	}

	public override Vector3 GetSpinePosition()
	{
		return new Vector3(0f, -0.02f, -0.17f);
	}

	protected override string GetTextureName()
	{
		return "mt_Encampment_Chara_1";
	}

	public override Vector3 GetMaskImagePosition()
	{
		return new Vector3(0f, 0.12f, 0f);
	}

	protected override Vector3 GetShieldPosition()
	{
		return new Vector3(2f, 1.7f, 0f);
	}

	protected override Vector3 GetLifeIconPosition()
	{
		return new Vector3(0f, 0f, 0.1f);
	}

	public override Quaternion GetMaskImageRotation()
	{
		return Quaternion.identity;
	}

	public override Vector3 ConvertSpineScale(Vector3 originalScale)
	{
		return originalScale * 1.003125f;
	}

	public override int GetSpineSortingOrder(bool isBack = false)
	{
		return -2;
	}

	public override int GetMaskSortingOrder(bool isBack = false)
	{
		return -2;
	}

	protected override int GetEmoteLabelDepth()
	{
		return 42;
	}

	protected override int GetCharaId()
	{
		return GameMgr.GetIns().GetDataMgr().GetPlayerCharaId();
	}

	public override int GetSkinId()
	{
		return GameMgr.GetIns().GetDataMgr().GetPlayerSkinId();
	}

	public override int GetStencil()
	{
		return 3;
	}

	protected override Vector3 GetPosition()
	{
		return Global.CLASS_BATTLE_POSITION_PLAYER;
	}

	protected override Quaternion ConvertBackPanelRotation(Quaternion originalRotation)
	{
		return originalRotation;
	}
}
