Esempio n. 1
0
    // View Logic
    #region
    public Action FadeOutStateCard(StateCardRewardOverlay stateCard)
    {
        Action action = new Action();

        StartCoroutine(FadeOutStateCardCoroutine(stateCard, action));
        return(action);
    }
Esempio n. 2
0
    private IEnumerator FadeOutStateCardCoroutine(StateCardRewardOverlay stateCard, Action action)
    {
        // Start fade out
        while (stateCard.canvasGroup.alpha > 0)
        {
            stateCard.canvasGroup.alpha -= afflictionCardFadeOutSpeed * Time.deltaTime;
            yield return(new WaitForEndOfFrame());
        }

        // Resolve
        action.actionResolved = true;
    }
Esempio n. 3
0
    private IEnumerator CreateAfflictionCardRemovedEffect(StateDataSO stateData, Action action)
    {
        // Create Card object
        GameObject             newStateCardGO = Instantiate(stateCardEffectPrefab, cardParent);
        StateCardRewardOverlay newStateCard   = newStateCardGO.GetComponent <StateCardRewardOverlay>();

        // Set up card properties
        BuildStateCardRewardOverlayFromData(stateData, newStateCard);

        // Scale down card
        SetParentScale(newStateCard.stateCardScaleParent, new Vector3(0.005f, 0.005f, 0.005f));

        // Insert Delay, break up multiple simoltaenous reveals
        yield return(new WaitForSeconds(CalculateCardRevealDelay()));

        // Get next available slot position
        CardRewardScreenSlot mySlot = GetNextAvailableSlotPosition();

        // dont proceed unless a slot is available
        if (mySlot == null)
        {
            action.actionResolved = true;
            yield break;
        }

        // Move to starting slot position
        newStateCard.masterLocationParent.position = mySlot.parentTransform.position;

        // Start scaling card back to normal size
        Action scaleEffect = ScaleUpCard(newStateCard.stateCardScaleParent, 1);

        yield return(new WaitUntil(() => scaleEffect.actionResolved == true));

        // Brief pause, so player can read the card
        yield return(new WaitForSeconds(0.5f));

        // Free up slot
        mySlot.occupied = false;

        // Start Card Fade out
        FadeOutStateCard(newStateCard);

        // Start card burn VFX
        newStateCard.fireDestroyParticleEffectParent.SetActive(true);

        // Destroy
        Destroy(newStateCard, 2);

        // Resolve
        action.actionResolved = true;
    }
Esempio n. 4
0
 public void BuildStateCardRewardOverlayFromData(StateDataSO data, StateCardRewardOverlay card)
 {
     card.stateCard.BuildFromStateData(data);
 }
Esempio n. 5
0
    private IEnumerator CreateStateCardRewardEffectCoroutine(StateDataSO stateData, Action action)
    {
        // Create Card object
        GameObject             newStateCardGO = Instantiate(stateCardEffectPrefab, cardParent);
        StateCardRewardOverlay newStateCard   = newStateCardGO.GetComponent <StateCardRewardOverlay>();

        // Set up card properties
        BuildStateCardRewardOverlayFromData(stateData, newStateCard);

        // Scale down card
        SetParentScale(newStateCard.stateCardScaleParent, new Vector3(0.005f, 0.005f, 0.005f));

        // Insert Delay, break up multiple simoltaenous reveals
        yield return(new WaitForSeconds(CalculateCardRevealDelay()));

        // Get next available slot position
        CardRewardScreenSlot mySlot = GetNextAvailableSlotPosition();

        // dont proceed unless a slot is available
        if (mySlot == null)
        {
            action.actionResolved = true;
            yield break;
        }

        // Move to starting slot position
        newStateCard.masterLocationParent.position = mySlot.parentTransform.position;

        // Start scaling card back to normal size
        Action scaleEffect = ScaleUpCard(newStateCard.stateCardScaleParent, 1);

        yield return(new WaitUntil(() => scaleEffect.actionResolved == true));

        // Brief pause, so player can read the card
        yield return(new WaitForSeconds(1));

        // Free up slot
        mySlot.occupied = false;

        // Start scaling card back down
        ScaleDownCard(newStateCard.stateCardScaleParent, 0.01f);

        // Start card rotation towards destination
        RotateCardZAxis(newStateCard.stateCardScaleParent, 45);

        // Enable Sparkle Effect
        newStateCard.sparkleParticleEffectParent.SetActive(true);

        // Move character panel button position
        Action moveEffect = MoveCardToDestination(newStateCard.masterLocationParent, statePanelEndPosition.position);

        yield return(new WaitUntil(() => moveEffect.actionResolved == true));

        // Create mini explosion on char roster button
        GameObject newPE = Instantiate(lootExplosionEffectPrefab, cardParent);

        newPE.transform.position = statePanelEndPosition.position;

        // Destroy item card
        Destroy(newStateCardGO);

        // Resolve
        action.actionResolved = true;

        yield return(null);

        action.actionResolved = true;
    }