| 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)"); | 
|         } | 
|   | 
|         if (fightObj.NPCID > 0) | 
|         { | 
|             NPCConfig npcConfig = NPCConfig.Get((int)fightObj.NPCID); | 
|             if (null != npcConfig) | 
|             { | 
|                 modelScale = npcConfig.ModelScale; | 
|             } | 
|         } | 
|   | 
|         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; | 
|     }     | 
| } |