Esempio n. 1
0
 public void Add(SummonData summon_data)
 {
     if (!m_Datas.ContainsKey(summon_data.owner))
     {
         m_Datas.Add(summon_data.owner, new Dictionary <uint, SummonData>());
     }
     m_Datas[summon_data.owner].Add(summon_data.id, summon_data);
 }
Esempio n. 2
0
        public void Remove(uint skill_id, uint summon_id)
        {
            m_SummonData = GameCenter.Instance.DataManager.skillSummonDB.Get(skill_id, summon_id);
            GameCenter.Instance.DataManager.skillMotionDB.Remove(skill_id, summon_id);
            GameCenter.Instance.DataManager.skillActionDB.Remove(m_SummonData.owner, m_SummonData.id);

            GameCenter.Instance.DataManager.skillSummonDB.Remove(m_SummonData);
        }
Esempio n. 3
0
        public SummonData Get(uint owner, uint id)
        {
            SummonData summon_data = null;

            if (m_Datas.ContainsKey(owner))
            {
                if (!m_Datas[owner].TryGetValue(id, out summon_data))
                {
                    Debug.LogError("Don't have the id !!!");
                }
            }
            return(summon_data);
        }
Esempio n. 4
0
        public uint MaxID(SummonData summon_data)
        {
            uint id = 10000000;

            if (m_Datas.ContainsKey(summon_data.owner))
            {
                foreach (var it in m_Datas[summon_data.owner])
                {
                    if (id < it.Key)
                    {
                        id = it.Key;
                    }
                }
            }

            return(id);
        }
Esempio n. 5
0
        public void LoadData(ISkillTarget target, uint skill_id, uint summon_id)
        {
            m_SummonMoveTarget = target;

            m_SummonData = GameCenter.Instance.DataManager.skillSummonDB.Get(skill_id, summon_id);

            //load motion and action
            m_Motions = GameCenter.Instance.DataManager.skillMotionDB.GetMotion(skill_id, summon_id, this);
            m_Actions = GameCenter.Instance.DataManager.skillActionDB.GetAction(m_SummonData.owner, m_SummonData.id, this);


            DrawStyleInt summon_id_draw = DrawStyle.IntStyle(PropertiesKey.SUMMON_ID);

            summon_id_draw.enable = false;
            m_SummonData.prop.AddStyle(summon_id_draw);

            DrawStyleInt summon_owner_draw = DrawStyle.IntStyle(PropertiesKey.SUMMON_OWNER);

            summon_owner_draw.enable = false;
            m_SummonData.prop.AddStyle(summon_owner_draw);
        }
Esempio n. 6
0
 public void Remove(SummonData summon_data)
 {
     m_Datas[summon_data.owner].Remove(summon_data.id);
     db.Remove(summon_data.prop);
 }
Esempio n. 7
0
        /// <summary>
        /// 召唤物初始化
        /// </summary>
        /// <param name="summon_data"></param>
        /// <param name="skill"></param>
        /// <param name="skill_caster"></param>
        /// <param name="summon_caster"></param>
        public void Create(SummonData summon_data, Skill skill, ISkillCaster skill_caster, ISummonCaster summon_caster, ISkillTarget summon_target)
        {
            m_SummonData   = summon_data;
            m_Skill        = skill;
            m_SkillCaster  = skill_caster;
            m_SummonCaster = summon_caster;
            m_TriggerCount = summon_data.prop.GetInt(PropertiesKey.SUMMON_TRIGGERCOUNT, 0);
            m_Duration     = summon_data.prop.GetInt(PropertiesKey.SUMMON_DURATION, 20);

            //要在下一行代码之前,因为在获取motion里面初始化中要使用此对象
            m_SummonMoveTarget = summon_target;
            m_Motions          = GameCenter.Instance.DataManager.skillMotionDB.GetMotion(m_SummonData.owner, m_SummonData.id, this);
            m_Actions          = GameCenter.Instance.DataManager.skillActionDB.GetAction(m_SummonData.owner, m_SummonData.id, this);

            GameObject summon = new GameObject(summon_data.prop.GetString(PropertiesKey.SUMMON_NAME) + "_fly");

            Transform = summon.GetComponent <Transform>();
            switch (summon_data.prop.GetString(PropertiesKey.SUMMON_CREATE_EFFECT_NODE_TYPE))
            {
            case "summon":
            {
                if (m_SummonCaster != null && m_SummonCaster.GetMount(summon_data.prop.GetString(PropertiesKey.SUMMON_CREATE_EFFECT_NODE_NAME)) != null)
                {
                    Transform.position = m_SummonCaster.GetMount(summon_data.prop.GetString(PropertiesKey.SUMMON_CREATE_EFFECT_NODE_NAME)).position
                                         + summon_data.prop.GetVector3(PropertiesKey.SUMMON_CREATE_EFFECT_NODE_OFFSET);
                }
                break;
            }

            case "caster":
            {
                Transform.position = m_SkillCaster.GetMount(summon_data.prop.GetString(PropertiesKey.SUMMON_CREATE_EFFECT_NODE_NAME)).position
                                     + summon_data.prop.GetVector3(PropertiesKey.SUMMON_CREATE_EFFECT_NODE_OFFSET);
                break;
            }

            case "scene":
            {
                Transform.position = summon_data.prop.GetVector3(PropertiesKey.SUMMON_CREATE_EFFECT_NODE_OFFSET);
                break;
            }
            }

            //生成特效
            if (!string.IsNullOrEmpty(summon_data.prop.GetString(PropertiesKey.SUMMON_CREATE_EFFECT_NAME)))
            {
                Effect create_effect = GameCenter.Instance.EffectManager.Create(summon_data.prop.GetString(PropertiesKey.SUMMON_CREATE_EFFECT_NAME), Transform.position, Transform.rotation);

                create_effect.Destroy();
                //Effect.SetParent(Transform, true);
            }
            //生成音效
            GameCenter.Instance.AudioManager.Play(eAudioLayer.EFFECTAUDIO, summon_data.prop.GetString(PropertiesKey.SUMMON_CREATE_AUDIO_NAME));

            //
            if (!string.IsNullOrEmpty(summon_data.prop.GetString(PropertiesKey.SUMMON_FLY_EFFECT_NAME)))
            {
                Effect = GameCenter.Instance.EffectManager.Create(summon_data.prop.GetString(PropertiesKey.SUMMON_FLY_EFFECT_NAME), Transform.position, Transform.rotation);

                Effect.SetParent(Transform, true);
            }
        }