lcy
3 天以前 29fd27541c91dc1bf6147c1de5cf5680dfc6cb38
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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
 
 
using System.Collections.Generic;
using System.Linq;
using LitJson;
 
public partial class BattleSettlementManager : GameSystemManager<BattleSettlementManager>
{
    //结算后需清除 <battleName,JsonData>
    Dictionary<string, JsonData> battleSettlementDic = new Dictionary<string, JsonData>();
 
    // public string notifyGuid = string.Empty;
 
    public override void Init()
    {
        DTC0102_tagCDBPlayer.beforePlayerDataInitializeEventOnRelogin += OnBeforePlayerDataInitialize;
        EventBroadcast.Instance.AddListener<string, JsonData>(EventName.BATTLE_END, OnSettlement);
 
    }
 
    public override void Release()
    {
        DTC0102_tagCDBPlayer.beforePlayerDataInitializeEventOnRelogin -= OnBeforePlayerDataInitialize;
        EventBroadcast.Instance.RemoveListener<string, JsonData>(EventName.BATTLE_END, OnSettlement);
    }
 
 
    public void OnBeforePlayerDataInitialize()
    {
        battleSettlementDic.Clear();
    }
 
    public void AddPop(string battleName, int result)
    {
        bool isWin = result == 1;
        switch (battleName)
        {
            case "ArenaBattleField":
                PopupWindowsProcessor.Instance.Add(isWin ? "ArenaBattleVictoryWin" : "ArenaBattleFailWin", false);
                break;
            case "BoneBattleField":
                PopupWindowsProcessor.Instance.Add(isWin ? "BoneBattleVictoryWin" : "BoneBattleFailWin", false);
                break;
            default:
                PopupWindowsProcessor.Instance.Add(isWin ? "BattleVictoryWin" : "BattleFailWin", false);
                break;
        }
    }
 
    public void ShowResultWin(string battleName, int result)
    {
        bool isWin = result == 1;
        switch (battleName)
        {
            case "ArenaBattleField":
                if (isWin)
                {
                    UIManager.Instance.OpenWindow<ArenaBattleVictoryWin>();
                }
                else
                {
                    UIManager.Instance.OpenWindow<ArenaBattleFailWin>();
                }
                break;
            case "BoneBattleField":
                if (isWin)
                {
                    UIManager.Instance.OpenWindow<BoneBattleVictoryWin>();
                }
                else
                {
                    UIManager.Instance.OpenWindow<BoneBattleFailWin>();
                }
                break;
            default:
                if (isWin)
                {
                    UIManager.Instance.OpenWindow<BattleVictoryWin>();
                }
                else
                {
                    UIManager.Instance.OpenWindow<BattleFailWin>();
                }
                break;
        }
    }
 
    //"Msg":{"itemInfo":[{"ItemID":5,"Count":2},{"ItemID":3,"Count":40}],"winFaction":1,"statInfo":{"1":{"1":{"1":{"NPCID":0,"DefHurt":727,"CureHP":0,"AtkHurt":1891,"ObjID":1,"HeroID":530004},"3":{"NPCID":0,"DefHurt":483,"CureHP":1511,"AtkHurt":782,"ObjID":6,"HeroID":520001},"2":{"NPCID":0,"DefHurt":953,"CureHP":0,"AtkHurt":1712,"ObjID":5,"HeroID":510003}}},"2":{"1":{"1":{"NPCID":10101091,"DefHurt":638,"CureHP":0,"AtkHurt":140,"ObjID":2,"HeroID":610001},"3":{"NPCID":10101092,"DefHurt":625,"CureHP":0,"AtkHurt":126,"ObjID":3,"HeroID":610001},"5":{"NPCID":10101093,"DefHurt":3122,"CureHP":0,"AtkHurt":1897,"ObjID":4,"HeroID":510003}}}}}
    public void OnSettlement(string _guid, JsonData _data)
    {
        if (string.Empty == _guid)
            return;
        var battle = BattleManager.Instance.GetBattleField(_guid);
        if (battle == null)
            return;
        var battleName = battle.ToString();
        battleSettlementDic[battleName] = _data;
 
        string activeBattleName = BattleManager.Instance.GetActiveBattleName();
 
        if (_data.ContainsKey("winFaction"))
        {
            var result = (int)_data["winFaction"];
            if (battleName == activeBattleName)
            {
                //自己场景结算
                ShowResultWin(battleName, result);
            }
            else
            {
                AddPop(battleName, result);
            }
 
        }
    }
 
    public void WinShowOver(string battleName)
    {
        battleSettlementDic.Remove(battleName);
 
        var battle = BattleManager.Instance.GetActiveBattleFieldByName(battleName);
        if (battle != null)
            battle.WhaleFall();
    }
 
    public JsonData GetBattleSettlement(string battleName)
    {
        if (!battleSettlementDic.ContainsKey(battleName))
        {
            return null;
        }
        return battleSettlementDic[battleName];
    }
}