mirror of
https://github.com/1dot13/source.git
synced 2026-09-16 14:47:17 +02:00
Advanced repairs skill check (#581)
* Add technician level skill check for advanced repair * changed readability
This commit is contained in:
@@ -2749,6 +2749,7 @@ void LoadSkillTraitsExternalSettings()
|
|||||||
gSkillTraitValues.ubTERepairRobotPenaltyReduction = iniReader.ReadInteger("Technician","REPAIR_SPEED_ROBOT_PENALTY_REDUCTION", 30, 0, 100);
|
gSkillTraitValues.ubTERepairRobotPenaltyReduction = iniReader.ReadInteger("Technician","REPAIR_SPEED_ROBOT_PENALTY_REDUCTION", 30, 0, 100);
|
||||||
if (gSkillTraitValues.ubTETraitsNumToRepairRobot == 2) {gSkillTraitValues.ubTERepairRobotPenaltyReduction /= 2; }
|
if (gSkillTraitValues.ubTETraitsNumToRepairRobot == 2) {gSkillTraitValues.ubTERepairRobotPenaltyReduction /= 2; }
|
||||||
gSkillTraitValues.fTETraitsCanRestoreItemThreshold = iniReader.ReadBoolean( "Technician", "MERCS_CAN_DO_ADVANCED_REPAIRS", FALSE );
|
gSkillTraitValues.fTETraitsCanRestoreItemThreshold = iniReader.ReadBoolean( "Technician", "MERCS_CAN_DO_ADVANCED_REPAIRS", FALSE );
|
||||||
|
gSkillTraitValues.ubTechLevelNeededForAdvancedRepair = iniReader.ReadInteger("Technician", "TECH_LEVEL_NEEDED_FOR_ADVANCED_REPAIR", 2, 1, 2);
|
||||||
|
|
||||||
// DOCTOR
|
// DOCTOR
|
||||||
gSkillTraitValues.ubDONumberTraitsNeededForSurgery = iniReader.ReadInteger("Doctor","NUMBER_OF_TRAITS_NEEDED_FOR_SURGERY", 1, 0, 2);
|
gSkillTraitValues.ubDONumberTraitsNeededForSurgery = iniReader.ReadInteger("Doctor","NUMBER_OF_TRAITS_NEEDED_FOR_SURGERY", 1, 0, 2);
|
||||||
|
|||||||
@@ -2145,6 +2145,7 @@ typedef struct
|
|||||||
UINT8 ubTERepairRobotPenaltyReduction;
|
UINT8 ubTERepairRobotPenaltyReduction;
|
||||||
UINT8 ubTETraitsNumToRepairRobot;
|
UINT8 ubTETraitsNumToRepairRobot;
|
||||||
BOOLEAN fTETraitsCanRestoreItemThreshold;
|
BOOLEAN fTETraitsCanRestoreItemThreshold;
|
||||||
|
UINT8 ubTechLevelNeededForAdvancedRepair; // if we have a high enough technician level, we can repair items above the normal threshold (1 for technician, 2 for engineer)
|
||||||
|
|
||||||
// DOCTOR
|
// DOCTOR
|
||||||
UINT8 ubDONumberTraitsNeededForSurgery;
|
UINT8 ubDONumberTraitsNeededForSurgery;
|
||||||
|
|||||||
@@ -5171,8 +5171,12 @@ BOOLEAN RepairObject( SOLDIERTYPE * pSoldier, SOLDIERTYPE * pOwner, OBJECTTYPE *
|
|||||||
INT16 threshold = 100;
|
INT16 threshold = 100;
|
||||||
if ( gGameExternalOptions.fAdvRepairSystem && (Item[pObj->usItem].usItemClass & (IC_WEAPON|IC_ARMOUR)) )
|
if ( gGameExternalOptions.fAdvRepairSystem && (Item[pObj->usItem].usItemClass & (IC_WEAPON|IC_ARMOUR)) )
|
||||||
{
|
{
|
||||||
if ( !gSkillTraitValues.fTETraitsCanRestoreItemThreshold || !HAS_SKILL_TRAIT( pSoldier, TECHNICIAN_NT ) )
|
if (gSkillTraitValues.fTETraitsCanRestoreItemThreshold && NUM_SKILL_TRAITS(pSoldier, TECHNICIAN_NT) >= gSkillTraitValues.ubTechLevelNeededForAdvancedRepair) // Greysa: added skill check for advanced repair. If we have a high enough technician level, we can repair items above the normal threshold (1 for technician, 2 for engineer)
|
||||||
{
|
{
|
||||||
|
threshold = 100;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
threshold = (*pObj)[ubLoop]->data.sRepairThreshold;
|
threshold = (*pObj)[ubLoop]->data.sRepairThreshold;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user