Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions GameSettings.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2785,6 +2785,9 @@ void LoadSkillTraitsExternalSettings()
gSkillTraitValues.ubTHBladesSilentCriticalHitChance = iniReader.ReadInteger("Throwing","TH_BLADES_SILENT_CRITICAL_HIT_CHANCE", 20, 0, 100);
gSkillTraitValues.ubTHBladesCriticalHitMultiplierBonus = iniReader.ReadInteger("Throwing","SILENT_CRITICAL_HIT_MULTIPLIER_BONUS", 1, 0, 50);
gSkillTraitValues.ubTHBladesAimClicksAdded = iniReader.ReadInteger("Throwing","POSSIBLE_AIM_CLICK_ADDED_TH_KNIVES", 1, 0, 5);
gSkillTraitValues.ubTHAPsNeededToThrowGrenadesReduction = iniReader.ReadInteger("Throwing","APS_NEEDED_TO_THROW_GRENADES_REDUCTION", 25, 0, 90);
gSkillTraitValues.ubTHMaxRangeToThrowGrenades = iniReader.ReadInteger("Throwing","MAX_RANGE_TO_THROW_GRENADES", 20, 0, 250);
gSkillTraitValues.ubTHCtHWhenThrowingGrenades = iniReader.ReadInteger("Throwing","CTH_WHEN_THROWING_GRENADES", 30, 0, 100);

// NIGHT OPS
gSkillTraitValues.ubNOeSightRangeBonusInDark = iniReader.ReadInteger("Night Ops","SIGHT_RANGE_BONUS_IN_DARK", 1, 0, 100);
Expand All @@ -2811,9 +2814,6 @@ void LoadSkillTraitsExternalSettings()
gSkillTraitValues.usBBIncreasedNeededDamageToFallDown = iniReader.ReadInteger("Bodybuilding","INCREASE_DAMAGE_NEEDED_TO_FALL_DOWN_IF_HIT_TO_LEGS", 100, 0, 500);

// DEMOLITIONS
gSkillTraitValues.ubDEAPsNeededToThrowGrenadesReduction = iniReader.ReadInteger("Demolitions","APS_NEEDED_TO_THROW_GRENADES_REDUCTION", 25, 0, 90);
gSkillTraitValues.ubDEMaxRangeToThrowGrenades = iniReader.ReadInteger("Demolitions","MAX_RANGE_TO_THROW_GRENADES", 20, 0, 250);
gSkillTraitValues.ubDECtHWhenThrowingGrenades = iniReader.ReadInteger("Demolitions","CTH_WHEN_THROWING_GRENADES", 30, 0, 100);
gSkillTraitValues.ubDEDamageOfBombsAndMines = iniReader.ReadInteger("Demolitions","DAMAGE_OF_PLACED_BOMBS_AND_MINES", 25, 0, 250);
gSkillTraitValues.ubDEAttachDetonatorCheckBonus = iniReader.ReadInteger("Demolitions","ATTACH_DETONATOR_CHECK_BONUS", 50, 0, 250);
gSkillTraitValues.ubDEPlantAndRemoveBombCheckBonus = iniReader.ReadInteger("Demolitions","PLANT_AND_REMOVE_BOMBS_AND_MINES_BONUS", 50, 0, 250);
Expand Down
6 changes: 3 additions & 3 deletions GameSettings.h
Original file line number Diff line number Diff line change
Expand Up @@ -2177,6 +2177,9 @@ typedef struct
UINT8 ubTHBladesSilentCriticalHitChance;
UINT8 ubTHBladesCriticalHitMultiplierBonus;
UINT8 ubTHBladesAimClicksAdded;
UINT8 ubTHAPsNeededToThrowGrenadesReduction;
UINT8 ubTHMaxRangeToThrowGrenades;
UINT8 ubTHCtHWhenThrowingGrenades;

