void InitTimeCostValue() { for (int i = 0; i < _info.partsConfig.configData.Count; i++) { var data = _info.partsConfig.configData[i]; if (data.TimeCostPerUnit != 0) { int diffValue = (int)((data.CustomDataDefaultValue - data.CustomDataRangeMin) * 10); AssemblePartTimeCostDetialInfo info = new AssemblePartTimeCostDetialInfo { customDataName = data.CustomDataName, modifyTimeValue = diffValue * (float)data.TimeCostPerUnit }; RefreshTimeCostValue(info); } } }
/// <summary> /// 刷新时长 /// </summary> /// <param name="timeInfo"></param> void RefreshTimeCostValue(AssemblePartTimeCostDetialInfo timeInfo) { if (_timeCostInfoDic.ContainsKey(timeInfo.customDataName)) { var info = _timeCostInfoDic[timeInfo.customDataName]; info.modifyTimeValue = timeInfo.modifyTimeValue; } else { _timeCostInfoDic.Add(timeInfo.customDataName, timeInfo); } ///Text Refresh float addTime = 0; foreach (var info in _timeCostInfoDic.Values) { addTime += info.modifyTimeValue; } timeCostText.text = string.Format("{0:N1}", _info._partsMeta.BaseTimeCost + addTime); }
bool CalculateValue(Config.PartsCustomConfig.ConfigData config, float Value) { if (config == null) { return(false); } int diffValue = (int)System.Math.Round((Value - config.CustomDataRangeMin) * 10, 0); if (config.TimeCostPerUnit != 0) { AssemblePartTimeCostDetialInfo info = new AssemblePartTimeCostDetialInfo { customDataName = config.CustomDataName, modifyTimeValue = diffValue * (float)config.TimeCostPerUnit }; RefreshTimeCostValue(info); } for (int i = 0; i < config.propertyLinkData.Count; i++) { var propertyName = config.propertyLinkData[i].Name; foreach (var item in _propertyItem) { if (item._configData.Name == propertyName) { if (item._configData.PropertyType == 1) { ///Fix Value float currentValue = diffValue * (float)config.propertyLinkData[i].PropertyChangePerUnitValue; AssemblePartPropertyDetailInfo detailInfo = new AssemblePartPropertyDetailInfo { customDataName = config.CustomDataName, propertyLinkName = config.propertyLinkData[i].Name, modifyType = config.propertyLinkData[i].PropertyChangeType, modifyValueFix = currentValue }; item.ChangeValue(detailInfo); } else if (item._configData.PropertyType == 2) { float currentValueMin = diffValue * (float)config.propertyLinkData[i].PropertyChangePerUnitMin; float currentValueMax = diffValue * (float)config.propertyLinkData[i].PropertyChangePerUnitMax; AssemblePartPropertyDetailInfo detailInfo = new AssemblePartPropertyDetailInfo { customDataName = config.CustomDataName, propertyLinkName = config.propertyLinkData[i].Name, modifyType = config.propertyLinkData[i].PropertyChangeType, modifyValueMin = currentValueMin, modifyValueMax = currentValueMax }; item.ChangeValue(detailInfo); } } } } return(true); }