Exemplo n.º 1
0
        //解析伤害效果的数据
        private void ParseEffect_Damage(XmlElement root)
        {
            CEffectDamageMeta meta = new CEffectDamageMeta(root.GetAttribute("id"));

            m_xreader.TryReadChildNodeAttr(root, "Amount", "value", ref meta.Amount);

            CEffectMetaManager.AddMeta(meta);
        }
Exemplo n.º 2
0
        //解析效果集合
        private void ParseEffect_Set(XmlElement root)
        {
            string str  = string.Empty;
            var    meta = new CEffectSetMeta(root.GetAttribute("id"));

            m_xreader.TryReadChildNodeAttr(root, "WhichUnit", "value", ref str);
            meta.WhichUnit = CAbilityUtil.GetLocation(str);
            m_xreader.TryReadChildNodesAttr(root, "EffectArray", meta.EffectList);

            CEffectMetaManager.AddMeta(meta);
        }
Exemplo n.º 3
0
        //解析 buff效果
        private void ParseEffect_Behavior(XmlElement root)
        {
            string str  = string.Empty;
            var    meta = new CEffectApplyBuffMeta(root.GetAttribute("id"));

            m_xreader.TryReadChildNodeAttr(root, "WhichUnit", "value", ref str);
            meta.WhichUnit = CAbilityUtil.GetLocation(str);
            m_xreader.TryReadChildNodeAttr(root, "Behavior", "value", ref meta.Behavior);

            CEffectMetaManager.AddMeta(meta);
        }
Exemplo n.º 4
0
        //解析指令效果
        private void ParseEffect_Order(XmlElement root)
        {
            string str  = string.Empty;
            var    meta = new CEffectIssueOrderMeta(root.GetAttribute("id"));

            m_xreader.TryReadChildNodeAttr(root, "WhichUnit", "value", ref str);
            meta.WhichUnit = CAbilityUtil.GetLocation(str);

            m_xreader.TryReadChildNodeAttr(root, "Delay", "value", ref meta.Delay);
            m_xreader.TryReadChildNodeAttr(root, "EffectOrder", "value", ref str);
            meta.EffectOrder = CAbilityUtil.GetOrder(str);

            CEffectMetaManager.AddMeta(meta);
        }
Exemplo n.º 5
0
        /// <summary>
        /// 给owner创建一个Effect组件, 并挂在Effect Child Layer身上
        /// </summary>
        public static CEffect Create(string meta, IGameplayAbilityUnit owner)
        {
            CEffect     eff   = null;
            CEffectMeta emeta = CEffectMetaManager.GetMeta(meta);

            if (owner == null)
            {
                Debug.LogError("We can not get GameObject which effect attach on " + meta);
                return(null);
            }

            GameObject go = owner.EffectLayer;

            switch (emeta.Type)
            {
            case CEffectMeta.EffectType.LaunchMissle:
                eff            = go.AddComponent <CEffectLaunchMissile>();
                eff.EffectName = meta;
                break;

            case CEffectMeta.EffectType.Damage:
                eff            = go.AddComponent <CEffectDamage>();
                eff.EffectName = meta;
                break;

            case CEffectMeta.EffectType.ApplyBehaviour:
                eff            = go.AddComponent <CEffectApplyBuff>();
                eff.EffectName = meta;
                break;

            case CEffectMeta.EffectType.IssueOrder:
                eff            = go.AddComponent <CEffectIssueOrder>();
                eff.EffectName = meta;
                break;

            case CEffectMeta.EffectType.EnumArea:
                eff            = go.AddComponent <CEffectEnumArea>();
                eff.EffectName = meta;
                break;

            case CEffectMeta.EffectType.EffectSet:
                eff            = go.AddComponent <CEffectSet>();
                eff.EffectName = meta;
                break;
            }

            return(eff);
        }
Exemplo n.º 6
0
        //解析 查询效果
        private void ParseEffect_Area(XmlElement root)
        {
            string str  = string.Empty;
            var    meta = new CEffectEnumAreaMeta(root.GetAttribute("id"));

            m_xreader.TryReadChildNodeAttr(root, "WhichUnit", "value", ref str);
            meta.WhichUnit = CAbilityUtil.GetLocation(str);

            m_xreader.TryReadChildNodeAttr(root, "ImpactLocation", "value", ref str);
            meta.ImpactLocation = CAbilityUtil.GetLocation(str);

            m_xreader.TryReadChildNodeAttr(root, "Radius", "value", ref meta.Area.Radius);
            m_xreader.TryReadChildNodeAttr(root, "ImpactEffect", "value", ref meta.Area.Effect);

            CEffectMetaManager.AddMeta(meta);
        }
Exemplo n.º 7
0
        //解析发射导弹的数据
        private void ParseEffect_LaunchMissle(XmlElement root)
        {
            string str  = string.Empty;
            var    meta = new CEffectLaunchMissileMeta(root.GetAttribute("id"));

            m_xreader.TryReadChildNodeAttr(root, "WhichUnit", "value", ref str);
            meta.WhichUnit = CAbilityUtil.GetLocation(str);

            m_xreader.TryReadChildNodeAttr(root, "LaunchLocation", "value", ref str);
            //	meta.LaunchVFX.LocationValue = CAbilityUtil.GetLocation(str);
            //		m_xreader.TryReadChildNodeAttr(root, "LaunchLocation", "prefab", ref meta.LaunchVFX.Prefab);

            m_xreader.TryReadChildNodeAttr(root, "ImpactLocation", "value", ref str);
            //	meta.ImpactVFX.LocationValue = CAbilityUtil.GetLocation(str);
            //	m_xreader.TryReadChildNodeAttr(root, "ImpactLocation", "prefab", ref meta.ImpactVFX.Prefab);

            m_xreader.TryReadChildNodeAttr(root, "Missile", "value", ref meta.MisslePrefab);
            m_xreader.TryReadChildNodeAttr(root, "Movers", "Link", ref meta.Mover);
            m_xreader.TryReadChildNodeAttr(root, "Speed", "value", ref meta.MissileSpeed);
            m_xreader.TryReadChildNodeAttr(root, "Slerp", "value", ref meta.Slerp);

            CEffectMetaManager.AddMeta(meta);
        }