public static SoldierInfo GetSoldierInfoFromConfig(int configID, int level, int count) { SoldierInfo s = new SoldierInfo(); s.SoldierConfig = DBConfigMgr.Instance.MapSoldier[configID]; s.Level = level; s.Rank = 0; s.SoldierCount = count; return s; }
public static SoldierInfo GetSoldierInfoFromPlayerSlot(int slotIndex) { SoldierInfo s = new SoldierInfo(); SlotSoldier s1 = (SlotSoldier)PlayerDataMgr.Instance.GetPlayerBag(SlotType.SlotType_Soldier)[slotIndex]; s.SoldierConfig = DBConfigMgr.Instance.MapSoldier[s1.ConfigID]; s.Level = s1.Lv; s.Rank = s1.Rank; s.SoldierCount = s1.Count; return s; }
// 计算武将战斗力 public static int ComputeBattlePowerPoint(GeneralInfo gInfo, SoldierInfo sInfo) { double point = 0; //point = gInfo.HP * 0.038 + gInfo.ATK * 0.06 + gInfo.DEF * 0.17 + gInfo.CriticalRate * 1.9 + gInfo.DodgeRate * 1.3 + gInfo.HitRate * 1.4; point = gInfo.HP * 0.25 + gInfo.ATK * 0.25 + gInfo.DEF * 0.25; // 加上部队 point += 0.1 * (sInfo.HP * 0.25 + sInfo.ATK * 0.25 + sInfo.DEF * 0.25) * sInfo.SoldierCount; // 加上装备 return (int)point; }
/// <summary> /// 战斗计算公式 /// </summary> /// <param name="gInfo"></param> /// <param name="sInfo"></param> /// <returns></returns> public static int BattlePowerPoint(GeneralInfo gInfo, SoldierInfo sInfo) { double point = 0; // 武将自身的 point += CONST_STAR_GAP_PARAMS[gInfo.GeneralConfig.Star] * CONST_CLASS_GAP_PARAMS[gInfo.Rank] * (gInfo.Level + 5) * CONST_BASE_GENERAL_VALUE; // 加上部队 point += CONST_STAR_GAP_PARAMS[sInfo.SoldierConfig.Star] * (sInfo.Level + 5) * sInfo.SoldierCount * CONST_BASE_SOLDIER_VALUE; // 加上技能1 point += gInfo.Skill1 * CONST_SKILL_STAR_GAP_PARAMS[gInfo.GeneralConfig.Star] * CONST_BASE_SKILL_VALUE; // 加上技能2 if (gInfo.Skill2 > 0) point += gInfo.Skill2 * CONST_SKILL_STAR_GAP_PARAMS[gInfo.GeneralConfig.Star] * CONST_BASE_SKILL_VALUE; // 加上装备 return (int)point; }
/// <summary> /// 获取一个指定星级的标准士兵 /// </summary> /// <param name="star"></param> /// <param name="level"></param> /// <returns></returns> public static SoldierInfo GetBasicStarSoldierInfo(int star, int level) { SoldierInfo s = new SoldierInfo(); int[] soldierTemplate = {0,1001,1,8,14,23}; s.SoldierConfig = DBConfigMgr.Instance.MapSoldier[soldierTemplate[star]]; s.Level = level; s.SoldierCount = Math.Max(20, 10 + level / 8); return s; }