public void RemoveModifier(string name) { foreach (int k in Modifiers.Keys) { int i = 0; while (i < Modifiers[k].Count) { IStatModifier mod = Modifiers[k][i]; if (mod.Name == name) { Modifiers[k].RemoveAt(i); continue; // don't increment i } i++; } } // now do cleanup: if any modifier list is empty, remove it and its priority int o = 0; while (o < Modifiers.Keys.Count) { int k = Modifiers.Keys.ElementAt(o); if (Modifiers[k].Count <= 0) { Modifiers.Remove(k); OrderedModifierKeys.Remove(k); continue; // don't increment o } o++; } }
public void AddModifier(IStatModifier mod) { int priority = mod.Priority; if (!OrderedModifierKeys.Contains(priority)) { // if this priority doesn't exist yet, create it // we must add the new key in order of highest to lowest int i = 0; while (i < OrderedModifierKeys.Count) { if (OrderedModifierKeys[i] < priority) { OrderedModifierKeys.Insert(i, priority); break; } i++; } if (i >= OrderedModifierKeys.Count) { OrderedModifierKeys.Add(priority); } Modifiers.Add(priority, new List <IStatModifier>() { mod }); } else { // if priority already exists, just add it to the existing list Modifiers[priority].Add(mod); } }
public Item(Guid id, IItemInfo info, IStatModifier modifier, ItemQualityCode quality, int count) { this.ID = id; this.Count = count; this.Info = info; this.Modifier = modifier; this.Quality = quality; }
private bool IsAdditionModifier(IStatModifier modifier) { // TODO: Actually implement this. if (modifier.Id % 2 == 0) { return(true); } return(false); }
public void AddModifier(Stat stat, IStatModifier modifier) { _stats[(int)stat].AddModifier(modifier); int value = 0; modifier.ApplyModification(ref value); _statBuffEvent.TriggerEvent(gameObject.GetInstanceID(), new StatBuffDetails(value, stat, _stats[(int)stat].BuffedValue)); }
public void RemoveModifier(IStatModifier modifier) { if (this.IsAdditionModifier(modifier)) { this.AdditionModifiers.Remove(modifier); } else { this.MultiplyModifiers.Remove(modifier); } }
public void AddStatMod(IStatModifier modifier) { foreach (StatModifier mod in modifier.StatModifiers) { foreach (KeyValuePair <Stat, StatData> stat in Stats) { if (mod.StatType == stat.Key) { stat.Value.AddModifier(mod); } } } }
public void AddModifier(IStatModifier modifier) { if (this.IsAdditionModifier(modifier)) { if (this.AdditionModifiers.Contains(modifier)) { this.RemoveModifier(modifier); } this.AdditionModifiers.Add(modifier); } else { if (this.MultiplyModifiers.Contains(modifier)) { this.RemoveModifier(modifier); } this.MultiplyModifiers.Add(modifier); } }
public Effect(IEffectInfo info, IStatModifier modifier, float duration) { this.Info = info; this.Modifier = new StatModifier(); this.Duration = duration; }
public bool Equals(IStatModifier other) { return(this.Id.Equals(other.Id)); }
public int CompareTo(IStatModifier other) { return(this.Id.CompareTo(other.Id)); }
public int Compare(IStatModifier <T> x, IStatModifier <T> y) { return(x.Order.CompareTo(y.Order)); }
public void RemoveModifier(Stat stat, IStatModifier modifier) { _stats[(int)stat].RemoveModifier(modifier); _statBuffEvent.TriggerEvent(gameObject.GetInstanceID(), new StatBuffDetails(0, stat, _stats[(int)stat].BuffedValue)); }
public void RemoveModifier(IStatModifier modifier) { _modifiers.Remove(modifier); }
public void AddModifier(IStatModifier modifier) { _modifiers.Add(modifier); }