123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276 |
- using UnityEngine;
- using UnityEngine.UI;
- using UnityEngine.Advertisements;
- using System.Collections;
- using System.Collections.Generic;
- using LitJson;
- public class ResultPanel : PopUpPanel {
- public enum Result
- {
- Lose = 0,
- Win = 1,
- Draw = 2
- }
- public enum ChangeColor
- {
- Up = 0,
- Down = 1,
- }
- public Animator animator;
- public Text title;
- public Text nickTxt;
- public Text coinTxt;
- public Text rankTxt;
- public Text orderTxt;
- public Text orderChangeTxt;
- public Text btnTxt;
- public Color[] changeColorArr;
- private ResultData data;
- private RewardData rewardData;
- private bool isShown;
- public void ShowWinner()
- {
- if (data.result == Result.Draw)
- title.text = Language.GetStr ("ResultPanel", "draw");
- else
- title.text = Language.GetStr ("ResultPanel", "winner");
- }
- protected override void BeforeShow ()
- {
- title.text = Language.GetStr ("ResultPanel", "complete");
- if (data.result == Result.Draw)
- nickTxt.text = "";
- else if (data.result == Result.Win)
- nickTxt.text = data.me.nick;
- else if (data.result == Result.Lose)
- nickTxt.text = data.opp.nick;
- rewardData = null;
- isShown = false;
- RequestReward ();
- }
- protected override void Shown ()
- {
- isShown = true;
- if (rewardData != null) {
- ShowReward ();
- }
- }
- private void RequestReward()
- {
- Session.GetInstance ().GetNetworkManager ().Result (data.result.GetHashCode(), data.crystalSpend);
- }
- private void OnGotReward(RewardData rewardData)
- {
- this.rewardData = rewardData;
- coinTxt.text = "+" + rewardData.coinAdd;
- rankTxt.text = (rewardData.rankAdd >= 0 ? "+" + rewardData.rankAdd : rewardData.rankAdd.ToString ());
- startOrder = Session.GetInstance ().myUserData.rankIndex;
- orderChanged = 0;
- orderTxt.text = startOrder.ToString ();
- int deltaOrder = Mathf.Abs (rewardData.rankOrder - startOrder);
- if (deltaOrder > 50)
- orderChangeStep = Mathf.FloorToInt ((float)deltaOrder / 50f);
- orderChangeStep = Mathf.Max (orderChangeStep, 1);
- if (startOrder < rewardData.rankOrder) {
- orderChangeTxt.color = changeColorArr [ChangeColor.Down.GetHashCode ()];
- orderChangeTxt.text = "[ -0 ]";
- } else {
- orderChangeTxt.color = changeColorArr [ChangeColor.Up.GetHashCode ()];
- orderChangeTxt.text = "[ +0 ]";
- orderChangeStep = -orderChangeStep;
- }
- if (isShown)
- ShowReward ();
- }
- private void ShowReward()
- {
- UserData userData = Session.GetInstance ().myUserData;
- userData.coin = rewardData.coin;
- userData.rank = rewardData.rank;
- userData.rankIndex = rewardData.rankOrder;
- animator.Play ("Reward");
- }
- private bool isOrderChanging;
- private int orderChangeStep;
- private int startOrder;
- private int orderChanged;
- public void OrderChange()
- {
- isOrderChanging = true;
- }
- void FixedUpdate()
- {
- if(isOrderChanging)
- {
- orderChanged += orderChangeStep;
- if (orderChangeStep >= 0)
- {
- if(startOrder + orderChanged >= rewardData.rankOrder)
- {
- orderChanged = rewardData.rankOrder - startOrder;
- isOrderChanging = false;
- }
- orderChangeTxt.text = "[ -"+Mathf.Abs(orderChanged)+" ]";
- }
- else
- {
- if(startOrder + orderChanged <= rewardData.rankOrder)
- {
- orderChanged = rewardData.rankOrder - startOrder;
- isOrderChanging = false;
- }
- orderChangeTxt.text = "[ +"+Mathf.Abs(orderChanged)+" ]";
- }
- orderTxt.text = (startOrder + orderChanged).ToString ();
- }
- }
- public void Exit()
- {
- Session.GetInstance().GetBattleSession().GetMessageManager().ExitBattle();
- Close ();
- }
- override protected void Remove()
- {
- this.gameObject.SetActive (false);
- PopUpManager.UpdateModal();
- }
- private static ResultPanel currentPanel;
- public static ResultPanel Show(ResultData data)
- {
- if (currentPanel != null) {
- currentPanel.gameObject.SetActive (true);
- PopUpManager.AddToMainCanvas (currentPanel.gameObject);
- }
- else
- currentPanel = PopUpManager.AddPopUp<ResultPanel> (Resources.Load<GameObject> ("Prefabs/UI/Battle/ResultPanel"), null, true);
- currentPanel.data = data;
- currentPanel.Open ();
- return currentPanel;
- }
- public static bool IsEnabled()
- {
- if (currentPanel != null && currentPanel.gameObject.activeSelf)
- return true;
- return false;
- }
- public static void SetReward(RewardData rewardData)
- {
- if (IsEnabled ())
- currentPanel.OnGotReward (rewardData);
- }
- public static void RequestFailed()
- {
- if (IsEnabled ())
- currentPanel.RequestReward ();
- }
- public class ResultData
- {
-
- public Player me;
- public Player opp;
- public Result result;
- public int crystalSpend;
- public ResultData(Player me, Player opp, Result result, int crystalSpend)
- {
- this.me = me;
- this.opp = opp;
- this.result = result;
- this.crystalSpend = crystalSpend;
- }
- }
- public class RewardData
- {
- public int rank;
- public int exp;
- public int coin;
- public int win;
- public int lose;
- public int rankAdd;
- public int expAdd;
- public int coinAdd;
- public int winAdd;
- public int loseAdd;
- public int rankOrder;
- public RewardData(JsonData data)
- {
- rank = JsonUtil.ToInt(data["r"]);
- exp = JsonUtil.ToInt(data["e"]);
- coin = JsonUtil.ToInt(data["c"]);
- win = JsonUtil.ToInt(data["w"]);
- lose = JsonUtil.ToInt(data["l"]);
- rankAdd = JsonUtil.ToInt(data["ra"]);
- expAdd = JsonUtil.ToInt(data["ea"]);
- coinAdd = JsonUtil.ToInt(data["ca"]);
- winAdd = JsonUtil.ToInt(data["wa"]);
- loseAdd = JsonUtil.ToInt(data["la"]);
- rankOrder = JsonUtil.ToInt(data["o"]);
- }
- }
- }
|