Military Doctrines / Promotion System Rework

Military Doctrines / Promotion System Rework 1.703

Hi Ewok

Just started a new game using v 1.44. Unfortunately I have a consistent crash after Turn 3. I haven't been able to track down what the cause is (I use a lot of mods), but one thing I did notice was that the last items in lua.log relates to Military Doctrines.Of course that's not the same as to say that this mod is the culprit (!), but maybe you can derive something out of this?
Spoiler lua.log :

DebugHotloadCache: GameDebug initialized!
Test: Test.LUA loaded!
JoiningRoom: OnFinishedGameplayContentConfigure() g_waitingForContentConfigure=true
LoadScreen: true
LoadScreen: false
LoadScreen: true
DoctrineEvents: 1st Session skip
TradeOverview: Initializing BTS Trade Overview
TradeOverview: Initializing BTS Trade Support Tracker
GreatPeoplePopup: WARNING: Could not find icon atlas entry for the individual Great Person 'ICON_GREAT_PERSON_INDIVIDUAL_MICHELANGELO', using default instead.
GreatPeoplePopup: WARNING: Could not find icon atlas entry for the individual Great Person 'ICON_GREAT_PERSON_INDIVIDUAL_BI_SHENG', using default instead.
GreatPeoplePopup: WARNING: Could not find icon atlas entry for the individual Great Person 'ICON_GREAT_PERSON_INDIVIDUAL_SUN_TZU', using default instead.
GreatPeoplePopup: WARNING: Could not find icon atlas entry for the individual Great Person 'ICON_GREAT_PERSON_INDIVIDUAL_ZHANG_QIAN', using default instead.
GreatPeoplePopup: WARNING: Could not find icon atlas entry for the individual Great Person 'ICON_GREAT_PERSON_INDIVIDUAL_YATSUHASHI_KENGYO', using default instead.
GreatPeoplePopup: WARNING: Could not find icon atlas entry for the individual Great Person 'ICON_GREAT_PERSON_INDIVIDUAL_SIMON_PETER', using default instead.
GreatPeoplePopup: WARNING: Could not find icon atlas entry for the individual Great Person 'ICON_GREAT_PERSON_INDIVIDUAL_EUCLID', using default instead.
GreatPeoplePopup: WARNING: Could not find icon atlas entry for the individual Great Person 'ICON_GREAT_PERSON_INDIVIDUAL_JFD_JAIMINI', using default instead.
GreatPeoplePopup: WARNING: Could not find icon atlas entry for the individual Great Person 'ICON_GREAT_PERSON_INDIVIDUAL_HOMER', using default instead.
TradeRouteChooser: Initializing BTS Trade Route Chooser
TradeRouteChooser: Initializing BTS Trade Support Automater
TradeRouteChooser: No running route data was found, on load.
TradeOriginChooser: Initializing BTS Trade Origin Chooser
InGame: Loading InGame UI - C:/Users/Joakim/Documents/My Games/Sid Meier's Civilization VI/Mods/Combat and Stacking Overhaul/CSO_InGame
CSO_InGame: Combat and Stacking Overhaul version Alpha .1 (2016) by Gedemon
CSO_InGame: loading CSO_InGame.lua
InGame: Loading InGame UI - C:/Users/Joakim/Documents/My Games/Sid Meier's Civilization VI/Mods/NumpadUnitMove/NumpadUnitMove
InGame: Loading InGame UI - C:/Users/Joakim/Documents/My Games/Sid Meier's Civilization VI/Mods/Sukritact's Policy Manager/UI/Suk_PolicyManager
TutorialUIRoot: Loading bank of items for tutorial scenario: 'BASE'
LoadScreen: OnLoadGameViewStateDone
TradeRouteChooser: No running route data was found, on load.
LaunchBar: Doctrine Total: 0
LaunchBar: Doctrine Cost: 30
LaunchBar: Doctrine Total lvl 1: 0
LaunchBar: Doctrine Total lvl 2: 0
LaunchBar: Doctrine Total lvl 3: 0
LaunchBar: Doctrine Total: 0
LaunchBar: Doctrine Cost: 30
LaunchBar: Doctrine Total lvl 1: 0
LaunchBar: Doctrine Total lvl 2: 0
LaunchBar: Doctrine Total lvl 3: 0
LaunchBar: Doctrine Total: 0
LaunchBar: Doctrine Cost: 30
LaunchBar: Doctrine Total lvl 1: 0
LaunchBar: Doctrine Total lvl 2: 0
LaunchBar: Doctrine Total lvl 3: 0
LaunchBar: Doctrine Total: 0
LaunchBar: Doctrine Cost: 30
LaunchBar: Doctrine Total lvl 1: 0
LaunchBar: Doctrine Total lvl 2: 0
LaunchBar: Doctrine Total lvl 3: 0
LaunchBar: Doctrine Total: 0
LaunchBar: Doctrine Cost: 30
LaunchBar: Doctrine Total lvl 1: 0
LaunchBar: Doctrine Total lvl 2: 0
LaunchBar: Doctrine Total lvl 3: 0
LaunchBar: Doctrine Total: 0
LaunchBar: Doctrine Cost: 30
LaunchBar: Doctrine Total lvl 1: 0
LaunchBar: Doctrine Total lvl 2: 0
LaunchBar: Doctrine Total lvl 3: 0
LaunchBar: Doctrine Total: 0
LaunchBar: Doctrine Cost: 30
LaunchBar: Doctrine Total lvl 1: 0
LaunchBar: Doctrine Total lvl 2: 0
LaunchBar: Doctrine Total lvl 3: 0
LaunchBar: Doctrine Total: 0
LaunchBar: Doctrine Cost: 30
LaunchBar: Doctrine Total lvl 1: 0
LaunchBar: Doctrine Total lvl 2: 0
LaunchBar: Doctrine Total lvl 3: 0
LaunchBar: Doctrine Total: 0
LaunchBar: Doctrine Cost: 30
LaunchBar: Doctrine Total lvl 1: 0
LaunchBar: Doctrine Total lvl 2: 0
LaunchBar: Doctrine Total lvl 3: 0
LaunchBar: Doctrine Total: 0
LaunchBar: Doctrine Cost: 30
LaunchBar: Doctrine Total lvl 1: 0
LaunchBar: Doctrine Total lvl 2: 0
LaunchBar: Doctrine Total lvl 3: 0
LaunchBar: Doctrine Total: 0
LaunchBar: Doctrine Cost: 30
LaunchBar: Doctrine Total lvl 1: 0
LaunchBar: Doctrine Total lvl 2: 0
LaunchBar: Doctrine Total lvl 3: 0


