예제 #1
0
    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";
    }
예제 #2
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("测试成功");
    }