示例#1
0
 public void RemoveNodeConfig(EffectNodeProp node)
 {
     if (configlist.Contains(node))
     {
         configlist.Remove(node);
     }
 }
示例#2
0
 public void GatherResFile(ref List <string> resItemList, bool gather_all)
 {
     //m_EffectProps;
     SortedDictionary <float, EffectNodeConfig> .Enumerator iter = m_EffectProps.GetEnumerator();
     while (iter.MoveNext())
     {
         for (int i = 0; i < iter.Current.Value.configlist.Count; ++i)
         {
             EffectNodeProp nodeProp = iter.Current.Value.configlist[i];
             if (nodeProp.bActive)
             {
                 if (gather_all == false)
                 {
                     if (nodeProp.type != EF_NODE_TYPE.ATTACH_FX &&
                         nodeProp.type != EF_NODE_TYPE.PLACE_FX)
                     {
                         nodeProp.GatherResFile(ref resItemList);
                     }
                 }
                 else
                 {
                     nodeProp.GatherResFile(ref resItemList);
                 }
             }
         }
     }
 }
示例#3
0
 public void AddNodeConfig(EffectNodeProp node)
 {
     if (!configlist.Contains(node))
     {
         configlist.Add(node);
     }
 }
示例#4
0
        public void Save(JsonData json_root)
        {
            json_root["name"] = m_name;

            JsonData node_list = new JsonData();

            node_list.SetJsonType(JsonType.Array);
            json_root["nodes"] = node_list;

            SortedDictionary <float, EffectNodeConfig> .Enumerator iter = m_EffectProps.GetEnumerator();
            while (iter.MoveNext())
            {
                for (int i = 0; i < iter.Current.Value.configlist.Count; i++)
                {
                    EffectNodeProp e      = iter.Current.Value.configlist[i];
                    JsonData       e_node = new JsonData();
                    //e_node["type"] = (int)e.type;
                    //e_node["time"] = e.time;
                    //e_node["enable"] = e.enable;

                    node_list.Add(e_node);

                    e.Write(e_node);
                }
            }
        }
示例#5
0
        public void Remove(EffectNodeProp n)
        {
            // List<EffectNodeProp> nodes;
            EffectNodeConfig config;

            // int nKey = (int)(n.time * 1000.0f);
            if (m_EffectProps.TryGetValue(n.time, out config))
            {
                config.RemoveNodeConfig(n);
            }
        }
示例#6
0
        public void Load(JsonData effect_root)
        {
            m_name = effect_root.GetString("name", "");

            JsonData node_list = effect_root["nodes"];

            int hit_index = 0;

            for (int n = 0; n < node_list.Count; n++)
            {
                // skillEffect.effect_node = effect_root[n];
                JsonData       js_node     = node_list[n];
                EF_NODE_TYPE   type        = (EF_NODE_TYPE)js_node.GetInt32("type", 0);
                EffectNodeProp effect_node = CreateEffectProp(type);
                if (effect_node != null)
                {
                    //effect_node.type = type;
                    //effect_node.time = js_node.GetFloat("time", 0.0f);
                    //effect_node.enable = js_node.GetBool("enable", true);

                    effect_node.Read(js_node);

                    if (effect_node.bActive && effect_node.is_hit_node)
                    {
                        HitNodeProp hitNode = effect_node as HitNodeProp;
                        hitNode.hit_index = hit_index;

                        //发射特效,伤害半径为0,不检测伤害
                        ArrowFxNodeProp arrow_node = hitNode as ArrowFxNodeProp;
                        if (arrow_node != null)
                        {
                            if (arrow_node.radius > 0.0001f)
                            {
                                hit_index++;
                            }
                        }
                        else
                        {
                            hit_index++;
                        }
                    }

                    Add(effect_node);
                }
            }
        }
示例#7
0
        public void Add(EffectNodeProp n)
        {
            //  List<EffectNodeProp> nodes;
            EffectNodeConfig config;

            //  int nKey = (int)(n.time * 1000.0f);
            if (m_EffectProps.TryGetValue(n.time, out config))
            {
                //nodes.Add(n);
                config.AddNodeConfig(n);
            }
            else
            {
                config = ScriptableObject.CreateInstance <EffectNodeConfig>();//new EffectNodeConfig();
                config.AddNodeConfig(n);
                m_EffectProps.Add(n.time, config);
            }
        }
示例#8
0
        //-------------------------------------------------------------------------------------------------------

        /**
         * @brief 创建特效
         * @param
         */
        private void CreateEffectNode(SkillEffectProp prop)
        {
            SortedDictionary <float, EffectNodeConfig> .Enumerator iter = prop.m_EffectProps.GetEnumerator();
            while (iter.MoveNext())
            {
                for (int i = 0; i < iter.Current.Value.configlist.Count; ++i)
                {
                    EffectNodeProp nodeprop = iter.Current.Value.configlist[i];
                    EffectNode     node     = CreateEffectNode(nodeprop.type);
                    if (node == null)
                    {
                        continue;
                    }

                    node.Create(nodeprop);
                    AddEffectNode(nodeprop.time, node);
                }
            }
        }
示例#9
0
文件: EffectNode.cs 项目: sjb8100/src
 public virtual bool Create(EffectNodeProp prop)
 {
     m_NodeProp = prop;
     return(true);
 }