using DG.Tweening;
|
using System;
|
using System.Collections.Generic;
|
using System.Linq;
|
using UnityEngine;
|
|
namespace vnxbqy.UI
|
{
|
public class LianQiActWin : Window
|
{
|
[SerializeField] ButtonEx btnRank;
|
[SerializeField] ButtonEx btnReward;
|
[SerializeField] ButtonEx btnGift;
|
[SerializeField] ButtonEx btnZhanLing;
|
[SerializeField] RedpointBehaviour rankRedPoint;
|
[SerializeField] RedpointBehaviour rewardRedPoint;
|
[SerializeField] RedpointBehaviour giftRedPoint;
|
[SerializeField] RedpointBehaviour zhanLingRedPoint;
|
[SerializeField] RichText txtTip;
|
[SerializeField] TextEx txtTip2;
|
[SerializeField] ButtonEx btnClose;
|
[SerializeField] ScrollerController awardScroller;
|
[SerializeField] Transform transGameEnd;
|
[SerializeField] TextEx txtEnd;
|
|
[Header("¸¨ÖúµÀ¾ß")]
|
[SerializeField] List<ItemCell> assistiveItemCells;
|
|
[Header("ÆåÅÌÏà¹Ø")]
|
[SerializeField] DragSelectComponentEx dragSelect;
|
|
[SerializeField] ClickScreenOtherSpace clickScreenOtherSpace;
|
[SerializeField] TextEx txtScore;
|
[SerializeField] List<RectTransform> rectStartPos;
|
RectTransform[][] rectStartPosArr;
|
[SerializeField] List<LianQiActLevel1> level1;
|
LianQiActLevel1[][] level1Arr;
|
[SerializeField] List<LianQiActLevel2> level2;
|
LianQiActLevel2[][] level2Arr;
|
|
[Header("ÌåÁ¦ºÍ»Ø¸´Ê±¼ä")]
|
[SerializeField] TextEx txtEnergy;
|
|
[SerializeField] Transform transEnergyTime;
|
[SerializeField] TextEx txtEnergyTime;
|
|
[Header("ºÏ³ÉÎïÆ·Õ¹Ê¾¿ò")]
|
[SerializeField] RectTransform transItemInfoUI;
|
|
[SerializeField] TextEx txtItemName;
|
[SerializeField] RichText txtInfo;
|
[SerializeField] ImageEx imgItem;
|
[SerializeField] List<ItemCell> itemCellList;
|
[SerializeField] ClickScreenOtherSpace clickDetector;
|
|
bool itemInfoUIShow = false;
|
LianQiActModel model { get { return ModelCenter.Instance.GetModel<LianQiActModel>(); } }
|
LianQiZhanLingModel zhanLingModel { get { return ModelCenter.Instance.GetModel<LianQiZhanLingModel>(); } }
|
PackModel packModel { get { return ModelCenter.Instance.GetModel<PackModel>(); } }
|
|
protected override void AddListeners()
|
{
|
btnRank.SetListener(() => { WindowCenter.Instance.Open<LianQiRankWin>(); });
|
btnReward.SetListener(() => { WindowCenter.Instance.Open<LianQiRankAwardActWin>(); });
|
btnGift.SetListener(() => { WindowCenter.Instance.Open<LianQiRechargeGiftActWin>(); });
|
btnZhanLing.SetListener(() => { WindowCenter.Instance.Open<LianQiZhanLingWin>(); });
|
btnClose.SetListener(CloseClick);
|
clickScreenOtherSpace.RemoveAllListeners();
|
clickScreenOtherSpace.AddListener(() =>
|
{
|
if (!model.isUseTool)
|
return;
|
InitPanel();
|
});
|
clickDetector.RemoveAllListeners();
|
clickDetector.AddListener(() =>
|
{
|
itemInfoUIShow = false;
|
transItemInfoUI.SetActive(itemInfoUIShow);
|
});
|
|
for (int i = 0; i < level2.Count; i++)
|
{
|
int index = i;
|
level2[i].btnChoose.SetListener(() =>
|
{
|
if (!model.isUseTool)
|
return;
|
if (!model.isStartChoose)
|
return;
|
if (model.nowAssistiveItemNum == 1 && model.isChoose1)
|
return;
|
if (model.nowAssistiveItemNum == 2 && model.isChoose1 && model.isChoose2)
|
return;
|
if (model.nowAssistiveItemNum == 3 && model.isChoose1)
|
return;
|
if (model.nowAssistiveItemNum == 4)
|
return;
|
|
if (model.nowAssistiveItemNum == 2)
|
{
|
//ÆåÅÌÉÏÖ»ÓÐÒ»¸öÎïÆ·Ê±£¬ÎÞ·¨½»»»
|
if (model.PieceCount(model.nowGridData) <= 1)
|
{
|
SysNotifyMgr.Instance.ShowTip("LianQiAct08");
|
return;
|
}
|
}
|
|
if (model.nowAssistiveItemNum == 3 && model.nowGridData[level2[index].row][level2[index].col] >= model.jiuTianYunTieLevelLimit)
|
{
|
SysNotifyMgr.Instance.ShowTip("LianQiAct04");
|
InitPanel();
|
return;
|
}
|
|
level2[index].isChooseShow = !level2[index].isChooseShow;
|
level2[index].imgChoose.SetActive(level2[index].isChooseShow);
|
|
if (!model.isChoose1)
|
{
|
model.useRow1 = level2[index].row;
|
model.useCol1 = level2[index].col;
|
model.isChoose1 = true;
|
}
|
else if (!model.isChoose2)
|
{
|
if (level2[index].row == model.useRow1 && level2[index].col == model.useCol1)
|
{
|
SysNotifyMgr.Instance.ShowTip("LianQiAct07");
|
InitPanel();
|
return;
|
}
|
|
model.useRow2 = level2[index].row;
|
model.useCol2 = level2[index].col;
|
model.isChoose2 = true;
|
}
|
});
|
}
|
}
|
|
protected override void BindController()
|
{
|
}
|
|
protected override void OnPreOpen()
|
{
|
model.isWaitReStart = false;
|
model.isPause = false;
|
model.isUseTool = false;
|
model.OnDisplayItemInfoAction += OnDisplayItemInfoAction;
|
awardScroller.OnRefreshCell += OnRefreshAwardCell;
|
GlobalTimeEvent.Instance.secondEvent += OnSecondEvent;
|
dragSelect.onDragComplete += OnDragComplete;
|
model.OnLianqiPlayerInfoAction += OnLianqiPlayerInfoAction;
|
packModel.refreshItemCountEvent += OnRefreshItemCountEvent;
|
FuncOpen.Instance.OnFuncStateChangeEvent += OnFunctionStateChange;
|
InitPanel();
|
InitRedPoint();
|
btnZhanLing.SetActive(FuncOpen.Instance.IsFuncOpen(zhanLingModel.FuncId));
|
|
OperationLianQiCross act;
|
OperationTimeHepler.Instance.TryGetOperation(LianQiActModel.operaTypeCross, out act);
|
if (act == null)
|
return;
|
|
itemInfoUIShow = false;
|
transItemInfoUI.SetActive(itemInfoUIShow);
|
|
DisplayUI();
|
DisplayAssistiveItem();
|
transGameEnd.SetActive(!model.IsJoin);
|
if (!model.IsJoin)
|
{
|
var nowTime = ILTimeUtility.ServerCrossNow;
|
DateTime dateTime = new DateTime(nowTime.Year, nowTime.Month, nowTime.Day, act.joinStartHour, act.joinStartMinute, 0);
|
txtEnd.text = Language.Get(nowTime < dateTime ? "OSCActivityNotOpen" : "LianQi18");
|
}
|
}
|
|
protected override void OnPreClose()
|
{
|
model.OnDisplayItemInfoAction -= OnDisplayItemInfoAction;
|
awardScroller.OnRefreshCell -= OnRefreshAwardCell;
|
GlobalTimeEvent.Instance.secondEvent -= OnSecondEvent;
|
dragSelect.onDragComplete -= OnDragComplete;
|
model.OnLianqiPlayerInfoAction -= OnLianqiPlayerInfoAction;
|
packModel.refreshItemCountEvent -= OnRefreshItemCountEvent;
|
FuncOpen.Instance.OnFuncStateChangeEvent -= OnFunctionStateChange;
|
}
|
|
private void OnFunctionStateChange(int obj)
|
{
|
if (obj != zhanLingModel.FuncId)
|
return;
|
btnZhanLing.SetActive(FuncOpen.Instance.IsFuncOpen(zhanLingModel.FuncId));
|
}
|
|
private void OnRefreshItemCountEvent(PackType type, int arg2, int arg3)
|
{
|
if (model.assistiveItemArr.IsNullOrEmpty())
|
return;
|
if (type != PackType.Item && !model.assistiveItemArr.Contains(arg3))
|
return;
|
DisplayUI();
|
}
|
|
private void OnDragComplete(int direction)
|
{
|
model.isPause = false;
|
OperationLianQiCross act;
|
OperationTimeHepler.Instance.TryGetOperation(LianQiActModel.operaTypeCross, out act);
|
if (act == null)
|
return;
|
|
if (model.nowPlayerInfo == null)
|
return;
|
|
if (!WindowCenter.Instance.IsOpen<LianQiActWin>())
|
return;
|
|
//µ±Ç°·Ç»î¶¯²ÎÓëʱ¼ä£¬Çë²Î¿¼¾ßÌå»î¶¯Ê±¼ä
|
if (!model.IsJoin)
|
{
|
SysNotifyMgr.Instance.ShowTip("ActionUnOpen1");
|
return;
|
}
|
|
//ÌåÁ¦²»×ã
|
bool isEnergyEnough = model.IsEnergyEnough(model.nowPlayerInfo.Energy);
|
if (!isEnergyEnough)
|
{
|
SysNotifyMgr.Instance.ShowTip("LianQiAct01");
|
model.isUseTool = true;
|
int index = 3;
|
model.nowAssistiveItemNum = index + 1;
|
int itemID = model.assistiveItemArr[index];
|
model.nowAssistiveItemId = itemID;
|
WindowCenter.Instance.Open<LianQiItemInfoDoubleWin>();
|
return;
|
}
|
|
InitPanel();
|
|
switch (direction)
|
{
|
case 1:
|
if (!model.IsCanMove(model.nowGridData, 4))
|
{
|
SysNotifyMgr.Instance.ShowTip("LianqiMoveUnable");
|
return;
|
}
|
model.SendMoveOP(4);
|
break;
|
|
case -1:
|
if (!model.IsCanMove(model.nowGridData, 3))
|
{
|
SysNotifyMgr.Instance.ShowTip("LianqiMoveUnable");
|
return;
|
}
|
model.SendMoveOP(3);
|
break;
|
|
case 2:
|
if (!model.IsCanMove(model.nowGridData, 1))
|
{
|
SysNotifyMgr.Instance.ShowTip("LianqiMoveUnable");
|
return;
|
}
|
model.SendMoveOP(1);
|
break;
|
|
case -2:
|
if (!model.IsCanMove(model.nowGridData, 2))
|
{
|
SysNotifyMgr.Instance.ShowTip("LianqiMoveUnable");
|
return;
|
}
|
model.SendMoveOP(2);
|
break;
|
}
|
}
|
|
private void OnDisplayItemInfoAction(int obj, Vector3 vector3)
|
{
|
DisplayItemInfo(obj, vector3);
|
}
|
|
private void OnSecondEvent()
|
{
|
OperationLianQiCross act;
|
OperationTimeHepler.Instance.TryGetOperation(LianQiActModel.operaTypeCross, out act);
|
if (act == null)
|
return;
|
if (model.nowPlayerInfo == null)
|
return;
|
SecondChange();
|
transGameEnd.SetActive(!model.IsJoin);
|
if (!model.IsJoin)
|
{
|
var nowTime = ILTimeUtility.ServerCrossNow;
|
DateTime dateTime = new DateTime(nowTime.Year, nowTime.Month, nowTime.Day, act.joinStartHour, act.joinStartMinute, 0);
|
txtEnd.text = Language.Get(nowTime < dateTime ? "OSCActivityNotOpen" : "LianQi18");
|
}
|
}
|
|
protected override void OnAfterOpen()
|
{
|
CreateAwardScroller();
|
}
|
|
protected override void OnAfterClose()
|
{
|
}
|
|
private void OnRefreshAwardCell(ScrollerDataType type, CellView cell)
|
{
|
var _cell = cell.GetComponent<LianQiAwardActCell>();
|
_cell?.Display(cell.index);
|
}
|
|
private void CreateAwardScroller()
|
{
|
awardScroller.Refresh();
|
Dictionary<int, List<Item>> correspondingRewards = model.correspondingRewards;
|
var arr = correspondingRewards.Keys.ToArray();
|
for (int i = 0; i < arr.Length; i++)
|
{
|
awardScroller.AddCell(ScrollerDataType.Header, i);
|
}
|
awardScroller.Restart();
|
awardScroller.JumpIndex(model.RewardJumpIndex());
|
}
|
|
private void InitRedPoint()
|
{
|
rankRedPoint.redpointId = MainRedDot.LianQiRepoint * 10 + 1;
|
rewardRedPoint.redpointId = MainRedDot.LianQiRepoint * 10 + 2;
|
giftRedPoint.redpointId = MainRedDot.LianQiRepoint * 10 + 3;
|
zhanLingRedPoint.redpointId = MainRedDot.LianQiRepoint * 10 + 4;
|
}
|
|
private void SecondChange()
|
{
|
// »ñÈ¡±ØÒª×é¼þ
|
OperationLianQiCross act;
|
if (!OperationTimeHepler.Instance.TryGetOperation(LianQiActModel.operaTypeCross, out act) ||
|
model.nowPlayerInfo == null)
|
return;
|
|
int currentTime = TimeUtility.AllSeconds;
|
int rSecond = model.rSecond;
|
int energyTime = (int)model.nowPlayerInfo.EnergyTime;
|
|
if (energyTime == 0)
|
{
|
transEnergyTime.SetActive(false);
|
return;
|
}
|
|
//DebugEx.Log($"currentTime {TimeUtility.SecondsToDHMS(currentTime)} {currentTime} " +
|
// $"energyTime {TimeUtility.SecondsToDHMS(energyTime)} {energyTime} " +
|
// $"res {TimeUtility.SecondsToDHMS(rSecond - (currentTime - energyTime))}");
|
|
int resTime = rSecond - (currentTime - energyTime);
|
if (rSecond > 0)
|
{
|
//µ¹¼ÆÊ±¼ÆËã= »Ö¸´ÌåÁ¦ËùÐèʱ¼ä - (µ±Ç°Ê±¼ä - EnergyTime)
|
txtEnergyTime.text = TimeUtility.SecondsToDHMS(resTime);
|
transEnergyTime.SetActive(true);
|
}
|
else
|
{
|
transEnergyTime.SetActive(false);
|
}
|
}
|
|
private void DisplayAssistiveItem()
|
{
|
if (model.assistiveItemArr != null)
|
{
|
for (int i = 0; i < assistiveItemCells.Count; i++)
|
{
|
if (i < model.assistiveItemArr.Length)
|
{
|
int index = i;
|
ItemCell cell = assistiveItemCells[i];
|
int itemID = model.assistiveItemArr[i];
|
int count = packModel.GetItemCountByID(PackType.Item, itemID);
|
cell.Init(new ItemCellModel(itemID, false, (ulong)count));
|
cell.countText.SetActive(true);
|
cell.countText.text = count.ToString();
|
cell.button.SetListener(() =>
|
{
|
if (model.isPlayAssistiveItemAnimation)
|
return;
|
|
model.isUseTool = true;
|
model.nowAssistiveItemNum = index + 1;
|
model.nowAssistiveItemId = itemID;
|
if (model.nowAssistiveItemNum == 4)
|
{
|
WindowCenter.Instance.Open<LianQiItemInfoDoubleWin>();
|
}
|
else
|
{
|
WindowCenter.Instance.Open<LianQiItemInfoWin>();
|
}
|
});
|
assistiveItemCells[i].SetActive(true);
|
}
|
else
|
{
|
assistiveItemCells[i].SetActive(false);
|
}
|
}
|
}
|
}
|
|
protected override void LateUpdate()
|
{
|
if (model.nowGridData == null)
|
return;
|
|
if (model.isUseTool)
|
{
|
if (model.nowAssistiveItemNum == 1 & model.isStartChoose && model.isChoose1)
|
{
|
int awardLv = model.nowGridData[model.useRow1][model.useCol1];
|
LianQiCompositeItemInfo itemInfo;
|
if (!model.TryGetCompositeItemInfoByAwardLv(awardLv, out itemInfo) || itemInfo == null)
|
return;
|
int itemID = model.nowAssistiveItemId;
|
if (!ItemConfig.Has(itemID))
|
return;
|
ItemConfig itemConfig = ItemConfig.Get(itemID);
|
if (model.isSkip1)
|
{
|
model.isUseTool = false;
|
if (model.IsCanSendUseItem())
|
{
|
model.SendUseOP(1, 0, model.useRow1, model.useCol1);
|
}
|
else
|
{
|
InitPanel();
|
}
|
}
|
else
|
{
|
ConfirmCancel.ToggleConfirmCancelEx(Language.Get("Mail101"), Language.Get("LianQi16", itemInfo.Name, itemConfig.ItemName), Language.Get("ConfirmCancel102"), OnConfirm1, OnConfirm1,model.isSkip1);
|
}
|
}
|
else if (model.nowAssistiveItemNum == 2 && model.isStartChoose && model.isChoose1 && model.isChoose2)
|
{
|
int awardLv = model.nowGridData[model.useRow1][model.useCol1];
|
LianQiCompositeItemInfo itemInfo;
|
if (!model.TryGetCompositeItemInfoByAwardLv(awardLv, out itemInfo) || itemInfo == null)
|
return;
|
awardLv = model.nowGridData[model.useRow2][model.useCol2];
|
LianQiCompositeItemInfo itemInfo2;
|
if (!model.TryGetCompositeItemInfoByAwardLv(awardLv, out itemInfo2) || itemInfo == null)
|
return;
|
|
int itemID = model.nowAssistiveItemId;
|
if (!ItemConfig.Has(itemID))
|
return;
|
ItemConfig itemConfig = ItemConfig.Get(itemID);
|
if (model.isSkip2)
|
{
|
model.isUseTool = false;
|
if (model.IsCanSendUseItem())
|
{
|
model.SendUseOP(1, 1, model.useRow1, model.useCol1, model.useRow2, model.useCol2);
|
}
|
else
|
{
|
InitPanel();
|
}
|
}
|
else
|
{
|
ConfirmCancel.ToggleConfirmCancelEx(Language.Get("Mail101"), Language.Get("LianQi17", itemConfig.ItemName, itemInfo.Name, itemInfo2.Name), Language.Get("ConfirmCancel102"), OnConfirm2, OnConfirm2, model.isSkip2);
|
}
|
}
|
else if (model.nowAssistiveItemNum == 3 & model.isStartChoose && model.isChoose1)
|
{
|
int awardLv = model.nowGridData[model.useRow1][model.useCol1];
|
LianQiCompositeItemInfo itemInfo;
|
if (!model.TryGetCompositeItemInfoByAwardLv(awardLv, out itemInfo) || itemInfo == null)
|
return;
|
int itemID = model.nowAssistiveItemId;
|
if (!ItemConfig.Has(itemID))
|
return;
|
ItemConfig itemConfig = ItemConfig.Get(itemID);
|
if (model.isSkip3)
|
{
|
model.isUseTool = false;
|
if (model.IsCanSendUseItem())
|
{
|
model.SendUseOP(1, 2, model.useRow1, model.useCol1);
|
}
|
else
|
{
|
InitPanel();
|
}
|
|
}
|
else
|
{
|
ConfirmCancel.ToggleConfirmCancelEx(Language.Get("Mail101"), Language.Get("LianQi16", itemInfo.Name, itemConfig.ItemName), Language.Get("ConfirmCancel102"), OnConfirm3, OnConfirm3, model.isSkip3);
|
}
|
}
|
}
|
|
bool isDeadLock = model.IsDeadLock(model.nowGridData);
|
if (isDeadLock)
|
{
|
if (WindowCenter.Instance.IsOpen<LianQiRoundSettlementWin>())
|
return;
|
if (WindowCenter.Instance.IsOpen<LianQiItemInfoDoubleWin>())
|
return;
|
if (WindowCenter.Instance.IsOpen<LianQiItemInfoWin>())
|
return;
|
if (!model.IsJoin)
|
return;
|
if (model.isWaitReStart)
|
return;
|
if (model.isPause)
|
return;
|
if (model.isUseTool)
|
return;
|
if (!WindowCenter.Instance.IsOpen<LianQiPopTipWin>())
|
WindowCenter.Instance.Open<LianQiPopTipWin>();
|
return;
|
}
|
}
|
|
private void OnConfirm1(bool _ok, bool isToggle)
|
{
|
model.isSkip1 = isToggle;
|
model.isUseTool = false;
|
if (_ok && model.IsCanSendUseItem())
|
{
|
model.SendUseOP(1, 0, model.useRow1, model.useCol1);
|
}
|
else
|
{
|
InitPanel();
|
}
|
}
|
|
private void OnConfirm2(bool _ok, bool isToggle)
|
{
|
model.isSkip2 = isToggle;
|
model.isUseTool = false;
|
if (_ok && model.IsCanSendUseItem())
|
{
|
model.SendUseOP(1, 1, model.useRow1, model.useCol1, model.useRow2, model.useCol2);
|
}
|
else
|
{
|
InitPanel();
|
}
|
}
|
|
private void OnConfirm3(bool _ok, bool isToggle)
|
{
|
model.isSkip3 = isToggle;
|
model.isUseTool = false;
|
if (_ok && model.IsCanSendUseItem())
|
{
|
model.SendUseOP(1, 2, model.useRow1, model.useCol1);
|
}
|
else
|
{
|
InitPanel();
|
}
|
}
|
|
Sequence sequence;
|
string uiFrameKey = "LSZC";
|
|
private void OnLianqiPlayerInfoAction()
|
{
|
if (model.nowPlayerInfo == null)
|
return;
|
|
DisplayUI();
|
|
int[][] nowGridData = model.nowGridData;
|
int[][] lastGridData = model.lastGridData;
|
|
if (lastGridData.IsNullOrEmpty())
|
return;
|
|
if (model.nowPlayerInfo.OPType == 1)
|
{
|
if (model.nowPlayerInfo.MoveList.Length > 0)
|
{
|
sequence = DOTween.Sequence();
|
for (int i = 0; i < model.nowPlayerInfo.MoveList.Length; i++)
|
{
|
var move = model.nowPlayerInfo.MoveList[i];
|
var girdLevel1From = level1Arr[move.Row][move.Col];
|
var girdLevel1To = level1Arr[move.ToRow][move.ToCol];
|
var girdLevel2From = level2Arr[move.Row][move.Col];
|
var girdLevel2To = level2Arr[move.ToRow][move.ToCol];
|
var StartPosFrom = rectStartPosArr[move.Row][move.Col];
|
var StartPosTo = rectStartPosArr[move.ToRow][move.ToCol];
|
model.SetTextLv(girdLevel1From.txtLv, lastGridData[move.Row][move.Col]);
|
model.SetSprite(girdLevel1From.imgItem, lastGridData[move.Row][move.Col]);
|
model.SetActive(girdLevel2From.imgItem, false);
|
sequence.Join(girdLevel1From.transform.DOMove(rectStartPosArr[move.ToRow][move.ToCol].position, 0.1f).SetEase(Ease.Linear).OnComplete(() =>
|
{
|
model.SetTextLv(girdLevel2To.txtLv, nowGridData[move.ToRow][move.ToCol]);
|
model.SetSprite(girdLevel2To.imgItem, nowGridData[move.ToRow][move.ToCol]);
|
model.SetActive(girdLevel1From.imgItem, false);
|
girdLevel1From.transform.position = StartPosFrom.position;
|
|
if (nowGridData[move.ToRow][move.ToCol] > lastGridData[move.Row][move.Col])
|
{
|
girdLevel2To.imgTx.transform.localScale = Vector3.zero;
|
Color imageColor = girdLevel2To.imgTx.color;
|
imageColor.a = 1;
|
girdLevel2To.imgTx.color = imageColor;
|
girdLevel2To.imgTx.transform.DOScale(1, 0.2f).SetEase(Ease.Linear).OnComplete(() =>
|
{
|
girdLevel2To.imgTx.DOFade(0, 0.3f).SetEase(Ease.Linear);
|
});
|
}
|
}));
|
}
|
sequence.OnComplete(() =>
|
{
|
InitPanel();
|
});
|
}
|
}
|
else if (model.nowPlayerInfo.OPType == 2)
|
{
|
if (model.nowAssistiveItemNum == 1)
|
{
|
model.isPlayAssistiveItemAnimation = true;
|
var grid = level2Arr[model.useRow1][model.useCol1];
|
grid.uiFrame.SetActive(true);
|
grid.uiFrame.SetLoopCount(1);
|
grid.uiFrame.ResetFrame(uiFrameKey);
|
Clock.AlarmAfter(0.5f, () => { InitPanel(); });
|
}
|
else if (model.nowAssistiveItemNum == 2)
|
{
|
model.isPlayAssistiveItemAnimation = true;
|
var grid1Level1 = level1Arr[model.useRow1][model.useCol1];
|
var grid1Level2 = level2Arr[model.useRow1][model.useCol1];
|
var grid2Level1 = level1Arr[model.useRow2][model.useCol2];
|
var grid2Level2 = level2Arr[model.useRow2][model.useCol2];
|
var startPos1 = rectStartPosArr[model.useRow1][model.useCol1];
|
var startPos2 = rectStartPosArr[model.useRow2][model.useCol2];
|
|
sequence = DOTween.Sequence();
|
sequence.Join(grid1Level1.transform.DOMove(startPos2.position, 0.5f).SetEase(Ease.Linear)
|
.OnStart(() =>
|
{
|
model.SetTextLv(grid1Level1.txtLv, lastGridData[model.useRow1][model.useCol1]);
|
model.SetSprite(grid1Level1.imgItem, lastGridData[model.useRow1][model.useCol1]);
|
model.SetActive(grid1Level2.imgItem, false);
|
})
|
.OnComplete(() =>
|
{
|
model.SetActive(grid1Level1.imgItem, false);
|
model.SetSprite(grid1Level2.imgItem, nowGridData[model.useRow1][model.useCol1]);
|
model.SetTextLv(grid1Level2.txtLv, nowGridData[model.useRow1][model.useCol1]);
|
grid1Level1.transform.position = startPos1.position;
|
}));
|
|
sequence.Join(grid2Level1.transform.DOMove(startPos1.position, 0.5f).SetEase(Ease.Linear)
|
.OnStart(() =>
|
{
|
model.SetTextLv(grid2Level1.txtLv, lastGridData[model.useRow2][model.useCol2]);
|
model.SetSprite(grid2Level1.imgItem, lastGridData[model.useRow2][model.useCol2]);
|
model.SetActive(grid2Level2.imgItem, false);
|
})
|
.OnComplete(() =>
|
{
|
model.SetActive(grid2Level1.imgItem, false);
|
model.SetSprite(grid2Level2.imgItem, nowGridData[model.useRow2][model.useCol2]);
|
model.SetTextLv(grid2Level2.txtLv, nowGridData[model.useRow2][model.useCol2]);
|
grid1Level2.transform.position = startPos2.position;
|
}));
|
sequence.OnComplete(() =>
|
{
|
InitPanel();
|
});
|
}
|
else if (model.nowAssistiveItemNum == 3)
|
{
|
model.isPlayAssistiveItemAnimation = true;
|
var grid = level2Arr[model.useRow1][model.useCol1];
|
grid.imgTx.transform.localScale = Vector3.zero;
|
Color imageColor = grid.imgTx.color;
|
imageColor.a = 1;
|
grid.imgTx.color = imageColor;
|
sequence = DOTween.Sequence();
|
sequence.Join(grid.imgTx.transform.DOScale(1, 0.2f).SetEase(Ease.Linear).OnComplete(() =>
|
{
|
grid.imgTx.DOFade(0, 0.3f).SetEase(Ease.Linear).OnComplete(() =>
|
{
|
InitPanel();
|
});
|
}));
|
}
|
}
|
else if (model.nowPlayerInfo.OPType == 3)
|
{
|
InitPanel();
|
}
|
}
|
|
private void DisplayUI()
|
{
|
OperationLianQiCross act;
|
OperationTimeHepler.Instance.TryGetOperation(LianQiActModel.operaTypeCross, out act);
|
if (act == null)
|
return;
|
if (model.nowPlayerInfo == null)
|
return;
|
txtTip.text = StringUtility.Contact(Language.Get("RidingPetBossQuestTime", act.ToDisplayTime()), " ", Language.Get("LianQi05", act.ToDisplayJoinTime()), " ", Language.Get("LianQi04"));
|
txtTip2.text = Language.Get("LianQi19", act.resetType == 0 ? "0" : "5");
|
txtEnergy.text = Language.Get("BlessedLand036", model.nowPlayerInfo.Energy, model.maxEnergy);
|
txtScore.text = Language.Get("LianQi07", model.nowPlayerInfo.Score);
|
DisplayAssistiveItem();
|
awardScroller.m_Scorller.RefreshActiveCellViews();
|
}
|
|
private void DisplayItemInfo(int awardLv, Vector3 vector3)
|
{
|
List<Item> rewards;
|
if (!model.correspondingRewards.TryGetValue(awardLv, out rewards) || rewards == null)
|
return;
|
LianQiCompositeItemInfo itemInfo;
|
if (!model.TryGetCompositeItemInfoByAwardLv(awardLv, out itemInfo) || itemInfo == null)
|
return;
|
|
txtItemName.text = itemInfo.Name;
|
txtInfo.text = itemInfo.Description;
|
imgItem.SetSprite(itemInfo.Icon);
|
|
for (int i = 0; i < itemCellList.Count; i++)
|
{
|
ItemCell cell = itemCellList[i];
|
if (i < rewards.Count)
|
{
|
Item item = rewards[i];
|
cell.Init(new ItemCellModel(item.id, false, (ulong)item.count));
|
cell.SetActive(true);
|
cell.button.SetListener(() =>
|
{
|
ItemTipUtility.Show(item.id);
|
});
|
}
|
else
|
{
|
cell.SetActive(false);
|
}
|
}
|
|
transItemInfoUI.position = vector3;
|
float width = transItemInfoUI.rect.width;
|
float x = (1334 / 2 - width / 2) / 100;
|
if (transItemInfoUI.position.x < -x)
|
transItemInfoUI.position = new Vector3(-x, transItemInfoUI.position.y, transItemInfoUI.position.z);
|
if (transItemInfoUI.position.x > x)
|
transItemInfoUI.position = new Vector3(x, transItemInfoUI.position.y, transItemInfoUI.position.z);
|
|
itemInfoUIShow = true;
|
transItemInfoUI.SetActive(itemInfoUIShow);
|
}
|
|
private void InitPanel()
|
{
|
sequence.Kill();
|
|
rectStartPosArr = RectTransListToArr(rectStartPos);
|
level1Arr = LianQiActLevelListToArr(level1);
|
level2Arr = LianQiActLevelListToArr(level2);
|
model.isPlayAssistiveItemAnimation = false;
|
model.isUseTool = false;
|
model.isStartChoose = false;
|
model.isChoose1 = false;
|
model.isChoose2 = false;
|
|
for (int i = 0; i < model.MaxGridCount; i++)
|
{
|
model.SetActive(level1[i].imgItem, false);
|
model.SetActive(level2[i].imgItem, false);
|
level1[i].transform.localPosition = rectStartPos[i].transform.localPosition;
|
level2[i].transform.localPosition = rectStartPos[i].transform.localPosition;
|
level2[i].imgTx.transform.localScale = new Vector3(0, 0, 0);
|
level2[i].imgChoose.SetActive(false);
|
Color imageColor = level2[i].imgTx.color;
|
imageColor.a = 1;
|
level2[i].imgTx.color = imageColor;
|
level2[i].isChooseShow = false;
|
level2[i].imgChoose.SetActive(level2[i].isChooseShow);
|
level2[i].uiFrame.SetActive(false);
|
}
|
|
if (model.nowPlayerInfo == null)
|
return;
|
int[][] gridData = model.nowGridData;
|
|
if (!gridData.IsNullOrEmpty())
|
{
|
for (int i = 0; i < gridData.Length; i++)
|
{
|
for (int j = 0; j < gridData[i].Length; j++)
|
{
|
if (gridData[i][j] > 0)
|
{
|
level2Arr[i][j].imgItem.SetSprite(StringUtility.Contact("LianQiCompositeItemIcon", "_", gridData[i][j]));
|
model.SetTextLv(level2Arr[i][j].txtLv, gridData[i][j]);
|
model.SetActive(level2Arr[i][j].imgItem, true);
|
}
|
}
|
}
|
}
|
}
|
|
private RectTransform[][] RectTransListToArr(List<RectTransform> list)
|
{
|
int maxRowGrid = model.MaxGridRows;
|
int maxLineGrid = model.MaxGridCols;
|
|
RectTransform[][] rectStartPosArr = new RectTransform[maxRowGrid][];
|
for (int i = 0; i < maxRowGrid; i++)
|
{
|
rectStartPosArr[i] = new RectTransform[maxLineGrid];
|
}
|
|
int index = 0;
|
for (int i = 0; i < maxRowGrid; i++)
|
{
|
for (int j = 0; j < maxLineGrid; j++)
|
{
|
rectStartPosArr[i][j] = list[index];
|
index++;
|
}
|
}
|
|
return rectStartPosArr;
|
}
|
|
private LianQiActLevel1[][] LianQiActLevelListToArr(List<LianQiActLevel1> list)
|
{
|
int maxRowGrid = model.MaxGridRows;
|
int maxLineGrid = model.MaxGridCols;
|
|
LianQiActLevel1[][] rectStartPosArr = new LianQiActLevel1[maxRowGrid][];
|
for (int i = 0; i < maxRowGrid; i++)
|
{
|
rectStartPosArr[i] = new LianQiActLevel1[maxLineGrid];
|
}
|
|
int index = 0;
|
for (int i = 0; i < maxRowGrid; i++)
|
{
|
for (int j = 0; j < maxLineGrid; j++)
|
{
|
rectStartPosArr[i][j] = list[index];
|
index++;
|
}
|
}
|
|
return rectStartPosArr;
|
}
|
|
private LianQiActLevel2[][] LianQiActLevelListToArr(List<LianQiActLevel2> list)
|
{
|
int maxRowGrid = model.MaxGridRows;
|
int maxLineGrid = model.MaxGridCols;
|
|
LianQiActLevel2[][] rectStartPosArr = new LianQiActLevel2[maxRowGrid][];
|
for (int i = 0; i < maxRowGrid; i++)
|
{
|
rectStartPosArr[i] = new LianQiActLevel2[maxLineGrid];
|
}
|
|
int index = 0;
|
for (int i = 0; i < maxRowGrid; i++)
|
{
|
for (int j = 0; j < maxLineGrid; j++)
|
{
|
rectStartPosArr[i][j] = list[index];
|
index++;
|
}
|
}
|
|
return rectStartPosArr;
|
}
|
}
|
}
|