// NIGHT OPS
UINT8 ubNOeSightRangeBonusInDark;
Expand All @@ -2203,9 +2206,6 @@ typedef struct
UINT16 usBBIncreasedNeededDamageToFallDown;

// DEMOLITIONS
UINT8 ubDEAPsNeededToThrowGrenadesReduction;
UINT8 ubDEMaxRangeToThrowGrenades;
UINT8 ubDECtHWhenThrowingGrenades;
UINT8 ubDEDamageOfBombsAndMines;
UINT8 ubDEAttachDetonatorCheckBonus;
UINT8 ubDEPlantAndRemoveBombCheckBonus;
Expand Down
40 changes: 20 additions & 20 deletions Laptop/personnel.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -8165,6 +8165,21 @@ void AssignPersonnelSkillTraitHelpText( UINT8 ubTraitNumber, BOOLEAN fExpertLeve

wcscat( apStr, atStr );
}
if( gSkillTraitValues.ubTHAPsNeededToThrowGrenadesReduction != 0 )
{
swprintf( atStr, gzIMPMinorTraitsHelpTextsThrowing[10], gSkillTraitValues.ubTHAPsNeededToThrowGrenadesReduction, sSpecialCharacters[0]);
wcscat( apStr, atStr );
}
if( gSkillTraitValues.ubTHMaxRangeToThrowGrenades != 0 )
{
swprintf( atStr, gzIMPMinorTraitsHelpTextsThrowing[11], gSkillTraitValues.ubTHMaxRangeToThrowGrenades, sSpecialCharacters[0]);
wcscat( apStr, atStr );
}
if( gSkillTraitValues.ubTHCtHWhenThrowingGrenades != 0 )
{
swprintf( atStr, gzIMPMinorTraitsHelpTextsThrowing[12], gSkillTraitValues.ubTHCtHWhenThrowingGrenades, sSpecialCharacters[0]);
wcscat( apStr, atStr );
}
break;
}
case NIGHT_OPS_NT:
Expand Down Expand Up @@ -8270,44 +8285,29 @@ void AssignPersonnelSkillTraitHelpText( UINT8 ubTraitNumber, BOOLEAN fExpertLeve
case DEMOLITIONS_NT:
{
swprintf( apStr, L"" );
if( gSkillTraitValues.ubDEAPsNeededToThrowGrenadesReduction != 0 )
{
swprintf( atStr, gzIMPMinorTraitsHelpTextsDemolitions[0], gSkillTraitValues.ubDEAPsNeededToThrowGrenadesReduction, sSpecialCharacters[0]);
wcscat( apStr, atStr );
}
if( gSkillTraitValues.ubDEMaxRangeToThrowGrenades != 0 )
{
swprintf( atStr, gzIMPMinorTraitsHelpTextsDemolitions[1], gSkillTraitValues.ubDEMaxRangeToThrowGrenades, sSpecialCharacters[0]);
wcscat( apStr, atStr );
}
if( gSkillTraitValues.ubDECtHWhenThrowingGrenades != 0 )
{
swprintf( atStr, gzIMPMinorTraitsHelpTextsDemolitions[2], gSkillTraitValues.ubDECtHWhenThrowingGrenades, sSpecialCharacters[0]);
wcscat( apStr, atStr );
}
if( gSkillTraitValues.ubDEDamageOfBombsAndMines != 0 )
{
swprintf( atStr, gzIMPMinorTraitsHelpTextsDemolitions[3], gSkillTraitValues.ubDEDamageOfBombsAndMines, sSpecialCharacters[0]);
swprintf( atStr, gzIMPMinorTraitsHelpTextsDemolitions[0], gSkillTraitValues.ubDEDamageOfBombsAndMines, sSpecialCharacters[0]);
wcscat( apStr, atStr );
}
if( gSkillTraitValues.ubDEAttachDetonatorCheckBonus != 0 )
{
swprintf( atStr, gzIMPMinorTraitsHelpTextsDemolitions[4], gSkillTraitValues.ubDEAttachDetonatorCheckBonus, sSpecialCharacters[0]);
swprintf( atStr, gzIMPMinorTraitsHelpTextsDemolitions[1], gSkillTraitValues.ubDEAttachDetonatorCheckBonus, sSpecialCharacters[0]);
wcscat( apStr, atStr );
}
if( gSkillTraitValues.ubDEPlantAndRemoveBombCheckBonus != 0 )
{
swprintf( atStr, gzIMPMinorTraitsHelpTextsDemolitions[5], gSkillTraitValues.ubDEPlantAndRemoveBombCheckBonus, sSpecialCharacters[0]);
swprintf( atStr, gzIMPMinorTraitsHelpTextsDemolitions[2], gSkillTraitValues.ubDEPlantAndRemoveBombCheckBonus, sSpecialCharacters[0]);
wcscat( apStr, atStr );
}
if( gSkillTraitValues.ubDEPlacedBombLevelBonus != 0 )
{
swprintf( atStr, gzIMPMinorTraitsHelpTextsDemolitions[6], gSkillTraitValues.ubDEPlacedBombLevelBonus);
swprintf( atStr, gzIMPMinorTraitsHelpTextsDemolitions[3], gSkillTraitValues.ubDEPlacedBombLevelBonus);
wcscat( apStr, atStr );
}
if( gSkillTraitValues.ubDEShapedChargeDamageMultiplier != 0 )
{
swprintf( atStr, gzIMPMinorTraitsHelpTextsDemolitions[7], gSkillTraitValues.ubDEShapedChargeDamageMultiplier);
swprintf( atStr, gzIMPMinorTraitsHelpTextsDemolitions[4], gSkillTraitValues.ubDEShapedChargeDamageMultiplier);
wcscat( apStr, atStr );
}
break;
Expand Down
4 changes: 2 additions & 2 deletions Tactical/Points.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -3640,11 +3640,11 @@ INT16 MinAPsToThrow( SOLDIERTYPE *pSoldier, INT32 sGridNo, UINT8 ubAddTurningCos
iAPCost += ( ( ( 100 * iTop ) / iBottom) + 1) / 2;

// SANDRO - STOMP traits - reduce APs needed to throw grenades if having Demolitions skill
if( HAS_SKILL_TRAIT( pSoldier, DEMOLITIONS_NT ) && gGameOptions.fNewTraitSystem )
if( HAS_SKILL_TRAIT( pSoldier, THROWING_NT ) && gGameOptions.fNewTraitSystem )
{
if ( grenadAPreductionpossible )
{
iAPCost = max( 1, (INT32)(iAPCost * (100 - gSkillTraitValues.ubDEAPsNeededToThrowGrenadesReduction) / 100));
iAPCost = max( 1, (INT32)(iAPCost * (100 - gSkillTraitValues.ubTHAPsNeededToThrowGrenadesReduction) / 100));
}
}

Expand Down
11 changes: 5 additions & 6 deletions Tactical/Weapons.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -10175,10 +10175,10 @@ INT32 CalcMaxTossRange( SOLDIERTYPE * pSoldier, UINT16 usItem, BOOLEAN fArmed, O
iRange += ((iRange * gSkillTraitValues.ubTHBladesMaxRange ) / 100);
}
// sevenfm: add range only for hand grenades and not launched grenades
else if ( (Item[ usItem ].usItemClass == IC_GRENADE) && Item[usItem].ubCursor == TOSSCURS && (HAS_SKILL_TRAIT( pSoldier, DEMOLITIONS_NT )) )
else if ( (Item[ usItem ].usItemClass == IC_GRENADE) && Item[usItem].ubCursor == TOSSCURS && HAS_SKILL_TRAIT( pSoldier, THROWING_NT ) )
{
// better max range due to expertise
iRange += ((iRange * gSkillTraitValues.ubDEMaxRangeToThrowGrenades) / 100);
iRange += ((iRange * gSkillTraitValues.ubTHMaxRangeToThrowGrenades) / 100);
}
}
else
Expand Down Expand Up @@ -10260,9 +10260,8 @@ UINT32 CalcThrownChanceToHit(SOLDIERTYPE *pSoldier, INT32 sGridNo, INT16 ubAimTi
else
{
iChance += gSkillTraitValues.bCtHModifierThrowingGrenades; // -10% for untrained mercs

if ( HAS_SKILL_TRAIT( pSoldier, DEMOLITIONS_NT ) )
iChance += gSkillTraitValues.ubDECtHWhenThrowingGrenades; // +30% chance
if ( HAS_SKILL_TRAIT( pSoldier, THROWING_NT ) )
iChance += gSkillTraitValues.ubTHCtHWhenThrowingGrenades;
}
}
else
Expand Down Expand Up @@ -12196,4 +12195,4 @@ BOOLEAN ArtilleryStrike( UINT16 usItem, UINT8 ubOwnerID, UINT32 usStartingGridNo
//REAL_OBJECT* pObject = &( ObjectSlots[ iID ] );

return TRUE;
}
}
6 changes: 3 additions & 3 deletions Utils/_Ja25ChineseText.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -310,6 +310,9 @@ STR16 gzIMPMinorTraitsHelpTextsThrowing[]=
L"飞刀致命一击的额外伤害倍率 +%d\n",// L"+%d critical hit by throwing blade multiplier\n",
L"飞刀的最大精瞄次数 +%d\n",// L"Adds %d more aim click for throwing blades\n",
L"飞刀的最大精瞄次数 +%d\n",// L"Adds %d more aim clicks for throwing blades\n",
L"投掷手榴弹所需行动点 -%d%s\n",// L"-%d%s APs needed to throw grenades\n",
L"手榴弹最远投掷距离 +%d%s\n",// L"+%d%s max range when throwing grenades\n",
L"手榴弹的命中率 +%d%s\n",// L"+%d%s chance to hit when throwing grenades\n",
};

