#turn/destroy undead
common_battle_turn_undead = (
37, 0, 0, [],
[
(try_for_agents,":cleric"),
(store_random_in_range,":1d6",1,7),
(le,":1d6",2),
(agent_get_troop_id,":is_priest",":cleric"),
(neg|troop_is_mounted,":is_priest"),
(agent_is_alive,":cleric"),
(this_or_next|eq,":is_priest","trp_uh_infantry"),
(this_or_next|eq,":is_priest","trp_uh_inquisitor"),
# (this_or_next|eq,":is_priest","trp_drow_priestess"),
# (this_or_next|eq,":is_priest","trp_drow_high_priestess"),
(this_or_next|eq,":is_priest","trp_npc12"),
(this_or_next|eq,":is_priest","trp_dwarf_cleric"),
(this_or_next|eq,":is_priest","trp_dwarf_high_priest"),
(this_or_next|eq,":is_priest","trp_calradian_cleric"),
(this_or_next|eq,":is_priest","trp_swadian_cleric"),
(this_or_next|eq,":is_priest","trp_vaegir_cleric"),
(this_or_next|eq,":is_priest","trp_khergit_cleric"),
(this_or_next|eq,":is_priest","trp_nord_cleric"),
(this_or_next|eq,":is_priest","trp_rhodok_cleric"),
(this_or_next|eq,":is_priest","trp_sarranid_cleric"),
(this_or_next|eq,":is_priest","trp_elf_cleric"),
(this_or_next|eq,":is_priest","trp_elf_high_cleric"),
#(this_or_next|eq,":is_priest","trp_player"),
(eq,":is_priest","trp_orc_raider_shaman"),
(agent_is_alive,":cleric"),
(agent_get_team ,":cleric_team",":cleric"),
(agent_get_position,pos32,":cleric"),
(try_for_agents,":undead"),
(agent_is_human,":undead"),
(agent_is_alive,":undead"),
(agent_get_troop_id,":targettrpid", ":undead"),
(try_begin),
(this_or_next|eq,":targettrpid","trp_zombie"),
(this_or_next|eq,":targettrpid","trp_necro_conscript"),
(eq,":targettrpid","trp_skeleton"),
(assign,":target_is_undead",1),
(else_try),
(this_or_next|eq,":targettrpid","trp_zombie_warrior"),
(this_or_next|eq,":targettrpid","trp_skeleton_warrior"),
(this_or_next|eq,":targettrpid","trp_necro_footman"),
(this_or_next|eq,":targettrpid","trp_necro_skirmisher"),
(eq,":targettrpid","trp_shadow"),
(assign,":target_is_undead",2),
(else_try),
(this_or_next|eq,":targettrpid","trp_armored_zombie_warrior"),
(this_or_next|eq,":targettrpid","trp_armored_skeleton_warrior"),
(this_or_next|eq,":targettrpid","trp_necro_veteran_footman"),
(this_or_next|eq,":targettrpid","trp_necro_archer"),
(this_or_next|eq,":targettrpid","trp_necro_infantry"),
(this_or_next|eq,":targettrpid","trp_necro_lesser_priest"),
(eq,":targettrpid","trp_shadow_warrior"),
(assign,":target_is_undead",3),
(else_try),
(this_or_next|eq,":targettrpid","trp_armored_shadow_warrior"),
(this_or_next|eq,":targettrpid","trp_necro_heavy_infantry"),
(this_or_next|eq,":targettrpid","trp_necro_master_archer"),
(this_or_next|eq,":targettrpid","trp_necro_priest"),
(eq,":targettrpid","trp_shadow_wizard"),
(assign,":target_is_undead",4),
(else_try),
(this_or_next|eq,":targettrpid","trp_shadow_knight"),
(this_or_next|eq,":targettrpid","trp_skeleton_knight"),
(this_or_next|eq,":targettrpid","trp_necro_high_priest"),
(eq,":targettrpid","trp_zombie_knight"),
(assign,":target_is_undead",5),
(else_try),
(this_or_next|eq,":targettrpid","trp_knight_12_1"),
(this_or_next|eq,":targettrpid","trp_knight_12_2"),
(this_or_next|eq,":targettrpid","trp_knight_12_3"),
(eq,":targettrpid","trp_knight_12_4"),
(assign,":target_is_undead",6),
(else_try),
(assign,":target_is_undead",0),
(try_end),
(agent_get_team ,":undead_team",":undead"),
(neq,":cleric_team",":undead_team"),
(team_get_faction, ":target_fac", ":undead_team"),
(team_get_faction, ":shooter_fac", ":cleric_team"),
(store_relation,":shooter-target_rels",":shooter_fac",":target_fac"),
(ge,":shooter-target_rels",0),
(agent_is_alive,":undead"),
(agent_get_position,pos33,":undead"),
(get_distance_between_positions_in_meters,":dist",pos32,pos33),
(le,":dist",4),
(ge,":target_is_undead",1),
(agent_play_sound, ":cleric","snd_holy_bolt"),
(agent_set_animation, ":cleric", "anim_cheer",1),
(particle_system_burst,"psys_moon_beam_paricle_1",pos33,100),
(store_character_level,":cleric_level",":is_priest"),
(store_random_in_range,":1d100",1,101),
(val_add,":1d100",":cleric_level"),
(try_begin),
(eq,":target_is_undead",1),
(is_between,":1d100",40,60),
(agent_start_running_away, ":undead"),
(else_try),
(eq,":target_is_undead",1),
(ge,":1d100",60),
(agent_deliver_damage_to_agent, ":cleric", ":undead", 400,),
(else_try),
(eq,":target_is_undead",2),
(is_between,":1d100",65,85),
(agent_start_running_away, ":undead"),
(else_try),
(eq,":target_is_undead",2),
(ge,":1d100",85),
(agent_deliver_damage_to_agent, ":cleric", ":undead", 400,),
(else_try),
(eq,":target_is_undead",3),
(is_between,":1d100",80,105),
(agent_start_running_away, ":undead"),
(else_try),
(eq,":target_is_undead",3),
(ge,":1d100",105),
(agent_deliver_damage_to_agent, ":cleric", ":undead", 400,),
(else_try),
(eq,":target_is_undead",4),
(is_between,":1d100",100,120),
(agent_start_running_away, ":undead"),
(else_try),
(eq,":target_is_undead",4),
(ge,":1d100",120),
(agent_deliver_damage_to_agent, ":cleric", ":undead", 400,),
(else_try),
(eq,":target_is_undead",5),
(is_between,":1d100",110,130),
(agent_start_running_away, ":undead"),
(else_try),
(eq,":target_is_undead",5),
(ge,":1d100",130),
(agent_deliver_damage_to_agent, ":cleric", ":undead", 400,),
(else_try),
(eq,":target_is_undead",6),
(is_between,":1d100",120,140),
(agent_start_running_away, ":undead"),
(else_try),
(eq,":target_is_undead",6),
(ge,":1d100",140),
(agent_deliver_damage_to_agent, ":cleric", ":undead", 400,),
(try_end),
(try_end),
(try_end),
])