示例#1
0
 public bool DeepEquals(InventoryItemActionProgressionReward other)
 {
     return(other != null &&
            ProgressionMapping.DeepEquals(other.ProgressionMapping) &&
            Amount == other.Amount &&
            ApplyThrottles == other.ApplyThrottles);
 }
示例#2
0
    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);
    }