//--------------------------------------------------------
|
// [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<string> selectedMaterials = new List<string>();
|
|
EquipStarModel starModel { get { return ModelCenter.Instance.GetModel<EquipStarModel>(); } }
|
|
public override void Init()
|
{
|
|
}
|
|
public override void UnInit()
|
{
|
|
}
|
|
public void InitMaterials(List<string> 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<string> 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;
|
}
|
|
|
}
|
|
}
|