yyl
3 天以前 cec8b67d82c2c2c1662d55c818c4a46bcc0487db
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
using UnityEngine;
 
public partial class TeamHero
{
    public int heroId;
 
    public HeroCountry Country;
    public int SkinID;
    public HeroSkinConfig skinConfig;
    public string guid;
 
    public float modelScale = 1f;
 
 
    public TeamBase teamBase
    {
        get; private set;
    }
    public int positionNum; //注意服务端的1号位是1,客户端在使用时是0,通信和策划沟通用1
 
//  战场数据
    public int ObjID = 0;// 战斗单位唯一ID
 
    public int NPCID = 0;// 战斗NPCID,不同的实例ID对应的NPCID可能一样
 
 
    //  服务器来的构造
    public TeamHero(HB424_tagSCTurnFightInit.tagSCTurnFightObj fightObj, TeamBase _teamBase)
    {
        //  判断一下是npc还是玩家
        heroId = (int)fightObj.HeroID;
 
        if (fightObj.NPCID > 0)
        {
            //走NPC的逻辑
            NPCConfig npcConfig = NPCConfig.Get((int)fightObj.NPCID);
            Country = (HeroCountry)npcConfig.Country;
            SkinID = npcConfig.SkinID;
            BattleDebug.LogError("npc skin id is " + SkinID);
            modelScale = npcConfig.ModelScale;
        }
        else
        {
            //走玩家逻辑
            var heroConfig = HeroConfig.Get(heroId);
            Country = (HeroCountry)heroConfig.Country;
            SkinID = (int)fightObj.SkinID;
            BattleDebug.LogError("normal hero skin id is " + SkinID);
            modelScale = 1f;
        }
 
 
        skinConfig = HeroSkinConfig.Get(SkinID);
        teamBase = _teamBase;
 
        ObjID = (int)fightObj.ObjID;
        NPCID = (int)fightObj.NPCID;
 
        // HPEx * 1亿 + HP
 
        curHp = (long)fightObj.HPEx * (long)Constants.ExpPointValue + (long)fightObj.HP;
        maxHp = (long)fightObj.MaxHPEx * (long)Constants.ExpPointValue + (long)fightObj.MaxHP;
        rage = (int)fightObj.AngreXP;
 
        positionNum = fightObj.PosNum - 1;
 
        //  【重要】战斗构成里没有卡牌的guid
        guid = string.Empty;
 
        Update();
    }
 
    private static int DecreasingObjID = 0;
 
    //  布阵时的构造
    public TeamHero(HeroInfo heroInfo, int posNum, TeamBase _teamBase)
    {
        heroId = heroInfo.itemHero.config.ID;
        SkinID = heroInfo.SkinID;
        skinConfig = heroInfo.skinConfig;
        Country = heroInfo.heroCountry;
 
        teamBase = _teamBase;
 
        ObjID = --DecreasingObjID;
        NPCID = 0;
 
        curHp = heroInfo.hp;
        maxHp = heroInfo.hp;
        rage = 0;
 
        positionNum = posNum;
 
        //  【重要】布阵里的要guid
        guid = heroInfo.itemHero.guid;
 
        Update();
    }
 
    public void OnSwapPosition(TeamHero teamHero)
    {
        teamBase.SwapPosition(positionNum, teamHero.positionNum);
 
        Update();
    }
 
    public void Update()
    {
 
    }
 
 
    //  最终属性 当前属性应该是要在这一层的
 
    public int GetPower()
    {
        // 计算战斗力YYL TODO
        return 0;
    }    
}