protected PBSEffectNode() { _standingController = new PBSStandingController <PBSEffectNode>(this) { AlwaysEnabled = true }; _coreUseHandler = new CoreUseHandler <PBSEffectNode>(this, new EnergyStateFactory(this)); _currentEffect = DynamicProperties.GetProperty <int>(k.currentEffect); _currentEffect.PropertyChanging += (property, value) => { var effectType = (EffectType)value; if (effectType == EffectType.undefined) { effectType = AvailableEffects.FirstOrDefault(); } if (!AvailableEffects.Contains(effectType)) { Logger.Error("PBSEffectNode: invalid effect type! type:" + effectType); } RemoveCurrentEffect(); return((int)effectType); }; _currentEffect.PropertyChanged += property => { OnEffectChanged(); }; }
private void Init() { EffectType currentEffect; if (DynamicProperties.Contains(k.currentEffect)) { currentEffect = (EffectType)DynamicProperties.GetOrAdd <int>(k.currentEffect); } else { currentEffect = AvailableEffects.FirstOrDefault(); } CurrentEffectType = currentEffect; }