############################################################
##         Elite Recruitment Trait Compatibility          ##
############################################################
##                                                        ##
## Maps the flavor and leadership traits that CleanSlate  ##
## renames. The base uses vanilla IDs. When CleanSlate's  ##
## cleanslate_active flag is set (it sets this at         ##
## startup) the CleanSlate IDs are used instead.          ##
## Per-trait mapping is noted on each effect below.       ##
##                                                        ##
############################################################

# Physique flavor trait:
# Robust (vanilla) / Brawny (CleanSlate)
assign_elite_physique_trait_effect = {
  if = {
    limit = { has_global_flag = cleanslate_active }
    add_trait = brawny
  }
  else = {
    add_trait = robust
  }
}

# Beauty flavor trait:
# Fair (vanilla) / Attractive (CleanSlate)
assign_elite_beauty_trait_effect = {
  if = {
    limit = { has_global_flag = cleanslate_active }
    add_trait = attractive
  }
  else = {
    add_trait = fair
  }
}

# Battlefield Terrain Master leadership trait:
# narrow_flank_leader (vanilla) / battlefield_terrain_master (CleanSlate)
assign_elite_battlefield_terrain_master_trait_effect = {
  if = {
    limit = { has_global_flag = cleanslate_active }
    add_trait = battlefield_terrain_master
  }
  else = {
    add_trait = narrow_flank_leader
  }
}

# Direct Leader leadership trait:
# experimenter (vanilla) / direct_leader (CleanSlate)
assign_elite_direct_leader_trait_effect = {
  if = {
    limit = { has_global_flag = cleanslate_active }
    add_trait = direct_leader
  }
  else = {
    add_trait = experimenter
  }
}

# Terrain-expertise leadership traits:
# vanilla *_terrain_leader / CleanSlate *_expert
assign_elite_desert_terrain_trait_effect = {
  if = {
    limit = { has_global_flag = cleanslate_active }
    add_trait = desert_expert
  }
  else = {
    add_trait = desert_terrain_leader
  }
}

assign_elite_flat_terrain_trait_effect = {
  if = {
    limit = { has_global_flag = cleanslate_active }
    add_trait = flat_terrain_expert
  }
  else = {
    add_trait = flat_terrain_leader
  }
}

assign_elite_jungle_terrain_trait_effect = {
  if = {
    limit = { has_global_flag = cleanslate_active }
    add_trait = jungle_expert
  }
  else = {
    add_trait = jungle_terrain_leader
  }
}

assign_elite_mountain_terrain_trait_effect = {
  if = {
    limit = { has_global_flag = cleanslate_active }
    add_trait = mountain_expert
  }
  else = {
    add_trait = mountain_terrain_leader
  }
}

assign_elite_rough_terrain_trait_effect = {
  if = {
    limit = { has_global_flag = cleanslate_active }
    add_trait = rough_terrain_expert
  }
  else = {
    add_trait = rough_terrain_leader
  }
}

# Remove the build's renamed leadership traits (Battlefield Terrain Master, Direct Leader, terrain)
remove_elite_compat_leadership_traits_effect = {
  if = {
    limit = { has_global_flag = cleanslate_active }
    # CleanSlate IDs
    remove_trait = battlefield_terrain_master
    remove_trait = direct_leader
    remove_trait = desert_expert
    remove_trait = flat_terrain_expert
    remove_trait = jungle_expert
    remove_trait = mountain_expert
    remove_trait = rough_terrain_expert
  }
  else = {
    # Vanilla IDs
    remove_trait = narrow_flank_leader
    remove_trait = experimenter
    remove_trait = desert_terrain_leader
    remove_trait = flat_terrain_leader
    remove_trait = jungle_terrain_leader
    remove_trait = mountain_terrain_leader
    remove_trait = rough_terrain_leader
  }
}

# Intrigue lifestyle trait:
# Schemer (vanilla) / Master Schemer (CleanSlate)
assign_elite_schemer_trait_effect = {
  if = {
    limit = { has_global_flag = cleanslate_active }
    add_trait = master_schemer
  }
  else = {
    add_trait = schemer
  }
}

# Seduction lifestyle trait (sex-specific):
# Seducer/Seductress (vanilla) / Master Seducer/Master Seductress (CleanSlate)
assign_elite_seducer_trait_effect = {
  if = {
    limit = { is_female = yes }
    if = {
      limit = { has_global_flag = cleanslate_active }
      add_trait = master_seductress
    }
    else = {
      add_trait = seductress
    }
  }
  else = {
    if = {
      limit = { has_global_flag = cleanslate_active }
      add_trait = master_seducer
    }
    else = {
      add_trait = seducer
    }
  }
}

# Holy-war veteran traits (called from assign_marshal_crusade_trait_effect). Five of
# the fourteen religion->trait mappings have CleanSlate-renamed trait IDs and
# need a compat switch; the other nine share IDs and are added inline.

# Tengri: tengri_warrior (vanilla) / skylord (CleanSlate)
assign_elite_tengri_crusade_trait_effect = {
  if = {
    limit = { has_global_flag = cleanslate_active }
    add_trait = skylord
  }
  else = {
    add_trait = tengri_warrior
  }
}

# Finnish: ukkos_shield (vanilla) / ukkos_hammer (CleanSlate)
assign_elite_finnish_crusade_trait_effect = {
  if = {
    limit = { has_global_flag = cleanslate_active }
    add_trait = ukkos_hammer
  }
  else = {
    add_trait = ukkos_shield
  }
}

# Baltic: romuvas_own (vanilla) / hound_of_dievas (CleanSlate)
assign_elite_baltic_crusade_trait_effect = {
  if = {
    limit = { has_global_flag = cleanslate_active }
    add_trait = hound_of_dievas
  }
  else = {
    add_trait = romuvas_own
  }
}

# Aztec: eagle_warrior (vanilla) / eagle_knight (CleanSlate)
assign_elite_aztec_crusade_trait_effect = {
  if = {
    limit = { has_global_flag = cleanslate_active }
    add_trait = eagle_knight
  }
  else = {
    add_trait = eagle_warrior
  }
}

# Jewish: shaddai (vanilla) / kanai (CleanSlate)
assign_elite_jewish_crusade_trait_effect = {
  if = {
    limit = { has_global_flag = cleanslate_active }
    add_trait = kanai
  }
  else = {
    add_trait = shaddai
  }
}
