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); } }
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)); }
private float CalculateAmmoTier(WeaponComponent weaponComponent) { WeaponComponentData weapon = weaponComponent.Weapons[0]; return((float)weapon.MissileDamage + (float)Math.Max(0, (int)weapon.MaxDataValue - 20) * 0.1f); }
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)); }