//计算属性 public virtual void ResetAllProperty(bool isinit = false) { SetBaseProperty(); SetEquipProperty(); SetMainPropertyAddition(); for (int i = 1; i < propertys.propertyValues.Length; i++) { if (!ConfigManager.propertyConfManager.dataMap.ContainsKey(i)) { continue; } PropertyConf pconf = ConfigManager.propertyConfManager.dataMap[i]; if (pconf.formula == 1) { propertys.propertyValues[i] = (1 - propertys.propertyValues[i]) * 100; } else if (pconf.formula == 2) { propertys.propertyValues[i] = conf.propertyValues[i] + conf.propertyValues[i] * (1f - 100f / (100f + propertys.propertyValues[i])); } } propertys.PropertyAddition(enCharacterProperty.life, enCharacterProperty.lifeAddition); propertys.PropertyAddition(enCharacterProperty.armor, enCharacterProperty.armorAddition); propertys.PropertyAddition(enCharacterProperty.atkForce, enCharacterProperty.atkForceAddition); if (isinit) { InitProperty(); } }
public void CreateProperty(GameObject prefab, PropertyConf conf, InGameBaseCharacter role) { GameObject obj = NGUITools.AddChild(grid.gameObject, prefab); PropertyListItem item = obj.GetComponent <PropertyListItem>(); if (conf != null) { item.Init(conf /*, role.propertys.propertyValues[conf.id]*/); } itemList.Add(item); }
public virtual void SetBaseProperty() { //从配置表中获得人物基础属性 for (int i = 1; i < propertys.propertyValues.Length; i++) { if (!ConfigManager.propertyConfManager.dataMap.ContainsKey(i)) { continue; } PropertyConf pconf = ConfigManager.propertyConfManager.dataMap[i]; AHFloat val = conf.propertyValues[i]; if (this.isElite) { val *= 2f; } if (pconf.formula != 2) { if (pconf.formula == 1) { propertys.propertyValues[i] = (1f - val / 100f); } else { propertys.propertyValues[i] = val; } } else { propertys.propertyValues[i] = 0; } } float baselife = propertys.propertyValues[(int)enCharacterProperty.life]; propertys.propertyValues[(int)enCharacterProperty.life] = this.level * this.level * baselife / 2 + baselife; float baseforce = propertys.propertyValues[(int)enCharacterProperty.atkForce]; propertys.propertyValues[(int)enCharacterProperty.atkForce] = this.level * this.level * baseforce / 10 + baseforce; //附加属性 if (data == null) { return; } foreach (KeyValuePair <int, float> kv in data.additionPropertyList) { AddPropertyVal(kv.Key, kv.Value, 1); } }
public void Log() { List <PropertyConf> confs = ConfigManager.propertyConfManager.datas; string propertyString = ""; for (int i = 0; i < confs.Count; i++) { PropertyConf conf = confs[i]; propertyString += string.Format(conf.des, propertyValues[conf.id]); propertyString += "\n"; } Debug.Log(propertyString); }
//主属性加成 public void SetMainPropertyAddition() { List <PropertyConf> pconflist = ConfigManager.propertyConfManager.datas; for (int i = 0; i < pconflist.Count; i++) { PropertyConf _conf = pconflist[i]; if (_conf.mainProerty < 0) { continue; } AddPropertyVal(_conf.id, propertys.propertyValues[_conf.mainProerty] * _conf.levelval, 1); } }
public void SetData(EquipData data) { this.data = data; if (data == null) { content.SetActive(false); return; } content.SetActive(true); EquipConf conf = ConfigManager.equipConfManager.dic[data.equipid]; iconSprite.spriteName = conf.prefabname; equipNameLabel.text = conf.name; equipNameLabel.color = ConfigManager.equipQualityManager.colordic[data.qualityID]; equipLvLabel.text = "1"; string propertyText = ""; for (int i = 0; i < data.propertyList.Count; i++) { EquipProperty p = data.propertyList[i]; PropertyConf pconf = ConfigManager.propertyConfManager.dataMap[p.id]; propertyText += string.Format(pconf.des, p.val) + "\n"; } equipPropertyLabel.text = propertyText; if (data.roleid > 0) { delBtn.SetActive(false); equipBtn.SetActive(false); unequipBtn.SetActive(true); } else { delBtn.SetActive(true); equipBtn.SetActive(true); unequipBtn.SetActive(false); } }
public EquipData RandEquipProperty(InGameBaseEquip equip) { EquipConf equipConf = ConfigManager.equipConfManager.dic[equip.confid]; EquipConfData propertyData = ConfigManager.equipConfManager.datadic[equip.confid]; List <PropertyConf> propertys = ConfigManager.propertyConfManager.datas; List <EquipProperty> propertyList = new List <EquipProperty>(); EquipQuality quality = equip.quality; for (int i = 0; i < propertyData.propertyList.Count; i++) { PropertyConf propertyConf = ConfigManager.propertyConfManager.dataMap[propertyData.propertyList[i].id]; EquipProperty e = new EquipProperty(); e.id = propertyConf.id; float val = propertyConf.baseval + propertyConf.GetLevelupVal(equip.level); e.val = Mathf.Ceil(val + Random.Range(-val * propertyConf.randomrange, val * propertyConf.randomrange)); e.val = e.val * (propertyData.propertyList[i].rate / 100f); propertyList.Add(e); } for (int i = propertyData.propertyList.Count; i < quality.propertycount; i++) { PropertyConf propertyConf = propertys[Random.Range(0, propertys.Count)]; EquipProperty e = new EquipProperty(); e.id = propertyConf.id; float val = propertyConf.baseval + propertyConf.GetLevelupVal(equip.level); e.val = Mathf.Ceil(val + Random.Range(-val * propertyConf.randomrange, val * propertyConf.randomrange)); propertyList.Add(e); } EquipData equipData = new EquipData( UserDataManager.instance.GetInstanceID(), ConfigManager.equipQualityManager.GetByPropertyCount(propertyList.Count).id, equipConf.id, -1, propertyList); return(equipData); //UserDataManager.instance.AddEquip(equipData); }
public void AddPropertyVal(int id, float val, float times) { PropertyConf pconf = ConfigManager.propertyConfManager.dataMap[id]; val *= times; if (pconf.formula != 2) { if (pconf.formula == 1) { propertys.propertyValues[id] *= (1f - val / 100f); } else { propertys.propertyValues[id] += val; } } else { propertys.propertyValues[id] += val; } }
public void Init(EquipData data) { this.data = data; GameUIEventListener.Get(delBtn).onClick = DelCB; GameUIEventListener.Get(equipBtn).onClick = EquipCB; EquipConf conf = ConfigManager.equipConfManager.dic[data.equipid]; if (conf == null) { return; } iconSprite.spriteName = conf.prefabname; titleLabel.text = conf.name; basePropertyLabel.text = ""; EquipProperty mainp = data.propertyList[0]; PropertyConf mainpconf = ConfigManager.propertyConfManager.dataMap[mainp.id]; typeLabel.text = ""; //lvLabel.text = 1+""; string propertyText = ""; for (int i = 1; i < data.propertyList.Count; i++) { EquipProperty p = data.propertyList[i]; PropertyConf pconf = ConfigManager.propertyConfManager.dataMap[p.id]; propertyText += string.Format(pconf.des, p.val) + "\n"; } propertyLabel.text = propertyText; Show(); }
public void Load() { if (datas != null) { datas.Clear(); } if (dataMap != null) { dataMap.Clear(); } else { dataMap = new Dictionary <int, PropertyConf>(); } if (mainDataMap != null) { mainDataMap.Clear(); } else { mainDataMap = new Dictionary <int, List <PropertyConf> >(); } datas = ConfigManager.Load <PropertyConf>(); for (int i = 0; i < datas.Count; i++) { PropertyConf data = datas[i]; dataMap.Add(data.id, data); if (!mainDataMap.ContainsKey(data.mainProerty)) { mainDataMap.Add(data.mainProerty, new List <PropertyConf>()); } mainDataMap[data.mainProerty].Add(data); } }
public void Init(PropertyConf conf) { this.conf = conf; }