From a659d49e4de12ceb03512fb1927ed4f98dfd28dc Mon Sep 17 00:00:00 2001
From: client_Wu Xijin <364452445@qq.com>
Date: 星期二, 12 三月 2019 15:00:05 +0800
Subject: [PATCH] 3335 更新装备洗练功能.
---
System/EquipTrain/EquipTrainModel.cs | 76 +++++++++++++++++++++++++++++--------
1 files changed, 59 insertions(+), 17 deletions(-)
diff --git a/System/EquipTrain/EquipTrainModel.cs b/System/EquipTrain/EquipTrainModel.cs
index 6b59de2..2f89ea2 100644
--- a/System/EquipTrain/EquipTrainModel.cs
+++ b/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;
}
--
Gitblit v1.8.0