# Custom Troops Scripts Begin
("copy_inventory", [
# 1-1 copy of all inventory details
(store_script_param_1, ":source"),
(store_script_param_2, ":dest"),
(troop_clear_inventory, ":dest"),
(troop_get_inventory_capacity, ":inv_cap", ":source"),
(try_for_range, ":i_slot", 0, ":inv_cap"),
(troop_get_inventory_slot, ":item", ":source", ":i_slot"),
(troop_set_inventory_slot, ":dest", ":i_slot", ":item"),
(troop_get_inventory_slot_modifier, ":imod", ":source", ":i_slot"),
(troop_set_inventory_slot_modifier, ":dest", ":i_slot", ":imod"),
(try_begin),
(is_between, ":item", food_begin, food_end),
(troop_inventory_slot_get_item_amount, ":amt", ":source", ":i_slot"),
(troop_inventory_slot_set_item_amount, ":dest", ":i_slot", ":amt"),
(try_end),
(try_end),
]),
("start_customizing", [
(store_script_param_1, ":troop"),
(store_skill_level, "$g_player_inventory_management", skl_inventory_management, "trp_player"),
(store_sub, ":skill_raise", 10, "$g_player_inventory_management"),
(troop_raise_skill, "trp_player", skl_inventory_management, ":skill_raise"),
(call_script, "script_copy_inventory", "trp_player", "trp_inventory_backup"),
(call_script, "script_unequip_troop", ":troop"),
(store_add, ":selection_troop", 2, ":troop"),
(call_script, "script_copy_inventory", ":selection_troop", "trp_player"),
(change_screen_loot, ":troop"),
]),
("finish_customizing", [
(store_script_param_1, ":troop"),
(store_sub, ":skill_raise", "$g_player_inventory_management", 10),
(troop_raise_skill, "trp_player", skl_inventory_management, ":skill_raise"),
(call_script, "script_copy_inventory", "trp_inventory_backup", "trp_player"),
(call_script, "script_unequip_troop", ":troop"),
(store_add, ":bak_troop", 1, ":troop"),
(call_script, "script_copy_inventory", ":troop", ":bak_troop"),
(troop_equip_items, ":troop"),
]),
("unequip_troop", [
(store_script_param_1, ":troop"),
(try_for_range, ":i_slot", 0, 10),
(troop_get_inventory_slot, ":item",":troop", ":i_slot"),
(gt, ":item", 0),
(troop_get_inventory_slot_modifier, ":imod",":troop", ":i_slot"),
(troop_set_inventory_slot, ":troop", ":i_slot", -1),
(troop_add_item, ":troop", ":item", ":imod"),
(try_end),
]),
("reload_custom_troops", [
(try_for_range, ":troop", customizable_troops_begin, customizable_troops_end),
(neg|troop_is_hero, ":troop"),
(store_add, ":bak_troop", 1, ":troop"),
(call_script, "script_copy_inventory", ":bak_troop", ":troop"),
(troop_equip_items, ":troop"),
(try_end),
]),
# # This is just a script to recruit personal recruits from villages. Totally optional,
("village_recruit_volunteers_recruit_personal",
[(assign, ":volunteer_troop", "trp_custom_peasant"),
(party_get_slot, ":volunteer_amount", "$current_town", slot_center_volunteer_troop_amount),
(party_get_free_companions_capacity, ":free_capacity", "p_main_party"),
(val_min, ":volunteer_amount", ":free_capacity"),
(store_troop_gold, ":gold", "trp_player"),
(store_div, ":gold_capacity", ":gold", 20),#10 denars per man
(val_min, ":volunteer_amount", ":gold_capacity"),
(party_add_members, "p_main_party", ":volunteer_troop", ":volunteer_amount"),
(party_set_slot, "$current_town", slot_center_volunteer_troop_amount, -1),
(store_mul, ":cost", ":volunteer_amount", 20),#10 denars per man
(troop_remove_gold, "trp_player", ":cost"),
]),
# Custom Troops End