using UnityEngine;
|
using UnityEngine.UI;
|
|
namespace vnxbqy.UI
|
{
|
public class FairySiegeActWin : Window
|
{
|
[SerializeField] ButtonEx btnBase; //大本营
|
[SerializeField] ButtonEx btnClose;
|
[SerializeField] ButtonEx btnGift; //礼包
|
[SerializeField] ButtonEx btnGo; //进入
|
[SerializeField] ButtonEx btnGuess; //竞猜
|
[SerializeField] ButtonEx btnHelp; //仙盟协力
|
[SerializeField] ButtonEx btnLike; //点赞
|
[SerializeField] TextEx txtLike;
|
[SerializeField] ButtonEx btnRank; //排行
|
[SerializeField] Transform tranTip1; //活动进入最后一轮提示
|
[SerializeField] Transform tranTip2;
|
[SerializeField] RichText txtJoinTime;
|
|
[SerializeField] TextEx txtRewardTime;
|
[SerializeField] TextEx txtRewardTime1;
|
[SerializeField] TextEx txtRewardTime2;
|
|
[Header("左下角按钮")]
|
[SerializeField] ButtonEx btnReward; //奖励
|
[SerializeField] ButtonEx btnRules;
|
[SerializeField] ButtonEx btnSchedule; //赛程
|
[SerializeField] ButtonEx btnSpring; //圣泉
|
[SerializeField] FairySiegeActFairyRankItem firstInfo;
|
[SerializeField] ImageEx imgActBk;
|
[SerializeField] ImageEx imgActName;
|
[SerializeField] ImageEx imgGo;
|
[SerializeField] ImageEx imgJoinTime;
|
[SerializeField] ImageEx imgNoJoin;
|
|
[SerializeField] RedpointBehaviour rpBase;
|
[SerializeField] RedpointBehaviour rpGift;
|
[SerializeField] RedpointBehaviour rpGo;
|
[SerializeField] RedpointBehaviour rpGuess;
|
[SerializeField] RedpointBehaviour rpHelp;
|
[SerializeField] RedpointBehaviour rpSpring;
|
[SerializeField] RedpointBehaviour rpRankAward;
|
[SerializeField] RedpointBehaviour rpRankAward1;
|
[SerializeField] FairySiegeActFairyRankItem secondInfo;
|
|
[SerializeField] FairySiegeActFairyRankItem thirdInfo;
|
|
[Header("右下角按钮")]
|
[SerializeField] Transform tranBottomRightButtonGroup;
|
|
[Header("领奖期相关")]
|
[SerializeField] Transform tranRank;
|
[SerializeField] EmblemCell FairyEmblemNo1;
|
[SerializeField] TextEx txtFairyNameNo1;
|
[SerializeField] EmblemCell FairyEmblemNo2;
|
[SerializeField] TextEx txtFairyNameNo2;
|
[SerializeField] EmblemCell FairyEmblemNo3;
|
[SerializeField] TextEx txtFairyNameNo3;
|
[SerializeField] RawImage imgPlayer3DModel;
|
|
[SerializeField] Transform tranRankFirstInfo;
|
[SerializeField] TextEx txtLv;
|
[SerializeField] TextEx txtName;
|
[SerializeField] TextEx txtSeverName;
|
[SerializeField] TextEx txtNoOneHere;
|
[SerializeField] ImageEx imgRelamLv;
|
[SerializeField] ImageEx imgTitle;
|
[SerializeField] UIFrame uiTitle;
|
[SerializeField] RedpointBehaviour rpLike;
|
|
int state;
|
bool isSendPack = false;
|
RoleParticularModel roleParticularModel { get { return ModelCenter.Instance.GetModel<RoleParticularModel>(); } }
|
FairySiegeActModel model { get { return ModelCenter.Instance.GetModel<FairySiegeActModel>(); } }
|
RankModel rankModel { get { return ModelCenter.Instance.GetModel<RankModel>(); } }
|
|
protected override void AddListeners()
|
{
|
btnLike.SetListener(() =>
|
{
|
model.SendAward(3);
|
});
|
|
btnClose.SetListener(CloseClick);
|
|
btnGo.SetListener(() =>
|
{
|
// 没有参赛资格
|
if (!model.hasQualification())
|
{
|
SysNotifyMgr.Instance.ShowTip("FairySiege04");
|
return;
|
}
|
if (state != 2)//0 公示期 1 备战期 2 开战期 3 休战期 4 领奖期
|
{
|
SysNotifyMgr.Instance.ShowTip("FairySiege18");
|
return;
|
}
|
int battleType;
|
int battleGroup;
|
if (!model.TryGetNowBatTypeAndGroup(model.myFamilyID, out battleType, out battleGroup))
|
return;
|
model.showBatType = battleType;
|
model.showBatGroup = battleGroup;
|
model.SendQuery(2, battleType, battleGroup, 0);
|
});
|
btnReward.SetListener(() => WindowCenter.Instance.Open<FairySiegeRankAwardActWin>());
|
btnRank.SetListener(() => WindowCenter.Instance.Open<FairySiegeRankWin>());
|
btnGuess.SetListener(() =>
|
{
|
//竞猜未开始
|
int guessState = model.GetGuessState();
|
if (guessState == 0)
|
{
|
SysNotifyMgr.Instance.ShowTip("FairySiege21");
|
return;
|
}
|
WindowCenter.Instance.Open<FairySiegeGuessWin>();
|
});
|
btnSchedule.SetListener(() => WindowCenter.Instance.Open<FairySiegeScheduleWin>());
|
btnGift.SetListener(() => WindowCenter.Instance.Open<FairySiegeRechargeGiftActWin>());
|
btnHelp.SetListener(() =>
|
{
|
// 没有参赛资格
|
if (!model.hasQualification())
|
{
|
SysNotifyMgr.Instance.ShowTip("FairySiege04");
|
return;
|
}
|
WindowCenter.Instance.Open<FairySiegeHelpWin>();
|
});
|
btnBase.SetListener(() =>
|
{
|
// 没有参赛资格
|
if (!model.hasQualification())
|
{
|
SysNotifyMgr.Instance.ShowTip("FairySiege04");
|
return;
|
}
|
WindowCenter.Instance.Open<FairySiegeBaseWin>();
|
});
|
btnSpring.SetListener(() => WindowCenter.Instance.Open<FairySiegeSpringWin>());
|
}
|
|
protected override void BindController()
|
{
|
}
|
|
protected override void OnPreOpen()
|
{
|
rpLike.redpointId = model.GetRedpointId(FairySiegeRedPointType.Like);
|
if (!model.isSkipStory)
|
{
|
model.isSkipStory = true;
|
WindowCenter.Instance.Open<FairySiegeStoryWin>();
|
}
|
|
InitRedPoint();
|
int stateValue;
|
if (model.TryGetCurrentStateValue(out stateValue))
|
{
|
state = model.GetStateByStateValue(stateValue);
|
Display();
|
}
|
|
GlobalTimeEvent.Instance.secondEvent += OnSecondEvent;
|
RoleParticularModel.OnRevPackage += OnPlayerCacheResultEvent;
|
model.UpdateFamilyGCZPlayerInfoEvent += OnUpdateFamilyGCZPlayerInfoEvent;
|
model.UpdateFamilyGCZBatSceneInfoEvent += OnUpdateFamilyGCZBatSceneInfoEvent;
|
OperationTimeHepler.Instance.operationTimeUpdateEvent += OperationTimeUpdateEvent;
|
rankModel.onRankRefresh += OnRefreshRankList;
|
txtLv.SetActive(false);
|
imgRelamLv.SetActive(false);
|
imgTitle.SetActive(false);
|
txtName.SetActive(false);
|
txtSeverName.SetActive(false);
|
imgRelamLv.SetActive(false);
|
txtNoOneHere.SetActive(true);
|
DisplayAward();
|
}
|
|
protected override void OnPreClose()
|
{
|
GlobalTimeEvent.Instance.secondEvent -= OnSecondEvent;
|
RoleParticularModel.OnRevPackage -= OnPlayerCacheResultEvent;
|
model.UpdateFamilyGCZPlayerInfoEvent -= OnUpdateFamilyGCZPlayerInfoEvent;
|
model.UpdateFamilyGCZBatSceneInfoEvent -= OnUpdateFamilyGCZBatSceneInfoEvent;
|
OperationTimeHepler.Instance.operationTimeUpdateEvent -= OperationTimeUpdateEvent;
|
rankModel.onRankRefresh -= OnRefreshRankList;
|
}
|
|
private void OnRefreshRankList(int obj)
|
{
|
if (obj != FairySiegeActModel.crossFamilyRankType)
|
return;
|
DisplayAward();
|
}
|
|
protected override void OnAfterOpen()
|
{
|
}
|
|
protected override void OnAfterClose()
|
{
|
}
|
|
private void InitRedPoint()
|
{
|
rpGuess.redpointId = model.GetRedpointId(FairySiegeRedPointType.Guess);
|
rpGift.redpointId = model.GetRedpointId(FairySiegeRedPointType.Gift);
|
rpHelp.redpointId = model.GetRedpointId(FairySiegeRedPointType.Help);
|
rpBase.redpointId = model.GetRedpointId(FairySiegeRedPointType.Base);
|
rpSpring.redpointId = model.GetRedpointId(FairySiegeRedPointType.Spring);
|
rpGo.redpointId = model.GetRedpointId(FairySiegeRedPointType.Go);
|
rpRankAward.redpointId = model.GetRedpointId(FairySiegeRedPointType.RankAward);
|
rpRankAward1.redpointId = model.GetRedpointId(FairySiegeRedPointType.RankAward);
|
}
|
|
private void OperationTimeUpdateEvent(Operation operation)
|
{
|
if (operation != Operation.default53)
|
return;
|
Display();
|
}
|
|
private void OnUpdateFamilyGCZPlayerInfoEvent()
|
{
|
Display();
|
DisplayAward();
|
}
|
|
private void OnPlayerCacheResultEvent(int viewType, int playerID, RoleParticularModel.ViewPlayerData data)
|
{
|
if (playerID != model.no1PlayerIDCrossFamily)
|
return;
|
ShowNo1Model();
|
}
|
|
private void OnSecondEvent()
|
{
|
int stateValue;
|
if (model.TryGetCurrentStateValue(out stateValue))
|
{
|
state = model.GetStateByStateValue(stateValue);
|
Display();
|
}
|
}
|
|
private void OnUpdateFamilyGCZBatSceneInfoEvent()
|
{
|
if (!WindowCenter.Instance.IsOpen<FairySiegeCityWin>())
|
{
|
WindowCenter.Instance.Open<FairySiegeCityWin>();
|
}
|
}
|
|
public void Display()
|
{
|
// 0 公示期 1 备战期 2 开战期 3 休战期 4 领奖期
|
imgActName.SetActive(state == 0 || state == 1 || state == 2 || state == 3);
|
imgJoinTime.SetActive(state == 0 || state == 1 || state == 2 || state == 3);
|
tranTip2.SetActive(state == 0);
|
btnRules.SetActive(state == 0 || state == 1 || state == 2 || state == 3);
|
btnGo.SetActive(state == 1 || state == 2 || state == 3);
|
imgGo.SetActive(model.hasQualification());
|
imgNoJoin.SetActive(!model.hasQualification());
|
txtRewardTime.SetActive(state == 4);
|
txtRewardTime1.SetActive(state == 1 || state == 2 || state == 3);
|
txtRewardTime2.SetActive(state == 0);
|
btnGuess.SetActive(state == 1 || state == 2 || state == 3 || state == 4);
|
btnSchedule.SetActive(state == 1 || state == 2 || state == 3);
|
btnGift.SetActive(state == 1 || state == 2 || state == 3);
|
tranBottomRightButtonGroup.SetActive(state == 1 || state == 2 || state == 3);
|
tranRank.SetActive(state == 4);
|
tranRankFirstInfo.SetActive(state == 4);
|
imgActBk.SetSprite(state == 4 ? "FairySiegeBK2" : "FairySiegeBK1");
|
txtRewardTime.text = model.GetRemainTime();
|
txtRewardTime1.text = model.GetRemainTime();
|
txtRewardTime2.text = model.GetRemainTime();
|
btnBase.SetActive(model.hasQualification());
|
btnHelp.SetActive(model.hasQualification());
|
DisplayActTime();
|
}
|
|
private void DisplayActTime()
|
{
|
string openTimeStr = Language.Get("RidingPetBossQuestTime", model.operationCrossAct.ToDisplayTime());
|
if (model.operationCrossAct != null && !model.operationCrossAct.joinFamilys.IsNullOrEmpty())
|
{
|
string familyNameStr = model.GetJoinFamilyNameStr();
|
string lookMoreStr = Language.Get("FairySiege124");
|
txtJoinTime.text = StringUtility.Contact(openTimeStr, new string(' ', 4), familyNameStr, lookMoreStr);
|
}
|
else
|
{
|
txtJoinTime.text = StringUtility.Contact(openTimeStr);
|
}
|
}
|
|
private void DisplayAward()
|
{
|
if (state != 4)
|
{
|
txtFairyNameNo1.text = Language.Get("FamilyMatchNoOneHere");
|
FairyEmblemNo1.InitUI(EmblemHelper.GetOtherEmblemModel(EmblemHelper.GetDefaultFamilyEmblemId()));
|
txtFairyNameNo2.text = Language.Get("FamilyMatchNoOneHere");
|
FairyEmblemNo2.InitUI(EmblemHelper.GetOtherEmblemModel(EmblemHelper.GetDefaultFamilyEmblemId()));
|
txtFairyNameNo3.text = Language.Get("FamilyMatchNoOneHere");
|
FairyEmblemNo3.InitUI(EmblemHelper.GetOtherEmblemModel(EmblemHelper.GetDefaultFamilyEmblemId()));
|
return;
|
}
|
|
//点赞相关
|
bool isHaveLikeAward = model.IsHaveAward(3);
|
btnLike.interactable = !isHaveLikeAward;
|
btnLike.GetComponent<ImageEx>().gray = isHaveLikeAward;
|
txtLike.colorType = isHaveLikeAward ? TextColType.Gray : TextColType.NavyYellow;
|
txtLike.text = Language.Get(!isHaveLikeAward ? "sharegift3" : "CelestialPalace07");
|
|
//排名相关
|
var familyRankInfo = rankModel.GetRankPageDatas(FairySiegeActModel.crossFamilyRankType);
|
if (familyRankInfo == null)
|
{
|
rankModel.ResetQueryParam();
|
rankModel.QueryCrossRank(FairySiegeActModel.crossFamilyRankType, model.operationCrossAct.zoneID);
|
}
|
|
if (familyRankInfo != null)
|
{
|
RankData familyRankData;
|
if (familyRankInfo.TryGetValue(0, out familyRankData))
|
{
|
model.no1PlayerIDCrossFamily = (int)familyRankData.id2;
|
roleParticularModel.ViewCrossPlayerCacheData(model.no1PlayerIDCrossFamily); //查询返回显示模型
|
|
txtFairyNameNo1.text = familyRankData.name1;
|
FairyEmblemNo1.InitUI(EmblemHelper.GetOtherEmblemModel((int)familyRankData.value3));
|
string serverName = ServerListCenter.Instance.GetServerName((int)familyRankData.value5);
|
txtSeverName.text = Language.Get("Z2002", serverName);
|
}
|
else
|
{
|
txtFairyNameNo1.text = Language.Get("FamilyMatchNoOneHere");
|
FairyEmblemNo1.InitUI(EmblemHelper.GetOtherEmblemModel(EmblemHelper.GetDefaultFamilyEmblemId()));
|
}
|
if (familyRankInfo.TryGetValue(1, out familyRankData))
|
{
|
txtFairyNameNo2.text = familyRankData.name1;
|
FairyEmblemNo2.InitUI(EmblemHelper.GetOtherEmblemModel((int)familyRankData.value3));
|
}
|
else
|
{
|
txtFairyNameNo2.text = Language.Get("FamilyMatchNoOneHere");
|
FairyEmblemNo2.InitUI(EmblemHelper.GetOtherEmblemModel(EmblemHelper.GetDefaultFamilyEmblemId()));
|
}
|
if (familyRankInfo.TryGetValue(2, out familyRankData))
|
{
|
txtFairyNameNo3.text = familyRankData.name1;
|
FairyEmblemNo3.InitUI(EmblemHelper.GetOtherEmblemModel((int)familyRankData.value3));
|
}
|
else
|
{
|
txtFairyNameNo3.text = Language.Get("FamilyMatchNoOneHere");
|
FairyEmblemNo3.InitUI(EmblemHelper.GetOtherEmblemModel(EmblemHelper.GetDefaultFamilyEmblemId()));
|
}
|
ShowNo1Model();
|
}
|
else
|
{
|
txtFairyNameNo1.text = Language.Get("FamilyMatchNoOneHere");
|
FairyEmblemNo1.InitUI(EmblemHelper.GetOtherEmblemModel(EmblemHelper.GetDefaultFamilyEmblemId()));
|
txtFairyNameNo2.text = Language.Get("FamilyMatchNoOneHere");
|
FairyEmblemNo2.InitUI(EmblemHelper.GetOtherEmblemModel(EmblemHelper.GetDefaultFamilyEmblemId()));
|
txtFairyNameNo3.text = Language.Get("FamilyMatchNoOneHere");
|
FairyEmblemNo3.InitUI(EmblemHelper.GetOtherEmblemModel(EmblemHelper.GetDefaultFamilyEmblemId()));
|
}
|
}
|
|
private void ShowNo1Model()
|
{
|
imgPlayer3DModel.SetActive(false);
|
int playerID = model.no1PlayerIDCrossFamily;
|
if (playerID == 0)
|
return;
|
var viewPlayerData = roleParticularModel.GetViewPlayerData(playerID);
|
if (viewPlayerData == null)
|
return;
|
|
txtLv.text = Language.Get("PetHorseAwaking_3", viewPlayerData.rolePropData.LV);
|
int relamLv = viewPlayerData.rolePropData.RealmLV;
|
imgRelamLv.SetActive(RealmConfig.Has(relamLv));
|
if (RealmConfig.Has(relamLv))
|
{
|
imgRelamLv.SetSprite(RealmConfig.Get(relamLv).Img);
|
}
|
txtName.text = UIHelper.ServerStringTrim(viewPlayerData.rolePropData.Name);
|
model.DisplayTitle(imgTitle, uiTitle, viewPlayerData.rolePropData.TitleID);
|
txtNoOneHere.SetActive(false);
|
txtLv.SetActive(true);
|
imgTitle.SetActive(true);
|
imgPlayer3DModel.SetActive(true);
|
txtName.SetActive(true);
|
txtSeverName.SetActive(true);
|
int _suitLevel = (int)(viewPlayerData.rolePropData.EquipShowSwitch % 10);
|
int clothes = viewPlayerData.GetItemId(RoleEquipType.Clothes);
|
int weapon = viewPlayerData.GetItemId(RoleEquipType.Weapon);
|
int wing = viewPlayerData.GetItemId(RoleEquipType.Wing);
|
int weapon2 = viewPlayerData.GetItemId(RoleEquipType.Weapon2);
|
int fashionClothes = viewPlayerData.GetItemId(RoleEquipType.FashionClothes);
|
int fashionWeapon = viewPlayerData.GetItemId(RoleEquipType.FashionWeapon);
|
int fashionWeapon2 = viewPlayerData.GetItemId(RoleEquipType.FashionWeapon2);
|
var reikiRootEffectId = viewPlayerData.rolePropData.EquipShowSwitch / 1000 % 1000;
|
|
var data = new UI3DPlayerExhibitionData
|
{
|
job = viewPlayerData.rolePropData.Job,
|
fashionClothesId = fashionClothes,
|
fashionWeaponId = fashionWeapon,
|
fashionSecondaryId = fashionWeapon2,
|
clothesId = clothes,
|
suitLevel = _suitLevel,
|
weaponId = weapon,
|
wingsId = wing,
|
secondaryId = weapon2,
|
reikiRootEffectId = (int)reikiRootEffectId,
|
isDialogue = false,
|
equipLevel = (int)viewPlayerData.rolePropData.EquipShowSwitch / 10 % 100,
|
titleID = viewPlayerData.rolePropData.TitleID,
|
};
|
|
UI3DModelExhibition.InstanceClone1.ShowPlayer(imgPlayer3DModel, data);
|
imgPlayer3DModel.raycastTarget = false;
|
}
|
}
|
}
|