Author: Aradan
Original Thread: Implementing Marian Reforms in M2TW



Modding Resource Header

Title: Implementing Marian Reforms in M2TW
Posted by: Aradan
Modding area: Campaign mechanics
Required programs: Notepad (or other text editor)
Summary: An explanation of the process of implementation on the M2TW engine of the 'marian reforms' mechanic.




Implementing Marian Reforms in M2TW



Introduction

The 'marian reforms' mechanic is a leftover from RTW. It is a specific event which is triggered once certain hardcoded conditions are met. The status of the event (activated/not activated) can affect building effects through a specific conditional, as well as the factions' bodyguard units through a unit attribute.



Requirements

In order to be triggered, marian reforms require:

1. removing the 'marian_reforms_disabled' line from descr_strat
Code:
...
start_date    1080 summer
end_date    1530 winter
timescale    2.00

marian_reforms_disabled
rebelling_characters_active
gladiator_uprising_disabled
night_battles_enabled
show_date_as_turns
brigand_spawn_value 20
pirate_spawn_value 28
...
2. adding the "italy" hidden resource to any region(s) in descr_regions (if the HR is not already defined at the top of your export_descr_buildings, it should also be added there)
Code:
London_Province
    London
    england
    English_Rebels
    232 41 46
    atlantic, explorers_guild, woodsmens_guild, italy
    5
    4
    religions { catholic 85 orthodox 0 islam 0 pagan 13 heretic 2 }
Code:
hidden_resources sparta rome italy    america atlantic explorers_guild swordsmiths_guild woodsmens_guild    teutonic_knights_chapter_house knights_of_santiago_chapter_house   crusade  jihad arguin horde_target no_pirates no_brigands
3. adding a new culture with the internal name "roman" (or renaming an existing one) and assigning at least one faction to it
This is a slightly more involved procedure than editing a couple of lines (though it's not hard), and detailing it is beyond the scope of the present tutorial, so please check this thread out for a walkthrough of how to add a new culture in M2. Renaming one is a similar process.


Activation


The marian reforms will be activated when a faction that belongs to the 'roman' culture controls a region with the 'italy' hidden resource and upgrades its settlement to 'huge city'. There will be no message or other visual indication that the activation took place.



Activation 'by default'

It is possible to set the marian reforms as already activated at campaign start by adding the "marian_reforms_activated" line at the top of desc_strat.
Code:
...
start_date    1080 summer
end_date    1530 winter
timescale    2.00

marian_reforms_activated
marian_reforms_disabled
rebelling_characters_active
gladiator_uprising_disabled
night_battles_enabled
show_date_as_turns
brigand_spawn_value 20
pirate_spawn_value 28
...


Effects


When the reforms are activated, there are two ways they can affect the campaign.

1. Upgraded bodyguard units
In order to achieve this certain units must be given the "general_unit_upgrade" attribute in export_descr_unit. Those units must be listed below the regular BG unit of the factions they are available to, otherwise the engine will pick them as the default ones. It is not necessary to have upgraded BGs for every faction.

Code:
type             NE Late Bodyguard
dictionary       NE_Late_Bodyguard      ; General's Bodyguard
category         cavalry
class            heavy
voice_type       General
banner faction   main_cavalry
banner holy      crusade_cavalry
soldier          NE_Late_Bodyguard, 16, 0, 1
mount            armoured horse
mount_effect     elephant -4, camel -4
attributes       sea_faring, hide_forest, very_hardy, can_withdraw, general_unit, general_unit_upgrade
formation        2, 4.4, 3, 6, 2, square
stat_health      2, 0
stat_pri         13, 8, no, 0, 0, melee, melee_blade, piercing, spear, 25, 1
;stat_pri_ex      0, 0, 0
stat_pri_attr    no
stat_sec         14, 4, no, 0, 0, melee, melee_blade, piercing, sword, 25, 1
;stat_sec_ex      0, 0, 0
stat_sec_attr    no
stat_pri_armour  9, 5, 3, metal
;stat_armour_ex   9, 10, 0, 0, 5, 3, 3, metal
stat_sec_armour  0, 0, flesh
stat_heat        6
stat_ground      0, -2, -4, 0
stat_mental      11, normal, trained
stat_charge_dist 45
stat_fire_delay  0
stat_food        60, 300
stat_cost        1, 870, 250, 120, 95, 870, 1, 210
armour_ug_levels 5, 6
armour_ug_models NE_Late_Bodyguard, NE_Late_Bodyguard_ug1
ownership        england, scotland, france, hre, denmark, poland, hungary
era 2            england, scotland, france, hre, denmark, poland, hungary
;unit_info        13, 0, 34
When the reforms are triggered, the family members of every faction will switch the their upgraded bodyguard unit, if one is available.
2. Building effects
This can be achieved by using the "marian_reforms" conditional in export_descr_buildings.

Code:
recruit_pool "Longbowmen"  1   0.7   6  0  requires factions { england, } and marian_reforms
recruit_pool "Highland Archers"  1   0.7   6  0  requires factions { scotland, } and not marian_reforms
When the reforms are triggered, any building effects with the conditional will become active, while those with a negative conditional will become inactive.