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:
silversurfer
2013-09-29 16:03:35 +00:00
parent 5fc1ab95a1
commit 2169fbd6a9
15 changed files with 77 additions and 15 deletions
+1
View File
@@ -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);
+1
View File
@@ -1387,6 +1387,7 @@ typedef struct
//UINT8 ubRACamoEffectivenessBonus;
UINT8 ubRACamoWornountSpeedReduction;
UINT8 ubRAFiringSpeedBonusShotguns;
UINT8 ubRAAimClicksAdded;
// GUNSLINGER
UINT8 ubGSFiringSpeedBonusPistols;
+15 -6
View File
@@ -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
View File
@@ -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;
+1
View File
@@ -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
View File
@@ -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 )
{
+2
View File
@@ -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",
+2
View File
@@ -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",
+2
View File
@@ -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",
+2
View File
@@ -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",
+2
View File
@@ -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",
+2
View File
@@ -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",
+2
View File
@@ -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",
+2
View File
@@ -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", //меньше тратит сил
+2
View File
@@ -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",