There is a trigger for number of provinces; but, incidentally, there's a cleaner way of implementing your events.
Code:
province_event = {
id = 80061
trigger = {
NOT = { has_province_flag = Steal_Me }
NOT = { country = { num_of_cities = 2 } }
}
mean_time_to_happen = {
months = 1
}
title = "We're so small!"
desc = "Go on, steal us, you know you want to!"
option = {
name = "We won't make a fuss about it!"
ai_chance = { factor = 100 }
set_province_flag = Steal_Me
country = { set_country_flag = Theft_Target }
}
}
province_event = {
id = 80062
trigger = {
has_province_flag = Steal_Me
country = { num_of_cities = 2 }
}
mean_time_to_happen = { months = 1 }
title = "We're not complaining!"
desc = "We're a quiet little province!"
option = {
name = "We promised!"
ai_chance = { factor = 100 }
owner = { limit = { NOT = { have_country_flag = Theft_Target } }
badboy = -0.16
}
country = { clr_country_flag = Theft_Target }
clr_province_flag = Steal_Me
}
}
Incidentally, badboy works as a percentage of your maximum, not as a hard number, so by setting it to four, you'd be multiplying it to a hundred and twenty badboy

.
I'm not certain I'm using owner/limit there correctly, but there IS a limit structure able to apply the effect only if the flag isn't present.
And, of course, it's best to change the text to something somewhat less creepy/comical ^_~ .