Help with Modding

Jarula

King
Joined
Oct 22, 2016
Messages
680
I am going to try to mod a UU for Rome...

PraetorM replaces Great magistrate
PraetorG replaces Great general

Ultimately this means 2 separate paths.

For Praetor I want both to grant sapper and GG bonus to nearby units
For both instead of dropping Embassy or Citadel they drop a UI in friendly lands...

How would I code...?
Balanced...?

Also want to make UB that grants upon building construction grants +5 culture scaled with era and +5 Great magistrate points per active UB in empire...

I presume I would do Great general replacement for citadel using sql
but the embassy replacement and building seems more complicated...
 
I am going to try to mod a UU for Rome...

PraetorM replaces Great magistrate
PraetorG replaces Great general

Ultimately this means 2 separate paths.

For Praetor I want both to grant sapper and GG bonus to nearby units
For both instead of dropping Embassy or Citadel they drop a UI in friendly lands...

How would I code...?
Balanced...?

Also want to make UB that grants upon building construction grants +5 culture scaled with era and +5 Great magistrate points per active UB in empire...

I presume I would do Great general replacement for citadel using sql
but the embassy replacement and building seems more complicated...

Look at other mods, look at the CBO, and learn XML/SQL. I know it sounds harsh but you've got to start somewhere - proposing ideas and asking someone else for the code is not going to get you too far. You'll get what you want if you teach yourself.

G
 
This is what I have so far

UPDATE Civilization_UnitClassOverrides
SET UnitClassType = 'UNITCLASS_GREAT_DIPLOMAT'
WHERE UnitType = 'UNIT_ROME_PRAETORGD' AND EXISTS (SELECT * FROM CSD WHERE Type='GIFT_OPTION' AND Value= 2 );

UPDATE Civilization_UnitClassOverrides
SET UnitClassType = 'UNITCLASS_GREAT_GENERAL'
WHERE UnitType = 'UNIT_ROME_PRAETORGG' AND EXISTS (SELECT * FROM CSD WHERE Type='GIFT_OPTION' AND Value= 2 );

UPDATE Units
SET Class = 'UNITCLASS_GREAT_DIPLOMAT', Cost = -1, Moves = 3, CivilianAttackPriority = 'CIVILIAN_ATTACK_PRIORITY_HIGH', CombatClass = 'UNITCOMBAT_DIPLOMACY', DefaultUnitAI = 'UNITAI_DIPLOMAT'
WHERE Type = 'UNIT_ROME_PRAETORGD' AND EXISTS (SELECT * FROM CSD WHERE Type='GIFT_OPTION' AND Value= 2 );

SET Class = 'UNITCLASS_GREAT_GENERAL', Cost = -1, Moves = 3, CivilianAttackPriority = 'CIVILIAN_ATTACK_PRIORITY_HIGH', CombatClass = 'UNITCOMBAT_DIPLOMACY', DefaultUnitAI = 'UNITAI_DIPLOMAT'
WHERE Type = 'UNIT_ROME_PRAETORGG' AND EXISTS (SELECT * FROM CSD WHERE Type='GIFT_OPTION' AND Value= 2 );

INSERT INTO Unit_FreePromotions (UnitType, PromotionType)
SELECT 'UNIT_ROME_PRAETORGD', 'PROMOTION_BUSINESS' UNION ALL
SELECT 'UNIT_ROME_PRAETORGD', 'PROMOTION_GREAT_GENERAL' WHERE EXISTS (SELECT * FROM CSD WHERE Type='GIFT_OPTION' AND Value= 2 );

SELECT 'UNIT_ROME_PRAETORGG', 'PROMOTION_BUSINESS' UNION ALL
SELECT 'UNIT_ROME_PRAETORGG', 'PROMOTION_GREAT_GENERAL' WHERE EXISTS (SELECT * FROM CSD WHERE Type='GIFT_OPTION' AND Value= 2 )

INSERT INTO Unit_Builds (UnitType, BuildType)
SELECT 'UNIT_ROME_PRAETORGD', 'BUILD_LATIFUNDIA' WHERE EXISTS (SELECT * FROM CSD WHERE Type='GIFT_OPTION' AND Value= 2 ) UNION ALL
SELECT 'UNIT_ROME_PRAETORGD', 'BUILD_LATIFUNDIA' WHERE NOT EXISTS (SELECT * FROM CSD WHERE Type='GIFT_OPTION' AND Value= 2 );

