Exemplo n.º 1
0
 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);
         }
     }
 }
Exemplo n.º 2
0
        /// <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);
        }
Exemplo n.º 3
0
        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);
        }