//--------------------------------------------------------
|
// [Author]: 玩个游戏
|
// [ Date ]: Tuesday, July 24, 2018
|
//--------------------------------------------------------
|
|
|
using System.Collections.Generic;
|
using System.Linq;
|
using UnityEngine;
|
using UnityEngine.UI;
|
|
|
////开服盛典
|
public class OSGalaBaseWin : FunctionsBaseWin
|
{
|
[SerializeField] Image processImg;
|
[SerializeField] Text timeText;
|
[SerializeField] Text totalScoreText;
|
[SerializeField] ItemCell[] itemCells;
|
[SerializeField] Image[] gotImgs;
|
[SerializeField] Text[] scoreTexts;
|
[SerializeField] UIEffectPlayer[] effectPlayers;
|
|
|
protected override void OnPreOpen()
|
{
|
base.OnPreOpen();
|
OSActivityManager.Instance.OnOSGalaDataChangeEvent += OnOSGalaDataChangeEvent;
|
GlobalTimeEvent.Instance.secondEvent += ShowTime;
|
Display();
|
}
|
|
protected override void OnPreClose()
|
{
|
base.OnPreClose();
|
OSActivityManager.Instance.OnOSGalaDataChangeEvent -= OnOSGalaDataChangeEvent;
|
GlobalTimeEvent.Instance.secondEvent -= ShowTime;
|
}
|
|
|
protected override void OpenSubUIByTabIndex()
|
{
|
switch (functionOrder)
|
{
|
case 0:
|
currentSubUI = UIManager.Instance.OpenWindow<OSGalaMissionWin>();
|
break;
|
case 1:
|
currentSubUI = UIManager.Instance.OpenWindow<OSGalaChangeWin>();
|
break;
|
case 2:
|
currentSubUI = UIManager.Instance.OpenWindow<OSGalaGiftWin>();
|
break;
|
}
|
}
|
|
private void OnOSGalaDataChangeEvent()
|
{
|
Display();
|
}
|
|
void Display()
|
{
|
var keys = OSActivityManager.Instance.osGalaScoreAwards.Keys.ToList();
|
keys.Sort();
|
// value 分段,按keys中的达标获取
|
var addValue = 1.0f / keys.Count;
|
var value = 0f;
|
for (int i = 0; i < keys.Count; i++)
|
{
|
var score = keys[i];
|
var award = OSActivityManager.Instance.osGalaScoreAwards[score];
|
if (OSActivityManager.Instance.osGalaScore >= score)
|
{
|
value += addValue;
|
}
|
else
|
{
|
break;
|
}
|
}
|
processImg.fillAmount = value;
|
ShowTime();
|
totalScoreText.text = Language.Get("OSActivity11") + OSActivityManager.Instance.osGalaScore.ToString();
|
|
for (int i = 0; i < itemCells.Length; i++)
|
{
|
if (i < keys.Count)
|
{
|
itemCells[i].SetActive(true);
|
int score = keys[i];
|
int index = i;
|
int itemID = OSActivityManager.Instance.osGalaScoreAwards[score][0][0];
|
itemCells[i].Init(new ItemCellModel(itemID, false, OSActivityManager.Instance.osGalaScoreAwards[score][0][1]));
|
itemCells[i].button.AddListener(() =>
|
{
|
if (!OSActivityManager.Instance.CanGetAward(index, score))
|
{
|
ItemTipUtility.Show(itemID);
|
return;
|
}
|
|
var pack = new CA504_tagCMPlayerGetReward();
|
pack.RewardType = 9;
|
pack.DataEx = (uint)score;
|
GameNetSystem.Instance.SendInfo(pack);
|
});
|
|
gotImgs[i].SetActive(OSActivityManager.Instance.IsGotAward(i));
|
scoreTexts[i].text = keys[i].ToString();
|
if (OSActivityManager.Instance.CanGetAward(index, score))
|
{
|
effectPlayers[i].Play();
|
}
|
else
|
{
|
effectPlayers[i].Stop();
|
}
|
}
|
else
|
{
|
itemCells[i].SetActive(false);
|
}
|
}
|
}
|
|
void ShowTime()
|
{
|
if (TimeUtility.OpenDay >= OSActivityManager.Instance.osGalaOpenDays)
|
{
|
timeText.text = Language.Get("OSActivity6");
|
}
|
else
|
{
|
timeText.text = Language.Get("OSActivity10") + TimeUtility.SecondsToShortDHMS(TimeUtility.GetRemindTimeByOpenDay(OSActivityManager.Instance.osGalaOpenDays));
|
}
|
}
|
}
|