STR16 gzIMPMinorTraitsHelpTextsNightOps[]=
Expand Down Expand Up @@ -346,9 +349,6 @@ STR16 gzIMPMinorTraitsHelpTextsBodybuilding[]=

STR16 gzIMPMinorTraitsHelpTextsDemolitions[]=
{
L"投掷手榴弹所需行动点 -%d%s\n",// L"-%d%s APs needed to throw grenades\n",
L"手榴弹最远投掷距离 +%d%s\n",// L"+%d%s max range when throwing grenades\n",
L"手榴弹的命中率 +%d%s\n",// L"+%d%s chance to hit when throwing grenades\n",
L"安置的炸弹和地雷的伤害 +%d%s\n",// L"+%d%s damage of set bombs and mines\n",
L"组合炸弹的成功率 +%d%s\n",// L"+%d%s to attaching detonators check\n",
L"安置/拆除炸弹成功率 +%d%s\n",// L"+%d%s to planting/removing bombs check\n",
Expand Down
6 changes: 3 additions & 3 deletions Utils/_Ja25DutchText.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -310,6 +310,9 @@ STR16 gzIMPMinorTraitsHelpTextsThrowing[]=
L"+%d critical hit with throwing blade multiplier\n",
L"Adds %d more aim click for throwing blades\n",
L"Adds %d more aim clicks for throwing blades\n",
L"-%d%s APs to throw grenades\n",
L"+%d%s max range when throwing grenades\n",
L"+%d%s CtH when throwing grenades\n",
};

