public bool DeepEquals(InventoryItemActionProgressionReward other) { return(other != null && ProgressionMapping.DeepEquals(other.ProgressionMapping) && Amount == other.Amount && ApplyThrottles == other.ApplyThrottles); }
public float CalcModulePrice(EquipmentType type) { PlayerProfile profile = ProfileManager.instance.currentProfile; ProgressionMapping progMap = GameManager.instance.progMap; int clampedPurchases = 0; switch (type) { case EquipmentType.Armour: clampedPurchases = Mathf.Clamp(profile.armourModValueIndex, 0, progMap.equipIndexRate); Debug.Log($"clampedPurchases: {clampedPurchases}, armourModValueIndex: {profile.armourModValueIndex}"); break; case EquipmentType.Engine: clampedPurchases = Mathf.Clamp(profile.engineModValueIndex, 0, progMap.equipIndexRate); break; case EquipmentType.Hull: clampedPurchases = Mathf.Clamp(profile.hullModValueIndex, 0, progMap.equipIndexRate); break; case EquipmentType.Maneuvering: clampedPurchases = Mathf.Clamp(profile.thrusterModValueIndex, 0, progMap.equipIndexRate); break; case EquipmentType.Shield: clampedPurchases = Mathf.Clamp(profile.shieldModValueIndex, 0, progMap.equipIndexRate); break; case EquipmentType.Weapon: clampedPurchases = Mathf.Clamp(profile.weaponModValueIndex, 0, progMap.equipIndexRate); break; } float percentage = (float)clampedPurchases / (float)progMap.equipIndexRate; float curveValue = GameManager.instance.progMap.equipmentCostScale.Evaluate(percentage); float modPrice = progMap.maxPrice * curveValue; return(modPrice); }