void Enhance(AValueStruct pVS, AValueMask pMask, bool bLinear) // 将pStruct的属性数值强化给自己 { if (null == pVS) { return; } if (null != pMask) { EnhanceWithMask(pVS, pMask, bLinear); return; } for (int i = 0; i < (int)AValueType.Count; i++) { AValueData pDstData = GetValueData(i, false); if (null != pDstData) { // 如果装备属性项不存在,强化属性集无效果 AValueData pSrcData = pVS.GetValueData(i, false); if (null != pSrcData) { pDstData.Combine(pSrcData, ref bLinear); } } } }
public AValueData GetValueData(int nValueID, bool bCreateNew) { if (nValueID < 0 || nValueID >= (int)AValueType.Count) { return(null); } if (!Datas.ContainsKey(nValueID)) { if (bCreateNew) { ConfigData info = XWorldGameModule.GetGameManager <AValueDefine>().GetAValueInfo(nValueID); if (null == info) { return(null); } AValueData pData = new AValueData(info.GetInt("MaxDepth")); Datas.Add(nValueID, pData); return(pData); } else { return(null); } } else { return(Datas[nValueID]); } }
public void SetValueData(int nValueID, int nLevel, int nMode, float absoluteValue, float percentValue) { AValueData pData = GetValueData(nValueID, true); if (null != pData) { pData.AddupBaseValue(nLevel, absoluteValue); pData.AddupPercentValue(nLevel, nMode, percentValue); } }
void CalculatePrivateValue() { for (int i = 0; i < (int)AValueType.Count; i++) { AValueData pData = GetValueData(i, false); if (null != pData) { pData.Calculate(true); } } }
void CalculateOne(RoleAValue result, AValueMask pMask, int valueID, AValueData pData, RoleAValue pTransformAV) { float extraBase = null == pTransformAV ? 0.0f : pTransformAV.Values[valueID]; if (null != pData) { result.Values[valueID] = pData.Calculate(false, extraBase); } else { result.Values[valueID] = extraBase; } }
void CombineWithMask(AValueStruct pVS, AValueMask pMask, bool bLinear) // 将pStruct的属性数值合并给自己 { foreach (KeyValuePair <int, AValueData> item in pVS.Datas) { if (pMask.Mask[item.Key]) { AValueData pDstData = GetValueData(item.Key, true); if (null != pDstData) { pDstData.Combine(item.Value, ref bLinear); } } } }
void EnhanceWithMask(AValueStruct pVS, AValueMask pMask, bool bLinear) { for (int i = 0; i < (int)AValueType.Count; i++) { if (pMask.Mask[i]) {// 标脏的数值才进行合并 AValueData pDstData = GetValueData(i, false); if (null != pDstData) {// 如果装备属性项不存在,强化属性集无效果 AValueData pSrcData = pVS.GetValueData(i, false); if (null != pSrcData) { pDstData.Combine(pSrcData, ref bLinear); } } } } }
public void Combine(AValueStruct pVS, AValueMask pMask, bool bLinear) // 将pStruct的属性数值合并给自己 { if (null == pVS) { return; } if (null != pMask) { CombineWithMask(pVS, pMask, bLinear); return; } foreach (KeyValuePair <int, AValueData> item in pVS.Datas) { AValueData pDstData = GetValueData(item.Key, true); if (null != pDstData) { pDstData.Combine(item.Value, ref bLinear); } } }