public virtual void Init(NTGBattleMemberSkill skill, float[] p, string[] sp) { this.p = p; this.sp = sp; if (skill != null) { Load(skill); } inCd = 0; foreach (var pb in pBehaviours) { owner.mainController.RegisterPassiveSkillBehaviour(pb.passiveName, pb); } var skillBase = owner.mainController.skillTemplates.Find(owner.gameObject.name); if (skillBase == null) { skillBase = (new GameObject(owner.gameObject.name)).transform; skillBase.parent = owner.mainController.skillTemplates; skillBase.localPosition = Vector3.zero; skillBase.localRotation = Quaternion.identity; } transform.parent = skillBase; transform.localPosition = Vector3.zero; transform.localRotation = Quaternion.identity; }
public static NTGBattleMemberSkill GetBattleMemberSkill(int skillId) { if (!cacheMemberSkills.ContainsKey(skillId)) { var newSkillLua = (LuaTable)((LuaTable)data["SkillsData"])[skillId.ToString()]; var memberSkillLua = new NTGBattleMemberSkill(); memberSkillLua.Id = Convert.ToInt32(newSkillLua["Id"]); memberSkillLua.Level = Convert.ToInt32(newSkillLua["Level"]); memberSkillLua.LevelCap = Convert.ToInt32(newSkillLua["LevelCap"]); memberSkillLua.ReqLevel = Convert.ToInt32(newSkillLua["RequireLevel"]); memberSkillLua.ReqTarget = Convert.ToInt32(newSkillLua["TargetType"]); memberSkillLua.Cd = Convert.ToSingle(newSkillLua["Cd"]); memberSkillLua.Range = Convert.ToSingle(newSkillLua["Range"]); memberSkillLua.MpCost = Convert.ToSingle(newSkillLua["MpCost"]); memberSkillLua.Icon = Convert.ToString(newSkillLua["Icon"]); memberSkillLua.Name = Convert.ToString(newSkillLua["Name"]); memberSkillLua.Resource = Convert.ToString(newSkillLua["Resource"]); { var Param = (LuaTable)newSkillLua["Param"]; var param = Param.ToArray(); memberSkillLua.Param = new float[param.Length]; for (int i = 0; i < param.Length; i++) { memberSkillLua.Param[i] = Convert.ToSingle(param[i]); } } memberSkillLua.NextLevel = Convert.ToInt32(newSkillLua["NextLevel"]); memberSkillLua.Mask = Convert.ToInt32(newSkillLua["Mask"]); memberSkillLua.HintType = Convert.ToInt32(newSkillLua["HintType"]); memberSkillLua.HintSize = Convert.ToSingle(newSkillLua["HintSize"]); { var SkillBehaviours = (LuaTable)newSkillLua["SkillBehaviours"]; var skillBehaviours = SkillBehaviours.ToArray(); memberSkillLua.Behaviours = new NTGBattleMemberSkillBehaviour[skillBehaviours.Length]; for (int i = 0; i < skillBehaviours.Length; i++) { memberSkillLua.Behaviours[i] = GetBattleMemberSkillBehaviour(Convert.ToInt32(skillBehaviours[i])); } } cacheMemberSkills[skillId] = memberSkillLua; } return(cacheMemberSkills[skillId]); }
private void Load(NTGBattleMemberSkill skill) { this.skill = skill; id = skill.Id; level = skill.Level; levelCap = skill.LevelCap; reqLevel = skill.ReqLevel; reqTarget = skill.ReqTarget; cd = skill.Cd; range = skill.Range; mpCost = skill.MpCost; icon = skill.Icon; name = skill.Name; param = skill.Param; nextLevel = skill.NextLevel; mask = skill.Mask; behavs = skill.Behaviours; if (behavs.Length != behaviours.Length + pBehaviours.Length) { Debug.LogError(String.Format("Skill Behaviours Count not Match Owner {0} Skill {1}", owner.id, id)); } for (int i = 0; i < behaviours.Length; i++) { behaviours[i].Init(owner, owner, this, behavs[i], p, sp); behaviours[i].gameObject.SetActive(false); } for (int i = 0; i < pBehaviours.Length; i++) { pBehaviours[i].Init(owner, owner, this, behavs[behaviours.Length + i], p, sp); pBehaviours[i].gameObject.SetActive(false); } }