186 lines
5.6 KiB
C#
186 lines
5.6 KiB
C#
|
using System.Collections;
|
|||
|
using System.Collections.Generic;
|
|||
|
using UnityEngine;
|
|||
|
using UnityEngine.UI;
|
|||
|
using GCGame.Table;
|
|||
|
using System;
|
|||
|
using Module.Log;
|
|||
|
|
|||
|
// 诸界试炼
|
|||
|
// 该副本部分数据来源于testDfCopy
|
|||
|
// 本关卡的难度枚举不与之前的公用!
|
|||
|
public class RealmTestingCopy : TestingCopyBase {
|
|||
|
|
|||
|
public UIImgText recomandCombat;
|
|||
|
public Text minCombat; // 最第战斗力 id:8123
|
|||
|
// 进入剩余次数,
|
|||
|
// 足够:8124
|
|||
|
// 不足:8125
|
|||
|
// 当前已通关 :8126
|
|||
|
public Text curDisplayLevel;
|
|||
|
public Button leftBtn;
|
|||
|
public Button rightBtn;
|
|||
|
public Button helpBtn;
|
|||
|
public Image bg;
|
|||
|
public GameObject _BestPassedLevelObj; // 控制最高通关的显示
|
|||
|
public Text remainTimeText; // 今日剩余次数,不同于基类(艺术字)
|
|||
|
public Text maxPassText; // 最高通关
|
|||
|
private int maxPass = 0; //
|
|||
|
|
|||
|
private void Awake()
|
|||
|
{
|
|||
|
helpBtn.onClick.AddListener(OnHelpBtnClick);
|
|||
|
leftBtn.onClick.AddListener(OnLeftBtnClick);
|
|||
|
rightBtn.onClick.AddListener(OnRightBtnClick);
|
|||
|
|
|||
|
_TestingCopyTab = TableManager.GetTestingCopyByID(_FubenId, 0);
|
|||
|
if (_TestingCopyTab == null)
|
|||
|
{
|
|||
|
LogModule.ErrorLog("Can't find id in testingCopy, id is : " + _FubenId);
|
|||
|
return;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
public override void InitTestingCopyBaseInfoById()
|
|||
|
{
|
|||
|
_TestingCopyTab = TableManager.GetTestingCopyByID(_FubenId, 0);
|
|||
|
if (_TestingCopyTab == null)
|
|||
|
{
|
|||
|
LogModule.ErrorLog("Can't find id in testingCopy, id is : " + _FubenId);
|
|||
|
return;
|
|||
|
}
|
|||
|
|
|||
|
_CurSelectedDiffcultyType = 0;
|
|||
|
maxPass = 0;
|
|||
|
_BestPassedLevelObj.SetActive(false);
|
|||
|
|
|||
|
OnDiffcultChange();
|
|||
|
|
|||
|
HideAllDiffcultyBtn();
|
|||
|
SetChallengeBtn();
|
|||
|
}
|
|||
|
|
|||
|
#region 新按钮相关
|
|||
|
private void OnHelpBtnClick()
|
|||
|
{
|
|||
|
MessageHelpLogic.ShowHelpMessage(49);
|
|||
|
}
|
|||
|
|
|||
|
private void OnLeftBtnClick()
|
|||
|
{
|
|||
|
if(_CurSelectedDiffcultyType > 0)
|
|||
|
{
|
|||
|
--_CurSelectedDiffcultyType;
|
|||
|
OnDiffcultChange();
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
private void OnRightBtnClick()
|
|||
|
{
|
|||
|
if (_CurSelectedDiffcultyType < maxPass || _CurSelectedDiffcultyType < 1)
|
|||
|
{
|
|||
|
++_CurSelectedDiffcultyType;
|
|||
|
OnDiffcultChange();
|
|||
|
}
|
|||
|
}
|
|||
|
#endregion
|
|||
|
|
|||
|
private void OnDiffcultChange()
|
|||
|
{
|
|||
|
//SetRule();
|
|||
|
InitRewContainer();
|
|||
|
|
|||
|
// 规则
|
|||
|
Tab_TestingDfCopy tab = TableManager.GetTestingDfCopyByID(_CurSelectedDiffcultyType + 1, 0);
|
|||
|
_RuleText.text = tab.DDesc;
|
|||
|
|
|||
|
// 当前显示的难度
|
|||
|
curDisplayLevel.text = tab.Name;
|
|||
|
|
|||
|
// 推荐战力,最低限制战力
|
|||
|
recomandCombat.text = tab.Combat.ToString();
|
|||
|
minCombat.text = StrDictionary.GetClientDictionaryString("#{8123}", tab.LimitCombat);
|
|||
|
|
|||
|
// 背景
|
|||
|
LoadAssetBundle.Instance.SetImageSprite(bg, tab.BGName);
|
|||
|
|
|||
|
// 设置左右按钮状态
|
|||
|
leftBtn.interactable = _CurSelectedDiffcultyType > 0;
|
|||
|
rightBtn.interactable = _CurSelectedDiffcultyType < maxPass || _CurSelectedDiffcultyType < 1;
|
|||
|
}
|
|||
|
|
|||
|
// 设置奖励
|
|||
|
public override void InitRewContainer()
|
|||
|
{
|
|||
|
Tab_TestingDfCopy tab = TableManager.GetTestingDfCopyByID(_CurSelectedDiffcultyType + 1, 0);
|
|||
|
if(tab == null)
|
|||
|
{
|
|||
|
LogModule.ErrorLog("No config !!!");
|
|||
|
return;
|
|||
|
}
|
|||
|
|
|||
|
int someId = tab.AwardId;
|
|||
|
Tab_CopySceneReward copySceneRew = TableManager.GetCopySceneRewardByID(someId, 0);
|
|||
|
if (copySceneRew == null)
|
|||
|
{
|
|||
|
return;
|
|||
|
}
|
|||
|
|
|||
|
rewItemList = new List<TestingRewardItemInfo>();
|
|||
|
for (int index = 0; index < copySceneRew.getRewardCountCount(); index++)
|
|||
|
{
|
|||
|
rewItemList.Add(new TestingRewardItemInfo(copySceneRew.GetRewardItemIDbyIndex(index), copySceneRew.GetRewardCountbyIndex(index), true));
|
|||
|
}
|
|||
|
|
|||
|
_RewContainer.InitContentItem(rewItemList);
|
|||
|
}
|
|||
|
|
|||
|
#region 协议接收
|
|||
|
|
|||
|
public override void OnPacketRet(RetTestingCopyInfo packet)
|
|||
|
{
|
|||
|
this._RemainChallengeTimes = packet._RemainTimes;
|
|||
|
maxPass = packet._UnLockDiffcultyLevel;
|
|||
|
|
|||
|
Tab_TestingDfCopy tab = TableManager.GetTestingDfCopyByID(maxPass + 1, 0);
|
|||
|
if(maxPass != 0)
|
|||
|
{
|
|||
|
if (tab != null)
|
|||
|
{
|
|||
|
_BestPassedLevelObj.SetActive(true);
|
|||
|
maxPassText.text = StrDictionary.GetClientDictionaryString("#{8126}", tab.Name);
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
_BestPassedLevelObj.SetActive(false);
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
// 总的可挑战次数
|
|||
|
Tab_Fuben tabFuben = TableManager.GetFubenByID(_FubenId, 0);
|
|||
|
_RemainTimeObj.SetActive(false);
|
|||
|
|
|||
|
if (tabFuben != null && tabFuben.ChallengeTimes != -1)
|
|||
|
{
|
|||
|
_RemainTimeObj.SetActive(true);
|
|||
|
if (packet._RemainTimes <= 0)
|
|||
|
{
|
|||
|
remainTimeText.text = StrDictionary.GetClientDictionaryString("#{8125}", packet._RemainTimes, tabFuben.ChallengeTimes);
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
remainTimeText.text = StrDictionary.GetClientDictionaryString("#{8124}", packet._RemainTimes, tabFuben.ChallengeTimes);
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
if(maxPass > _CurSelectedDiffcultyType)
|
|||
|
{
|
|||
|
_CurSelectedDiffcultyType = maxPass;
|
|||
|
OnDiffcultChange();
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
#endregion
|
|||
|
}
|