using System;
|
using UnityEngine;
|
using UnityEngine.UI;
|
using TableConfig;
|
using System.Collections.Generic;
|
using System.Collections;
|
|
namespace Snxxz.UI
|
{
|
public class RoleElixirTipWin : MonoBehaviour
|
{
|
[SerializeField] ScrollerController ctrl;
|
[SerializeField] CanvasGroup canvas;
|
PlayerPackModel _playerPack;
|
PlayerPackModel playerPack
|
{
|
get { return _playerPack ?? (_playerPack = ModelCenter.Instance.GetModel<PlayerPackModel>()); }
|
}
|
|
List<AttrFruitConfig> fruitlist;
|
public static int makeUseId = 0;
|
[SerializeField] float offest = 50;
|
int presentIndex = 0;
|
|
private void OnEnable()
|
{
|
ctrl.OnRefreshCell += RefreshMakeDrugCell;
|
ctrl.lockType = EnhanceLockType.KeepVertical;
|
canvas.alpha = 0;
|
presentIndex = 0;
|
CreateCell();
|
CheckJumpToModel();
|
ModelCenter.Instance.GetModel<BlastFurnaceModel>().IsMakeDrugWin = true;
|
}
|
|
private void OnDisable()
|
{
|
ctrl.OnRefreshCell -= RefreshMakeDrugCell;
|
ModelCenter.Instance.GetModel<BlastFurnaceModel>().IsMakeDrugWin = false;
|
}
|
|
private void CheckJumpToModel()
|
{
|
if(AchievementGoto.guideAchievementId != 0)
|
{
|
SuccessConfig successConfig = Config.Instance.Get<SuccessConfig>(AchievementGoto.guideAchievementId);
|
if(successConfig.Type == 94 && successConfig.Jump == (int)JumpUIType.MakeDrug)
|
{
|
bool isCanUse = false;
|
for (int i = 0; i < fruitlist.Count; i++)
|
{
|
if(successConfig.Condition != null && successConfig.Condition.Length > 0)
|
{
|
if (fruitlist[i].ID == successConfig.Condition[0])
|
{
|
int haveCnt = playerPack.GetItemCountByID(PackType.rptItem, fruitlist[i].ID);
|
if(haveCnt > 0)
|
{
|
isCanUse = true;
|
}
|
presentIndex = i;
|
ctrl.JumpIndex(i);
|
ctrl.m_Scorller.RefreshActiveCellViews();
|
break;
|
}
|
}
|
|
}
|
if(!isCanUse)
|
{
|
MessageWin.Inst.ShowFixedTip(Language.Get("RoleElixir3"));
|
}
|
AchievementGoto.guideAchievementId = 0;
|
}
|
else
|
{
|
for (int i = 0; i < fruitlist.Count; i++)
|
{
|
int haveCnt = playerPack.GetItemCountByID(PackType.rptItem, fruitlist[i].ID);
|
if (haveCnt > 0)
|
{
|
presentIndex = i;
|
ctrl.JumpIndex(i);
|
ctrl.m_Scorller.RefreshActiveCellViews();
|
break;
|
}
|
}
|
}
|
}
|
else
|
{
|
if(makeUseId != 0)
|
{
|
for (int i = 0; i < fruitlist.Count; i++)
|
{
|
if (fruitlist[i].ID == makeUseId)
|
{
|
presentIndex = i;
|
ctrl.JumpIndex(i);
|
ctrl.m_Scorller.RefreshActiveCellViews();
|
break;
|
}
|
}
|
makeUseId = 0;
|
}
|
else
|
{
|
ctrl.JumpIndex(0);
|
}
|
}
|
|
StartCoroutine(SetOffestPos());
|
}
|
|
private IEnumerator SetOffestPos()
|
{
|
yield return null;
|
if (presentIndex != 0)
|
{
|
ctrl.JumpIndex(-offest, 0, EnhancedUI.EnhancedScroller.EnhancedScroller.TweenType.immediate);
|
}
|
canvas.alpha = 1;
|
}
|
|
private void CreateCell()
|
{
|
fruitlist = playerPack.GetDrugOrderByCnt();
|
if (ctrl.GetNumberOfCells(ctrl.m_Scorller) > 0)
|
{
|
ctrl.m_Scorller.RefreshActiveCellViews();
|
}
|
else
|
{
|
ctrl.Refresh();
|
for (int i = 0; i < fruitlist.Count; i++)
|
{
|
ctrl.AddCell(ScrollerDataType.Header, i);
|
}
|
ctrl.Restart();
|
}
|
|
}
|
|
private void RefreshMakeDrugCell(ScrollerDataType type, CellView cell)
|
{
|
AttrFruitConfig fruitConfig = fruitlist[cell.index];
|
MakeDrugCell drugCell = cell.GetComponent<MakeDrugCell>();
|
drugCell.InitModel(fruitConfig.ID);
|
}
|
|
}
|
}
|