Edit: Tried a couple of things: First I revealed map and deleted all units that could start a combat on the following turn (only one actually, a barbarian spearman who killed a City State Slinger in on turn) -> No CTD. Then I loaded the game again, revealed map and tried hitting Next turn without deleting the units. Also this time I had no CTD (weird...) but now I get an error message in lua.log:
Runtime Error: C:/Users/Joakim/Documents/My Games/Sid Meier's Civilization VI/Mods/Military Doctrines/DoctrineEvents.lua:112: attempt to index a nil value
stack traceback:
C:/Users/Joakim/Documents/My Games/Sid Meier's Civilization VI/Mods/Military Doctrines/DoctrineEvents.lua:112: in function 'OnCombat'
[C]: in function 'func'

Edit2: And now after letting my PC rest for an hour or so I decided to come back and it doesn't crash. I guess that's a good thing but to tell you the truth I'm just about fed up with Civ since the Summer patch and I haven't even managed to really start playing a new game yet. It broke so many mods and some times it feels really inconsistent, e.g. something works, then suddenly it doesn't, then it works again, ... (sorry, guess that was a rant :lol: And it definitely wasn't aimed at you - I really think you've started something that has the potential to be a great mod :goodjob:). Well I guess the error message from above is still relevant..?

\Skodkim
 
Last edited:
I finished first game with this mod (promotions/doctrines this version and before summer patch Civ ver) and here is my feedback:

In general wars were more intresting due promotions/doctrines, which are affecting a lot unit strenght and strategy. Deity, Marathon, Duel size, 4 players and Domination victroy on turn 486. Used only melee, range and siege units.

There is too many doctrines, which makes hard to keep track on them. In the end you just try get every possible doctrine and don't pay attention on their uniqueness. Also they do not fit on 'combat UI' one page and in the end there can be 3+ pages of them on 'Combat UI'.
Possible solution(s): Line up human and AI doctrines on combat UI, so it is easy to compare what is affecting the current combat. Group doctrine types and next doctrine level will replace previous doctrine (Simplified example: +4 flank attack will replace +2 flank attack). Add promotons unique icons to above the unit icon (something like this: https://forums.civfanatics.com/threads/promotions-displayed-with-unit-icon.389192/)
Spoiler FlagPromotions from Civ5 :



Barbs are not using promitions/doctrines, which makes them weak soon. Players can easily get "free exp" by killing a lot of barbs (which is bad due there will be too many doctrines, IMO). AI is killing also barbs and levels up well. Players who don't have a way/access to kill barbs, will suffer in later wars.
Possible solution(s): add a hard cap to exp, what Civs can get from killing barbs. Also maybe barbs start with era specific promotions to compromise their weakness.

Spoiler Mods I'm using: :

  • cqui
  • Military Doctrines
  • Quo's Combined Tweaks
  • Research Reminder
  • Smoother Difficulty

Finally, I wanted to thank you again and I really enjoyed your mod! I will start new game with latest versions soon ;)
 
Last edited:
Ewok-Bacon-Bits updated Military Doctrines / Promotion System Rework with a new update entry:

Checks for a nil value onCombat

- Checks for a nil value onCombat

Read the rest of this update entry...


@skodkim I'm not sure why there would be a crash in all my playtests I never got one but I did get that error. I don't think it would have effected anything vital or the doctrine count but who knows.

@Puer Answering the second point first, I think that is a good idea I should probably put a cap on barbarian gain. My thought was to create a different system for the barbarians so they get some promotions/or doctrines that are unique to them which could make them more challenging.

Answering the first, I could perhaps do something like that having images as a short hand for the doctrine description, it is a good idea. I just know making all those icons and changing the UI will take some time. If I did that I would most likely put it in the unit panel, I could do the veterancies on the unit flag but I think there are too many doctrines too place there. A problem with the Unit panel is that there are too many promotions and it exits off of the screen so that would help relieve that perhaps too.

The barbarian cap I will probably get done soon, the others I might put on hold because I'm a bit focused on the lotr mod and I know that those items will take awile. But I will definitely get to them, I also wanted to add a support branch also in all likeliness though I'm not sure how they will gain doctrine XP yet.



Thanks for all the feedback!
 
Last edited:
Good job on the mod! :queen:

I noticed when testing mods today (among other things v1.45) that Recon Units gain no experience from combat. Is this intended?

\Skodkim
 
They should still be getting xp from combat I'll look into that


EDIT: @skodkim I've tested it and recon units specifically scouts for me were getting XP just fine
 
Last edited:
They should still be getting xp from combat I'll look into that


