| | |
| | | |
| | | using UnityEngine; |
| | | |
| | | public partial class TeamHero |
| | | { |
| | | public HeroInfo heroInfo; |
| | | public TeamBase teamBase; |
| | | public int heroIndex; |
| | | 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() |
| | | { |
| | | return heroInfo.CalculatePower(); |
| | | } |
| | | public int GetPower() |
| | | { |
| | | // 计算战斗力YYL TODO |
| | | return 0; |
| | | } |
| | | } |