STR16 gzIMPMinorTraitsHelpTextsNightOps[]=
Expand Down Expand Up @@ -346,9 +349,6 @@ STR16 gzIMPMinorTraitsHelpTextsBodybuilding[]=

STR16 gzIMPMinorTraitsHelpTextsDemolitions[]=
{
L"-%d%s APs to throw grenades\n",
L"+%d%s max range when throwing grenades\n",
L"+%d%s CtH when throwing grenades\n",
L"+%d%s damage for set bombs and mines\n",
L"+%d%s to attaching detonators check\n",
L"+%d%s to planting/removing bombs check\n",
Expand Down
6 changes: 3 additions & 3 deletions Utils/_Ja25EnglishText.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -310,6 +310,9 @@ STR16 gzIMPMinorTraitsHelpTextsThrowing[]=
L"+%d critical hit with throwing blade multiplier\n",
L"Adds %d more aim click for throwing blades\n",
L"Adds %d more aim clicks for throwing blades\n",
L"-%d%s APs to throw grenades\n",
L"+%d%s max range when throwing grenades\n",
L"+%d%s CtH when throwing grenades\n",
};

STR16 gzIMPMinorTraitsHelpTextsNightOps[]=
Expand Down Expand Up @@ -346,9 +349,6 @@ STR16 gzIMPMinorTraitsHelpTextsBodybuilding[]=

