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),
(assign, "$spear_dist", 0),
(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,":oldhp",":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,":oldhp",":hp"),
(assign,reg1,":oldhp"),
(display_message,"@Spear-wall dealt {reg1} damage!"),
])
spearwall_trigger_9 = (0, 0, 2, [(key_clicked, key_b),(eq,"$setting_use_spearwall",1)],
[(assign, "$setting_use_spearwall", 0),(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_tutorial_spear","itm_Annu_spear"),
(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"),
(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",255),
(else_try),
(eq,":spear","itm_awlpike"),
(assign,"$spear_dist",170),
(else_try),
(eq,":spear","itm_pitch_fork"),
(assign,"$spear_dist",164),
(else_try),
(eq,":spear","itm_military_fork"),
(assign,"$spear_dist",145),
(else_try),
(eq,":spear","itm_battle_fork"),
(assign,"$spear_dist",152),
(else_try),
(eq,":spear","itm_boar_spear"),
(assign,"$spear_dist",167),
(else_try),
(eq,":spear","itm_glaive"),
(assign,"$spear_dist",167),
(else_try),
(eq,":spear","itm_poleaxe"),
(assign,"$spear_dist",190),
(else_try),
(eq,":spear","itm_polehammer"),
(assign,"$spear_dist",140),
(else_try),
(eq,":spear","itm_shortened_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),
])