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 = ""; }
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 = ""; } }
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(); }