Example #1
0
    public void setBuffData(DBuffData buffdata,DBaseFightRole effectrole)
    {
        data = buffdata;

        effRole = effectrole;

        string asseturl = UrlManager.GetEffectUrl(buffdata.effurl,EEffectType.Buff);
        GameObject prefab = ResourceManager.loadAsset<GameObject>(asseturl);
        if (prefab != null)
        {
            effectInstance = Instantiate(prefab, Vector3.zero, Quaternion.identity) as GameObject;

            effectInstance.transform.parent = transform;
            effectInstance.transform.localPosition = Vector3.zero;

            if (buffdata.bufftype == EBuffType.Temperary)
                Invoke("destroyEff", 5);
            else
                Invoke("destroyEff", buffdata.duration);
        }

    }
Example #2
0
    void initBuffConfig()
    {
        if (basebuffDataDic == null)
            basebuffDataDic = new Dictionary<int, DBuffData>();
        basebuffDataDic.Clear();

        TextAsset txtasset = ResourceManager.loadAsset<TextAsset>("Assets/TextInfo/txt/SkillBuff.txt");

        string text = txtasset.text;
        string[] strArray = text.Split('\n');

        DBuffData buffdata;
        for (int i = 1; i < strArray.Length; i++)
        {
            if (!string.IsNullOrEmpty(strArray[i]))
            {
                buffdata = new DBuffData();
                buffdata.paresData(strArray[i]);
                basebuffDataDic.Add(buffdata.buffid, buffdata);
            }

        }
    }
Example #3
0
    public void removeBuffData(DBuffData buffdata)
    {
        if (buffdataList.Contains(buffdata))
        {
            buffdataList.Remove(buffdata);

            foreach (EBaseAttr attrkey in buffdata.effectBaseAttr.Keys)
            {
                if (buffdata.bufftype == EBuffType.OnGoing)
                roledata.addBaseBuffAttr(attrkey, -buffdata.effectBaseAttr[attrkey] * roledata.getOriginBaseAttrByType(attrkey));
            }

            foreach (ESubAttr attrkey in buffdata.effectSubAttr.Keys)
            {
                if(buffdata.bufftype == EBuffType.OnGoing)
                roledata.addSubBuffAttr(attrkey, -buffdata.effectSubAttr[attrkey] * roledata.getOriginSubAttrByType(attrkey));
            }
        }
    }
Example #4
0
    //private List<DBuffData>
    public void addBuffBydata(DBuffData buffdata)
    {
        //持续性buff 不能叠加
        if (buffdata.bufftype == EBuffType.OnGoing && hasBuff(buffdata.buffid))
            return;

        GameObject buffbody = new GameObject("buff(" + buffdata.buffname+")");

        buffdataList.Add(buffdata);

        foreach (EBaseAttr attrkey in buffdata.effectBaseAttr.Keys)
        {
            roledata.addBaseBuffAttr(attrkey, buffdata.effectBaseAttr[attrkey] * roledata.getOriginBaseAttrByType(attrkey));
        }

        foreach (ESubAttr attrkey in buffdata.effectSubAttr.Keys)
        {
            roledata.addSubBuffAttr(attrkey, buffdata.effectSubAttr[attrkey] * roledata.getOriginSubAttrByType(attrkey));
        }

        BuffInstance buffeff = buffbody.AddComponent<BuffInstance>();
        buffeff.setBuffData(buffdata, this);
        hpbarui.updateHp();

    }