New Civilizations
Posted: 12 Jan 2019, 12:06
Hi all, I am (unsuccessfully) trying to add new civilizations to EE2 AoS: Spanish, Dutch, Portuguese (Western); Moroccan, Hindi (MiddleEast). In the beginning I added them in EE2X_hdrs (.h files) beside the original civs (i. e., from the Russian downwards) in dbPlayerDefs.h and in dbTechTreeDefs.h, as the file itself warned to do (both files need to match). Then I realized that I could replace eCivs (hardcoded) by an ENUM called ENUM eCivs which included old and new civilizations, and so make extensive the eCivs (to which I added strartÍtem=0 and endItem=22 copying another lines in the same file) which appeared in dbwidget_scenedit.utf8. Of course I didn't achieve my object, for the number of civilizations is hardcoded Then I thought I could replace older civilizations by new ones, and leave the original replaced civs at the botton of the stack, so perhaps any day I could give them "new life"...Sorry for so crooked a story but eventually I have messed the things so much than even the game don''t understand, and for instance british cities are renamed as greek and german as portuguese. Of course I also modded citynames and territory names (not leader names). Now the new replaced civs, from epoch 1 until epoch 5 most times work, but from 6 onwards they usually crash the game. Now I show the code I added:
(DbPlayerDefs.h):
(DbTechTreeDefs.h):
From Civilizations/Western:
I hope it's not so boring to read so much code, and apologize for the same reason.
Thanks, in advance,
Gonzalo
(DbPlayerDefs.h):
Code: Select all
//===========================================================================
// Copyright 2003 Mad Doc Software, LLC. All rights reserved.
// $Header: /EE2X/src/EE2/DbHdrs/DbPlayerDefs.h 22 7/01/05 3:42p Dsproul $
//
// DESCRIPTION: DbPlayerDefs.h has parser-readable player definitions.
//
// AUTHOR: Rex Bradford
//
//===========================================================================
#ifndef DBPLAYERDEFS_H
#define DBPLAYERDEFS_H
#pragma once
#include "HdrMacros.h"
// Player types
ENUM ePlayerType {
kPlayerType_Human, // human-controlled player
kPlayerType_Computer, // AI-controlled player
kPlayerType_Observer, // just watching a game @NOTE this is just a hack to facilitate
// setup of MP games with observers and is distinct from the
// game ui being in observer mode
kPlayerType_Invalid = -1, // invalid player type
};
// Player civilizations
// @NOTE: IF THIS CHANGES IN SOME WAY, MAKE THE CORRESPONDING CHANGE IN THE CIV ENUM
// OF DbTechTreeDefs.h!!!!! Also there is a routine called CivilizationToRegion in
// PlayerDefs which would need to be updated.
ENUM ePlayerCivilization {
// West region
kPlayerCivilization_German = 0, //0
kPlayerCivilization_English, //1
kPlayerCivilization_Roman, //2
kPlayerCivilization_Spanish, //3
kPlayerCivilization_Dutch, //4
// FarEast region
kPlayerCivilization_Chinese, //5
kPlayerCivilization_Korean, //6
kPlayerCivilization_Japanese, //7 @NOTE: IF CHANGING THIS, SEE NOTE ABOVE!!!
// MiddleEast region
kPlayerCivilization_Moroccan, //8
kPlayerCivilization_Turkish, //9
kPlayerCivilization_Hindi, //10
// MesoAmerican region
kPlayerCivilization_Inca, //11
kPlayerCivilization_Aztec, //12
kPlayerCivilization_Mayan, //13
// African Region
kPlayerCivilization_Maasai, //14
kPlayerCivilization_Zulu, //15
//@EE2X part of the West region. cannot be stuck with the rest of the west region because EE2 would not be correct anymore
kPlayerCivilization_French, //16
kPlayerCivilization_Portuguese, //17
kNumPlayerCivilization,
kPlayerCivilization_Random = -1, // random; list before unused for settings.cfg readability
kPlayerCivilization_Unused = -1,
// @EE2X custom civs are marked thusly
kPlayerCivilization_Custom = -2,
//CUSTOM CIVS
kPlayerCivilization_American, //18
kPlayerCivilization_Greek, //19
kPlayerCivilization_Portuguese, //20
//@EE2X part of the MiddleEast region. cannot be stuck with the rest of the middle east region because EE2 would not be correct anymore
kPlayerCivilization_Egyptian, //21
kPlayerCivilization_Babylonian, //22
//Enumerations to mark the first/last civs in each region:
// western
// @NOTE be careful when iterating, not all civs are contiguous in EE2X!
kPlayerCivilization_FirstWestern = kPlayerCivilization_German,
kPlayerCivilization_LastWestern = kPlayerCivilization_Portuguese,
// FarEast
// @NOTE be careful when iterating, not all civs are contiguous in EE2X!
kPlayerCivilization_FirstFarEast = kPlayerCivilization_Chinese,
kPlayerCivilization_LastFarEast = kPlayerCivilization_Japanese,
// MiddleEast
// @NOTE be careful when iterating, not all civs are contiguous in EE2X!
kPlayerCivilization_FirstMiddleEast = kPlayerCivilization_Moroccan,
kPlayerCivilization_LastMiddleEast = kPlayerCivilization_Hindi,
// Meso american
// @NOTE be careful when iterating, not all civs are contiguous in EE2X!
kPlayerCivilization_FirstMesoAmer = kPlayerCivilization_Inca,
kPlayerCivilization_LastMesoAmer = kPlayerCivilization_Mayan,
// African
// @NOTE be careful when iterating, not all civs are contiguous in EE2X!
kPlayerCivilization_FirstAfrican = kPlayerCivilization_Maasai,
kPlayerCivilization_LastAfrican = kPlayerCivilization_Zulu,
}; // enum PlayerCivilizatio...
// @EE2X not all civs in a region are contiguous, doh!
// how many civs in each region?
static const int kNumWesternCivs = 10;
static const int kNumFarEastCivs = 3;
static const int kNumMiddleEastCivs = 5;
static const int kNumMesoAmericanCivs = 3;
static const int kNumAfricanCivs = 2;
ENUM eCivs {
German,
English,
Roman,
Spanish,
Dutch,
Chinese,
Korean,
Japanese,
Moroccan,
Turkish,
Hindi,
Inca,
Aztec,
Mayan,
Maasai,
Zulu,
French,
Portuguese,
American,
Greek,
Russian,
Egyptian,
Babylonian,
}; //
//---------------------------------------------------------------------------------------------
//@NOTE if someone add a region, do not forget to add a initial for that particular region in:
// SRC\EE2\PLAYER\PlayerCivilisation.h under the function GetRegionalPostFix()
//
ENUM eCivilizationRegion {
kCivilizationRegion_West = 0,
kCivilizationRegion_FarEast,
kCivilizationRegion_MiddleEast,
kCivilizationRegion_MesoAmerican,
kCivilizationRegion_African,
kNumCivilizationRegion,
// invalid region!
// putting this last so we don't screw things up
kCivilizationRegion_Invalid = -1,
};
// Player colors
ENUM ePlayerColor {
kPlayerColor_Blue,
kPlayerColor_Red,
kPlayerColor_Green,
kPlayerColor_Orange,
kPlayerColor_Magenta,
kPlayerColor_Cyan,
kPlayerColor_Yellow,
kPlayerColor_Lavender,
kPlayerColor_Purple,
kPlayerColor_Gold,
kPlayerColor_LastAvailableToNonWorldPlayer = 9, // should be same as previous entry
kPlayerColor_Grey,
kPlayerColor_WorldPlayerColor = 10, // should be same as previous entry
kPlayerColor_NativeTribePlayerColor = 10,
kPlayerColor_Num,
};
#endif // DBPLAYERDEFS_H
Code: Select all
//===========================================================================
// Copyright 2003 Mad Doc Software, LLC. All rights reserved.
// $Header: /EE2X/src/EE2/DbHdrs/DbTechTreeDefs.h 69 10/05/05 2:53p Tteich $
//
// DESCRIPTION: DbTechTreeDef.h holds the enum and dataclass defs
// related to the tech tree
//
// AUTHOR: Rex E. Bradford
//
//===========================================================================
#ifndef DBTECHTREEDEF_H
#define DBTECHTREEDEF_H
#pragma once
#include "HdrMacros.h"
#include "LSizedArray.h"
#include "DbResourceDefs.h"
#include "DbPlayerDefs.h"
#include "LDbText.h"
class LDataObj; // forward refs
class LStrUTF8;
class Player;
// -------------------------------------------------------------------
// TECH TREE EPOCHS
// -------------------------------------------------------------------
//Epoch Name enumeration table
ENUM eTechTreeEpoch{
kTechTreeEpoch_None = 0,
kTechTreeEpoch_Stone = 1,
kTechTreeEpoch_Copper,
kTechTreeEpoch_Bronze,
kTechTreeEpoch_Iron,
kTechTreeEpoch_Dark,
kTechTreeEpoch_Middle,
kTechTreeEpoch_Renaissance,
kTechTreeEpoch_Imperial,
kTechTreeEpoch_Enlightenment,
kTechTreeEpoch_Industrial,
kTechTreeEpoch_Modern,
kTechTreeEpoch_Atomic,
kTechTreeEpoch_Digital,
kTechTreeEpoch_Genetic,
kTechTreeEpoch_Synthetic = 15,
kNumTechTreeEpochs = 15,
kTechTreeEpoch_Random = -1,
};
// meta epochs
const int kMetaEpoch_1 = 5;
const int kMetaEpoch_2 = 10;
//
// EpochToMetaEpoch() -- stupid helper func maps epoch to meta-epoch
//
inline int EpochToMetaEpoch(int in_iEpoch)
{
ASSERT(in_iEpoch >= 1 && in_iEpoch <= 15);
if(in_iEpoch <= kMetaEpoch_1)
{
return 1;
}
else if(in_iEpoch <= kMetaEpoch_2)
{
return 2;
}
else
{
return 3;
}
}
//Epoch Names
static const char *s_EpochNames[] = { "", "tx_enum_eTechTreeEpoch_1", "tx_enum_eTechTreeEpoch_2",
"tx_enum_eTechTreeEpoch_3", "tx_enum_eTechTreeEpoch_4",
"tx_enum_eTechTreeEpoch_5", "tx_enum_eTechTreeEpoch_6",
"tx_enum_eTechTreeEpoch_7", "tx_enum_eTechTreeEpoch_8",
"tx_enum_eTechTreeEpoch_9", "tx_enum_eTechTreeEpoch_10",
"tx_enum_eTechTreeEpoch_11", "tx_enum_eTechTreeEpoch_12",
"tx_enum_eTechTreeEpoch_13", "tx_enum_eTechTreeEpoch_14",
"tx_enum_eTechTreeEpoch_15"};
inline const char *GetEpochName(eTechTreeEpoch inEpoch)
{
ASSERT(inEpoch >= 0 && inEpoch <= kNumTechTreeEpochs);
if(inEpoch >= 0 && inEpoch <= kNumTechTreeEpochs)
return g_pDbTextTable->GetText(s_EpochNames[inEpoch]);
else
return NULL;
}
// -------------------------------------------------------------------
// TECH TREE NODES
// -------------------------------------------------------------------
// Tech Tree branch
ENUM eTechTreeBranch {
kTechTreeBranch_None, // none, shouldn't be used in visible tech tree
kTechTreeBranch_Main, // main trunk
kTechTreeBranch_Military, // military branch
kTechTreeBranch_Economic, // economic branch
kTechTreeBranch_Imperial, // imperial branch
kTechTreeBranch_Improvement, // unit type improvement
kNumTechTreeBranches,
};
//EE2X
//Enum table to designate civ specific tech tree nodes
//@NOTE: THIS MUST TO CORESPOND TO THE GAME'S CIV ENUM IN DBPLAYERDEFS.H, BUT HAVE THE "ALL" CIV
// ENUM IN THE 0 SPACE!
ENUM eTechTreeCiv {
kTechTreeCiv_All, //0
kTechTreeCiv_German, //1
kTechTreeCiv_English,
kTechTreeCiv_Roman,
kTechTreeCiv_Spanish,
kTechTreeCiv_Dutch,
kTechTreeCiv_Chinese,
kTechTreeCiv_Korean,
kTechTreeCiv_Japanese,
kTechTreeCiv_Moroccan,
kTechTreeCiv_Turkish,
kTechTreeCiv_Hindi,
kTechTreeCiv_Inca,
kTechTreeCiv_Aztec,
kTechTreeCiv_Mayan,
kTechTreeCiv_Maasai,
kTechTreeCiv_Zulu,
kTechTreeCiv_French,
kTechTreeCiv_Portuguese, // 18
kTechTreeCiv_Western, //19
kTechTreeCiv_FarEast,
kTechTreeCiv_MiddleEast,
kTechTreeCiv_MesoAmer,
kTechTreeCiv_African, //28
kTechTreeCiv_Regions = 19,
//The value of the first region enum
kTechTreeCiv_American, //19
kTechTreeCiv_Greek, //20
kTechTreeCiv_Russian, //21
kTechTreeCiv_Egyptian,//22
kTechTreeCiv_Babylonian, //23
};
//The following two inline function are used for converting from this tech tree enum
//to the play civ enum and regions
inline int TechTreeCivToRegion(int inTTCiv)
{
ASSERT(inTTCiv >= kTechTreeCiv_Western && inTTCiv <= kTechTreeCiv_African);
return inTTCiv - kTechTreeCiv_Regions;
}
inline int TechTreeCivToPlayerCiv(int inTTCiv)
{
ASSERT(inTTCiv >= 0 && inTTCiv < kTechTreeCiv_Regions);
return inTTCiv - 1;
}
//flags for special units
FLAGS(kSpecialFlag)
const uint32 kSpecialFlag_None = 0x0000;
//The leader flags use the three right most bits
const uint32 kSpecialFlag_Leader = 0x0001; //rightmost bit if the node is a leader
const uint32 kSpecialFlag_LeaderMilitary = 0x0001; //001
const uint32 kSpecialFlag_LeaderEconomic = 0x0003; //011
const uint32 kSpecialFlag_LeaderImperial = 0x0005; //101
etc
From Civilizations/Western:
Code: Select all
////////////////////////
// Roman
Civilization Roman
{
CityNames = [
tx_ms_cityname_Aquilonia
tx_ms_cityname_Arpinum
tx_ms_cityname_Brundisium
tx_ms_cityname_Caerleon
tx_ms_cityname_Capua
tx_ms_cityname_Cividale
tx_ms_cityname_Colossae
tx_ms_cityname_Constantinople
tx_ms_cityname_Ephesus
tx_ms_cityname_Epirus
tx_ms_cityname_Glanum
tx_ms_cityname_Herculaneum
tx_ms_cityname_Lanivium
tx_ms_cityname_Londinium
tx_ms_cityname_Lutetia
tx_ms_cityname_Ostia
tx_ms_cityname_Philippi
tx_ms_cityname_Pompeii
tx_ms_cityname_Puteoli
tx_ms_cityname_Ravenna
tx_ms_cityname_Rome
tx_ms_cityname_Saguntum
tx_ms_cityname_Sutri
tx_ms_cityname_Taranto
tx_ms_cityname_Thapsus
tx_ms_cityname_Thurii
tx_ms_cityname_Tiberias
tx_ms_cityname_Tripontium
tx_ms_cityname_Verulamium
tx_ms_cityname_Viroconium
]
TerritoryNames = [
tx_terr_roman_0
tx_terr_roman_1
tx_terr_roman_2
tx_terr_roman_3
tx_terr_roman_4
tx_terr_roman_5
tx_terr_roman_6
tx_terr_roman_7
tx_terr_roman_8
tx_terr_roman_9
tx_terr_roman_10
tx_terr_roman_11
tx_terr_roman_12
tx_terr_roman_13
tx_terr_roman_14
tx_terr_roman_15
tx_terr_roman_16
tx_terr_roman_17
]
PlayerNames = [
tx_player_Roman_0
tx_player_Roman_1
tx_player_Roman_2
tx_player_Roman_3
tx_player_Roman_4
tx_player_Roman_5
tx_player_Roman_6
tx_player_Roman_7
tx_player_Roman_8
]
LeaderNames = [
{ Name = tx_leader_Roman_0 crown = Military startEpoch = 1 endEpoch = 15 }
{ Name = tx_leader_Roman_1 crown = Imperial startEpoch = 1 endEpoch = 15 }
{ Name = tx_leader_Roman_2 crown = Economic startEpoch = 1 endEpoch = 15 }
]
UniqueUnits = [
UniqueUnitRoman1
UniqueUnitRoman2
UniqueUnitRoman3
]
CivAttributes = [
CivAtt_BarrWkshp_Cost
CivAtt_HInf_Dmg
]
AutoResearchedTechs = [
{
Epoch = 1
Techs = [ Military1_3
Economic1_1 Economic1_2 Economic1_4
Imperial1_1 Imperial1_3
]
}
{
Epoch = 2
Techs = [ Military2_2 Military2_3
Economic2_1 Economic2_3
Imperial2_2 Imperial2_3
]
}
{
Epoch = 3
Techs = [ Military3_4
Economic3_1 Economic3_3
Imperial3_1 Imperial3_2 Imperial3_4
]
}
{
Epoch = 4
Techs = [ Military4_4
Economic4_2 Economic4_3 Economic4_4
Imperial4_1 Imperial4_4
]
}
{
Epoch = 5
Techs = [ Military5_3 Military5_4
Economic5_2 Economic5_3
Imperial5_1 Imperial5_2
]
}
{
Epoch = 6
Techs = [ Military6_1 Military6_4
Economic6_1 Economic6_2
Imperial6_2 Imperial6_3
]
}
{
Epoch = 7
Techs = [ Military7_1 Military7_2 Military7_4
Economic7_2 Economic7_4
Imperial7_1
]
}
{
Epoch = 8
Techs = [ Military8_3 Military8_4
Economic8_3 Economic8_4
Imperial8_1 Imperial8_2
]
}
{
Epoch = 9
Techs = [ Military9_4
Economic9_2 Economic9_3
Imperial9_1 Imperial9_3 Imperial9_4
]
}
{
Epoch = 10
Techs = [ Military10_2 Military10_3 Military10_4
Economic10_1 Economic10_3
Imperial10_2
]
}
{
Epoch = 11
Techs = [ Military11_3
Economic11_2 Economic11_3 Economic11_4
Imperial11_2 Imperial11_3
]
}
{
Epoch = 12
Techs = [ Military12_1 Military12_2 Military12_3
Economic12_1 Economic12_4
Imperial12_1
]
}
{
Epoch = 13
Techs = [ Military13_1 Military13_2 Military13_3
Economic13_2 Economic13_3
Imperial13_1
]
}
{
Epoch = 14
Techs = [ Military14_1 Military14_3
Economic14_2 Economic14_4
Imperial14_1 Imperial14_3
]
}
]
}
////////////////////////
// Spanish
Civilization Spanish
{
CityNames = [
tx_ms_cityname_Madrid
tx_ms_cityname_Valladolid
tx_ms_cityname_Zaragoza
tx_ms_cityname_Almeria
tx_ms_cityname_Barcelona
tx_ms_cityname_Sevilla
tx_ms_cityname_Salamanca
tx_ms_cityname_Valencia
tx_ms_cityname_Albacete
tx_ms_cityname_Granada
tx_ms_cityname_Malaga
tx_ms_cityname_Vitoria
tx_ms_cityname_Vigo
tx_ms_cityname_Finisterre
tx_ms_cityname_Santiago
]
TerritoryNames = [
tx_terr_spanish_0
tx_terr_spanish_1
tx_terr_spanish_2
tx_terr_spanish_3
tx_terr_spanish_4
tx_terr_spanish_5
tx_terr_spanish_6
tx_terr_spanish_7
tx_terr_spanish_8
tx_terr_spanish_9
tx_terr_spanish_10
tx_terr_spanish_11
tx_terr_spanish_12
tx_terr_spanish_13
tx_terr_spanish_14
]
PlayerNames = [
tx_player_German_0
tx_player_German_1
tx_player_German_2
tx_player_German_3
tx_player_German_4
tx_player_German_5
tx_player_German_6
tx_player_German_7
tx_player_German_8
]
LeaderNames = [
{ Name = tx_leader_German_0 crown = Military startEpoch = 1 endEpoch = 15 }
{ Name = tx_leader_German_1 crown = Imperial startEpoch = 1 endEpoch = 15 }
{ Name = tx_leader_German_2 crown = Economic startEpoch = 1 endEpoch = 15 }
]
UniqueUnits = [
UniqueUnitGerman1
UniqueUnitGerman2
UniqueUnitGerman3
]
CivAttributes = [
CivAtt_SpecRes_Cost
CivAtt_Hinf_Health
]
AutoResearchedTechs = [
{
Epoch = 1
Techs = [ Military1_1 Military1_3
Economic1_2 Economic1_4
Imperial1_1 Imperial1_3
]
}
{
Epoch = 2
Techs = [ Military2_1 Military2_2 Military2_3
Economic2_2 Economic2_3
Imperial2_2
]
}
{
Epoch = 3
Techs = [ Military3_1
Economic3_1 Economic3_3 Economic3_4
Imperial3_1 Imperial3_4
]
}
{
Epoch = 4
Techs = [ Military4_4
Economic4_2 Economic4_3
Imperial4_1 Imperial4_3 Imperial4_4
]
}
{
Epoch = 5
Techs = [ Military5_2 Military5_4
Economic5_2 Economic5_3
Imperial5_1 Imperial5_3
]
}
{
Epoch = 6
Techs = [ Military6_1 Military6_3
Economic6_1 Economic6_2
Imperial6_2 Imperial6_3
]
}
{
Epoch = 7
Techs = [ Military7_2 Military7_3 Military7_4
Economic7_3 Economic7_4
Imperial7_1
]
}
{
Epoch = 8
Techs = [ Military8_1 Military8_3
Economic8_3 Economic8_4
Imperial8_1 Imperial8_2
]
}
{
Epoch = 9
Techs = [ Military9_3 Military9_4
Economic9_2 Economic9_3
Imperial9_1 Imperial9_4
]
}
{
Epoch = 10
Techs = [ Military10_3 Military10_4
Economic10_2 Economic10_3
Imperial10_1 Imperial10_2
]
}
{
Epoch = 11
Techs = [ Military11_1 Military11_3
Economic11_2 Economic11_3
Imperial11_2 Imperial11_3
]
}
{
Epoch = 12
Techs = [ Military12_1 Military12_2 Military12_4
Economic12_1 Economic12_4
Imperial12_1
]
}
{
Epoch = 13
Techs = [ Military13_1 Military13_3 Military13_4
Economic13_2
Imperial13_1 Imperial13_2
]
}
{
Epoch = 14
Techs = [ Military14_1 Military14_2
Economic14_1 Economic14_2
Imperial14_1 Imperial14_4
]
}
]
}
////////////////////////
// Dutch
Civilization Dutch
{
CityNames = [
tx_ms_cityname_Amsterdam
tx_ms_cityname_Lahague
tx_ms_cityname_Rotterdam
tx_ms_cityname_Delft
tx_ms_cityname_Gouda
tx_ms_cityname_Utrecht
tx_ms_cityname_Maastricht
tx_ms_cityname_Eindhoven
tx_ms_cityname_Groningen
tx_ms_cityname_Deventer
tx_ms_cityname_Haarlem
tx_ms_cityname_Alkmaar
tx_ms_cityname_Hoorn
tx_ms_cityname_Einkhuizen
tx_ms_cityname_Dordrecht
tx_ms_cityname_Amersfoort
tx_ms_cityname_Marken
tx_ms_cityname_Volendam
tx_ms_cityname_ZaanseSchans
tx_ms_cityname_Limbourg
tx_ms_cityname_Luxembourg
tx_ms_cityname_Breda
]
TerritoryNames = [
tx_terr_dutch_0
tx_terr_dutch_1
tx_terr_dutch_2
tx_terr_dutch_3
tx_terr_dutch_4
tx_terr_dutch_5
tx_terr_dutch_6
tx_terr_dutch_7
tx_terr_dutch_8
tx_terr_dutch_9
tx_terr_dutch_10
tx_terr_dutch_11
tx_terr_dutch_12
tx_terr_dutch_13
tx_terr_dutch_14
tx_terr_dutch_15
]
PlayerNames = [
tx_player_German_0
tx_player_German_1
tx_player_German_2
tx_player_German_3
tx_player_German_4
tx_player_German_5
tx_player_German_6
tx_player_German_7
tx_player_German_8
]
LeaderNames = [
{ Name = tx_leader_German_0 crown = Military startEpoch = 1 endEpoch = 15 }
{ Name = tx_leader_German_1 crown = Imperial startEpoch = 1 endEpoch = 15 }
{ Name = tx_leader_German_2 crown = Economic startEpoch = 1 endEpoch = 15 }
]
UniqueUnits = [
UniqueUnitGerman1
UniqueUnitGerman2
UniqueUnitGerman3
]
CivAttributes = [
CivAtt_SpecRes_Cost
CivAtt_Hinf_Health
]
AutoResearchedTechs = [
{
Epoch = 1
Techs = [ Military1_1 Military1_3
Economic1_2 Economic1_4
Imperial1_1 Imperial1_3
]
}
{
Epoch = 2
Techs = [ Military2_1 Military2_2 Military2_3
Economic2_2 Economic2_3
Imperial2_2
]
}
{
Epoch = 3
Techs = [ Military3_1
Economic3_1 Economic3_3 Economic3_4
Imperial3_1 Imperial3_4
]
}
{
Epoch = 4
Techs = [ Military4_4
Economic4_2 Economic4_3
Imperial4_1 Imperial4_3 Imperial4_4
]
}
{
Epoch = 5
Techs = [ Military5_2 Military5_4
Economic5_2 Economic5_3
Imperial5_1 Imperial5_3
]
}
{
Epoch = 6
Techs = [ Military6_1 Military6_3
Economic6_1 Economic6_2
Imperial6_2 Imperial6_3
]
}
{
Epoch = 7
Techs = [ Military7_2 Military7_3 Military7_4
Economic7_3 Economic7_4
Imperial7_1
]
}
{
Epoch = 8
Techs = [ Military8_1 Military8_3
Economic8_3 Economic8_4
Imperial8_1 Imperial8_2
]
}
{
Epoch = 9
Techs = [ Military9_3 Military9_4
Economic9_2 Economic9_3
Imperial9_1 Imperial9_4
]
}
{
Epoch = 10
Techs = [ Military10_3 Military10_4
Economic10_2 Economic10_3
Imperial10_1 Imperial10_2
]
}
{
Epoch = 11
Techs = [ Military11_1 Military11_3
Economic11_2 Economic11_3
Imperial11_2 Imperial11_3
]
}
{
Epoch = 12
Techs = [ Military12_1 Military12_2 Military12_4
Economic12_1 Economic12_4
Imperial12_1
]
}
{
Epoch = 13
Techs = [ Military13_1 Military13_3 Military13_4
Economic13_2
Imperial13_1 Imperial13_2
]
}
{
Epoch = 14
Techs = [ Military14_1 Military14_2
Economic14_1 Economic14_2
Imperial14_1 Imperial14_4
]
}
]
}
////////////////////////
// Portuguese
Civilization Portuguese
{
CityNames = [
tx_ms_cityname_Lisboa
tx_ms_cityname_Oporto
tx_ms_cityname_Coimbra
tx_ms_cityname_Braga
tx_ms_cityname_Evora
tx_ms_cityname_Setubal
tx_ms_cityname_Braganca
tx_ms_cityname_Vianadocastelo
tx_ms_cityname_Guimaraes
tx_ms_cityname_Santarem
]
TerritoryNames = [
tx_terr_portuguese_0
tx_terr_portuguese_1
tx_terr_portuguese_2
tx_terr_portuguese_3
tx_terr_portuguese_4
tx_terr_portuguese_5
tx_terr_portuguese_6
tx_terr_portuguese_7
]
PlayerNames = [
tx_player_German_0
tx_player_German_1
tx_player_German_2
tx_player_German_3
tx_player_German_4
tx_player_German_5
tx_player_German_6
tx_player_German_7
tx_player_German_8
]
LeaderNames = [
{ Name = tx_leader_German_0 crown = Military startEpoch = 1 endEpoch = 15 }
{ Name = tx_leader_German_1 crown = Imperial startEpoch = 1 endEpoch = 15 }
{ Name = tx_leader_German_2 crown = Economic startEpoch = 1 endEpoch = 15 }
]
UniqueUnits = [
UniqueUnitGerman1
UniqueUnitGerman2
UniqueUnitGerman3
]
CivAttributes = [
CivAtt_SpecRes_Cost
CivAtt_Hinf_Health
]
AutoResearchedTechs = [
{
Epoch = 1
Techs = [ Military1_1 Military1_3
Economic1_2 Economic1_4
Imperial1_1 Imperial1_3
]
}
{
Epoch = 2
Techs = [ Military2_1 Military2_2 Military2_3
Economic2_2 Economic2_3
Imperial2_2
]
}
{
Epoch = 3
Techs = [ Military3_1
Economic3_1 Economic3_3 Economic3_4
Imperial3_1 Imperial3_4
]
}
{
Epoch = 4
Techs = [ Military4_4
Economic4_2 Economic4_3
Imperial4_1 Imperial4_3 Imperial4_4
]
}
{
Epoch = 5
Techs = [ Military5_2 Military5_4
Economic5_2 Economic5_3
Imperial5_1 Imperial5_3
]
}
{
Epoch = 6
Techs = [ Military6_1 Military6_3
Economic6_1 Economic6_2
Imperial6_2 Imperial6_3
]
}
{
Epoch = 7
Techs = [ Military7_2 Military7_3 Military7_4
Economic7_3 Economic7_4
Imperial7_1
]
}
{
Epoch = 8
Techs = [ Military8_1 Military8_3
Economic8_3 Economic8_4
Imperial8_1 Imperial8_2
]
}
{
Epoch = 9
Techs = [ Military9_3 Military9_4
Economic9_2 Economic9_3
Imperial9_1 Imperial9_4
]
}
{
Epoch = 10
Techs = [ Military10_3 Military10_4
Economic10_2 Economic10_3
Imperial10_1 Imperial10_2
]
}
{
Epoch = 11
Techs = [ Military11_1 Military11_3
Economic11_2 Economic11_3
Imperial11_2 Imperial11_3
]
}
{
Epoch = 12
Techs = [ Military12_1 Military12_2 Military12_4
Economic12_1 Economic12_4
Imperial12_1
]
}
{
Epoch = 13
Techs = [ Military13_1 Military13_3 Military13_4
Economic13_2
Imperial13_1 Imperial13_2
]
}
{
Epoch = 14
Techs = [ Military14_1 Military14_2
Economic14_1 Economic14_2
Imperial14_1 Imperial14_4
]
}
]
}
////////////////////////
// French
Civilization French
{
CityNames = [
tx_ms_cityname_Paris
tx_ms_cityname_Marseille
tx_ms_cityname_Lyon
etc
I hope it's not so boring to read so much code, and apologize for the same reason.
Thanks, in advance,
Gonzalo