It works per 5e [one handed weapon with or without a shield] (versatile weapons not working per 5e is a different issue...)
new entry "FightingStyle_Dueling"
type "PassiveData"
data "DisplayName" "Shared_Passive_FightingStyle_Dueling_DisplayName"
data "Description" "Shared_Passive_FightingStyle_Dueling_Description"
data "Icon" "PassiveFeature_FightingStyle_Duelling"
data "Properties" "Highlighted"
data "Boosts" "IF(FightingStyle_Dueling(context.Source)):CharacterWeaponDamage(2)"
function FightingStyle_Dueling(entity)
-- Default to Target, like cpp functions
entity = entity or context.Target
local hasNonVersatileWeapon = WieldingWeapon('Melee', false, false, entity) & ~WieldingWeapon('Versatile', false, false, entity) & ~WieldingWeapon('Twohanded', false, false, entity) & ~WieldingWeapon('Melee', true, false, entity) & ~WieldingWeapon('Ammunition', true, false, entity)
local hasVersatileWeapon = WieldingWeapon('Versatile', false, false, entity) & WieldingWeapon('Melee', false, false, entity) & HasShieldEquipped(entity)
return hasNonVersatileWeapon | hasVersatileWeapon
end