("insurance_broker", 0,
"You enter the dimly lit office of the local insurance broker. {s1}",
"none",
[
(store_current_hours, ":cur_time"),
(try_begin),
(gt, "$g_insurance_blacklist_until", ":cur_time"),
(store_sub, ":hours_left", "$g_insurance_blacklist_until", ":cur_time"),
(store_div, ":days_left", ":hours_left", 24),
(assign, reg1, ":days_left"),
(str_store_string, s1, "@The broker glares at you. 'You are blacklisted for fraud! Come back in {reg1} days.'"),
(else_try),
(eq, "$g_insurance_active", 1),
(str_store_string, s1, "@'Your equipment is currently insured. We will pay out if you lose it in battle.'"),
(try_begin),
(gt, "$g_insurance_payout_amount", 0),
(assign, reg1, "$g_insurance_payout_amount"),
(str_store_string, s1, "@'Ah, I see you suffered a loss recently. I have a payout of {reg1} denars ready for you.'"),
(try_end),
(else_try),
(str_store_string, s1, "@'Welcome. I can insure your currently equipped items for 5 percent of their value.'"),
(try_end),
],
[
("insurance_payout",
[
(gt, "$g_insurance_payout_amount", 0),
],
"Claim payout.",
[
(troop_add_gold, "trp_player", "$g_insurance_payout_amount"),
(display_message, "@You received your insurance payout.", 0x00FF00),
(assign, "$g_insurance_payout_amount", 0),
(jump_to_menu, "mnu_insurance_broker"),
]),
("insurance_buy",
[
(eq, "$g_insurance_active", 0),
(store_current_hours, ":cur_time"),
(le, "$g_insurance_blacklist_until", ":cur_time"),
(assign, ":total_value", 0),
(try_for_range, ":i", 0, 9),
(troop_get_inventory_slot, ":item", "trp_player", ":i"),
(try_begin),
(gt, ":item", -1),
(store_item_value, ":base_value", ":item"),
(val_add, ":total_value", ":base_value"),
(try_end),
(try_end),
(store_mul, " :p remium", ":total_value", 5),
(val_div, " :p remium", 100),
(assign, reg1, " :p remium"),
(gt, " :p remium", 0),
],
"Insure current equipment ({reg1} denars).",
[
(assign, ":total_value", 0),
(try_for_range, ":i", 0, 9),
(troop_get_inventory_slot, ":item", "trp_player", ":i"),
(try_begin),
(gt, ":item", -1),
(store_item_value, ":base_value", ":item"),
(val_add, ":total_value", ":base_value"),
(try_end),
(try_end),
(store_mul, " :p remium", ":total_value", 5),
(val_div, " :p remium", 100),
(store_troop_gold, ":gold", "trp_player"),
(try_begin),
(ge, ":gold", " :p remium"),
(troop_remove_gold, "trp_player", " :p remium"),
(assign, "$g_insurance_active", 1),
(assign, "$g_insurance_payout_amount", 0),
(display_message, "@Equipment insured.", 0x00FF00),
(try_for_range, ":i", 0, 9),
(troop_get_inventory_slot, ":item", "trp_player", ":i"),
(try_begin),
(gt, ":item", -1),
(troop_get_inventory_slot_modifier, ":mod", "trp_player", ":i"),
(store_item_value, ":base_value", ":item"),
(store_add, ":item_slot", 170, ":i"),
(store_add, ":mod_slot", 179, ":i"),
(store_add, ":val_slot", 188, ":i"),
(troop_set_slot, "trp_player", ":item_slot", ":item"),
(troop_set_slot, "trp_player", ":mod_slot", ":mod"),
(troop_set_slot, "trp_player", ":val_slot", ":base_value"),
(else_try),
(store_add, ":item_slot", 170, ":i"),
(troop_set_slot, "trp_player", ":item_slot", -1),
(try_end),
(try_end),
(jump_to_menu, "mnu_insurance_broker"),
(else_try),
(display_message, "@Not enough money.", 0xFF0000),
(try_end),
]),
("insurance_cancel",
[
(eq, "$g_insurance_active", 1),
],
"Cancel insurance.",
[
(assign, "$g_insurance_active", 0),
(display_message, "@Insurance cancelled.", 0xFFFF00),
(jump_to_menu, "mnu_insurance_broker"),
]),
("insurance_leave", [], "Leave.",
[
(jump_to_menu, "mnu_town"),
]),
]
),