少年修仙传客户端代码仓库
xingchen Qiu
2019-04-10 b45f84d1a84cb768d0b136fe37ad18364d74af1f
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
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
namespace Snxxz.UI
{
    [XLua.LuaCallCSharp]
    [XLua.Hotfix]
    public class RidingPetBossModel : Model, IBeforePlayerDataInitialize, IPlayerLoginOk
    {
        public int[] BossIDArray;
        public int[] Boss1RewardIDArray;
        public int[] Boss2RewardIDArray;
        public bool isActivityOver { get; private set; }
        public const int RIDINGPETBOSS_MAP = 31200;
        Dictionary<int, RidingPetBossLine> RidingPetBossLineDict = new Dictionary<int, RidingPetBossLine>();
        private string m_MountsBossID;
        private string m_Boss1RewardID;
        private string m_Boss2RewardID;
        public event Action GetRidingPetBossLineDictAction;
 
 
 
        public override void Init()
        {
            m_MountsBossID = FuncConfigConfig.Get("QCBOSSID").Numerical1;
            m_Boss1RewardID = FuncConfigConfig.Get("QCBOSSID").Numerical2;
            m_Boss2RewardID = FuncConfigConfig.Get("QCBOSSID").Numerical3;
            BossIDArray = ConfigParse.GetMultipleStr<int>(m_MountsBossID);
            Boss1RewardIDArray = ConfigParse.GetMultipleStr<int>(m_Boss1RewardID);
            Boss2RewardIDArray = ConfigParse.GetMultipleStr<int>(m_Boss2RewardID);
        }
 
        public void OnBeforePlayerDataInitialize()
        {
        }
 
        public void OnPlayerLoginOk()
        {
            
        }
 
        public override void UnInit()
        {
            
        }
 
        public void ReceivePackage(HAC07_tagGCHorsePetBossInfo package)
        {
            if (package.IsEnd == 1)
            {
                isActivityOver = true;
            }
        }
 
        public void ReceivePackage(HA007_tagGCFBLinePlayerCnt package)
        {
            if (package.MapID != RIDINGPETBOSS_MAP)
            {
                return;
            }
 
            RidingPetBossLineDict.Clear();
 
            for (int i = 0; i < package.Count; i++)
            {
                var mapState = package.FBLineInfoList[i];
                RidingPetBossLineDict[mapState.FBLineID] = new RidingPetBossLine()
                {
                    playerCnt = mapState.PlayerCnt,
                    remainedHP = int.Parse(mapState.ExtraStr)
                };
            }
            if (GetRidingPetBossLineDictAction != null)
            {
                GetRidingPetBossLineDictAction();
            }
        }
 
        public string GetBossName(int index)
        {
            return NPCConfig.Get(BossIDArray[index]).charName;
        }
 
        public int GetBossRemianedHP(int index)
        {
            if (RidingPetBossLineDict.Count == 0 || !RidingPetBossLineDict.ContainsKey(index))
            {
                return 100;
            }
            else
            {
                return RidingPetBossLineDict[index].remainedHP;
            }
        }
    }
 
    public struct RidingPetBossLine
    {
        public int playerCnt;
        public int remainedHP;
    }
 
}