/// <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); }
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; } }