Example #1
0
    void DoCardTrick()
    {
        currentCardOwner.Animator.SetTrigger("Casting");

        for (int i = 0; i < currentSelectedCard.card.abilityStepsWithTargetingData.Length; i++)
        {
            if (currentSelectedCard.card.abilityStepsWithTargetingData[i].abilityStep is AbilityStep_Drain)
            {
                AbilityStep_Drain card = currentSelectedCard.card.abilityStepsWithTargetingData[i].abilityStep as AbilityStep_Drain;

                if (i != 0)
                {
                    card.OnPlay(targetsPerAbilityStep[i], currentSelectedCard.card.onPlayResults[i - i]);
                }
            }
            else
            {
                AbilityStep_Base card = currentSelectedCard.card.abilityStepsWithTargetingData[i].abilityStep;

                currentSelectedCard.card.onPlayResults[i] = card.OnPlay(targetsPerAbilityStep[i], currentCardOwner);
            }
        }

        FindObjectOfType <AudioManager>().PlayRandomClip(currentSelectedCard.card.soundForPlay);

        currentCardOwner.ModifyMana(-currentSelectedCard.card.manaCost);
        currentCardOwner.DropCard(currentSelectedCard, stayUp);

        infoText.text = "";
    }
Example #2
0
    public void ChooseNextAbility()
    {
        nextAbilityImage.gameObject.SetActive(true);

        int totalChance = 0;

        foreach (var a in abilities)
        {
            totalChance += a.chance;
        }

        int randomIndex = Random.Range(0, totalChance);

        int anotherChance = -1;

        foreach (var a in abilities)
        {
            anotherChance += a.chance;
            if (anotherChance >= randomIndex)
            {
                nextAbility = a.ability;
                break;
            }
        }

        EnemyAbilityScriptableObject nextAbilityTargetable = nextAbility;

        if (nextAbilityTargetable.type == EnemyAbilityScriptableObject.Type.Offensive)
        {
            nextAbilityImage.sprite = damagingAbilitySprite;
            AbilityStep_Base att = nextAbilityTargetable.abilityStepsWithTargetingData[0].abilityStep;
            nextAbilityDamage.text = ((AbilityStep_Targetable)att).amount.ToString();
        }
        else if (nextAbilityTargetable.type == EnemyAbilityScriptableObject.Type.Blocking)
        {
            nextAbilityImage.sprite = blockingAbilitySprite;
            nextAbilityDamage.text  = "";
        }
        else if (nextAbilityTargetable.type == EnemyAbilityScriptableObject.Type.Healing)
        {
            nextAbilityImage.sprite = healingAbilitySprite;
            nextAbilityDamage.text  = "";
        }
        else if (nextAbilityTargetable.type == EnemyAbilityScriptableObject.Type.Buffing)
        {
            nextAbilityImage.sprite = buffingAbilitySprite;
            nextAbilityDamage.text  = "";
        }
    }
Example #3
0
    void DoCardTrick()
    {
        for (int i = 0; i < currentSelectedCard.card.abilityStepsWithTargetingData.Length; i++)
        {
            if (currentSelectedCard.card.abilityStepsWithTargetingData[i].abilityStep is AbilityStep_Drain)
            {
                AbilityStep_Drain card = currentSelectedCard.card.abilityStepsWithTargetingData[i].abilityStep as AbilityStep_Drain;

                if (i != 0)
                {
                    card.OnPlay(targetsPerAbilityStep[i], currentSelectedCard.card.onPlayResults[i - i]);
                }
            }
            else
            {
                AbilityStep_Base card = currentSelectedCard.card.abilityStepsWithTargetingData[i].abilityStep;

                currentSelectedCard.card.onPlayResults[i] = card.OnPlay(targetsPerAbilityStep[i]);
            }
        }

        FindObjectOfType <AudioManager>().PlayAudioDeath(currentSelectedCard.card.soundForPlay);

        currentCardOwner.ModifyMana(-currentSelectedCard.card.manaCost);
        currentCardOwner.DropCard(currentSelectedCard, stayUp);

        infoText.text = "";

        if (!currentSelectedCard.ethereal)
        {
            foreach (var ally in GetAllRelativeAllies(currentCardOwner, false))
            {
                Player a = (Player)ally;
                a.DrawRandomCard(1, false);
            }
        }

        HideTargettingButtons();
    }