mirror of
https://github.com/1dot13/source.git
synced 2026-07-22 13:40:22 +02:00
New trait modifier for Ranger
POSSIBLE_AIM_CLICK_ADDED_SHOTGUNS was added to adjust the number of aim clicks for shotguns. The default is 1. Also fixed the broken aim click modifiers for Gunslinger and Sniper. git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@6454 3b4a5df2-a311-0410-b5c6-a8a6f20db521
This commit is contained in:
@@ -2140,6 +2140,7 @@ void LoadSkillTraitsExternalSettings()
|
||||
gSkillTraitValues.ubRABonusCtHShotguns = iniReader.ReadInteger("Ranger","BONUS_CTH_SHOTGUNS", 10, 0, 100);
|
||||
gSkillTraitValues.ubRAPumpShotgunsAPsReduction = iniReader.ReadInteger("Ranger","PUMP_SHOTGUNS_APS_REDUCTION", 25, 0, 45);
|
||||
gSkillTraitValues.ubRAFiringSpeedBonusShotguns = iniReader.ReadInteger("Ranger","FIRING_SPEED_BONUS_SHOTGUNS", 10, 0, 45);
|
||||
gSkillTraitValues.ubRAAimClicksAdded = iniReader.ReadInteger("Ranger","POSSIBLE_AIM_CLICK_ADDED_SHOTGUNS", 1, 0, 3);
|
||||
gSkillTraitValues.ubRAGroupTimeSpentForTravellingFoot = iniReader.ReadInteger("Ranger","GROUP_TIME_SPENT_FOR_TRAVELLING_BY_FOOT_REDUCTION", 20, 0, 100);
|
||||
gSkillTraitValues.ubRAGroupTimeSpentForTravellingVehicle = iniReader.ReadInteger("Ranger","GROUP_TIME_SPENT_FOR_TRAVELLING_IN_VEHICLE_REDUCTION", 10, 0, 100);
|
||||
gSkillTraitValues.ubRAMaxBonusesToTravelSpeed = iniReader.ReadInteger("Ranger","MAX_STACKABLE_LESS_TRAVEL_TIME_BONUSES", 2, 0, 20);
|
||||
|
||||
@@ -1387,6 +1387,7 @@ typedef struct
|
||||
//UINT8 ubRACamoEffectivenessBonus;
|
||||
UINT8 ubRACamoWornountSpeedReduction;
|
||||
UINT8 ubRAFiringSpeedBonusShotguns;
|
||||
UINT8 ubRAAimClicksAdded;
|
||||
|
||||
// GUNSLINGER
|
||||
UINT8 ubGSFiringSpeedBonusPistols;
|
||||
|
||||
@@ -1989,34 +1989,43 @@ void AssignSkillTraitHelpText( UINT8 ubTraitNumber, BOOLEAN fExpertLevel )
|
||||
swprintf( atStr, gzIMPMajorTraitsHelpTextsRanger[3], ( gSkillTraitValues.ubRAFiringSpeedBonusShotguns * (fExpertLevel ? 2 : 1)), L"%");
|
||||
wcscat( apStr, atStr );
|
||||
}
|
||||
if( gSkillTraitValues.ubRAAimClicksAdded != 0 )
|
||||
{
|
||||
if( gSkillTraitValues.ubRAAimClicksAdded == 1 && !fExpertLevel )
|
||||
swprintf( atStr, gzIMPMajorTraitsHelpTextsRanger[4], ( gSkillTraitValues.ubRAAimClicksAdded * (fExpertLevel ? 2 : 1)));
|
||||
else
|
||||
swprintf( atStr, gzIMPMajorTraitsHelpTextsRanger[5], ( gSkillTraitValues.ubRAAimClicksAdded * (fExpertLevel ? 2 : 1)));
|
||||
|
||||
wcscat( apStr, atStr );
|
||||
}
|
||||
if( gSkillTraitValues.ubRAGroupTimeSpentForTravellingFoot != 0 )
|
||||
{
|
||||
swprintf( atStr, gzIMPMajorTraitsHelpTextsRanger[4], ( gSkillTraitValues.ubRAGroupTimeSpentForTravellingFoot * (fExpertLevel ? 2 : 1)), L"%");
|
||||
swprintf( atStr, gzIMPMajorTraitsHelpTextsRanger[6], ( gSkillTraitValues.ubRAGroupTimeSpentForTravellingFoot * (fExpertLevel ? 2 : 1)), L"%");
|
||||
wcscat( apStr, atStr );
|
||||
}
|
||||
if( gSkillTraitValues.ubRAGroupTimeSpentForTravellingVehicle != 0 )
|
||||
{
|
||||
swprintf( atStr, gzIMPMajorTraitsHelpTextsRanger[5], ( gSkillTraitValues.ubRAGroupTimeSpentForTravellingVehicle * (fExpertLevel ? 2 : 1)), L"%");
|
||||
swprintf( atStr, gzIMPMajorTraitsHelpTextsRanger[7], ( gSkillTraitValues.ubRAGroupTimeSpentForTravellingVehicle * (fExpertLevel ? 2 : 1)), L"%");
|
||||
wcscat( apStr, atStr );
|
||||
}
|
||||
if( gSkillTraitValues.ubRABreathForTravellingReduction != 0 )
|
||||
{
|
||||
swprintf( atStr, gzIMPMajorTraitsHelpTextsRanger[6], ( gSkillTraitValues.ubRABreathForTravellingReduction * (fExpertLevel ? 2 : 1)), L"%");
|
||||
swprintf( atStr, gzIMPMajorTraitsHelpTextsRanger[8], ( gSkillTraitValues.ubRABreathForTravellingReduction * (fExpertLevel ? 2 : 1)), L"%");
|
||||
wcscat( apStr, atStr );
|
||||
}
|
||||
if( gSkillTraitValues.ubRAWeatherPenaltiesReduction != 0 )
|
||||
{
|
||||
swprintf( atStr, gzIMPMajorTraitsHelpTextsRanger[7], ( gSkillTraitValues.ubRAWeatherPenaltiesReduction * (fExpertLevel ? 2 : 1)), L"%");
|
||||
swprintf( atStr, gzIMPMajorTraitsHelpTextsRanger[9], ( gSkillTraitValues.ubRAWeatherPenaltiesReduction * (fExpertLevel ? 2 : 1)), L"%");
|
||||
wcscat( apStr, atStr );
|
||||
}
|
||||
// if( gSkillTraitValues.ubRACamoEffectivenessBonus != 0 )
|
||||
// {
|
||||
// swprintf( atStr, gzIMPMajorTraitsHelpTextsRanger[8], ( gSkillTraitValues.ubRACamoEffectivenessBonus * (fExpertLevel ? 2 : 1)), L"%");
|
||||
// swprintf( atStr, gzIMPMajorTraitsHelpTextsRanger[10], ( gSkillTraitValues.ubRACamoEffectivenessBonus * (fExpertLevel ? 2 : 1)), L"%");
|
||||
// wcscat( apStr, atStr );
|
||||
// }
|
||||
if( gSkillTraitValues.ubRACamoWornountSpeedReduction != 0 )
|
||||
{
|
||||
swprintf( atStr, gzIMPMajorTraitsHelpTextsRanger[9], ( gSkillTraitValues.ubRACamoWornountSpeedReduction * (fExpertLevel ? 2 : 1)), L"%");
|
||||
swprintf( atStr, gzIMPMajorTraitsHelpTextsRanger[11], ( gSkillTraitValues.ubRACamoWornountSpeedReduction * (fExpertLevel ? 2 : 1)), L"%");
|
||||
wcscat( apStr, atStr );
|
||||
}
|
||||
break;
|
||||
|
||||
+15
-6
@@ -7247,34 +7247,43 @@ void AssignPersonnelSkillTraitHelpText( UINT8 ubTraitNumber, BOOLEAN fExpertLeve
|
||||
swprintf( atStr, gzIMPMajorTraitsHelpTextsRanger[3], ( gSkillTraitValues.ubRAFiringSpeedBonusShotguns * (fExpertLevel ? 2 : 1)), L"%");
|
||||
wcscat( apStr, atStr );
|
||||
}
|
||||
if( gSkillTraitValues.ubRAAimClicksAdded != 0 )
|
||||
{
|
||||
if( gSkillTraitValues.ubRAAimClicksAdded == 1 && !fExpertLevel )
|
||||
swprintf( atStr, gzIMPMajorTraitsHelpTextsRanger[4], ( gSkillTraitValues.ubRAAimClicksAdded * (fExpertLevel ? 2 : 1)));
|
||||
else
|
||||
swprintf( atStr, gzIMPMajorTraitsHelpTextsRanger[5], ( gSkillTraitValues.ubRAAimClicksAdded * (fExpertLevel ? 2 : 1)));
|
||||
|
||||
wcscat( apStr, atStr );
|
||||
}
|
||||
if( gSkillTraitValues.ubRAGroupTimeSpentForTravellingFoot != 0 )
|
||||
{
|
||||
swprintf( atStr, gzIMPMajorTraitsHelpTextsRanger[4], ( gSkillTraitValues.ubRAGroupTimeSpentForTravellingFoot * (fExpertLevel ? 2 : 1)), L"%");
|
||||
swprintf( atStr, gzIMPMajorTraitsHelpTextsRanger[6], ( gSkillTraitValues.ubRAGroupTimeSpentForTravellingFoot * (fExpertLevel ? 2 : 1)), L"%");
|
||||
wcscat( apStr, atStr );
|
||||
}
|
||||
if( gSkillTraitValues.ubRAGroupTimeSpentForTravellingVehicle != 0 )
|
||||
{
|
||||
swprintf( atStr, gzIMPMajorTraitsHelpTextsRanger[5], ( gSkillTraitValues.ubRAGroupTimeSpentForTravellingVehicle * (fExpertLevel ? 2 : 1)), L"%");
|
||||
swprintf( atStr, gzIMPMajorTraitsHelpTextsRanger[7], ( gSkillTraitValues.ubRAGroupTimeSpentForTravellingVehicle * (fExpertLevel ? 2 : 1)), L"%");
|
||||
wcscat( apStr, atStr );
|
||||
}
|
||||
if( gSkillTraitValues.ubRABreathForTravellingReduction != 0 )
|
||||
{
|
||||
swprintf( atStr, gzIMPMajorTraitsHelpTextsRanger[6], ( gSkillTraitValues.ubRABreathForTravellingReduction * (fExpertLevel ? 2 : 1)), L"%");
|
||||
swprintf( atStr, gzIMPMajorTraitsHelpTextsRanger[8], ( gSkillTraitValues.ubRABreathForTravellingReduction * (fExpertLevel ? 2 : 1)), L"%");
|
||||
wcscat( apStr, atStr );
|
||||
}
|
||||
if( gSkillTraitValues.ubRAWeatherPenaltiesReduction != 0 )
|
||||
{
|
||||
swprintf( atStr, gzIMPMajorTraitsHelpTextsRanger[7], ( gSkillTraitValues.ubRAWeatherPenaltiesReduction * (fExpertLevel ? 2 : 1)), L"%");
|
||||
swprintf( atStr, gzIMPMajorTraitsHelpTextsRanger[9], ( gSkillTraitValues.ubRAWeatherPenaltiesReduction * (fExpertLevel ? 2 : 1)), L"%");
|
||||
wcscat( apStr, atStr );
|
||||
}
|
||||
//if( gSkillTraitValues.ubRACamoEffectivenessBonus != 0 )
|
||||
//{
|
||||
// swprintf( atStr, gzIMPMajorTraitsHelpTextsRanger[8], ( gSkillTraitValues.ubRACamoEffectivenessBonus * (fExpertLevel ? 2 : 1)), L"%");
|
||||
// swprintf( atStr, gzIMPMajorTraitsHelpTextsRanger[10], ( gSkillTraitValues.ubRACamoEffectivenessBonus * (fExpertLevel ? 2 : 1)), L"%");
|
||||
// wcscat( apStr, atStr );
|
||||
//}
|
||||
if( gSkillTraitValues.ubRACamoWornountSpeedReduction != 0 )
|
||||
{
|
||||
swprintf( atStr, gzIMPMajorTraitsHelpTextsRanger[9], ( gSkillTraitValues.ubRACamoWornountSpeedReduction * (fExpertLevel ? 2 : 1)), L"%");
|
||||
swprintf( atStr, gzIMPMajorTraitsHelpTextsRanger[11], ( gSkillTraitValues.ubRACamoWornountSpeedReduction * (fExpertLevel ? 2 : 1)), L"%");
|
||||
wcscat( apStr, atStr );
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -353,6 +353,7 @@ enum Facts
|
||||
FACT_PLAYER_STOLE_MEDICAL_SUPPLIES_AGAIN,// 151
|
||||
FACT_VINCE_RECRUITABLE,// 152
|
||||
|
||||
FACT_SLAY_OFFERED_DEAL = 155,
|
||||
FACT_ALL_TERRORISTS_KILLED = 156,
|
||||
FACT_ELGIN_ALIVE,// 157
|
||||
|
||||
|
||||
+26
-3
@@ -10321,9 +10321,11 @@ INT32 GetAimLevelsTraitModifier( SOLDIERTYPE *pSoldier, OBJECTTYPE *pObj )
|
||||
if( gGameOptions.fNewTraitSystem )
|
||||
{
|
||||
if ( Weapon[Item[pObj->usItem].ubClassIndex].ubWeaponType == GUN_PISTOL || Weapon[Item[pObj->usItem].ubClassIndex].ubWeaponType == GUN_M_PISTOL )
|
||||
ubSkillModifier -= NUM_SKILL_TRAITS( pSoldier, GUNSLINGER_NT );
|
||||
ubSkillModifier -= gSkillTraitValues.ubGSAimClicksAdded * NUM_SKILL_TRAITS( pSoldier, GUNSLINGER_NT );
|
||||
else if ( Weapon[Item[pObj->usItem].ubClassIndex].ubWeaponType == GUN_SHOTGUN )
|
||||
ubSkillModifier -= gSkillTraitValues.ubRAAimClicksAdded * NUM_SKILL_TRAITS( pSoldier, RANGER_NT );
|
||||
else
|
||||
ubSkillModifier -= NUM_SKILL_TRAITS( pSoldier, SNIPER_NT );
|
||||
ubSkillModifier -= gSkillTraitValues.ubSNAimClicksAdded * NUM_SKILL_TRAITS( pSoldier, SNIPER_NT );
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -13056,7 +13058,21 @@ UINT8 AllowedAimingLevels(SOLDIERTYPE * pSoldier, INT32 sGridNo)
|
||||
aimLevels = 1;
|
||||
maxAimWithoutBipod = 2;
|
||||
}
|
||||
else if (weaponType == GUN_SHOTGUN || weaponType == GUN_LMG || (weaponType == GUN_SMG && fTwoHanded == 1))
|
||||
else if (weaponType == GUN_SHOTGUN)
|
||||
{
|
||||
maxAimForType = 3;
|
||||
aimLevels = 2;
|
||||
maxAimWithoutBipod = 3;
|
||||
|
||||
// silversurfer added this - STOMP traits - Ranger bonus aim clicks
|
||||
if ( gGameOptions.fNewTraitSystem && HAS_SKILL_TRAIT( pSoldier, RANGER_NT ) )
|
||||
{
|
||||
maxAimForType += (gSkillTraitValues.ubRAAimClicksAdded * NUM_SKILL_TRAITS( pSoldier, RANGER_NT ));
|
||||
aimLevels += (gSkillTraitValues.ubRAAimClicksAdded * NUM_SKILL_TRAITS( pSoldier, RANGER_NT ));
|
||||
maxAimWithoutBipod += (gSkillTraitValues.ubRAAimClicksAdded * NUM_SKILL_TRAITS( pSoldier, RANGER_NT ));
|
||||
}
|
||||
}
|
||||
else if (weaponType == GUN_LMG || (weaponType == GUN_SMG && fTwoHanded == 1))
|
||||
{
|
||||
maxAimForType = 3;
|
||||
aimLevels = 2;
|
||||
@@ -13246,6 +13262,13 @@ UINT8 AllowedAimingLevels(SOLDIERTYPE * pSoldier, INT32 sGridNo)
|
||||
aimLevels += (gSkillTraitValues.ubGSAimClicksAdded * NUM_SKILL_TRAITS( pSoldier, GUNSLINGER_NT ));
|
||||
}
|
||||
|
||||
// silversurfer added this - STOMP traits - Ranger bonus aim clicks
|
||||
if ( weaponType == GUN_SHOTGUN &&
|
||||
gGameOptions.fNewTraitSystem && HAS_SKILL_TRAIT( pSoldier, RANGER_NT ) )
|
||||
{
|
||||
aimLevels += (gSkillTraitValues.ubRAAimClicksAdded * NUM_SKILL_TRAITS( pSoldier, RANGER_NT ));
|
||||
}
|
||||
|
||||
// SANDRO - if using alternative weapon holding, we reduce the aim levels available
|
||||
if ( pSoldier->bScopeMode == USE_ALT_WEAPON_HOLD && gGameExternalOptions.fScopeModes )
|
||||
{
|
||||
|
||||
@@ -146,6 +146,8 @@ STR16 gzIMPMajorTraitsHelpTextsRanger[]=
|
||||
L"霰弹枪命中率 +%d%s\n",// L"+%d%s Chance to Hit with Shotguns\n",
|
||||
L"泵动式霰弹上膛所需行动点 -%d%s \n",// L"-%d%s APs needed to pump Shotguns\n",
|
||||
L"-%d%s APs to fire Shotguns\n", //TODO.Translate
|
||||
L"Adds %d more aim click for Shotguns\n", //TODO.Translate
|
||||
L"Adds %d more aim clicks for Shotguns\n", //TODO.Translate
|
||||
L"队伍在区域间步行移动的速度 +%d%s\n",// L"+%d%s group travelling speed between sectors if traveling by foot\n",
|
||||
L"队伍在区域间乘车移动的速度 +%d%s\n",// L"+%d%s group travelling speed between sectors if traveling in vehicle (except helicopter)\n",
|
||||
L"区域间移动时体力消耗 -%d%s\n",// L"-%d%s less energy spent for travelling between sectors\n",
|
||||
|
||||
@@ -146,6 +146,8 @@ STR16 gzIMPMajorTraitsHelpTextsRanger[]=
|
||||
L"+%d%s CtH with Shotguns\n",
|
||||
L"-%d%s APs needed to pump Shotguns\n",
|
||||
L"-%d%s APs to fire Shotguns\n",
|
||||
L"Adds %d more aim click for Shotguns\n",
|
||||
L"Adds %d more aim clicks for Shotguns\n",
|
||||
L"+%d%s group traveling speed between sectors if traveling by foot\n",
|
||||
L"+%d%s group traveling speed between sectors if traveling in vehicle (except helicopter)\n",
|
||||
L"-%d%s less energy spent for travelling between sectors\n",
|
||||
|
||||
@@ -146,6 +146,8 @@ STR16 gzIMPMajorTraitsHelpTextsRanger[]=
|
||||
L"+%d%s CtH with Shotguns\n",
|
||||
L"-%d%s APs needed to pump Shotguns\n",
|
||||
L"-%d%s APs to fire Shotguns\n",
|
||||
L"Adds %d more aim click for Shotguns\n",
|
||||
L"Adds %d more aim clicks for Shotguns\n",
|
||||
L"+%d%s group traveling speed between sectors if traveling by foot\n",
|
||||
L"+%d%s group traveling speed between sectors if traveling in vehicle (except helicopter)\n",
|
||||
L"-%d%s less energy spent for travelling between sectors\n",
|
||||
|
||||
@@ -147,6 +147,8 @@ STR16 gzIMPMajorTraitsHelpTextsRanger[]=
|
||||
L"+%d%s de chance de toucher avec un fusil à pompe\n",
|
||||
L"-%d%s du nombre de PA nécessaire pour recharger le fusil à pompe\n",
|
||||
L"-%d%s APs to fire Shotguns\n", //TODO.Translate
|
||||
L"Adds %d more aim click for Shotguns\n", //TODO.Translate
|
||||
L"Adds %d more aim clicks for Shotguns\n", //TODO.Translate
|
||||
L"+%d%s de vitesse de déplacement du groupe entre les secteurs si ils sont à pieds\n",
|
||||
L"+%d%s de vitesse de déplacement du groupe entre les secteurs si ils sont dans un véhicule (excepté l'hélicopter)\n",
|
||||
L"-%d%s d'énergies nécessaire pour traverser les secteurs\n",
|
||||
|
||||
@@ -144,6 +144,8 @@ STR16 gzIMPMajorTraitsHelpTextsRanger[]=
|
||||
L"+%d%s Trefferchance mit Schrotflinten\n",
|
||||
L"-%d%s APs benötigt um Schrotflinten zu repetieren\n",
|
||||
L"-%d%s APs benötigt um Schrotflinten abzufeuern\n",
|
||||
L"Gibt Schrotflinten einen weiteren Zielklick\n",
|
||||
L"%d weitere Zielklicks für Schrotflinten\n",
|
||||
L"+%d%s Marschgeschwindigkeit der Gruppe zwischen Sektoren zu Fuß\n",
|
||||
L"+%d%s Marschgeschwindigkeit der Gruppe zwischen Sektoren bei Benutzung von Fahrzeugen (außer dem Helikopter)\n",
|
||||
L"-%d%s weniger Energieverlust beim Reisen zwischen Sektoren\n",
|
||||
|
||||
@@ -144,6 +144,8 @@ STR16 gzIMPMajorTraitsHelpTextsRanger[]=
|
||||
L"+%d%s CtH with Shotguns\n",
|
||||
L"-%d%s APs needed to pump Shotguns\n",
|
||||
L"-%d%s APs to fire Shotguns\n",
|
||||
L"Adds %d more aim click for Shotguns\n",
|
||||
L"Adds %d more aim clicks for Shotguns\n",
|
||||
L"+%d%s group traveling speed between sectors if traveling by foot\n",
|
||||
L"+%d%s group traveling speed between sectors if traveling in vehicle (except helicopter)\n",
|
||||
L"-%d%s less energy spent for travelling between sectors\n",
|
||||
|
||||
@@ -146,6 +146,8 @@ STR16 gzIMPMajorTraitsHelpTextsRanger[]=
|
||||
L"+%d%s CtH with Shotguns\n",
|
||||
L"-%d%s APs needed to pump Shotguns\n",
|
||||
L"-%d%s APs to fire Shotguns\n",
|
||||
L"Adds %d more aim click for Shotguns\n",
|
||||
L"Adds %d more aim clicks for Shotguns\n",
|
||||
L"+%d%s group traveling speed between sectors if traveling by foot\n",
|
||||
L"+%d%s group traveling speed between sectors if traveling in vehicle (except helicopter)\n",
|
||||
L"-%d%s less energy spent for travelling between sectors\n",
|
||||
|
||||
@@ -146,6 +146,8 @@ STR16 gzIMPMajorTraitsHelpTextsRanger[]=
|
||||
L"+%d%s к шансу поразить из ружья\n",
|
||||
L"-%d%s ОД на перезарядку ружья\n",
|
||||
L"-%d%s APs to fire Shotguns\n", //TODO.Translate
|
||||
L"Adds %d more aim click for Shotguns\n", //TODO.Translate
|
||||
L"Adds %d more aim clicks for Shotguns\n", //TODO.Translate
|
||||
L"+%d%s к скорости передвижения группы между секторами, если идти пешком\n",
|
||||
L"+%d%s к скорости передвижения группы между секторами, \nесли передвигаться на транспорте (в особенности на вертолёте)\n",
|
||||
L"-%d%s к затрате энергии при переходе между секторами\n", //меньше тратит сил
|
||||
|
||||
@@ -147,6 +147,8 @@ STR16 gzIMPMajorTraitsHelpTextsRanger[]=
|
||||
L"+%d%s CtH with Shotguns\n",
|
||||
L"-%d%s APs needed to pump Shotguns\n",
|
||||
L"-%d%s APs to fire Shotguns\n",
|
||||
L"Adds %d more aim click for Shotguns\n",
|
||||
L"Adds %d more aim clicks for Shotguns\n",
|
||||
L"+%d%s group traveling speed between sectors if traveling by foot\n",
|
||||
L"+%d%s group traveling speed between sectors if traveling in vehicle (except helicopter)\n",
|
||||
L"-%d%s less energy spent for travelling between sectors\n",
|
||||
|
||||
Reference in New Issue
Block a user