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); } }
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); } } }
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)); } } }
//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(); }