Code:
--------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------
-----------DeI Changing Traits - Brawler, Commander, Scholar Sept 2018
----------------------------------------------------------------------
----Starting Traits
-- Brawler
--Character created normal trigger, level 2 starting
function dei_changing_trait_brawler_impl (context)
return char_is_general(context:character()) and not context:character():has_trait("dei_changing_trait_brawler") and context:character():is_male() and not (context:character():has_trait("r2_sp_trait_non_roman_background_fighter_civ") or context:character():has_trait("r2_sp_trait_non_roman_background_fighter_barb"))
end
events.CharacterCreated[#events.CharacterCreated+1] =
function (context)
if dei_changing_trait_brawler_impl(context) then
effect.trait("dei_changing_trait_brawler", "agent", 2, 100, context)
return true
end
return false
end
--Chararacter turn start for starting characters
function dei_changing_trait_brawler_impl2 (context)
return char_is_general(context:character()) and not context:character():has_trait("dei_changing_trait_brawler") and context:character():is_male() and not (context:character():has_trait("r2_sp_trait_non_roman_background_fighter_civ") or context:character():has_trait("r2_sp_trait_non_roman_background_fighter_barb"))
end
events.CharacterTurnStart[#events.CharacterTurnStart+1] =
function (context)
if dei_changing_trait_brawler_impl2(context) then
effect.trait("dei_changing_trait_brawler", "agent", 2, 100, context)
return true
end
return false
end
--Character created trigger if character has brute background trait, level 3 starting
function dei_changing_trait_brawler_impla (context)
return char_is_general(context:character()) and not context:character():has_trait("dei_changing_trait_brawler") and context:character():is_male() and (context:character():has_trait("r2_sp_trait_non_roman_background_fighter_civ") or context:character():has_trait("r2_sp_trait_non_roman_background_fighter_barb"))
end
events.CharacterCreated[#events.CharacterCreated+1] =
function (context)
if dei_changing_trait_brawler_impla(context) then
effect.trait("dei_changing_trait_brawler", "agent", 3, 100, context)
return true
end
return false
end
--Chararacter turn start for starting characters with brute background trait
function dei_changing_trait_brawler_impl2a (context)
return char_is_general(context:character()) and not context:character():has_trait("dei_changing_trait_brawler") and context:character():is_male() and (context:character():has_trait("r2_sp_trait_non_roman_background_fighter_civ") or context:character():has_trait("r2_sp_trait_non_roman_background_fighter_barb"))
end
events.CharacterTurnStart[#events.CharacterTurnStart+1] =
function (context)
if dei_changing_trait_brawler_impl2a(context) then
effect.trait("dei_changing_trait_brawler", "agent", 3, 100, context)
return true
end
return false
end
-----------------------------------------------------
-- Commander
--Character created normal trigger, level 2 starting
function dei_changing_trait_commander_impl (context)
return char_is_general(context:character()) and not context:character():has_trait("dei_changing_trait_commander") and context:character():is_male() and not (context:character():has_trait("r2_sp_trait_all_tactician_barb") or context:character():has_trait("r2_sp_trait_all_strategist_barb") or context:character():has_trait("r2_sp_trait_all_background_command_barb") or context:character():has_trait("r2_sp_trait_all_tactician_civ") or context:character():has_trait("r2_sp_trait_all_strategist_civ") or context:character():has_trait("r2_sp_trait_all_background_command_civ"))
end
events.CharacterCreated[#events.CharacterCreated+1] =
function (context)
if dei_changing_trait_commander_impl(context) then
effect.trait("dei_changing_trait_commander", "agent", 2, 100, context)
return true
end
return false
end
--Chararacter turn start for starting characters
function dei_changing_trait_commander_impl2 (context)
return char_is_general(context:character()) and not context:character():has_trait("dei_changing_trait_commander") and context:character():is_male() and not (context:character():has_trait("r2_sp_trait_all_tactician_barb") or context:character():has_trait("r2_sp_trait_all_strategist_barb") or context:character():has_trait("r2_sp_trait_all_background_command_barb") or context:character():has_trait("r2_sp_trait_all_tactician_civ") or context:character():has_trait("r2_sp_trait_all_strategist_civ") or context:character():has_trait("r2_sp_trait_all_background_command_civ"))
end
events.CharacterTurnStart[#events.CharacterTurnStart+1] =
function (context)
if dei_changing_trait_commander_impl2(context) then
effect.trait("dei_changing_trait_commander", "agent", 2, 100, context)
return true
end
return false
end
--Character created trigger if character has background trait, level 3 starting
function dei_changing_trait_commander_impla (context)
return char_is_general(context:character()) and not context:character():has_trait("dei_changing_trait_commander") and context:character():is_male() and (context:character():has_trait("r2_sp_trait_all_tactician_barb") or context:character():has_trait("r2_sp_trait_all_strategist_barb") or context:character():has_trait("r2_sp_trait_all_background_command_barb") or context:character():has_trait("r2_sp_trait_all_tactician_civ") or context:character():has_trait("r2_sp_trait_all_strategist_civ") or context:character():has_trait("r2_sp_trait_all_background_command_civ"))
end
events.CharacterCreated[#events.CharacterCreated+1] =
function (context)
if dei_changing_trait_commander_impla(context) then
effect.trait("dei_changing_trait_commander", "agent", 3, 100, context)
return true
end
return false
end
--Chararacter turn start for starting characters with background trait
function dei_changing_trait_commander_impl2a (context)
return char_is_general(context:character()) and not context:character():has_trait("dei_changing_trait_commander") and context:character():is_male() and (context:character():has_trait("r2_sp_trait_all_tactician_barb") or context:character():has_trait("r2_sp_trait_all_strategist_barb") or context:character():has_trait("r2_sp_trait_all_background_command_barb") or context:character():has_trait("r2_sp_trait_all_tactician_civ") or context:character():has_trait("r2_sp_trait_all_strategist_civ") or context:character():has_trait("r2_sp_trait_all_background_command_civ"))
end
events.CharacterTurnStart[#events.CharacterTurnStart+1] =
function (context)
if dei_changing_trait_commander_impl2a(context) then
effect.trait("dei_changing_trait_commander", "agent", 3, 100, context)
return true
end
return false
end
----------------------------------------------------
-- Scholar
--Character created normal trigger, level 2 starting
function dei_changing_trait_scholar_impl (context)
return char_is_general(context:character()) and not context:character():has_trait("dei_changing_trait_scholar") and context:character():is_male() and not (context:character():has_trait("r2_sp_trait_all_leader_architect_barb") or context:character():has_trait("r2_sp_trait_all_background_philosopher_barb") or context:character():has_trait("r2_sp_trait_all_background_scientist_barb") or context:character():has_trait("r2_sp_trait_all_leader_architect_civ") or context:character():has_trait("r2_sp_trait_all_background_philosopher_civ") or context:character():has_trait("r2_sp_trait_all_background_scientist_civ"))
end
events.CharacterCreated[#events.CharacterCreated+1] =
function (context)
if dei_changing_trait_scholar_impl(context) then
effect.trait("dei_changing_trait_scholar", "agent", 2, 100, context)
return true
end
return false
end
--Chararacter turn start for starting characters
function dei_changing_trait_scholar_impl2 (context)
return char_is_general(context:character()) and not context:character():has_trait("dei_changing_trait_scholar") and context:character():is_male() and not (context:character():has_trait("r2_sp_trait_all_leader_architect_barb") or context:character():has_trait("r2_sp_trait_all_background_philosopher_barb") or context:character():has_trait("r2_sp_trait_all_background_scientist_barb") or context:character():has_trait("r2_sp_trait_all_leader_architect_civ") or context:character():has_trait("r2_sp_trait_all_background_philosopher_civ") or context:character():has_trait("r2_sp_trait_all_background_scientist_civ"))
end
events.CharacterTurnStart[#events.CharacterTurnStart+1] =
function (context)
if dei_changing_trait_scholar_impl2(context) then
effect.trait("dei_changing_trait_scholar", "agent", 2, 100, context)
return true
end
return false
end
--Character created trigger if character has background trait, level 3 starting
function dei_changing_trait_scholar_impla (context)
return char_is_general(context:character()) and not context:character():has_trait("dei_changing_trait_scholar") and context:character():is_male() and (context:character():has_trait("r2_sp_trait_all_leader_architect_barb") or context:character():has_trait("r2_sp_trait_all_background_philosopher_barb") or context:character():has_trait("r2_sp_trait_all_background_scientist_barb") or context:character():has_trait("r2_sp_trait_all_leader_architect_civ") or context:character():has_trait("r2_sp_trait_all_background_philosopher_civ") or context:character():has_trait("r2_sp_trait_all_background_scientist_civ"))
end
events.CharacterCreated[#events.CharacterCreated+1] =
function (context)
if dei_changing_trait_scholar_impla(context) then
effect.trait("dei_changing_trait_scholar", "agent", 3, 100, context)
return true
end
return false
end
--Chararacter turn start for starting characters with background trait
function dei_changing_trait_scholar_impl2a (context)
return char_is_general(context:character()) and not context:character():has_trait("dei_changing_trait_scholar") and context:character():is_male() and (context:character():has_trait("r2_sp_trait_all_leader_architect_barb") or context:character():has_trait("r2_sp_trait_all_background_philosopher_barb") or context:character():has_trait("r2_sp_trait_all_background_scientist_barb") or context:character():has_trait("r2_sp_trait_all_leader_architect_civ") or context:character():has_trait("r2_sp_trait_all_background_philosopher_civ") or context:character():has_trait("r2_sp_trait_all_background_scientist_civ"))
end
events.CharacterTurnStart[#events.CharacterTurnStart+1] =
function (context)
if dei_changing_trait_scholar_impl2a(context) then
effect.trait("dei_changing_trait_scholar", "agent", 3, 100, context)
return true
end
return false
end
-----Changing traits up and down
---Brawler
-- 5 to 6
function dei_changing_trait_brawler_level1d_impl (context)
return char_is_general(context:character()) and context:character():has_trait("dei_changing_trait_brawler") and context:character():is_male() and (context:character():trait_level("dei_changing_trait_brawler") == 5) and (context:character():age() >= 35) and ((char_is_attacker(context:character()) and (context:character():model():pending_battle():attacker():body_guard_casulties() >= 0.3) and (context:character():model():pending_battle():attacker():body_guard_casulties() <= 0.6)) or (char_is_defender(context:character()) and (context:character():model():pending_battle():defender():body_guard_casulties() >= 0.3) and (context:character():model():pending_battle():defender():body_guard_casulties() <= 0.6))) and ((char_is_defender(context:character())) and defender_victory(context:character():model():pending_battle()) or (char_is_attacker(context:character()) and attacker_victory(context:character():model():pending_battle()))) and (context:character():battles_won() >= 12) and ((context:character() == context:pending_battle():attacker() and context:pending_battle():attacker_battle_result() == "heroic_victory") or (context:character() == context:pending_battle():defender() and context:pending_battle():defender_battle_result() == "heroic_victory")) and (context:character():faction():culture() == "rom_Roman")
end
events.CharacterCompletedBattle[#events.CharacterCompletedBattle+1] =
function (context)
if dei_changing_trait_brawler_level1d_impl(context) then
effect.trait("dei_changing_trait_brawler", "agent", 1, 20, context)
return true
end
return false
end
-- 5 to 7
function dei_changing_trait_brawler_level1e_impl (context)
return char_is_general(context:character()) and context:character():has_trait("dei_changing_trait_brawler") and context:character():is_male() and (context:character():trait_level("dei_changing_trait_brawler") == 5) and (context:character():age() >= 35) and ((char_is_attacker(context:character()) and (context:character():model():pending_battle():attacker():body_guard_casulties() >= 0.3) and (context:character():model():pending_battle():attacker():body_guard_casulties() <= 0.6)) or (char_is_defender(context:character()) and (context:character():model():pending_battle():defender():body_guard_casulties() >= 0.3) and (context:character():model():pending_battle():defender():body_guard_casulties() <= 0.6))) and ((char_is_defender(context:character())) and defender_victory(context:character():model():pending_battle()) or (char_is_attacker(context:character()) and attacker_victory(context:character():model():pending_battle()))) and (context:character():battles_won() >= 12) and ((context:character() == context:pending_battle():attacker() and context:pending_battle():attacker_battle_result() == "heroic_victory") or (context:character() == context:pending_battle():defender() and context:pending_battle():defender_battle_result() == "heroic_victory")) and ((context:character():faction():subculture() == "sc_rom_african_arabian") or (context:character():faction():subculture() == "sc_rom_barb_east") or (context:character():faction():subculture() == "sc_rom_parthian"))
end
events.CharacterCompletedBattle[#events.CharacterCompletedBattle+1] =
function (context)
if dei_changing_trait_brawler_level1e_impl(context) then
effect.trait("dei_changing_trait_brawler", "agent", 2, 20, context)
return true
end
return false
end
-- 5 to 8
function dei_changing_trait_brawler_level1f_impl (context)
return char_is_general(context:character()) and context:character():has_trait("dei_changing_trait_brawler") and context:character():is_male() and (context:character():trait_level("dei_changing_trait_brawler") == 5) and (context:character():age() >= 35) and ((char_is_attacker(context:character()) and (context:character():model():pending_battle():attacker():body_guard_casulties() >= 0.3) and (context:character():model():pending_battle():attacker():body_guard_casulties() <= 0.6)) or (char_is_defender(context:character()) and (context:character():model():pending_battle():defender():body_guard_casulties() >= 0.3) and (context:character():model():pending_battle():defender():body_guard_casulties() <= 0.6))) and ((char_is_defender(context:character())) and defender_victory(context:character():model():pending_battle()) or (char_is_attacker(context:character()) and attacker_victory(context:character():model():pending_battle()))) and (context:character():battles_won() >= 12) and ((context:character() == context:pending_battle():attacker() and context:pending_battle():attacker_battle_result() == "heroic_victory") or (context:character() == context:pending_battle():defender() and context:pending_battle():defender_battle_result() == "heroic_victory")) and ((context:character():faction():culture() == "rom_Eastern") or (context:character():faction():culture() == "rom_Barbarian") or (context:character():faction():culture() == "rom_Hellenistic")) and not ((context:character():faction():subculture() == "sc_rom_african_arabian") or (context:character():faction():subculture() == "sc_rom_barb_east") or (context:character():faction():subculture() == "sc_rom_parthian"))
end
events.CharacterCompletedBattle[#events.CharacterCompletedBattle+1] =
function (context)
if dei_changing_trait_brawler_level1f_impl(context) then
effect.trait("dei_changing_trait_brawler", "agent", 3, 20, context)
return true
end
return false
end
-- 4 to 5
function dei_changing_trait_brawler_level1c_impl (context)
return char_is_general(context:character()) and context:character():has_trait("dei_changing_trait_brawler") and context:character():is_male() and (context:character():trait_level("dei_changing_trait_brawler") == 4) and (context:character():age() >= 32) and ((char_is_attacker(context:character()) and (context:character():model():pending_battle():attacker():body_guard_casulties() >= 0.1) and (context:character():model():pending_battle():attacker():body_guard_casulties() <= 0.4)) or (char_is_defender(context:character()) and (context:character():model():pending_battle():defender():body_guard_casulties() >= 0.1) and (context:character():model():pending_battle():defender():body_guard_casulties() <= 0.4))) and ((char_is_defender(context:character())) and defender_victory(context:character():model():pending_battle()) or (char_is_attacker(context:character()) and attacker_victory(context:character():model():pending_battle()))) and (context:character():battles_won() >= 9)
end
events.CharacterCompletedBattle[#events.CharacterCompletedBattle+1] =
function (context)
if dei_changing_trait_brawler_level1c_impl(context) then
effect.trait("dei_changing_trait_brawler", "agent", 1, 20, context)
return true
end
return false
end
--3 to 4
function dei_changing_trait_brawler_level1b_impl (context)
return char_is_general(context:character()) and context:character():has_trait("dei_changing_trait_brawler") and context:character():is_male() and (context:character():trait_level("dei_changing_trait_brawler") == 3) and (context:character():age() >= 28) and ((char_is_attacker(context:character()) and (context:character():model():pending_battle():attacker():body_guard_casulties() >= 0.1) and (context:character():model():pending_battle():attacker():body_guard_casulties() <= 0.4)) or (char_is_defender(context:character()) and (context:character():model():pending_battle():defender():body_guard_casulties() >= 0.1) and (context:character():model():pending_battle():defender():body_guard_casulties() <= 0.4))) and ((char_is_defender(context:character())) and defender_victory(context:character():model():pending_battle()) or (char_is_attacker(context:character()) and attacker_victory(context:character():model():pending_battle()))) and (context:character():battles_won() >= 6)
end
events.CharacterCompletedBattle[#events.CharacterCompletedBattle+1] =
function (context)
if dei_changing_trait_brawler_level1b_impl(context) then
effect.trait("dei_changing_trait_brawler", "agent", 1, 20, context)
return true
end
return false
end
--2 to 3
function dei_changing_trait_brawler_level1a_impl (context)
return char_is_general(context:character()) and context:character():has_trait("dei_changing_trait_brawler") and context:character():is_male() and (context:character():trait_level("dei_changing_trait_brawler") == 2) and (context:character():age() >= 24) and ((char_is_attacker(context:character()) and (context:character():model():pending_battle():attacker():body_guard_casulties() >= 0.1) and (context:character():model():pending_battle():attacker():body_guard_casulties() <= 0.4)) or (char_is_defender(context:character()) and (context:character():model():pending_battle():defender():body_guard_casulties() >= 0.1) and (context:character():model():pending_battle():defender():body_guard_casulties() <= 0.4))) and ((char_is_defender(context:character())) and defender_victory(context:character():model():pending_battle()) or (char_is_attacker(context:character()) and attacker_victory(context:character():model():pending_battle()))) and (context:character():battles_won() >= 4)
end
events.CharacterCompletedBattle[#events.CharacterCompletedBattle+1] =
function (context)
if dei_changing_trait_brawler_level1a_impl(context) then
effect.trait("dei_changing_trait_brawler", "agent", 1, 20, context)
return true
end
return false
end
--1 to 2
function dei_changing_trait_brawler_level1aa_impl (context)
return char_is_general(context:character()) and context:character():has_trait("dei_changing_trait_brawler") and context:character():is_male() and (context:character():trait_level("dei_changing_trait_brawler") == 1) and ((char_is_attacker(context:character()) and (context:character():model():pending_battle():attacker():body_guard_casulties() >= 0.1) and (context:character():model():pending_battle():attacker():body_guard_casulties() <= 0.4)) or (char_is_defender(context:character()) and (context:character():model():pending_battle():defender():body_guard_casulties() >= 0.1) and (context:character():model():pending_battle():defender():body_guard_casulties() <= 0.4))) and ((char_is_defender(context:character())) and defender_victory(context:character():model():pending_battle()) or (char_is_attacker(context:character()) and attacker_victory(context:character():model():pending_battle())))
end
events.CharacterCompletedBattle[#events.CharacterCompletedBattle+1] =
function (context)
if dei_changing_trait_brawler_level1aa_impl(context) then
effect.trait("dei_changing_trait_brawler", "agent", 1, 20, context)
return true
end
return false
end
-- 2 to 1
function dei_changing_trait_brawler_level1i_impl (context)
return char_is_general(context:character()) and context:character():has_trait("dei_changing_trait_brawler") and context:character():is_male() and (context:character():trait_level("dei_changing_trait_brawler") == 2) and ((char_is_attacker(context:character()) and (context:character():model():pending_battle():attacker():body_guard_casulties() >= 0.5)) or (char_is_defender(context:character()) and (context:character():model():pending_battle():defender():body_guard_casulties() >= 0.5)))
end
events.CharacterCompletedBattle[#events.CharacterCompletedBattle+1] =
function (context)
if dei_changing_trait_brawler_level1i_impl(context) and context:character():faction():is_human() == true then
effect.trait("dei_changing_trait_brawler", "agent", -1, 20, context)
--scripting.game_interface:show_message_event("custom_event_600", context:character():display_position_x(), context:character():display_position_y())
return true
end
return false
end
-- 3 to 2
function dei_changing_trait_brawler_level1h_impl (context)
return char_is_general(context:character()) and context:character():has_trait("dei_changing_trait_brawler") and context:character():is_male() and (context:character():trait_level("dei_changing_trait_brawler") == 3) and ((char_is_attacker(context:character()) and (context:character():model():pending_battle():attacker():body_guard_casulties() >= 0.5)) or (char_is_defender(context:character()) and (context:character():model():pending_battle():defender():body_guard_casulties() >= 0.5)))
end
events.CharacterCompletedBattle[#events.CharacterCompletedBattle+1] =
function (context)
if dei_changing_trait_brawler_level1h_impl(context) and context:character():faction():is_human() == true then
effect.trait("dei_changing_trait_brawler", "agent", -1, 20, context)
--scripting.game_interface:show_message_event("custom_event_600", context:character():display_position_x(), context:character():display_position_y())
return true
end
return false
end
-- 4 to 3
function dei_changing_trait_brawler_level1g_impl (context)
return char_is_general(context:character()) and context:character():has_trait("dei_changing_trait_brawler") and context:character():is_male() and (context:character():trait_level("dei_changing_trait_brawler") == 4) and ((char_is_attacker(context:character()) and (context:character():model():pending_battle():attacker():body_guard_casulties() >= 0.5)) or (char_is_defender(context:character()) and (context:character():model():pending_battle():defender():body_guard_casulties() >= 0.5)))
end
events.CharacterCompletedBattle[#events.CharacterCompletedBattle+1] =
function (context)
if dei_changing_trait_brawler_level1g_impl(context) and context:character():faction():is_human() == true then
effect.trait("dei_changing_trait_brawler", "agent", -1, 20, context)
--scripting.game_interface:show_message_event("custom_event_600", context:character():display_position_x(), context:character():display_position_y())
return true
end
return false
end
---Commander
-- 5 to 6
function dei_changing_trait_commander_level1d_impl (context)
return char_is_general(context:character()) and context:character():has_trait("dei_changing_trait_commander") and context:character():is_male() and (context:character():trait_level("dei_changing_trait_commander") == 5) and (context:character():age() >= 35) and ((char_is_defender(context:character())) and defender_victory(context:character():model():pending_battle()) or (char_is_attacker(context:character()) and attacker_victory(context:character():model():pending_battle()))) and (context:character():battles_won() >= 12) and ((context:character() == context:pending_battle():attacker() and context:pending_battle():attacker_battle_result() == "heroic_victory") or (context:character() == context:pending_battle():defender() and context:pending_battle():defender_battle_result() == "heroic_victory")) and (((context:character():offensive_ambush_battles_won() >= 3) and (context:character():offensive_ambush_battles_fought() >= 3)) or ((context:character():defensive_ambush_battles_won() >= 3) and (context:character():defensive_ambush_battles_fought() >= 3)))
end
events.CharacterCompletedBattle[#events.CharacterCompletedBattle+1] =
function (context)
if dei_changing_trait_commander_level1d_impl(context) then
effect.trait("dei_changing_trait_commander", "agent", 1, 50, context)
return true
end
return false
end
-- 5 to 7
function dei_changing_trait_commander_level1e_impl (context)
return char_is_general(context:character()) and context:character():has_trait("dei_changing_trait_commander") and context:character():is_male() and (context:character():trait_level("dei_changing_trait_commander") == 5) and (context:character():age() >= 35) and (char_is_defender(context:character()) and defender_victory(context:character():model():pending_battle())) and (context:character():battles_won() >= 12) and (context:character() == context:pending_battle():defender() and context:pending_battle():defender_battle_result() == "heroic_victory") and ((context:character():defensive_battles_won() >= 5) and (context:character():defensive_battles_fought() >= 5))
end
events.CharacterCompletedBattle[#events.CharacterCompletedBattle+1] =
function (context)
if dei_changing_trait_commander_level1e_impl(context) then
effect.trait("dei_changing_trait_commander", "agent", 2, 40, context)
return true
end
return false
end
-- 5 to 9
function dei_changing_trait_commander_level1fa_impl (context)
return char_is_general(context:character()) and context:character():has_trait("dei_changing_trait_commander") and context:character():is_male() and (context:character():trait_level("dei_changing_trait_commander") == 5) and (context:character():age() >= 35) and (char_is_attacker(context:character()) and attacker_victory(context:character():model():pending_battle())) and (context:character():battles_won() >= 12) and (context:character() == context:pending_battle():attacker() and context:pending_battle():attacker_battle_result() == "heroic_victory") and ((context:character():offensive_sieges_won() >= 5) and (context:character():offensive_sieges_fought() >= 5))
end
events.CharacterCompletedBattle[#events.CharacterCompletedBattle+1] =
function (context)
if dei_changing_trait_commander_level1fa_impl(context) then
effect.trait("dei_changing_trait_commander", "agent", 4, 30, context)
return true
end
return false
end
-- 5 to 8
function dei_changing_trait_commander_level1f_impl (context)
return char_is_general(context:character()) and context:character():has_trait("dei_changing_trait_commander") and context:character():is_male() and (context:character():trait_level("dei_changing_trait_commander") == 5) and (context:character():age() >= 35) and (char_is_attacker(context:character()) and attacker_victory(context:character():model():pending_battle())) and (context:character():battles_won() >= 12) and (context:character() == context:pending_battle():attacker() and context:pending_battle():attacker_battle_result() == "heroic_victory") and ((context:character():offensive_battles_won() >= 5) and (context:character():offensive_battles_fought() >= 5))
end
events.CharacterCompletedBattle[#events.CharacterCompletedBattle+1] =
function (context)
if dei_changing_trait_commander_level1f_impl(context) then
effect.trait("dei_changing_trait_commander", "agent", 3, 30, context)
return true
end
return false
end
-- 4 to 5
function dei_changing_trait_commander_level1c_impl (context)
return char_is_general(context:character()) and context:character():has_trait("dei_changing_trait_commander") and context:character():is_male() and (context:character():trait_level("dei_changing_trait_commander") == 4) and (context:character():age() >= 32) and ((char_is_defender(context:character())) and defender_victory(context:character():model():pending_battle()) or (char_is_attacker(context:character()) and attacker_victory(context:character():model():pending_battle()))) and (context:character():battles_won() >= 9) and ((context:character() == context:pending_battle():attacker() and (context:pending_battle():attacker_battle_result() == "decisive_victory" or context:pending_battle():attacker_battle_result() == "heroic_victory")) or (context:character() == context:pending_battle():defender() and (context:pending_battle():defender_battle_result() == "heroic_victory" or context:pending_battle():defender_battle_result() == "decisive_victory")))
end
events.CharacterCompletedBattle[#events.CharacterCompletedBattle+1] =
function (context)
if dei_changing_trait_commander_level1c_impl(context) then
effect.trait("dei_changing_trait_commander", "agent", 1, 30, context)
return true
end
return false
end
--3 to 4
function dei_changing_trait_commander_level1b_impl (context)
return char_is_general(context:character()) and context:character():has_trait("dei_changing_trait_commander") and context:character():is_male() and (context:character():trait_level("dei_changing_trait_commander") == 3) and (context:character():age() >= 28) and ((context:character() == context:pending_battle():attacker() and (context:pending_battle():attacker_battle_result() == "decisive_victory" or context:pending_battle():attacker_battle_result() == "heroic_victory")) or (context:character() == context:pending_battle():defender() and (context:pending_battle():defender_battle_result() == "heroic_victory" or context:pending_battle():defender_battle_result() == "decisive_victory"))) and ((char_is_defender(context:character())) and defender_victory(context:character():model():pending_battle()) or (char_is_attacker(context:character()) and attacker_victory(context:character():model():pending_battle()))) and (context:character():battles_won() >= 7)
end
events.CharacterCompletedBattle[#events.CharacterCompletedBattle+1] =
function (context)
if dei_changing_trait_commander_level1b_impl(context) then
effect.trait("dei_changing_trait_commander", "agent", 1, 30, context)
return true
end
return false
end
--2 to 3
function dei_changing_trait_commander_level1a_impl (context)
return char_is_general(context:character()) and context:character():has_trait("dei_changing_trait_commander") and context:character():is_male() and (context:character():trait_level("dei_changing_trait_commander") == 2) and (context:character():age() >= 24) and ((context:character() == context:pending_battle():attacker() and (context:pending_battle():attacker_battle_result() == "decisive_victory" or context:pending_battle():attacker_battle_result() == "heroic_victory")) or (context:character() == context:pending_battle():defender() and (context:pending_battle():defender_battle_result() == "heroic_victory" or context:pending_battle():defender_battle_result() == "decisive_victory"))) and ((char_is_defender(context:character())) and defender_victory(context:character():model():pending_battle()) or (char_is_attacker(context:character()) and attacker_victory(context:character():model():pending_battle()))) and (context:character():battles_won() >= 5)
end
events.CharacterCompletedBattle[#events.CharacterCompletedBattle+1] =
function (context)
if dei_changing_trait_commander_level1a_impl(context) then
effect.trait("dei_changing_trait_commander", "agent", 1, 40, context)
return true
end
return false
end
--1 to 2
function dei_changing_trait_commander_level1aa_impl (context)
return char_is_general(context:character()) and context:character():has_trait("dei_changing_trait_commander") and context:character():is_male() and (context:character():trait_level("dei_changing_trait_commander") == 1) and ((context:character() == context:pending_battle():attacker() and (context:pending_battle():attacker_battle_result() == "decisive_victory" or context:pending_battle():attacker_battle_result() == "heroic_victory")) or (context:character() == context:pending_battle():defender() and (context:pending_battle():defender_battle_result() == "heroic_victory" or context:pending_battle():defender_battle_result() == "decisive_victory"))) and ((char_is_defender(context:character())) and defender_victory(context:character():model():pending_battle()) or (char_is_attacker(context:character()) and attacker_victory(context:character():model():pending_battle())))
end
events.CharacterCompletedBattle[#events.CharacterCompletedBattle+1] =
function (context)
if dei_changing_trait_commander_level1aa_impl(context) then
effect.trait("dei_changing_trait_commander", "agent", 1, 40, context)
return true
end
return false
end
-- 2 to 1
function dei_changing_trait_commander_level1i_impl (context)
return char_is_general(context:character()) and context:character():has_trait("dei_changing_trait_commander") and context:character():is_male() and (context:character():trait_level("dei_changing_trait_commander") == 2) and ((context:character() == context:pending_battle():attacker() and (context:pending_battle():attacker_battle_result() == "pyrrhic_victory" or context:pending_battle():attacker_battle_result() == "close_victory" or context:pending_battle():attacker_battle_result() == "decisive_defeat" or context:pending_battle():attacker_battle_result() == "crushing_defeat")) or (context:character() == context:pending_battle():defender() and (context:pending_battle():defender_battle_result() == "pyrrhic_victory" or context:pending_battle():defender_battle_result() == "close_victory" or context:pending_battle():defender_battle_result() == "crushing_defeat" or context:pending_battle():defender_battle_result() == "decisive_defeat")))
end
events.CharacterCompletedBattle[#events.CharacterCompletedBattle+1] =
function (context)
if dei_changing_trait_commander_level1i_impl(context) and context:character():faction():is_human() == true then
effect.trait("dei_changing_trait_commander", "agent", -1, 20, context)
--scripting.game_interface:show_message_event("custom_event_601", context:character():display_position_x(), context:character():display_position_y())
return true
end
return false
end
-- 3 to 2
function dei_changing_trait_commander_level1h_impl (context)
return char_is_general(context:character()) and context:character():has_trait("dei_changing_trait_commander") and context:character():is_male() and (context:character():trait_level("dei_changing_trait_commander") == 3) and ((context:character() == context:pending_battle():attacker() and (context:pending_battle():attacker_battle_result() == "pyrrhic_victory" or context:pending_battle():attacker_battle_result() == "close_victory" or context:pending_battle():attacker_battle_result() == "decisive_defeat" or context:pending_battle():attacker_battle_result() == "crushing_defeat")) or (context:character() == context:pending_battle():defender() and (context:pending_battle():defender_battle_result() == "pyrrhic_victory" or context:pending_battle():defender_battle_result() == "close_victory" or context:pending_battle():defender_battle_result() == "crushing_defeat" or context:pending_battle():defender_battle_result() == "decisive_defeat")))
end
events.CharacterCompletedBattle[#events.CharacterCompletedBattle+1] =
function (context)
if dei_changing_trait_commander_level1h_impl(context) and context:character():faction():is_human() == true then
effect.trait("dei_changing_trait_commander", "agent", -1, 20, context)
--scripting.game_interface:show_message_event("custom_event_601", context:character():display_position_x(), context:character():display_position_y())
return true
end
return false
end
-- 4 to 3
function dei_changing_trait_commander_level1g_impl (context)
return char_is_general(context:character()) and context:character():has_trait("dei_changing_trait_commander") and context:character():is_male() and (context:character():trait_level("dei_changing_trait_commander") == 4) and ((context:character() == context:pending_battle():attacker() and (context:pending_battle():attacker_battle_result() == "pyrrhic_victory" or context:pending_battle():attacker_battle_result() == "close_victory" or context:pending_battle():attacker_battle_result() == "decisive_defeat" or context:pending_battle():attacker_battle_result() == "crushing_defeat")) or (context:character() == context:pending_battle():defender() and (context:pending_battle():defender_battle_result() == "pyrrhic_victory" or context:pending_battle():defender_battle_result() == "close_victory" or context:pending_battle():defender_battle_result() == "crushing_defeat" or context:pending_battle():defender_battle_result() == "decisive_defeat")))
end
events.CharacterCompletedBattle[#events.CharacterCompletedBattle+1] =
function (context)
if dei_changing_trait_commander_level1g_impl(context) and context:character():faction():is_human() == true then
effect.trait("dei_changing_trait_commander", "agent", -1, 20, context)
--scripting.game_interface:show_message_event("custom_event_601", context:character():display_position_x(), context:character():display_position_y())
return true
end
return false
end
---Scholar
-- 5 to 6
function dei_changing_trait_scholar_level1d_impl (context)
return char_is_general(context:character()) and context:character():has_trait("dei_changing_trait_scholar") and context:character():is_male() and (context:character():trait_level("dei_changing_trait_scholar") == 5) and (context:character():age() >= 35) and context:character():has_garrison_residence() and context:character():garrison_residence():region():public_order() >= 90 and ((context:character():has_skill("general_capable_bureaucrat_2_adept_tradesman") or context:character():has_skill("general_capable_bureaucrat_2_agriculturist") or context:character():has_skill("general_capable_bureaucrat_2_city_governor") or context:character():has_skill("general_capable_bureaucrat_2_political_reformer")) and (context:character():has_skill("general_rightful_sovereign_2_master_of_statecraft") or context:character():has_skill("general_rightful_sovereign_2_political_animal") or context:character():has_skill("general_rightful_sovereign_2_unwavering_patriot")))and (garrison_has_building(context:character():garrison_residence(), "rom_EASTERN_city_slot_research_3") or garrison_has_building(context:character():garrison_residence(), "rom_EASTERN_city_slot_research_4") or garrison_has_building(context:character():garrison_residence(), "rom_HELLENIC_agora_research_3") or garrison_has_building(context:character():garrison_residence(), "rom_HELLENIC_agora_research_4") or garrison_has_building(context:character():garrison_residence(), "rom_HELLENIC_agora_research_5") or garrison_has_building(context:character():garrison_residence(), "rom_ROMAN_forum_research_3") or garrison_has_building(context:character():garrison_residence(), "rom_ROMAN_forum_research_4") or garrison_has_building(context:character():garrison_residence(), "rom_BARBARIAN_enclosure_research_4") or garrison_has_building(context:character():garrison_residence(), "rom_BARBARIAN_enclosure_research_3") or garrison_has_building_superchain(context:character():garrison_residence(), "rom_MilitaryBuffMajor") or garrison_has_building(context:character():garrison_residence(), "greek_city_centre_library_5_pergamon")) and (context:character():has_trait("r2_sp_trait_greco_roman_humors_philosophic") or context:character():has_trait("r2_sp_trait_greco_roman_humors_philosophic_tier_2_general") or context:character():has_trait("r2_sp_trait_greco_roman_humors_philosophic_tier_3_general") or context:character():has_trait("r2_sp_trait_greco_roman_humors_philosophic_tier_4_general"))
end
events.CharacterTurnStart[#events.CharacterTurnStart+1] =
function (context)
if dei_changing_trait_scholar_level1d_impl(context) then
effect.trait("dei_changing_trait_scholar", "agent", 1, 5, context)
return true
end
return false
end
-- 5 to 7
function dei_changing_trait_scholar_level1e_impl (context)
return char_is_general(context:character()) and context:character():has_trait("dei_changing_trait_scholar") and context:character():is_male() and (context:character():trait_level("dei_changing_trait_scholar") == 5) and (context:character():age() >= 35) and context:character():has_garrison_residence() and context:character():garrison_residence():region():public_order() >= 90 and ((context:character():has_skill("general_capable_bureaucrat_2_adept_tradesman") or context:character():has_skill("general_capable_bureaucrat_2_agriculturist") or context:character():has_skill("general_capable_bureaucrat_2_city_governor") or context:character():has_skill("general_capable_bureaucrat_2_political_reformer")) and (context:character():has_skill("general_rightful_sovereign_2_master_of_statecraft") or context:character():has_skill("general_rightful_sovereign_2_political_animal") or context:character():has_skill("general_rightful_sovereign_2_unwavering_patriot"))) and (garrison_has_building(context:character():garrison_residence(), "rom_EASTERN_city_slot_research_3") or garrison_has_building(context:character():garrison_residence(), "rom_EASTERN_city_slot_research_4") or garrison_has_building(context:character():garrison_residence(), "rom_HELLENIC_agora_research_3") or garrison_has_building(context:character():garrison_residence(), "rom_HELLENIC_agora_research_4") or garrison_has_building(context:character():garrison_residence(), "rom_HELLENIC_agora_research_5") or garrison_has_building(context:character():garrison_residence(), "rom_ROMAN_forum_research_3") or garrison_has_building(context:character():garrison_residence(), "rom_ROMAN_forum_research_4") or garrison_has_building(context:character():garrison_residence(), "rom_BARBARIAN_enclosure_research_4") or garrison_has_building(context:character():garrison_residence(), "rom_BARBARIAN_enclosure_research_3") or garrison_has_building_superchain(context:character():garrison_residence(), "rom_MilitaryBuffMajor") or garrison_has_building(context:character():garrison_residence(), "greek_city_centre_library_5_pergamon")) and (context:character():has_trait("r2_sp_trait_all_leader_farmer_civ") or context:character():has_trait("r2_sp_trait_all_leader_farmer_barb"))
end
events.CharacterTurnStart[#events.CharacterTurnStart+1] =
function (context)
if dei_changing_trait_scholar_level1e_impl(context) then
effect.trait("dei_changing_trait_scholar", "agent", 2, 5, context)
return true
end
return false
end
-- 5 to 9
function dei_changing_trait_scholar_level1fa_impl (context)
return char_is_general(context:character()) and context:character():has_trait("dei_changing_trait_scholar") and context:character():is_male() and (context:character():trait_level("dei_changing_trait_scholar") == 5) and (context:character():age() >= 35) and context:character():has_garrison_residence() and context:character():garrison_residence():region():public_order() >= 90 and ((context:character():has_skill("general_capable_bureaucrat_2_adept_tradesman") or context:character():has_skill("general_capable_bureaucrat_2_agriculturist") or context:character():has_skill("general_capable_bureaucrat_2_city_governor") or context:character():has_skill("general_capable_bureaucrat_2_political_reformer")) and (context:character():has_skill("general_rightful_sovereign_2_master_of_statecraft") or context:character():has_skill("general_rightful_sovereign_2_political_animal") or context:character():has_skill("general_rightful_sovereign_2_unwavering_patriot"))) and (garrison_has_building(context:character():garrison_residence(), "rom_EASTERN_city_slot_research_3") or garrison_has_building(context:character():garrison_residence(), "rom_EASTERN_city_slot_research_4") or garrison_has_building(context:character():garrison_residence(), "rom_HELLENIC_agora_research_3") or garrison_has_building(context:character():garrison_residence(), "rom_HELLENIC_agora_research_4") or garrison_has_building(context:character():garrison_residence(), "rom_HELLENIC_agora_research_5") or garrison_has_building(context:character():garrison_residence(), "rom_ROMAN_forum_research_3") or garrison_has_building(context:character():garrison_residence(), "rom_ROMAN_forum_research_4") or garrison_has_building(context:character():garrison_residence(), "rom_BARBARIAN_enclosure_research_4") or garrison_has_building(context:character():garrison_residence(), "rom_BARBARIAN_enclosure_research_3") or garrison_has_building_superchain(context:character():garrison_residence(), "rom_MilitaryBuffMajor") or garrison_has_building(context:character():garrison_residence(), "greek_city_centre_library_5_pergamon")) and (context:character():has_trait("r2_sp_trait_all_leader_trader_barb") or context:character():has_trait("r2_sp_trait_all_leader_trader_civ"))
end
events.CharacterTurnStart[#events.CharacterTurnStart+1] =
function (context)
if dei_changing_trait_scholar_level1fa_impl(context) then
effect.trait("dei_changing_trait_scholar", "agent", 4, 5, context)
return true
end
return false
end
-- 5 to 8
function dei_changing_trait_scholar_level1f_impl (context)
return char_is_general(context:character()) and context:character():has_trait("dei_changing_trait_scholar") and context:character():is_male() and (context:character():trait_level("dei_changing_trait_scholar") == 5) and (context:character():age() >= 35) and context:character():has_garrison_residence() and context:character():garrison_residence():region():public_order() >= 90 and ((context:character():has_skill("general_capable_bureaucrat_2_adept_tradesman") or context:character():has_skill("general_capable_bureaucrat_2_agriculturist") or context:character():has_skill("general_capable_bureaucrat_2_city_governor") or context:character():has_skill("general_capable_bureaucrat_2_political_reformer")) and (context:character():has_skill("general_rightful_sovereign_2_master_of_statecraft") or context:character():has_skill("general_rightful_sovereign_2_political_animal") or context:character():has_skill("general_rightful_sovereign_2_unwavering_patriot"))) and (garrison_has_building(context:character():garrison_residence(), "rom_EASTERN_city_slot_research_3") or garrison_has_building(context:character():garrison_residence(), "rom_EASTERN_city_slot_research_4") or garrison_has_building(context:character():garrison_residence(), "rom_HELLENIC_agora_research_3") or garrison_has_building(context:character():garrison_residence(), "rom_HELLENIC_agora_research_4") or garrison_has_building(context:character():garrison_residence(), "rom_HELLENIC_agora_research_5") or garrison_has_building(context:character():garrison_residence(), "rom_ROMAN_forum_research_3") or garrison_has_building(context:character():garrison_residence(), "rom_ROMAN_forum_research_4") or garrison_has_building(context:character():garrison_residence(), "rom_BARBARIAN_enclosure_research_4") or garrison_has_building(context:character():garrison_residence(), "rom_BARBARIAN_enclosure_research_3") or garrison_has_building_superchain(context:character():garrison_residence(), "rom_MilitaryBuffMajor") or garrison_has_building(context:character():garrison_residence(), "greek_city_centre_library_5_pergamon")) and (context:character():has_trait("r2_sp_trait_all_leader_miner_civ") or context:character():has_trait("r2_sp_trait_all_leader_miner_barb"))
end
events.CharacterTurnStart[#events.CharacterTurnStart+1] =
function (context)
if dei_changing_trait_scholar_level1f_impl(context) then
effect.trait("dei_changing_trait_scholar", "agent", 3, 10, context)
return true
end
return false
end
-- 4 to 5
function dei_changing_trait_scholar_level1c_impl (context)
return char_is_general(context:character()) and context:character():has_trait("dei_changing_trait_scholar") and context:character():is_male() and (context:character():trait_level("dei_changing_trait_scholar") == 4) and (context:character():age() >= 32) and context:character():has_garrison_residence() and context:character():garrison_residence():region():public_order() >= 80 and ((context:character():has_skill("general_capable_bureaucrat_2_adept_tradesman") or context:character():has_skill("general_capable_bureaucrat_2_agriculturist") or context:character():has_skill("general_capable_bureaucrat_2_city_governor") or context:character():has_skill("general_capable_bureaucrat_2_political_reformer")) and (context:character():has_skill("general_rightful_sovereign_2_master_of_statecraft") or context:character():has_skill("general_rightful_sovereign_2_political_animal") or context:character():has_skill("general_rightful_sovereign_2_unwavering_patriot")))and (garrison_has_building(context:character():garrison_residence(), "rom_EASTERN_city_slot_research_3") or garrison_has_building(context:character():garrison_residence(), "rom_EASTERN_city_slot_research_4") or garrison_has_building(context:character():garrison_residence(), "rom_HELLENIC_agora_research_3") or garrison_has_building(context:character():garrison_residence(), "rom_HELLENIC_agora_research_4") or garrison_has_building(context:character():garrison_residence(), "rom_HELLENIC_agora_research_5") or garrison_has_building(context:character():garrison_residence(), "rom_ROMAN_forum_research_3") or garrison_has_building(context:character():garrison_residence(), "rom_ROMAN_forum_research_4") or garrison_has_building(context:character():garrison_residence(), "rom_BARBARIAN_enclosure_research_4") or garrison_has_building(context:character():garrison_residence(), "rom_BARBARIAN_enclosure_research_3") or garrison_has_building_superchain(context:character():garrison_residence(), "rom_MilitaryBuffMajor") or garrison_has_building(context:character():garrison_residence(), "greek_city_centre_library_5_pergamon"))
end
events.CharacterTurnStart[#events.CharacterTurnStart+1] =
function (context)
if dei_changing_trait_scholar_level1c_impl(context) then
effect.trait("dei_changing_trait_scholar", "agent", 1, 5, context)
return true
end
return false
end
--3 to 4
function dei_changing_trait_scholar_level1b_impl (context)
return char_is_general(context:character()) and context:character():has_trait("dei_changing_trait_scholar") and context:character():is_male() and (context:character():trait_level("dei_changing_trait_scholar") == 3) and (context:character():age() >= 28) and context:character():has_garrison_residence() and context:character():garrison_residence():region():public_order() >= 70 and (((context:character():has_skill("general_capable_bureaucrat_2_adept_tradesman") or context:character():has_skill("general_capable_bureaucrat_2_agriculturist") or context:character():has_skill("general_capable_bureaucrat_2_city_governor") or context:character():has_skill("general_capable_bureaucrat_2_political_reformer")) and (context:character():has_skill("general_rightful_sovereign_2_master_of_statecraft") or context:character():has_skill("general_rightful_sovereign_2_political_animal") or context:character():has_skill("general_rightful_sovereign_2_unwavering_patriot"))) or (context:character():has_ancillary("r2_sp_anc_all_house_tutor_latin") or context:character():has_ancillary("r2_sp_anc_all_house_tutor") or context:character():has_ancillary("r2_sp_anc_all_house_wise_man"))) and (garrison_has_building(context:character():garrison_residence(), "rom_EASTERN_city_slot_research_3") or garrison_has_building(context:character():garrison_residence(), "rom_EASTERN_city_slot_research_4") or garrison_has_building(context:character():garrison_residence(), "rom_HELLENIC_agora_research_3") or garrison_has_building(context:character():garrison_residence(), "rom_HELLENIC_agora_research_4") or garrison_has_building(context:character():garrison_residence(), "rom_HELLENIC_agora_research_5") or garrison_has_building(context:character():garrison_residence(), "rom_ROMAN_forum_research_3") or garrison_has_building(context:character():garrison_residence(), "rom_ROMAN_forum_research_4") or garrison_has_building(context:character():garrison_residence(), "rom_BARBARIAN_enclosure_research_4") or garrison_has_building(context:character():garrison_residence(), "rom_BARBARIAN_enclosure_research_3") or garrison_has_building(context:character():garrison_residence(), "rom_EASTERN_city_slot_research_2") or garrison_has_building(context:character():garrison_residence(), "rom_HELLENIC_agora_research_2") or garrison_has_building(context:character():garrison_residence(), "rom_ROMAN_forum_research_2") or garrison_has_building(context:character():garrison_residence(), "rom_BARBARIAN_enclosure_research_2") or garrison_has_building_superchain(context:character():garrison_residence(), "rom_MilitaryBuffMajor") or garrison_has_building(context:character():garrison_residence(), "greek_city_centre_library_5_pergamon"))
end
events.CharacterTurnStart[#events.CharacterTurnStart+1] =
function (context)
if dei_changing_trait_scholar_level1b_impl(context) then
effect.trait("dei_changing_trait_scholar", "agent", 1, 5, context)
return true
end
return false
end
--2 to 3
function dei_changing_trait_scholar_level1a_impl (context)
return char_is_general(context:character()) and context:character():has_trait("dei_changing_trait_scholar") and context:character():is_male() and (context:character():trait_level("dei_changing_trait_scholar") == 2) and (context:character():age() >= 24) and context:character():has_garrison_residence() and context:character():garrison_residence():region():public_order() >= 60 and ((context:character():has_skill("general_rightful_sovereign_1") and context:character():has_skill("general_capable_bureaucrat_1")) or (context:character():has_ancillary("r2_sp_anc_all_house_tutor_latin") or context:character():has_ancillary("r2_sp_anc_all_house_tutor") or context:character():has_ancillary("r2_sp_anc_all_house_wise_man")))
end
events.CharacterTurnStart[#events.CharacterTurnStart+1] =
function (context)
if dei_changing_trait_scholar_level1a_impl(context) then
effect.trait("dei_changing_trait_scholar", "agent", 1, 5, context)
return true
end
return false
end
--1 to 2
function dei_changing_trait_scholar_level1aa_impl (context)
return char_is_general(context:character()) and context:character():has_trait("dei_changing_trait_scholar") and context:character():is_male() and (context:character():trait_level("dei_changing_trait_scholar") == 1) and context:character():has_garrison_residence() and context:character():garrison_residence():region():public_order() >= 50 and ((context:character():has_skill("general_rightful_sovereign_1") or context:character():has_skill("general_capable_bureaucrat_1")) or (context:character():has_ancillary("r2_sp_anc_all_house_tutor_latin") or context:character():has_ancillary("r2_sp_anc_all_house_tutor") or context:character():has_ancillary("r2_sp_anc_all_house_wise_man")))
end
events.CharacterTurnStart[#events.CharacterTurnStart+1] =
function (context)
if dei_changing_trait_scholar_level1aa_impl(context) then
effect.trait("dei_changing_trait_scholar", "agent", 1, 10, context)
return true
end
return false
end
-- 2 to 1
function dei_changing_trait_scholar_level1i_impl (context)
return char_is_general(context:character()) and context:character():has_trait("dei_changing_trait_scholar") and context:character():is_male() and (context:character():trait_level("dei_changing_trait_scholar") == 2) and context:character():has_garrison_residence() and context:character():garrison_residence():region():public_order() <= -60 and not (garrison_has_building(context:character():garrison_residence(), "rom_EASTERN_city_slot_research_3") or garrison_has_building(context:character():garrison_residence(), "rom_EASTERN_city_slot_research_4") or garrison_has_building(context:character():garrison_residence(), "rom_HELLENIC_agora_research_3") or garrison_has_building(context:character():garrison_residence(), "rom_HELLENIC_agora_research_4") or garrison_has_building(context:character():garrison_residence(), "rom_HELLENIC_agora_research_5") or garrison_has_building(context:character():garrison_residence(), "rom_ROMAN_forum_research_3") or garrison_has_building(context:character():garrison_residence(), "rom_ROMAN_forum_research_4") or garrison_has_building(context:character():garrison_residence(), "rom_BARBARIAN_enclosure_research_4") or garrison_has_building(context:character():garrison_residence(), "rom_BARBARIAN_enclosure_research_3") or garrison_has_building_superchain(context:character():garrison_residence(), "rom_MilitaryBuffMajor") or garrison_has_building(context:character():garrison_residence(), "greek_city_centre_library_5_pergamon"))
end
events.CharacterTurnStart[#events.CharacterTurnStart+1] =
function (context)
if dei_changing_trait_scholar_level1i_impl(context) and context:character():faction():is_human() == true then
effect.trait("dei_changing_trait_scholar", "agent", -1, 10, context)
--scripting.game_interface:show_message_event("custom_event_602", context:character():display_position_x(), context:character():display_position_y())
return true
end
return false
end
-- 3 to 2
function dei_changing_trait_scholar_level1h_impl (context)
return char_is_general(context:character()) and context:character():has_trait("dei_changing_trait_scholar") and context:character():is_male() and (context:character():trait_level("dei_changing_trait_scholar") == 3) and context:character():has_garrison_residence() and context:character():garrison_residence():region():public_order() <= -40 and not (garrison_has_building(context:character():garrison_residence(), "rom_EASTERN_city_slot_research_3") or garrison_has_building(context:character():garrison_residence(), "rom_EASTERN_city_slot_research_4") or garrison_has_building(context:character():garrison_residence(), "rom_HELLENIC_agora_research_3") or garrison_has_building(context:character():garrison_residence(), "rom_HELLENIC_agora_research_4") or garrison_has_building(context:character():garrison_residence(), "rom_HELLENIC_agora_research_5") or garrison_has_building(context:character():garrison_residence(), "rom_ROMAN_forum_research_3") or garrison_has_building(context:character():garrison_residence(), "rom_ROMAN_forum_research_4") or garrison_has_building(context:character():garrison_residence(), "rom_BARBARIAN_enclosure_research_4") or garrison_has_building(context:character():garrison_residence(), "rom_BARBARIAN_enclosure_research_3") or garrison_has_building_superchain(context:character():garrison_residence(), "rom_MilitaryBuffMajor") or garrison_has_building(context:character():garrison_residence(), "greek_city_centre_library_5_pergamon"))
end
events.CharacterTurnStart[#events.CharacterTurnStart+1] =
function (context)
if dei_changing_trait_scholar_level1h_impl(context) and context:character():faction():is_human() == true then
effect.trait("dei_changing_trait_scholar", "agent", -1, 10, context)
--scripting.game_interface:show_message_event("custom_event_602", context:character():display_position_x(), context:character():display_position_y())
return true
end
return false
end
-- 4 to 3
function dei_changing_trait_scholar_level1g_impl (context)
return char_is_general(context:character()) and context:character():has_trait("dei_changing_trait_scholar") and context:character():is_male() and (context:character():trait_level("dei_changing_trait_scholar") == 4) and context:character():has_garrison_residence() and context:character():garrison_residence():region():public_order() <= -30
end
events.CharacterTurnStart[#events.CharacterTurnStart+1] =
function (context)
if dei_changing_trait_scholar_level1g_impl(context) and context:character():faction():is_human() == true then
effect.trait("dei_changing_trait_scholar", "agent", -1, 5, context)
--scripting.game_interface:show_message_event("custom_event_602", context:character():display_position_x(), context:character():display_position_y())
return true
end
return false
end
you may check this thread and ask Dresden for a summarization