Occupants and transports work similarly to stacking in terrain; there is both a specialized capacity and a generic capacity that units' sizes count against.
(add (transport carrier) capacity (8 4)) (table unit-size-as-occupant ((infantry armor) transport (1 2)) ((fighter bomber) carrier (1 4)) ) (table unit-capacity-x (carrier fighter 4) )
It may be that all the different sizes interact so that you can't
prevent huge numbers of small units being able to occupy a single
transport. To fix this, use occupants-max
.
Transport is a physical relationship, so for instance one cannot use transports to define a convoy whose acp-per-turn is determined by its slowest member. (This doesn't mean you can't define a convoy type, but you will have to pick an arbitrary speed for it.)
Watch out for unexpected side effects of setting the capacity
but not the unit-size-as-occupant
! Since unit-size-as-occupant
defaults to 1, then a unit with a nonzero capacity can by default
take on any other type as an occupant!
Also, don't let units carry others of their own type. Not only is this of doubtful meaning, Xconq is not guaranteed to cope well with this situation, since it allows infinite recursion in the occupant-transport relation. Ditto for loops; "A can carry B which can carry C which can carry A".