public Card(int id, Element type, CardAbility abilities, params Cost[] costs) { CardId = id; EType = type; Abilities = abilities; Costs = costs.ToList(); }
public static void ResolveCardAbility(CardAbility cardAbility) { if (CardAbilityResolved != null) { CardAbilityResolved(cardAbility); } }
public static void AddCardAbility(CardAbility cardAbility, bool andActivate = false) { AbilitiesPending.Add(cardAbility); if (andActivate) { ActivateNextAbility(); } }
public void Activate() { for (int i = 0; i < cardAbilities.Count; i++) { CardAbility ability = cardAbilities [i]; ability.Activate(); } }
void Start() { for (int i = 0; i < abilityGOs.Count; i++) { CardAbility ability = abilityGOs [i].GetComponent <CardAbility>(); cardAbilities.Add(ability); } }
public static void ActivateNextAbility() { if (AbilitiesPending.Count < 1) { DoneResolvingAbilities(); return; } AbilityCurrentBeingResolved = AbilitiesPending[0]; AbilityCurrentBeingResolved.ActivateAbility(); //ResolveAbility(AbilitiesPending[0]); }
public void CopyFromSource() { //Type = Source.Type; Description = Source.Description; Mana = Source.Mana; //Attack = Source.Attack; //Health = Source.Health; Ability = Source.Ability; CardImage = Source.CardImage; UV = Source.UV; }
public void SetAbility(GameManager gameManager, CardAbility ability) { _gameManager = gameManager; _ability = ability; _requirementSlots = new List <DiceSlotObject>(); for (int i = 0; i < _ability._conditions.Count; i++) { DiceSlotObject diceSlot = Instantiate(_gameManager._prefabDiceSlot, _requirementsObject.transform); diceSlot.UpdateUi(_ability._conditions[i]); _requirementSlots.Add(diceSlot); } }
public void OnValidate() { _nameText.text = Name; _costText.text = $"{Cost}"; CardAbility ability = GetComponent <CardAbility>(); if (ability) { _cardAbility = ability; ability.CardBase = this; } }
public CardData Copy() { List <CardAbility> abilities = new List <CardAbility>(); foreach (CardAbility ability in _baseAbilities) { abilities.Add(ability.Copy()); } CardAbility[] slotted = new CardAbility[_slottedAbilities.Length]; for (int i = 0; i < _slottedAbilities.Length; i++) { slotted[i] = _slottedAbilities[i]; } return(new CardData(_name, _allegiance, _baseInitiative, _baseHp, abilities, slotted)); }
public void SetupData(Card card) { playedSteps = new List <ICardAbilityStep>(); targetedSteps = new List <ICardAbilityStep>(); foreach (AbilityStep step in playedAbilitySteps) { CreateAbilityStep(step, playedSteps, card); } playedSteps.Add(new CardFinishedResolving(AbilityStep.CardFinishedResolving, card)); if (targetedAbilitySteps.Length > 0) { foreach (AbilityStep step in targetedAbilitySteps) { CreateAbilityStep(step, targetedSteps, card); } targetedSteps.Add(new CardFinishedResolving(AbilityStep.CardFinishedResolving, card)); } cardAbility = new CardAbility(playedSteps, targetedSteps); }
static void AbilityResolved(CardAbility cardAbility) { AbilitiesPending.Remove(cardAbility); ActivateNextAbility(); }
private void Execute(Transform target, CardAbility ability) { Debug.Log($"Target {target.name} got hit by {ability.name} for {ability.HealthChange} healing points."); }
public void SetAbility(CardObject parent, CardAbility ability) { _parent = parent; SetAbility(_parent._gameManager, ability); }
public void Add(CardAbility ability) { ability.SetOwner(_card); _active.Add(ability); }