Core/GameEngine/Model/Player/Market.meta
File was deleted Core/NetworkPackage/DTCFile/ServerPack/HAD_SaleActivity.metacopy from Core/NetworkPackage/DTCFile/ClientPack.meta copy to Core/NetworkPackage/DTCFile/ServerPack/HAD_SaleActivity.meta
File was copied from Core/NetworkPackage/DTCFile/ClientPack.meta @@ -1,7 +1,7 @@ fileFormatVersion: 2 guid: 722e5e3d30096674e811f5bd191246a0 guid: 3e05761d690b75440a6be79207d0fb01 folderAsset: yes timeCreated: 1539228128 timeCreated: 1547643019 licenseType: Pro DefaultImporter: userData: Core/NetworkPackage/DTCFile/ServerPack/HAE_Truck.metacopy from Core/NetworkPackage/DTCFile/ClientPack.meta copy to Core/NetworkPackage/DTCFile/ServerPack/HAE_Truck.meta
File was copied from Core/NetworkPackage/DTCFile/ClientPack.meta @@ -1,7 +1,7 @@ fileFormatVersion: 2 guid: 722e5e3d30096674e811f5bd191246a0 guid: 1d70ccd06161e0443b7a802ad94292f8 folderAsset: yes timeCreated: 1539228128 timeCreated: 1547643019 licenseType: Pro DefaultImporter: userData: Core/NetworkPackage/DTCFile/ServerPack/HAF_Merge.meta
File was renamed from Core/NetworkPackage/DTCFile/ClientPack.meta @@ -1,7 +1,7 @@ fileFormatVersion: 2 guid: 722e5e3d30096674e811f5bd191246a0 guid: 71e878ac60c49ad4f964dd2dbc725739 folderAsset: yes timeCreated: 1539228128 timeCreated: 1547643019 licenseType: Pro DefaultImporter: userData: Core/NetworkPackage/DTCFile/ServerPack/HB0_Event.metacopy from Core/NetworkPackage/DTCFile/ClientPack.meta copy to Core/NetworkPackage/DTCFile/ServerPack/HB0_Event.meta
File was copied from Core/NetworkPackage/DTCFile/ClientPack.meta @@ -1,7 +1,7 @@ fileFormatVersion: 2 guid: 722e5e3d30096674e811f5bd191246a0 guid: eed34091b0568664b9fb42f0634496c1 folderAsset: yes timeCreated: 1539228128 timeCreated: 1547643019 licenseType: Pro DefaultImporter: userData: Core/NetworkPackage/ServerPack/HAD_SaleActivity.metacopy from Core/NetworkPackage/DTCFile/ClientPack.meta copy to Core/NetworkPackage/ServerPack/HAD_SaleActivity.meta
File was copied from Core/NetworkPackage/DTCFile/ClientPack.meta @@ -1,7 +1,7 @@ fileFormatVersion: 2 guid: 722e5e3d30096674e811f5bd191246a0 guid: 32ceb8b7faf99f84a8b73ce53c5e3e4d folderAsset: yes timeCreated: 1539228128 timeCreated: 1547643019 licenseType: Pro DefaultImporter: userData: Core/NetworkPackage/ServerPack/HAE_Truck.metacopy from Core/NetworkPackage/DTCFile/ClientPack.meta copy to Core/NetworkPackage/ServerPack/HAE_Truck.meta
File was copied from Core/NetworkPackage/DTCFile/ClientPack.meta @@ -1,7 +1,7 @@ fileFormatVersion: 2 guid: 722e5e3d30096674e811f5bd191246a0 guid: 77f69c2b862d1704299a32d0d8eeb71e folderAsset: yes timeCreated: 1539228128 timeCreated: 1547643019 licenseType: Pro DefaultImporter: userData: Core/NetworkPackage/ServerPack/HAF_Merge.metacopy from Core/NetworkPackage/DTCFile/ClientPack.meta copy to Core/NetworkPackage/ServerPack/HAF_Merge.meta
File was copied from Core/NetworkPackage/DTCFile/ClientPack.meta @@ -1,7 +1,7 @@ fileFormatVersion: 2 guid: 722e5e3d30096674e811f5bd191246a0 guid: fa14960fa44b0d1439bab471a764e34f folderAsset: yes timeCreated: 1539228128 timeCreated: 1547643019 licenseType: Pro DefaultImporter: userData: Core/NetworkPackage/ServerPack/HB0_Event.metacopy from Core/NetworkPackage/DTCFile/ClientPack.meta copy to Core/NetworkPackage/ServerPack/HB0_Event.meta
File was copied from Core/NetworkPackage/DTCFile/ClientPack.meta @@ -1,7 +1,7 @@ fileFormatVersion: 2 guid: 722e5e3d30096674e811f5bd191246a0 guid: d914565b65f8e8145988734c4d915834 folderAsset: yes timeCreated: 1539228128 timeCreated: 1547643019 licenseType: Pro DefaultImporter: userData: System/EquipStar/EquipStarWin.cs
@@ -36,11 +36,12 @@ #region Built-in protected override void BindController() { m_StarUpgrade.SetListener(StarUpgrade); } protected override void AddListeners() { m_StarUpgrade.SetListener(StarUpgrade); } protected override void OnPreOpen() System/EquipTrain/EquipTrainLevelBehaviour.cs
@@ -18,7 +18,7 @@ readonly List<EquipTrainCandidateBehaviour> slotBehaviours = new List<EquipTrainCandidateBehaviour>(); EquipStarModel model { get { return ModelCenter.Instance.GetModel<EquipStarModel>(); } } EquipTrainModel model { get { return ModelCenter.Instance.GetModel<EquipTrainModel>(); } } EquipModel equipModel { get { return ModelCenter.Instance.GetModel<EquipModel>(); } } public int level { get; private set; } System/EquipTrain/EquipTrainModel.cs
@@ -6,7 +6,6 @@ { public class EquipTrainModel : Model { public readonly LogicInt selectedLevel = new LogicInt(); public readonly LogicInt selectedPlace = new LogicInt(); public readonly LogicInt equipTrainLevel = new LogicInt(); @@ -14,8 +13,8 @@ public readonly LogicInt material = new LogicInt(); public readonly LogicInt inevitableMaterialCount = new LogicInt(); public readonly LogicEnum<TrainOperateType> operateType = new LogicEnum<TrainOperateType>(TrainOperateType.None); public readonly List<EquipTrainCandidate> candidatePlaces = new List<EquipTrainCandidate>(); public readonly List<EquipTrainPropertyBar> propertyBars = new List<EquipTrainPropertyBar>(); public readonly LogicList<EquipTrainCandidate> candidatePlaces = new LogicList<EquipTrainCandidate>(); public readonly LogicList<EquipTrainPropertyBar> propertyBars = new LogicList<EquipTrainPropertyBar>(); Dictionary<int, EquipTrainSet> equipTrains = new Dictionary<int, EquipTrainSet>(); @@ -128,7 +127,7 @@ for (var i = 0; i < places.Count; i++) { var place = places[i]; candidatePlaces[place] = new EquipTrainCandidate(level, place); candidatePlaces.Add(new EquipTrainCandidate(level, place)); if (i == 0) { SelectPlace(level, place); @@ -141,8 +140,9 @@ { selectedPlace.value = place; selectedPlace.dirty = true; foreach (var candidate in candidatePlaces) for (int i = 0; i < candidatePlaces.Count; i++) { var candidate = candidatePlaces[i]; candidate.selected.value = candidate.level == level && candidate.place == place; } @@ -184,6 +184,12 @@ return equipTrains[level].GetTotalLevel(); } public int GetMaterialNeed(int level, int place) { return 5; } public int GetMaxTrainLevel(int level) { @@ -193,6 +199,11 @@ public int GetMaxTrainLevel(int level, int place) { return 5; } public List<EquipTrainCandidate> GetCandidatePlaces() { return candidatePlaces.Fetch(); } public bool IsEquipPlaceTrainable(string equipGuid) @@ -296,9 +307,9 @@ private int CalculateInevitableMaterialCount() { var count = 0; foreach (var bar in propertyBars) for (int i = 0; i < propertyBars.Count; i++) { count += bar.inevitable.value ? 1 : 0; count += propertyBars[i].inevitable.value ? 1 : 0; } return count; System/EquipTrain/EquipTrainPropertyBarBehaviour.cs
@@ -11,8 +11,92 @@ public class EquipTrainPropertyBarBehaviour : MonoBehaviour { [SerializeField] int m_Index; [SerializeField] Text m_PropertyName; [SerializeField] Text m_Value; [SerializeField] Slider m_Progress; [SerializeField] Text m_DeltaValue; [SerializeField] ToggleButton m_Inevitable; EquipTrainModel model { get { return ModelCenter.Instance.GetModel<EquipTrainModel>(); } } EquipTrainPropertyBar propertyBar; public void Display(EquipTrainPropertyBar propertyBar) { this.propertyBar = propertyBar; DisplayBaseInfo(); DisplayDynamicInfo(true); m_Inevitable.SetListener(SwitchInevitable); } private void LateUpdate() { DisplayDynamicInfo(false); } private void DisplayBaseInfo() { var config = PlayerPropertyConfig.Get(propertyBar.propertyId); m_PropertyName.text = config.Name; } 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(); var maxValue = propertyBar.upperLimit; m_Value.text = string.Format("{0}/{1}", value, maxValue); m_Progress.value = Mathf.Clamp01((float)value / maxValue); m_Inevitable.gameObject.SetActive(value < maxValue); } if (force || propertyBar.deltaValue.dirty) { var deltaValue = propertyBar.deltaValue.Fetch(); var isPerfect = propertyBar.propertyValue.value >= propertyBar.upperLimit; if (isPerfect) { m_DeltaValue.text = "完美"; 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.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 = string.Format("+{0}", deltaValue); m_DeltaValue.color = UIHelper.GetUIColor(TextColType.Green, true); } } } } private void SwitchInevitable() { model.SetInevitable(m_Index - 1, !propertyBar.inevitable.value); } } System/EquipTrain/EquipTrainWin.cs
@@ -9,22 +9,54 @@ using UnityEngine; using UnityEngine.UI; namespace Snxxz.UI { namespace Snxxz.UI { public class EquipTrainWin : Window { [SerializeField] RectTransform m_LevelContainer; [SerializeField] Text m_MaxTrainLevel; [SerializeField] ItemCell m_TargetEquip; [SerializeField] ItemBehaviour m_Material; [SerializeField] Text m_MaterialCount; [SerializeField] ItemBehaviour m_InevitableMaterial; [SerializeField] Text m_InevitableMaterialCount; [SerializeField] RectTransform m_DiamondContainer; [SerializeField] Text m_DiamondCount; [SerializeField] Text m_TrainLevel; [SerializeField] EquipTrainPropertyBarBehaviour[] m_PropertyBarBehaviours; [SerializeField] RectTransform m_MaxLevelContainer; [SerializeField] Button m_Train; [SerializeField] Button m_Save; [SerializeField] Button m_GiveUp; List<EquipTrainLevelBehaviour> levelBehaviours = new List<EquipTrainLevelBehaviour>(); EquipTrainModel model { get { return ModelCenter.Instance.GetModel<EquipTrainModel>(); } } EquipStarModel starModel { get { return ModelCenter.Instance.GetModel<EquipStarModel>(); } } EquipModel equipModel { get { return ModelCenter.Instance.GetModel<EquipModel>(); } } PackModel packModel { get { return ModelCenter.Instance.GetModel<PackModel>(); } } #region Built-in protected override void BindController() { } protected override void AddListeners() { m_Train.SetListener(Train); m_Save.SetListener(Save); m_GiveUp.SetListener(GiveUp); } protected override void OnPreOpen() { DisplayBaseInfo(); DisplayDynamicInfo(true); } protected override void OnAfterOpen() @@ -33,13 +65,242 @@ protected override void OnPreClose() { } protected override void OnAfterClose() { model.ResetOperateParams(); } protected override void LateUpdate() { base.LateUpdate(); DisplayDynamicInfo(false); } #endregion private void DisplayBaseInfo() { CreateLevelBehaviours(); } private void DisplayDynamicInfo(bool force) { if (force || model.selectedLevel.dirty) { var level = model.selectedLevel.Fetch(); for (var i = 0; i < levelBehaviours.Count; i++) { var behaviour = levelBehaviours[i]; if (behaviour.level != level) { behaviour.Dispose(); } } for (var i = 0; i < levelBehaviours.Count; i++) { var behaviour = levelBehaviours[i]; if (behaviour.level == level) { behaviour.Display(); } } } if (force || model.selectedPlace.dirty) { var level = model.selectedLevel.value; var place = model.selectedPlace.Fetch(); var equipGuid = equipModel.GetEquip(level, place); var equip = packModel.GetItemByGuid(equipGuid); if (equip != null) { m_TargetEquip.gameObject.SetActive(true); m_TargetEquip.Init(equip); } else { m_TargetEquip.gameObject.SetActive(false); } } if (force || model.equipTrainLevel.dirty) { var trainLevel = model.equipTrainLevel.Fetch(); m_TrainLevel.text = string.Format("{0}级洗练", trainLevel); m_MaxLevelContainer.gameObject.SetActive(model.equipTrainLevel.value >= model.equipTrainMaxLevel.value); } if (force || model.equipTrainMaxLevel.dirty) { var level = model.selectedLevel.value; var place = model.selectedPlace.value; var maxTrain = model.equipTrainMaxLevel.Fetch(); var star = starModel.GetEquipStarLevel(level, place); m_MaxTrainLevel.text = string.Format("{0}星装备最高可洗练至{1}级", star, maxTrain); } if (force || model.material.dirty) { var level = model.selectedLevel.value; var place = model.selectedPlace.value; DisplayMaterial(level, place, model.material.Fetch()); } if (force || model.inevitableMaterialCount.dirty) { var level = model.selectedLevel.value; var place = model.selectedPlace.value; DisplayInevitableMaterial(level, place, model.inevitableMaterialCount.Fetch()); } if (force || model.operateType.dirty) { DisplayOperateButton(model.operateType.Fetch()); } if (force || model.propertyBars.dirty) { DisplayProperty(model.propertyBars.Fetch()); } } private void DisplayMaterial(int level, int place, int itemId) { m_Material.SetItem(itemId, 1); var need = model.GetMaterialNeed(level, place); var own = packModel.GetItemCountByID(PackType.Item, itemId); var enough = own >= need; m_MaterialCount.text = string.Format("{0}/{1}", UIHelper.AppendStringColor(enough ? TextColType.White : TextColType.Red, own.ToString(), true), need); } private void DisplayInevitableMaterial(int level, int place, int need) { m_InevitableMaterial.SetItem(GeneralDefine.equipTrainMustItemId, 1); var own = packModel.GetItemCountByID(PackType.Item, GeneralDefine.equipTrainMustItemId); var enough = own >= need; m_InevitableMaterialCount.text = string.Format("{0}/{1}", UIHelper.AppendStringColor(enough ? TextColType.White : TextColType.Red, own.ToString(), true), need); if (enough) { m_DiamondContainer.gameObject.SetActive(false); } else { m_DiamondContainer.gameObject.SetActive(true); var type = EquipTrainModel.GetTrainType(place); var trainLevel = model.GetTrainLevel(level, place); var config = EquipWashConfig.Get(type, trainLevel + 1); m_DiamondCount.text = config.mustCosts[need - 1].ToString(); } } private void DisplayProperty(List<EquipTrainPropertyBar> propertyBars) { for (int i = 0; i < m_PropertyBarBehaviours.Length; i++) { var behaviour = m_PropertyBarBehaviours[i]; if (i < propertyBars.Count) { behaviour.gameObject.SetActive(true); behaviour.Display(propertyBars[i]); } else { behaviour.gameObject.SetActive(false); } } } private void DisplayOperateButton(EquipTrainModel.TrainOperateType opreateType) { switch (opreateType) { case EquipTrainModel.TrainOperateType.None: break; case EquipTrainModel.TrainOperateType.Train: m_Train.gameObject.SetActive(true); m_Save.gameObject.SetActive(false); m_GiveUp.gameObject.SetActive(false); break; case EquipTrainModel.TrainOperateType.Forbid: break; case EquipTrainModel.TrainOperateType.Save: m_Save.gameObject.SetActive(true); m_Train.gameObject.SetActive(false); m_GiveUp.gameObject.SetActive(false); break; case EquipTrainModel.TrainOperateType.Max: break; } } private void Train() { var level = model.selectedLevel.value; var place = model.selectedPlace.value; var inevitables = new bool[3]; for (int i = 0; i < 3; i++) { inevitables[i] = model.propertyBars[i].inevitable.value; } model.Train(level, place, inevitables); } private void Save() { var level = model.selectedLevel.value; var place = model.selectedPlace.value; model.Save(level, place); } private void GiveUp() { var level = model.selectedLevel.value; var place = model.selectedPlace.value; model.GiveUp(level, place); } private void CreateLevelBehaviours() { var levels = equipModel.GetUnLockedEquipSets(); var gap = levels.Count - levelBehaviours.Count; for (var i = 0; i < gap; i++) { var instance = UIUtility.CreateWidget("EquipTrainLevelBehaviour", "EquipTrainLevelBehaviour"); var behaviour = instance.GetComponent<EquipTrainLevelBehaviour>(); behaviour.transform.SetParentEx(m_LevelContainer, Vector3.zero, Quaternion.identity, Vector3.one); levelBehaviours.Add(behaviour); } for (var i = 0; i < levelBehaviours.Count; i++) { var behaviour = levelBehaviours[i]; if (i < levels.Count) { behaviour.gameObject.SetActive(true); behaviour.UnInit(); behaviour.Init(levels[i]); } else { behaviour.UnInit(); behaviour.gameObject.SetActive(false); } } } } } System/Market.meta
File was deleted UI/Core/ToggleButton.cs
@@ -78,6 +78,14 @@ } } public void SetListener(UnityAction action ) { if (button != null) { button.SetListener(action); } } public void AddListener(UnityAction _action) { if (button != null)