EDIT: @skodkim I've tested it and recon units specifically scouts for me were getting XP just fine
Sorry, only just saw your post right now (there's no notifications for edits to posts and I had already read your original post). That's weird. I'll give it a go again asap, hopefully later today.

\Skodkim
 
They should still be getting xp from combat I'll look into that


EDIT: @skodkim I've tested it and recon units specifically scouts for me were getting XP just fine
Just tried again and unfortyunately it doesn't work for me. In my small test archers and warriors gained XP from combat (attacked barb archer) while my scout didn't.

I use a lot of mods so it may be a mod conflict.

Spoiler Mods used :

Additional Buildings
Better Trade Screen
CiVI Policies
Dags Trade Route Mod
Diverse Beliefs
DynamicDiplomacy
DynamicDiplomacyJadwiga
Even_MOAR_Units_Aztec
Even_MOAR_Units_Poland
Iceni
Illyrian Empire
Immersive Dialogue
Improved_FOW
JFD's Italian Civilization Pack
JFD's Leader Pack (America)
JFD's Leader Pack (Aztecs)
JFD's Leader Pack (China)
JFD's Leader Pack (England)
JFD's Leader Pack (France)
JFD's Leader Pack (Germany)
JFD's Leader Pack (Greece)
JFD's Leader Pack (India)
JFD's Leader Pack (Japan)
JFD's Leader Pack (Norway)
JFD's Leader Pack (Nubia)
JFD's Leader Pack (Poland)
JFD's Leader Pack (Russia)
JFD's Leader Pack (Spain)
JFD's Rule With Faith (v9c)
Military Doctrines (v1_45)
MOAR_Units
MoarUnitsMacedonAndPersia
Nirvana
NumpadUnitMove
PhotoKinetik
Policy Bonanza
ProductionQueue
Reformen
Skodkim Mod
Smoother Difficulty
Sukritact's Policy Manager
TCS Buffed Resources
TCS Improved Water Yields
Tomatekhs Historical Religions


If you could point me in the right direction it would be so much easier to search, e.g. do you know if you can disable promotions for scouts via xml/sql or should I look for something from lua (and if so what do I search for?).

Logs seem clean. Here's part of lua.log:
Spoiler Relevant Part of lua.log :
Map Script: Feature Type: 13, Valid Hexes: 11
Map Script: Feature Type: 14, Valid Hexes: 3
Map Script: Feature Type: 15, Valid Hexes: 34
Map Script: Feature Type: 16, Valid Hexes: 122
Map Script: Feature Type: 17, Valid Hexes: 0
Map Script: Num wonders with valid location: 10
Map Script: Selected Wonder = 1, Random Score = 94
Map Script: Set Wonder with Feature ID of 7 at location (42, 14)
Map Script: Selected Wonder = 3, Random Score = 83
Map Script: Set Wonder with Feature ID of 9 at location (42, 44)
Map Script: Selected Wonder = 9, Random Score = 62
Map Script: Set Wonder with Feature ID of 15 at location (64, 30)
Map Script: Selected Wonder = 2, Random Score = 48
Map Script: Set Wonder with Feature ID of 8 at location (16, 31)
Map Script: In ResourceGenerator.Create()
Map Script: Placing resources
Map Script: Creating start plot database.
Map Script: -------------------------------
Map Script: Map Generation - Adding Goodies
Map Script: -------------------------------
DoctrineEvents: 1st Session skip
TradeOverview: Initializing BTS Trade Overview
TradeOverview: Initializing BTS Trade Support Tracker
TradeOverview: No running route data was found, on load.
TradeRouteChooser: Initializing BTS Trade Route Chooser
TradeRouteChooser: Initializing BTS Trade Support Automater
TradeRouteChooser: No running route data was found, on load.
TradeOriginChooser: Initializing BTS Trade Origin Chooser
InGame: Loading InGame UI - C:/Users/Joakim/Documents/My Games/Sid Meier's Civilization VI/Mods/NumpadUnitMove/NumpadUnitMove
InGame: Loading InGame UI - C:/Users/Joakim/Documents/My Games/Sid Meier's Civilization VI/Mods/Sukritact's Policy Manager/UI/Suk_PolicyManager
TutorialUIRoot: Loading bank of items for tutorial scenario: 'BASE'
LoadScreen: OnLoadGameViewStateDone
TradeRouteChooser: No running route data was found, on load.
WorldInput: Debug placing!!!
WorldInput: Debug placing!!!
WorldInput: Debug placing!!!
WorldInput: Debug placing!!!
LaunchBar: !@5@#0##0##0##0##0##0#!!@3@#0##0##0##0##0##0#!!@2@#0##0##0##0##0##0#!!@1@#0##0##0##0##0##0#!!@0@#0##0##0##0##0##0#!
LaunchBar: XP Table: !@5@#0##0##0##0##0##0#!!@3@#0##0##0##0##0##0#!!@2@#0##0##0##0##0##0#!!@1@#0##0##0##0##0##0#!!@0@#0##0##0##0##0##0#!
LaunchBar: IDT: 0
LaunchBar: #Doctrines = PROMOTION_IMD_A_DESIGNATED_SIGNALS
LaunchBar: #Doctrines = PROMOTION_IMD_A_DEFENSIVE_MARCH
LaunchBar: #Doctrines = PROMOTION_IMD_A_TORTOISE
LaunchBar: #Doctrines = PROMOTION_IMD_A_MARTIAL_DISCIPLINE
LaunchBar: #Doctrines = PROMOTION_IMD_A_PHALANX
LaunchBar: #Doctrines = PROMOTION_IMD_A_ECHELON
LaunchBar: #Doctrines = PROMOTION_IMD_A_SCHILTRON
LaunchBar: #Doctrines = PROMOTION_IMD_A_CIRCULAR_FORMATIONS
LaunchBar: #Doctrines = PROMOTION_IMD_B_INFANTRY_STRUCTURE
LaunchBar: #Doctrines = PROMOTION_IMD_B_SECTION_MANEUVERS
LaunchBar: #Doctrines = PROMOTION_IMD_B_CHAIN_OF_COMMAND
LaunchBar: #Doctrines = PROMOTION_IMD_B_INFANTRY_SQUARE
LaunchBar: #Doctrines = PROMOTION_IMD_C_SPECIAL_FORCES
LaunchBar: #Doctrines = PROMOTION_IMD_C_ELASTIC_DEFENSE
LaunchBar: false
LaunchBar: IDT: 0
LaunchBar: #Doctrines = PROMOTION_IMD_A_DESIGNATED_SIGNALS
LaunchBar: #Doctrines = PROMOTION_IMD_A_DEFENSIVE_MARCH
LaunchBar: #Doctrines = PROMOTION_IMD_A_TORTOISE
LaunchBar: #Doctrines = PROMOTION_IMD_A_MARTIAL_DISCIPLINE
LaunchBar: #Doctrines = PROMOTION_IMD_A_PHALANX
LaunchBar: #Doctrines = PROMOTION_IMD_A_ECHELON
LaunchBar: #Doctrines = PROMOTION_IMD_A_SCHILTRON
LaunchBar: #Doctrines = PROMOTION_IMD_A_CIRCULAR_FORMATIONS
LaunchBar: #Doctrines = PROMOTION_IMD_B_INFANTRY_STRUCTURE
LaunchBar: #Doctrines = PROMOTION_IMD_B_SECTION_MANEUVERS
LaunchBar: #Doctrines = PROMOTION_IMD_B_CHAIN_OF_COMMAND
LaunchBar: #Doctrines = PROMOTION_IMD_B_INFANTRY_SQUARE
LaunchBar: #Doctrines = PROMOTION_IMD_C_SPECIAL_FORCES
LaunchBar: #Doctrines = PROMOTION_IMD_C_ELASTIC_DEFENSE
LaunchBar: IDT: 0
LaunchBar: #Doctrines = PROMOTION_SMD_A_PLANNED_EXPEDITIONS
LaunchBar: #Doctrines = PROMOTION_SMD_A_CHECKPOINTS
LaunchBar: #Doctrines = PROMOTION_SMD_A_TRAPS
LaunchBar: #Doctrines = PROMOTION_SMD_A_NIGHT_OPERATIONS
LaunchBar: #Doctrines = PROMOTION_SMD_A_RECON_SIGNALLERS
LaunchBar: #Doctrines = PROMOTION_SMD_A_ARMY_WATCH
LaunchBar: #Doctrines = PROMOTION_SMD_B_CAMOFLAUGE
LaunchBar: #Doctrines = PROMOTION_SMD_B_STRATEGIC_SABOTAGE
LaunchBar: #Doctrines = PROMOTION_SMD_B_SUPPLY_CONSERVATION
LaunchBar: IDT: 0
LaunchBar: #Doctrines = PROMOTION_CMD_A_INFANTRY_SUPPORT
LaunchBar: #Doctrines = PROMOTION_CMD_A_SCREENING
LaunchBar: #Doctrines = PROMOTION_CMD_A_CONDENSED_CHARGES
LaunchBar: #Doctrines = PROMOTION_CMD_A_CAVALRY_SCOUTING
LaunchBar: #Doctrines = PROMOTION_CMD_A_DECEPTION_MANEUVERS
LaunchBar: #Doctrines = PROMOTION_CMD_A_PURSUIT_TACTICS
LaunchBar: #Doctrines = PROMOTION_CMD_A_CHARGE_CYCLES
LaunchBar: #Doctrines = PROMOTION_CMD_A_WEDGE_FORMATION
LaunchBar: #Doctrines = PROMOTION_CMD_B_ENVELOPMENT_MANEUVERS
LaunchBar: #Doctrines = PROMOTION_CMD_B_FLEXIBLE_COMMAND
LaunchBar: #Doctrines = PROMOTION_CMD_B_SUPPLY_TRAINS
LaunchBar: #Doctrines = PROMOTION_CMD_B_LOGISTICAL_RAIDING
LaunchBar: #Doctrines = PROMOTION_CMD_C_FOCAL_POINT
LaunchBar: #Doctrines = PROMOTION_CMD_C_DEEP_BATTLE
LaunchBar: IDT: 0
LaunchBar: #Doctrines = PROMOTION_RMD_A_RANGE_FINDING
LaunchBar: #Doctrines = PROMOTION_RMD_A_DEFENSIVE_EMPLACEMENTS
LaunchBar: #Doctrines = PROMOTION_RMD_A_VOLLEY
LaunchBar: #Doctrines = PROMOTION_RMD_A_INFANTRY_INTEGRATION
LaunchBar: #Doctrines = PROMOTION_RMD_A_FOCUS_ATTACK
LaunchBar: #Doctrines = PROMOTION_RMD_A_INCENDIARIES
LaunchBar: #Doctrines = PROMOTION_RMD_A_SKIRMISHING
LaunchBar: #Doctrines = PROMOTION_RMD_A_ATTACK_ROTATION
LaunchBar: #Doctrines = PROMOTION_RMD_B_SUPPLY_CHAINS
LaunchBar: #Doctrines = PROMOTION_RMD_B_STRATEGIC_PLACEMENT
LaunchBar: #Doctrines = PROMOTION_RMD_B_SUPPRESSION
LaunchBar: #Doctrines = PROMOTION_RMD_B_BATTERIES
LaunchBar: #Doctrines = PROMOTION_RMD_C_FORWARD_OBSERVERS
LaunchBar: #Doctrines = PROMOTION_RMD_C_OVERWHELMING_FIREPOWER
LaunchBar: IDT: 0
LaunchBar: #Doctrines = PROMOTION_NMD_A_WEATHER_GAGING
LaunchBar: #Doctrines = PROMOTION_NMD_A_CONCURRENT_FIRE
LaunchBar: #Doctrines = PROMOTION_NMD_A_COMMAND_SHIPS
LaunchBar: #Doctrines = PROMOTION_NMD_A_CRECENT_FORMATION
LaunchBar: #Doctrines = PROMOTION_NMD_A_RAMMING_TECHNIQUE
LaunchBar: #Doctrines = PROMOTION_NMD_A_DEDICATED_MARINES
LaunchBar: #Doctrines = PROMOTION_NMD_A_SEA_LAND_BATTLE
LaunchBar: #Doctrines = PROMOTION_NMD_A_FREQUENT_CAREENING
LaunchBar: #Doctrines = PROMOTION_NMD_B_CONVOY_SAILING
LaunchBar: Naval 1 Total: 0
LaunchBar: Naval 2 Total: 0
LaunchBar: #Doctrines = PROMOTION_NMD_B_LINE_OF_BATTLE
LaunchBar: Naval 1 Total: 0
LaunchBar: Naval 2 Total: 0
LaunchBar: #Doctrines = PROMOTION_NMD_B_FLAG_ORDERS
LaunchBar: Naval 1 Total: 0
LaunchBar: Naval 2 Total: 0
LaunchBar: #Doctrines = PROMOTION_NMD_B_PATROL_BOATS
LaunchBar: Naval 1 Total: 0
LaunchBar: Naval 2 Total: 0
LaunchBar: #Doctrines = PROMOTION_NMD_C_CAPITAL_SHIP_SUPREMACY
LaunchBar: #Doctrines = PROMOTION_NMD_C_WOLFPACKS
LaunchBar: IDT: 0
LaunchBar: #Doctrines = PROMOTION_AMD_A_DIVE_BOMBING
LaunchBar: #Doctrines = PROMOTION_AMD_A_GROUND_INTEGRATION
LaunchBar: #Doctrines = PROMOTION_AMD_A_FORMATION_FLYING
LaunchBar: #Doctrines = PROMOTION_AMD_A_FIGHTER_SWEEPS
LaunchBar: #Doctrines = PROMOTION_AMD_A_ALTITUDE_FLYING
LaunchBar: #Doctrines = PROMOTION_AMD_A_MASSED_RAIDS
LaunchBar: #Doctrines = PROMOTION_AMD_B_AIR_NAVY_BATTLE
LaunchBar: #Doctrines = PROMOTION_AMD_B_BAITING_MANEUVERS
LaunchBar: #Doctrines = PROMOTION_AMD_B_CAROUSEL_BOMBING
LaunchBar: !@5@#0##0##0##0##0##0#!!@3@#0##0##0##0##0##0#!!@2@#0##0##0##0##0##0#!!@1@#0##0##0##0##0##0#!!@0@#0##0##0##4##0##0#!
LaunchBar: XP Table: !@5@#0##0##0##0##0##0#!!@3@#0##0##0##0##0##0#!!@2@#0##0##0##0##0##0#!!@1@#0##0##0##0##0##0#!!@0@#0##0##0##4##0##0#!
LaunchBar: IDT: 0
LaunchBar: #Doctrines = PROMOTION_AMD_A_DIVE_BOMBING
LaunchBar: #Doctrines = PROMOTION_AMD_A_GROUND_INTEGRATION
LaunchBar: #Doctrines = PROMOTION_AMD_A_FORMATION_FLYING
LaunchBar: #Doctrines = PROMOTION_AMD_A_FIGHTER_SWEEPS
LaunchBar: #Doctrines = PROMOTION_AMD_A_ALTITUDE_FLYING
LaunchBar: #Doctrines = PROMOTION_AMD_A_MASSED_RAIDS
LaunchBar: #Doctrines = PROMOTION_AMD_B_AIR_NAVY_BATTLE
LaunchBar: #Doctrines = PROMOTION_AMD_B_BAITING_MANEUVERS
LaunchBar: #Doctrines = PROMOTION_AMD_B_CAROUSEL_BOMBING
LaunchBar: false
LaunchBar: IDT: 0
LaunchBar: #Doctrines = PROMOTION_IMD_A_DESIGNATED_SIGNALS
LaunchBar: #Doctrines = PROMOTION_IMD_A_DEFENSIVE_MARCH
LaunchBar: #Doctrines = PROMOTION_IMD_A_TORTOISE
LaunchBar: #Doctrines = PROMOTION_IMD_A_MARTIAL_DISCIPLINE
LaunchBar: #Doctrines = PROMOTION_IMD_A_PHALANX
LaunchBar: #Doctrines = PROMOTION_IMD_A_ECHELON
LaunchBar: #Doctrines = PROMOTION_IMD_A_SCHILTRON
LaunchBar: #Doctrines = PROMOTION_IMD_A_CIRCULAR_FORMATIONS
LaunchBar: #Doctrines = PROMOTION_IMD_B_INFANTRY_STRUCTURE
LaunchBar: #Doctrines = PROMOTION_IMD_B_SECTION_MANEUVERS
LaunchBar: #Doctrines = PROMOTION_IMD_B_CHAIN_OF_COMMAND
LaunchBar: #Doctrines = PROMOTION_IMD_B_INFANTRY_SQUARE
LaunchBar: #Doctrines = PROMOTION_IMD_C_SPECIAL_FORCES
LaunchBar: #Doctrines = PROMOTION_IMD_C_ELASTIC_DEFENSE
LaunchBar: IDT: 0
LaunchBar: #Doctrines = PROMOTION_SMD_A_PLANNED_EXPEDITIONS
LaunchBar: #Doctrines = PROMOTION_SMD_A_CHECKPOINTS
LaunchBar: #Doctrines = PROMOTION_SMD_A_TRAPS
LaunchBar: #Doctrines = PROMOTION_SMD_A_NIGHT_OPERATIONS
LaunchBar: #Doctrines = PROMOTION_SMD_A_RECON_SIGNALLERS
LaunchBar: #Doctrines = PROMOTION_SMD_A_ARMY_WATCH
LaunchBar: #Doctrines = PROMOTION_SMD_B_CAMOFLAUGE
LaunchBar: #Doctrines = PROMOTION_SMD_B_STRATEGIC_SABOTAGE
LaunchBar: #Doctrines = PROMOTION_SMD_B_SUPPLY_CONSERVATION
LaunchBar: IDT: 0
LaunchBar: #Doctrines = PROMOTION_CMD_A_INFANTRY_SUPPORT
LaunchBar: #Doctrines = PROMOTION_CMD_A_SCREENING
LaunchBar: #Doctrines = PROMOTION_CMD_A_CONDENSED_CHARGES
LaunchBar: #Doctrines = PROMOTION_CMD_A_CAVALRY_SCOUTING
LaunchBar: #Doctrines = PROMOTION_CMD_A_DECEPTION_MANEUVERS
LaunchBar: #Doctrines = PROMOTION_CMD_A_PURSUIT_TACTICS
LaunchBar: #Doctrines = PROMOTION_CMD_A_CHARGE_CYCLES
LaunchBar: #Doctrines = PROMOTION_CMD_A_WEDGE_FORMATION
LaunchBar: #Doctrines = PROMOTION_CMD_B_ENVELOPMENT_MANEUVERS
LaunchBar: #Doctrines = PROMOTION_CMD_B_FLEXIBLE_COMMAND
LaunchBar: #Doctrines = PROMOTION_CMD_B_SUPPLY_TRAINS
LaunchBar: #Doctrines = PROMOTION_CMD_B_LOGISTICAL_RAIDING
LaunchBar: #Doctrines = PROMOTION_CMD_C_FOCAL_POINT
LaunchBar: #Doctrines = PROMOTION_CMD_C_DEEP_BATTLE
LaunchBar: IDT: 0
LaunchBar: #Doctrines = PROMOTION_RMD_A_RANGE_FINDING
LaunchBar: #Doctrines = PROMOTION_RMD_A_DEFENSIVE_EMPLACEMENTS
LaunchBar: #Doctrines = PROMOTION_RMD_A_VOLLEY
LaunchBar: #Doctrines = PROMOTION_RMD_A_INFANTRY_INTEGRATION
LaunchBar: #Doctrines = PROMOTION_RMD_A_FOCUS_ATTACK
LaunchBar: #Doctrines = PROMOTION_RMD_A_INCENDIARIES
LaunchBar: #Doctrines = PROMOTION_RMD_A_SKIRMISHING
LaunchBar: #Doctrines = PROMOTION_RMD_A_ATTACK_ROTATION
LaunchBar: #Doctrines = PROMOTION_RMD_B_SUPPLY_CHAINS
LaunchBar: #Doctrines = PROMOTION_RMD_B_STRATEGIC_PLACEMENT
LaunchBar: #Doctrines = PROMOTION_RMD_B_SUPPRESSION
LaunchBar: #Doctrines = PROMOTION_RMD_B_BATTERIES
LaunchBar: #Doctrines = PROMOTION_RMD_C_FORWARD_OBSERVERS
LaunchBar: #Doctrines = PROMOTION_RMD_C_OVERWHELMING_FIREPOWER
LaunchBar: IDT: 0
LaunchBar: #Doctrines = PROMOTION_NMD_A_WEATHER_GAGING
LaunchBar: #Doctrines = PROMOTION_NMD_A_CONCURRENT_FIRE
LaunchBar: #Doctrines = PROMOTION_NMD_A_COMMAND_SHIPS
LaunchBar: #Doctrines = PROMOTION_NMD_A_CRECENT_FORMATION
LaunchBar: #Doctrines = PROMOTION_NMD_A_RAMMING_TECHNIQUE
LaunchBar: #Doctrines = PROMOTION_NMD_A_DEDICATED_MARINES
LaunchBar: #Doctrines = PROMOTION_NMD_A_SEA_LAND_BATTLE
LaunchBar: #Doctrines = PROMOTION_NMD_A_FREQUENT_CAREENING
LaunchBar: #Doctrines = PROMOTION_NMD_B_CONVOY_SAILING
LaunchBar: Naval 1 Total: 0
LaunchBar: Naval 2 Total: 0
LaunchBar: #Doctrines = PROMOTION_NMD_B_LINE_OF_BATTLE
LaunchBar: Naval 1 Total: 0
LaunchBar: Naval 2 Total: 0
LaunchBar: #Doctrines = PROMOTION_NMD_B_FLAG_ORDERS
LaunchBar: Naval 1 Total: 0
LaunchBar: Naval 2 Total: 0
LaunchBar: #Doctrines = PROMOTION_NMD_B_PATROL_BOATS
LaunchBar: Naval 1 Total: 0
LaunchBar: Naval 2 Total: 0
LaunchBar: #Doctrines = PROMOTION_NMD_C_CAPITAL_SHIP_SUPREMACY
LaunchBar: #Doctrines = PROMOTION_NMD_C_WOLFPACKS
LaunchBar: IDT: 0
LaunchBar: #Doctrines = PROMOTION_AMD_A_DIVE_BOMBING
LaunchBar: #Doctrines = PROMOTION_AMD_A_GROUND_INTEGRATION
LaunchBar: #Doctrines = PROMOTION_AMD_A_FORMATION_FLYING
LaunchBar: #Doctrines = PROMOTION_AMD_A_FIGHTER_SWEEPS
LaunchBar: #Doctrines = PROMOTION_AMD_A_ALTITUDE_FLYING
LaunchBar: #Doctrines = PROMOTION_AMD_A_MASSED_RAIDS
LaunchBar: #Doctrines = PROMOTION_AMD_B_AIR_NAVY_BATTLE
LaunchBar: #Doctrines = PROMOTION_AMD_B_BAITING_MANEUVERS
LaunchBar: #Doctrines = PROMOTION_AMD_B_CAROUSEL_BOMBING
DoctrineEvents: playerID: 0
LaunchBar: !@5@#0##0##0##0##0##0#!!@3@#0##0##0##0##0##0#!!@2@#0##0##0##0##0##0#!!@1@#0##0##0##0##0##0#!!@0@#4##0##0##4##0##0#!
LaunchBar: XP Table: !@5@#0##0##0##0##0##0#!!@3@#0##0##0##0##0##0#!!@2@#0##0##0##0##0##0#!!@1@#0##0##0##0##0##0#!!@0@#4##0##0##4##0##0#!
LaunchBar: IDT: 0
LaunchBar: #Doctrines = PROMOTION_AMD_A_DIVE_BOMBING
LaunchBar: #Doctrines = PROMOTION_AMD_A_GROUND_INTEGRATION
LaunchBar: #Doctrines = PROMOTION_AMD_A_FORMATION_FLYING
LaunchBar: #Doctrines = PROMOTION_AMD_A_FIGHTER_SWEEPS
LaunchBar: #Doctrines = PROMOTION_AMD_A_ALTITUDE_FLYING
LaunchBar: #Doctrines = PROMOTION_AMD_A_MASSED_RAIDS
LaunchBar: #Doctrines = PROMOTION_AMD_B_AIR_NAVY_BATTLE
LaunchBar: #Doctrines = PROMOTION_AMD_B_BAITING_MANEUVERS
LaunchBar: #Doctrines = PROMOTION_AMD_B_CAROUSEL_BOMBING
LaunchBar: false
LaunchBar: IDT: 0
LaunchBar: #Doctrines = PROMOTION_IMD_A_DESIGNATED_SIGNALS
LaunchBar: #Doctrines = PROMOTION_IMD_A_DEFENSIVE_MARCH
LaunchBar: #Doctrines = PROMOTION_IMD_A_TORTOISE
LaunchBar: #Doctrines = PROMOTION_IMD_A_MARTIAL_DISCIPLINE
LaunchBar: #Doctrines = PROMOTION_IMD_A_PHALANX
LaunchBar: #Doctrines = PROMOTION_IMD_A_ECHELON
LaunchBar: #Doctrines = PROMOTION_IMD_A_SCHILTRON
LaunchBar: #Doctrines = PROMOTION_IMD_A_CIRCULAR_FORMATIONS
LaunchBar: #Doctrines = PROMOTION_IMD_B_INFANTRY_STRUCTURE
LaunchBar: #Doctrines = PROMOTION_IMD_B_SECTION_MANEUVERS
LaunchBar: #Doctrines = PROMOTION_IMD_B_CHAIN_OF_COMMAND
LaunchBar: #Doctrines = PROMOTION_IMD_B_INFANTRY_SQUARE
LaunchBar: #Doctrines = PROMOTION_IMD_C_SPECIAL_FORCES
LaunchBar: #Doctrines = PROMOTION_IMD_C_ELASTIC_DEFENSE
LaunchBar: IDT: 0
LaunchBar: #Doctrines = PROMOTION_SMD_A_PLANNED_EXPEDITIONS
LaunchBar: #Doctrines = PROMOTION_SMD_A_CHECKPOINTS
LaunchBar: #Doctrines = PROMOTION_SMD_A_TRAPS
LaunchBar: #Doctrines = PROMOTION_SMD_A_NIGHT_OPERATIONS
LaunchBar: #Doctrines = PROMOTION_SMD_A_RECON_SIGNALLERS
LaunchBar: #Doctrines = PROMOTION_SMD_A_ARMY_WATCH
LaunchBar: #Doctrines = PROMOTION_SMD_B_CAMOFLAUGE
LaunchBar: #Doctrines = PROMOTION_SMD_B_STRATEGIC_SABOTAGE
LaunchBar: #Doctrines = PROMOTION_SMD_B_SUPPLY_CONSERVATION
LaunchBar: IDT: 0
LaunchBar: #Doctrines = PROMOTION_IMD_A_DESIGNATED_SIGNALS
LaunchBar: #Doctrines = PROMOTION_IMD_A_DEFENSIVE_MARCH
LaunchBar: #Doctrines = PROMOTION_IMD_A_TORTOISE
LaunchBar: #Doctrines = PROMOTION_IMD_A_MARTIAL_DISCIPLINE
LaunchBar: #Doctrines = PROMOTION_IMD_A_PHALANX
LaunchBar: #Doctrines = PROMOTION_IMD_A_ECHELON
LaunchBar: #Doctrines = PROMOTION_IMD_A_SCHILTRON
LaunchBar: #Doctrines = PROMOTION_IMD_A_CIRCULAR_FORMATIONS
LaunchBar: #Doctrines = PROMOTION_IMD_B_INFANTRY_STRUCTURE
LaunchBar: #Doctrines = PROMOTION_IMD_B_SECTION_MANEUVERS
LaunchBar: #Doctrines = PROMOTION_IMD_B_CHAIN_OF_COMMAND
LaunchBar: #Doctrines = PROMOTION_IMD_B_INFANTRY_SQUARE
LaunchBar: #Doctrines = PROMOTION_IMD_C_SPECIAL_FORCES
LaunchBar: #Doctrines = PROMOTION_IMD_C_ELASTIC_DEFENSE
LaunchBar: IDT: 0
LaunchBar: #Doctrines = PROMOTION_SMD_A_PLANNED_EXPEDITIONS
LaunchBar: #Doctrines = PROMOTION_SMD_A_CHECKPOINTS
LaunchBar: #Doctrines = PROMOTION_SMD_A_TRAPS
LaunchBar: #Doctrines = PROMOTION_SMD_A_NIGHT_OPERATIONS
LaunchBar: #Doctrines = PROMOTION_SMD_A_RECON_SIGNALLERS
LaunchBar: #Doctrines = PROMOTION_SMD_A_ARMY_WATCH
LaunchBar: #Doctrines = PROMOTION_SMD_B_CAMOFLAUGE
LaunchBar: #Doctrines = PROMOTION_SMD_B_STRATEGIC_SABOTAGE
LaunchBar: #Doctrines = PROMOTION_SMD_B_SUPPLY_CONSERVATION
LaunchBar: IDT: 0
LaunchBar: #Doctrines = PROMOTION_CMD_A_INFANTRY_SUPPORT
LaunchBar: #Doctrines = PROMOTION_CMD_A_SCREENING
LaunchBar: #Doctrines = PROMOTION_CMD_A_CONDENSED_CHARGES
LaunchBar: #Doctrines = PROMOTION_CMD_A_CAVALRY_SCOUTING
LaunchBar: #Doctrines = PROMOTION_CMD_A_DECEPTION_MANEUVERS
LaunchBar: #Doctrines = PROMOTION_CMD_A_PURSUIT_TACTICS
LaunchBar: #Doctrines = PROMOTION_CMD_A_CHARGE_CYCLES
LaunchBar: #Doctrines = PROMOTION_CMD_A_WEDGE_FORMATION
LaunchBar: #Doctrines = PROMOTION_CMD_B_ENVELOPMENT_MANEUVERS
LaunchBar: #Doctrines = PROMOTION_CMD_B_FLEXIBLE_COMMAND
LaunchBar: #Doctrines = PROMOTION_CMD_B_SUPPLY_TRAINS
LaunchBar: #Doctrines = PROMOTION_CMD_B_LOGISTICAL_RAIDING
LaunchBar: #Doctrines = PROMOTION_CMD_C_FOCAL_POINT
LaunchBar: #Doctrines = PROMOTION_CMD_C_DEEP_BATTLE
LaunchBar: IDT: 0
LaunchBar: #Doctrines = PROMOTION_RMD_A_RANGE_FINDING
LaunchBar: #Doctrines = PROMOTION_RMD_A_DEFENSIVE_EMPLACEMENTS
LaunchBar: #Doctrines = PROMOTION_RMD_A_VOLLEY
LaunchBar: #Doctrines = PROMOTION_RMD_A_INFANTRY_INTEGRATION
LaunchBar: #Doctrines = PROMOTION_RMD_A_FOCUS_ATTACK
LaunchBar: #Doctrines = PROMOTION_RMD_A_INCENDIARIES
LaunchBar: #Doctrines = PROMOTION_RMD_A_SKIRMISHING
LaunchBar: #Doctrines = PROMOTION_RMD_A_ATTACK_ROTATION
LaunchBar: #Doctrines = PROMOTION_RMD_B_SUPPLY_CHAINS
LaunchBar: #Doctrines = PROMOTION_RMD_B_STRATEGIC_PLACEMENT
LaunchBar: #Doctrines = PROMOTION_RMD_B_SUPPRESSION
LaunchBar: #Doctrines = PROMOTION_RMD_B_BATTERIES
LaunchBar: #Doctrines = PROMOTION_RMD_C_FORWARD_OBSERVERS
LaunchBar: #Doctrines = PROMOTION_RMD_C_OVERWHELMING_FIREPOWER
LaunchBar: IDT: 0
LaunchBar: #Doctrines = PROMOTION_NMD_A_WEATHER_GAGING
LaunchBar: #Doctrines = PROMOTION_NMD_A_CONCURRENT_FIRE
LaunchBar: #Doctrines = PROMOTION_NMD_A_COMMAND_SHIPS
LaunchBar: #Doctrines = PROMOTION_NMD_A_CRECENT_FORMATION
LaunchBar: #Doctrines = PROMOTION_NMD_A_RAMMING_TECHNIQUE
LaunchBar: #Doctrines = PROMOTION_NMD_A_DEDICATED_MARINES
LaunchBar: #Doctrines = PROMOTION_NMD_A_SEA_LAND_BATTLE
LaunchBar: #Doctrines = PROMOTION_NMD_A_FREQUENT_CAREENING
LaunchBar: #Doctrines = PROMOTION_NMD_B_CONVOY_SAILING
LaunchBar: Naval 1 Total: 0
LaunchBar: Naval 2 Total: 0
LaunchBar: #Doctrines = PROMOTION_NMD_B_LINE_OF_BATTLE
LaunchBar: Naval 1 Total: 0
LaunchBar: Naval 2 Total: 0
LaunchBar: #Doctrines = PROMOTION_NMD_B_FLAG_ORDERS
LaunchBar: Naval 1 Total: 0
LaunchBar: Naval 2 Total: 0
LaunchBar: #Doctrines = PROMOTION_NMD_B_PATROL_BOATS
LaunchBar: Naval 1 Total: 0
LaunchBar: Naval 2 Total: 0
LaunchBar: #Doctrines = PROMOTION_NMD_C_CAPITAL_SHIP_SUPREMACY
LaunchBar: #Doctrines = PROMOTION_NMD_C_WOLFPACKS
LaunchBar: IDT: 0
LaunchBar: #Doctrines = PROMOTION_AMD_A_DIVE_BOMBING
LaunchBar: #Doctrines = PROMOTION_AMD_A_GROUND_INTEGRATION
LaunchBar: #Doctrines = PROMOTION_AMD_A_FORMATION_FLYING
LaunchBar: #Doctrines = PROMOTION_AMD_A_FIGHTER_SWEEPS
LaunchBar: #Doctrines = PROMOTION_AMD_A_ALTITUDE_FLYING
LaunchBar: #Doctrines = PROMOTION_AMD_A_MASSED_RAIDS
LaunchBar: #Doctrines = PROMOTION_AMD_B_AIR_NAVY_BATTLE
LaunchBar: #Doctrines = PROMOTION_AMD_B_BAITING_MANEUVERS
LaunchBar: #Doctrines = PROMOTION_AMD_B_CAROUSEL_BOMBING


\Skodkim
 
Ok, I found it. It's incompatibility with Moar Units mod and I think it's down to the fact that Moar units mod sets starting level=2 for scouts, explorers, rangers, snipers and amazon scouts.

If you run the following line in your mod (+ a load order?) it seems to work again:

UPDATE Units SET InitialLevel = 1 WHERE UnitType = 'UNIT_SCOUT' OR UnitType = 'UNIT_EXPLORER' OR UnitType = 'UNIT_RANGER' OR UnitType = 'UNIT_SNIPER' OR UnitType = 'UNIT_AMAZON_SCOUT';

I think you actually has that in a previous version but removed it.

\Skodkim
 
Ok well I'll try to look at that because they should be getting doctrine XP after level 2, are they if you start them at level 1 once they reach level 2?

I also didn't have that line of code set on any previous versions.
 
That sentence is jumbled haha, I mean to say when they get to level 2 through normal XP gain (instead of the free promotion to level 2) are they still contributing to doctrine XP.
 
I tested with Fire tuner. with MOAR and MilDoc v1.45 active. Battled my Scout up to level 3 and they still contribute to Doctrine xp after that - so Yes :goodjob:

\Skodkim
 
You didn't put the line causing mod compatibility for MOAR unis mod in v 1.5 - was that intended?

\Skodkim
 
Ya I need to put that it in, I meant to make sure and test it so it didn't require moar units mod but I don't think it will with an update via sql. I also wanted to see if there is workaround so you can keep the initiallevel.
 
Ewok-Bacon-Bits updated Military Doctrines / Promotion System Rework with a new update entry:

Fixed a testing bug and added in code thanks to skodkim* see notes

Fixed a testing bug that gave free doctrine XP

If you are having problems with recon units not getting XP in the moar unit mod I added in a line of code thanks to skodkim which is currently commented out, as I didn't have a problem with it. If you are having this problem then you will want to go to DoctrineData.sql and un-comment UPDATE Units (Line 9). You can do this by getting rid of the -- in front of it and visa versa.

Read the rest of this update entry...


@skodkim So I tested it around a bit. I didn't have the problem you were having (perhaps I wasn't testing it right? I was only getting 1XP from barbarians because of level 2) but I added in that code anyway I just commented it out for those who are having the same problem and need to activate it.
 
