//--------------------------------------------------------
|
// [Author]: 玩个游戏
|
// [ Date ]: Tuesday, July 24, 2018
|
//--------------------------------------------------------
|
|
using System;
|
using System.Collections;
|
using System.Collections.Generic;
|
using UnityEngine;
|
using UnityEngine.UI;
|
|
|
public class MainBossEnterWin : UIBase
|
{
|
[SerializeField] Text fbNameText;
|
[SerializeField] Button CloseBtn;
|
[SerializeField] Text bossNameText;
|
[SerializeField] Image bossBG;
|
[SerializeField] SkillWordCell[] skillWordCells;
|
[SerializeField] UIHeroController bossModel;
|
[SerializeField] Text fightPowerText;
|
[SerializeField] Button rankBtn;
|
[SerializeField] ItemCell[] passAwards;
|
[SerializeField] Button fightBtn;
|
[SerializeField] ScrollerController dropItemScroller;
|
|
|
protected override void InitComponent()
|
{
|
CloseBtn.AddListener(CloseWindow);
|
rankBtn.AddListener(() =>
|
{
|
RankModel.Instance.ResetQueryParam();
|
RankModel.Instance.QueryRankByPage(0, watchID: (int)PlayerDatas.Instance.baseData.PlayerID);
|
var win = UIManager.Instance.OpenWindow<PlayerRankWin>();
|
win.rankType = 0;
|
|
});
|
|
fightBtn.AddListener(FightBoss);
|
}
|
|
protected override void OnPreOpen()
|
{
|
PlayerDatas.Instance.playerDataRefreshEvent += PlayerDataRefresh;
|
dropItemScroller.OnRefreshCell += OnRefreshCell;
|
MainLevelManager.Instance.OnUpdateDayBooty += UpdateDayBooty;
|
Display();
|
CreateScroller();
|
}
|
|
|
protected override void OnPreClose()
|
{
|
PlayerDatas.Instance.playerDataRefreshEvent -= PlayerDataRefresh;
|
dropItemScroller.OnRefreshCell -= OnRefreshCell;
|
MainLevelManager.Instance.OnUpdateDayBooty -= UpdateDayBooty;
|
}
|
|
void Display()
|
{
|
var value = PlayerDatas.Instance.baseData.ExAttr2;
|
var chapterID = value / 10000;
|
var levelNum = value % 10000 / 100;
|
|
var chapterConfig = MainChapterConfig.Get(chapterID);
|
|
//【普通】关卡名字1-6
|
fbNameText.text = Language.Get("mainui7", chapterConfig.Level, chapterConfig.ChapterName, chapterID, levelNum);
|
|
var levelConfig = MainLevelConfig.GetMainLevelConfig(chapterID, levelNum);
|
var lineUPID = levelConfig.BossLineupIDList[levelConfig.BossLineupIDList.Length - 1];
|
var lineUPConfig = NPCLineupConfig.Get(lineUPID);
|
var npcConfig = NPCConfig.Get(lineUPConfig.BossID);
|
if (npcConfig == null)
|
{
|
Debug.LogErrorFormat("NPC未配置 : {0}", lineUPConfig.BossID);
|
return;
|
}
|
|
|
bossNameText.text = npcConfig.NPCName;
|
|
for (int i = 0; i < skillWordCells.Length; i++)
|
{
|
if (i < lineUPConfig.SkillIDExList.Length)
|
{
|
skillWordCells[i].SetActive(true);
|
int skillID = lineUPConfig.SkillIDExList[i];
|
skillWordCells[i].Init(skillID, () =>
|
{
|
SmallTipWin.showText = Language.Get("SmallTipFomat",SkillConfig.Get(skillID)?.SkillName, SkillConfig.Get(skillID)?.Description) ;
|
SmallTipWin.worldPos = CameraManager.uiCamera.ScreenToWorldPoint(Input.mousePosition);
|
SmallTipWin.isDownShow = true;
|
UIManager.Instance.OpenWindow<SmallTipWin>();
|
});
|
}
|
else
|
{
|
skillWordCells[i].SetActive(false);
|
}
|
}
|
|
bossModel.Create(npcConfig.SkinID, npcConfig.ModelScale);
|
|
fightPowerText.text = UIHelper.ReplaceLargeArtNum(levelConfig.FightPower);
|
|
var canChallengeBoss = AutoFightModel.Instance.CanChallengeBoss();
|
|
fightBtn.SetInteractable(canChallengeBoss);
|
|
for (int i = 0; i < passAwards.Length; i++)
|
{
|
if (i < levelConfig.AwardItemList.Length)
|
{
|
passAwards[i].SetActive(true);
|
int id = levelConfig.AwardItemList[i][0];
|
passAwards[i].Init(new ItemCellModel(id, false, levelConfig.AwardItemList[i][1]));
|
passAwards[i].button.AddListener(() =>
|
{
|
ItemTipUtility.Show(id);
|
});
|
}
|
else
|
{
|
passAwards[i].SetActive(false);
|
}
|
}
|
bossBG.SetOrgSprite(chapterConfig.BG, "MainLevel");
|
}
|
|
|
void FightBoss()
|
{
|
if (AutoFightModel.Instance.CanChallengeBoss())
|
{
|
var pack = new CB410_tagCMTurnFight();
|
pack.MapID = 2;
|
GameNetSystem.Instance.SendInfo(pack);
|
|
AutoFightModel.Instance.isPause = true;
|
}
|
CloseWindow();
|
}
|
|
|
void PlayerDataRefresh(PlayerDataType type)
|
{
|
switch (type)
|
{
|
case PlayerDataType.ExAttr1:
|
case PlayerDataType.ExAttr2:
|
var canChallengeBoss = AutoFightModel.Instance.CanChallengeBoss();
|
|
fightBtn.interactable = canChallengeBoss;
|
fightBtn.SetColorful(null, canChallengeBoss);
|
break;
|
}
|
|
}
|
|
void OnRefreshCell(ScrollerDataType type, CellView cell)
|
{
|
var _cell = cell as MainLevelDropCell;
|
_cell.Display(cell.index);
|
}
|
|
void UpdateDayBooty()
|
{
|
dropItemScroller.m_Scorller.RefreshActiveCellViews();
|
}
|
|
|
void CreateScroller()
|
{
|
dropItemScroller.Refresh();
|
foreach (DictionaryEntry item in MainChapterConfig.unLockedChapterDict)
|
{
|
dropItemScroller.AddCell(ScrollerDataType.Header, (int)item.Key);
|
}
|
dropItemScroller.Restart();
|
}
|
}
|