From b91871b518af86c4b0c231495f6edebf2c55b1a8 Mon Sep 17 00:00:00 2001 From: rftrdev <102184004+rftrdev@users.noreply.github.com> Date: Fri, 11 Aug 2023 11:27:29 -0700 Subject: [PATCH] Move grenade bonuses from Demolitions to Throwing (#202) * Copy grenade settings from demolitions to throwing * Fix setting strings * Add throwing bonuses to the same spots as demolitions * Delete grenade bonuses from Demolitions * Update text * Reapply throwing check --- GameSettings.cpp | 6 +++--- GameSettings.h | 6 +++--- Laptop/personnel.cpp | 40 +++++++++++++++++++------------------- Tactical/Points.cpp | 4 ++-- Tactical/Weapons.cpp | 11 +++++------ Utils/_Ja25ChineseText.cpp | 6 +++--- Utils/_Ja25DutchText.cpp | 6 +++--- Utils/_Ja25EnglishText.cpp | 6 +++--- Utils/_Ja25FrenchText.cpp | 6 +++--- Utils/_Ja25GermanText.cpp | 6 +++--- Utils/_Ja25ItalianText.cpp | 6 +++--- Utils/_Ja25PolishText.cpp | 6 +++--- Utils/_Ja25RussianText.cpp | 6 +++--- 13 files changed, 57 insertions(+), 58 deletions(-) diff --git a/GameSettings.cpp b/GameSettings.cpp index 28bf11512..3263243bc 100644 --- a/GameSettings.cpp +++ b/GameSettings.cpp @@ -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); @@ -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); diff --git a/GameSettings.h b/GameSettings.h index 735538f3b..207fa3daf 100644 --- a/GameSettings.h +++ b/GameSettings.h @@ -2177,6 +2177,9 @@ typedef struct UINT8 ubTHBladesSilentCriticalHitChance; UINT8 ubTHBladesCriticalHitMultiplierBonus; UINT8 ubTHBladesAimClicksAdded; + UINT8 ubTHAPsNeededToThrowGrenadesReduction; + UINT8 ubTHMaxRangeToThrowGrenades; + UINT8 ubTHCtHWhenThrowingGrenades; // NIGHT OPS UINT8 ubNOeSightRangeBonusInDark; @@ -2203,9 +2206,6 @@ typedef struct UINT16 usBBIncreasedNeededDamageToFallDown; // DEMOLITIONS - UINT8 ubDEAPsNeededToThrowGrenadesReduction; - UINT8 ubDEMaxRangeToThrowGrenades; - UINT8 ubDECtHWhenThrowingGrenades; UINT8 ubDEDamageOfBombsAndMines; UINT8 ubDEAttachDetonatorCheckBonus; UINT8 ubDEPlantAndRemoveBombCheckBonus; diff --git a/Laptop/personnel.cpp b/Laptop/personnel.cpp index e2576e335..935b5cf00 100644 --- a/Laptop/personnel.cpp +++ b/Laptop/personnel.cpp @@ -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: @@ -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; diff --git a/Tactical/Points.cpp b/Tactical/Points.cpp index 020d8df1e..f16aacc88 100644 --- a/Tactical/Points.cpp +++ b/Tactical/Points.cpp @@ -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)); } } diff --git a/Tactical/Weapons.cpp b/Tactical/Weapons.cpp index b635debed..55acbf88a 100644 --- a/Tactical/Weapons.cpp +++ b/Tactical/Weapons.cpp @@ -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 @@ -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 @@ -12196,4 +12195,4 @@ BOOLEAN ArtilleryStrike( UINT16 usItem, UINT8 ubOwnerID, UINT32 usStartingGridNo //REAL_OBJECT* pObject = &( ObjectSlots[ iID ] ); return TRUE; -} \ No newline at end of file +} diff --git a/Utils/_Ja25ChineseText.cpp b/Utils/_Ja25ChineseText.cpp index 1a6feedd4..919f2d14e 100644 --- a/Utils/_Ja25ChineseText.cpp +++ b/Utils/_Ja25ChineseText.cpp @@ -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[]= @@ -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", diff --git a/Utils/_Ja25DutchText.cpp b/Utils/_Ja25DutchText.cpp index 4548c46eb..a22348620 100644 --- a/Utils/_Ja25DutchText.cpp +++ b/Utils/_Ja25DutchText.cpp @@ -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[]= @@ -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", diff --git a/Utils/_Ja25EnglishText.cpp b/Utils/_Ja25EnglishText.cpp index 63eb232a5..b58a080d4 100644 --- a/Utils/_Ja25EnglishText.cpp +++ b/Utils/_Ja25EnglishText.cpp @@ -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[]= @@ -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", diff --git a/Utils/_Ja25FrenchText.cpp b/Utils/_Ja25FrenchText.cpp index 290158fcd..f20af04a0 100644 --- a/Utils/_Ja25FrenchText.cpp +++ b/Utils/_Ja25FrenchText.cpp @@ -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[]= @@ -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", diff --git a/Utils/_Ja25GermanText.cpp b/Utils/_Ja25GermanText.cpp index c1e9666e8..a19fa526a 100644 --- a/Utils/_Ja25GermanText.cpp +++ b/Utils/_Ja25GermanText.cpp @@ -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[]= @@ -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", diff --git a/Utils/_Ja25ItalianText.cpp b/Utils/_Ja25ItalianText.cpp index 5bd9c7900..4ffb9454f 100644 --- a/Utils/_Ja25ItalianText.cpp +++ b/Utils/_Ja25ItalianText.cpp @@ -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[]= @@ -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", diff --git a/Utils/_Ja25PolishText.cpp b/Utils/_Ja25PolishText.cpp index 506e37c1c..9446a5b21 100644 --- a/Utils/_Ja25PolishText.cpp +++ b/Utils/_Ja25PolishText.cpp @@ -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[]= @@ -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", diff --git a/Utils/_Ja25RussianText.cpp b/Utils/_Ja25RussianText.cpp index 022b1f59f..8ce7b35f7 100644 --- a/Utils/_Ja25RussianText.cpp +++ b/Utils/_Ja25RussianText.cpp @@ -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[]= @@ -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",