少年修仙传客户端代码仓库
hch
3 天以前 600733c8f592cb9e65f2b7a3e110ac1d686e6bfe
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
//--------------------------------------------------------
//    [Author]:           第二世界
//    [  Date ]:           Monday, January 28, 2019
//--------------------------------------------------------
 
using System;
using UnityEngine;
using UnityEngine.UI;
using vnxbqy.UI;
using System.Collections.Generic;
using System.Linq;
 
public class CrossServerBattleFieldRebornWin : ILWindow
{
    ButtonEx safeReborn;
    Text safeCD;
    Button itemReborn;
    Text itemCnt;
    RichText rebornInfo;
 
    PlayerDeadModel deadModel { get { return ModelCenter.Instance.GetModelEx<PlayerDeadModel>(); } }
    PackModel packModel { get { return ModelCenter.Instance.GetModel<PackModel>(); } }
    #region Built-in
    protected override void BindController()
    {
        safeReborn = proxy.GetWidgtEx<ButtonEx>("Btn_SafeReborn"); 
        safeCD = proxy.GetWidgtEx<Text>("SafeReborn");
        itemReborn = proxy.GetWidgtEx<Button>("Btn_RebornItem");
        itemCnt = proxy.GetWidgtEx<Text>("num");
        rebornInfo = proxy.GetWidgtEx<RichText>("Text");
    }
 
    float cdTime;
    protected override void AddListeners()
    {
        safeReborn.SetListener(()=> {
            deadModel.SendRebornQuest(0);
        });
 
        itemReborn.SetListener(() => {
            if (ILCrossServerModel.Instance.playerInfo.itemRebornCount >= ILCrossServerModel.Instance.CrossBattlefieldRebornCount)
            {
                SysNotifyMgr.Instance.ShowTip("CrossBattlefieldItemRebornLimit");
                return;
            }
 
            if (packModel.GetItemCountByID(PackType.Item, ILCrossServerModel.Instance.CrossBattlefieldRebornItemID) == 0)
            {
                SysNotifyMgr.Instance.ShowTip("RealmLevelUpError_3");
                return;
            }
            deadModel.SendRebornQuest(3);
        });
    }
 
    protected override void OnPreOpen()
    {
        deadModel.CloseRebornWinEvent += PlayerRebornSuccess;
        GlobalTimeEvent.Instance.secondEvent += OnSecondEvent;
 
        cdTime = Time.time;
        OnSecondEvent();
        itemCnt.text = packModel.GetItemCountByID(PackType.Item, ILCrossServerModel.Instance.CrossBattlefieldRebornItemID).ToString();
 
        var count = ILCrossServerModel.Instance.CrossBattlefieldRebornCount - ILCrossServerModel.Instance.playerInfo.itemRebornCount;
        rebornInfo.text = Language.Get("CrossBattleField74", ILCrossServerModel.Instance.CrossBattlefieldRebornItemID,
            UIHelper.AppendColor(count == 0 ? TextColType.Red:TextColType.Green, count.ToString()));
    }
 
    protected override void OnPreClose()
    {
        deadModel.CloseRebornWinEvent -= PlayerRebornSuccess;
        GlobalTimeEvent.Instance.secondEvent -= OnSecondEvent;
    }
 
    void OnSecondEvent()
    {
        //前5秒不能点安全复活
        int passTime = (int)(Time.time - cdTime);
        int autoSeconds = GeneralDefine.dungeonRebornClientTimes[GeneralDefine.CrossBattleFieldMapID];
        if (passTime <= 5)
        {
            safeReborn.SetColorful(null, false);
            safeReborn.interactable = false;
            safeCD.text = string.Format("{0}({1})", Language.Get("L2007"), 5 - passTime);
        }
        else
        {
            safeReborn.SetColorful(null, true);
            safeReborn.interactable = true;
            safeCD.text = string.Format("{0}({1})", Language.Get("L2007"), autoSeconds - passTime);
        }
        if (autoSeconds <= passTime)
        {
            deadModel.SendRebornQuest(0);
            GlobalTimeEvent.Instance.secondEvent -= OnSecondEvent;
            return;
        }
    }
    #endregion
 
    void PlayerRebornSuccess()
    {
        WindowCenter.Instance.CloseIL<CrossServerBattleFieldRebornWin>();
    }
}