using UnityEngine;
using UnityEngine.UI;
using UnityEngine.EventSystems;
using System.Collections;
///
/// MinimapExpandController — Tap the minimap to expand it to a full-screen map view.
/// Tap again or press the close button to return to mini view.
/// Attach to the minimap RawImage UI element.
///
/// In expanded mode:
/// - Camera zooms out to show entire play area
/// - Map stops rotating (north-up for readability)
/// - Semi-transparent overlay dims the game behind
/// - Close button appears in the corner
///
[RequireComponent(typeof(RawImage))]
public class MinimapExpandController : MonoBehaviour, IPointerClickHandler
{
[Header("Expand Settings")]
[SerializeField] private float expandedZoom = 200f; // Camera ortho size when expanded
[SerializeField] private float expandDuration = 0.25f; // Animation duration
[SerializeField] private float overlayAlpha = 0.6f; // Background dim overlay
[Header("Expanded Size (screen fraction)")]
[SerializeField] private float expandedScreenFraction = 0.85f; // 85% of screen
[Header("Close Button")]
[SerializeField] private Sprite closeButtonSprite; // Optional: custom close icon
[SerializeField] private float closeButtonSize = 50f;
// ─── Runtime ─────────────────────────────────────────────
private RectTransform _rectTransform;
private MinimapManager _minimapManager;
private Camera _minimapCam;
// Saved mini-view state
private Vector2 _miniAnchorMin;
private Vector2 _miniAnchorMax;
private Vector2 _miniOffsetMin;
private Vector2 _miniOffsetMax;
private Vector2 _miniPivot;
private Vector2 _miniSizeDelta;
private Vector3 _miniAnchoredPos;
private float _miniZoom;
private bool _miniRotateWithPlayer;
private Vector3 _miniCameraOffset;
// Expanded state
private bool _isExpanded = false;
private bool _isAnimating = false;
private GameObject _overlay;
private GameObject _closeButton;
private Canvas _parentCanvas;
// ─── Lifecycle ───────────────────────────────────────────
private void Start()
{
_rectTransform = GetComponent();
_parentCanvas = GetComponentInParent