示例#1
0
    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;
    }
示例#2
0
    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]);
    }
示例#3
0
    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);
        }
    }