########################Begin#################################
spearwall_trigger_1 = (0.2, 0, ti_once, [], [
(assign,"$spear_in_position",0),
(assign,"$setting_use_spearwall",1),
(try_for_agents,":agent"),
(agent_set_slot,":agent",slot_agent_spearwall,0),
(agent_set_slot,":agent",slot_agent_x,0),
(agent_set_slot,":agent",slot_agent_y,0),
(agent_set_slot,":agent",slot_agent_z,0),
(agent_set_slot,":agent",slot_agent_speed,0),
(try_end),
])
spearwall_trigger_2 = (0.2, 0, 0, [(eq,"$setting_use_spearwall",1)], [
(set_fixed_point_multiplier, 100),
(try_for_agents,":agent"),
(agent_is_alive,":agent"),
(agent_get_slot,"

ldagentx",":agent",slot_agent_x),
(agent_get_slot,"

ldagenty",":agent",slot_agent_y),
(agent_get_slot,"

ldagentz",":agent",slot_agent_z),
(agent_get_position, pos1, ":agent"),
(position_get_x,":agentx",pos1),
(position_get_y,":agenty",pos1),
(position_get_z,":agentz",pos1),
(position_set_x,pos2,"

ldagentx"),
(position_set_y,pos2,"

ldagenty"),
(position_set_z,pos2,"

ldagentz"),
(position_set_x,pos1,":agentx"),
(position_set_y,pos1,":agenty"),
(position_set_z,pos1,":agentz"),
(get_distance_between_positions,":speed",pos1,pos2),
(agent_set_slot,":agent",slot_agent_x,":agentx"),
(agent_set_slot,":agent",slot_agent_y,":agenty"),
(agent_set_slot,":agent",slot_agent_z,":agentz"),
(agent_set_slot,":agent",slot_agent_speed,":speed"),
(try_end),
])
spearwall_trigger_3 = (0, 0, 0, [(eq,"$spear_in_position",1),(this_or_next|game_key_clicked, gk_attack),
(this_or_next|game_key_clicked, gk_defend),(this_or_next|game_key_clicked, gk_defend),
(this_or_next|game_key_clicked, gk_move_forward),(this_or_next|game_key_clicked, gk_move_backward),
(this_or_next|game_key_clicked, gk_move_left),(this_or_next|game_key_clicked, gk_move_right),
(this_or_next|game_key_clicked, gk_equip_primary_weapon),(this_or_next|game_key_clicked, gk_equip_secondary_weapon),
(this_or_next|game_key_clicked, gk_action),(game_key_clicked, gk_sheath_weapon)
],
[(get_player_agent_no,":player"),
(agent_is_alive,":player"),
(display_message,"@Releasing spear.",0x6495ed),
(agent_set_animation, ":player", "anim_release_thrust_staff"),
(assign,"$spear_in_position",0),
])
spearwall_trigger_4 = (0.2, 0, 0, [(eq,"$setting_use_spearwall",1)], [
(try_for_agents,":agent"),
(agent_get_horse,":horse",":agent"),
(neg|gt,":horse",0),
(agent_get_slot,":speartimer",":agent",slot_agent_spearwall),
(lt,":speartimer",10),
(val_add,":speartimer",2),
(agent_set_slot,":agent",slot_agent_spearwall,":speartimer"),
(try_end),
])
spearwall_trigger_5 = (3, 0, 0, [(eq,"$spear_in_position",1)],[
(get_player_agent_no,":player"),
(agent_is_alive,":player"),
(agent_set_animation, ":player", "anim_spearwall_hold"),
])
spearwall_trigger_6 = (0.1, 0, 0, [(eq,"$setting_use_spearwall",1)], [
(get_player_agent_no,":player"),
(agent_get_team,":playerteam",":player"),
(try_for_agents,":agent"),
(agent_is_alive,":agent"),
(neq,":agent",":player"),
(agent_is_human,":agent"),
(agent_get_horse,":horse",":agent"),
(neg|gt,":horse",0),
(agent_get_slot,":speartimer",":agent",slot_agent_spearwall),
(ge,":speartimer",10),
(agent_get_simple_behavior,":state",":agent"),
(agent_get_team,":team1",":agent"),
(agent_get_class,":class",":agent"),
(team_get_movement_order,"

rder",":team1",":class"),
(assign,":continue",0),
(try_begin),
(neq,":team1",":playerteam"),
(this_or_next|eq,":state",aisb_hold),
(this_or_next|eq,":state",aisb_flock),
(eq,":state",aisb_go_to_pos),
(assign,":continue",1),
(else_try),
(this_or_next|eq,"

rder",mordr_hold),
(eq,"

rder",mordr_stand_ground),
(this_or_next|eq,":state",aisb_hold),
(this_or_next|eq,":state",aisb_flock),
(this_or_next|eq,":state",aisb_melee),
(eq,":state",aisb_go_to_pos),
(assign,":continue",1),
(try_end),
(eq,":continue",1),
(assign,":continue",0),
(try_begin),
(eq,":team1",":playerteam"),
#(eq,"$rout",0),
(assign,":continue",1),
(else_try),
#(eq,"$airout",0),
(assign,":continue",1),
(try_end),
(eq,":continue",1),
(assign,":continue",0),
(agent_get_wielded_item, ":handone", ":agent", 0),
(agent_get_wielded_item, ":handtwo", ":agent", 1),
(assign,":speardist",145),
(try_for_range,":spear","itm_pitch_fork","itm_wooden_shield"),
(this_or_next|eq,":handone",":spear"),
(eq,":handtwo",":spear"),
(assign,":continue",1),
(try_begin),
(eq,":spear","itm_war_spear"),
(assign,":speardist",160),
(else_try),
(eq,":spear","itm_spear_e_2-5m"),
(assign,":continue",0),
(else_try),
(eq,":spear","itm_light_lance"),
(assign,":continue",0),
(else_try),
(eq,":spear","itm_lance"),
(assign,":continue",0),
(else_try),
(eq,":spear","itm_heavy_lance"),
(assign,":continue",0),
(else_try),
(eq,":spear","itm_pike"),
(assign,":speardist",255),
(else_try),
(eq,":spear","itm_ashwood_pike"),
(assign,":speardist",160),
(else_try),
(eq,":spear","itm_awlpike"),
(assign,":speardist",170),
(else_try),
(eq,":spear","itm_pitch_fork"),
(assign,":continue",0),
(else_try),
(eq,":spear","itm_military_fork"),
(assign,":continue",0),
(else_try),
(eq,":spear","itm_battle_fork"),
(assign,":continue",0),
(else_try),
(eq,":spear","itm_boar_spear"),
(assign,":continue",0),
(else_try),
(eq,":spear","itm_glaive"),
(assign,":speardist",167),
(else_try),
(eq,":spear","itm_poleaxe"),
(assign,":speardist",180),
(else_try),
(eq,":spear","itm_polehammer"),
(assign,":continue",0),
(else_try),
(eq,":spear","itm_shortened_spear"),
(assign,":continue",0),
(else_try),
(eq,":spear","itm_fauchard"),
(assign,":speardist",140),
(else_try),
(eq,":spear","itm_halberd_e"),
(assign,":speardist",150),
(else_try),
(eq,":spear","itm_halberd_f"),
(assign,":speardist",150),
(else_try),
(eq,":spear","itm_knight_polehammer_a"),
(assign,":speardist",155),
(else_try),
(eq,":spear","itm_knight_polehammer_b"),
(assign,":speardist",150),
(else_try),
(eq,":spear","itm_bill"),
(assign,":speardist",160),
(else_try),
(eq,":spear","itm_midland_lance"),
(assign,":speardist",290),
(else_try),
(eq,":spear","itm_kushan_lance"),
(assign,":speardist",270),
(else_try),
(eq,":spear","itm_cataphract_lance"),
(assign,":speardist",260),
(else_try),
(eq,":spear","itm_mercenary_lance"),
(assign,":speardist",290),
(else_try),
(eq,":spear","itm_tudor_spear"),
(assign,":speardist",190),
(else_try),
(eq,":spear","itm_dark_jousting_pike"),
(assign,":continue",0),
(else_try),
(eq,":spear","itm_jousting_pike"),
(assign,":continue",0),
(else_try),
(eq,":spear","itm_sheep_spear"),
(assign,":continue",0),
(else_try),
(eq,":spear","itm_daka_spear"),
(assign,":speardist",130),
(else_try),
(eq,":spear","itm_jousting_lance"),
(assign,":continue",0),
(else_try),
(eq,":spear","itm_double_sided_lance"),
(assign,":continue",0),
(else_try),
(eq,":spear","itm_staff"),
(assign,":continue",0),
(else_try),
(eq,":spear","itm_quarter_staff"),
(assign,":continue",0),
(else_try),
(eq,":spear","itm_iron_staff"),
(assign,":continue",0),
(try_end),
(try_end),
(eq,":continue",1),
(assign,":victim",-1),
(agent_get_position,pos1,":agent"),
(try_for_agents,":possible_victim"),
(agent_is_alive,":possible_victim"),
(neg|agent_is_human,":possible_victim"),
(agent_get_rider,":rider",":possible_victim"),
(ge,":rider",0),
(agent_get_team,":team2",":rider"),
(teams_are_enemies,":team1",":team2"),
(agent_get_position,pos2,":possible_victim"),
(get_distance_between_positions,":dist",pos1,pos2),
(lt,":dist",":speardist"),
(neg|position_is_behind_position,pos2,pos1),
(agent_get_slot,":speed",":possible_victim",slot_agent_speed),
(ge,":speed",120), # Remember to change this if the timing on speed checks changes
(assign,":victim",":possible_victim"),
(try_end),
(gt,":victim",-1),
(agent_set_animation, ":agent", "anim_spearwall_hold"),
(agent_play_sound,":victim","snd_metal_hit_high_armor_high_damage"),
(store_agent_hit_points,":hp",":victim",0),
(store_agent_hit_points,"

ldhp",":victim",1),
(val_div,":speed",2), # Remember to change this if the timing on speed checks changes
(val_sub,":speed",15),
(val_sub,":hp",":speed"),
(val_max,":hp",0),
(agent_set_slot,":agent",slot_agent_spearwall,0),
(agent_get_horse,":playerhorse",":player"),
(agent_set_hit_points,":victim",":hp",0),
(agent_deliver_damage_to_agent,":victim",":victim"),
(try_begin),
(eq,":victim",":playerhorse"),
(store_agent_hit_points,":hp",":victim",1),
(val_sub,"

ldhp",":hp"),
(assign,reg1,"

ldhp"),
(display_message,"@Your horse received {reg1} damage from a braced spear!",0xff4040),
(try_end),
(try_end),
])
spearwall_trigger_7 = (0.1, 0, 0, [(eq,"$spear_in_position",1)], [
(get_player_agent_no,":player"),
(agent_is_alive,":player"),
(store_agent_hit_points,":hp",":player",1),
(lt,":hp","$spear_hp"),
(display_message,"@The injury causes your grip on the spear to slip!",0xff4040),
(agent_set_animation, ":player", "anim_release_thrust_staff"),
(assign,"$spear_in_position",0),
])
spearwall_trigger_8 = (0.1, 0, 0, [(eq,"$spear_in_position",1)], [
(get_player_agent_no,":player"),
(agent_is_alive,":player"),
(agent_get_slot,":speartimer",":player",slot_agent_spearwall),
(ge,":speartimer",10),
(assign,":victim",-1),
(agent_get_position,pos1,":player"),
(try_for_agents,":possible_victim"),
(agent_is_alive,":possible_victim"),
(neg|agent_is_human,":possible_victim"),
(agent_get_rider,":rider",":possible_victim"),
(ge,":rider",0),
(neg|agent_is_ally,":rider"),
(agent_get_position,pos2,":possible_victim"),
(get_distance_between_positions,":dist",pos1,pos2),
(lt,":dist","$spear_dist"),
(neg|position_is_behind_position,pos2,pos1),
(agent_get_slot,":speed",":possible_victim",slot_agent_speed),
(ge,":speed",120), # Remember to change this if the timing on speed checks changes
(assign,":victim",":possible_victim"),
(try_end),
(gt,":victim",-1),
(agent_play_sound,":victim","snd_metal_hit_high_armor_high_damage"),
(store_agent_hit_points,":hp",":victim",0),
(store_agent_hit_points,"

ldhp",":victim",1),
(val_div,":speed",2), # Remember to change this if the timing on speed checks changes
(val_sub,":speed",15),
(val_sub,":hp",":speed"),
(val_max,":hp",0),
(agent_set_hit_points,":victim",":hp",0),
(agent_deliver_damage_to_agent,":victim",":victim"),
(agent_set_slot,":player",slot_agent_spearwall,0),
(store_agent_hit_points,":hp",":victim",1),
(val_sub,"

ldhp",":hp"),
(assign,reg1,"

ldhp"),
(display_message,"@Spear-wall dealt {reg1} damage!"),
])
spearwall_trigger_9 = (0, 0, 2, [(key_clicked, key_b),(eq,"$setting_use_spearwall",1)],
[(assign,":continue",0),
(get_player_agent_no,":player"),
(agent_is_alive,":player"),
(agent_get_wielded_item, ":handone", ":player", 0),
(agent_get_wielded_item, ":handtwo", ":player", 1),
(assign,"$spear_dist",145),
(try_for_range,":spear","itm_pitch_fork","itm_wooden_shield"),
(this_or_next|eq,":handone",":spear"),
(eq,":handtwo",":spear"),
(assign,":continue",1),
(try_begin),
(eq,":spear","itm_war_spear"),
(assign,"$spear_dist",160),
(else_try),
(eq,":spear","itm_spear_e_2-5m"),
(assign,":continue",0),
(else_try),
(eq,":spear","itm_light_lance"),
(assign,":continue",0),
(else_try),
(eq,":spear","itm_lance"),
(assign,":continue",0),
(else_try),
(eq,":spear","itm_heavy_lance"),
(assign,":continue",0),
(else_try),
(eq,":spear","itm_pike"),
(assign,"$spear_dist",255),
(else_try),
(eq,":spear","itm_ashwood_pike"),
(assign,"$spear_dist",160),
(else_try),
(eq,":spear","itm_awlpike"),
(assign,"$spear_dist",170),
(else_try),
(eq,":spear","itm_pitch_fork"),
(assign,":continue",0),
(else_try),
(eq,":spear","itm_military_fork"),
(assign,":continue",0),
(else_try),
(eq,":spear","itm_battle_fork"),
(assign,":continue",0),
(else_try),
(eq,":spear","itm_boar_spear"),
(assign,":continue",0),
(else_try),
(eq,":spear","itm_glaive"),
(assign,"$spear_dist",167),
(else_try),
(eq,":spear","itm_poleaxe"),
(assign,"$spear_dist",180),
(else_try),
(eq,":spear","itm_polehammer"),
(assign,":continue",0),
(else_try),
(eq,":spear","itm_shortened_spear"),
(assign,":continue",0),
(else_try),
(eq,":spear","itm_fauchard"),
(assign,"$spear_dist",140),
(else_try),
(eq,":spear","itm_halberd_e"),
(assign,"$spear_dist",150),
(else_try),
(eq,":spear","itm_halberd_f"),
(assign,"$spear_dist",150),
(else_try),
(eq,":spear","itm_knight_polehammer_a"),
(assign,"$spear_dist",155),
(else_try),
(eq,":spear","itm_knight_polehammer_b"),
(assign,"$spear_dist",150),
(else_try),
(eq,":spear","itm_bill"),
(assign,"$spear_dist",160),
(else_try),
(eq,":spear","itm_midland_lance"),
(assign,"$spear_dist",290),
(else_try),
(eq,":spear","itm_kushan_lance"),
(assign,"$spear_dist",270),
(else_try),
(eq,":spear","itm_cataphract_lance"),
(assign,"$spear_dist",260),
(else_try),
(eq,":spear","itm_mercenary_lance"),
(assign,"$spear_dist",290),
(else_try),
(eq,":spear","itm_tudor_spear"),
(assign,"$spear_dist",190),
(else_try),
(eq,":spear","itm_dark_jousting_pike"),
(assign,":continue",0),
(else_try),
(eq,":spear","itm_jousting_pike"),
(assign,":continue",0),
(else_try),
(eq,":spear","itm_sheep_spear"),
(assign,":continue",0),
(else_try),
(eq,":spear","itm_daka_spear"),
(assign,"$spear_dist",130),
(else_try),
(eq,":spear","itm_jousting_lance"),
(assign,":continue",0),
(else_try),
(eq,":spear","itm_double_sided_lance"),
(assign,":continue",0),
(else_try),
(eq,":spear","itm_staff"),
(assign,":continue",0),
(else_try),
(eq,":spear","itm_quarter_staff"),
(assign,":continue",0),
(else_try),
(eq,":spear","itm_iron_staff"),
(assign,":continue",0),
(try_end),
(try_end),
(eq,":continue",1),
(agent_get_horse,":horse",":player"),
(neg|gt,":horse",0),
(neq, "$spear_in_position", 1),
(display_message,"@Bracing spear for charge.",0x6495ed),
(agent_set_animation, ":player", "anim_spearwall_hold"),
(assign, "$spear_in_position", 1),
(store_agent_hit_points,"$spear_hp",":player",1),
])
########################End#####################