Files
AppleHillsProduction/Assets/Scripts/CardSystem/StateMachine/States/CardDraggingState.cs

55 lines
1.9 KiB
C#
Raw Normal View History

2025-11-11 20:25:23 +01:00
using Core.SaveLoad;
using UnityEngine;
using Core;
2025-11-12 09:24:27 +01:00
using AppleHills.Core.Settings;
2025-11-11 20:25:23 +01:00
namespace UI.CardSystem.StateMachine.States
{
/// <summary>
2025-11-12 14:39:38 +01:00
/// Dragging state - provides visual feedback when card is being dragged.
/// The actual drag logic is handled by Card.cs (inherits from DraggableObject).
/// This state only manages visual scaling during drag.
2025-11-11 20:25:23 +01:00
/// </summary>
public class CardDraggingState : AppleState
{
private CardContext _context;
2025-11-12 09:24:27 +01:00
private ICardSystemSettings _settings;
2025-11-11 20:25:23 +01:00
private Vector3 _originalScale;
private void Awake()
{
_context = GetComponentInParent<CardContext>();
2025-11-12 09:24:27 +01:00
_settings = GameManager.GetSettingsObject<ICardSystemSettings>();
2025-11-11 20:25:23 +01:00
}
public override void OnEnterState()
{
2025-11-12 20:26:51 +01:00
// Ensure card front is visible and facing camera (in case we transitioned from an unexpected state)
if (_context.CardDisplay != null)
{
_context.CardDisplay.gameObject.SetActive(true);
_context.CardDisplay.transform.localRotation = Quaternion.Euler(0, 0, 0);
}
2025-11-12 14:39:38 +01:00
// Store original scale
2025-11-11 20:25:23 +01:00
_originalScale = _context.RootTransform.localScale;
// Scale up slightly during drag for visual feedback
2025-11-12 14:39:38 +01:00
// DraggableObject handles actual position updates
2025-11-12 09:24:27 +01:00
_context.RootTransform.localScale = _originalScale * _settings.DragScale;
2025-11-11 20:25:23 +01:00
2025-11-12 14:39:38 +01:00
Logging.Debug($"[CardDraggingState] Entered drag state for card: {_context.CardData?.Name}, scale: {_settings.DragScale}");
2025-11-11 20:25:23 +01:00
}
private void OnDisable()
{
// Restore original scale when exiting drag
if (_context?.RootTransform != null)
{
_context.RootTransform.localScale = _originalScale;
}
}
}
}