STR16 gzIMPMinorTraitsHelpTextsDemolitions[]=
{
L"-%d%s APs to throw grenades\n",
L"+%d%s max range when throwing grenades\n",
L"+%d%s CtH when throwing grenades\n",
L"+%d%s damage for set bombs and mines\n",
L"+%d%s to attaching detonators check\n",
L"+%d%s to planting/removing bombs check\n",
Expand Down
6 changes: 3 additions & 3 deletions Utils/_Ja25FrenchText.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -309,6 +309,9 @@ STR16 gzIMPMinorTraitsHelpTextsThrowing[]=
L"+%d de dégâts critiques, si vous lancez plusieurs couteaux\n",
L"Ajoute %d niveau(x) de visée pour lancer un couteau\n",
L"Ajoute %d niveau(x) de visée pour lancer un couteau\n",
L"-%d%s du nombre de PA nécessaire pour lancer une grenade\n",
L"+%d%s de la portée maximale d'une grenade\n",
L"+%d%s de chance de toucher votre cible avec une grenade\n",

};
STR16 gzIMPMinorTraitsHelpTextsNightOps[]=
Expand Down Expand Up @@ -344,9 +347,6 @@ STR16 gzIMPMinorTraitsHelpTextsBodybuilding[]=
};
STR16 gzIMPMinorTraitsHelpTextsDemolitions[]=
{
L"-%d%s du nombre de PA nécessaire pour lancer une grenade\n",
L"+%d%s de la portée maximale d'une grenade\n",
L"+%d%s de chance de toucher votre cible avec une grenade\n",
L"+%d%s de dégâts causés par un explosif ou une mine\n",
L"+%d%s pour contrôler un détonateur\n",
L"+%d%s pour placer/retirer un contrôleur d'explosif\n",
Expand Down
6 changes: 3 additions & 3 deletions Utils/_Ja25GermanText.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -310,6 +310,9 @@ STR16 gzIMPMinorTraitsHelpTextsThrowing[]=
L"+%d Multiplikator für kritische Treffer durch Wurfwaffen\n",
L"Gibt einen weiteren Zielklick beim Einsatz von Wurfwaffen\n",
L"Gibt %d weitere Zielklicks beim Einsatz von Wurfwaffen\n",
L"-%d%s APs benötigt um Handgranaten (und ähnliche Objekte) zu werfen\n",
L"+%d%s höhere Reichweite beim Werfen von Handgranaten (und ähnliche Objekten)\n",
L"+%d%s höhere Trefferwahrscheinlichkeit beim Werfen von Handgranaten (und ähnlichen Objekten)\n",
};

STR16 gzIMPMinorTraitsHelpTextsNightOps[]=
Expand Down Expand Up @@ -346,9 +349,6 @@ STR16 gzIMPMinorTraitsHelpTextsBodybuilding[]=

