message: Add some combat debugging for Greater Weapon feats as well as Good Aim feat
diff: @@ -852,6 +852,26 @@ int32_t Weapon::GetDamageBonus(CNWSCreatureStats* pStats, CNWSCreature *pCreatur
  if (bApplicableFeatExists && bHasApplicableFeat)
  {
  nBonus += plugin.m_GreaterWeaponSpecializationDamageBonus;
  +
  + if (*Globals::EnableCombatDebugging() && pStats->m_bIsPC)
  + {
  + auto sDebugMsg = CExoString(" + ");
  + auto *pCurrentAttack = pStats->m_pBaseCreature->m_pcCombatRound->GetAttack(pStats->m_pBaseCreature->m_pcCombatRound->m_nCurrentAttack);
  + if (pCurrentAttack->m_nAttackResult == 3)
  + {
  + auto nCriticalThreat = pStats->GetCriticalHitMultiplier(true);
  + sDebugMsg = sDebugMsg + CExoString(std::to_string(plugin.m_GreaterWeaponSpecializationDamageBonus * nCriticalThreat)) +
  + CExoString(" (Greater Weapon Specialization Feat) (Critical x") +
  + CExoString(std::to_string(nCriticalThreat)) + CExoString(")");
  + }
  + else
  + {
  + sDebugMsg = sDebugMsg + CExoString(std::to_string(plugin.m_GreaterWeaponSpecializationDamageBonus)) +
  + CExoString(" (Greater Weapon Specialization Feat) ");
  + }
  + auto sDamageDebugText = pCurrentAttack->m_sDamageDebugText;
  + pCurrentAttack->m_sDamageDebugText = pCurrentAttack->m_sDamageDebugText + sDebugMsg;
  + }
  }
  return nBonus;
  @@ -945,11 +965,29 @@ int32_t Weapon::GetAttackModifierVersus(CNWSCreatureStats* pStats, CNWSCreature*
  if (bApplicableFeatExists && bHasApplicableFeat)
  {
  nMod += plugin.m_GreaterFocusAttackBonus;
  +
  + if (*Globals::EnableCombatDebugging() && pStats->m_bIsPC)
  + {
  + auto sDebugMsg = CExoString(" + ") +
  + CExoString(std::to_string(plugin.m_GreaterFocusAttackBonus)) +
  + CExoString(" (Greater Weapon Focus Feat)") ;
  + auto *pCurrentAttack = pStats->m_pBaseCreature->m_pcCombatRound->GetAttack(pStats->m_pBaseCreature->m_pcCombatRound->m_nCurrentAttack);
  + pCurrentAttack->m_sAttackDebugText = pCurrentAttack->m_sAttackDebugText + sDebugMsg;
  + }
  }
  if(plugin.m_GASling && nBaseItem == Constants::BaseItem::Sling && pStats->m_nRace != Constants::RacialType::Halfling && pStats->HasFeat(Constants::Feat::GoodAim))
  {
  nMod += Globals::Rules()->GetRulesetIntEntry("GOOD_AIM_MODIFIER", 1);
  +
  + if (*Globals::EnableCombatDebugging() && pStats->m_bIsPC)
  + {
  + auto sDebugMsg = CExoString(" + ") +
  + CExoString(std::to_string(Globals::Rules()->GetRulesetIntEntry("GOOD_AIM_MODIFIER", 1))) +
  + CExoString(" (Good Aim Feat)") ;
  + auto *pCurrentAttack = pStats->m_pBaseCreature->m_pcCombatRound->GetAttack(pStats->m_pBaseCreature->m_pcCombatRound->m_nCurrentAttack);
  + pCurrentAttack->m_sAttackDebugText = pCurrentAttack->m_sAttackDebugText + sDebugMsg;
  + }
  }
  return nMod;
  