Last edited:
@skodkim So I tested it around a bit. I didn't have the problem you were having (perhaps I wasn't testing it right? I was only getting 1XP from barbarians because of level 2) but I added in that code anyway I just commented it out for those who are having the same problem and need to activate it.

Weird. I have way to little time to play but when/if I do I'll keep you posted.

Keep them good updates coming :thumbsup:

\Skodkim
 
Great mod. Am in the middle of my first game, post Summer patch, using this mod and Quo's combined tweaks, and it seems to be working very well.

One question, with CQUI being repaired at the moment, I tried to run this mod with NQEUI. I'm getting similar outputs as what was shown in post #18 (where promotions ran outside of the box, and were not selectable).

Let me know if there is something I am doing incorrectly that would allow use with NQEUI.

Thanks. And keep the updates coming!
 
@Ewok-Bacon-Bits While tracking down a compatibility bug that breaks with Suk's Policy Manager I found out that Military doctrines Lauchbar itself partly breaks compatibility with the mod.

Not a really serious issue, but Suk's mod adds a button to the launcbar which isn't there when you use Military Doctrines. I've been told that "this shouldn't be necessary anymore; the LaunchBar's been made modular, like the TopPanel and WorldTracker". For more details, see https://forums.civfanatics.com/threads/rule-with-faith.601999/page-14, post 274 and onward for a short discussion on the matter.

Because of the save game bug I haven't played since the summer patch, so haven't really had a chance to play with Military Doctrines yet - looking forward to it though!

\Skodkim
 
Top Bottom