I only gave the Trigger a glance but it looks valid. The way the "target" values work - like target player (which is specified in the Trigger constructor) or the target tile (which can be defined pretty much anywhere inside the Trigger) - is that they are used for all methods of that Trigger. And a plot list is another of these "global targets values" and is used with all methods that can work with a plot list.I go a step further:
is it a valid trigger? I want it to fire if any plot is owned by Rome to flip all Roman cities in the area.Code:.target((66,30),(70,36)).owned(None,7).target((66,30),(70,36)).flip(None,7,0,0,1,0)
So you don't have to define the same area twice in the same Trigger - and only the last one will be valid if you try to define two different areas. This last case is where you'd need to use to separate Triggers - and bind them together. (Another case is if you need to have two different target players.)
In short: Take out one of the target() methods as it will add nothing to the Trigger.
Refer to the API for how to use the owned() method with a plot list.
Also, most of the time it doesn't really matter what order methods are stacked onto the Trigger constructor. (Like putting Actions before Conditions and tacking the label() method at the end, or whatever configuration you wanna use.) But there are special cases: the add-on methods that explicitly affect the method directly before (to the left of) them. Like how operator() is used to change the default operator of the previous method. But there are exceptions here also... Most of the time you should be able to create valid Triggers as long as you apply basic logic to them. So if they make sense to you, then they should also work.
No, the unit will only have the Mercenary promotion (I'm guessing it is indexed as promotion 54) but not be connected to the actual Mercenaries feature. I'd have to create a mercenary() method to add mercenaries to the built-in mercenary engine. Do we need one? Do we really need one? (Or it could be a built-in feature of the promotions() method, but it would probably be better if you could also specify upkeep and other parameters.)And another question: is it possible to make an unit a mercenary simply by giving "mercenary" promotion? If it is true, what's the code of the promotion?