public void OnAdd() { Length += 1; GameObject BasicInformationObj = Instantiate(BasicInformation.gameObject, BasicInformation.parent.Find("Content")); GameObject TipTitleObj = Instantiate(TipTitle.gameObject, TipTitle.parent.Find("Content")); BasicInformationObj.name = "obj" + Length; TipTitleObj.name = "obj" + Length; TipTitleObj.transform.Find("Operation/Del").GetComponent <DelAssist>().ID = Length; transform.Find("Scrollbar Horizontal").GetComponent <Scrollbar>().value = 1; //------------数据处理------------------// C_HeroData c_heroData = new C_HeroData(); //heroData[Length-1] = s_heroData; //heroData.Add(Length, c_heroData); heroData[Length] = (c_heroData); //print("集合长度="+heroData.Count); _heroID = transform.Find("Viewport/Content/obj" + Length + "/HeroID").GetComponent <Text>(); _heroQuality = transform.Find("Viewport/Content/obj" + Length + "/HeroQuality").GetComponent <Dropdown>(); _heroType = transform.Find("Viewport/Content/obj" + Length + "/HeroType").GetComponent <Dropdown>(); _ATKType = transform.Find("Viewport/Content/obj" + Length + "/ATKType").GetComponent <Dropdown>(); _heroStarID = transform.Find("Viewport/Content/obj" + Length + "/HeroStarID").GetComponent <Text>(); _heroFighting = transform.Find("Viewport/Content/obj" + Length + "/HeroFighting").GetComponent <Text>(); _heroExponentBit = transform.Find("Viewport/Content/obj" + Length + "/HeroExponentBit").GetComponent <Text>(); _heroLevel = transform.Find("Viewport/Content/obj" + Length + "/HeroLevel").GetComponent <Text>(); _heroVitality = transform.Find("Viewport/Content/obj" + Length + "/HeroVitality").GetComponent <Text>(); _heroAttack = transform.Find("Viewport/Content/obj" + Length + "/HeroAttack").GetComponent <Text>(); _heroAttackSpeed = transform.Find("Viewport/Content/obj" + Length + "/HeroAttackSpeed").GetComponent <Text>(); _heroSkill = transform.Find("Viewport/Content/obj" + Length + "/HeroSkill").GetComponent <Text>(); _heroHitRate = transform.Find("Viewport/Content/obj" + Length + "/HeroHitRate").GetComponent <Text>(); _heroDodge = transform.Find("Viewport/Content/obj" + Length + "/HeroDodge").GetComponent <Text>(); _heroCriticalStrike = transform.Find("Viewport/Content/obj" + Length + "/HeroCriticalStrike").GetComponent <Text>(); _heroTenacity = transform.Find("Viewport/Content/obj" + Length + "/HeroTenacity").GetComponent <Text>(); _heroPierce = transform.Find("Viewport/Content/obj" + Length + "/HeroPierce").GetComponent <Text>(); _heroDefense = transform.Find("Viewport/Content/obj" + Length + "/HeroDefense").GetComponent <Text>(); _heroActGrow = transform.Find("Viewport/Content/obj" + Length + "/HeroActGrow").GetComponent <Text>(); _heroVitalityGrow = transform.Find("Viewport/Content/obj" + Length + "/HeroVitalityGrow").GetComponent <Text>(); _heroActSpeedGrow = transform.Find("Viewport/Content/obj" + Length + "/HeroActSpeedGrow").GetComponent <Text>(); _heroGrowCoefficient = transform.Find("Viewport/Content/obj" + Length + "/HeroGrowCoefficient").GetComponent <Text>(); _heroActBreakLevel = transform.Find("Viewport/Content/obj" + Length + "/HeroActBreakLevel").GetComponent <Text>(); _heroVitalityBreakLevel = transform.Find("Viewport/Content/obj" + Length + "/HeroVitalityBreakLevel").GetComponent <Text>(); _heroBaseStrikeDamage = transform.Find("Viewport/Content/obj" + Length + "/HeroBaseStrikeDamage").GetComponent <Text>(); _heroTowerActFrequency = transform.Find("Viewport/Content/obj" + Length + "/HeroTowerActFrequency").GetComponent <Text>(); _heroSkillConfigID = transform.Find("Viewport/Content/obj" + Length + "/HeroSkillConfigID").GetComponent <Text>(); _heroExclusiveEquipID = transform.Find("Viewport/Content/obj" + Length + "/HeroExclusiveEquipID").GetComponent <Text>(); _heroByConfigID1 = transform.Find("Viewport/Content/obj" + Length + "/HeroByConfigID1").GetComponent <Text>(); _heroByConfigID2 = transform.Find("Viewport/Content/obj" + Length + "/HeroByConfigID2").GetComponent <Text>(); _heroByConfigID3 = transform.Find("Viewport/Content/obj" + Length + "/HeroByConfigID3").GetComponent <Text>(); _heroByConfigID4 = transform.Find("Viewport/Content/obj" + Length + "/HeroByConfigID4").GetComponent <Text>(); _heroMessageConfigID = transform.Find("Viewport/Content/obj" + Length + "/HeroMessageConfigID").GetComponent <Text>(); _heroID.gameObject.GetComponent <InputField>().text = "0"; _heroQuality.value = 5; _ATKType.value = 0; _heroType.value = 0; _heroStarID.gameObject.GetComponent <InputField>().text = "1"; _heroFighting.gameObject.GetComponent <InputField>().text = "0"; _heroExponentBit.gameObject.GetComponent <InputField>().text = "0"; _heroLevel.gameObject.GetComponent <InputField>().text = "1"; _heroVitality.gameObject.GetComponent <InputField>().text = "0"; _heroAttack.gameObject.GetComponent <InputField>().text = "0"; _heroAttackSpeed.gameObject.GetComponent <InputField>().text = "0"; _heroSkill.gameObject.GetComponent <InputField>().text = "0"; _heroHitRate.gameObject.GetComponent <InputField>().text = "0"; _heroDodge.gameObject.GetComponent <InputField>().text = "0"; _heroCriticalStrike.gameObject.GetComponent <InputField>().text = "0"; _heroTenacity.gameObject.GetComponent <InputField>().text = "0"; _heroPierce.gameObject.GetComponent <InputField>().text = "0"; _heroDefense.gameObject.GetComponent <InputField>().text = "0"; _heroActGrow.gameObject.GetComponent <InputField>().text = "0"; _heroVitalityGrow.gameObject.GetComponent <InputField>().text = "0"; _heroActSpeedGrow.gameObject.GetComponent <InputField>().text = "0"; _heroGrowCoefficient.gameObject.GetComponent <InputField>().text = "1"; _heroActBreakLevel.gameObject.GetComponent <InputField>().text = "1"; _heroVitalityBreakLevel.gameObject.GetComponent <InputField>().text = "1"; _heroBaseStrikeDamage.gameObject.GetComponent <InputField>().text = "1"; _heroTowerActFrequency.gameObject.GetComponent <InputField>().text = "0"; _heroSkillConfigID.gameObject.GetComponent <InputField>().text = "0"; _heroExclusiveEquipID.gameObject.GetComponent <InputField>().text = "0"; _heroByConfigID1.gameObject.GetComponent <InputField>().text = "0"; _heroByConfigID2.gameObject.GetComponent <InputField>().text = "0"; _heroByConfigID3.gameObject.GetComponent <InputField>().text = "0"; _heroByConfigID4.gameObject.GetComponent <InputField>().text = "0"; _heroMessageConfigID.gameObject.GetComponent <InputField>().text = "0"; }
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("测试成功"); }