/// <summary> /// 设置数据并刷新UI /// </summary> /// <param name="info"></param> public void SetData(SoldierInfo info, bool isFirstLoad = false) { ClearUI(); m_soldierInfo = info; m_ID = info.ID; m_starInfo = SoldierM.GetSoldierStarData(info.SoldierTypeID, info.StarLevel); if (m_soldierInfo == null) { NGUIUtil.DebugLog("SoldierInfoWnd.cs m_soldierInfo==null !"); return; } EquipID[0] = info.Equipment0; EquipID[1] = info.Equipment1; EquipID[2] = info.Equipment2; EquipID[3] = info.Equipment3; EquipID[4] = info.Equipment4; EquipID[5] = info.Equipment5; SetUI(isFirstLoad); DoCanJinSheng(); DoCanShengXing(); MyHead.Toggle2.startsActive = true; DoCanJinSheng(); DoCanShengXing(); }
/// <summary> /// 填充基础建筑信息 /// </summary> private static void CalcSoldierInfo(s_soldier_typeInfo I, ref SoldierInfo Info) { if (I == null || Info == null) { return; } //获取三围 //初始值 s_soldierstar_typeInfo StarInfo = GetSoldierStarData(Info.SoldierTypeID, Info.StarLevel); if (StarInfo != null) { Info.m_strength_grow = StarInfo.strength_growth; Info.m_agility_grow = StarInfo.agility_growth; Info.m_intelligence_grow = StarInfo.intelligence_growth; Info.m_concussion += StarInfo.concussion; } //当前-初始. int oriStrength = 0; int oriAgility = 0; int oriIntell = 0; int oriStar = GetSoldierOriginalStar(Info.SoldierTypeID); s_soldierstar_typeInfo OriInfo = GetSoldierStarData(Info.SoldierTypeID, oriStar); if (OriInfo != null && StarInfo != null) { oriStrength = OriInfo.strength_growth; oriAgility = OriInfo.agility_growth; oriIntell = OriInfo.intelligence_growth; } //被动技能附加属性 Info.m_Skill.SetAddrData(ref Info.m_AddAttr); Info.m_strength = ScriptM.Formula <int>("CALC_STRENGTH", Info.m_strength_grow, oriStrength, Info.Level, I.strength); Info.m_agility = ScriptM.Formula <int>("CALC_AGILITY", Info.m_agility_grow, oriAgility, Info.Level, I.agility); Info.m_intelligence = ScriptM.Formula <int>("CALC_INTELLIGENCE", Info.m_intelligence_grow, oriIntell, Info.Level, I.intelligence); //增加进阶属性,目前只有冲击力 s_soldierqualityInfo qualityinfo = GetqualityInfoData(Info.SoldierTypeID, Info.Quality); if (qualityinfo != null) { Info.m_concussion += qualityinfo.concussion; } //爆击及闪避 s_soldier_experienceInfo ExpInfo = SoldierM.GetSoldierExpData(Info.Level); if (ExpInfo != null) { Info.m_critratio = ExpInfo.critratio; Info.m_dodgeratio = ExpInfo.dodgeratio; } //阶数,添加装备附加属性 AddEquipAttr(ref Info); CalcSoldierAttr(ref Info); }
/// <summary> /// 获取升星所需资源 /// </summary> /// <param name="SoldierType">炮弹兵类型</param> /// <param name="Star">星级</param> /// <param name="NeedMaterial">需要材料,key item id,value 数量</param> /// <param name="Star">建筑星级</param> /// <returns>建筑数据,null 获取失败</returns> public static void GetUpStarNeed(int SoldierType, int Star, ref int fragmentNum, ref int Coin) { Coin = 0; fragmentNum = 0; s_soldierstar_typeInfo Info = GetSoldierStarData(SoldierType, Star); if (Info != null) { Coin = Info.price; fragmentNum = Info.item_num; } }