コード例 #1
0
        ClassifiedEffectContainer GetContainer(int category_id)
        {
            ClassifiedEffectContainer container;

            if (!m_effects_by_class.TryGetValue(category_id, out container))
            {
                EffectCategoryData category = EffectSystem.Instance.GetCategory(category_id);
                if (category == null)
                {
                    return(null);
                }
                container = new ClassifiedEffectContainer(this, category);
                m_effects_by_class[category_id] = container;
            }
            return(container);
        }
コード例 #2
0
        public void RemoveEffect(int effect_id)
        {
            Effect effect;

            if (!m_effects_by_id.TryGetValue(effect_id, out effect))
            {
                return;
            }
            EffectDefinitionComponent definition_cmp = effect.GetDefinitionComponent();
            ClassifiedEffectContainer container      = GetContainer(definition_cmp.Category);

            if (container == null)
            {
                return;
            }
            container.RemoveEffect(effect);
            m_effects_by_id.Remove(effect_id);
        }
コード例 #3
0
        public bool AddEffect(Effect effect)
        {
            if (!CanAddEffect())
            {
                return(false);
            }
            EffectDefinitionComponent definition_cmp = effect.GetDefinitionComponent();
            ClassifiedEffectContainer container      = GetContainer(definition_cmp.Category);

            if (container == null)
            {
                return(false);
            }
            if (!container.AddEffect(effect))
            {
                return(false);
            }
            m_effects_by_id[effect.ID] = effect;
            return(true);
        }