﻿namespace = cmd_plus_trait

cmd_plus_trait.0003 = { #relentless_pursuer

	hidden = yes
	scope = combat_side

	trigger = {
		exists = side_commander
		side_commander = {
			is_alive = yes
			has_trait = relentless_pursuer
		}
	}

	immediate = {
		side_commander = {
			cmd_plus_apply_tiered_character_modifier_effect = {
				TRAIT = relentless_pursuer
				MODIFIER_0 = relentless_pursuer_modifier
				MODIFIER_1 = relentless_pursuer_modifier_1
				MODIFIER_2 = relentless_pursuer_modifier_2
				MODIFIER_3 = relentless_pursuer_modifier_3
				DURATION = cmd_plus_relentless_pursuer_duration_days
			}
		}
	}
}

cmd_plus_trait.1016 = { #knights T3 acclaimed effect

    hidden = yes
	scope = combat_side

    trigger = {
        exists = side_commander
        side_commander = {
            is_alive = yes
            has_trait = knights_specialist
        }
    }

    immediate = {
        side_commander = {
            cmd_plus_cleanup_legacy_transient_state_effect = yes
            set_variable = { name = cmd_plus_knights_specialist_prestige_to_add_counter value = 0 }
            save_temporary_scope_as = cmd_plus_knights_commander
        }
        scope:cmd_plus_knights_commander = {
            if = {
                limit = { is_commanding_army = yes }
                commanding_army = {
                    save_temporary_scope_as = cmd_plus_knights_winning_army
                    if = {
                        limit = { army_owner = scope:cmd_plus_knights_commander }
                        scope:cmd_plus_knights_commander = { save_temporary_scope_as = cmd_plus_knights_army_owner }
                    }
                    else = {
                        army_owner = { save_temporary_scope_as = cmd_plus_knights_army_owner }
                    }
                }
            }
        }
        if = {
            limit = { NOT = { exists = scope:cmd_plus_knights_army_owner } }
            side_primary_participant = { save_temporary_scope_as = cmd_plus_knights_army_owner }
        }
        every_side_knight = {
            limit = {
                exists = scope:cmd_plus_knights_winning_army
                knight_army ?= scope:cmd_plus_knights_winning_army
                is_acclaimed = yes
            }
            scope:cmd_plus_knights_commander = {
                change_variable = { name = cmd_plus_knights_specialist_prestige_to_add_counter add = 3 }
            }
        }
        every_side_knight = {
            limit = {
                exists = scope:cmd_plus_knights_winning_army
                knight_army ?= scope:cmd_plus_knights_winning_army
            }
            scope:cmd_plus_knights_commander = {
                change_variable = { name = cmd_plus_knights_specialist_prestige_to_add_counter add = 1 }
            }
        }
        side_commander = {
            if = {
                limit = { has_trait_xp = { trait = knights_specialist value >= cmd_plus_trait_tier_3_xp } }
                change_variable = { name = cmd_plus_knights_specialist_prestige_to_add_counter multiply = cmd_plus_knights_prestige_tier_3_multiplier }
            }
            else_if = {
                limit = { has_trait_xp = { trait = knights_specialist value >= cmd_plus_trait_tier_2_xp } }
                change_variable = { name = cmd_plus_knights_specialist_prestige_to_add_counter multiply = cmd_plus_knights_prestige_tier_2_multiplier }
            }
            else_if = {
                limit = { has_trait_xp = { trait = knights_specialist value >= cmd_plus_trait_tier_1_xp } }
                change_variable = { name = cmd_plus_knights_specialist_prestige_to_add_counter multiply = cmd_plus_knights_prestige_tier_1_multiplier }
            }
            else_if = {
                limit = { has_trait_xp = { trait = knights_specialist value >= 0 } }
                change_variable = { name = cmd_plus_knights_specialist_prestige_to_add_counter multiply = cmd_plus_knights_prestige_tier_0_multiplier }
            }
            if = {
                limit = {
                    var:cmd_plus_knights_specialist_prestige_to_add_counter != 0
                }
                add_prestige = scope:cmd_plus_knights_commander.var:cmd_plus_knights_specialist_prestige_to_add_counter
            }
            change_variable = { name = cmd_plus_knights_specialist_prestige_to_add_counter divide = cmd_plus_knights_prestige_owner_share_divisor }
        }
        scope:cmd_plus_knights_army_owner = {
            if = {
                limit = {
                    scope:cmd_plus_knights_commander.var:cmd_plus_knights_specialist_prestige_to_add_counter != 0
                    this != scope:cmd_plus_knights_commander
                }
                add_prestige = scope:cmd_plus_knights_commander.var:cmd_plus_knights_specialist_prestige_to_add_counter
            }
        }
        scope:cmd_plus_knights_commander = {
            remove_variable = cmd_plus_knights_specialist_prestige_to_add_counter
        }
    }
}
