public void Clear() { ResourcesChangedEventArgs e = ResourcesChangedEventArgs.FromKeyCollection(dictionary.Keys.ToArray()); dictionary.Clear(); ResourcesChanged.Raise(this, e); }
public bool Remove(object key) { if (dictionary.Remove(key)) { ResourcesChanged.Raise(this, ResourcesChangedEventArgs.FromKey(key)); return(true); } return(false); }
private void OnMergedDictionariesCollectionChanged(object sender, NotifyCollectionChangedEventArgs e) { foreach (ResourceDictionary dictionary in e.OldItems) { dictionary.ResourcesChanged -= OnMergeDictionaryResourcesChanged; } foreach (ResourceDictionary dictionary in e.NewItems) { dictionary.ResourcesChanged += OnMergeDictionaryResourcesChanged; } if (e.Action != NotifyCollectionChangedAction.Move) { IEnumerable <object> keys = e.OldItems.Concat(e.NewItems).Cast <ResourceDictionary>().SelectMany(GetMergedDictionariesKeys); ResourcesChanged.Raise(this, ResourcesChangedEventArgs.FromKeyCollection(keys)); } }
public Styles() { ResetBehavior = ResetBehavior.Remove; this.ForEachItem( x => { if (x.ResourceParent == null && x is ISetStyleParent setParent) { setParent.SetParent(this); setParent.NotifyResourcesChanged(new ResourcesChangedEventArgs()); } if (x.HasResources) { ResourcesChanged?.Invoke(this, new ResourcesChangedEventArgs()); } x.ResourcesChanged += SubResourceChanged; _cache = null; }, x => { if (x.ResourceParent == this && x is ISetStyleParent setParent) { setParent.SetParent(null); setParent.NotifyResourcesChanged(new ResourcesChangedEventArgs()); } if (x.HasResources) { ResourcesChanged?.Invoke(this, new ResourcesChangedEventArgs()); } x.ResourcesChanged -= SubResourceChanged; _cache = null; }, () => { }); }
protected virtual void OnResourcesChanged() { ResourcesChanged?.Invoke(this, EventArgs.Empty); }
/// <summary> /// Raises <see cref="ResourcesChanged"/> event. /// </summary> private void OnWorkerResourcesChanged(WorkerResource kind, bool increased) { ResourcesChanged?.Invoke(this, kind, increased); }
private void OnResourcesChanged(object sender, ResourcesChangedEventArgs e) { ResourcesChanged.Raise(this, e); }
private void RaiseResourcesChanged(ResourcesChangedEventArgs e) { OnResourcesChanged(e); ResourcesChanged.Raise(this, e); }
private void OnMergeDictionaryResourcesChanged(object sender, ResourcesChangedEventArgs e) { ResourcesChanged.Raise(this, e); }
public void Add(object key, object value) { dictionary[key] = value; ResourcesChanged.Raise(this, ResourcesChangedEventArgs.FromKey(key)); }
public void SetSystem() { Owner.EnemyControlSystem.EnemyDied += OnEnemyDied; Owner.SpiritPlaceSystem.SpiritPlaced += OnSpiritCreated; Owner.PlayerInputSystem.SpiritSold += OnSpiritSold; Owner.WaveSystem.AllWaveEnemiesKilled += OnAllEnemiesKilled; Owner.ElementSystem.LearnedElement += OnElementLearned; Owner.ItemDropSystem.ItemUICreated += OnItemUICreated; void OnElementLearned(int learnCost) => AddResource(ResourceType.MagicCrystal, -learnCost); void OnItemUICreated(ItemUISystem e) { e.System.ConsumedMagicCrystals += OnMagicCrystalsConsumed; e.System.ConsumedSpiritVessels += OnSpiritVesselsConsumed; void OnMagicCrystalsConsumed(double value) => AddResource(ResourceType.MagicCrystal, value); void OnSpiritVesselsConsumed(double value) => AddResource(ResourceType.MaxSpiritLimit, value); } void OnSpiritSold(SpiritSystem spirit) { AddResource(ResourceType.Resource, spirit.Data.Get(Numeral.ResourceCost).Value); AddResource(ResourceType.SpiritLimit, -spirit.Data.Get(Enums.Spirit.SpiritLimit).Value); } void OnSpiritCreated(SpiritSystem spirit) { AddResource(ResourceType.Resource, -spirit.Data.Get(Numeral.ResourceCost).Value); AddResource(ResourceType.SpiritLimit, spirit.Data.Get(Enums.Spirit.SpiritLimit).Value); } void OnEnemyDied(EnemySystem enemy) { if (enemy.LastDamageDealer != null) { AddResource(ResourceType.Resource, enemy.Data.Get(Numeral.ResourceCost).Sum); } } void OnAllEnemiesKilled() { AddResource(ResourceType.MagicCrystal, 5f); AddResource(ResourceType.Resource, Owner.WaveSystem.WaveNumber * 10 + Owner.Data.Resources.Resource.GetPercent(10)); } void AddResource(ResourceType type, double amount) { if (type == ResourceType.Resource) { Owner.Data.Resources.Resource += amount; } else if (type == ResourceType.MagicCrystal) { Owner.Data.Resources.MagicCrystals += amount; } else if (type == ResourceType.SpiritLimit) { Owner.Data.Resources.CurrentSpiritLimit += amount; } else if (type == ResourceType.MaxSpiritLimit) { Owner.Data.Resources.MaxSpiritLimit += amount; } //DataLoadingSystem.Save(GM.I.Players[0]); ResourcesChanged?.Invoke(); } }