public void Add() { Length += 1; GameObject BasicInformationObj = Instantiate(BaseStarGrow.gameObject, BaseStarGrow.parent.Find("Content")); BasicInformationObj.name = "obj" + Length; BasicInformationObj.GetComponent <StarGrowAssist>().ID = Length; C_StarGrow strarGrow = new C_StarGrow(); StarGrowData[Length] = strarGrow; }
public void StartTest() { if (_Test_Level.text == "0") { WindowControl.SetConsole("测试失败,请输入有效数据"); return; } C_HeroData Text_Hd = new C_HeroData(); int Level = int.Parse(_Test_Level.text); int StarLevel = int.Parse(_Test_StarLevel.text); int ExponentBit = int.Parse(_Test_ExponentBit.text); int ATKBreakLevel = int.Parse(_Test_ATKBreakLevel.text); int VitalityBreakLevel = int.Parse(_Test_VitalityBreakLevel.text); //属性=(基础属性+基础成长值*成长系数*等级)*突破成长系数+星级额外属性加成+天赋属性加成 //优先处理动态属性 Text_Hd.Level = Level; Text_Hd.StarID = StarLevel; Text_Hd.ExponentBit = ExponentBit; Text_Hd.GrowCoefficient = -1; //星级额外属性初始化 C_StarGrow sg = new C_StarGrow(); //增长系数 for (int i = 0; i < DataManage.StarGrowJsonData.Count; i++) { if (DataManage.StarGrowJsonData[i]["StarType"].ToInt32() == Text_Hd.StarID) { Text_Hd.GrowCoefficient = DataManage.StarGrowJsonData[i]["GrowCoefficient"].ToInt32(); sg.StarType = DataManage.StarGrowJsonData[i]["StarType"].ToInt32(); sg.ATKGrow = DataManage.StarGrowJsonData[i]["ATKGrow"].ToInt32(); sg.VitalityGrow = DataManage.StarGrowJsonData[i]["VitalityGrow"].ToInt32(); sg.ATKSpeedGrow = DataManage.StarGrowJsonData[i]["ATKSpeedGrow"].ToInt32(); sg.HitRateGrow = DataManage.StarGrowJsonData[i]["HitRateGrow"].ToInt32(); sg.DodgeGrow = DataManage.StarGrowJsonData[i]["DodgeGrow"].ToInt32(); sg.CritGrow = DataManage.StarGrowJsonData[i]["CritGrow"].ToInt32(); sg.TenacityGrow = DataManage.StarGrowJsonData[i]["TenacityGrow"].ToInt32(); sg.GrowUp = DataManage.StarGrowJsonData[i]["GrowCoefficient"].ToInt32(); sg.AdditionalFighting = DataManage.StarGrowJsonData[i]["AdditionalFighting"].ToInt32(); } } if (Text_Hd.GrowCoefficient == -1) { WindowControl.SetConsole("测试失败,所填信息的星级,星级表里没有查找到"); return; } //突破等级处理 const double coefficient = 1.03; const double coefficient30 = 1.05; if (ATKBreakLevel <= 30) { Text_Hd.ActBreakLevel = (int)(Math.Pow(coefficient, ATKBreakLevel) * 10000); Text_Hd.VitalityBreakLevel = (int)(Math.Pow(coefficient, VitalityBreakLevel) * 10000); } else if (ATKBreakLevel > 30) { Text_Hd.ActBreakLevel = (int)(Math.Pow(coefficient, 30) * (Math.Pow(coefficient30, ATKBreakLevel - 30) * 10000)); Text_Hd.VitalityBreakLevel = (int)(Math.Pow(coefficient, 30) * (Math.Pow(coefficient, VitalityBreakLevel - 30) * 10000)); } //计算生命 double Vitality = (double.Parse(_Test_Base_Vitality.text) + (double.Parse(_Test_Base_VitalityGrow.text) / 10000.00) * (double)(Text_Hd.GrowCoefficient / 10000.00) * (Text_Hd.Level - 1)) * (double)Text_Hd.VitalityBreakLevel / 10000.00 + (sg.VitalityGrow / 10000.0) * (double.Parse(_Test_Base_VitalityGrow.text) / 10000.00); Text_Hd.Vitality = (int)Vitality; _Test_Results_Vitality.text = Text_Hd.Vitality.ToString(); //计算攻击 double Attack = (double.Parse(_Test_Base_ATK.text) + (double.Parse(_Test_Base_AttacksGrow.text) / 10000.00) * (double)(Text_Hd.GrowCoefficient / 10000.00) * (Text_Hd.Level - 1)) * (double)Text_Hd.ActBreakLevel / 10000.00 + (sg.ATKGrow / 10000.00) * (double.Parse(_Test_Base_AttacksGrow.text) / 10000.00); Text_Hd.Attack = (int)Attack; _Test_Results_ATK.text = Text_Hd.Attack.ToString(); //计算韧性 Text_Hd.Tenacity = int.Parse(_Test_Base_Tenacity.text) + sg.TenacityGrow; _Test_Results_Tenacity.text = Text_Hd.Tenacity.ToString(); //计算暴击 Text_Hd.CriticalStrike = int.Parse(_Test_Base_Crit.text) + sg.CritGrow; _Test_Results_Crit.text = Text_Hd.CriticalStrike.ToString(); //计算技能 Text_Hd.Skill = int.Parse(_Test_Base_Skill.text); _Test_Results_Skill.text = Text_Hd.Skill.ToString(); //计算速度 double AttackSpeed = (double.Parse(_Test_Base_Speed.text) + (double.Parse(_Test_Base_SpeedGrow.text) / 10000.00) * (double)(Text_Hd.GrowCoefficient / 10000.00) * (Text_Hd.Level - 1)) /* * (double)Text_Hd.ActBreakLevel / 10000.00 */ + (sg.ATKGrow / 10000.00) * (double.Parse(_Test_Base_SpeedGrow.text) / 10000.00); Text_Hd.AttackSpeed = (int)AttackSpeed; _Test_Results_Speed.text = Text_Hd.AttackSpeed.ToString(); //计算穿透 Text_Hd.Pierce = int.Parse(_Test_Base_Penetrate.text); _Test_Results_Penetrate.text = Text_Hd.Pierce.ToString(); //计算防御 Text_Hd.Defense = int.Parse(_Test_Base_Defense.text); _Test_Results_Defense.text = Text_Hd.Defense.ToString(); //计算命中 Text_Hd.HitRate = int.Parse(_Test_Base_HitRate.text) + sg.HitRateGrow; _Test_Results_HitRate.text = Text_Hd.HitRate.ToString(); //计算闪避 Text_Hd.Dodge = int.Parse(_Test_Base_Dodge.text) + sg.DodgeGrow; _Test_Results_Dodge.text = Text_Hd.Dodge.ToString(); //生命成长 _Test_Results_VitalityGrow.text = Text_Hd.Dodge.ToString(); //战斗力测试 long FightingForce = (long)(Attack * 0.3 + Vitality * 0.1 + AttackSpeed * 3 + Text_Hd.Skill + Text_Hd.HitRate + Text_Hd.Dodge + Text_Hd.CriticalStrike + Text_Hd.Tenacity + Text_Hd.Pierce * 1.4 + Text_Hd.Defense * 1.4 + sg.AdditionalFighting); _Test_Results_FightingForce.text = FightingForce.ToString(); WindowControl.SetConsole("测试成功"); }