private int hitcount = 0; // 统计攻击次数 public void SetInfo(int id, Character actor, SkillSummonInfo info) { ID = id; owner = actor; cfg = CfgManager.GetInstance().SkillSummons[info.id]; skill = actor.GetSkill(info.skillid); // skill effects int count = cfg.skilleffects.Length; if (count > 0) { skilleffects = new SkillEffect[count]; for (int i = 0; i < count; i++) { skilleffects[i] = SkillEffect.CreateSkillEffect(cfg.skilleffects[i], skill); } } }
public void AddSummon(int uid, Vector3 pos, Quaternion rot, SkillSummonInfo info) { if (CfgManager.GetInstance().SkillSummons.ContainsKey(info.id)) { CfgSkillSummon cfg = CfgManager.GetInstance().SkillSummons[info.id]; GameObject prefab = (GameObject)ResourceManager.Instance.LoadAsset(cfg.prefab); GameObject go = Instantiate(prefab) as GameObject; go.tag = gameObject.tag + "Missile"; go.transform.localScale = Vector3.one; go.transform.rotation = rot; if (cfg.speed > 0) //移动 { go.transform.position = pos + new Vector3(0, 0.5f, 0) + transform.forward * 0.5f; } else { go.transform.position = pos; } SkillSummon summon = go.AddComponent <SkillSummon>(); summon.SetInfo(uid, this, info); } }
public void Init() { // monster TextAsset asset = ResourceManager.Instance.LoadAsset("cfg/monster") as TextAsset; JsonData data = JsonMapper.ToObject(asset.text); foreach (string key in data.Keys) { JsonData value = data [key]; CfgMonster cfg = new CfgMonster(); cfg.id = int.Parse(key); cfg.name = (string)value["name"]; cfg.prefab = (string)value["prefab"]; m_Monsters.Add(cfg.id, cfg); } // skill asset = ResourceManager.Instance.LoadAsset("cfg/skill") as TextAsset; data = JsonMapper.ToObject(asset.text); foreach (string key in data.Keys) { JsonData value = data [key]; CfgSkill cfg = new CfgSkill(); cfg.id = int.Parse(key); cfg.name = (string)value["name"]; cfg.desc = (string)value["desc"]; cfg.animation = (string)value["animation"]; cfg.effect = (string)value["effect"]; cfg.sound = (string)value["sound"]; cfg.hiteffect = (string)value["hiteffect"]; cfg.spcost = (int)value["spcost"]; cfg.colddown = (int)value["colddown"] / 1000f; cfg.targettype = (SkillTarget)(int)value["targettype"]; cfg.aoe = (byte)value["aoe"]; JsonData effects = value["skilleffect"]; cfg.skilleffects = new int[effects.Count]; for (int i = 0; i < effects.Count; i++) { cfg.skilleffects[i] = (int)effects[i]; } JsonData points = value["hitpoint"]; cfg.hitpoints = new int[points.Count]; for (int i = 0; i < points.Count; i++) { cfg.hitpoints[i] = (int)points[i]; } m_Skills.Add(cfg.id, cfg); } // skill effect asset = ResourceManager.Instance.LoadAsset("cfg/skilleffect") as TextAsset; data = JsonMapper.ToObject(asset.text); foreach (string key in data.Keys) { JsonData value = data [key]; CfgSkillEffect cfg = new CfgSkillEffect(); cfg.id = int.Parse(key); cfg.name = (string)value["name"]; cfg.trigger = (SkillEffectTrigger)(int)value["trigger"]; cfg.operation = (SkillEffectOperation)(int)value["operation"]; JsonData args = value["args"]; cfg.args = new int[args.Count]; for (int i = 0; i < args.Count; i++) { cfg.args[i] = (int)args[i]; } m_SkillEffects.Add(cfg.id, cfg); } // skill summon asset = ResourceManager.Instance.LoadAsset("cfg/skillsummon") as TextAsset; data = JsonMapper.ToObject(asset.text); foreach (string key in data.Keys) { JsonData value = data [key]; CfgSkillSummon cfg = new CfgSkillSummon(); cfg.id = int.Parse(key); cfg.name = (string)value["name"]; cfg.prefab = (string)value["prefab"]; cfg.speed = (int)value["speed"]; cfg.life = (int)value["life"] / 1000f; cfg.hitmax = (int)value["hitmax"]; cfg.hiteffect = (string)value["hiteffect"]; JsonData effects = value["skilleffect"]; cfg.skilleffects = new int[effects.Count]; for (int i = 0; i < effects.Count; i++) { cfg.skilleffects[i] = (int)effects[i]; } m_SkillSummons.Add(cfg.id, cfg); } // buff asset = ResourceManager.Instance.LoadAsset("cfg/buff") as TextAsset; data = JsonMapper.ToObject(asset.text); foreach (string key in data.Keys) { JsonData value = data [key]; CfgBuff cfg = new CfgBuff(); cfg.id = int.Parse(key); cfg.name = (string)value["name"]; cfg.prefab = (string)value["prefab"]; cfg.life = (int)value["life"] / 1000f; cfg.operation = (BuffOperation)(int)value["operation"]; JsonData args = value["args"]; cfg.args = new int[args.Count]; for (int i = 0; i < args.Count; i++) { cfg.args[i] = (int)args[i]; } m_Buffs.Add(cfg.id, cfg); } }