UB replacing a guild- possible?

In short... yes, it's possible. BUILDING_ARTISTS_GUILD is a building like any other, and SPECIALIST_ARTIST is a specialist like any other.

Of course, whatever you want to do to make it unique may or may not be possible [or easy]...
 
In short... yes, it's possible. BUILDING_ARTISTS_GUILD is a building like any other, and SPECIALIST_ARTIST is a specialist like any other.

Of course, whatever you want to do to make it unique may or may not be possible [or easy]...

Excellent. I was also wondering, where is the amount that you can build in your empire defined? I was thinking of replacing the guild with slightly weaker version which you can build a total of 5 of in your empire.

Edit: Found it. Looks like I'll have to create a dummy building class for the UB though. Is there a way to make the original artist's guild unavailable for one civ?
 
Excellent. I was also wondering, where is the amount that you can build in your empire defined? I was thinking of replacing the guild with slightly weaker version which you can build a total of 5 of in your empire.

Edit: Found it. Looks like I'll have to create a dummy building class for the UB though. Is there a way to make the original artist's guild unavailable for one civ?

It'd be controlled under the civilization's unique building table. XML row would look like:

PHP:
<Civilization_BuildingClassOverrides>
<Row>

<CivilizationType>CIVILIZATION_SONGHAI</CivilizationType>

<BuildingClassType>BUILDINGCLASS_TEMPLE</BuildingClassType>

<BuildingType>BUILDING_MUD_PYRAMID_MOSQUE</BuildingType>

</Row>
</Civilization_BuildingClassOverrides>
 
Are you saying Civilization_BuildingClassOverrides isn't working for BUILDINGCLASS_ARTISTS_GUILD?

In general, you can prevent a civ from building a building by making the BuildingType blank in an entry in the Civilization_BuildingClassOverrides, but you shouldn't need to leave it blank if your replacement is the same class as the guild... since you're using a dummy building anyway.
 
Sure, but don't you still want at least a fake UB in its place, for purposes of the Civilopedia and loading screen, etc.? You could make it unbuildable, or just use it for the first guild, and another dummy building for subsequent guilds.
 
Sure, but don't you still want at least a fake UB in its place, for purposes of the Civilopedia and loading screen, etc.? You could make it unbuildable, or just use it for the first guild, and another dummy building for subsequent guilds.

I assume he's still going to need a UB, since his new BuildingClass will be accessible to every civ. So he's going to have to make the default building of this new BuildingClass unbuildable, and then make a buildable UB version of it for his civ.
 
He could just put 'NONE' in the default building, right?
I don't think so. According to the way I'm reading the table definitions, the game would then go looking for a building called 'NONE' instead of interpretting it as a null value.
Code:
	<Table name="BuildingClasses">
		<Column name="ID" type="integer" primarykey="true" autoincrement="true"/>
		<Column name="Type" type="text" notnull="true" unique="true"/>
		<Column name="Description" type="text"/>
		<Column name="DefaultBuilding" type="text"/>
		<Column name="MaxGlobalInstances" type="integer" default="-1"/>
		<Column name="MaxTeamInstances" type="integer" default="-1"/>
		<Column name="MaxPlayerInstances" type="integer" default="-1"/>
		<Column name="ExtraPlayerInstances" type="integer" default="0"/>
		<Column name="NoLimit" type="boolean" default="false"/>
		<Column name="Monument" type="boolean" default="false"/>
	</Table>
 
It works with units.

Code:
		<Row>
			<Type>UNITCLASS_GALLEY</Type>
			<Description>TXT_KEY_UNIT_GALLEY</Description>
			<DefaultUnit>NONE</DefaultUnit>
		</Row>

Table:
Code:
	<Table name="UnitClasses">
		<Column name="ID" type="integer" primarykey="true" autoincrement="true"/>
		<Column name="Type" type="text" notnull="true" unique="true"/>
		<Column name="Description" type="text"/>
		<Column name="MaxGlobalInstances" type="integer" default="-1"/>
		<Column name="MaxTeamInstances" type="integer" default="-1"/>
		<Column name="MaxPlayerInstances" type="integer" default="-1"/>
		<Column name="InstanceCostModifier" type="integer" default="0"/>
		<Column name="DefaultUnit" type="text"/>
	</Table>
 
It works with units.
Tested it with buildings and it does seem to work. The civilopedia page for the building doesn't quite show as usual. The fields for which civ the building is unique to didn't show even though I had assigned it to Rome. IGE was using it properly, though. When I switched from Rome to Brazil in IGE, the name of the building was grayed-out in the 'Edit City' dialog, like it usually does with buildings that aren't correct for an individual civilization.

Learn something every day I guess. Other than the slight aesthetic civilopedia annoyance, that would certainly simplify adding specialty unique buildings for a specific civ. No more need to fool with all those dummy buildings.

