(
"center_manage",0,
"{s19}^{reg6?^^You are\
currently building {s7}. The building will be completed after {reg8} day{reg9?s:}.:}",
"none",
[(assign, ":num_improvements", 0),
(str_clear, s18),
(try_begin),
(party_slot_eq, "$g_encountered_party", slot_party_type, spt_village),
(assign, ":begin", village_improvements_begin),
(assign, ":end", village_improvements_end),
(str_store_string, s17, "@village"),
(else_try),
(assign, ":begin", walled_center_improvements_begin),
(assign, ":end", walled_center_improvements_end),
(party_slot_eq, "$g_encountered_party", slot_party_type, spt_town),
(str_store_string, s17, "@town"),
(else_try),
(str_store_string, s17, "@castle"),
(try_end),
(try_for_range, ":improvement_no", ":begin", ":end"),
(party_slot_ge, "$g_encountered_party", ":improvement_no", 1),
(val_add, ":num_improvements", 1),
(call_script, "script_get_improvement_details", ":improvement_no"),
(try_begin),
(eq, ":num_improvements", 1),
(str_store_string, s18, "@{s0}"),
(else_try),
(str_store_string, s18, "@{s18}, {s0}"),
(try_end),
(try_end),
(try_begin),
(eq, ":num_improvements", 0),
(str_store_string, s19, "@The {s17} has no improvements."),
(else_try),
(str_store_string, s19, "@The {s17} has the following improvements:{s18}."),
(try_end),
(assign, reg6, 0),
(try_begin),
(party_get_slot, ":cur_improvement", "$g_encountered_party", slot_center_current_improvement),
(gt, ":cur_improvement", 0),
(call_script, "script_get_improvement_details", ":cur_improvement"),
(str_store_string, s7, s0),
(assign, reg6, 1),
(store_current_hours, ":cur_hours"),
(party_get_slot, ":finish_time", "$g_encountered_party", slot_center_improvement_end_hour),
(val_sub, ":finish_time", ":cur_hours"),
(store_div, reg8, ":finish_time", 24),
(val_max, reg8, 1),
(store_sub, reg9, reg8, 1),
(try_end),
],
[
("center_build_manor",[(eq, reg6, 0),
(party_slot_eq, "$g_encountered_party", slot_party_type, spt_village),
(party_slot_eq, "$g_encountered_party", slot_center_has_manor, 0),
],
"Build a manor.",[(assign, "$g_improvement_type", slot_center_has_manor),
(jump_to_menu, "mnu_center_improve"),]),
("center_build_fish_pond",[(eq, reg6, 0),
(party_slot_eq, "$g_encountered_party", slot_party_type, spt_village),
(party_slot_eq, "$g_encountered_party", slot_center_has_fish_pond, 0),
],
"Build a mill.",[(assign, "$g_improvement_type", slot_center_has_fish_pond),
(jump_to_menu, "mnu_center_improve"),]),
("center_build_watch_tower",[(eq, reg6, 0),
(party_slot_eq, "$g_encountered_party", slot_party_type, spt_village),
(party_slot_eq, "$g_encountered_party", slot_center_has_watch_tower, 0),
],
"Build a watch tower.",[(assign, "$g_improvement_type", slot_center_has_watch_tower),
(jump_to_menu, "mnu_center_improve"),]),
("center_build_school",[(eq, reg6, 0),
(party_slot_eq, "$g_encountered_party", slot_party_type, spt_village),
(party_slot_eq, "$g_encountered_party", slot_center_has_school, 0),
],
"Build a school.",[(assign, "$g_improvement_type", slot_center_has_school),
(jump_to_menu, "mnu_center_improve"),]),
("center_build_messenger_post",[(eq, reg6, 0),
(party_slot_eq, "$g_encountered_party", slot_center_has_messenger_post, 0),
],
"Build a messenger post.",[(assign, "$g_improvement_type", slot_center_has_messenger_post),
(jump_to_menu, "mnu_center_improve"),]),
("center_build_prisoner_tower",[(eq, reg6, 0),
(this_or_next|party_slot_eq, "$g_encountered_party", slot_party_type, spt_town),
(party_slot_eq, "$g_encountered_party", slot_party_type, spt_castle),
(party_slot_eq, "$g_encountered_party", slot_center_has_prisoner_tower, 0),
],
"Build a prisoner tower.",[(assign, "$g_improvement_type", slot_center_has_prisoner_tower),
(jump_to_menu, "mnu_center_improve"),]),
("go_back_dot",[],"Go back.",[(jump_to_menu, "$g_next_menu")]),
],
),
(
"center_improve",0,
"{s19} As the party member with the highest engineer skill ({reg2}), {reg3?you reckon:{s3} reckons} that building the {s4} will cost you\
{reg5} denars and will take {reg6} days.",
"none",
[(call_script, "script_get_improvement_details", "$g_improvement_type"),
(assign, ":improvement_cost", reg0),
(str_store_string, s4, s0),
(str_store_string, s19, s1),
(call_script, "script_get_max_skill_of_player_party", "skl_engineer"),
(assign, ":max_skill", reg0),
(assign, ":max_skill_owner", reg1),
(assign, reg2, ":max_skill"),
(store_sub, ":multiplier", 20, ":max_skill"),
(val_mul, ":improvement_cost", ":multiplier"),
(val_div, ":improvement_cost", 20),
(store_div, ":improvement_time", ":improvement_cost", 100),
(val_add, ":improvement_time", 3),
(assign, reg5, ":improvement_cost"),
(assign, reg6, ":improvement_time"),
(try_begin),
(eq, ":max_skill_owner", "trp_player"),
(assign, reg3, 1),
(else_try),
(assign, reg3, 0),
(str_store_troop_name, s3, ":max_skill_owner"),
(try_end),
],
[
("improve_cont",[(store_troop_gold, ":cur_gold", "trp_player"),
(ge, ":cur_gold", reg5)],
"Go on.", [(troop_remove_gold, "trp_player", reg5),
(party_set_slot, "$g_encountered_party", slot_center_current_improvement, "$g_improvement_type"),
(store_current_hours, ":cur_hours"),
(store_mul, ":hours_takes", reg6, 24),
(val_add, ":hours_takes", ":cur_hours"),
(party_set_slot, "$g_encountered_party", slot_center_improvement_end_hour, ":hours_takes"),
(jump_to_menu,"mnu_center_manage"),
]),
("forget_it",[(store_troop_gold, ":cur_gold", "trp_player"),
(ge, ":cur_gold", reg5)],
"Forget it.", [(jump_to_menu,"mnu_center_manage")]),
("improve_not_enough_gold",[(store_troop_gold, ":cur_gold", "trp_player"),
(lt, ":cur_gold", reg5)],
"I don't have enough money for that.", [(jump_to_menu, "mnu_center_manage"),]),
],
),