コード例 #1
0
ファイル: Project.cs プロジェクト: starrodkirby86/storybrew
        public void Remove(Effect effect)
        {
            if (disposedValue)
            {
                throw new ObjectDisposedException(nameof(Project));
            }

            effects.Remove(effect);
            effect.Dispose();
            changed = true;

            refreshEffectsStatus();

            OnEffectsChanged?.Invoke(this, EventArgs.Empty);
        }
コード例 #2
0
ファイル: Project.cs プロジェクト: starrodkirby86/storybrew
        public Effect AddEffect(string effectName)
        {
            if (disposedValue)
            {
                throw new ObjectDisposedException(nameof(Project));
            }

            var effect = new ScriptedEffect(this, scriptManager.Get(effectName));

            effects.Add(effect);
            changed = true;

            effect.OnChanged += effect_OnChanged;
            refreshEffectsStatus();

            OnEffectsChanged?.Invoke(this, EventArgs.Empty);
            QueueEffectUpdate(effect);
            return(effect);
        }