Promotions Limited Product

Hi All ,
Can you help me to set promotions base on this scenario?
Category : Best Deal
Product list :
Product A (Normal Price USD 10)
Product B (Normal Price USD 12)
Product C (Normal Price USD 15)
Product D (Normal Price USD 18)
1. We set catalog promotions
Condition : Categories in Best Deal
Bonus : Product discount to fixed amount USD 5
so all product under Best Deal category will become :
Product A (Normal Price USD 10, Promotion USD 5 )
Product B (Normal Price USD 12, Promotion USD 5 )
Product C (Normal Price USD 15, Promotion USD 5 )
Product D (Normal Price USD 18, Promotion USD 5 )
2. Only 3 Product under Best Deal will get this promotions
if add extra product, that extra product will be normal price.
Senario
Customer add :
Product A (Promotion USD 5 )
Product B (Promotion USD 5 )
Product C (Promotion USD 5 )
then customer add product D
so it will be :
Product A (Promotion USD 5 )
Product B (Promotion USD 5 )
Product C (Promotion USD 5 )
Product D (Normal Price USD 18 )
How to make this kind of logic in Promotions ?
Please
Thank you

There's no ability to set the maximum number of items that a promotion will provide with the standard product. It requires significant modification to the promotions code.