Ejemplo n.º 1
0
 public Card(int id, Element type, CardAbility abilities, params Cost[] costs)
 {
     CardId    = id;
     EType     = type;
     Abilities = abilities;
     Costs     = costs.ToList();
 }
Ejemplo n.º 2
0
 public static void ResolveCardAbility(CardAbility cardAbility)
 {
     if (CardAbilityResolved != null)
     {
         CardAbilityResolved(cardAbility);
     }
 }
Ejemplo n.º 3
0
 public static void AddCardAbility(CardAbility cardAbility, bool andActivate = false)
 {
     AbilitiesPending.Add(cardAbility);
     if (andActivate)
     {
         ActivateNextAbility();
     }
 }
Ejemplo n.º 4
0
 public void Activate()
 {
     for (int i = 0; i < cardAbilities.Count; i++)
     {
         CardAbility ability = cardAbilities [i];
         ability.Activate();
     }
 }
Ejemplo n.º 5
0
 void Start()
 {
     for (int i = 0; i < abilityGOs.Count; i++)
     {
         CardAbility ability = abilityGOs [i].GetComponent <CardAbility>();
         cardAbilities.Add(ability);
     }
 }
Ejemplo n.º 6
0
 public static void ActivateNextAbility()
 {
     if (AbilitiesPending.Count < 1)
     {
         DoneResolvingAbilities();
         return;
     }
     AbilityCurrentBeingResolved = AbilitiesPending[0];
     AbilityCurrentBeingResolved.ActivateAbility();
     //ResolveAbility(AbilitiesPending[0]);
 }
Ejemplo n.º 7
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;
 }
Ejemplo n.º 8
0
 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);
     }
 }
Ejemplo n.º 9
0
    public void OnValidate()
    {
        _nameText.text = Name;
        _costText.text = $"{Cost}";

        CardAbility ability = GetComponent <CardAbility>();

        if (ability)
        {
            _cardAbility     = ability;
            ability.CardBase = this;
        }
    }
Ejemplo n.º 10
0
    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));
    }
Ejemplo n.º 11
0
    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);
    }
Ejemplo n.º 12
0
 static void AbilityResolved(CardAbility cardAbility)
 {
     AbilitiesPending.Remove(cardAbility);
     ActivateNextAbility();
 }
Ejemplo n.º 13
0
 private void Execute(Transform target, CardAbility ability)
 {
     Debug.Log($"Target {target.name} got hit by {ability.name} for {ability.HealthChange} healing points.");
 }
Ejemplo n.º 14
0
 public void SetAbility(CardObject parent, CardAbility ability)
 {
     _parent = parent;
     SetAbility(_parent._gameManager, ability);
 }
Ejemplo n.º 15
0
 public void Add(CardAbility ability)
 {
     ability.SetOwner(_card);
     _active.Add(ability);
 }