//-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Tuesday, July 16, 2019 //-------------------------------------------------------- using UnityEngine; using System.Collections; using UnityEngine.UI; using System; using System.Collections.Generic; namespace Snxxz.UI { public class EquipStarMaterialSelectModel : Model { public event Action materialSelectEvent; List selectedMaterials = new List(); EquipStarModel starModel { get { return ModelCenter.Instance.GetModel(); } } public override void Init() { } public override void UnInit() { } public void InitMaterials(List materials) { selectedMaterials.AddRange(materials); } public void AddMaterial(string guid) { if (CalculateSuccessRate() > 0.999f) { SysNotifyMgr.Instance.ShowTip("StarLevelUp6"); return; } if (!selectedMaterials.Contains(guid)) { selectedMaterials.Add(guid); if (materialSelectEvent != null) { materialSelectEvent(); } } } public void RemoveMaterial(string guid) { if (selectedMaterials.Contains(guid)) { selectedMaterials.Remove(guid); if (materialSelectEvent != null) { materialSelectEvent(); } } } public bool IsSelectedMaterial(string guid) { return selectedMaterials.Contains(guid); } public void ClearSelectedMaterials() { selectedMaterials.Clear(); } public List GetSelectedMaterials() { return selectedMaterials; } public float CalculateSuccessRate() { var rate = 0f; var equipPosition = new Int2(starModel.selectedLevel.value, starModel.selectedPlace.value); foreach (var material in selectedMaterials) { rate += starModel.GetMaterialSuccessRate(equipPosition, material); } // 95%以上概率 则为100% if (rate >= 0.95 && rate < 1) rate = 1f; return rate; } } }