Server/project/assets/configs/repair.json

187 lines
5.3 KiB
JSON
Raw Normal View History

2023-03-03 16:23:46 +01:00
{
"priceMultiplier": 1,
"applyRandomizeDurabilityLoss": true,
"weaponSkillRepairGain": 4.06,
"armorKitSkillPointGainPerRepairPointMultiplier": 0.05,
"repairKitIntellectGainMultiplier": {
"weapon": 0.045,
"armor": 0.03
},
"maxIntellectGainPerRepair": {
"kit": 0.6,
"trader": 0.6
},
Implement live-like calculation of Weapon Maintenance XP (!164) - Implement formula based on 30 weapon repairs done on live - Return the repair amount as `repairAmount` from `repairItemByKit` - Add an additional `repairPoints` to `RepairDetails` to return the repair points used - Update `repairAmount` references to `repairPoints` to keep old behavior - Add new parameter to rewardSkillPoints that applies live-like level scaling - Only give weapon maintenance XP when using a repair kit This implementation comes with a "Crit Fail" and "Crit Success" mechanic to account for live sometimes randomly being -4 or +4 off from my estimated values. By default the chance of each is 10%, and they can overlap and cancel each other out Spreadsheet of live repair data: https://docs.google.com/spreadsheets/d/1-tR4WYelhZfKZ3ZDbxr3nd73Y60E1wQRjDWONpMVSew/edit?usp=sharing Useful columns: C: The amount of dura attempted to be repaired, this is used in the estimated skill calculated G: Hand entered value of how much skill gain I actually saw on live (Multiplied by 10 for readability. So "3.2" would be "32") J: The estimated skill gain, based on the calculation included in this merge request K: How far off the estimated skill gain was (Negative implies we guessed high and the actual result was lower) One thing of note: I've modified all the existing references to `repairAmount` to be the new `repairPoints` when a repair kit is used. This is to keep the existing behaviour outside of my direct changes as much as possible. However, this seems to be incorrect in some cases (For example, buff chance is repairPoints/maxDura, but repairPoints will go down the higher your int. I'm assuming this is meant to be repairedDura/maxDura). May want to update these references to use `repairAmount` once they've been confirmed to expect the repair amount instead of repair points used. Co-authored-by: DrakiaXYZ <565558+TheDgtl@users.noreply.github.com> Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/164 Co-authored-by: DrakiaXYZ <drakiaxyz@noreply.dev.sp-tarkov.com> Co-committed-by: DrakiaXYZ <drakiaxyz@noreply.dev.sp-tarkov.com>
2023-11-02 09:56:02 +01:00
"weaponTreatment": {
"critSuccessChance": 0.10,
"critSuccessAmount": 4,
"critFailureChance": 0.10,
"critFailureAmount": 4,
"pointGainMultiplier": 0.6
},
"repairKit": {
"armor": {
"rarityWeight": {
"common": 5,
"rare": 1
},
"bonusTypeWeight": {
"DamageReduction": 1
},
"common": {
"DamageReduction": {
"valuesMinMax": {
"min": 0.9,
"max": 0.98
},
"activeDurabilityPercentMinMax": {
"min": 75,
"max": 90
}
}
},
"rare": {
"DamageReduction": {
"valuesMinMax": {
"min": 0.8,
"max": 0.9
},
"activeDurabilityPercentMinMax": {
"min": 75,
"max": 90
}
}
}
},
"vest": {
"rarityWeight": {
"common": 5,
"rare": 1
},
"bonusTypeWeight": {
"DamageReduction": 1
},
"common": {
"DamageReduction": {
"valuesMinMax": {
"min": 0.9,
"max": 0.98
},
"activeDurabilityPercentMinMax": {
"min": 75,
"max": 90
}
}
},
"rare": {
"DamageReduction": {
"valuesMinMax": {
"min": 0.8,
"max": 0.9
},
"activeDurabilityPercentMinMax": {
"min": 75,
"max": 90
}
}
}
},
"headwear": {
"rarityWeight": {
"common": 5,
"rare": 1
},
"bonusTypeWeight": {
"DamageReduction": 1
},
"common": {
"DamageReduction": {
"valuesMinMax": {
"min": 0.9,
"max": 0.98
},
"activeDurabilityPercentMinMax": {
"min": 75,
"max": 90
}
}
},
"rare": {
"DamageReduction": {
"valuesMinMax": {
"min": 0.8,
"max": 0.9
},
"activeDurabilityPercentMinMax": {
"min": 75,
"max": 90
}
}
}
},
"weapon": {
"rarityWeight": {
"common": 5,
"rare": 1
},
"bonusTypeWeight": {
"WeaponSpread": 1,
"MalfunctionProtections": 1
},
"common": {
"WeaponSpread": {
"valuesMinMax": {
"min": 0.9,
"max": 0.99
},
"activeDurabilityPercentMinMax": {
"min": 75,
"max": 90
}
},
"MalfunctionProtections": {
"valuesMinMax": {
"min": 0.94,
"max": 0.96
},
"activeDurabilityPercentMinMax": {
"min": 75,
"max": 90
}
}
},
"rare": {
"WeaponSpread": {
"valuesMinMax": {
"min": 0.8,
"max": 0.9
},
"activeDurabilityPercentMinMax": {
"min": 75,
"max": 90
}
},
"MalfunctionProtections": {
"valuesMinMax": {
"min": 0.75,
"max": 0.90
},
"activeDurabilityPercentMinMax": {
"min": 75,
"max": 90
}
},
"WeaponDamage": {
"valuesMinMax": {
"min": 0.3,
"max": 0.6
},
"activeDurabilityPercentMinMax": {
"min": 75,
"max": 90
}
}
}
}
}
}