Files
SVSimServer/SVSim.BattleEngine/Engine/RankMatchBattleResult.cs
gamer147 0d9d8acae0 feat(battle-engine): M1 auto-copy closure (782 battle-logic files)
Compile-driven bulk-copy loop (tools/engine-port/m1_copy_loop.py) pulled the precise reference closure of the battle-core roots, stopping at the classify god-object/View-VFX-UI boundary. 782 files; no re-explosion (M0 had estimated ~order 1000). Residual frontier = 52 shim-classified + 80 external (Unity/BCL) types to author next.
2026-06-05 16:57:20 -04:00

779 lines
30 KiB
C#

using System;
using System.Collections;
using System.Collections.Generic;
using Cute;
using UnityEngine;
using Wizard;
public class RankMatchBattleResult : MonoBehaviour
{
protected enum RankMatchResultState
{
NONE,
RANK_UP_END,
RANK_DOWN_END,
TIER_UP_END
}
[SerializeField]
private BattleResultUIController _battleResultNewControl;
[SerializeField]
public UIButton BgBtn;
[SerializeField]
public UISprite TitleFailed;
[SerializeField]
public NguiObjs WinsObj;
[Header("ランク情報")]
[SerializeField]
public GameObject RankInfo;
[SerializeField]
protected UITexture RankIcon;
[SerializeField]
protected GameObject RankGaugeParent;
[SerializeField]
protected UIGauge RankGaugeBar;
[SerializeField]
public ParticleSystem RankGaugeEfc;
[SerializeField]
protected UILabel RankExpTitle;
[SerializeField]
protected UILabel RankExpLabel;
[SerializeField]
public UILabel RankExpAddLabel;
[SerializeField]
protected UILabel RankExpNextTitle;
[SerializeField]
protected UILabel RankExpNextLabel;
[SerializeField]
public UILabel RankExpBonusTitle;
[SerializeField]
public UILabel RankExpBonusLabel;
[SerializeField]
public UILabel RankExpBonusInfo;
[SerializeField]
protected UILabel _formatLabel;
[Header("ランク昇格降格")]
[SerializeField]
protected UITexture DivRankIcon;
[SerializeField]
protected UITexture TierRankIcon;
[SerializeField]
protected UISprite TierUpFrontImg;
[SerializeField]
public UISprite BlackBg;
[SerializeField]
public GameObject DivPanel;
[SerializeField]
protected UISprite DivPanelBg;
[SerializeField]
protected UISprite RankUpImg;
[SerializeField]
protected UISprite RankDownImg;
[SerializeField]
public UISprite PromoTitle;
[SerializeField]
public UITexture PromoRankIcon;
[SerializeField]
public GameObject PromoPanel;
[SerializeField]
protected UIGrid PromoOrbGrid;
[SerializeField]
protected NguiObjs[] PromoOrbList;
[SerializeField]
protected UISprite PromoOrbLine;
protected RankMatchResultState resultState;
private int _rankLv;
private int _rankLvPrev;
private int _rankLvMax;
private int _rankExp;
private int _nowRankExp;
private int _nextRankExp;
private int _beforeRankExp;
private IList<int> _rankExpList = new List<int>();
private List<RankInfo> _rankInfoList = new List<RankInfo>();
private int _cumulativeBattlePointToMaster;
private bool _isRankFix;
private SystemText _wizardText;
private const float WIN_LABEL_POSITION_Y = -11f;
[NonSerialized]
public bool IsRunUIStop;
public bool IsPromoNow { get; private set; }
public bool IsPromoPrev { get; private set; }
public int BeforeRankLv { get; private set; }
public int WinCount { get; private set; }
public int BasicExp_and_SuperiorBonus => Data.RankMatchFinish.data.BasicExp_and_SuperiorBonus;
public int RankExpBonus { get; private set; }
public void Init()
{
TitleFailed.alpha = 0f;
_wizardText = Data.SystemText;
_battleResultNewControl.DefaultPosDict["RankInfo"] = RankInfo.transform.localPosition;
_battleResultNewControl.DefaultPosDict["TierUpFrontImg"] = TierUpFrontImg.transform.localPosition;
_battleResultNewControl.DefaultPosDict["PromoTitle"] = PromoTitle.transform.localPosition;
_battleResultNewControl.DefaultPosDict["PromoRankIcon"] = PromoRankIcon.transform.localPosition;
_battleResultNewControl.DefaultPosDict["PromoPanel"] = PromoPanel.transform.localPosition;
_formatLabel.text = UIUtil.GetFormatName(Data.CurrentFormat);
if (Data.CurrentFormat == Format.Rotation)
{
_formatLabel.text = Data.SystemText.Get("Common_0187");
}
DivRankIcon.alpha = 0f;
TierRankIcon.alpha = 0f;
TierUpFrontImg.alpha = 0f;
BlackBg.alpha = 0f;
BgBtn.onClick.Clear();
BgBtn.onClick.Add(new EventDelegate(delegate
{
OnClickBgBtn();
}));
BgBtn.gameObject.SetActive(value: false);
}
public void ResultSetupEnd(Format format)
{
PromoTitle.transform.localPosition = _battleResultNewControl.DefaultPosDict["PromoTitle"] + Vector3.up * 500f;
PromoPanel.transform.localPosition = _battleResultNewControl.DefaultPosDict["PromoPanel"] + Vector3.down * 600f;
RankInfo.transform.localPosition = _battleResultNewControl.DefaultPosDict["RankInfo"] + Vector3.left * 2000f;
RankInfo.gameObject.SetActive(value: true);
BgBtn.gameObject.SetActive(value: true);
DivPanel.SetActive(value: false);
RankExpAddLabel.alpha = 0f;
RankExpBonusTitle.alpha = 0f;
RankExpBonusLabel.alpha = 0f;
RankExpBonusInfo.alpha = 0f;
WinsObj.labels[0].alpha = 0f;
WinsObj.labels[1].alpha = 0f;
BlackBg.alpha = 0f;
PromoRankIcon.alpha = 0f;
bool flag = !PlayerStaticData.IsMaxRank(format);
if (!UserRank.IsGrandMasterAvailability)
{
flag = !PlayerStaticData.IsMasterRank(format);
}
RankExpNextTitle.text = Data.SystemText.Get("Battle_0206");
RankExpBonusTitle.text = Data.SystemText.Get("Battle_0208");
WinsObj.labels[1].text = Data.SystemText.Get("Battle_0466");
RankExpBonusInfo.text = Data.SystemText.Get("Battle_0465");
RankExpTitle.text = Data.SystemText.Get(PlayerStaticData.IsMasterRank(format) ? "Common_0048" : "Common_0047");
RankGaugeParent.SetActive(flag && !PlayerStaticData.IsGrandMasterRank(format));
RankExpNextTitle.gameObject.SetActive(flag);
RankExpNextLabel.gameObject.SetActive(flag);
}
public void GetServerData()
{
DataMgr dataMgr = GameMgr.GetIns().GetDataMgr();
RankMatchFinishDetail data = Data.RankMatchFinish.data;
BeforeRankLv = (_rankLvPrev = PlayerStaticData.UserRankCurrentFormat());
IsPromoPrev = Data.Load.data._userRank[(int)Data.CurrentFormat].user_promotion_match.match_count > 0;
Data.Load.data._userRank[(int)Data.CurrentFormat].rank = data.UserRank;
PlayerStaticData.UserPromotionFlag = Data.Load.data._userRank[(int)Data.CurrentFormat].user_promotion_match.is_promotion;
IsPromoNow = PlayerStaticData.UserPromotionFlag;
if (!IsPromoPrev && IsPromoNow)
{
_isRankFix = true;
}
else if (IsPromoPrev && IsPromoNow)
{
_isRankFix = true;
}
else if (IsPromoPrev && !IsPromoNow)
{
if (_battleResultNewControl.IsWin)
{
_isRankFix = false;
}
else
{
_isRankFix = true;
}
}
else
{
_isRankFix = false;
}
if (BeforeRankLv != PlayerStaticData.UserRankCurrentFormat())
{
PlayerStaticData.LoadUserRankTexture(Data.CurrentFormat);
}
WinCount = data.SuccessiveWinNumber;
WinsObj.labels[0].text = WinCount.ToString();
WinsObj.GetComponent<UITable>().Reposition();
RankExpBonus = data.SuccessiveWinBonus;
Vector3 localPosition = WinsObj.labels[1].transform.localPosition;
localPosition.y = -11f;
WinsObj.labels[1].transform.localPosition = localPosition;
Format format = Data.CurrentFormat;
if (dataMgr.IsDipslayHighRankFormat())
{
format = PlayerStaticData.HighRankFormat();
}
if (format == Format.PreRotation)
{
format = Format.Rotation;
}
_beforeRankExp = (PlayerStaticData.IsMasterRank(format) ? PlayerStaticData.UserMasterPoint(format) : PlayerStaticData.UserBattlePoint(format));
if (dataMgr.IsFormatEnableBattleType() && UserRank.IsGrandMasterAvailability && PlayerStaticData.IsMasterRank(format) && !PlayerStaticData.IsMaxRank(format))
{
int num = PlayerStaticData.UserBattlePointEachRankCurrentFormat();
int num2 = data.AfterMasterPoint - PlayerStaticData.UserMasterPointCurrentFormat();
_beforeRankExp = num - num2;
}
_rankExpList.Clear();
_rankInfoList = Data.Load.data.RankInfoList;
bool flag = true;
if (Data.CurrentFormat == Format.Crossover)
{
_rankInfoList = Data.Crossover.GetRankInfoRawList();
flag = false;
}
if (dataMgr.IsFormatEnableBattleType())
{
for (int i = 0; i < _rankInfoList.Count; i++)
{
if (flag && i >= 24)
{
_rankExpList.Add(_rankInfoList[i]._necessaryMasterPoint);
}
else
{
_rankExpList.Add(_rankInfoList[i].necessary_point);
}
}
}
_rankLvMax = _rankInfoList[_rankInfoList.Count - 1].RankId;
if (dataMgr.IsFormatEnableBattleType() && PlayerStaticData.IsMasterRankCurrentFormat())
{
_cumulativeBattlePointToMaster = 0;
_cumulativeBattlePointToMaster = 0;
for (int j = 0; j < _rankInfoList.Count; j++)
{
_cumulativeBattlePointToMaster += _rankInfoList[j].necessary_point;
}
_rankExp += _cumulativeBattlePointToMaster;
}
SetRankExp(0, isLvUpCheck: false);
if (dataMgr.m_BattleType != DataMgr.BattleType.RankBattle)
{
return;
}
if (PlayerStaticData.IsMasterRankCurrentFormat())
{
Data.Load.data._userRank[(int)Data.CurrentFormat].master_point = Data.RankMatchFinish.data.AfterMasterPoint;
if (Data.CurrentFormat == Format.Crossover)
{
Data.Load.data._userRank[(int)Data.CurrentFormat].grandMasterData.currentMasterPoint = Data.RankMatchFinish.data.AfterMasterPoint;
}
}
else
{
Data.Load.data._userRank[(int)Data.CurrentFormat].battle_point = Data.RankMatchFinish.data.AfterBattlePoint;
}
RankIcon.mainTexture = Toolbox.ResourcesManager.LoadObject<Texture>(Toolbox.ResourcesManager.GetAssetTypePath(BeforeRankLv.ToString("00"), ResourcesManager.AssetLoadPathType.RankIcon_L, isfetch: true));
}
public IEnumerator RunTierUp()
{
RankIcon.mainTexture = Toolbox.ResourcesManager.LoadObject<Texture>(Toolbox.ResourcesManager.GetAssetTypePath(PlayerStaticData.UserRankCurrentFormat().ToString("00"), ResourcesManager.AssetLoadPathType.RankIcon_L, isfetch: true));
TierRankIcon.mainTexture = Toolbox.ResourcesManager.LoadObject<Texture>(Toolbox.ResourcesManager.GetAssetTypePath(BeforeRankLv.ToString("00"), ResourcesManager.AssetLoadPathType.RankIcon_L, isfetch: true));
if (BeforeRankLv == 25)
{
RankGaugeParent.SetActive(value: false);
}
GameMgr.GetIns().GetSoundMgr().PlaySe(Se.TYPE.SYS_RANK_UP_MACH_SUCCES_2);
TweenAlpha.Begin(TierRankIcon.gameObject, 0.5f, 1f);
TierRankIcon.transform.localScale = Vector3.one * 0.05f;
iTween.ScaleTo(TierRankIcon.gameObject, iTween.Hash("scale", Vector3.one, "time", 1f, "easetype", iTween.EaseType.easeInExpo));
iTween.RotateBy(TierRankIcon.gameObject, iTween.Hash("y", 360f, "time", 1f, "easetype", iTween.EaseType.linear));
yield return new WaitForSeconds(1f);
GameMgr.GetIns().GetEffectMgr().Start(EffectMgr.EffectType.CMN_RESULT_TIERUP_1, Vector3.back);
TierRankIcon.mainTexture = Toolbox.ResourcesManager.LoadObject<Texture>(Toolbox.ResourcesManager.GetAssetTypePath((BeforeRankLv + 1).ToString("00"), ResourcesManager.AssetLoadPathType.RankIcon_L, isfetch: true));
TweenAlpha.Begin(TierUpFrontImg.gameObject, 0.5f, 1f);
TierUpFrontImg.transform.localPosition = _battleResultNewControl.DefaultPosDict["TierUpFrontImg"] + Vector3.down * 60f;
iTween.MoveTo(TierUpFrontImg.gameObject, iTween.Hash("position", _battleResultNewControl.DefaultPosDict["TierUpFrontImg"], "time", 0.5f, "islocal", true, "easetype", iTween.EaseType.easeOutQuad));
yield return new WaitForSeconds(1f);
resultState = RankMatchResultState.TIER_UP_END;
}
public IEnumerator RunMatchUI()
{
PromoRankIcon.mainTexture = Toolbox.ResourcesManager.LoadObject<Texture>(Toolbox.ResourcesManager.GetAssetTypePath((BeforeRankLv + 1).ToString("00"), ResourcesManager.AssetLoadPathType.RankIcon_L, isfetch: true));
int match_count = Data.Load.data.GetRankInfo(Data.CurrentFormat, BeforeRankLv).match_count;
for (int i = 0; i < PromoOrbList.Length; i++)
{
if (i < match_count)
{
PromoOrbList[i].gameObject.SetActive(value: true);
if (i < PlayerStaticData.UserPromotionMatchCount - 1)
{
if (PlayerStaticData.UserPromotionIsWin(i))
{
PromoOrbList[i].sprites[0].spriteName = "orb_win";
PromoOrbList[i].labels[1].gameObject.SetActive(value: true);
PromoOrbList[i].labels[2].gameObject.SetActive(value: false);
}
else
{
PromoOrbList[i].sprites[0].spriteName = "orb_lose";
PromoOrbList[i].labels[1].gameObject.SetActive(value: false);
PromoOrbList[i].labels[2].gameObject.SetActive(value: true);
}
}
else
{
if (i != PlayerStaticData.UserPromotionMatchCount - 1)
{
PromoOrbList[i].sprites[0].width = 38;
}
PromoOrbList[i].sprites[0].spriteName = "orb_empty";
PromoOrbList[i].labels[1].gameObject.SetActive(value: false);
PromoOrbList[i].labels[2].gameObject.SetActive(value: false);
}
PromoOrbList[i].labels[0].text = _wizardText.Get("Battle_0209", (i + 1).ToString());
}
else
{
PromoOrbList[i].gameObject.SetActive(value: false);
}
PromoOrbGrid.cellWidth = 500f / (float)match_count;
PromoOrbGrid.Reposition();
}
PromoOrbLine.rightAnchor.target = PromoOrbList[match_count - 1].transform;
PromoOrbLine.ResetAnchors();
GameMgr.GetIns().GetSoundMgr().PlaySe(Se.TYPE.SYS_RANK_UP_MACH_WINDOW_MOVE);
TweenAlpha.Begin(BlackBg.gameObject, 0.5f, 0.5f);
iTween.MoveTo(PromoTitle.gameObject, iTween.Hash("position", _battleResultNewControl.DefaultPosDict["PromoTitle"], "time", 0.5f, "islocal", true, "easetype", iTween.EaseType.easeOutExpo));
TweenAlpha.Begin(PromoRankIcon.gameObject, 0.5f, 1f);
PromoRankIcon.transform.localPosition = _battleResultNewControl.DefaultPosDict["PromoRankIcon"] + Vector3.down * 40f;
iTween.MoveTo(PromoRankIcon.gameObject, iTween.Hash("position", _battleResultNewControl.DefaultPosDict["PromoRankIcon"], "time", 0.5f, "islocal", true, "easetype", iTween.EaseType.easeOutQuad));
iTween.MoveTo(PromoPanel, iTween.Hash("position", _battleResultNewControl.DefaultPosDict["PromoPanel"], "time", 0.5f, "islocal", true, "easetype", iTween.EaseType.easeOutExpo));
yield return new WaitForSeconds(1f);
if (_battleResultNewControl.IsWin)
{
GameMgr.GetIns().GetSoundMgr().PlaySe(Se.TYPE.SYS_RANK_UP_MACH_WIN);
GameMgr.GetIns().GetEffectMgr().Start(EffectMgr.EffectType.CMN_RESULT_ORB_1, PromoOrbList[PlayerStaticData.UserPromotionMatchCount - 1].sprites[0].transform.position);
}
else
{
GameMgr.GetIns().GetSoundMgr().PlaySe(Se.TYPE.SYS_RANK_UP_MACH_LOSE);
GameMgr.GetIns().GetEffectMgr().Start(EffectMgr.EffectType.CMN_RESULT_ORB_2, PromoOrbList[PlayerStaticData.UserPromotionMatchCount - 1].sprites[0].transform.position);
}
yield return new WaitForSeconds(0.5f);
if (_battleResultNewControl.IsWin)
{
PromoOrbList[PlayerStaticData.UserPromotionMatchCount - 1].sprites[0].spriteName = "orb_win";
PromoOrbList[PlayerStaticData.UserPromotionMatchCount - 1].labels[1].gameObject.SetActive(value: true);
PromoOrbList[PlayerStaticData.UserPromotionMatchCount - 1].labels[1].alpha = 0f;
iTween.MoveFrom(PromoOrbList[PlayerStaticData.UserPromotionMatchCount - 1].labels[1].gameObject, iTween.Hash("y", PromoOrbList[PlayerStaticData.UserPromotionMatchCount - 1].labels[1].transform.localPosition.y - 10f, "time", 0.5f, "islocal", true, "easetype", iTween.EaseType.easeOutQuad));
TweenAlpha.Begin(PromoOrbList[PlayerStaticData.UserPromotionMatchCount - 1].labels[1].gameObject, 0.5f, 1f);
}
else
{
PromoOrbList[PlayerStaticData.UserPromotionMatchCount - 1].sprites[0].spriteName = "orb_lose";
PromoOrbList[PlayerStaticData.UserPromotionMatchCount - 1].labels[2].gameObject.SetActive(value: true);
iTween.MoveFrom(PromoOrbList[PlayerStaticData.UserPromotionMatchCount - 1].labels[2].gameObject, iTween.Hash("y", PromoOrbList[PlayerStaticData.UserPromotionMatchCount - 1].labels[2].transform.localPosition.y + 10f, "time", 0.5f, "islocal", true, "easetype", iTween.EaseType.easeOutQuad));
TweenAlpha.Begin(PromoOrbList[PlayerStaticData.UserPromotionMatchCount - 1].labels[2].gameObject, 0.5f, 1f);
}
yield return new WaitForSeconds(1.5f);
GameMgr.GetIns().GetSoundMgr().PlaySe(Se.TYPE.SYS_RANK_UP_MACH_WINDOW_MOVE);
TweenAlpha.Begin(BlackBg.gameObject, 0.5f, 0f);
TweenAlpha.Begin(PromoRankIcon.gameObject, 0.5f, 0f);
iTween.MoveTo(PromoTitle.gameObject, iTween.Hash("position", _battleResultNewControl.DefaultPosDict["PromoTitle"] + Vector3.up * 500f, "time", 0.5f, "islocal", true, "easetype", iTween.EaseType.easeInExpo));
iTween.MoveTo(PromoPanel, iTween.Hash("position", _battleResultNewControl.DefaultPosDict["PromoPanel"] + Vector3.down * 600f, "time", 0.5f, "islocal", true, "easetype", iTween.EaseType.easeInExpo));
yield return new WaitForSeconds(1f);
}
public IEnumerator RunRankUp()
{
DivRankIcon.mainTexture = Toolbox.ResourcesManager.LoadObject<Texture>(Toolbox.ResourcesManager.GetAssetTypePath(BeforeRankLv.ToString("00"), ResourcesManager.AssetLoadPathType.RankIcon_L, isfetch: true));
GameMgr.GetIns().GetSoundMgr().PlaySe(Se.TYPE.SYS_RANK_UP_MACH_WINDOW_MOVE);
DivPanel.SetActive(value: true);
RankUpImg.alpha = 0f;
RankDownImg.alpha = 0f;
TweenAlpha.Begin(BlackBg.gameObject, 0.5f, 0.5f);
DivPanelBg.transform.localScale = new Vector3(1f, 0.01f, 1f);
iTween.ScaleTo(DivPanelBg.gameObject, iTween.Hash("y", 1f, "time", 0.5f, "easetype", iTween.EaseType.easeInOutExpo));
yield return new WaitForSeconds(0.2f);
TweenAlpha.Begin(DivRankIcon.gameObject, 0.5f, 1f);
DivRankIcon.transform.localPosition = new Vector3(0f, 60f, -200f);
iTween.MoveTo(DivRankIcon.gameObject, iTween.Hash("y", 80f, "time", 0.5f, "islocal", true, "easetype", iTween.EaseType.easeOutQuad));
yield return new WaitForSeconds(0.5f);
GameMgr.GetIns().GetSoundMgr().PlaySe(Se.TYPE.SYS_RANK_UP_MACH_SUCCESS);
GameMgr.GetIns().GetEffectMgr().Start(EffectMgr.EffectType.CMN_RESULT_RANKUP_1, DivRankIcon.transform.position);
yield return new WaitForSeconds(0.5f);
DivRankIcon.mainTexture = Toolbox.ResourcesManager.LoadObject<Texture>(Toolbox.ResourcesManager.GetAssetTypePath((BeforeRankLv + 1).ToString("00"), ResourcesManager.AssetLoadPathType.RankIcon_L, isfetch: true));
TweenAlpha.Begin(RankUpImg.gameObject, 0.5f, 1f);
RankUpImg.transform.localPosition = new Vector3(0f, -140f, 0f);
iTween.MoveTo(RankUpImg.gameObject, iTween.Hash("y", -120f, "time", 0.5f, "islocal", true, "easetype", iTween.EaseType.easeOutQuad));
yield return new WaitForSeconds(0.5f);
resultState = RankMatchResultState.RANK_UP_END;
}
private IEnumerator EndRankUp()
{
resultState = RankMatchResultState.NONE;
GameMgr.GetIns().GetEffectMgr().FadeStop(EffectMgr.EffectType.CMN_RESULT_RANKUP_1);
TweenAlpha.Begin(DivRankIcon.gameObject, 0.5f, 0f);
TweenAlpha.Begin(RankUpImg.gameObject, 0.5f, 0f);
yield return new WaitForSeconds(0.2f);
GameMgr.GetIns().GetSoundMgr().PlaySe(Se.TYPE.SYS_RANK_UP_MACH_WINDOW_MOVE);
TweenAlpha.Begin(BlackBg.gameObject, 0.5f, 0f);
iTween.ScaleTo(DivPanelBg.gameObject, iTween.Hash("y", 0.01f, "time", 0.5f, "easetype", iTween.EaseType.easeInOutExpo));
yield return new WaitForSeconds(0.5f);
RankIcon.mainTexture = Toolbox.ResourcesManager.LoadObject<Texture>(Toolbox.ResourcesManager.GetAssetTypePath((BeforeRankLv + 1).ToString("00"), ResourcesManager.AssetLoadPathType.RankIcon_L, isfetch: true));
RankIcon.transform.localScale = Vector3.one * 0.5f;
iTween.ScaleTo(RankIcon.gameObject, iTween.Hash("scale", Vector3.one, "time", 0.5f, "easetype", iTween.EaseType.easeOutBack));
DivPanel.SetActive(value: false);
IsRunUIStop = false;
}
public IEnumerator RunRankDown()
{
DivRankIcon.mainTexture = Toolbox.ResourcesManager.LoadObject<Texture>(Toolbox.ResourcesManager.GetAssetTypePath(BeforeRankLv.ToString("00"), ResourcesManager.AssetLoadPathType.RankIcon_L, isfetch: true));
GameMgr.GetIns().GetSoundMgr().PlaySe(Se.TYPE.SYS_RANK_UP_MACH_WINDOW_MOVE);
DivPanel.SetActive(value: true);
RankUpImg.alpha = 0f;
RankDownImg.alpha = 0f;
TweenAlpha.Begin(BlackBg.gameObject, 0.5f, 0.5f);
DivPanelBg.transform.localScale = new Vector3(1f, 0.01f, 1f);
iTween.ScaleTo(DivPanelBg.gameObject, iTween.Hash("y", 1f, "time", 0.5f, "easetype", iTween.EaseType.easeInOutExpo));
yield return new WaitForSeconds(0.2f);
TweenAlpha.Begin(DivRankIcon.gameObject, 0.5f, 1f);
DivRankIcon.transform.localPosition = new Vector3(0f, 60f, -200f);
iTween.MoveTo(DivRankIcon.gameObject, iTween.Hash("y", 80f, "time", 0.5f, "islocal", true, "easetype", iTween.EaseType.easeOutQuad));
yield return new WaitForSeconds(0.5f);
GameMgr.GetIns().GetSoundMgr().PlaySe(Se.TYPE.SYS_RANK_UP_MACH_RANK_DOWN);
GameMgr.GetIns().GetEffectMgr().Start(EffectMgr.EffectType.CMN_RESULT_RANKDOWN_1, DivRankIcon.transform.position);
yield return new WaitForSeconds(0.5f);
DivRankIcon.mainTexture = Toolbox.ResourcesManager.LoadObject<Texture>(Toolbox.ResourcesManager.GetAssetTypePath((BeforeRankLv - 1).ToString("00"), ResourcesManager.AssetLoadPathType.RankIcon_L, isfetch: true));
TweenAlpha.Begin(RankDownImg.gameObject, 0.5f, 1f);
RankDownImg.transform.localPosition = new Vector3(0f, -100f, 0f);
iTween.MoveTo(RankDownImg.gameObject, iTween.Hash("y", -120f, "time", 0.5f, "islocal", true, "easetype", iTween.EaseType.easeOutQuad));
yield return new WaitForSeconds(0.5f);
resultState = RankMatchResultState.RANK_DOWN_END;
}
private IEnumerator EndRankDown()
{
resultState = RankMatchResultState.NONE;
GameMgr.GetIns().GetEffectMgr().FadeStop(EffectMgr.EffectType.CMN_RESULT_RANKDOWN_1);
TweenAlpha.Begin(DivRankIcon.gameObject, 0.5f, 0f);
TweenAlpha.Begin(RankDownImg.gameObject, 0.5f, 0f);
yield return new WaitForSeconds(0.2f);
GameMgr.GetIns().GetSoundMgr().PlaySe(Se.TYPE.SYS_RANK_UP_MACH_WINDOW_MOVE);
TweenAlpha.Begin(BlackBg.gameObject, 0.5f, 0f);
iTween.ScaleTo(DivPanelBg.gameObject, iTween.Hash("y", 0.01f, "time", 0.5f, "easetype", iTween.EaseType.easeInOutExpo));
yield return new WaitForSeconds(0.5f);
RankIcon.mainTexture = Toolbox.ResourcesManager.LoadObject<Texture>(Toolbox.ResourcesManager.GetAssetTypePath((BeforeRankLv - 1).ToString("00"), ResourcesManager.AssetLoadPathType.RankIcon_L, isfetch: true));
RankIcon.transform.localScale = Vector3.one * 0.5f;
iTween.ScaleTo(RankIcon.gameObject, iTween.Hash("scale", Vector3.one, "time", 0.5f, "easetype", iTween.EaseType.easeOutBack));
DivPanel.SetActive(value: false);
IsRunUIStop = false;
}
private IEnumerator EndTierUp()
{
resultState = RankMatchResultState.NONE;
GameMgr.GetIns().GetEffectMgr().FadeStop(EffectMgr.EffectType.CMN_RESULT_TIERUP_1);
TweenAlpha.Begin(TierRankIcon.gameObject, 0.5f, 0f);
TweenAlpha.Begin(TierUpFrontImg.gameObject, 0.5f, 0f);
yield return new WaitForSeconds(0.5f);
IsRunUIStop = false;
}
public IEnumerator RunFailed()
{
GameMgr.GetIns().GetSoundMgr().PlaySe(Se.TYPE.SYS_RANK_UP_MACH_FAILED);
TweenAlpha.Begin(TitleFailed.gameObject, 0.5f, 1f);
TitleFailed.transform.localPosition = new Vector3(0f, 50f, 0f);
iTween.MoveTo(TitleFailed.gameObject, iTween.Hash("y", 0f, "time", 3f, "islocal", true, "easetype", iTween.EaseType.easeOutExpo));
GameMgr.GetIns().GetEffectMgr().Start(EffectMgr.EffectType.CMN_RESULT_FAILED_1, Vector3.back);
yield return new WaitForSeconds(2.5f);
TweenAlpha.Begin(TitleFailed.gameObject, 0.5f, 0f);
yield return new WaitForSeconds(0.5f);
}
public void SetRankExp(int num, bool isLvUpCheck)
{
if (GameMgr.GetIns().GetDataMgr().IsFormatEnableBattleType())
{
_rankExp = _beforeRankExp + num;
if (UserRank.IsGrandMasterAvailability && PlayerStaticData.IsMasterRankCurrentFormat())
{
_rankExp += _cumulativeBattlePointToMaster;
}
_rankLv = GetRankLv(_rankExp);
int rankIndexFromRankID = GetRankIndexFromRankID(_rankLv);
_nowRankExp = GetRankExpNow(_rankExp);
CorrectGrandMasterRankLvAndExpNow();
_nextRankExp = Mathf.Max(0, _rankExpList[rankIndexFromRankID] - _nowRankExp);
if (PlayerStaticData.IsMasterRankCurrentFormat())
{
RankExpLabel.text = (_beforeRankExp + num).ToString();
}
else
{
RankExpLabel.text = _rankExp.ToString();
}
RankExpNextLabel.text = (IsMaxRank(_rankLv) ? "-" : _nextRankExp.ToString());
if (BasicExp_and_SuperiorBonus >= 0)
{
RankExpAddLabel.text = ((BasicExp_and_SuperiorBonus - num >= 0) ? "+" : "") + (BasicExp_and_SuperiorBonus - num);
}
else
{
RankExpAddLabel.text = (BasicExp_and_SuperiorBonus - num).ToString();
}
RankGaugeBar.Value = Mathf.Min((float)_nowRankExp / (float)_rankExpList[rankIndexFromRankID], 1f);
if (isLvUpCheck && _rankLv > _rankLvPrev)
{
PlayRankUpGaugeEffect();
_rankLvPrev = _rankLv;
}
}
}
private bool IsMaxRank(int rank)
{
if (Data.CurrentFormat == Format.Crossover)
{
return Data.Crossover.IsMaxRank(rank);
}
return rank >= Data.Load.data.RankInfoList.Count;
}
private void SetRankExpBonus(int num)
{
_rankExp = Mathf.Min(_beforeRankExp + BasicExp_and_SuperiorBonus + num, Data.RankMatchFinish.data.AfterExp);
RankExpLabel.text = _rankExp.ToString();
if (UserRank.IsGrandMasterAvailability && PlayerStaticData.IsMasterRankCurrentFormat())
{
_rankExp += _cumulativeBattlePointToMaster;
}
_rankLv = GetRankLv(_rankExp);
_nowRankExp = GetRankExpNow(_rankExp);
int rankIndexFromRankID = GetRankIndexFromRankID(_rankLv);
CorrectGrandMasterRankLvAndExpNow();
_nextRankExp = Mathf.Max(0, _rankExpList[rankIndexFromRankID] - _nowRankExp);
RankExpNextLabel.text = (PlayerStaticData.IsMaxRank(Data.CurrentFormat) ? "-" : _nextRankExp.ToString());
RankExpBonusLabel.text = ((RankExpBonus - num >= 0) ? "+" : "") + (RankExpBonus - num);
RankGaugeBar.Value = Mathf.Min((float)_nowRankExp / (float)_rankExpList[rankIndexFromRankID], 1f);
if (_rankLv > _rankLvPrev)
{
PlayRankUpGaugeEffect();
_rankLvPrev = _rankLv;
}
}
private void CorrectGrandMasterRankLvAndExpNow()
{
if (UserRank.IsGrandMasterAvailability && PlayerStaticData.IsGrandMasterRankCurrentFormat() && _rankLv < _rankLvPrev)
{
for (int num = _rankLvPrev; num > _rankLv; num--)
{
_nowRankExp -= _rankExpList[num - 1];
}
_rankLv = _rankLvPrev;
}
}
private void PlayRankUpGaugeEffect()
{
if (!PlayerStaticData.IsGrandMasterRankCurrentFormat())
{
GameMgr.GetIns().GetSoundMgr().PlaySe(Se.TYPE.SYS_RESULT_LEVELUP);
GameMgr.GetIns().GetEffectMgr().Start(EffectMgr.EffectType.CMN_RESULT_GAUGE_2, RankGaugeBar.GetTransformGaugeStartEdge().position);
}
}
public void SettingAddRankExpTextAnimation()
{
iTween.ValueTo(base.gameObject, iTween.Hash("from", 0, "to", BasicExp_and_SuperiorBonus, "time", 0.5f, "delay", 0.5f, "onstart", "StartRankExp", "onupdate", "UpdateRankExp", "oncomplete", "CompleteRankExp", "easetype", iTween.EaseType.easeOutQuad));
bool flag = BasicExp_and_SuperiorBonus >= 0;
RankExpAddLabel.text = (flag ? "+" : string.Empty) + BasicExp_and_SuperiorBonus;
RankExpAddLabel.color = (flag ? BattleResultUIController.PLUS_START_COLOR : BattleResultUIController.MINUS_START_COLOR);
TweenAlpha.Begin(RankExpAddLabel.gameObject, 0.3f, 1f);
iTween.MoveFrom(RankExpAddLabel.gameObject, iTween.Hash("y", RankExpAddLabel.transform.localPosition.y - 10f, "time", 0.3f, "islocal", true, "easetype", iTween.EaseType.easeOutExpo));
}
public void AddRankExpBonus()
{
iTween.ValueTo(base.gameObject, iTween.Hash("from", 0, "to", RankExpBonus, "time", 0.5f, "delay", 0.5f, "onstart", "StartRankExpBonus", "onupdate", "UpdateRankExpBonus", "oncomplete", "CompleteRankExpBonus", "easetype", iTween.EaseType.easeOutQuad));
RankExpBonusTitle.alpha = 1f;
RankExpBonusLabel.text = ((RankExpBonus >= 0) ? "+" : "") + RankExpBonus;
RankExpBonusLabel.color = BattleResultUIController.PLUS_END_COLOR;
iTween.MoveFrom(RankExpBonusTitle.gameObject, iTween.Hash("x", RankExpBonusTitle.transform.localPosition.x - 50f, "time", 0.5f, "islocal", true, "easetype", iTween.EaseType.easeOutExpo));
TweenAlpha.Begin(RankExpBonusInfo.gameObject, 0.3f, 1f).delay = 0.1f;
iTween.MoveFrom(RankExpBonusInfo.gameObject, iTween.Hash("x", RankExpBonusInfo.transform.localPosition.x - 50f, "time", 0.5f, "delay", 0.1f, "islocal", true, "easetype", iTween.EaseType.easeOutExpo));
}
private void StartRankExp()
{
RankGaugeEfc.gameObject.SetActive(value: true);
RankGaugeEfc.Play();
}
private void StartRankExpBonus()
{
RankGaugeEfc.gameObject.SetActive(value: true);
RankGaugeEfc.Play();
}
private void UpdateRankExp(int num)
{
SetRankExp(num, isLvUpCheck: true);
}
private void UpdateRankExpBonus(int num)
{
SetRankExpBonus(num);
}
private void CompleteRankExp()
{
RankGaugeEfc.Stop();
TweenAlpha.Begin(RankExpAddLabel.gameObject, 0.5f, 0f).delay = 0.5f;
}
private void CompleteRankExpBonus()
{
RankGaugeEfc.Stop();
TweenAlpha.Begin(RankExpBonusTitle.gameObject, 0.5f, 0f).delay = 0.5f;
TweenAlpha.Begin(RankExpBonusLabel.gameObject, 0.5f, 0f).delay = 0.5f;
}
private int GetRankIndexFromRankID(int rankID)
{
for (int i = 0; i < _rankInfoList.Count; i++)
{
if (_rankInfoList[i].RankId == rankID)
{
return i;
}
}
Debug.LogError("未知のランクID:" + rankID);
return 0;
}
private int GetRankLv(int currentExp)
{
int num = 1;
int num2 = 0;
if (_isRankFix)
{
num = _rankLvPrev;
}
else
{
num = _rankInfoList[0].RankId;
for (int i = 0; i < _rankExpList.Count; i++)
{
num2 += _rankExpList[i];
if (currentExp < num2)
{
break;
}
num = _rankInfoList[i].RankId + 1;
}
}
return Mathf.Min(num, _rankLvMax);
}
private int GetRankExpNow(int currentExp)
{
int num2;
if (_isRankFix)
{
int num = _rankLv - 1;
if (Data.CurrentFormat == Format.Crossover)
{
num = _rankLv - Data.Crossover.GetRankInfoRawList()[0].RankId;
}
num2 = currentExp;
for (int i = 0; i < num; i++)
{
num2 -= _rankExpList[i];
}
num2 = Mathf.Min(num2, _rankExpList[num]);
}
else
{
num2 = currentExp;
for (int j = 0; j < _rankExpList.Count && num2 >= _rankExpList[j]; j++)
{
num2 -= _rankExpList[j];
}
}
return num2;
}
private void OnClickBgBtn()
{
switch (resultState)
{
case RankMatchResultState.RANK_UP_END:
StartCoroutine(EndRankUp());
break;
case RankMatchResultState.RANK_DOWN_END:
StartCoroutine(EndRankDown());
break;
case RankMatchResultState.TIER_UP_END:
StartCoroutine(EndTierUp());
break;
}
}
}