//--------------------------------------------------------
|
// [Author]: 第二世界
|
// [ Date ]: Thursday, April 18, 2019
|
//--------------------------------------------------------
|
|
using System;
|
using System.Collections;
|
using System.Collections.Generic;
|
using System.Linq;
|
using UnityEngine;
|
using UnityEngine.UI;
|
|
namespace vnxbqy.UI
|
{
|
|
public class AlchemyDrugWin : Window
|
{
|
[SerializeField] AlchemyType m_AlchemyType;
|
[SerializeField] AlchemyScrollBehaviour m_AlchemyScroll;
|
[SerializeField] AlchemyDrugBriefBehaviour m_AlchemyDrug;
|
[SerializeField] AlchemyStudyBehaviour m_AlchemyStudy;
|
[SerializeField] AlchemyBriefBehaviour m_AlchemyBrief;
|
[SerializeField] AlchemyStoveBehaviour m_AlchemyStove;
|
[SerializeField] UIEffect m_StudySuccEffect;
|
|
AlchemyModel model { get { return ModelCenter.Instance.GetModel<AlchemyModel>(); } }
|
PackModel packModel { get { return ModelCenter.Instance.GetModel<PackModel>(); } }
|
#region Built-in
|
protected override void BindController()
|
{
|
}
|
|
protected override void AddListeners()
|
{
|
}
|
|
protected override void OnPreOpen()
|
{
|
model.selectAlchemyType = m_AlchemyType;
|
|
SetDefaultSelect();
|
|
model.jumpAlchemy = 0;
|
|
packModel.refreshItemCountEvent += OnItemCountRefresh;
|
}
|
|
protected override void OnActived()
|
{
|
base.OnActived();
|
|
m_AlchemyScroll.Display((int)m_AlchemyType);
|
DisplayAlchmey();
|
m_AlchemyDrug.Display();
|
m_AlchemyStove.Display();
|
|
model.selectAlchemyRefresh += SelectAlchemyRefresh;
|
model.alchemyStateRefresh += AlchemyStateRefresh;
|
}
|
|
protected override void OnAfterOpen()
|
{
|
}
|
|
protected override void OnPreClose()
|
{
|
m_AlchemyScroll.Dispose();
|
m_AlchemyDrug.Dispose();
|
m_AlchemyStudy.Dispose();
|
m_AlchemyBrief.Dispose();
|
m_AlchemyStove.Dispose();
|
|
model.selectAlchemyRefresh -= SelectAlchemyRefresh;
|
model.alchemyStateRefresh -= AlchemyStateRefresh;
|
packModel.refreshItemCountEvent -= OnItemCountRefresh;
|
}
|
|
protected override void OnAfterClose()
|
{
|
}
|
#endregion
|
private void OnItemCountRefresh(PackType type, int index, int itemId)
|
{
|
|
if (type == PackType.Item)
|
{
|
var itemConfig = ItemConfig.Get(itemId);
|
if (itemConfig.Type == 55) DisplayAlchmey();
|
}
|
|
}
|
void SetDefaultSelect()
|
{
|
int alchemyId = 0;
|
if (model.IsStoveAlcheming(model.selectAlchemyType, out alchemyId))
|
{
|
model.selectAlchemy = alchemyId;
|
return;
|
}
|
|
if (model.jumpAlchemy != 0)
|
{
|
var alchemys = AlchemyConfig.GetAlchemies((int)m_AlchemyType);
|
if (alchemys.Contains(model.jumpAlchemy))
|
{
|
model.selectAlchemy = model.jumpAlchemy;
|
return;
|
}
|
}
|
|
{
|
var alchemys = AlchemyConfig.GetAlchemies((int)m_AlchemyType);
|
foreach (var id in alchemys)
|
{
|
var redpointId = model.GetAlchemyRedpointId(id);
|
if (RedpointCenter.Instance.GetRedpointState(redpointId) == RedPointState.Simple)
|
{
|
model.selectAlchemy = id;
|
return;
|
}
|
}
|
|
model.selectAlchemy = alchemys[0];
|
}
|
}
|
|
private void SelectAlchemyRefresh()
|
{
|
DisplayAlchmey();
|
}
|
|
private void AlchemyStateRefresh()
|
{
|
var lastGrasp = !m_AlchemyStudy.gameObject.activeSelf;
|
|
if (model.isServerPrepare && !lastGrasp && model.IsGraspRecipe(model.selectAlchemy))
|
{
|
m_StudySuccEffect.Play();
|
}
|
|
DisplayAlchmey();
|
|
}
|
|
void DisplayAlchmey()
|
{
|
var grasp = model.IsGraspRecipe(model.selectAlchemy);
|
m_AlchemyStudy.SetActive(!grasp);
|
m_AlchemyBrief.SetActive(grasp);
|
|
if (!grasp)
|
{
|
m_AlchemyStudy.Display();
|
m_AlchemyBrief.Dispose();
|
}
|
else
|
{
|
m_AlchemyBrief.Display();
|
m_AlchemyStudy.Dispose();
|
}
|
}
|
}
|
|
}
|
|
|
|
|