You have assigned your building to a non-existant BuildingClass. This always causes CTD (Crash To Desktop).
Code:
..snipped lines..
<BuildingClass>BUILDINGCLASS_SWEATSHOP</BuildingClass>
..snipped lines..
You need to assign your building to an existing BuildingClass or you need to create a new BuildingClass to which BUILDING_SWEATSHOP will be assigned.
If you want the BUILDING_SWEATSHOP to belong to the Factory Class of buildings you need
Code:
<BuildingClass>BUILDINGCLASS_FACTORY</BuildingClass>
instead of what you currently have.
--------------------------------------------------------
This is also really not any good:
Code:
<Unit_ClassUpgrades>
<Row>
<UnitType>UNIT_DELPHANESE_HYPERCANNON</UnitType>
<UnitClassType>UNITCLASS_KNIGHT</UnitClassType>
</Row>
</Unit_ClassUpgrades>
You have the unit upgrading into a unit that is already obsolete by the time the UNIT_DELPHANESE_HYPERCANNON would want to be upgraded. I think you need as this
Code:
<Unit_ClassUpgrades>
<Row>
<UnitType>UNIT_DELPHANESE_HYPERCANNON</UnitType>
<UnitClassType>UNITCLASS_ARTILLERY</UnitClassType>
</Row>
</Unit_ClassUpgrades>
As this both comforms to normal usage for a cannon unit and also conforms to what you have for the unit's "GoodyHut" Upgrade.
-----------------------------------------------------------------
In table <Traits>, this only affects the construction of Wonders:
Code:
<WonderProductionModifier>20</WonderProductionModifier>
It has no effect on non-Wonder Buildings.