Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ("trade_screen_replacer", 0, mesh_inventory_window_b, [
- (ti_on_presentation_load,
- [
- (presentation_set_duration, 999999),
- (set_fixed_point_multiplier, 1000),
- (try_for_range, ":i_slot", 0, 110),
- (troop_set_slot, "trp_temp_array_a", ":i_slot", -1), #player's selected items
- (troop_set_slot, "trp_temp_array_b", ":i_slot", -1), #merchant's selected items
- (try_end),
- (try_for_range, ":i_slot", 0, 220), #overlay ids (0-... - player's inventory, 110-... - merchant's inventory)
- (troop_set_slot, "trp_temp_array_c", ":i_slot", -1),
- (try_end),
- (assign, "$g_presentation_obj_15", -1), (assign, "$g_presentation_obj_16", -1),
- ## Done button
- (create_game_button_overlay, "$g_presentation_obj_1", "@Return"),
- (position_set_x, pos1, 500),
- (position_set_y, pos1, 23),
- (overlay_set_position, "$g_presentation_obj_1", pos1),
- ## Trader Switch Button
- (position_set_x, pos1, 147),
- (position_set_y, pos1, 695),
- (create_combo_button_overlay, "$g_presentation_obj_2"),
- (overlay_set_position, "$g_presentation_obj_2", pos1),
- (position_set_x, pos1, 1060),
- (position_set_y, pos1, 1060),
- (overlay_set_size, "$g_presentation_obj_2", pos1),
- (overlay_add_item, "$g_presentation_obj_2", "@General Goods Merchant"),
- (overlay_add_item, "$g_presentation_obj_2", "@Horse Merchant"),
- (overlay_add_item, "$g_presentation_obj_2", "@Armourer"),
- (overlay_add_item, "$g_presentation_obj_2", "@Weaponsmith"),
- (try_begin),
- (party_slot_eq, "$current_town", slot_town_weaponsmith, "$temp_2"),
- (overlay_set_val, "$g_presentation_obj_2", 3),
- (else_try),
- (party_slot_eq, "$current_town", slot_town_armorer, "$temp_2"),
- (overlay_set_val, "$g_presentation_obj_2", 2),
- (else_try),
- (party_slot_eq, "$current_town", slot_town_horse_merchant, "$temp_2"),
- (overlay_set_val, "$g_presentation_obj_2", 1),
- (else_try),
- (overlay_set_val, "$g_presentation_obj_2", 0),
- (try_end),
- ##+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- ## Player's equipment 0-8
- (assign, ":overlay_counter", 0),
- (assign, ":total_head_armor", 0),
- (assign, ":total_body_armor", 0),
- (assign, ":total_leg_armor", 0),
- (assign, ":total_weight", 0),
- (try_for_range, ":i_slot", 0, 9),
- (troop_get_inventory_slot, ":item", "trp_player", ":i_slot"),
- (try_begin),
- (ge, ":item", 0),
- (troop_get_inventory_slot_modifier, ":imod", "trp_player", ":i_slot"),
- (item_get_weight, ":cur_weight", ":item"), (val_add, ":total_weight", ":cur_weight"),
- (try_begin),
- (eq, ":i_slot", 0), (assign, ":pos_x", 596), (assign, ":pos_y", 650),
- (else_try),
- (eq, ":i_slot", 1), (assign, ":pos_x", 596), (assign, ":pos_y", 562),
- (else_try),
- (eq, ":i_slot", 2), (assign, ":pos_x", 596), (assign, ":pos_y", 474),
- (else_try),
- (eq, ":i_slot", 3), (assign, ":pos_x", 596), (assign, ":pos_y", 385),
- (else_try), #head
- (eq, ":i_slot", 4), (assign, ":pos_x", 495), (assign, ":pos_y", 650),
- (item_get_head_armor, ":cur_head_armor_value", ":item"), (item_get_body_armor, ":cur_body_armor_value", ":item"),
- (assign, ":armor_mod", 0),
- (try_begin), (eq, ":imod", imod_cracked), (assign, ":armor_mod", -4),
- (else_try), (this_or_next|eq, ":imod", imod_rusty), (eq, ":imod", imod_tattered), (assign, ":armor_mod", -3),
- (else_try), (this_or_next|eq, ":imod", imod_battered), (eq, ":imod", imod_ragged),(assign, ":armor_mod", -2),
- (else_try), (eq, ":imod", imod_crude), (assign, ":armor_mod", -1),
- (else_try), (eq, ":imod", imod_sturdy), (assign, ":armor_mod", 1),
- (else_try), (eq, ":imod", imod_thick), (assign, ":armor_mod", 2),
- (else_try), (eq, ":imod", imod_hardened), (assign, ":armor_mod", 3),
- (else_try), (eq, ":imod", imod_reinforced), (assign, ":armor_mod", 4),
- (else_try), (eq, ":imod", imod_lordly), (assign, ":armor_mod", 6),
- (try_end),
- (try_begin),
- (gt, ":cur_head_armor_value", 0), (val_add, ":cur_head_armor_value", ":armor_mod"), (val_max, ":cur_head_armor_value", 0),
- (try_end),
- (try_begin),
- (gt, ":cur_body_armor_value", 0), (val_add, ":cur_body_armor_value", ":armor_mod"), (val_max, ":cur_body_armor_value", 0),
- (try_end),
- (val_add, ":total_head_armor", ":cur_head_armor_value"), (val_add, ":total_body_armor", ":cur_body_armor_value"),
- (else_try), #body
- (eq, ":i_slot", 5), (assign, ":pos_x", 495), (assign, ":pos_y", 562),
- (item_get_head_armor, ":cur_head_armor_value", ":item"), (item_get_body_armor, ":cur_body_armor_value", ":item"), (item_get_leg_armor, ":cur_leg_armor_value", ":item"),
- (assign, ":armor_mod", 0),
- (try_begin), (eq, ":imod", imod_cracked), (assign, ":armor_mod", -4),
- (else_try), (this_or_next|eq, ":imod", imod_rusty), (eq, ":imod", imod_tattered), (assign, ":armor_mod", -3),
- (else_try), (this_or_next|eq, ":imod", imod_battered), (eq, ":imod", imod_ragged),(assign, ":armor_mod", -2),
- (else_try), (eq, ":imod", imod_crude), (assign, ":armor_mod", -1),
- (else_try), (eq, ":imod", imod_sturdy), (assign, ":armor_mod", 1),
- (else_try), (eq, ":imod", imod_thick), (assign, ":armor_mod", 2),
- (else_try), (eq, ":imod", imod_hardened), (assign, ":armor_mod", 3),
- (else_try), (eq, ":imod", imod_reinforced), (assign, ":armor_mod", 4),
- (else_try), (eq, ":imod", imod_lordly), (assign, ":armor_mod", 6),
- (try_end),
- (try_begin),
- (gt, ":cur_head_armor_value", 0), (val_add, ":cur_head_armor_value", ":armor_mod"), (val_max, ":cur_head_armor_value", 0),
- (try_end),
- (try_begin),
- (gt, ":cur_body_armor_value", 0), (val_add, ":cur_body_armor_value", ":armor_mod"), (val_max, ":cur_body_armor_value", 0),
- (try_end),
- (try_begin),
- (gt, ":cur_leg_armor_value", 0), (val_add, ":cur_leg_armor_value", ":armor_mod"), (val_max, ":cur_leg_armor_value", 0),
- (try_end),
- (val_add, ":total_head_armor", ":cur_head_armor_value"), (val_add, ":total_body_armor", ":cur_body_armor_value"), (val_add, ":total_leg_armor", ":cur_leg_armor_value"),
- (else_try), #foot
- (eq, ":i_slot", 6), (assign, ":pos_x", 495), (assign, ":pos_y", 474),
- (item_get_body_armor, ":cur_body_armor_value", ":item"), (item_get_leg_armor, ":cur_leg_armor_value", ":item"),
- (assign, ":armor_mod", 0),
- (try_begin), (eq, ":imod", imod_cracked), (assign, ":armor_mod", -4),
- (else_try), (this_or_next|eq, ":imod", imod_rusty), (eq, ":imod", imod_tattered), (assign, ":armor_mod", -3),
- (else_try), (this_or_next|eq, ":imod", imod_battered), (eq, ":imod", imod_ragged),(assign, ":armor_mod", -2),
- (else_try), (eq, ":imod", imod_crude), (assign, ":armor_mod", -1),
- (else_try), (eq, ":imod", imod_sturdy), (assign, ":armor_mod", 1),
- (else_try), (eq, ":imod", imod_thick), (assign, ":armor_mod", 2),
- (else_try), (eq, ":imod", imod_hardened), (assign, ":armor_mod", 3),
- (else_try), (eq, ":imod", imod_reinforced), (assign, ":armor_mod", 4),
- (else_try), (eq, ":imod", imod_lordly), (assign, ":armor_mod", 6),
- (try_end),
- (try_begin),
- (gt, ":cur_body_armor_value", 0), (val_add, ":cur_body_armor_value", ":armor_mod"), (val_max, ":cur_body_armor_value", 0),
- (try_end),
- (try_begin),
- (gt, ":cur_leg_armor_value", 0), (val_add, ":cur_leg_armor_value", ":armor_mod"), (val_max, ":cur_leg_armor_value", 0),
- (try_end),
- (val_add, ":total_body_armor", ":cur_body_armor_value"), (val_add, ":total_leg_armor", ":cur_leg_armor_value"),
- (else_try), #gloves
- (eq, ":i_slot", 7), (assign, ":pos_x", 408), (assign, ":pos_y", 562),
- (item_get_body_armor, ":cur_body_armor_value", ":item"),
- (assign, ":armor_mod", 0),
- (try_begin), (eq, ":imod", imod_cracked), (assign, ":armor_mod", -4),
- (else_try), (this_or_next|eq, ":imod", imod_rusty), (eq, ":imod", imod_tattered), (assign, ":armor_mod", -3),
- (else_try), (this_or_next|eq, ":imod", imod_battered), (eq, ":imod", imod_ragged),(assign, ":armor_mod", -2),
- (else_try), (eq, ":imod", imod_crude), (assign, ":armor_mod", -1),
- (else_try), (eq, ":imod", imod_sturdy), (assign, ":armor_mod", 1),
- (else_try), (eq, ":imod", imod_thick), (assign, ":armor_mod", 2),
- (else_try), (eq, ":imod", imod_hardened), (assign, ":armor_mod", 3),
- (else_try), (eq, ":imod", imod_reinforced), (assign, ":armor_mod", 4),
- (else_try), (eq, ":imod", imod_lordly), (assign, ":armor_mod", 6),
- (try_end),
- (try_begin),
- (gt, ":cur_body_armor_value", 0), (val_add, ":cur_body_armor_value", ":armor_mod"), (val_max, ":cur_body_armor_value", 0),
- (try_end),
- (val_add, ":total_body_armor", ":cur_body_armor_value"),
- (else_try), #horse
- (assign, ":pos_x", 407), (assign, ":pos_y", 360),
- (try_end),
- (store_sub, ":pos_x_adj", ":pos_x", 41), (store_sub, ":pos_y_adj", ":pos_y", 42),
- (create_mesh_overlay, reg1, "mesh_inv_slot"),
- (position_set_x, pos1, 820), (position_set_y, pos1, 820), (overlay_set_size, reg1, pos1),
- (position_set_x, pos1, ":pos_x_adj"), (position_set_y, pos1, ":pos_y_adj"), (overlay_set_position, reg1, pos1),
- (create_mesh_overlay_with_item_id, reg1, ":item"),
- (position_set_x, pos1, 860), (position_set_y, pos1, 860), (overlay_set_size, reg1, pos1),
- (position_set_x, pos1, ":pos_x"), (position_set_y, pos1, ":pos_y"), (overlay_set_position, reg1, pos1),
- (troop_set_slot, "trp_temp_array_c", ":overlay_counter", reg1),
- (val_add, ":overlay_counter", 1),
- (else_try),
- (try_begin),
- (eq, ":i_slot", 0), (assign, ":pos_x", 596), (assign, ":pos_y", 650),
- (else_try),
- (eq, ":i_slot", 1), (assign, ":pos_x", 596), (assign, ":pos_y", 562),
- (else_try),
- (eq, ":i_slot", 2), (assign, ":pos_x", 596), (assign, ":pos_y", 474),
- (else_try),
- (eq, ":i_slot", 3), (assign, ":pos_x", 596), (assign, ":pos_y", 385),
- (else_try), #head
- (eq, ":i_slot", 4), (assign, ":pos_x", 495), (assign, ":pos_y", 650),
- (else_try), #body
- (eq, ":i_slot", 5), (assign, ":pos_x", 495), (assign, ":pos_y", 562),
- (else_try), #foot
- (eq, ":i_slot", 6), (assign, ":pos_x", 495), (assign, ":pos_y", 474),
- (else_try), #gloves
- (eq, ":i_slot", 7), (assign, ":pos_x", 408), (assign, ":pos_y", 562),
- (else_try), #horse
- (assign, ":pos_x", 407), (assign, ":pos_y", 360),
- (try_end),
- (store_sub, ":pos_x_adj", ":pos_x", 41), (store_sub, ":pos_y_adj", ":pos_y", 42),
- (create_mesh_overlay, reg1, "mesh_inv_slot"), (overlay_set_alpha, reg1, 0x00),
- (position_set_x, pos1, 820), (position_set_y, pos1, 820), (overlay_set_size, reg1, pos1),
- (position_set_x, pos1, ":pos_x_adj"), (position_set_y, pos1, ":pos_y_adj"), (overlay_set_position, reg1, pos1),
- (val_mul, reg1, -1), (troop_set_slot, "trp_temp_array_c", ":overlay_counter", reg1),
- (val_add, ":overlay_counter", 1),
- (try_end),
- (try_end),
- (assign, ":store_fpm", 1), (convert_to_fixed_point, ":store_fpm"),
- (set_fixed_point_multiplier, 1), (convert_from_fixed_point, ":total_weight"), (val_div, ":total_weight", 1000),
- (set_fixed_point_multiplier, ":store_fpm"),
- ##+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- ## General Data
- (assign, reg58, ":total_head_armor"), (assign, reg59, ":total_body_armor"), (assign, reg60, ":total_leg_armor"), (assign, reg61, ":total_weight"),
- (create_text_overlay, reg1, "@Head Armor: {reg58}", tf_left_align), (overlay_set_color, reg1, 0x000000),
- (position_set_x, pos1, 750), (position_set_y, pos1, 850), (overlay_set_size, reg1, pos1),
- (position_set_x, pos1, 86), (position_set_y, pos1, 15), (overlay_set_area_size, reg1, pos1),
- (position_set_x, pos1, 358), (position_set_y, pos1, 677), (overlay_set_position, reg1, pos1),
- (create_text_overlay, reg1, "@Body Armor: {reg59}", tf_left_align), (overlay_set_color, reg1, 0x000000),
- (position_set_x, pos1, 750), (position_set_y, pos1, 850), (overlay_set_size, reg1, pos1),
- (position_set_x, pos1, 86), (position_set_y, pos1, 15), (overlay_set_area_size, reg1, pos1),
- (position_set_x, pos1, 358), (position_set_y, pos1, 657), (overlay_set_position, reg1, pos1),
- (create_text_overlay, reg1, "@Leg Armor: {reg60}", tf_left_align), (overlay_set_color, reg1, 0x000000),
- (position_set_x, pos1, 750), (position_set_y, pos1, 850), (overlay_set_size, reg1, pos1),
- (position_set_x, pos1, 86), (position_set_y, pos1, 15), (overlay_set_area_size, reg1, pos1),
- (position_set_x, pos1, 358), (position_set_y, pos1, 637), (overlay_set_position, reg1, pos1),
- (create_text_overlay, reg1, "@Weight: {reg61}", tf_left_align), (overlay_set_color, reg1, 0x000000),
- (position_set_x, pos1, 750), (position_set_y, pos1, 850), (overlay_set_size, reg1, pos1),
- (position_set_x, pos1, 86), (position_set_y, pos1, 15), (overlay_set_area_size, reg1, pos1),
- (position_set_x, pos1, 358), (position_set_y, pos1, 607), (overlay_set_position, reg1, pos1),
- (create_text_overlay, reg1, "@Outfit", tf_left_align), (overlay_set_color, reg1, 0x000000),
- (position_set_x, pos1, 900), (position_set_y, pos1, 1000), (overlay_set_size, reg1, pos1),
- (position_set_x, pos1, 70), (position_set_y, pos1, 17), (overlay_set_area_size, reg1, pos1),
- (position_set_x, pos1, 469), (position_set_y, pos1, 695), (overlay_set_position, reg1, pos1),
- (create_text_overlay, reg1, "@Arms", tf_left_align), (overlay_set_color, reg1, 0x000000),
- (position_set_x, pos1, 900), (position_set_y, pos1, 1000), (overlay_set_size, reg1, pos1),
- (position_set_x, pos1, 70), (position_set_y, pos1, 17), (overlay_set_area_size, reg1, pos1),
- (position_set_x, pos1, 572), (position_set_y, pos1, 695), (overlay_set_position, reg1, pos1),
- (create_text_overlay, reg1, "@Mount", tf_left_align), (overlay_set_color, reg1, 0x000000),
- (position_set_x, pos1, 900), (position_set_y, pos1, 1000), (overlay_set_size, reg1, pos1),
- (position_set_x, pos1, 70), (position_set_y, pos1, 17), (overlay_set_area_size, reg1, pos1),
- (position_set_x, pos1, 380), (position_set_y, pos1, 406), (overlay_set_position, reg1, pos1),
- (str_store_troop_name, s1, "trp_player"),
- (create_text_overlay, reg1, "@{s1}", tf_center_justify), (overlay_set_color, reg1, 0x000000),
- (position_set_x, pos1, 750), (position_set_y, pos1, 850), (overlay_set_size, reg1, pos1),
- (position_set_x, pos1, 200), (position_set_y, pos1, 22), (overlay_set_area_size, reg1, pos1),
- (position_set_x, pos1, 823), (position_set_y, pos1, 702), (overlay_set_position, reg1, pos1),
- (store_troop_gold, reg58, "$temp_2"),
- (str_store_troop_name, s1, "$temp_2"),
- (create_text_overlay, reg1, "@{s1}'s money: {reg58} aurums", tf_center_justify), (overlay_set_color, reg1, 0x000000),
- (position_set_x, pos1, 1000), (position_set_y, pos1, 1100), (overlay_set_size, reg1, pos1),
- (position_set_x, pos1, 250), (position_set_y, pos1, 30), (overlay_set_area_size, reg1, pos1),
- (position_set_x, pos1, 168), (position_set_y, pos1, 31), (overlay_set_position, reg1, pos1),
- (store_troop_gold, reg59, "trp_player"),
- (create_text_overlay, reg1, "@Your money: {reg59} aurums", tf_center_justify), (overlay_set_color, reg1, 0x000000),
- (position_set_x, pos1, 1000), (position_set_y, pos1, 1100), (overlay_set_size, reg1, pos1),
- (position_set_x, pos1, 250), (position_set_y, pos1, 30), (overlay_set_area_size, reg1, pos1),
- (position_set_x, pos1, 832), (position_set_y, pos1, 31), (overlay_set_position, reg1, pos1),
- (create_mesh_overlay_with_tableau_material, reg1, -1, "tableau_game_party_window", "trp_player"),
- (position_set_x, pos1, 750), (position_set_y, pos1, 850), (overlay_set_size, reg1, pos1), #old 820/950
- (position_set_x, pos1, 300), (position_set_y, pos1, 40), (overlay_set_position, reg1, pos1), #old 383/60
- ##+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- ## Player's inventory
- (str_clear, s1),
- (create_text_overlay, "$g_presentation_obj_3", s1, tf_scrollable),
- (position_set_x, pos1, 688), (position_set_y, pos1, 102),
- (overlay_set_position, "$g_presentation_obj_3", pos1),
- (position_set_x, pos1, 269), (position_set_y, pos1, 597),
- (overlay_set_area_size, "$g_presentation_obj_3", pos1),
- (set_container_overlay, "$g_presentation_obj_3"),
- (assign, ":overlay_counter", 10),
- (troop_get_inventory_capacity, ":pl_inv_cap", "trp_player"),
- (assign, ":pos_x", 45), (store_sub, ":pos_y", ":pl_inv_cap", 9), (val_mul, ":pos_y", 90), (val_div, ":pos_y", 3), (val_sub, ":pos_y", 40),
- (try_for_range, ":i_slot", 10, ":pl_inv_cap"),
- (troop_get_inventory_slot, ":item", "trp_player", ":i_slot"),
- (try_begin),
- (ge, ":item", 0),
- (store_sub, ":pos_x_adj", ":pos_x", 45), (store_sub, ":pos_y_adj", ":pos_y", 46),
- (create_mesh_overlay, reg1, "mesh_inv_slot"),
- (position_set_x, pos1, 870), (position_set_y, pos1, 870), (overlay_set_size, reg1, pos1),
- (position_set_x, pos1, ":pos_x_adj"), (position_set_y, pos1, ":pos_y_adj"), (overlay_set_position, reg1, pos1),
- (create_mesh_overlay, reg1, "mesh_mp_inventory_choose"),
- (position_set_x, pos1, 694), (position_set_y, pos1, 694), (overlay_set_size, reg1, pos1),
- (position_set_x, pos1, ":pos_x_adj"), (position_set_y, pos1, ":pos_y_adj"), (overlay_set_position, reg1, pos1),
- (create_mesh_overlay_with_item_id, reg1, ":item"),
- (position_set_x, pos1, 922), (position_set_y, pos1, 922), (overlay_set_size, reg1, pos1),
- (position_set_x, pos1, ":pos_x"), (position_set_y, pos1, ":pos_y"), (overlay_set_position, reg1, pos1),
- (troop_set_slot, "trp_temp_array_c", ":overlay_counter", reg1),
- (val_add, ":overlay_counter", 1),
- (else_try),
- (store_sub, ":pos_x_adj", ":pos_x", 45), (store_sub, ":pos_y_adj", ":pos_y", 46),
- (create_mesh_overlay, reg1, "mesh_inv_slot"),
- (position_set_x, pos1, 870), (position_set_y, pos1, 870), (overlay_set_size, reg1, pos1),
- (position_set_x, pos1, ":pos_x_adj"), (position_set_y, pos1, ":pos_y_adj"), (overlay_set_position, reg1, pos1),
- (create_mesh_overlay, reg1, "mesh_mp_inventory_choose"),
- (position_set_x, pos1, 694), (position_set_y, pos1, 694), (overlay_set_size, reg1, pos1),
- (position_set_x, pos1, ":pos_x_adj"), (position_set_y, pos1, ":pos_y_adj"), (overlay_set_position, reg1, pos1),
- (val_mul, reg1, -1), (troop_set_slot, "trp_temp_array_c", ":overlay_counter", reg1),
- (val_add, ":overlay_counter", 1),
- (try_end),
- (val_add, ":pos_x", 90),
- (try_begin),
- (ge, ":pos_x", 250),
- (assign, ":pos_x", 45),
- (val_sub, ":pos_y", 92),
- (try_end),
- (try_end),
- (set_container_overlay, -1),
- ##+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- ## Merchant's inventory
- (str_clear, s1),
- (create_text_overlay, "$g_presentation_obj_4", s1, tf_scrollable),
- (position_set_x, pos1, 18), (position_set_y, pos1, 102),
- (overlay_set_position, "$g_presentation_obj_4", pos1),
- (position_set_x, pos1, 270), (position_set_y, pos1, 595),
- (overlay_set_area_size, "$g_presentation_obj_4", pos1),
- (set_container_overlay, "$g_presentation_obj_4"),
- (assign, ":overlay_counter", 120),
- (troop_get_inventory_capacity, ":pl_inv_cap", "$temp_2"),
- (assign, ":pos_x", 45), (store_sub, ":pos_y", ":pl_inv_cap", 9), (val_mul, ":pos_y", 90), (val_div, ":pos_y", 3), (val_sub, ":pos_y", 40),
- (try_for_range, ":i_slot", 10, ":pl_inv_cap"),
- (troop_get_inventory_slot, ":item", "$temp_2", ":i_slot"),
- (try_begin),
- (ge, ":item", 0),
- (store_sub, ":pos_x_adj", ":pos_x", 45), (store_sub, ":pos_y_adj", ":pos_y", 46),
- (create_mesh_overlay, reg1, "mesh_inv_slot"),
- (position_set_x, pos1, 870), (position_set_y, pos1, 870), (overlay_set_size, reg1, pos1),
- (position_set_x, pos1, ":pos_x_adj"), (position_set_y, pos1, ":pos_y_adj"), (overlay_set_position, reg1, pos1),
- (create_mesh_overlay, reg1, "mesh_mp_inventory_choose"),
- (position_set_x, pos1, 694), (position_set_y, pos1, 694), (overlay_set_size, reg1, pos1),
- (position_set_x, pos1, ":pos_x_adj"), (position_set_y, pos1, ":pos_y_adj"), (overlay_set_position, reg1, pos1),
- (create_mesh_overlay_with_item_id, reg1, ":item"),
- (position_set_x, pos1, 922), (position_set_y, pos1, 922), (overlay_set_size, reg1, pos1),
- (position_set_x, pos1, ":pos_x"), (position_set_y, pos1, ":pos_y"), (overlay_set_position, reg1, pos1),
- (troop_set_slot, "trp_temp_array_c", ":overlay_counter", reg1),
- (val_add, ":overlay_counter", 1),
- (else_try),
- (store_sub, ":pos_x_adj", ":pos_x", 45), (store_sub, ":pos_y_adj", ":pos_y", 46),
- (create_mesh_overlay, reg1, "mesh_inv_slot"),
- (position_set_x, pos1, 870), (position_set_y, pos1, 870), (overlay_set_size, reg1, pos1),
- (position_set_x, pos1, ":pos_x_adj"), (position_set_y, pos1, ":pos_y_adj"), (overlay_set_position, reg1, pos1),
- (create_mesh_overlay, reg1, "mesh_mp_inventory_choose"),
- (position_set_x, pos1, 694), (position_set_y, pos1, 694), (overlay_set_size, reg1, pos1),
- (position_set_x, pos1, ":pos_x_adj"), (position_set_y, pos1, ":pos_y_adj"), (overlay_set_position, reg1, pos1),
- (val_mul, reg1, -1), (troop_set_slot, "trp_temp_array_c", ":overlay_counter", reg1),
- (val_add, ":overlay_counter", 1),
- (try_end),
- (val_add, ":pos_x", 90),
- (try_begin),
- (ge, ":pos_x", 250),
- (assign, ":pos_x", 45),
- (val_sub, ":pos_y", 92),
- (try_end),
- (try_end),
- (set_container_overlay, -1),
- ##+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- ## Trade buttons
- (create_game_button_overlay, "$g_presentation_obj_5", "@Deal!"),
- (position_set_x, pos1, 522), (position_set_y, pos1, 250), (overlay_set_position, "$g_presentation_obj_5", pos1),
- (create_game_button_overlay, "$g_presentation_obj_6", "@Sell Before"),
- (position_set_x, pos1, 568), (position_set_y, pos1, 164), (overlay_set_position, "$g_presentation_obj_6", pos1),
- (create_game_button_overlay, "$g_presentation_obj_7", "@Sell After"),
- (position_set_x, pos1, 568), (position_set_y, pos1, 102), (overlay_set_position, "$g_presentation_obj_7", pos1),
- ]),
- ##SECONDARY TRIGGERS BEGIN
- ##+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- (ti_on_presentation_event_state_change,
- [
- (store_trigger_param_1, ":object"),
- (store_trigger_param_2, ":value"),
- (try_begin), ####### DONE BUTTON #######
- (eq, ":object", "$g_presentation_obj_1"),
- (presentation_set_duration, 0),
- (else_try), ####### TRADER SWITCH BUTTON #######
- (eq, ":object", "$g_presentation_obj_2"),
- (try_begin),
- (eq, ":value", 0),
- (party_get_slot, "$temp_2", "$current_town", slot_town_merchant),
- (else_try),
- (eq, ":value", 1),
- (party_get_slot, "$temp_2", "$current_town", slot_town_horse_merchant),
- (else_try),
- (eq, ":value", 2),
- (party_get_slot, "$temp_2", "$current_town", slot_town_armorer),
- (else_try),
- (party_get_slot, "$temp_2", "$current_town", slot_town_weaponsmith),
- (try_end),
- (start_presentation, "prsnt_trade_screen_replacer"),
- (else_try), ####### DEAL BUTTON #######
- (eq, ":object", "$g_presentation_obj_5"),
- (store_troop_gold, ":player_gold","trp_player"),
- (store_troop_gold, ":merchant_gold","$temp_2"),
- (assign, ":total_purchase_price", 0),
- (assign, ":total_selling_price", 0),
- (assign, ":total_items_for_sale", 0),
- (assign, ":total_items_for_purchase", 0),
- (store_free_inventory_capacity, ":player_free_inv_capacity", "trp_player"),
- (store_free_inventory_capacity, ":merchant_free_inv_cap", "$temp_2"),
- (troop_get_inventory_capacity, ":player_full_inv_capacity", "trp_player"),
- (troop_get_inventory_capacity, ":merchant_full_inv_cap", "$temp_2"),
- (try_for_range, ":inv_slot", 10, ":merchant_full_inv_cap"), #merchant
- (troop_slot_eq, "trp_temp_array_b", ":inv_slot", 1),
- (troop_get_inventory_slot, ":item_no", "$temp_2", ":inv_slot"),
- (troop_get_inventory_slot_modifier, ":imod", "$temp_2", ":inv_slot"),
- (call_script, "script_get_item_value_with_imod", ":item_no", ":imod"), #or script_dplmc_get_item_value_with_imod - DIPLOMACY SCRIPT
- (assign, ":price", reg0),
- (val_div, ":price", 100),
- (call_script, "script_game_get_item_buy_price_factor", ":item_no"),
- (val_mul, ":price", reg0),
- (val_div, ":price", 100),
- (try_begin),
- (is_between, ":item_no", food_begin, food_end),
- (troop_inventory_slot_get_item_amount, ":item_quantity", "$temp_2", ":inv_slot"),
- (troop_inventory_slot_get_item_max_amount, ":item_max_quantity", "$temp_2", ":inv_slot"),
- (val_mul, ":price", ":item_quantity"),
- (val_div, ":price", ":item_max_quantity"),
- (try_end),
- (val_max, ":price", 1), (val_add, ":total_purchase_price", ":price"), (val_add, ":total_items_for_purchase", 1),
- (store_add, ":price_cache_slot", ":inv_slot", 120), (troop_set_slot, "trp_temp_array_b", ":price_cache_slot", ":price"),
- (try_end),
- (try_for_range, ":inv_slot", 0, ":player_full_inv_capacity"), #player
- (troop_slot_eq, "trp_temp_array_a", ":inv_slot", 1),
- (troop_get_inventory_slot, ":item_no", "trp_player", ":inv_slot"),
- (troop_get_inventory_slot_modifier, ":imod", "trp_player", ":inv_slot"),
- (call_script, "script_get_item_value_with_imod", ":item_no", ":imod"), #or script_dplmc_get_item_value_with_imod - DIPLOMACY SCRIPT
- (assign, ":price", reg0),
- (val_div, ":price", 100),
- (call_script, "script_game_get_item_sell_price_factor", ":item_no"),
- (val_mul, ":price", reg0),
- (val_div, ":price", 100),
- (try_begin),
- (is_between, ":item_no", food_begin, food_end),
- (troop_inventory_slot_get_item_amount, ":item_quantity", "trp_player", ":inv_slot"),
- (troop_inventory_slot_get_item_max_amount, ":item_max_quantity", "trp_player", ":inv_slot"),
- (val_mul, ":price", ":item_quantity"),
- (val_div, ":price", ":item_max_quantity"),
- (try_end),
- (val_max, ":price", 1), (val_add, ":total_selling_price", ":price"), (val_add, ":total_items_for_sale", 1),
- (store_add, ":price_cache_slot", ":inv_slot", 120), (troop_set_slot, "trp_temp_array_a", ":price_cache_slot", ":price"),
- (try_end),
- (store_add, ":player_purchasing_capacity", ":player_gold", ":total_selling_price"), (val_sub, ":player_purchasing_capacity", ":total_purchase_price"),
- (store_add, ":merchant_purchasing_capacity", ":merchant_gold", ":total_purchase_price"), (val_sub, ":merchant_purchasing_capacity", ":total_selling_price"),
- (try_begin),
- (lt, ":player_purchasing_capacity", 0),
- (display_message, "@You don't have enough money!", 0xFF0000),
- (else_try),
- (lt, ":merchant_purchasing_capacity", 0),
- (display_message, "@The merchant doesn't have enough money!", 0xFF0000),
- (else_try),
- (lt, ":merchant_free_inv_cap", ":total_items_for_sale"),
- (display_message, "@The merchant's inventory is full!", 0xFF0000),
- (else_try),
- (lt, ":player_free_inv_capacity", ":total_items_for_purchase"),
- (display_message, "@Your inventory is full!", 0xFF0000),
- (else_try),
- (assign, ":total_player_profit", 0),
- (assign, ":last_empty_slot", 10),
- (try_for_range, ":inv_slot", 0, ":player_full_inv_capacity"), #player
- (troop_slot_eq, "trp_temp_array_a", ":inv_slot", 1),
- (store_add, ":price_cache_slot", ":inv_slot", 120),
- (troop_get_slot, ":cur_price", "trp_temp_array_a", ":price_cache_slot"),
- (troop_get_inventory_slot, ":item_no", "trp_player", ":inv_slot"),
- (troop_get_inventory_slot_modifier, ":imod", "trp_player", ":inv_slot"),
- (try_begin),
- (is_between, ":item_no", food_begin, food_end),
- (troop_inventory_slot_get_item_amount, ":item_quantity", "trp_player", ":inv_slot"),
- (try_end),
- (assign, ":end", ":merchant_full_inv_cap"),
- (try_for_range, ":merchant_cur_inv_slot", ":last_empty_slot", ":end"),
- (troop_get_inventory_slot, ":cur_item", "$temp_2", ":merchant_cur_inv_slot"),
- (eq, ":cur_item", -1),
- (troop_set_inventory_slot, "$temp_2", ":merchant_cur_inv_slot", ":item_no"),
- (troop_set_inventory_slot_modifier, "$temp_2", ":merchant_cur_inv_slot", ":imod"),
- (try_begin),
- (is_between, ":item_no", food_begin, food_end),
- (troop_inventory_slot_set_item_amount, "$temp_2", ":merchant_cur_inv_slot", ":item_quantity"),
- (try_end),
- (val_add, ":total_player_profit", ":cur_price"),
- (troop_set_inventory_slot, "trp_player", ":inv_slot", -1),
- (troop_set_inventory_slot_modifier, "trp_player", ":inv_slot", 0),
- (troop_inventory_slot_set_item_amount, "trp_player", ":inv_slot", 0),
- (store_add, ":last_empty_slot", ":merchant_cur_inv_slot", 1),
- (assign, ":end", 0),
- (try_end),
- (try_end),
- (assign, ":last_empty_slot", 10),
- (try_for_range, ":inv_slot", 10, ":merchant_full_inv_cap"), #merchant
- (troop_slot_eq, "trp_temp_array_b", ":inv_slot", 1),
- (store_add, ":price_cache_slot", ":inv_slot", 120),
- (troop_get_slot, ":cur_price", "trp_temp_array_b", ":price_cache_slot"),
- (troop_get_inventory_slot, ":item_no", "$temp_2", ":inv_slot"),
- (troop_get_inventory_slot_modifier, ":imod", "$temp_2", ":inv_slot"),
- (try_begin),
- (is_between, ":item_no", food_begin, food_end),
- (troop_inventory_slot_get_item_amount, ":item_quantity", "$temp_2", ":inv_slot"),
- (try_end),
- (assign, ":end", ":player_full_inv_capacity"),
- (try_for_range, ":player_cur_inv_slot", ":last_empty_slot", ":end"),
- (troop_get_inventory_slot, ":cur_item", "trp_player", ":player_cur_inv_slot"),
- (eq, ":cur_item", -1),
- (troop_set_inventory_slot, "trp_player", ":player_cur_inv_slot", ":item_no"),
- (troop_set_inventory_slot_modifier, "trp_player", ":player_cur_inv_slot", ":imod"),
- (try_begin),
- (is_between, ":item_no", food_begin, food_end),
- (troop_inventory_slot_set_item_amount, "trp_player", ":player_cur_inv_slot", ":item_quantity"),
- (try_end),
- (val_sub, ":total_player_profit", ":cur_price"),
- (troop_set_inventory_slot, "$temp_2", ":inv_slot", -1),
- (troop_set_inventory_slot_modifier, "$temp_2", ":inv_slot", 0),
- (troop_inventory_slot_set_item_amount, "$temp_2", ":inv_slot", 0),
- (store_add, ":last_empty_slot", ":player_cur_inv_slot", 1),
- (assign, ":end", 0),
- (try_end),
- (try_end),
- (try_begin),
- (ge, ":total_player_profit", 1),
- (troop_add_gold, "trp_player", ":total_player_profit"),
- (troop_remove_gold, "$temp_2", ":total_player_profit"),
- (else_try),
- (le, ":total_player_profit", -1),
- (val_mul, ":total_player_profit", -1),
- (troop_add_gold, "$temp_2", ":total_player_profit"),
- (troop_remove_gold, "trp_player", ":total_player_profit"),
- (try_end),
- (start_presentation, "prsnt_trade_screen_replacer"),
- (try_end),
- (else_try), ####### SELL AFTER/BEFORE BUTTONS #######
- (this_or_next|eq, ":object", "$g_presentation_obj_6"), (eq, ":object", "$g_presentation_obj_7"),
- (store_free_inventory_capacity, ":player_free_inv_capacity", "trp_player"),
- (store_free_inventory_capacity, ":merchant_free_inv_cap", "$temp_2"),
- (troop_get_inventory_capacity, ":player_full_inv_capacity", "trp_player"),
- (assign, ":total_items_selected", 0),
- (assign, ":key_slot", -1),
- (try_for_range, ":inv_slot", 10, ":player_full_inv_capacity"), #player
- (troop_slot_eq, "trp_temp_array_a", ":inv_slot", 1),
- (val_add, ":total_items_selected", 1),
- (assign, ":key_slot", ":inv_slot"),
- (try_end),
- (try_begin),
- (eq, ":key_slot", -1),
- (display_message, "@You have to select an item that will be the beginning/end of your selling queue!", 0xFF0000),
- (else_try),
- (neq, ":total_items_selected", 1),
- (display_message, "@You have to select only 1 item that will be the beginning/end of your selling queue!", 0xFF0000),
- (else_try),
- (try_begin),
- (eq, ":object", "$g_presentation_obj_6"),
- (assign, ":beginning", 10), (store_add, ":ending", ":key_slot", 1),
- (else_try),
- (eq, ":object", "$g_presentation_obj_7"),
- (assign, ":beginning", ":key_slot"), (assign, ":ending", ":player_full_inv_capacity"),
- (try_end),
- (party_get_slot, ":weaponsmith", "$current_town", slot_town_weaponsmith), (gt, ":weaponsmith", "trp_player"),
- (party_get_slot, ":armourer", "$current_town", slot_town_armorer), (gt, ":armourer", "trp_player"),
- (party_get_slot, ":horse_merch", "$current_town", slot_town_horse_merchant), (gt, ":horse_merch", "trp_player"),
- (party_get_slot, ":food_merch", "$current_town", slot_town_merchant), (gt, ":food_merch", "trp_player"),
- (assign, ":total_items_sold", 0),
- (assign, ":total_money_received", 0),
- (try_for_range, ":i_slot", ":beginning", ":ending"),
- (troop_get_inventory_slot, ":item", "trp_player", ":i_slot"),
- (neq, ":item", -1),
- (troop_get_inventory_slot_modifier, ":imod", "trp_player", ":i_slot"),
- (item_get_type, ":item_type", ":item"),
- (call_script, "script_get_item_value_with_imod", ":item", ":imod"), #or script_dplmc_get_item_value_with_imod
- (assign, ":score", reg0),
- (val_div, ":score", 100),
- (call_script, "script_game_get_item_sell_price_factor", ":item"),
- (val_mul, ":score", reg0),
- (val_div, ":score", 100),
- (try_begin),
- (is_between, ":item", food_begin, food_end),
- (troop_inventory_slot_get_item_amount, ":item_quantity", "trp_player", ":i_slot"),
- (troop_inventory_slot_get_item_max_amount, ":item_max_quantity", "trp_player", ":i_slot"),
- (val_mul, ":score", ":item_quantity"),
- (val_div, ":score", ":item_max_quantity"),
- (try_end),
- (val_max, ":score", 1),
- (store_troop_gold, ":wea_m_gold",":weaponsmith"),
- (store_troop_gold, ":arm_m_gold",":armourer"),
- (store_troop_gold, ":horse_m_gold",":horse_merch"),
- (store_troop_gold, ":food_m_gold",":food_merch"),
- (store_free_inventory_capacity, ":wea_m_space", ":weaponsmith"),
- (store_free_inventory_capacity, ":arm_m_space", ":armourer"),
- (store_free_inventory_capacity, ":horse_m_space", ":horse_merch"),
- (store_free_inventory_capacity, ":food_m_space", ":food_merch"),
- (try_begin),
- (this_or_next|eq, ":item_type", itp_type_head_armor),
- (this_or_next|eq, ":item_type", itp_type_body_armor),
- (this_or_next|eq, ":item_type", itp_type_foot_armor),
- (eq, ":item_type", itp_type_hand_armor),
- (assign, ":i_want_merchant", ":armourer"),
- (else_try),
- (eq, ":item_type", itp_type_horse),
- (assign, ":i_want_merchant", ":horse_merch"),
- (else_try),
- (this_or_next|eq, ":item_type", itp_type_book),
- (eq, ":item_type", itp_type_goods),
- (assign, ":i_want_merchant", ":food_merch"),
- (else_try),
- (assign, ":i_want_merchant", ":weaponsmith"),
- (try_end),
- (assign, ":target_merchant", -1),
- (try_begin),
- (store_troop_gold, ":iwm_gold",":i_want_merchant"), (le, ":score", ":iwm_gold"),
- (store_free_inventory_capacity, ":iwm_space", ":i_want_merchant"), (gt, ":iwm_space", 0),
- (assign, ":target_merchant", ":i_want_merchant"),
- (else_try),
- (le, ":score", ":arm_m_gold"), (gt, ":arm_m_space", 0),
- (assign, ":target_merchant", ":armourer"),
- (else_try),
- (le, ":score", ":horse_m_gold"), (gt, ":horse_m_space", 0),
- (assign, ":target_merchant", ":horse_merch"),
- (else_try),
- (le, ":score", ":wea_m_gold"), (gt, ":wea_m_space", 0),
- (assign, ":target_merchant", ":weaponsmith"),
- (else_try),
- (le, ":score", ":food_m_gold"), (gt, ":food_m_space", 0),
- (assign, ":target_merchant", ":food_merch"),
- (try_end),
- (neq, ":target_merchant", -1),
- (troop_remove_gold, ":target_merchant", ":score"),
- (try_begin),
- (neg|is_between, ":item", food_begin, food_end),
- (troop_add_item, ":target_merchant", ":item", ":imod"),
- (else_try),
- (troop_get_inventory_capacity, ":target_merchant_inv_capacity", ":target_merchant"),
- (assign, ":end", ":target_merchant_inv_capacity"),
- (try_for_range, ":target_merchant_cur_inv_slot", 10, ":end"),
- (troop_get_inventory_slot, ":cur_item", ":target_merchant", ":target_merchant_cur_inv_slot"),
- (eq, ":cur_item", -1),
- (troop_set_inventory_slot, ":target_merchant", ":target_merchant_cur_inv_slot", ":item"),
- (troop_set_inventory_slot_modifier, ":target_merchant", ":target_merchant_cur_inv_slot", ":imod"),
- (troop_inventory_slot_set_item_amount, ":target_merchant", ":target_merchant_cur_inv_slot", ":item_quantity"),
- (assign, ":end", 0),
- (try_end),
- (try_end),
- (troop_set_inventory_slot, "trp_player", ":i_slot", -1),
- (val_add, ":total_items_sold", 1),
- (val_add, ":total_money_received", ":score"),
- (try_begin),
- (ge, "$cheat_mode", 1),
- (str_store_troop_name, s1, ":target_merchant"),
- (str_store_item_name, s2, ":item"),
- (assign, reg0, ":score"),
- (display_message, "@{s2} was sold to {s1} for {reg0}"),
- (try_end),
- (try_end),
- (troop_add_gold, "trp_player", ":total_money_received"),
- (assign, reg0, ":total_items_sold"),
- (assign, reg1, ":total_money_received"),
- (display_message, "@A total of {reg0} items were sold for a total price of {reg1}."),
- (start_presentation, "prsnt_trade_screen_replacer"),
- (try_end),
- (try_end),
- ]),
- ##+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- (ti_on_presentation_run,
- [
- (try_begin),
- (key_clicked, key_escape),
- (presentation_set_duration, 0),
- (try_end),
- ]),
- ##+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- (ti_on_presentation_mouse_enter_leave,
- [
- (store_trigger_param_1, ":object"),
- (store_trigger_param_2, ":enter_leave"),
- (try_begin),
- (eq, ":enter_leave", 0), #enters
- (assign, ":end", 210),
- (try_for_range, ":slot_no", 0, ":end"),
- (troop_slot_eq, "trp_temp_array_c", ":slot_no", ":object"),
- (assign, "$g_current_opened_item_details", ":slot_no"),
- (assign, ":imod", 0),
- (assign, ":quantity", 0),
- (try_begin),
- (is_between, ":slot_no", 0, 110),
- (assign, ":offset", ":slot_no"),
- (troop_get_inventory_slot, ":item_no", "trp_player", ":offset"), (gt, ":item_no", 0),
- (troop_get_inventory_slot_modifier, ":imod", "trp_player", ":offset"),
- (troop_inventory_slot_get_item_amount, ":quantity", "trp_player", ":offset"),
- (call_script, "script_game_get_item_sell_price_factor", ":item_no"),
- (assign, ":price_factor", reg0), (assign, ":self", "trp_player"),
- (else_try),
- (is_between, ":slot_no", 120, 220),
- (store_sub, ":offset", ":slot_no", 110),
- (troop_get_inventory_slot, ":item_no", "$temp_2", ":offset"), (gt, ":item_no", 0),
- (troop_get_inventory_slot_modifier, ":imod", "$temp_2", ":offset"),
- (troop_inventory_slot_get_item_amount, ":quantity", "$temp_2", ":offset"),
- (call_script, "script_game_get_item_buy_price_factor", ":item_no"),
- (assign, ":price_factor", reg0), (assign, ":self", "$temp_2"),
- (try_end),
- (assign, ":end", 0),
- (try_end),
- (try_begin),
- (gt, ":item_no", 0),
- (assign, reg58, -567),
- (assign, reg59, ":quantity"),
- (item_get_difficulty, reg60, ":item_no"),
- (try_begin),
- (eq, ":imod", imod_masterwork), (val_add, reg60, 4),
- (else_try),
- (neg|item_slot_eq, ":item_no", slot_item_type, itp_type_horse),
- (eq, ":imod", imod_heavy), (val_add, reg60, 1),
- (else_try),
- (eq, ":imod", imod_strong), (val_add, reg60, 2),
- (else_try),
- (eq, ":imod", imod_stubborn), (val_add, reg60, 1),
- (else_try),
- (eq, ":imod", imod_timid), (val_add, reg60, -1), (val_max, reg60, 0),
- # (else_try),
- # (eq, ":imod", imod_spirited), (val_add, reg60, 1),
- (else_try),
- (eq, ":imod", imod_champion), (val_add, reg60, 2),
- (try_end),
- (overlay_get_position, pos0, ":object"),
- (try_begin),
- (is_between, ":item_no", food_begin, food_end),
- (troop_inventory_slot_get_item_max_amount, ":item_max_quantity", ":self", ":offset"),
- (val_mul, ":price_factor", ":quantity"),
- (val_div, ":price_factor", ":item_max_quantity"),
- (assign, reg60, ":item_max_quantity"), #reg60 - difficulty for equipment, quantity for food
- (try_end),
- (show_item_details_with_modifier, ":item_no", ":imod", pos0, ":price_factor"),
- (try_end),
- (assign, reg58, 0),
- (else_try),
- (eq, ":enter_leave", 1), #leaves
- (assign, ":end", 210),
- (try_for_range, ":slot_no", 0, ":end"),
- (troop_slot_eq, "trp_temp_array_c", ":slot_no", ":object"),
- (assign, "$g_current_opened_item_details", ":slot_no"),
- (close_item_details),
- (assign, ":end", 0),
- (try_end),
- (try_end),
- ]),
- ##+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- (ti_on_presentation_mouse_press,
- [
- (store_trigger_param_1, ":object"),
- (store_trigger_param_2, ":mouse_button"), #0: left mouse button, 1 right mouse button, 2 middle mouse button
- (try_begin), #LMB
- (eq, ":mouse_button", 0),
- (assign, ":end", 210),
- (assign, ":item_no", -1),
- #(assign, ":key_slot", -1),
- (try_for_range, ":slot_no", 0, ":end"),
- (troop_slot_eq, "trp_temp_array_c", ":slot_no", ":object"),
- #(assign, ":key_slot", ":slot_no"),
- (try_begin),
- (is_between, ":slot_no", 0, 110),
- (assign, ":offset", ":slot_no"),
- (troop_get_inventory_slot, ":item_no", "trp_player", ":offset"),
- (assign, ":self", "trp_player"), (assign, ":other", "$temp_2"),
- (call_script, "script_game_get_item_sell_price_factor", ":item_no"),
- (assign, ":price_factor", reg0),
- (else_try),
- (is_between, ":slot_no", 120, 220),
- (store_sub, ":offset", ":slot_no", 110),
- (troop_get_inventory_slot, ":item_no", "$temp_2", ":offset"),
- (assign, ":self", "$temp_2"), (assign, ":other", "trp_player"),
- (call_script, "script_game_get_item_buy_price_factor", ":item_no"),
- (assign, ":price_factor", reg0),
- (try_end),
- (assign, ":inv_slot", ":offset"),
- (assign, ":end", 0),
- (try_end),
- #(str_store_item_name, s30, ":item_no"), (assign, reg58, ":slot_no"), (display_message, "@{reg58} slot - item {s30}"),
- (try_begin),
- (gt, ":item_no", 0),
- (try_begin), #CTRL is pressed
- (this_or_next|key_is_down, key_left_control), (key_is_down, key_right_control),
- (store_troop_gold, ":buyer_gold",":other"),
- (troop_get_inventory_slot_modifier, ":imod", ":self", ":inv_slot"),
- (call_script, "script_get_item_value_with_imod", ":item_no", ":imod"), #or script_dplmc_get_item_value_with_imod - DIPLOMACY SCRIPT
- (assign, ":price", reg0),
- (val_div, ":price", 100),
- (val_mul, ":price", ":price_factor"),
- (val_div, ":price", 100),
- (try_begin),
- (is_between, ":item_no", food_begin, food_end),
- (troop_inventory_slot_get_item_amount, ":item_quantity", ":self", ":inv_slot"),
- (troop_inventory_slot_get_item_max_amount, ":item_max_quantity", ":self", ":inv_slot"),
- (val_mul, ":price", ":item_quantity"),
- (val_div, ":price", ":item_max_quantity"),
- (try_end),
- (val_max, ":price", 1),
- (try_begin),
- (ge, ":buyer_gold",":price"),
- (troop_set_inventory_slot, ":self", ":inv_slot", -1),
- (troop_set_inventory_slot_modifier, ":self", ":inv_slot", 0),
- (troop_inventory_slot_set_item_amount, ":self", ":inv_slot", 0),
- (troop_add_gold, ":self", ":price"),
- (troop_remove_gold, ":other", ":price"),
- (troop_get_inventory_capacity, ":other_inv_cap", ":other"),
- (try_for_range, ":buyer_cur_inv_slot", 10, ":other_inv_cap"),
- (troop_get_inventory_slot, ":cur_item", ":other", ":buyer_cur_inv_slot"),
- (eq, ":cur_item", -1),
- (troop_set_inventory_slot, ":other", ":buyer_cur_inv_slot", ":item_no"),
- (troop_set_inventory_slot_modifier, ":other", ":buyer_cur_inv_slot", ":imod"),
- (try_begin),
- (is_between, ":item_no", food_begin, food_end),
- (troop_inventory_slot_set_item_amount, ":other", ":buyer_cur_inv_slot", ":item_quantity"),
- (try_end),
- (assign, ":other_inv_cap", 10),
- (try_end),
- (start_presentation, "prsnt_trade_screen_replacer"),
- (try_end),
- (else_try), #CTRL isn't pressed
- (try_begin),
- (eq, ":self", "trp_player"),
- (assign, ":array_troop", "trp_temp_array_a"),
- (else_try),
- (assign, ":array_troop", "trp_temp_array_b"),
- (try_end),
- (try_begin),
- (troop_slot_eq, ":array_troop", ":inv_slot", 1),
- (troop_set_slot, ":array_troop", ":inv_slot", -1),
- (overlay_set_color, ":object", 0xFFFFFF),
- (else_try),
- (troop_set_slot, ":array_troop", ":inv_slot", 1),
- (overlay_set_color, ":object", 0x00CC00),
- (try_end),
- (try_end),
- (try_end),
- (else_try),
- (eq, ":mouse_button", 1), #RMB
- (assign, ":end", 210),
- (assign, ":item_no", -1),
- (store_mul, ":obj_empty", ":object", -1),
- (assign, ":inv_slot", -1),
- (try_for_range, ":slot_no", 0, ":end"),
- (try_begin),
- (troop_slot_eq, "trp_temp_array_c", ":slot_no", ":object"),
- (try_begin),
- (is_between, ":slot_no", 0, 110),
- (assign, ":offset", ":slot_no"),
- (troop_get_inventory_slot, ":item_no", "trp_player", ":offset"),
- (assign, ":self", "trp_player"), #(assign, ":other", "$temp_2"),
- (else_try),
- (is_between, ":slot_no", 120, 220),
- (store_sub, ":offset", ":slot_no", 110),
- (troop_get_inventory_slot, ":item_no", "$temp_2", ":offset"),
- (assign, ":self", "$temp_2"), #(assign, ":other", "trp_player"),
- (try_end),
- (assign, ":inv_slot", ":offset"),
- (assign, ":end", 0),
- (else_try),
- (troop_slot_eq, "trp_temp_array_c", ":slot_no", ":obj_empty"),
- (try_begin),
- (is_between, ":slot_no", 0, 110),
- (assign, ":offset", ":slot_no"),
- (assign, ":item_no", -1),
- (assign, ":self", "trp_player"), #(assign, ":other", "$temp_2"),
- (else_try),
- (is_between, ":slot_no", 120, 220),
- (store_sub, ":offset", ":slot_no", 110),
- (assign, ":item_no", -1),
- (assign, ":self", "$temp_2"), #(assign, ":other", "trp_player"),
- (try_end),
- (assign, ":inv_slot", ":offset"),
- (assign, ":end", 0),
- (try_end),
- (try_end),
- #(assign, reg58, ":inv_slot"), (assign, reg59, ":object"), (display_message, "@Slot {reg58}, object {reg59}.", 0xFF0000),
- (try_begin),
- (eq, "$g_presentation_obj_15", -1),
- (eq, ":self", "trp_player"),
- (gt, ":item_no", 0), (neq, ":inv_slot", -1),
- (overlay_set_color, ":object", 0x33FFFF),
- (assign, "$g_presentation_obj_15", ":object"),
- (assign, "$g_presentation_obj_16", ":inv_slot"),
- (else_try), #reset
- (eq, "$g_presentation_obj_15", ":object"), (neq, "$g_presentation_obj_15", -1), (neq, ":inv_slot", -1),
- (eq, ":self", "trp_player"),
- (overlay_set_color, ":object", 0xFFFFFF),
- (assign, "$g_presentation_obj_15", -1),
- (assign, "$g_presentation_obj_16", -1),
- (else_try),
- (neq, "$g_presentation_obj_15", -1), (neq, ":inv_slot", -1),
- (eq, ":self", "trp_player"),
- (troop_get_inventory_slot, ":first_item", "trp_player", "$g_presentation_obj_16"),
- (item_get_type, ":first_item_type", ":first_item"),
- (try_begin),
- (eq, ":item_no", -1),
- (assign, ":transition_approved", 1),
- (else_try),
- (item_get_type, ":second_item_type", ":item_no"),
- (assign, ":transition_approved", 1),
- (try_begin),
- (is_between, "$g_presentation_obj_16", ek_item_0, ek_head),
- (neq, ":second_item_type", itp_type_one_handed_wpn), (neq, ":second_item_type", itp_type_two_handed_wpn), (neq, ":second_item_type", itp_type_polearm), (neq, ":second_item_type", itp_type_arrows),
- (neq, ":second_item_type", itp_type_bolts), (neq, ":second_item_type", itp_type_shield), (neq, ":second_item_type", itp_type_bow), (neq, ":second_item_type", itp_type_crossbow), (neq, ":second_item_type", itp_type_thrown),
- (assign, ":transition_approved", 0),
- (else_try),
- (is_between, ":inv_slot", ek_item_0, ek_head),
- (neq, ":first_item_type", itp_type_one_handed_wpn), (neq, ":first_item_type", itp_type_two_handed_wpn), (neq, ":first_item_type", itp_type_polearm), (neq, ":first_item_type", itp_type_arrows),
- (neq, ":first_item_type", itp_type_bolts), (neq, ":first_item_type", itp_type_shield), (neq, ":first_item_type", itp_type_bow), (neq, ":first_item_type", itp_type_crossbow), (neq, ":first_item_type", itp_type_thrown),
- (assign, ":transition_approved", 0),
- (else_try),
- (eq, "$g_presentation_obj_16", ek_head), (neq, ":second_item_type", itp_type_head_armor),
- (assign, ":transition_approved", 0),
- (else_try),
- (eq, ":inv_slot", ek_head), (neq, ":first_item_type", itp_type_head_armor),
- (assign, ":transition_approved", 0),
- (else_try),
- (eq, "$g_presentation_obj_16", ek_body), (neq, ":second_item_type", itp_type_body_armor),
- (assign, ":transition_approved", 0),
- (else_try),
- (eq, ":inv_slot", ek_body), (neq, ":first_item_type", itp_type_body_armor),
- (assign, ":transition_approved", 0),
- (else_try),
- (eq, "$g_presentation_obj_16", ek_foot), (neq, ":second_item_type", itp_type_foot_armor),
- (assign, ":transition_approved", 0),
- (else_try),
- (eq, ":inv_slot", ek_foot), (neq, ":first_item_type", itp_type_foot_armor),
- (assign, ":transition_approved", 0),
- (else_try),
- (eq, "$g_presentation_obj_16", ek_gloves), (neq, ":second_item_type", itp_type_hand_armor),
- (assign, ":transition_approved", 0),
- (else_try),
- (eq, ":inv_slot", ek_gloves), (neq, ":first_item_type", itp_type_hand_armor),
- (assign, ":transition_approved", 0),
- (else_try),
- (eq, "$g_presentation_obj_16", ek_horse), (neq, ":second_item_type", itp_type_horse),
- (assign, ":transition_approved", 0),
- (else_try),
- (eq, ":inv_slot", ek_horse), (neq, ":first_item_type", itp_type_horse),
- (assign, ":transition_approved", 0),
- (try_end),
- (try_end),
- (eq, ":transition_approved", 1),
- (assign, ":check_item_for_req_slot", -1),
- (try_begin),
- (is_between, "$g_presentation_obj_16", 0, 9),
- (neq, ":item_no", -1),
- (assign, ":check_item_for_req_slot", ":inv_slot"),
- (else_try),
- (is_between, ":inv_slot", 0, 9),
- (assign, ":check_item_for_req_slot", "$g_presentation_obj_16"),
- (try_end),
- (try_begin),
- (neq, ":check_item_for_req_slot", -1),
- (troop_get_inventory_slot, ":item_in_question", "trp_player", ":check_item_for_req_slot"),
- (troop_get_inventory_slot_modifier, ":imod", "trp_player", ":check_item_for_req_slot"),
- (item_get_difficulty, ":item_diff", ":item_in_question"),
- (try_begin),
- (eq, ":imod", imod_masterwork), (val_add, ":item_diff", 4),
- (else_try),
- (neg|item_slot_eq, ":item_in_question", slot_item_type, itp_type_horse),
- (eq, ":imod", imod_heavy), (val_add, ":item_diff", 1),
- (else_try),
- (eq, ":imod", imod_strong), (val_add, ":item_diff", 2),
- (else_try),
- (eq, ":imod", imod_stubborn), (val_add, ":item_diff", 1),
- (else_try),
- (eq, ":imod", imod_timid), (val_add, ":item_diff", -1), (val_max, reg60, 0),
- # (else_try),
- # (eq, ":imod", imod_spirited), (val_add, ":item_diff", 1),
- (else_try),
- (eq, ":imod", imod_champion), (val_add, ":item_diff", 2),
- (try_end),
- (try_begin),
- (item_slot_eq, ":item_in_question", slot_item_type, itp_type_bow),
- (store_skill_level, ":skill_level", skl_power_draw, "trp_player"),
- (lt, ":skill_level", ":item_diff"),
- (assign, ":transition_approved", 0),
- (else_try),
- (item_slot_eq, ":item_in_question", slot_item_type, itp_type_thrown),
- (store_skill_level, ":skill_level", skl_power_throw, "trp_player"),
- (lt, ":skill_level", ":item_diff"),
- (assign, ":transition_approved", 0),
- (else_try),
- (item_slot_eq, ":item_in_question", slot_item_type, itp_type_horse),
- (store_skill_level, ":skill_level", skl_riding, "trp_player"),
- (lt, ":skill_level", ":item_diff"),
- (assign, ":transition_approved", 0),
- (else_try),
- (item_slot_eq, ":item_in_question", slot_item_type, itp_type_shield),
- (store_skill_level, ":skill_level", skl_shield, "trp_player"),
- (lt, ":skill_level", ":item_diff"),
- (assign, ":transition_approved", 0),
- (else_try),
- (this_or_next|item_slot_eq, ":item_in_question", slot_item_type, itp_type_one_handed_wpn),
- (this_or_next|item_slot_eq, ":item_in_question", slot_item_type, itp_type_two_handed_wpn),
- (this_or_next|item_slot_eq, ":item_in_question", slot_item_type, itp_type_polearm),
- (this_or_next|item_slot_eq, ":item_in_question", slot_item_type, itp_type_crossbow),
- (this_or_next|item_slot_eq, ":item_in_question", slot_item_type, itp_type_head_armor),
- (this_or_next|item_slot_eq, ":item_in_question", slot_item_type, itp_type_body_armor),
- (this_or_next|item_slot_eq, ":item_in_question", slot_item_type, itp_type_foot_armor),
- (item_slot_eq, ":item_in_question", slot_item_type, itp_type_hand_armor),
- (store_attribute_level, ":skill_level", "trp_player", ca_strength),
- (lt, ":skill_level", ":item_diff"),
- (assign, ":transition_approved", 0),
- (try_end),
- (try_end),
- (eq, ":transition_approved", 1),
- (troop_get_inventory_slot_modifier, ":first_item_imod", "trp_player", "$g_presentation_obj_16"),
- (try_begin),
- (is_between, ":first_item", food_begin, food_end), (troop_inventory_slot_get_item_amount, ":first_item_quantity", "trp_player", "$g_presentation_obj_16"),
- (try_end),
- (troop_get_inventory_slot_modifier, ":second_item_imod", "trp_player", ":inv_slot"),
- (try_begin),
- (is_between, ":item_no", food_begin, food_end), (troop_inventory_slot_get_item_amount, ":second_item_quantity", "trp_player", ":inv_slot"),
- (try_end),
- (troop_set_inventory_slot, "trp_player", ":inv_slot", ":first_item"),
- (troop_set_inventory_slot_modifier, "trp_player", ":inv_slot", ":first_item_imod"),
- (try_begin),
- (is_between, ":first_item", food_begin, food_end), (troop_inventory_slot_set_item_amount, "trp_player", ":inv_slot", ":first_item_quantity"),
- (try_end),
- (troop_set_inventory_slot, "trp_player", "$g_presentation_obj_16", ":item_no"),
- (troop_set_inventory_slot_modifier, "trp_player", "$g_presentation_obj_16", ":second_item_imod"),
- (try_begin),
- (is_between, ":item_no", food_begin, food_end), (troop_inventory_slot_set_item_amount, "trp_player", "$g_presentation_obj_16", ":second_item_quantity"),
- (try_end),
- (start_presentation, "prsnt_trade_screen_replacer"),
- # (overlay_get_position, pos0, "$g_presentation_obj_15"), (overlay_get_position, pos1, ":object"),
- # (overlay_set_position, "$g_presentation_obj_15", pos1), (overlay_set_position, ":object", pos0),
- # (overlay_set_color, "$g_presentation_obj_15", 0xFFFFFF),
- # (troop_set_slot, "trp_temp_array_c", "$g_presentation_obj_16", ":object"), (troop_set_slot, "trp_temp_array_c", ":inv_slot", "$g_presentation_obj_15"),
- # (assign, "$g_presentation_obj_15", -1),
- # (assign, "$g_presentation_obj_16", -1),
- (try_end),
- (try_end),
- ]),
- ]),
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement