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()); } } List 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().IsMakeDrugWin = true; } private void OnDisable() { ctrl.OnRefreshCell -= RefreshMakeDrugCell; ModelCenter.Instance.GetModel().IsMakeDrugWin = false; } private void CheckJumpToModel() { if(AchievementGoto.guideAchievementId != 0) { SuccessConfig successConfig = Config.Instance.Get(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(); drugCell.InitModel(fruitConfig.ID); } } }