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); }
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); }
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); }
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); }
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); }
public void Remove(SummonData summon_data) { m_Datas[summon_data.owner].Remove(summon_data.id); db.Remove(summon_data.prop); }
/// <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); } }