SELECT 'UNIT_ROME_PRAETORGG', 'BUILD_LATIFUNDIA' WHERE EXISTS (SELECT * FROM CSD WHERE Type='GIFT_OPTION' AND Value= 2 ) UNION ALL
SELECT 'UNIT_ROME_PRAETORGG', 'BUILD_LATIFUNDIA' WHERE NOT EXISTS (SELECT * FROM CSD WHERE Type='GIFT_OPTION' AND Value= 2 );

INSERT INTO Unit_Flavors (UnitType, FlavorType, Flavor)
SELECT 'UNIT_ROME_PRAETOR', 'FLAVOR_GOLD', 3 UNION ALL
SELECT 'UNIT_ROME_PRAETOR', 'FLAVOR_DIPLOMACY', 3;

UPDATE Unit_Flavors
SET Flavor = 60
WHERE UnitType = 'UNIT_ROME_PRAETORGD' AND EXISTS (SELECT * FROM CSD WHERE Type='GIFT_OPTION' AND Value= 2 );

WHERE UnitType = 'UNIT_ROME_PRAETORGG' AND EXISTS (SELECT * FROM CSD WHERE Type='GIFT_OPTION' AND Value= 2 );
INSERT INTO Unit_AITypes (UnitType, UnitAIType)
SELECT 'UNIT_ROME_PRAETORGD', 'UNITAI_GENERAL';

SELECT 'UNIT_ROME_PRAETORGG', 'UNITAI_GENERAL';
UPDATE Unit_AITypes
SET UnitAIType = 'UNITAI_GENERAL'
WHERE UnitType = 'UNIT_ROME_PRAETOR' AND EXISTS (SELECT * FROM CSD WHERE Type='GIFT_OPTION' AND Value= 2 );

INSERT INTO UnitPromotions (Type, Description, Help, Sound, OrderPriority, LostWithUpgrade, TradeMissionInfluenceModifier, CannotBeChosen, PortraitIndex, IconAtlas, PediaType, PediaEntry)
SELECT 'PROMOTION_BUSINESS', 'TXT_KEY_PROMOTION_BUSINESS', 'TXT_KEY_PROMOTION_BUSINESS_HELP', 'AS2D_IF_LEVELUP', 3, 1, 15, 1, 41, 'PROMOTION_ATLAS', 'PEDIA_SHARED', 'TXT_KEY_PROMOTION_BUSINESS';



--==========================================================================================================================
-- ARTDEFINES
--==========================================================================================================================
-- ArtDefine_LandmarkTypes
------------------------------
INSERT INTO ArtDefine_LandmarkTypes
(Type, LandmarkType, FriendlyName)
VALUES ('ART_DEF_IMPROVEMENT_ROME_LATIFUNDIUM', 'Improvement', 'ROME_LATIFUNDIUM');
------------------------------
-- ArtDefine_Landmarks
------------------------------
INSERT INTO ArtDefine_Landmarks
(Era, State, Scale, ImprovementType,

LayoutHandler, ResourceType, Model, TerrainContour)
VALUES ('Any', 'UnderConstruction', 0.0018, 'ART_DEF_IMPROVEMENT_ROME_LATIFUNDIUM', 'SNAPSHOT', 'ART_DEF_RESOURCE_ALL',

'castro_hb.fxsxml', 1),
('Any', 'Constructed', 0.0018, 'ART_DEF_IMPROVEMENT_ROME_LATIFUNDIUM', 'RANDOM',

'ART_DEF_RESOURCE_ALL', 'castro_01.fxsxml', 1),
('Any', 'Constructed', 0.0018, 'ART_DEF_IMPROVEMENT_ROME_LATIFUNDIUM', 'RANDOM',

'ART_DEF_RESOURCE_ALL', 'castro_02.fxsxml', 1),
('Any', 'Constructed', 0.0018, 'ART_DEF_IMPROVEMENT_ROME_LATIFUNDIUM', 'RANDOM',

'ART_DEF_RESOURCE_ALL', 'castro_03.fxsxml', 1),
('Any', 'Pillaged', 0.0018, 'ART_DEF_IMPROVEMENT_ROME_LATIFUNDIUM', 'SNAPSHOT',

'ART_DEF_RESOURCE_ALL', 'castro_pl.fxsxml', 1);
------------------------------
-- ArtDefine_StrategicView
------------------------------
INSERT INTO ArtDefine_StrategicView
(StrategicViewType, TileType, Asset)
VALUES ('ART_DEF_IMPROVEMENT_ROME_LATIFUNDIUM', 'Improvement', 'OppidumIcon_128.dds');
--==========================================================================================================================

