summaryrefslogtreecommitdiff
path: root/Client/Assets/Scripts/XMainClient/PTC/Process/Process_PtcG2C_BattleResultNtf.cs
blob: b509f3872373e7b7716713831b0edc77baa74001 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
using System;
using XUtliPoolLib;

namespace XMainClient
{
	internal class Process_PtcG2C_BattleResultNtf
	{
		public static void Process(PtcG2C_BattleResultNtf roPtc)
		{
			bool flag = roPtc.Data == null || roPtc.Data.stageInfo == null;
			if (!flag)
			{
				XLevelRewardDocument specificDocument = XDocuments.GetSpecificDocument<XLevelRewardDocument>(XLevelRewardDocument.uuID);
				bool flag2 = !specificDocument.RequestServer && !XSingleton<XGame>.singleton.SyncMode;
				if (!flag2)
				{
					bool haveBattleResultData = XSingleton<XLevelFinishMgr>.singleton.HaveBattleResultData;
					if (!haveBattleResultData)
					{
						bool flag3 = specificDocument.CurrentScene != roPtc.Data.stageInfo.stageID;
						if (!flag3)
						{
							XSingleton<XLevelFinishMgr>.singleton.HaveBattleResultData = true;
							specificDocument.RequestServer = false;
							XSingleton<XCutScene>.singleton.Stop(true);
							bool isStageFailed = roPtc.Data.stageInfo.isStageFailed;
							if (isStageFailed)
							{
								XSingleton<XLevelFinishMgr>.singleton.OnLevelFailed();
							}
							else
							{
								bool flag4 = !XSingleton<XScene>.singleton.bSpectator;
								if (flag4)
								{
									specificDocument.SetBattleResultData(roPtc.Data);
								}
								XSingleton<XLevelFinishMgr>.singleton.IsCurrentLevelWin = true;
								XSingleton<XLevelFinishMgr>.singleton.StartLevelFinish();
							}
							XSingleton<XOperationRecord>.singleton.DoScriptRecord(roPtc.Data.stageInfo.stageID + "after");
							XStaticSecurityStatistics.OnEnd();
						}
					}
				}
			}
		}
	}
}