Beispiel #1
0
        public int GetSkill1Point(bool isFullLife, bool basePoint, SubGunType subGunType = SubGunType.None)
        {
            float num;

            if (basePoint)
            {
                num = 1f;
            }
            else
            {
                num = this.GetEffectGridValue(EffectGridType.skill, subGunType);
            }
            int num2 = this.life;

            if (isFullLife)
            {
                num2 = this.maxLife;
            }


            float floatFromStringArray  = Game_Config_Info_Func.GetFloatFromStringArray("skill_effect", 0, ',');
            float floatFromStringArray2 = Game_Config_Info_Func.GetFloatFromStringArray("skill_effect", 1, ',');
            int   level = this.GetSkill(enumSkill.eSkill1).level;

            return(Mathf.CeilToInt(Mathf.Ceil((float)num2 / (float)this.maxLife * (float)this.number) * (0.8f + (float)this.info.rank / 10f) * (floatFromStringArray + floatFromStringArray2 * (float)(level - 1)) * (float)Mathf.CeilToInt((float)level / 10f) * num));
        }
Beispiel #2
0
 public float GetEffectGridValue(EffectGridType type, SubGunType subGunType = SubGunType.None)
 {
     if (subGunType != SubGunType.None)
     {
         //猜测是特典枪
         //if (subGunType == SubGunType.Simultor)
         //{
         //    return 1f + (float)((ExGun)this).GetArrEffcetGridBuff(subGunType)[type - EffectGridType.pow] / 100f;
         //}
     }
     return(1f + (float)this.arrEffectGridBuff[type - EffectGridType.pow] / 100f);
 }
Beispiel #3
0
        // Token: 0x06001638 RID: 5688 RVA: 0x00072A9C File Offset: 0x00070C9C
        public int GetSurPoint(bool isFullLife, bool basePoint, SubGunType subGunType = SubGunType.None)
        {
            int num4;
            int num6;

            if (basePoint)
            {
                int num  = this.pow;
                int num2 = this.rate;
                int num3 = this.hit;
                num4 = this.dodge;
                int num5 = this.crit;
                num6 = this.armor;
                int num7 = this.piercing;
            }
            else
            {
                int num  = Mathf.CeilToInt((float)this.pow * this.GetEffectGridValue(EffectGridType.pow, subGunType));
                int num2 = Mathf.CeilToInt((float)this.rate * this.GetEffectGridValue(EffectGridType.rate, subGunType));
                int num3 = Mathf.CeilToInt((float)this.hit * this.GetEffectGridValue(EffectGridType.hit, subGunType));
                num4 = Mathf.CeilToInt((float)this.dodge * this.GetEffectGridValue(EffectGridType.dodge, subGunType));
                int num5 = Mathf.CeilToInt((float)this.crit * this.GetEffectGridValue(EffectGridType.crit, subGunType));
                num6 = Mathf.CeilToInt((float)this.armor * this.GetEffectGridValue(EffectGridType.armor, subGunType));
                int   num7            = Mathf.CeilToInt((float)this.piercing * this.GetEffectGridValue(EffectGridType.ap, subGunType));
                float effectGridValue = this.GetEffectGridValue(EffectGridType.skill, subGunType);
            }
            int num8 = this.life;

            if (isFullLife)
            {
                num8 = this.maxLife;
            }

            float floatFromStringArray  = Game_Config_Info_Func.GetFloatFromStringArray("deffence_effect", 0, ',');
            float floatFromStringArray2 = Game_Config_Info_Func.GetFloatFromStringArray("deffence_effect", 1, ',');
            float floatFromStringArray3 = Game_Config_Info_Func.GetFloatFromStringArray("deffence_effect", 2, ',');
            float floatFromStringArray4 = Game_Config_Info_Func.GetFloatFromStringArray("deffence_effect", 3, ',');
            float floatFromStringArray5 = Game_Config_Info_Func.GetFloatFromStringArray("deffence_effect", 4, ',');
            float floatFromStringArray6 = Game_Config_Info_Func.GetFloatFromStringArray("deffence_effect", 5, ',');

            return((int)(floatFromStringArray * (float)Mathf.CeilToInt((float)num8 * ((floatFromStringArray2 + (float)num4) / floatFromStringArray2) * (floatFromStringArray3 * floatFromStringArray4 / Mathf.Max(floatFromStringArray4 - (float)num6 / floatFromStringArray6, 1f) - floatFromStringArray5))));
        }
