You mean that class A can call on any function belonging to class B with using "self."? I never got this to work, but I have managed to work around it by adding a function that returns the other class instead of "self". And I seem only to be able to share variables between classes by using the "global" command.You should never need to use the globals() function. If class B is a subclass of class A (what you are calling subordinate), it has access to the fields and functions of B via self.
But I did manage to spawn a city using functions from three different classes on one single line

Code:
Spawn(iCiv).trigger().turn(iTurn).city().cityPlot(iX, iY).foundCity()
Spoiler :
Code:
class Spawn:
def __init__(self, iPlayer):
global iCiv
iCiv = iPlayer
global player
player = gc.getPlayer(iCiv)
self.bAlive = player.isAlive()
global bTrigger
bTrigger = self.bAlive
def trigger(self):
return Trigger()
class Trigger:
def __init__(self):
self.gameTurn = gc.getGame().getGameTurn()
def isTrigger(self):
return bTrigger
def turn(self, iTurn):
if self.isTrigger():
if iTurn != self.gameTurn:
bTrigger = False
return self
def city(self):
return City()
class City:
def cityPlot(self, iX, iY):
self.iX = iX
self.iY = iY
return self
def foundCity(self):
if Trigger().isTrigger():
player.found(self.iX, self.iY)

Your examples were all good, but here goes (from my Russia scenario):What I meant when asking for an example is a concrete example from a scenario:
Spoiler :
- On turn 201 a Fort improvement appears on tile (68, 56).
- If the present city on tile (69, 52) is razed, then the new size 1 city "Kiev" appears on turn 207 with one Archer unit. The city belongs to the Russians but will only spawn if they are still alive.
- On turn 209 a Town improvement appears on tile (68, 56).
- On turn 211 the size 1 city "Novgorod" appears on tile (68, 56) along with one Archer unit. It belongs to the Russians if they are not controlled by the human player (and alive), otherwise it belongs to the Independents.
- On turn 235 a Town improvement appears on tile (72, 55).
- On turn 236 the size 1 city "Moskva" appears on tile (72, 55) along with one Longbowman unit. The city belongs to the Independents and has Christianity preset.
- Between the turns 206 and 240 a Barbarian Horse Archer unit appears every three turns on a random tile inside the area defined by tile (69, 49) and tile (77, 50). The unit has the AI setting of "UNITAI_PILLAGE".
But since you're a programmer, first and foremost, you can find examples of functions available with my existing code here and here. This new setup (discussed in this thread) will be able to do all that and more, as the modularity gives more options for the scenario maker. So I'll be hacking the existing functions to bit and pieces so that the code can then be rearranged by the modder by stacking functions like I did above.
edit: As it turns out, I did a poor job of testing the code posted above. It will trigger on any turn, so I have rewritten the code and am currently passing on the bTrigger value from the Spawn class to the Trigger class and finally to the City class. So I guess I can't use a global bTrigger either... Is there another way of doing this?