--==========================================================================================================================
-- IMPROVEMENTS
--==========================================================================================================================
-- Improvements
------------------------------
INSERT INTO Improvements
(Type, Description,

Civilopedia, ArtDefineTag, Help,

SpecificCivRequired, CivilizationType, PillageGold,

CreatedByGreatPerson, BuildableOnResources, DestroyedWhenPillaged, PortraitIndex, IconAtlas,

NoTwoAdjacent, DefenseModifier)
VALUES ('IMPROVEMENT_ROME_LATIFUNDIUM', 'TXT_KEY_IMPROVEMENT_ROME_LATIFUNDIUM', 'TXT_KEY_IMPROVEMENT_ROME_LATIFUNDIUM_TEXT',

'ART_DEF_IMPROVEMENT_ROME_LATIFUNDIUM', 'TXT_KEY_BUILD_ROME_LATIFUNDIUM_HELP', 1,

'CIVILIZATION_CELTS', 20, 1, 1,

0, 0, 'IMPROVEMENT_CELTS_ATLAS', 0,

50);
------------------------------
-- Improvement_Flavors
------------------------------
INSERT INTO Improvement_Flavors
(ImprovementType, FlavorType, Flavor)
VALUES ('IMPROVEMENT_ROME_LATIFUNDIUM', 'FLAVOR_SCIENCE', 1),
('IMPROVEMENT_ROME_LATIFUNDIUM', 'FLAVOR_CULTURE', 5),
('IMPROVEMENT_ROME_LATIFUNDIUM', 'FLAVOR_GOLD', 5),
('IMPROVEMENT_ROME_LATIFUNDIUM', 'FLAVOR_PRODUCTION', 5),
('IMPROVEMENT_ROME_LATIFUNDIUM', 'FLAVOR_RELIGION', 1),
('IMPROVEMENT_ROME_LATIFUNDIUM', 'FLAVOR_GROWTH', 2),
('IMPROVEMENT_ROME_LATIFUNDIUM', 'FLAVOR_CITY_DEFENSE', 2),
('IMPROVEMENT_ROME_LATIFUNDIUM', 'FLAVOR_DEFENSE', 5);
------------------------------
-- Improvement_Yields
------------------------------
INSERT INTO Improvement_Yields
(ImprovementType, YieldType, Yield)
VALUES ('IMPROVEMENT_ROME_LATIFUNDIUM', 'YIELD_CULTURE', 2),
('IMPROVEMENT_ROME_LATIFUNDIUM', 'YIELD_PRODUCTION', 2),
('IMPROVEMENT_ROME_LATIFUNDIUM', 'YIELD_GOLD', 2),
------------------------------
-- Improvement_ValidTerrains
------------------------------
INSERT INTO Improvement_ValidTerrains
(ImprovementType, TerrainType)
VALUES ('IMPROVEMENT_ROME_LATIFUNDIUM', 'TERRAIN_HILL'),
('IMPROVEMENT_ROME_LATIFUNDIUM', 'TERRAIN_GRASS'),
('IMPROVEMENT_ROME_LATIFUNDIUM', 'TERRAIN_TUNDRA');
------------------------------
-- Improvement_ResourceTypes
------------------------------
INSERT INTO Improvement_ResourceTypes
(ImprovementType, ResourceType, ResourceMakesValid)
VALUES ('IMPROVEMENT_ROME_LATIFUNDIUM', 'RESOURCE_HORSE', 1),
('IMPROVEMENT_ROME_LATIFUNDIUM', 'RESOURCE_IRON', 1),
('IMPROVEMENT_ROME_LATIFUNDIUM', 'RESOURCE_COAL', 1),
('IMPROVEMENT_ROME_LATIFUNDIUM', 'RESOURCE_OIL', 1),
('IMPROVEMENT_ROME_LATIFUNDIUM', 'RESOURCE_ALUMINUM', 1),
('IMPROVEMENT_ROME_LATIFUNDIUM', 'RESOURCE_URANIUM', 1);
------------------------------
-- Improvement_AdjacentYieldChanges
------------------------------
INSERT INTO Improvement_AdjacentImprovementYieldChanges
(ImprovementType, OtherImprovementType, YieldType, Yield)
VALUES ('IMPROVEMENT_ROME_LATIFUNDIUM', 'IMPROVEMENT_FARM', 'YIELD_CULTURE', 1),
('IMPROVEMENT_ROME_LATIFUNDIUM', 'IMPROVEMENT_FARM', 'YIELD_GOLD', 1),
('IMPROVEMENT_ROME_LATIFUNDIUM', 'IMPROVEMENT_PLANTATION', 'YIELD_CULTURE', 1),
('IMPROVEMENT_ROME_LATIFUNDIUM', 'IMPROVEMENT_PLANTATION', 'YIELD_GOLD', 1),
------------------------------
-- Improvement_TechYieldChanges
------------------------------
INSERT INTO Improvement_TechYieldChanges
(ImprovementType, TechType, YieldType,

Yield)
VALUES ('IMPROVEMENT_ROME_LATIFUNDIUM', 'TECH_THEOLOGY', 'YIELD_FAITH', 1),
('IMPROVEMENT_ROME_LATIFUNDIUM', 'TECH_ECONOMICS', 'YIELD_GOLD', 1),
('IMPROVEMENT_ROME_LATIFUNDIUM', 'TECH_ECONOMICS', 'YIELD_PRODUCTION', 1),
('IMPROVEMENT_ROME_LATIFUNDIUM', 'TECH_INDUSTRIALIZATION', 'YIELD_GOLD', 1),
('IMPROVEMENT_ROME_LATIFUNDIUM', 'TECH_INDUSTRIALIZATION', 'YIELD_PRODUCTION', 1);
--==========================================================================================================================

