Beispiel #1
0
        private float CalculateTierNonCraftedWeapon(WeaponComponent weaponComponent)
        {
            ItemObject itemObject = weaponComponent.Item;

            switch (itemObject != null ? itemObject.ItemType : ItemObject.ItemTypeEnum.Invalid)
            {
            case ItemObject.ItemTypeEnum.Arrows:
            case ItemObject.ItemTypeEnum.Bolts:
            case ItemObject.ItemTypeEnum.Bullets:
                return(this.CalculateAmmoTier(weaponComponent));

            case ItemObject.ItemTypeEnum.Shield:
                return(this.CalculateShieldTier(weaponComponent));

            case ItemObject.ItemTypeEnum.Bow:
            case ItemObject.ItemTypeEnum.Crossbow:
            case ItemObject.ItemTypeEnum.Pistol:
            case ItemObject.ItemTypeEnum.Musket:
                return(this.CalculateRangedWeaponTier(weaponComponent));

            default:
                return(0.0f);
            }
        }
Beispiel #2
0
        private float CalculateRangedWeaponTier(WeaponComponent weaponComponent)
        {
            WeaponComponentData weapon     = weaponComponent.Weapons[0];
            ItemObject          itemObject = weaponComponent.Item;
            double num1;

            switch (itemObject != null ? itemObject.ItemType : ItemObject.ItemTypeEnum.Invalid)
            {
            case ItemObject.ItemTypeEnum.Crossbow:
                num1 = 0.699999988079071;
                break;

            case ItemObject.ItemTypeEnum.Musket:
                num1 = 0.5;
                break;

            default:
                num1 = 1.0;
                break;
            }
            double num2 = (double)weapon.ThrustDamage * 0.200000002980232 + (double)weapon.ThrustSpeed * 0.0199999995529652 + (double)weapon.Accuracy * 0.0199999995529652;

            return((float)(num1 * num2 - 11.0));
        }
Beispiel #3
0
        private float CalculateAmmoTier(WeaponComponent weaponComponent)
        {
            WeaponComponentData weapon = weaponComponent.Weapons[0];

            return((float)weapon.MissileDamage + (float)Math.Max(0, (int)weapon.MaxDataValue - 20) * 0.1f);
        }
Beispiel #4
0
        private float CalculateShieldTier(WeaponComponent weaponComponent)
        {
            WeaponComponentData weapon = weaponComponent.Weapons[0];

            return((float)(((double)weapon.MaxDataValue + 3.0 * (double)weapon.BodyArmor + (double)weapon.ThrustSpeed) / (6.0 + (double)weaponComponent.Item.Weight) * 0.129999995231628 - 3.0));
        }