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 int level = 0; 
 | 
  
 | 
    public string name; 
 | 
  
 | 
    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可能一样 (目前只用来区别玩家跟NPC) 
 | 
  
 | 
  
 | 
    //  服务器来的构造 
 | 
    public TeamHero(HB424_tagSCTurnFightInit.tagSCTurnFightObj fightObj, TeamBase _teamBase) 
 | 
    { 
 | 
        //  判断一下是npc还是玩家 
 | 
        heroId = (int)fightObj.HeroID; 
 | 
  
 | 
        // B4 24 回合战斗初始化 #tagSCTurnFightInit  
 | 
        // 封包中的 HeroID、SkinID 字段不再是玩家阵容独有,NPC阵容也可能有值,一般是关联武将的NPC有值 
 | 
        // 如果 HeroID、SkinID 不为空,则可认为是关联武将的NPC,外观相关默认通过HeroID读取武将相关,如名称 
 | 
        // 皮肤 SkinID 不为空时,则模型默认使用该皮肤 
 | 
        // 如果 HeroID、SkinID 为空, NPCID不为空,则走原NPC默认规则 
 | 
  
 | 
        //  补充 skinid跟heroid要么同时没有 要么同时有 如果这三个id都没有的话 那就是配置严重错误 无法弥补 
 | 
  
 | 
        if (fightObj.SkinID > 0 && fightObj.HeroID > 0) 
 | 
        { 
 | 
            // 走玩家逻辑 
 | 
            var heroConfig = HeroConfig.Get(heroId); 
 | 
            if (null == heroConfig) 
 | 
            { 
 | 
                Debug.LogError("hero config is null, heroId : " + heroId); 
 | 
                return; 
 | 
            } 
 | 
            Country = (HeroCountry)heroConfig.Country; 
 | 
            SkinID = (int)fightObj.SkinID; 
 | 
            modelScale = 1f; 
 | 
            name = heroConfig.Name; 
 | 
  
 | 
        } 
 | 
        else 
 | 
        { 
 | 
            throw new System.Exception("hero id and skin id are both invalid, npc id is invalid too (all <= 0)"); 
 | 
        } 
 | 
  
 | 
        level = (int)fightObj.LV; 
 | 
  
 | 
        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; 
 | 
    }     
 | 
} 
 |