using UnityEngine;

namespace Wizard.Battle.Player.ClassCharacter;

public class Player3dClassCharacter : Class3dCharacterBase
{
	private readonly float ScreenWidthFraction = 0.5f;

	private readonly float ScreenHeightFraction = 0.05f;

	private readonly Vector3 WIDGET_POSITION = new Vector3(0f, -460f, 30f);

	private readonly int WIDGET_OFFSET_BOTTOM = 71;

	private readonly int WIDGET_OFFSET_TOP = 171;

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

	public Player3dClassCharacter(int classId)
	{
		_classCharacterId = classId;
		IsPlayer = true;
	}

	public void SetClassId(int id)
	{
		_classCharacterId = id;
	}

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

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

	protected override Vector3 GetPosition()
	{
		return Global.CLASS_BATTLE_POSITION_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 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;
	}
}