STR16 gzIMPMinorTraitsHelpTextsDemolitions[]=
{
L"-%d%s APs benötigt um Handgranaten (und ähnliche Objekte) zu werfen\n",
L"+%d%s höhere Reichweite beim Werfen von Handgranaten (und ähnliche Objekten)\n",
L"+%d%s höhere Trefferwahrscheinlichkeit beim Werfen von Handgranaten (und ähnlichen Objekten)\n",
L"+%d%s höherer Schaden für gelegte Bomben und Minen\n",
L"+%d%s mehr Erfolg beim Anbringen von Zündern\n",
L"+%d%s mehr Erfolg beim Legen und Entschärfen von Bomben\n",
Expand Down
6 changes: 3 additions & 3 deletions Utils/_Ja25ItalianText.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -308,6 +308,9 @@ STR16 gzIMPMinorTraitsHelpTextsThrowing[]=
L"+%d critical hit with throwing blade multiplier\n",
L"Adds %d more aim click for throwing blades\n",
L"Adds %d more aim clicks for throwing blades\n",
L"-%d%s APs to throw grenades\n",
L"+%d%s max range when throwing grenades\n",
L"+%d%s CtH when throwing grenades\n",
};

STR16 gzIMPMinorTraitsHelpTextsNightOps[]=
Expand Down Expand Up @@ -344,9 +347,6 @@ STR16 gzIMPMinorTraitsHelpTextsBodybuilding[]=

STR16 gzIMPMinorTraitsHelpTextsDemolitions[]=
{
L"-%d%s APs to throw grenades\n",
L"+%d%s max range when throwing grenades\n",
L"+%d%s CtH when throwing grenades\n",
L"+%d%s damage for set bombs and mines\n",
L"+%d%s to attaching detonators check\n",
L"+%d%s to planting/removing bombs check\n",
Expand Down
6 changes: 3 additions & 3 deletions Utils/_Ja25PolishText.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -310,6 +310,9 @@ STR16 gzIMPMinorTraitsHelpTextsThrowing[]=
L"+%d critical hit with throwing blade multiplier\n",
L"Adds %d more aim click for throwing blades\n",
L"Adds %d more aim clicks for throwing blades\n",
L"-%d%s APs to throw grenades\n",
L"+%d%s max range when throwing grenades\n",
L"+%d%s CtH when throwing grenades\n",
};

STR16 gzIMPMinorTraitsHelpTextsNightOps[]=
Expand Down Expand Up @@ -346,9 +349,6 @@ STR16 gzIMPMinorTraitsHelpTextsBodybuilding[]=

STR16 gzIMPMinorTraitsHelpTextsDemolitions[]=
{
L"-%d%s APs to throw grenades\n",
L"+%d%s max range when throwing grenades\n",
L"+%d%s CtH when throwing grenades\n",
L"+%d%s damage for set bombs and mines\n",
L"+%d%s to attaching detonators check\n",
L"+%d%s to planting/removing bombs check\n",
Expand Down
6 changes: 3 additions & 3 deletions Utils/_Ja25RussianText.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -310,6 +310,9 @@ STR16 gzIMPMinorTraitsHelpTextsThrowing[]=
L"+%d к множителю критического урона при броске ножа\n",
L"+%d клик прицеливания для метательных ножей\n",
L"+%d кликов прицеливания для метательных ножей\n",
L"-%d%s ОД для броска гранаты\n",
L"+%d%s к максимальной дальности броска гранаты\n",
L"+%d%s к точности броска гранаты\n",
};

STR16 gzIMPMinorTraitsHelpTextsNightOps[]=
Expand Down Expand Up @@ -346,9 +349,6 @@ STR16 gzIMPMinorTraitsHelpTextsBodybuilding[]=

STR16 gzIMPMinorTraitsHelpTextsDemolitions[]=
{
L"-%d%s ОД для броска гранаты\n",
L"+%d%s к максимальной дальности броска гранаты\n",
L"+%d%s к точности броска гранаты\n",
L"+%d%s к урону для установленных бомб и мин\n",
L"+%d%s к умению устанавливать детонатор\n",
L"+%d%s к установке/разминированию бомб\n",
Expand Down