Run this SQL statement first:
UPDATE Units SET CanRetreatWhenCaptured='0' WHERE UnitType LIKE 'UNIT_GREAT_%';
See if that works and makes GPs capturable. It may be insufficient, though. If it's not, then use this one in conjunction with the first one:
INSERT INTO UnitCaptures (
BecomesUnitType,
CapturedUnitType
)
SELECT UnitType, UnitType
FROM Units
WHERE Units.UnitType LIKE 'UNIT_GREAT_%'
Now you GPs without the ability to retreat to their capital when captured
and, in the event they are captured, they must transform into the same unit type they are.
However, there is a catch. A Unique GP is not merely, say, UNIT_GREAT_GENERAL. It is actually a unique object in the game that has an identity as UNIT_GREAT_GENERAL, but is otherwise a separate object. Thus, it is possible (using LUA and also by modifying the Units table in XML to allow GPs to be trained) to force the game to produce general UNIT_GREAT_GENERALs and any other UNIT_GREAT_Xs. The only thing they have in common with the Unique GP Individuals is their basic UnitType (sharing the same movement point, teleportation to capital when capture, and so forth), but they do not share anything in terms of individuality and unique abilities.
So, if you commit the changes above to the game database, it is quite possible that, upon capture, the game would generate generic UNIT_GREAT_Xs in place of the captured Unique GP Individual.
However, I am quite interested in seeing what happens, so, if you do try it, please share your results!
