diff --git a/Assets/00_scripts/Events/TurnScripts/Card.cs b/Assets/00_scripts/Events/TurnScripts/Card.cs index 19c00cc..31e0f9b 100644 --- a/Assets/00_scripts/Events/TurnScripts/Card.cs +++ b/Assets/00_scripts/Events/TurnScripts/Card.cs @@ -72,23 +72,17 @@ public class Card : MonoBehaviour private void OnMouseUp() { - if (!isCardDragAnimationPlayed) - reset_card_status(); - else - { - Sequence seq = DOTween.Sequence(); - seq.Join(transform.DOMove(cardTransformFromHand.POSITION, cardAnimationDuration)); - seq.Join(transform.DOScale(cardTransformFromHand.SCALE, cardAnimationDuration)); - seq.Join(transform.DORotateQuaternion(cardTransformFromHand.ROTATION, cardAnimationDuration)); - seq.onComplete = reset_card_status; - } - + Sequence seq = DOTween.Sequence(); + seq.Join(transform.DOMove(cardTransformFromHand.POSITION, cardAnimationDuration)); + seq.Join(transform.DOScale(cardTransformFromHand.SCALE, cardAnimationDuration)); + seq.Join(transform.DORotateQuaternion(cardTransformFromHand.ROTATION, cardAnimationDuration)); + seq.onComplete = reset_card_status; return; void reset_card_status() { cardState = CardHandleState.WAIT; - isCardDragAnimationPlayed = false; + // isCardDragAnimationPlayed = false; turnSingleton.SetCardManagerLockOneCardBeingUsed(false); // 解锁 if (turnSingleton.GetNeedDebugLog()) turnSingleton.PrintMsg("Card", instanceID.ToString(), "卡牌已返回手牌"); } @@ -97,27 +91,19 @@ public class Card : MonoBehaviour private void OnMouseDrag() { if (cardState != CardHandleState.DRAG) return; + if (!turnSingleton.CompareManagerState(TurnManager.TurnManagerStateEnum.STAY_SELF_TURN)) return; Vector3 mousePosition = mainCamera.ScreenToWorldPoint(Input.mousePosition); bool isInsideHandCardArea = areaCollider2D.OverlapPoint(mousePosition); if (isInsideHandCardArea) { - if (!isCardDragAnimationPlayed) return; - Sequence seq = DOTween.Sequence(); - seq.Join(transform.DOMove(cardTransformFromHand.POSITION, cardAnimationDuration)); - seq.Join(transform.DOScale(cardTransformFromHand.SCALE, cardAnimationDuration)); - seq.Join(transform.DORotateQuaternion(cardTransformFromHand.ROTATION, cardAnimationDuration)); - isCardDragAnimationPlayed = false; + transform.localScale = cardTransformFromHand.SCALE; + transform.rotation = cardTransformFromHand.ROTATION; + transform.position = cardTransformFromHand.POSITION; } else { - if (!isCardDragAnimationPlayed) - { - Sequence seq = DOTween.Sequence(); - seq.Join(transform.DOScale(cardTransformFromHand.SCALE / 3f, cardAnimationDuration)); - seq.Join(transform.DORotateQuaternion(Quaternion.identity, cardAnimationDuration)); - isCardDragAnimationPlayed = true; - } - + transform.localScale = cardTransformFromHand.SCALE / 3f; + transform.rotation = Quaternion.identity; mousePosition.z = 0f; transform.position = mousePosition; if (turnSingleton.GetNeedDebugLog()) turnSingleton.PrintMsg("Card", instanceID.ToString(), "卡牌正在被拖拽"); @@ -148,6 +134,7 @@ public class Card : MonoBehaviour UnSetAreaCollider2D(); transform.parent = dropCardChildContainer; transform.localPosition = Vector3.zero; + gameObject.SetActive(false); }); return seq; } diff --git a/Assets/00_scripts/Events/TurnScripts/TurnCardManager.cs b/Assets/00_scripts/Events/TurnScripts/TurnCardManager.cs index da956e6..e026be6 100644 --- a/Assets/00_scripts/Events/TurnScripts/TurnCardManager.cs +++ b/Assets/00_scripts/Events/TurnScripts/TurnCardManager.cs @@ -100,7 +100,6 @@ public class TurnCardManager : MonoBehaviour Transform card = dropCardContainer.GetChild(i); card.SetParent(cardDeckContainer); card.localPosition = Vector3.zero; - card.gameObject.SetActive(false); } } diff --git a/Assets/00_scripts/Events/TurnScripts/TurnManager.cs b/Assets/00_scripts/Events/TurnScripts/TurnManager.cs index 344ea0e..01de99d 100644 --- a/Assets/00_scripts/Events/TurnScripts/TurnManager.cs +++ b/Assets/00_scripts/Events/TurnScripts/TurnManager.cs @@ -50,7 +50,7 @@ public class TurnManager : MonoBehaviour enemyManager = GetComponent(); TurnManagerEvent.OnTurnManagerStaySelfTurn += TurnManagerStaySelfTurn; TurnManagerEvent.OnTurnManagerEndSelfTurn += TurnManagerEndSelfTurn; - TurnManagerEvent.OnTurnManagerEnterEnemyTurn += TurnManagerShuffleCard; // 弃牌以后判断是否需要洗牌再进入敌方回合 + TurnManagerEvent.OnTurnManagerEnterEnemyTurn += TurnManagerBeforeEndSelfTurn; // 弃牌以后判断是否需要洗牌再进入敌方回合 TurnManagerEvent.OnTurnManagerExitEnemyTurn += TurnManagerEndEnemyTurn; SetupTurnManager(); } @@ -143,7 +143,7 @@ public class TurnManager : MonoBehaviour TurnManagerEnterSelfTurn(cardPileList.Count == 0 ? 6 : 5); } - private void TurnManagerShuffleCard() + private void TurnManagerBeforeEndSelfTurn() { if (cardDeckList.Count != 0) {