code I used:
Spoiler :
Code:
<GameData>
	<BuildingClasses>
		<Row>
			<Type>BUILDINGCLASS_ARCHER</Type>
			<DefaultBuilding>NONE</DefaultBuilding>
			<Description>TXT_KEY_BUILDING_ARCHER</Description>
		</Row>
	</BuildingClasses>

	<Civilization_BuildingClassOverrides>
		<Row>
			<CivilizationType>CIVILIZATION_ROME</CivilizationType>
			<BuildingClassType>BUILDINGCLASS_ARCHER</BuildingClassType>
			<BuildingType>BUILDING_ARCHER</BuildingType>
		</Row>
	</Civilization_BuildingClassOverrides>

	<Buildings>
		<Row>
			<Type>BUILDING_ARCHER</Type>
			<BuildingClass>BUILDINGCLASS_ARCHER</BuildingClass>
			<FreeStartEra>ERA_INDUSTRIAL</FreeStartEra>
			<Cost>40</Cost>
			<GoldMaintenance>1</GoldMaintenance>
			<!--<PrereqTech>TECH_ARCHERY</PrereqTech>-->
			<Help>TXT_KEY_BUILDING_ARCHER_HELP</Help>
			<Description>TXT_KEY_BUILDING_ARCHER</Description>
			<Civilopedia>TXT_KEY_CIV5_BUILDINGS_ARCHER_TEXT</Civilopedia>
			<Strategy>TXT_KEY_BUILDING_ARCHER_STRATEGY</Strategy>
			<ArtDefineTag>ART_DEF_BUILDING_BARRACKS</ArtDefineTag>
			<TrainedFreePromotion>PROMOTION_ACCURACY_1</TrainedFreePromotion>
			<MinAreaSize>-1</MinAreaSize>
			<HurryCostModifier>25</HurryCostModifier>
			<NeverCapture>true</NeverCapture>
			<IconAtlas>UNIT_ATLAS_1</IconAtlas>
			<PortraitIndex>6</PortraitIndex>
		</Row>
	</Buildings>

	<Building_UnitCombatFreeExperiences>
		<Row>
			<BuildingType>BUILDING_ARCHER</BuildingType>
			<UnitCombatType>UNITCOMBAT_ARCHER</UnitCombatType>
			<Experience>10</Experience>
		</Row>
	</Building_UnitCombatFreeExperiences>

	<Building_UnitCombatProductionModifiers>
		<Row>
			<BuildingType>BUILDING_ARCHER</BuildingType>
			<UnitCombatType>UNITCOMBAT_ARCHER</UnitCombatType>
			<Modifier>10</Modifier>
		</Row>
	</Building_UnitCombatProductionModifiers>

	<Building_Flavors>
		<Row>
			<BuildingType>BUILDING_ARCHER</BuildingType>
			<FlavorType>FLAVOR_MILITARY_TRAINING</FlavorType>
			<Flavor>20</Flavor>
		</Row>
		<Row>
			<BuildingType>BUILDING_ARCHER</BuildingType>
			<FlavorType>FLAVOR_OFFENSE</FlavorType>
			<Flavor>5</Flavor>
		</Row>
		<Row>
			<BuildingType>BUILDING_ARCHER</BuildingType>
			<FlavorType>FLAVOR_DEFENSE</FlavorType>
			<Flavor>10</Flavor>
		</Row>
		<Row>
			<BuildingType>BUILDING_ARCHER</BuildingType>
			<FlavorType>FLAVOR_PRODUCTION</FlavorType>
			<Flavor>5</Flavor>
		</Row>
	</Building_Flavors>

	<Language_en_US>
		<Row Tag="TXT_KEY_BUILDING_ARCHER_HELP">
			<Text>+10 [ICON_WAR] XP's and +10% [ICON_PRODUCTION] Production for all Archery Units.[NEWLINE]Grants the [COLOR_POSITIVE_TEXT]Accuracy 1[ENDCOLOR] promotion to Archery units trained in the City.</Text>
		</Row>
		<Row Tag="TXT_KEY_BUILDING_ARCHER">
			<Text>Practice Range</Text>
		</Row>
		<Row Tag="TXT_KEY_CIV5_BUILDINGS_ARCHER_TEXT">
			<Text>Practice Ranges provide basic archery training for early-game ranged units.</Text>
		</Row>
		<Row Tag="TXT_KEY_BUILDING_ARCHER_STRATEGY">
			<Text>Practice Ranges provide experience for archery units constructed in the city. This experience can be used to give the units Promotions, making them more effective in battle.</Text>
		</Row>
	</Language_en_US>
</GameData>
I used a building from one of my mods that I knew already worked in the 'normal' way.
 
Top Bottom