Exemplo n.º 1
0
    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;
    }
Exemplo n.º 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("测试成功");
    }