Beispiel #4
0
        public int GetAtkPoint(bool isNight, bool isFullLife, bool basePoint, SubGunType subGunType = SubGunType.None, bool countFairy = true)
        {
            int num  = this.pow;
            int num2 = this.rate;
            int num3 = this.hit;
            int num4 = this.dodge;
            int num5 = this.crit;
            int num6 = this.armor;
            int num7 = this.piercing; //穿甲

            if (!countFairy)          //妖精
            {
                num  -= this.fairyPow;
                num3 -= this.fairyHit;
                num4 -= this.fairyDodge;
                num6 -= this.fairyArmor;
            }
            if (!basePoint)
            {
                num  = Mathf.CeilToInt(Mathf.Max(Game_Config_Info_Func.GetMinAttribute("pow"), (float)num * this.GetEffectGridValue(EffectGridType.pow, subGunType) * this.powbuffTemp));
                num2 = Mathf.CeilToInt(Mathf.Max(Game_Config_Info_Func.GetMinAttribute("rate"), (float)num2 * this.GetEffectGridValue(EffectGridType.rate, subGunType)));
                num3 = Mathf.CeilToInt(Mathf.Max(Game_Config_Info_Func.GetMinAttribute("hit"), (float)num3 * this.GetEffectGridValue(EffectGridType.hit, subGunType) * this.hitbuffTemp));
                num4 = Mathf.CeilToInt(Mathf.Max(Game_Config_Info_Func.GetMinAttribute("dodge"), (float)num4 * this.GetEffectGridValue(EffectGridType.dodge, subGunType) * this.dodgebuffTemp));
                num5 = Mathf.CeilToInt(Mathf.Max(Game_Config_Info_Func.GetMinAttribute("critical_percent"), (float)num5 * this.GetEffectGridValue(EffectGridType.crit, subGunType) * this.critbuffTemp));
                num6 = Mathf.CeilToInt(Mathf.Max(Game_Config_Info_Func.GetMinAttribute("armor"), (float)num6 * this.GetEffectGridValue(EffectGridType.armor, subGunType) * this.armorbuffTemp));
                num7 = Mathf.CeilToInt(Mathf.Max(Game_Config_Info_Func.GetMinAttribute("armor_piercing"), (float)num7 * this.GetEffectGridValue(EffectGridType.ap, subGunType)));
                float effectGridValue = this.GetEffectGridValue(EffectGridType.skill, subGunType);
            }
            int num8 = this.life;

            if (isFullLife)
            {
                num8 = this.maxLife;
            }
            int num9  = this.info.special + this.bulletNumber;
            int num10 = num3;

            if (isNight)
            {
                num10 = Mathf.CeilToInt((float)num3 * (1f + (float)im.catchdatasummery.Game_Config_info_Func.GetDouble("night_hit_debuff") * (1f - this.nightResistance)));
            }
            GunType type = this.info.type;
            int     result;

            if (type != GunType.machinegun)
            {
                if (type != GunType.shotgun)
                {
                    float floatFromStringArray  = Game_Config_Info_Func.GetFloatFromStringArray("attack_effect_normal", 0, ',');
                    float floatFromStringArray2 = Game_Config_Info_Func.GetFloatFromStringArray("attack_effect_normal", 1, ',');
                    float floatFromStringArray3 = Game_Config_Info_Func.GetFloatFromStringArray("attack_effect_normal", 2, ',');
                    float floatFromStringArray4 = Game_Config_Info_Func.GetFloatFromStringArray("attack_effect_normal", 3, ',');
                    float floatFromStringArray5 = Game_Config_Info_Func.GetFloatFromStringArray("attack_effect_normal", 4, ',');
                    float floatFromStringArray6 = Game_Config_Info_Func.GetFloatFromStringArray("attack_effect_normal", 5, ',');
                    result = Mathf.CeilToInt(floatFromStringArray * Mathf.Ceil((float)num8 / (float)this.maxLife * (float)this.number) * (((float)num + (float)num7 / floatFromStringArray6) * ((float)this.criHarmRate / 100f * (float)num5 / 100f + 1f) * (float)num2 / floatFromStringArray5 * (float)num10 / ((float)num10 + floatFromStringArray3) + floatFromStringArray4));
                }
                else
                {
                    float floatFromStringArray  = Game_Config_Info_Func.GetFloatFromStringArray("attack_effect_sg", 0, ',');
                    float floatFromStringArray2 = Game_Config_Info_Func.GetFloatFromStringArray("attack_effect_sg", 1, ',');
                    float floatFromStringArray3 = Game_Config_Info_Func.GetFloatFromStringArray("attack_effect_sg", 2, ',');
                    float floatFromStringArray4 = Game_Config_Info_Func.GetFloatFromStringArray("attack_effect_sg", 3, ',');
                    float floatFromStringArray5 = Game_Config_Info_Func.GetFloatFromStringArray("attack_effect_sg", 4, ',');
                    float floatFromStringArray6 = Game_Config_Info_Func.GetFloatFromStringArray("attack_effect_sg", 5, ',');
                    float floatFromStringArray7 = Game_Config_Info_Func.GetFloatFromStringArray("attack_effect_sg", 6, ',');
                    float floatFromStringArray8 = Game_Config_Info_Func.GetFloatFromStringArray("attack_effect_sg", 7, ',');
                    float floatFromStringArray9 = Game_Config_Info_Func.GetFloatFromStringArray("attack_effect_sg", 8, ',');
                    result = Mathf.CeilToInt(floatFromStringArray * Mathf.Ceil((float)num8 / (float)this.maxLife * (float)this.number) * (floatFromStringArray7 * (float)num9 * ((float)num + (float)num7 / floatFromStringArray6) * ((float)this.criHarmRate / 100f * (float)num5 / 100f + 1f) / ((float)num9 * floatFromStringArray5 / (float)num2 + floatFromStringArray8 + floatFromStringArray9 * (float)num9) * (float)num10 / ((float)num10 + floatFromStringArray3) + floatFromStringArray4));
                }
            }
            else
            {
                float floatFromStringArray  = Game_Config_Info_Func.GetFloatFromStringArray("attack_effect_mg", 0, ',');
                float floatFromStringArray2 = Game_Config_Info_Func.GetFloatFromStringArray("attack_effect_mg", 1, ',');
                float floatFromStringArray3 = Game_Config_Info_Func.GetFloatFromStringArray("attack_effect_mg", 2, ',');
                float floatFromStringArray4 = Game_Config_Info_Func.GetFloatFromStringArray("attack_effect_mg", 3, ',');
                float floatFromStringArray5 = Game_Config_Info_Func.GetFloatFromStringArray("attack_effect_mg", 4, ',');
                float floatFromStringArray6 = Game_Config_Info_Func.GetFloatFromStringArray("attack_effect_mg", 5, ',');
                float floatFromStringArray7 = Game_Config_Info_Func.GetFloatFromStringArray("attack_effect_mg", 6, ',');
                result = Mathf.CeilToInt(floatFromStringArray * Mathf.Ceil((float)num8 / (float)this.maxLife * (float)this.number) * ((float)num9 * ((float)num + (float)num7 / floatFromStringArray7) * ((float)this.criHarmRate / 100f * (float)num5 / 100f + 1f) / ((float)num9 / 3f + floatFromStringArray3 + floatFromStringArray4 / (float)num2) * (float)num10 / ((float)num10 + floatFromStringArray5) + floatFromStringArray6));
            }
            return(result);
        }
Beispiel #5
0
 public virtual int GetPoint(bool fullLife = false, bool basePoint = false, bool isNight = false, SubGunType subGunType = SubGunType.None)
 {
     return(this.GetAtkPoint(isNight, fullLife, basePoint, subGunType) + this.GetSurPoint(fullLife, basePoint, subGunType) + this.GetSkill1Point(fullLife, basePoint, subGunType));
 }