//--------------------------------------------------------
|
// [Author]: 第二世界
|
// [ Date ]: Friday, December 22, 2017
|
//--------------------------------------------------------
|
|
using System;
|
using System.Collections;
|
using System.Collections.Generic;
|
using UnityEngine;
|
using UnityEngine.UI;
|
using LitJson;
|
|
namespace vnxbqy.UI
|
{
|
// boss伤害排行榜和协助系统结合
|
public class DemonJarDamageRankWin : Window
|
{
|
|
[SerializeField] BossHurtRankBehaviour m_RankBehaviour;
|
[SerializeField] Button HurtRank;
|
[SerializeField] Button AssistHurtRank;
|
[SerializeField] Button SendAssist;
|
[SerializeField] Text SendAssistText;
|
[SerializeField] Button ShowAssistTips; // 快速查看当前协助信息 如奖励等
|
[SerializeField] Transform AssistInfoBG;
|
[SerializeField] TextEx AssistInfo;
|
[SerializeField] TextEx FuncInfo; // 额外小提示
|
|
DateTime startCoolTime = DateTime.Now; //冷却时间
|
int CoolTimeSecond = 0;
|
DungeonModel model { get { return ModelCenter.Instance.GetModel<DungeonModel>(); } }
|
DungeonAssistModel assistModel { get { return ModelCenter.Instance.GetModel<DungeonAssistModel>(); } }
|
FindPreciousModel findPreciousModel { get { return ModelCenter.Instance.GetModel<FindPreciousModel>(); } }
|
private bool isAssistInfoButtonClick = false;
|
|
#region Built-in
|
protected override void BindController()
|
{
|
}
|
|
protected override void AddListeners()
|
{
|
HurtRank.SetListener(ShowBossRank);
|
AssistHurtRank.SetListener(ShowAssistRank);
|
|
ShowAssistTips.SetListener(ShowAssistInfo);
|
}
|
|
private void ShowButton()
|
{
|
//ShowAssistTips.SetActive(!CrossServerUtility.IsCrossServer());
|
//SendAssist.SetActive(!CrossServerUtility.IsCrossServer());
|
|
if (PlayerDatas.Instance.baseData.ExAttr1 > 0)
|
{
|
SendAssist.SetColorful(null, false);
|
SendAssist.RemoveAllListeners();
|
}
|
else
|
{
|
SendAssist.SetColorful(null, true);
|
SendAssist.SetListener(SendAssistPack);
|
}
|
}
|
|
|
protected override void OnPreOpen()
|
{
|
|
model.selectHurtModel = 1; // 选择显示1.伤害排行 2.协助伤害
|
ShowForm();
|
|
FuncInfo.text = "";
|
if (PlayerDatas.Instance.baseData.MapID == DemonJarModel.DATA_MAPID)
|
{
|
FuncInfo.text = Language.Get("DemonJar17");
|
}
|
SendAssistText.text = Language.Get("QuestAssist");
|
|
CoolTimeSecond = 0;
|
PlayerDatas.Instance.playerDataRefreshEvent += OnCloseAssist;
|
|
|
|
}
|
private void ShowForm()
|
{
|
var dungeonModel = ModelCenter.Instance.GetModel<DungeonModel>();
|
var dataMapId = dungeonModel.GetDataMapIdByMapId(PlayerDatas.Instance.baseData.MapID);
|
m_RankBehaviour.Init(dataMapId);
|
AssistInfoBG.SetActive(false);
|
}
|
|
protected override void OnAfterOpen()
|
{
|
ShowButton();
|
if (PlayerMainDate.DemonJarDamageRankWinChange != null)
|
PlayerMainDate.DemonJarDamageRankWinChange();
|
}
|
|
protected override void OnPreClose()
|
{
|
PlayerDatas.Instance.playerDataRefreshEvent -= OnCloseAssist;
|
}
|
|
private void OnCloseAssist(PlayerDataType type)
|
{
|
//只处理取消
|
if (type != PlayerDataType.ExAttr1)
|
return;
|
|
ShowButton();
|
}
|
|
protected override void OnAfterClose()
|
{
|
if (PlayerMainDate.DemonJarDamageRankWinChange != null)
|
PlayerMainDate.DemonJarDamageRankWinChange();
|
}
|
|
protected override void LateUpdate()
|
{
|
base.LateUpdate();
|
if (GAMgr.Instance.GetBySID(model.BossHurtRank.npcObjID) == null)
|
{
|
if (WindowCenter.Instance.IsOpen<DemonJarDamageRankWin>())
|
{
|
WindowCenter.Instance.Close<DemonJarDamageRankWin>();
|
}
|
}
|
if (CoolTimeSecond > 0)
|
{
|
var seconds = (int)(CoolTimeSecond - (float)(DateTime.Now - startCoolTime).TotalSeconds);
|
if (seconds <= 0)
|
{
|
CoolTimeSecond = 0;
|
SendAssistText.text = Language.Get("QuestAssist");
|
}
|
else
|
{
|
SendAssistText.text = Language.Get("JadeDynastyCD", seconds);
|
}
|
}
|
|
if (!isAssistInfoButtonClick && AssistInfoBG.gameObject.activeSelf && Input.GetMouseButtonUp(0))
|
{
|
AssistInfoBG.SetActive(false);
|
}
|
isAssistInfoButtonClick = false;
|
}
|
#endregion
|
|
private void ShowBossRank()
|
{
|
model.selectHurtModel = 1;
|
HurtRank.transform.Find("Text").GetComponent<Text>().color = UIHelper.GetUIColor(TextColType.LightYellow);
|
AssistHurtRank.transform.Find("Text").GetComponent<Text>().color = UIHelper.GetUIColor(TextColType.NavyBrown);
|
ShowForm();
|
}
|
|
private void ShowAssistRank()
|
{
|
model.selectHurtModel = 2;
|
HurtRank.transform.Find("Text").GetComponent<Text>().color = UIHelper.GetUIColor(TextColType.NavyBrown);
|
AssistHurtRank.transform.Find("Text").GetComponent<Text>().color = UIHelper.GetUIColor(TextColType.LightYellow);
|
ShowForm();
|
}
|
|
private void SendAssistPack()
|
{
|
if (PlayerDatas.Instance.baseData.FamilyId == 0 && !CrossServerUtility.IsCrossServer())
|
{
|
SysNotifyMgr.Instance.ShowTip("DailyQuestwinUnionLimit");
|
return;
|
}
|
if (CoolTimeSecond > 0)
|
return;
|
|
assistModel.SendRequestAssistBoss(model.BossHurtRank.npcObjID);
|
startCoolTime = DateTime.Now;
|
CoolTimeSecond = 10;
|
|
}
|
|
private void ShowAssistInfo()
|
{
|
isAssistInfoButtonClick = true;
|
if (AssistInfoBG.gameObject.activeSelf)
|
{
|
AssistInfoBG.SetActive(false);
|
}
|
else
|
{
|
AssistInfoBG.SetActive(true);
|
GActor actore = GAMgr.Instance.GetBySID(model.BossHurtRank.npcObjID);
|
int funcID = findPreciousModel.GetBossFuncIDByBossID((actore as GActorNpcFight).NpcConfig.NPCID);
|
int activeCnt = 0;
|
if (GeneralDefine.FBAssistAward.ContainsKey(PlayerDatas.Instance.baseData.MapID))
|
{
|
activeCnt = GeneralDefine.FBAssistAward[PlayerDatas.Instance.baseData.MapID][1];
|
}
|
else if (GeneralDefine.BossAssistAward.ContainsKey(funcID))
|
{
|
activeCnt = GeneralDefine.BossAssistAward[funcID][1];
|
}
|
AssistInfo.text = UIHelper.ReplaceNewLine(Language.Get("AssistAwardInfo", activeCnt, assistModel.m_TodayAssistMoney.ToString() + "/" + FuncConfigConfig.Get("AssistAward").Numerical4));
|
}
|
}
|
}
|
}
|