/// <summary>
    /// Gets the list of effects triggered by the given event
    /// </summary>
    /// <param name="trigger">Event to check</param>
    public List <SkillPartBase> GetTriggeredEffects(EffectTriggers trigger)
    {
        List <SkillPartBase> list = new List <SkillPartBase>();

        for (int i = 0; i < temporaryEffectList.Count; i++)
        {
            if (temporaryEffectList[i].First.trigger == trigger)
            {
                //If it has not reached its limit of activations per battle
                if (temporaryEffectList[i].Second.Activatable())
                {
                    temporaryEffectList[i].Second.Activated();
                    foreach (SkillPartBase effect in temporaryEffectList[i].First.effects)
                    {
                        list.Add(effect);
                    }
                    //If it has reached its limit of activations per battle, remove it
                    if (temporaryEffectList[i].Second.OutOfUses())
                    {
                        temporaryEffectList.RemoveAt(i);
                        i--;
                    }
                }
            }
        }
        return(list);
    }
Exemple #2
0
 public TriggeredEffect(EffectTriggers trigger, SkillPartBase effect = null)
 {
     this.trigger = trigger;
     if (effect != null)
     {
         AddEffect(effect);
     }
 }
    public void InvokeEffect(TEffectDictionaries dictEnum, EffectTriggers trigger, Player p1 = null, Player p2 = null, CreatureLogic card1 = null, CardLogic card2 = null)
    {
        Dictionary <EffectTriggers, List <Effect> > dict = GetDict(dictEnum);

        foreach (Effect e in dict[trigger])
        {
            e.InvokeEffect(p1, p2, card1, card2);
        }
    }
    public void RemoveEffects(TEffectDictionaries dictEnum, EffectTriggers trigger, List <Effect> effects)
    {
        Dictionary <EffectTriggers, List <Effect> > dict = GetDict(dictEnum);

        if (dict.ContainsKey(trigger))
        {
            dict[trigger] = dict[trigger].Except(effects).ToList();
        }
    }
    public void AddEffects(TEffectDictionaries dictEnum, EffectTriggers trigger, List <Effect> effects)
    {
        Dictionary <EffectTriggers, List <Effect> > dict = GetDict(dictEnum);

        if (dict.ContainsKey(trigger))
        {
            dict[trigger].AddRange(effects);
        }
        else
        {
            dict[trigger] = effects;
        }
    }