--==========================================================================================================================
-- BUILDS
--==========================================================================================================================
-- Builds
------------------------------
INSERT INTO Builds
(Type, PrereqTech, ImprovementType,

Description, Help, Recommendation,

EntityEvent, OrderPriority, Kill, IconIndex, IconAtlas)
VALUES ('BUILD_ROME_LATIFUNDIUM', null, 'IMPROVEMENT_ROME_LATIFUNDIUM', 'TXT_KEY_BUILD_ROME_LATIFUNDIUM',

'TXT_KEY_BUILD_CELTS_OPPIDUM_HELP', 'TXT_KEY_BUILD_ROME_LATIFUNDIUM_REC', 'ENTITY_EVENT_MINE', 1, 1,

1, 'IMPROVEMENT_ROME_ATLAS');
------------------------------
-- Unit_Builds
------------------------------
INSERT INTO Unit_Builds
(UnitType, BuildType)
VALUES ('UNIT_PRAETOR', 'BUILD_ROME_LATIFUNDIUM');
------------------------------
-- BuildFeatures
------------------------------
INSERT INTO BuildFeatures
(BuildType, FeatureType, PrereqTech, Time, Remove)
VALUES ('BUILD_ROME_LATIFUNDIUM', 'FEATURE_JUNGLE', 'TECH_IRON_WORKING', 0, 1),
('BUILD_ROME_LATIFUNDIUM', 'FEATURE_FOREST', 'TECH_BRONZE_WORKING', 0, 1),
('BUILD_ROME_LATIFUNDIUM', 'FEATURE_MARSH', 'TECH_MACHINERY', 0, 1);
--==========================================================================================================================

--==========================================================================================================================
-- POLICY
--==========================================================================================================================
-- Policy_ImprovementYieldChanges
------------------------------
INSERT INTO Policy_ImprovementYieldChanges
(PolicyType, ImprovementType, YieldType,

Yield)
VALUES ('POLICY_NEW_DEAL', 'IMPROVEMENT_ROME_LATIFUNDIUM', 'YIELD_GOLD', 2),
('POLICY_NEW_DEAL', 'IMPROVEMENT_ROME_LATIFUNDIUM', 'YIELD_PRODUCTION', 1),
('POLICY_NEW_DEAL', 'IMPROVEMENT_ROME_LATIFUNDIUM', 'YIELD_CULTURE', 1),
('POLICY_TRADITION_FINISHER', 'IMPROVEMENT_ROME_LATIFUNDIUM', 'YIELD_FOOD', 1);

I was using other mods as templates but my question was more particularly is there like an issue with GG and GD using the same UI and similarly with Flavors...

Would I need a separate UI for GG UI and GD UI...?

Similarly I would presumably have to put in like a counting function which ... is LUA for UB right?
 
Last edited:
Top Bottom