Files
SVSimServer/SVSim.BattleEngine/Engine/BattleResultUIController.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

917 lines
31 KiB
C#

using System;
using System.Collections;
using System.Collections.Generic;
using Cute;
using LitJson;
using UnityEngine;
using Wizard;
using Wizard.Battle.Recovery;
public class BattleResultUIController : MonoBehaviour
{
private enum MenuDialogSelect
{
None = -1,
Button1,
ButtonClose
}
public const string BattleResultObjectPass = "Prefab/UI/BattleResult/BattleResultUI";
public const string RankMatchBattleResultObjectPass = "Prefab/UI/BattleResult/RankMatchBattleResultUI";
public const string QuestBattleResultObjectPass = "Prefab/UI/BattleResult/QuestSpecialBattleResultUI";
public const string ColosseumBattleResultObjectPass = "Prefab/UI/BattleResult/ColosseumBattleResultUI";
public const string PLUS_STRING = "+";
public static readonly Color PLUS_START_COLOR = new Color32(byte.MaxValue, 192, 0, 0);
public static readonly Color PLUS_END_COLOR = new Color32(byte.MaxValue, 192, 0, byte.MaxValue);
public static readonly Color MINUS_START_COLOR = new Color32(128, 192, byte.MaxValue, 0);
public const float GAUGEUP_DURATION = 0.5f;
public const float GAUGEUP_DELAY = 0.5f;
public const float GAUGEUP_LABEL_DURATION = 0.3f;
public const float GAUGEUP_LABEL_MOVE_DISTANCE = 10f;
public const float GAUGEUP_LABEL_DISAPPEAR_DURATION = 0.5f;
public const float GAUGEUP_LABEL_DISAPPEAR_DELAY = 0.5f;
[SerializeField]
public RankMatchBattleResult RankMatchBattleResultObject;
[SerializeField]
public QuestSpecialBattleResult QuestBattleResultObject;
[SerializeField]
private GameObject _battlePassResultPanel;
[SerializeField]
private Transform _acncorNoneRoot;
[SerializeField]
private UISprite _backGroundWithRank;
[SerializeField]
private UISprite _backGroundNotNeedRank;
[Header("共通")]
[SerializeField]
public UIPanel MainPanel;
[SerializeField]
public NguiObjs ClassCharObj;
[SerializeField]
public UITexture Bg;
[SerializeField]
public UISprite ArcaneIn;
[SerializeField]
public UISprite ArcaneOut;
[SerializeField]
public UISprite ResultTitle;
[Header("クラス情報")]
[SerializeField]
public GameObject ClassInfo;
[SerializeField]
private ClassInfoParts _classInfoParts;
[SerializeField]
private UITexture ClassLvImg;
[SerializeField]
private UILabel ClassLvLabel;
[SerializeField]
private UIGauge ClassGaugeBar;
[SerializeField]
private ParticleSystem ClassGaugeEfc;
[SerializeField]
public UILabel ClassExpAddLabel;
[SerializeField]
private UILabel ClassExpNextTitle;
[SerializeField]
private UILabel ClassExpNextLabel;
[Header("下部ボタン")]
[SerializeField]
public UIAnchor AnchorBottom;
[SerializeField]
public UIGrid ButtonGrid;
[SerializeField]
public NguiObjs MissionBtnObj;
[SerializeField]
public NguiObjs HomeBtnObj;
[SerializeField]
public NguiObjs RetryBtnObj;
[SerializeField]
public NguiObjs ReportBtnObj;
[Header("タイトル画像")]
[SerializeField]
private GameObject _titleRoot;
[SerializeField]
public UISprite TitleWin;
[SerializeField]
public UISprite TitleLose;
[SerializeField]
public UISprite TitleDraw;
[SerializeField]
public UISprite TitleMatch;
[Header("通知表示")]
[SerializeField]
public NguiObjs ResultInfo;
[SerializeField]
private GameObject _notificationAnimationParent;
[SerializeField]
private NotificatonAnimation _notificationAnimationPrefab;
[SerializeField]
private UISprite _battlePassBG;
private string _resultTypeMsg = "";
[SerializeField]
private GameObject m_MissionBase;
public IDictionary<string, Vector3> DefaultPosDict = new Dictionary<string, Vector3>();
private int _classLv;
private int _classLvPrev;
private int _classLvMax;
private int _classExp;
private int _nowClassExp;
private int _nextClassExp;
private IList<NguiObjs> _missionLogList = new List<NguiObjs>();
private int _beforeClassExp;
private IList<int> _classExpList = new List<int>();
private bool _isResultTutorial;
private bool _isUsingSpecialDeck;
private int _usingSpecialDeckClassId;
private List<string> _resultAssetList = new List<string>();
private INextSceneSelector _nextSceneSelector;
[NonSerialized]
public IBattleResultReporter resultReporter;
private IResultAnimationHandler resultAnimationHandler;
public const int MISSION_SPRITE_WIDTH = 800;
private const int MISSION_MARGIN = 24;
private const string MAINTENANCE_TIME_KEY = "maintenance_time";
private int _selectedClassId;
private NotificatonAnimation _notificationAnimation;
[SerializeField]
private GameObject _missionSelect;
[SerializeField]
private GameObject _retrySelect;
[SerializeField]
private GameObject _homeSelect;
private const int MISSION_SELECT = 0;
private const int RETRY_SELECT = 1;
private const int HOME_SELECT = 2;
public DialogBase _missionDialog;
private MenuDialogSelect _menuDialogSelect = MenuDialogSelect.None;
[NonSerialized]
public bool IsRewardWait;
public bool ResultMsgWindowFlag { get; private set; }
public bool ResultMsgReportBtnFlag { get; private set; }
public bool IsWin { get; set; }
public int AddClassExp { get; private set; }
public bool IsDraw { get; private set; }
public bool IsResultOn { get; private set; }
public bool AlreadyResultRecovery { get; set; }
public bool GreySpriteBGVisible
{
set
{
_battlePassBG.gameObject.SetActive(value);
}
}
public IBattleResultReporter ResultReporter => resultReporter;
public event Action OnResultFinish;
private void OnDestroy()
{
VideoHostingUtil.SetHUDScene(VideoHostingUtil.HUDScene.Home);
GameMgr.GetIns().GetEffectMgr().Stop(EffectMgr.EffectType.CMN_RESULT_BACK_1);
GameMgr.GetIns().GetEffectMgr().Stop(EffectMgr.EffectType.CMN_RESULT_BACK_2);
GameMgr.GetIns().GetEffectMgr().Stop(EffectMgr.EffectType.CMN_RESULT_BACK_3);
if (resultAnimationHandler != null)
{
resultAnimationHandler.Destroy();
}
if (GameMgr.GetIns()._rankWinnerReward != null)
{
GameMgr.GetIns()._rankWinnerReward.RemoveObject();
GameMgr.GetIns()._rankWinnerReward = null;
}
}
private void Start()
{
_titleRoot.SetActive(value: true);
IsResultOn = false;
DefaultPosDict["ClassCharObj"] = ClassCharObj.transform.localPosition;
DefaultPosDict["ResultTitle"] = ResultTitle.transform.localPosition;
DefaultPosDict["ClassInfo"] = ClassInfo.transform.localPosition;
DefaultPosDict["ButtonGrid"] = ButtonGrid.transform.localPosition;
MainPanel.alpha = 0f;
TitleMatch.alpha = 0f;
Toolbox.AudioManager.AddCueSheet("bgm_btl_jingle", "bgm_btl_jingle.acb", "b/", "bgm_btl_jingle.awb");
ButtonGrid.gameObject.SetActive(value: false);
IsDraw = false;
base.gameObject.SetActive(value: false);
if (RankMatchBattleResultObject != null)
{
RankMatchBattleResultObject.Init();
}
if (QuestBattleResultObject != null)
{
QuestBattleResultObject.Init();
}
}
public void StartUI(bool win, BattleCamera battleCamera)
{
base.gameObject.SetActive(value: true);
if (IsResultOn)
{
return;
}
IsResultOn = true;
Toolbox.AudioManager.AddCueSheet("bgm_btl_jingle", "bgm_btl_jingle.acb", "b/", "bgm_btl_jingle.awb");
VideoHostingUtil.SetHUDScene(VideoHostingUtil.HUDScene.BattleResult);
DataMgr dataMgr = GameMgr.GetIns().GetDataMgr();
int skinId = dataMgr.GetPlayerSkinId();
bool isEvolve = BattleManagerBase.GetIns().BattlePlayer.IsSkinEvolved;
if (!BattleManagerBase.IsTutorial)
{
if (win)
{
_resultAssetList.Add(Toolbox.ResourcesManager.GetAssetTypePath(skinId.ToString("00"), isEvolve ? ResourcesManager.AssetLoadPathType.ClassCharaEvolveWin : ResourcesManager.AssetLoadPathType.ClassCharaBaseWin));
string text = dataMgr.GetPlayerEmotionData()[ClassCharaPrm.EmotionType.WIN].GetVoiceId(isEvolve);
if (BattleManagerBase.GetIns().IsPuzzleMgr)
{
string clearVoiceId = (BattleManagerBase.GetIns() as PuzzleBattleManager).PuzzleQuestData.ClearVoiceId;
if (!string.IsNullOrEmpty(clearVoiceId))
{
text = clearVoiceId;
}
}
_ = isEvolve;
_resultAssetList.Add("v/vo_" + text + ".acb");
}
else
{
_resultAssetList.Add(Toolbox.ResourcesManager.GetAssetTypePath(skinId.ToString("00"), isEvolve ? ResourcesManager.AssetLoadPathType.ClassCharaEvolveLose : ResourcesManager.AssetLoadPathType.ClassCharaBaseLose));
_resultAssetList.Add("v/vo_" + dataMgr.GetPlayerEmotionData()[ClassCharaPrm.EmotionType.LOSE].GetVoiceId(isEvolve) + ".acb");
}
}
if (dataMgr.IsFormatEnableBattleType())
{
int num = PlayerStaticData.UserRankCurrentFormat();
_resultAssetList.Add(Toolbox.ResourcesManager.GetAssetTypePath(num.ToString("00"), ResourcesManager.AssetLoadPathType.RankIcon_L));
}
List<GameObject> list = new List<GameObject>();
list.Add(ClassGaugeEfc.gameObject);
if (RankMatchBattleResultObject != null)
{
list.Add(RankMatchBattleResultObject.RankGaugeEfc.gameObject);
}
if (QuestBattleResultObject != null)
{
list.Add(QuestBattleResultObject.QuestPointGaugeEffect.gameObject);
}
GameMgr.GetIns().GetEffectMgr().SetUIParticleShader(list, delegate
{
GameMgr.GetIns().GetEffectMgr().InitCommonEffect("Json/EffectResultData", isBattle: true, isField: false, isBattleEffect: true, delegate
{
Toolbox.ResourcesManager.StartCoroutine_LoadAssetGroupAsync(_resultAssetList, delegate
{
Toolbox.ResourcesManager.BattleListAssetPathList.AddRange(_resultAssetList);
IsWin = win;
DataMgr.BattleType battleType = dataMgr.m_BattleType;
if (battleType == DataMgr.BattleType.Story && Data.SelectedStoryInfo.IsTutorialCategory)
{
_isResultTutorial = true;
_nextSceneSelector = new TutorialNextSceneSelector(this);
resultReporter = new TutorialResultReporter();
resultAnimationHandler = new TutorialResultAnimationHandler(battleCamera);
}
else
{
ResourcesManager.AssetLoadPathType type = ((!isEvolve) ? (IsWin ? ResourcesManager.AssetLoadPathType.ClassCharaBaseWin : ResourcesManager.AssetLoadPathType.ClassCharaBaseLose) : (IsWin ? ResourcesManager.AssetLoadPathType.ClassCharaEvolveWin : ResourcesManager.AssetLoadPathType.ClassCharaEvolveLose));
Texture mainTexture = Toolbox.ResourcesManager.LoadObject(Toolbox.ResourcesManager.GetAssetTypePath(skinId.ToString("00"), type, isfetch: true)) as Texture;
ClassCharObj.textures[0].mainTexture = mainTexture;
_classInfoParts.InitByCharaPrm(dataMgr.GetPlayerCharaData());
ClassLvImg.mainTexture = Toolbox.ResourcesManager.LoadObject(Toolbox.ResourcesManager.GetAssetTypePath(dataMgr.GetPlayerClassId().ToString("00"), ResourcesManager.AssetLoadPathType.ClassCharaIconLevel, isfetch: true)) as Texture;
if (battleType == DataMgr.BattleType.TwoPick)
{
_isUsingSpecialDeck = true;
if (Data.TwoPickInfo.deckInfo != null)
{
_usingSpecialDeckClassId = Data.TwoPickInfo.deckInfo.classId;
}
else
{
_usingSpecialDeckClassId = Data.BattleRecoveryInfo.chara_id;
}
}
SetResultFunc(battleCamera);
}
ResultSetupEnd();
});
});
}, isBattle: true);
}
private void SetResultFunc(BattleCamera battleCamera)
{
if (GameMgr.GetIns().IsReplayBattle)
{
_nextSceneSelector = new NullNextSceneSelector(this);
resultReporter = new RoomMatchResultReporter();
resultAnimationHandler = new RoomMatchResultAnimationHandler(battleCamera);
return;
}
switch (GameMgr.GetIns().GetDataMgr().m_BattleType)
{
case DataMgr.BattleType.FreeBattle:
_nextSceneSelector = new NetworkMatchNextSceneSelector(this);
resultReporter = new FreeMatchResultReporter();
resultAnimationHandler = new FreeMatchResultAnimationHandler(battleCamera);
break;
case DataMgr.BattleType.RankBattle:
_nextSceneSelector = new NetworkMatchNextSceneSelector(this);
resultReporter = new RankMatchResultReporter();
resultAnimationHandler = new RankMatchResultAnimationHandler(battleCamera);
break;
case DataMgr.BattleType.Practice:
if (GameMgr.GetIns().IsPuzzleQuest)
{
_nextSceneSelector = new PracticePuzzleNextSceneSelector(this);
resultReporter = new PracticePuzzleResultReporter();
resultAnimationHandler = new PracticeResultAnimationHandler(battleCamera);
}
else
{
_nextSceneSelector = new PracticeNextSceneSelector(this);
resultReporter = new PracticeResultReporter();
resultAnimationHandler = new PracticeResultAnimationHandler(battleCamera);
}
break;
case DataMgr.BattleType.ColosseumNormal:
case DataMgr.BattleType.ColosseumTwoPick:
case DataMgr.BattleType.ColosseumHof:
case DataMgr.BattleType.ColosseumWindFall:
case DataMgr.BattleType.ColosseumAvatar:
_nextSceneSelector = new ArenaNextSceneSelector(this);
resultReporter = new ColosseumResultReporter();
resultAnimationHandler = new ColosseumResultAnimationHandler(battleCamera);
break;
case DataMgr.BattleType.CompetitionNormal:
case DataMgr.BattleType.CompetitionTwoPick:
_nextSceneSelector = new ArenaNextSceneSelector(this);
resultReporter = new CompetitionResultReporter();
resultAnimationHandler = new CompetitionResultAnimationHandler(battleCamera);
break;
case DataMgr.BattleType.TwoPick:
case DataMgr.BattleType.Sealed:
_nextSceneSelector = new ArenaNextSceneSelector(this);
resultReporter = new ArenaResultReporter();
resultAnimationHandler = new ArenaResultAnimationHandler(battleCamera);
break;
case DataMgr.BattleType.RoomBattle:
case DataMgr.BattleType.RoomTwoPick:
case DataMgr.BattleType.TwoPickBackdraft:
_nextSceneSelector = new NullNextSceneSelector(this);
resultReporter = new RoomMatchResultReporter();
resultAnimationHandler = new RoomMatchResultAnimationHandler(battleCamera);
break;
case DataMgr.BattleType.Story:
_nextSceneSelector = new StoryNextSceneSelector(this);
resultReporter = new StoryResultReporter();
resultAnimationHandler = new StoryResultAnimationHandler(battleCamera);
break;
case DataMgr.BattleType.Quest:
case DataMgr.BattleType.BossRushQuest:
case DataMgr.BattleType.SecretBossQuest:
_nextSceneSelector = new QuestNextSceneSelector(this);
resultReporter = new QuestResultReporter();
resultAnimationHandler = new QuestSpecialResultAnimationHandler(battleCamera, GetComponent<QuestSpecialBattleResult>());
break;
}
if (BattleManagerBase.GetIns().IsPuzzleMgr && !IsWin)
{
_nextSceneSelector = new NullNextSceneSelector(this);
}
}
private void ResultSetupEnd()
{
_nextSceneSelector.Setup(IsWin, base.gameObject);
ClassCharObj.transform.localPosition = DefaultPosDict["ClassCharObj"] + Vector3.right * 1200f;
ResultTitle.transform.localPosition = DefaultPosDict["ResultTitle"] + Vector3.up * 500f;
ClassInfo.transform.localPosition = DefaultPosDict["ClassInfo"] + Vector3.left * 2000f;
ButtonGrid.transform.localPosition = DefaultPosDict["ButtonGrid"] + Vector3.down * 200f;
for (int i = 0; i < _missionLogList.Count; i++)
{
_missionLogList[i].gameObject.SetActive(value: false);
}
ClassCharObj.gameObject.SetActive(value: true);
ResultTitle.gameObject.SetActive(value: true);
ClassInfo.gameObject.SetActive(value: true);
ButtonGrid.gameObject.SetActive(value: true);
ArcaneIn.transform.localScale = Vector3.one * 0.01f;
ArcaneOut.transform.localScale = Vector3.one * 0.01f;
ArcaneIn.alpha = 0f;
ArcaneOut.alpha = 0f;
ClassExpAddLabel.alpha = 0f;
ResultInfo.labels[0].alpha = 0f;
ResultInfo.sprites[0].alpha = 0f;
ButtonGrid.repositionNow = true;
ClassExpNextTitle.text = Data.SystemText.Get("Battle_0205");
Format format = Data.CurrentFormat;
if (GameMgr.GetIns().GetDataMgr().IsDipslayHighRankFormat())
{
format = PlayerStaticData.HighRankFormat();
}
if (format == Format.PreRotation)
{
format = Format.Rotation;
}
if (GameMgr.GetIns().IsWatchBattle)
{
resultReporter.Destroy();
StartCoroutine(resultAnimationHandler.m_resultAnimationAgent.RunUI(this, _nextSceneSelector, IsWin));
}
else
{
StartCoroutine(GetServerData());
}
if (RankMatchBattleResultObject != null)
{
RankMatchBattleResultObject.ResultSetupEnd(format);
}
if (QuestBattleResultObject != null)
{
QuestBattleResultObject.ResultSetupEnd(format);
}
}
public void SetBattlePassGauge(Action completeAction)
{
if (_battlePassResultPanel == null || !PlayerPrefsWrapper.GetBool(PlayerPrefsWrapper.BATTLE_PASS_SHOW_RESULT) || !resultReporter.IsDataExist)
{
completeAction();
return;
}
JsonData finishResponseData = resultReporter.GetFinishResponseData();
if (finishResponseData != null && finishResponseData["data"].Keys.Contains("battle_pass_gauge_info"))
{
BattlePassGaugeInfo battlePassGaugeInfo = new BattlePassGaugeInfo(finishResponseData["data"]["battle_pass_gauge_info"]);
if (battlePassGaugeInfo.IsMaxPoint && battlePassGaugeInfo.IsBeforeMaxPoint)
{
completeAction();
return;
}
GreySpriteBGVisible = true;
BattlePassResultPanel component = UnityEngine.Object.Instantiate(_battlePassResultPanel, _acncorNoneRoot).GetComponent<BattlePassResultPanel>();
component.Initialize(battlePassGaugeInfo);
component.SetPointupAnimation(completeAction);
}
else
{
completeAction();
}
}
public void CreateMissionList()
{
SystemText systemText = Data.SystemText;
DialogBase dialogBase = UIManager.GetInstance().CreateDialogClose();
dialogBase.SetSize(DialogBase.Size.M);
dialogBase.SetTitleLabel(systemText.Get("Mission_0003"));
dialogBase.SetButtonLayout(DialogBase.ButtonLayout.CloseBtn);
dialogBase.ScrollView.transform.DestroyChildren();
dialogBase.ScrollView.panel.leftAnchor.absolute = 24;
dialogBase.ScrollView.panel.rightAnchor.absolute = -24;
GameObject gameObject = new GameObject("table");
dialogBase.ScrollView.contentPivot = UIWidget.Pivot.Top;
dialogBase.AttachToScrollView(gameObject.transform);
UITable uITable = gameObject.AddComponent<UITable>();
uITable.columns = 1;
uITable.keepWithinPanel = true;
uITable.cellAlignment = UIWidget.Pivot.Center;
uITable.pivot = UIWidget.Pivot.Center;
ResourceHandler resourceHandler = base.gameObject.AddMissingComponent<ResourceHandler>();
int count = Data.MissionInfo.data.user_mission_list.Count;
for (int i = 0; i < Data.MissionInfo.data.user_mission_list.Count; i++)
{
UserMission mission = Data.MissionInfo.data.user_mission_list[i];
GameObject obj = UnityEngine.Object.Instantiate(m_MissionBase);
obj.transform.parent = uITable.transform;
obj.transform.localPosition = Vector3.zero;
obj.transform.localScale = Vector3.one;
obj.SetActive(value: true);
obj.GetComponent<UISprite>().width = 800;
obj.GetComponent<AchievementWindowBase>().SetMission(mission, resourceHandler, canChangeMissions: false, i != count - 1, displayChange: false);
}
_missionDialog = dialogBase;
StartCoroutine(ResetMissionScrollPos(dialogBase.ScrollView));
UIManager.GetInstance().closeInSceneCenterLoading();
}
private IEnumerator ResetMissionScrollPos(UIScrollView scroll)
{
yield return new WaitForSeconds(0.1f);
scroll.ResetPosition();
}
private IEnumerator GetServerData()
{
LocalLog.AccumulateLastTraceLog("GetServerData ");
LocalLog.SendClientInfoTraceLog(delegate
{
resultReporter.Report(IsWin);
});
while (!resultReporter.IsEnd)
{
yield return null;
}
LocalLog.AccumulateLastTraceLog("GetServerData ReporterEnd");
if (!resultReporter.IsDataExist)
{
Toolbox.NetworkManager.NetworkUI.OpenGoToTitleErrorPopUp(Data.SystemText.Get("ErrorHeader_3502"), Data.SystemText.Get("Error_3502"), "");
yield break;
}
DataMgr dataMgr = GameMgr.GetIns().GetDataMgr();
if (RankMatchBattleResultObject != null)
{
RankMatchBattleResultObject.GetServerData();
}
if (QuestBattleResultObject != null)
{
QuestBattleResultObject.GetServerData(resultReporter);
}
if (dataMgr.IsColosseumBattleType())
{
SetBackGroundNeedBattlePoint(needBattlePoint: false);
}
GameMgr.GetIns().GetDataMgr().CacheSingleRecovryData();
RecoveryRecordManagerBase.DeleteRecoveryFile();
AddClassExp = resultReporter.ClassExp;
resultReporter.Destroy();
if (!_isResultTutorial)
{
if (_isUsingSpecialDeck)
{
_selectedClassId = ((_usingSpecialDeckClassId != 0) ? _usingSpecialDeckClassId : dataMgr.GetPlayerClassId());
}
else
{
_selectedClassId = dataMgr.GetPlayerClassId();
}
_beforeClassExp = dataMgr.GetClassPrm(_selectedClassId).GetClassCharaExp();
}
_classExpList.Clear();
for (int num = 0; num < Data.Load.data._classCharaExpList.Count; num++)
{
_classExpList.Add(Data.Load.data._classCharaExpList[num].necessary_exp);
}
_classLvMax = _classExpList.Count;
SetClassExp(0, isLvUpCheck: false);
_classLvPrev = _classLv;
StartCoroutine(resultAnimationHandler.m_resultAnimationAgent.RunUI(this, _nextSceneSelector, IsWin));
}
public void PrepareAchievementLog()
{
if (GameMgr.GetIns().IsWatchBattle)
{
return;
}
List<NotificatonAnimation.Param> list = new List<NotificatonAnimation.Param>();
JsonData finishResponseData = resultReporter.GetFinishResponseData();
if (finishResponseData != null && finishResponseData["data"].Keys.Contains("maintenance_time"))
{
DateTime dateTime = DateTime.Parse(finishResponseData["data"]["maintenance_time"].ToString());
list.Add(new NotificatonAnimation.Param(NotificatonAnimation.Param.Type.MaintenanceOnResult, Data.SystemText.Get("System_0044", ConvertTime.ToLocal(dateTime))));
}
if (finishResponseData != null && finishResponseData["data"].Keys.Contains("gathering_notification"))
{
string valueOrDefault = finishResponseData["data"]["gathering_notification"].GetValueOrDefault("matching_established_message", string.Empty);
if (!string.IsNullOrEmpty(valueOrDefault))
{
list.Add(new NotificatonAnimation.Param(NotificatonAnimation.Param.Type.GatheringMatching, valueOrDefault));
}
}
for (int i = 0; i < resultReporter.UserMission.Count; i++)
{
list.Add(new NotificatonAnimation.Param(NotificatonAnimation.Param.Type.Result, resultReporter.UserMission[i].achieved_message));
}
for (int j = 0; j < resultReporter.UserAchievement.Count; j++)
{
list.Add(new NotificatonAnimation.Param(NotificatonAnimation.Param.Type.Result, resultReporter.UserAchievement[j].achieved_message));
}
StartCoroutine(ShowAchieveLog(list));
}
public void RewardCheck()
{
IsRewardWait = false;
}
public void FinishResult()
{
this.OnResultFinish.Call();
}
public void SettingAddClassExpTextAnimation()
{
iTween.ValueTo(base.gameObject, iTween.Hash("from", 0, "to", AddClassExp, "time", 0.5f, "delay", 0.5f, "onstart", "StartClassExp", "onupdate", "UpdateClassExp", "oncomplete", "CompleteClassExp", "easetype", iTween.EaseType.easeOutQuad));
bool flag = AddClassExp >= 0;
ClassExpAddLabel.text = (flag ? "+" : string.Empty) + AddClassExp;
ClassExpAddLabel.color = (flag ? PLUS_START_COLOR : MINUS_START_COLOR);
TweenAlpha.Begin(ClassExpAddLabel.gameObject, 0.3f, 1f);
iTween.MoveFrom(ClassExpAddLabel.gameObject, iTween.Hash("y", ClassExpAddLabel.transform.localPosition.y - 10f, "time", 0.3f, "islocal", true, "easetype", iTween.EaseType.easeOutExpo));
}
private void StartClassExp()
{
ClassGaugeEfc.gameObject.SetActive(value: true);
ClassGaugeEfc.Play();
}
private void UpdateClassExp(int num)
{
SetClassExp(num, isLvUpCheck: true);
}
public void SetClassExp(int num, bool isLvUpCheck)
{
_classExp = _beforeClassExp + num;
_classLv = GetClassLv(_classExp);
_nowClassExp = GetClassExpNow(_classExp);
_nextClassExp = Mathf.Max(0, _classExpList[_classLv - 1] - _nowClassExp);
ClassLvLabel.text = _classLv.ToString();
ClassExpNextLabel.text = _nextClassExp.ToString();
if (AddClassExp >= 0)
{
ClassExpAddLabel.text = ((AddClassExp - num >= 0) ? "+" : "") + (AddClassExp - num);
}
else
{
ClassExpAddLabel.text = (AddClassExp - num).ToString();
}
ClassGaugeBar.Value = (((float)_classExpList[_classLv - 1] >= 0f) ? Mathf.Min((float)_nowClassExp / (float)_classExpList[_classLv - 1], 1f) : 1f);
if (isLvUpCheck && _classLv > _classLvPrev)
{
GameMgr.GetIns().GetSoundMgr().PlaySe(Se.TYPE.SYS_RESULT_LEVELUP);
GameMgr.GetIns().GetEffectMgr().Start(EffectMgr.EffectType.CMN_RESULT_LVUP_1, ClassLvImg.transform.position);
GameMgr.GetIns().GetEffectMgr().Start(EffectMgr.EffectType.CMN_RESULT_GAUGE_1, ClassGaugeBar.GetTransformGaugeStartEdge().position);
_classLvPrev = _classLv;
}
}
private void CompleteClassExp()
{
ClassGaugeEfc.Stop();
TweenAlpha.Begin(ClassExpAddLabel.gameObject, 0.5f, 0f).delay = 0.5f;
SetClassLvAndExp();
}
public void SetClassLvAndExp()
{
DataMgr dataMgr = GameMgr.GetIns().GetDataMgr();
switch (dataMgr.m_BattleType)
{
case DataMgr.BattleType.FreeBattle:
_classLv = Data.FreeMatchFinish.data.class_chara_level;
_classExp = Data.FreeMatchFinish.data.class_chara_experience;
break;
case DataMgr.BattleType.RankBattle:
_classLv = Data.RankMatchFinish.data.class_chara_level;
_classExp = Data.RankMatchFinish.data.class_chara_experience;
break;
case DataMgr.BattleType.Story:
_classLv = Data.StoryFinish.data.class_chara_level;
_classExp = Data.StoryFinish.data.class_chara_experience;
break;
case DataMgr.BattleType.Practice:
_classLv = Data.PracticeFinish.data.class_chara_level;
_classExp = Data.PracticeFinish.data.class_chara_experience;
break;
case DataMgr.BattleType.RoomBattle:
_classLv = Data.FreeMatchFinish.data.class_chara_level;
_classExp = Data.FreeMatchFinish.data.class_chara_experience;
break;
case DataMgr.BattleType.Quest:
case DataMgr.BattleType.BossRushQuest:
case DataMgr.BattleType.SecretBossQuest:
_classLv = Data.QuestFinish.data.class_chara_level;
_classExp = Data.QuestFinish.data.class_chara_experience;
break;
}
ClassCharaPrm classPrm = dataMgr.GetClassPrm(_selectedClassId);
classPrm.SetClassCharaLv(_classLv);
classPrm.SetClassCharaExp(_classExp);
}
private int GetClassLv(int num)
{
int num2 = 1;
int num3 = 0;
for (int i = 0; i < _classExpList.Count; i++)
{
num3 += _classExpList[i];
if (num < num3)
{
break;
}
num2++;
}
return Mathf.Min(num2, _classLvMax);
}
private int GetClassExpNow(int num)
{
int num2 = num;
for (int i = 0; i < _classExpList.Count && num2 >= _classExpList[i]; i++)
{
num2 -= _classExpList[i];
}
return num2;
}
private IEnumerator ShowAchieveLog(List<NotificatonAnimation.Param> paramList)
{
if (_notificationAnimation != null)
{
UnityEngine.Object.Destroy(_notificationAnimation.gameObject);
_notificationAnimation = null;
}
_notificationAnimation = NGUITools.AddChild(_notificationAnimationParent, _notificationAnimationPrefab.gameObject).GetComponent<NotificatonAnimation>();
yield return StartCoroutine(_notificationAnimation.Exec(paramList));
}
public void SetSpecialResultTypeText(string text)
{
_resultTypeMsg = text;
ResultMsgWindowFlag = true;
}
public void SetBattleFinishConsistency()
{
IsDraw = true;
ResultMsgReportBtnFlag = true;
}
public IEnumerator ShowSpecialResultInfo()
{
ResultInfo.labels[0].text = _resultTypeMsg;
ResultInfo.labels[0].alpha = 0f;
ResultInfo.sprites[0].alpha = 0f;
ResultInfo.labels[0].transform.localPosition = Vector3.right * 200f;
ResultInfo.sprites[0].transform.localScale = new Vector3(0.01f, 0.1f, 1f);
TweenAlpha.Begin(ResultInfo.sprites[0].gameObject, 0.2f, 1f);
iTween.ScaleTo(ResultInfo.sprites[0].gameObject, iTween.Hash("scale", new Vector3(1f, 0.1f, 1f), "time", 0.2f, "islocal", true, "easetype", iTween.EaseType.easeInQuad));
iTween.ScaleTo(ResultInfo.sprites[0].gameObject, iTween.Hash("scale", Vector3.one, "time", 0.5f, "delay", 0.2f, "islocal", true, "easetype", iTween.EaseType.easeOutBack));
yield return new WaitForSeconds(0.5f);
TweenAlpha.Begin(ResultInfo.labels[0].gameObject, 0.2f, 1f);
iTween.MoveTo(ResultInfo.labels[0].gameObject, iTween.Hash("position", Vector3.zero, "time", 0.3f, "islocal", true, "easetype", iTween.EaseType.easeOutExpo));
yield return new WaitForSeconds(2f);
TweenAlpha.Begin(ResultInfo.sprites[0].gameObject, 0.1f, 0f).delay = 0.2f;
TweenAlpha.Begin(ResultInfo.labels[0].gameObject, 0.1f, 0f).delay = 0.2f;
iTween.ScaleTo(ResultInfo.sprites[0].gameObject, iTween.Hash("scale", new Vector3(1f, 0.1f, 1f), "time", 0.3f, "islocal", true, "easetype", iTween.EaseType.easeInExpo));
iTween.MoveTo(ResultInfo.labels[0].gameObject, iTween.Hash("position", Vector3.left * 200f, "time", 0.3f, "islocal", true, "easetype", iTween.EaseType.easeInExpo));
}
public void Recovery()
{
ClassInfo.SetActive(value: false);
ClassInfo.SetActive(value: true);
}
public IEnumerator RunMatch()
{
GameMgr.GetIns().GetSoundMgr().PlaySe(Se.TYPE.SYS_RANK_UP_MACH_BEGIN);
TweenAlpha.Begin(TitleMatch.gameObject, 0.2f, 1f);
TitleMatch.transform.localScale = Vector3.one * 10f;
iTween.ScaleTo(TitleMatch.gameObject, iTween.Hash("scale", Vector3.one * 0.8f, "time", 0.2f, "easetype", iTween.EaseType.easeInQuad));
yield return new WaitForSeconds(0.2f);
GameMgr.GetIns().GetEffectMgr().Start(EffectMgr.EffectType.CMN_RESULT_MATCH_1, Vector3.back);
TitleMatch.transform.localScale = Vector3.one;
iTween.ScaleTo(TitleMatch.gameObject, iTween.Hash("scale", Vector3.one * 1.1f, "time", 3f, "easetype", iTween.EaseType.linear));
yield return new WaitForSeconds(2.5f);
TweenAlpha.Begin(TitleMatch.gameObject, 0.3f, 0f);
iTween.ScaleTo(TitleMatch.gameObject, iTween.Hash("scale", Vector3.one * 10f, "time", 0.3f, "easetype", iTween.EaseType.easeInExpo));
yield return new WaitForSeconds(0.3f);
}
private void Update()
{
if (_missionDialog != null)
{
MenuDialogUpdate(_missionDialog);
}
}
private void MenuDialogUpdate(DialogBase dialog)
{
InputMgr inputMgr = GameMgr.GetIns().GetInputMgr();
if (inputMgr.IsKeyboardCancel())
{
_missionDialog.CloseWithoutSelect();
_menuDialogSelect = MenuDialogSelect.None;
}
bool flag = false;
if (inputMgr.IsKeyboardLeftArrow() || inputMgr.IsKeyboardRightArrow())
{
_menuDialogSelect = ((_menuDialogSelect == MenuDialogSelect.Button1) ? MenuDialogSelect.ButtonClose : MenuDialogSelect.Button1);
flag = true;
}
if (flag)
{
dialog.KeyboardSelectButton(DialogBase.KeyboardDialogSelect.Button1, _menuDialogSelect == MenuDialogSelect.Button1);
dialog.KeyboardSelectButton(DialogBase.KeyboardDialogSelect.CloseButton, _menuDialogSelect == MenuDialogSelect.ButtonClose);
}
if (inputMgr.IsKeyboardEnter() && _menuDialogSelect != MenuDialogSelect.None)
{
_missionDialog.CloseWithoutSelect();
_menuDialogSelect = MenuDialogSelect.None;
}
}
public void SetBackGroundNeedBattlePoint(bool needBattlePoint)
{
_backGroundWithRank.gameObject.SetActive(needBattlePoint);
_backGroundNotNeedRank.gameObject.SetActive(!needBattlePoint);
}
}