| System/EquipTrain/EquipTrainModel.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/EquipTrain/EquipTrainPropertyBarBehaviour.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/EquipTrain/EquipTrainWin.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
System/EquipTrain/EquipTrainModel.cs
@@ -27,6 +27,12 @@ public override void Init() { ParseConfig(); var levels = equipModel.GetAllEquipSets(); foreach (var level in levels) { equipTrains[level] = new EquipTrainSet(level); } } public override void UnInit() @@ -178,6 +184,32 @@ return; } if (invevitable) { var properties = GetTrainedProperties(selectedLevel.value, selectedPlace.value); var type = GetTrainType(selectedPlace.value); var trainLevel = GetTrainLevel(selectedLevel.value, selectedPlace.value); var data = EquipWashConfig.Get(type, trainLevel); var isPerfect = false; switch (index) { case 1: isPerfect = properties[index - 1] >= data.config.attMax1; break; case 2: isPerfect = properties[index - 1] >= data.config.attMax2; break; case 3: isPerfect = properties[index - 1] >= data.config.attMax3; break; } if (isPerfect) { return; } } if (propertyBars.Count > index) { propertyBars[index].inevitable.value = invevitable; @@ -255,17 +287,29 @@ return TrainState.Empty; } var currentStarLevel = GetTrainLevel(equip.config.LV, equip.config.EquipPlace); var absoluteMax = GetMaxTrainLevel(equip.config.EquipPlace); if (currentStarLevel >= absoluteMax) var type = GetTrainType(place); var currentStarLevel = GetTrainLevel(level, place); var absoluteMax = GetMaxTrainLevel(place); var data = EquipWashConfig.Get(type, Mathf.Clamp(currentStarLevel, 1, absoluteMax)); if (data == null) { return TrainState.MaxLevel; return TrainState.Empty; } var relativeMax = GetMaxTrainLevel(equip.config.LV, equip.config.EquipPlace); if (currentStarLevel >= relativeMax) var properties = GetTrainedProperties(level, place); var isFull = properties.x >= data.config.attMax1 && properties.y >= data.config.attMax2 && properties.z >= data.config.attMax3; if (isFull) { return TrainState.StarLimit; if (currentStarLevel >= absoluteMax) { return TrainState.MaxLevel; } var relativeMax = GetMaxTrainLevel(equip.config.LV, equip.config.EquipPlace); if (currentStarLevel >= relativeMax) { return TrainState.StarLimit; } } return TrainState.Allowable; @@ -316,7 +360,7 @@ var unSavedProperties = GetUnSavedProperties(level, place); var trainedProperties = GetTrainedProperties(level, place); var trainLevel = GetTrainLevel(level, place); var data = EquipWashConfig.Get(GetTrainType(place), Mathf.Clamp(trainLevel + 1, 1, absoluteMax)); var data = EquipWashConfig.Get(GetTrainType(place), Mathf.Clamp(trainLevel, 1, absoluteMax)); if (data != null) { @@ -370,25 +414,23 @@ private TrainOperateType CalculateTrainOperateType(int level, int place) { var currentLevel = GetTrainLevel(level, place); var maxLevel = GetMaxTrainLevel(level, place); if (maxLevel > 0 && currentLevel >= maxLevel) { return TrainOperateType.Max; } var unSavedProperties = GetUnSavedProperties(level, place); if (unSavedProperties != Int3.zero) { return TrainOperateType.Save; } var trainable = GetEquipPlaceTrainState(level, place) == TrainState.Allowable; if (trainable) var trainState = GetEquipPlaceTrainState(level, place); if (trainState == TrainState.Allowable) { return TrainOperateType.Train; } if (trainState == TrainState.StarLimit || trainState == TrainState.MaxLevel) { return TrainOperateType.Max; } return TrainOperateType.None; } System/EquipTrain/EquipTrainPropertyBarBehaviour.cs
@@ -48,16 +48,19 @@ m_Progress.value = 0; m_Value.text = "0"; m_DeltaValue.gameObject.SetActive(false); m_Inevitable.gameObject.SetActive(true); break; case EquipTrainModel.TrainState.StarLimit: m_Progress.value = 1; m_Value.text = string.Format("{0}/{1}", propertyBar.propertyValue, propertyBar.upperLimit); m_DeltaValue.gameObject.SetActive(false); m_DeltaValue.gameObject.SetActive(true); m_Inevitable.gameObject.SetActive(false); break; case EquipTrainModel.TrainState.MaxLevel: m_Progress.value = 1; m_Value.text = string.Format("{0}/{1}", propertyBar.propertyValue, propertyBar.upperLimit); m_DeltaValue.gameObject.SetActive(false); m_DeltaValue.gameObject.SetActive(true); m_Inevitable.gameObject.SetActive(false); break; case EquipTrainModel.TrainState.Allowable: m_Inevitable.gameObject.SetActive(true); @@ -69,11 +72,6 @@ private void DisplayDynamicInfo(bool force) { if (force || propertyBar.inevitable.dirty) { m_Inevitable.isOn = propertyBar.inevitable.Fetch(); } if (force || propertyBar.propertyValue.dirty) { var value = propertyBar.propertyValue.Fetch(); @@ -89,38 +87,41 @@ var inevitable = propertyBar.inevitable.Fetch(); m_Inevitable.isOn = inevitable; if (operateType == EquipTrainModel.TrainOperateType.Train) var isPerfect = propertyBar.upperLimit > 0 && propertyBar.propertyValue.value >= propertyBar.upperLimit; if (isPerfect) { var isPerfect = propertyBar.upperLimit > 0 && propertyBar.propertyValue.value >= propertyBar.upperLimit; if (isPerfect) { m_DeltaValue.text = "完美"; m_DeltaValue.color = UIHelper.GetUIColor(TextColType.Green, true); } else { m_DeltaValue.text = inevitable ? "必增" : ""; } m_DeltaValue.text = "完美"; m_DeltaValue.color = UIHelper.GetUIColor(TextColType.Green, true); } else { if (deltaValue > 0) if (operateType == EquipTrainModel.TrainOperateType.Train) { m_DeltaValue.text = string.Format("+{0}", deltaValue); m_DeltaValue.text = inevitable ? "必增" : ""; m_DeltaValue.color = UIHelper.GetUIColor(TextColType.Green, true); } else if (deltaValue < 0) { m_DeltaValue.text = string.Format("-{0}", deltaValue); m_DeltaValue.color = UIHelper.GetUIColor(TextColType.Red, true); } else { m_DeltaValue.text = ""; m_DeltaValue.color = UIHelper.GetUIColor(TextColType.Green, true); if (deltaValue > 0) { m_DeltaValue.text = string.Format("+{0}", deltaValue); m_DeltaValue.color = UIHelper.GetUIColor(TextColType.Green, true); } else if (deltaValue < 0) { m_DeltaValue.text = deltaValue.ToString(); m_DeltaValue.color = UIHelper.GetUIColor(TextColType.Red, true); } else { m_DeltaValue.text = string.Format("+{0}", deltaValue); m_DeltaValue.color = UIHelper.GetUIColor(TextColType.Green, true); } } } } } System/EquipTrain/EquipTrainWin.cs
@@ -141,7 +141,7 @@ { var trainLevel = model.equipTrainLevel.Fetch(); m_TrainLevel.text = string.Format("{0}级洗练", trainLevel); m_MaxLevelContainer.gameObject.SetActive(trainLevel > 0 && trainLevel >= model.equipTrainMaxLevel.value); m_MaxLevelContainer.gameObject.SetActive(trainLevel > 1 && trainLevel >= model.equipTrainMaxLevel.value); } if (force || model.equipTrainMaxLevel.dirty) @@ -213,7 +213,7 @@ var type = EquipTrainModel.GetTrainType(place); var trainLevel = model.GetTrainLevel(level, place); var config = EquipWashConfig.Get(type, trainLevel + 1); m_InevitableMaterial.Display(false, own, need, config.mustCosts[need - 1]); m_InevitableMaterial.Display(false, need, own, config.mustCosts[need - 1]); } else {