e4s-sdk/gamedata/configs/scripts/pripyat/pri_a17_monolith_logic.ltx
2026-06-17 23:06:51 +03:00

649 lines
23 KiB
TeX

[walker@generic]
gather_items_enabled = false
help_wounded_enabled = false
corpse_detection_enabled = false
wounded = wounded
;----------------------------------------------------------------------------------------------------------
[logic@pri_a17_monolith_preacher]
suitable = {=check_npc_name(pri_a17_monolith_preacher)} true
prior = 200
active = walker@take_aim
on_death = death@preacher
on_hit = hit@preacher
[walker@take_aim]:walker@generic
path_walk = mon_preacher_stay
path_look = mon_preacher_shoot
out_restr = pri_a17_preacher_outrestr
on_signal = preacher_ready | remark@shoot_ice
on_info = {+pri_a17_ice_dead} animpoint@pray
combat_ignore_cond = true
combat_ignore_keep_when_attacked = true
invulnerable = true
meet = no_meet
[remark@shoot_ice]:walker@generic
anim = threat_fire
target = story | pri_a17_military_sergeant_morozov
on_signal = anim_end | remark@shoot_ice2
out_restr = pri_a17_preacher_outrestr
combat_ignore_cond = true
combat_ignore_keep_when_attacked = true
invulnerable = true
meet = no_meet
on_info = {+pri_a17_ice_dead} animpoint@pray
[remark@shoot_ice2]:walker@generic
anim = threat_fire
target = story | pri_a17_military_sergeant_morozov
on_game_timer = 15 | animpoint@pray %+pri_a17_ice_is_fucked%
on_info = {+pri_a17_ice_dead} animpoint@pray
out_restr = pri_a17_preacher_outrestr
combat_ignore_cond = true
combat_ignore_keep_when_attacked = true
invulnerable = true
meet = no_meet
[animpoint@pray]:walker@generic
cover_name = pri_a17_sc_mon_preacher
avail_animations = pri_a17_pray_in
reach_movement = patrol
on_game_timer = 20 | {-pri_a17_monolith_preacher_done} %=play_sound(pri_a17_monolith_preacher) +pri_a17_monolith_preacher_done%
on_game_timer2 = 180| camper@angry_preacher
on_info = {+pri_a17_preacher_hitted_by_actor} camper@angry_preacher, {=counter_equal(pri_a17_monolith_amb_death:10)} camper@angry_preacher
out_restr = pri_a17_preacher_outrestr
meet = no_meet
combat_ignore_cond = true
combat_ignore_keep_when_attacked = true
[camper@angry_preacher]:walker@generic
path_walk = mon_preacher_stay
path_look = ice_takin_pos
radius = 1
no_retreat = true
out_restr = pri_a17_preacher_outrestr
def_state_campering = threat
def_state_campering_fire = threat_fire
meet = no_meet
[hit@preacher]
on_info = {=hit_by_actor +pri_a17_ice_dead} camper@angry_preacher %+pri_a17_preacher_hitted_by_actor%, %=restore_health%
[death@preacher]
on_info = %+pri_a17_mon_preacher_dead =stop_sound%
;----------------------------------------------------------
[logic@pri_a17_monolith_ambusher_1]
suitable = {=check_npc_name(pri_a17_monolith_ambusher_1)}
prior = 70
active = walker@ambusher_1_start
on_death = death
[walker@ambusher_1_start]:walker@generic
path_walk = ambusher_1_trans
path_look = ambusher_trans_look_1
def_state_standing = trans_0
combat_ignore_cond = true
combat_ignore_keep_when_attacked = true
on_info = {+pri_a17_actor_attack_military} walker@ambusher_1, {+pri_a17_mon_ambush_start} walker@ambusher_1, {+pri_a17_actor_find_ambush} walker@ambusher_1
[walker@ambusher_1]:walker@generic
path_walk = mon_amb_1
path_look = mon_amb_1_look
def_state_moving1 = assault
def_state_moving2 = assault
def_state_moving3 = assault
out_restr = pri_a17_tunnel_top
[death]
on_info = %=inc_counter(pri_a17_monolith_amb_death)%
;----------------------------------------------------------
[logic@pri_a17_monolith_ambusher_2]
suitable = {=check_npc_name(pri_a17_monolith_ambusher_2)}
prior = 70
active = walker@ambusher_2_start
on_death = death
[walker@ambusher_2_start]:walker@generic
path_walk = ambusher_2_trans
path_look = ambusher_trans_look_2
def_state_standing = trans_0
combat_ignore_cond = true
combat_ignore_keep_when_attacked = true
on_info = {+pri_a17_actor_attack_military} walker@ambusher_2, {+pri_a17_mon_ambush_start} walker@ambusher_2, {+pri_a17_actor_find_ambush} walker@ambusher_2
[walker@ambusher_2]:walker@generic
path_walk = mon_amb_2
path_look = mon_amb_2_look
def_state_moving1 = assault
def_state_moving2 = assault
def_state_moving3 = assault
out_restr = pri_a17_tunnel_buttom
;----------------------------------------------------------
[logic@pri_a17_monolith_ambusher_3]
suitable = {=check_npc_name(pri_a17_monolith_ambusher_3)}
prior = 70
active = walker@ambusher_3_start
on_death = death
[walker@ambusher_3_start]:walker@generic
path_walk = ambusher_3_trans
path_look = ambusher_trans_look_2
def_state_standing = trans_1
combat_ignore_cond = true
combat_ignore_keep_when_attacked = true
on_info = {+pri_a17_actor_attack_military} walker@ambusher_3, {+pri_a17_mon_ambush_start} walker@ambusher_3, {+pri_a17_actor_find_ambush} walker@ambusher_3
[walker@ambusher_3]:walker@generic
path_walk = mon_amb_3
path_look = mon_amb_3_look
def_state_moving1 = assault
def_state_moving2 = assault
def_state_moving3 = assault
out_restr = pri_a17_monolith_attack_zone
;----------------------------------------------------------
[logic@pri_a17_monolith_ambusher_4]
suitable = {=check_npc_name(pri_a17_monolith_ambusher_4)}
prior = 70
active = walker@ambusher_4_start
on_death = death
[walker@ambusher_4_start]:walker@generic
path_walk = ambusher_4_trans
path_look = ambusher_trans_look_2
def_state_standing = trans_0
combat_ignore_cond = true
combat_ignore_keep_when_attacked = true
on_info = {+pri_a17_actor_attack_military} walker@ambusher_4, {+pri_a17_mon_ambush_start} walker@ambusher_4, {+pri_a17_actor_find_ambush} walker@ambusher_4
[walker@ambusher_4]:walker@generic
path_walk = mon_amb_4
path_look = mon_amb_4_look
def_state_moving1 = assault
def_state_moving2 = assault
def_state_moving3 = assault
out_restr = pri_a17_monolith_attack_zone
;----------------------------------------------------------
[logic@pri_a17_monolith_ambusher_5]
suitable = {=check_npc_name(pri_a17_monolith_ambusher_5)}
prior = 70
active = walker@ambusher_5_start
on_death = death
[walker@ambusher_5_start]:walker@generic
path_walk = ambusher_5_trans
path_look = ambusher_trans_look_2
def_state_standing = trans_1
combat_ignore_cond = true
combat_ignore_keep_when_attacked = true
on_info = {+pri_a17_actor_attack_military} walker@ambusher_5, {+pri_a17_mon_ambush_start} walker@ambusher_5, {+pri_a17_actor_find_ambush} walker@ambusher_5
[walker@ambusher_5]:walker@generic
path_walk = mon_amb_5
path_look = mon_amb_5_look
def_state_moving1 = assault
def_state_moving2 = assault
def_state_moving3 = assault
out_restr = pri_a17_hosp_build_1
;----------------------------------------------------------
[logic@pri_a17_monolith_ambusher_6]
suitable = {=check_npc_name(pri_a17_monolith_ambusher_6)}
prior = 70
active = walker@ambusher_6
on_death = death
[walker@ambusher_6]:walker@generic
path_walk = mon_amb_6
path_look = mon_amb_6_look
def_state_moving1 = assault
def_state_moving2 = assault
def_state_moving3 = assault
;----------------------------------------------------------
[logic@pri_a17_monolith_ambusher_7]
suitable = {=check_npc_name(pri_a17_monolith_ambusher_7)}
prior = 70
active = walker@ambusher_7
on_death = death
[walker@ambusher_7]:walker@generic
path_walk = mon_amb_7
path_look = mon_amb_7_look
def_state_moving1 = assault
def_state_moving2 = assault
def_state_moving3 = assault
;----------------------------------------------------------
[logic@pri_a17_monolith_ambusher_8]
suitable = {=check_npc_name(pri_a17_monolith_ambusher_8)}
prior = 70
active = walker@ambusher_8
on_death = death
[walker@ambusher_8]:walker@generic
path_walk = mon_amb_8
path_look = mon_amb_8_look
def_state_moving1 = assault
def_state_moving2 = assault
def_state_moving3 = assault
out_restr = pri_a17_hosp_build_1
;----------------------------------------------------------
[logic@pri_a17_monolith_ambusher_9]
suitable = {=check_npc_name(pri_a17_monolith_ambusher_9)}
prior = 70
active = walker@ambusher_9
on_death = death
[walker@ambusher_9]:walker@generic
path_walk = mon_amb_9
path_look = mon_amb_9_look
def_state_moving1 = assault
def_state_moving2 = assault
def_state_moving3 = assault
;----------------------------------------------------------
[logic@pri_a17_monolith_ambusher_10]
suitable = {=check_npc_name(pri_a17_monolith_ambusher_10)}
prior = 70
active = walker@ambusher_10
on_death = death
[walker@ambusher_10]:walker@generic
path_walk = mon_amb_10
path_look = mon_amb_10_look
def_state_moving1 = assault
def_state_moving2 = assault
def_state_moving3 = assault
out_restr = pri_a17_monolith_attack_zone
;----------------------------------------------------------
[logic@pri_a17_monolith_patrol_1]
suitable = {-pri_a17_actor_leaver =check_npc_name(pri_a17_monolith_patrol_1)}
prior = 70
active = walker@patrol_1_start
on_death = death@patrol_1
on_combat = combat@patrol
on_hit = hit@patrol
known_info = known_info
[walker@patrol_1_start]:walker@generic
path_walk = patrol_1_trans
path_look = patrol_trans_look
def_state_standing = trans_1
combat_ignore_cond = true
combat_ignore_keep_when_attacked = true
on_info = {+pri_a17_actor_attack_military} walker@attack_1, {+pri_a17_patrol_go} patrol@patrol_1, {+pri_a17_actor_find_ambush} patrol@patrol_1
[patrol@patrol_1]:walker@generic
path_walk = monolith_patrol_1
formation = back
on_sound = actor|WPN_shoot|10000|0.0| {=dist_to_actor_le(45)} walker@attack_1 %+pri_a17_mon_atk%
on_sound2 = actor|WPN_hit|8|0.0| walker@attack_1 %+pri_a17_mon_atk%
on_sound3 = actor|MST_step|10|0.0| walker@attack_1 %+pri_a17_mon_atk%
on_sound4 = actor|WPN_empty|15|0.0| walker@attack_1 %+pri_a17_mon_atk%
on_sound5 = actor|WPN_reload|15|0.0| walker@attack_1 %+pri_a17_mon_atk%
combat_ignore_cond = {=check_enemy_name(pri_a17_military_sergeant_morozov)} true, {=check_enemy_name(pri_a17_military_captain_tarasov)} true
on_info = {+pri_a17_patrol_go_2} patrol@patrol_1_2, {+pri_a17_mon_ambush_start} walker@attack_1, {+pri_a17_mon_atk} walker@attack_1, {+pri_a17_atk_mon_pat} walker@attack_1
on_signal = path_end | patrol@patrol_1_2
wounded = wounded
gather_items_enabled = false
help_wounded_enabled = false
corpse_detection_enabled = false
[patrol@patrol_1_2]:walker@generic
path_walk = monolith_patrol_2
formation = back
on_sound = actor|WPN_shoot|10000|0.0| {=dist_to_actor_le(45)} walker@attack_1 %+pri_a17_mon_atk%
on_sound2 = actor|WPN_hit|8|0.0| walker@attack_1 %+pri_a17_mon_atk%
on_sound3 = actor|MST_step|10|0.0| walker@attack_1 %+pri_a17_mon_atk%
on_sound4 = actor|WPN_empty|15|0.0| walker@attack_1 %+pri_a17_mon_atk%
on_sound5 = actor|WPN_reload|15|0.0| walker@attack_1 %+pri_a17_mon_atk%
combat_ignore_cond = {=check_enemy_name(pri_a17_military_sergeant_morozov)} true, {=check_enemy_name(pri_a17_military_captain_tarasov)} true
on_info = {+pri_a17_mon_ambush_start} walker@attack_1, {+pri_a17_mon_atk} walker@attack_1, {+pri_a17_atk_mon_pat} walker@attack_1
[walker@attack_1]:walker@generic
path_walk = patrol_1_stay
path_look = patrol_1_look
combat_ignore_cond = {=check_enemy_name(pri_a17_military_sergeant_morozov)} true
[hit@patrol]
on_info = {=hit_by_actor !has_enemy} %+pri_a17_good_shot%
[combat@patrol]
on_info = %+pri_a17_mon_atk%
[death@patrol_1]
on_info = %=inc_counter(pri_a17_monolith_death:1) +pri_a17_mon_atk +pri_a17_mon_pat_1_dead%
[known_info]
pri_a17_mon_ambush_start
;----------------------------------------------------------
[logic@pri_a17_monolith_patrol_2]
suitable = {-pri_a17_actor_leaver =check_npc_name(pri_a17_monolith_patrol_2)}
prior = 70
active = walker@patrol_2_start
on_death = death@patrol_2
on_combat = combat@patrol
on_hit = hit@patrol
known_info = known_info
[walker@patrol_2_start]:walker@generic
path_walk = patrol_2_trans
path_look = patrol_trans_look
def_state_standing = trans_0
combat_ignore_cond = true
combat_ignore_keep_when_attacked = true
on_info = {+pri_a17_actor_attack_military} walker@attack_2, {+pri_a17_patrol_go} patrol@patrol_2, {+pri_a17_actor_find_ambush} patrol@patrol_2
[patrol@patrol_2]:walker@generic
path_walk = monolith_patrol_1
formation = back
on_sound = actor|WPN_shoot|10000|0.0| {=dist_to_actor_le(45)} walker@attack_2 %+pri_a17_mon_atk%
on_sound2 = actor|WPN_hit|8|0.0| walker@attack_2 %+pri_a17_mon_atk%
on_sound3 = actor|MST_step|10|0.0| walker@attack_2 %+pri_a17_mon_atk%
on_sound4 = actor|WPN_empty|15|0.0| walker@attack_2 %+pri_a17_mon_atk%
on_sound5 = actor|WPN_reload|15|0.0| walker@attack_2 %+pri_a17_mon_atk%
combat_ignore_cond = {=check_enemy_name(pri_a17_military_sergeant_morozov)} true, {=check_enemy_name(pri_a17_military_captain_tarasov)} true
on_info = {+pri_a17_patrol_go_2} patrol@patrol_2_2, {+pri_a17_mon_ambush_start} walker@attack_2, {+pri_a17_mon_atk} walker@attack_2, {+pri_a17_atk_mon_pat} walker@attack_2
on_signal = path_end | patrol@patrol_2_2
[patrol@patrol_2_2]:walker@generic
path_walk = monolith_patrol_2
formation = back
on_sound = actor|WPN_shoot|10000|0.0| {=dist_to_actor_le(45)} walker@attack_2 %+pri_a17_mon_atk%
on_sound2 = actor|WPN_hit|8|0.0| walker@attack_2 %+pri_a17_mon_atk%
on_sound3 = actor|MST_step|10|0.0| walker@attack_2 %+pri_a17_mon_atk%
on_sound4 = actor|WPN_empty|15|0.0| walker@attack_2 %+pri_a17_mon_atk%
on_sound5 = actor|WPN_reload|15|0.0| walker@attack_2 %+pri_a17_mon_atk%
combat_ignore_cond = {=check_enemy_name(pri_a17_military_sergeant_morozov)} true, {=check_enemy_name(pri_a17_military_captain_tarasov)} true
on_info = {+pri_a17_mon_ambush_start} walker@attack_2, {+pri_a17_mon_atk} walker@attack_2, {+pri_a17_atk_mon_pat} walker@attack_2
[walker@attack_2]:walker@generic
path_walk = patrol_2_stay
path_look = patrol_2_look
combat_ignore_cond = {=check_enemy_name(pri_a17_military_sergeant_morozov)} true
[death@patrol_2]
on_info = %=inc_counter(pri_a17_monolith_death:1) +pri_a17_mon_atk +pri_a17_mon_pat_2_dead%
;----------------------------------------------------------
[logic@pri_a17_monolith_patrol_lead]
suitable = {-pri_a17_actor_leaver =check_npc_name(pri_a17_monolith_patrol_lead)}
prior = 70
active = walker@patrol_lead_start
on_death = death@patrol_3
on_combat = combat@patrol
on_hit = hit@patrol
known_info = known_info
[walker@patrol_lead_start]:walker@generic
path_walk = patrol_3_trans
path_look = patrol_trans_look
def_state_standing = trans_1
combat_ignore_cond = true
combat_ignore_keep_when_attacked = true
on_info = {+pri_a17_actor_attack_military} walker@attack_lead, {+pri_a17_patrol_go} patrol@patrol_lead, {+pri_a17_actor_find_ambush} patrol@patrol_lead
[patrol@patrol_lead]:walker@generic
path_walk = monolith_patrol_1
formation = back
commander = true
on_sound = actor|WPN_shoot|10000|0.0| {=dist_to_actor_le(45)} walker@attack_lead %+pri_a17_mon_atk%
on_sound2 = actor|WPN_hit|8|0.0| walker@attack_lead %+pri_a17_mon_atk%
on_sound3 = actor|MST_step|10|0.0| walker@attack_lead %+pri_a17_mon_atk%
on_sound4 = actor|WPN_empty|15|0.0| walker@attack_lead %+pri_a17_mon_atk%
on_sound5 = actor|WPN_reload|15|0.0| walker@attack_lead %+pri_a17_mon_atk%
on_info = {=npc_in_zone(pri_a17_mon_pat_1)} %+pri_a17_mon_pat_1 +pri_a17_mon_pat_sound1 %
on_info2 = {+pri_a17_mon_ambush_start} walker@attack_lead, {+pri_a17_mon_atk} walker@attack_lead, {+pri_a17_atk_mon_pat} walker@attack_lead
on_signal = path_end | patrol@patrol_lead_2 %+pri_a17_patrol_go_2%
combat_ignore_cond = {=check_enemy_name(pri_a17_military_sergeant_morozov)} true, {=check_enemy_name(pri_a17_military_captain_tarasov)} true
[patrol@patrol_lead_2]:walker@generic
path_walk = monolith_patrol_2
formation = back
commander = true
on_sound = actor|WPN_shoot|10000|0.0| {=dist_to_actor_le(45)} walker@attack_lead %+pri_a17_mon_atk%
on_sound2 = actor|WPN_hit|8|0.0| walker@attack_lead %+pri_a17_mon_atk%
on_sound3 = actor|MST_step|10|0.0| walker@attack_lead %+pri_a17_mon_atk%
on_sound4 = actor|WPN_empty|15|0.0| walker@attack_lead %+pri_a17_mon_atk%
on_sound5 = actor|WPN_reload|15|0.0| walker@attack_lead %+pri_a17_mon_atk%
on_info = {=npc_in_zone(pri_a17_mon_pat_1)} %+pri_a17_mon_pat_1 +pri_a17_mon_pat_sound1%
on_info2 = {=npc_in_zone(pri_a17_mon_pat_2)} %+pri_a17_mon_pat_2 +pri_a17_mon_pat_sound2%
on_info3 = {=npc_in_zone(pri_a17_mon_pat_3)} %+pri_a17_mon_pat_3 +pri_a17_mon_pat_sound3%
on_info4 = {=npc_in_zone(pri_a17_mon_pat_4)} %+pri_a17_mon_pat_4 +pri_a17_mon_pat_sound4%
on_info5 = {=npc_in_zone(pri_a17_mon_pat_5)} %+pri_a17_atk_mon_pat +pri_a17_mon_pat_sound5%
on_info6 = {+pri_a17_mon_atk} walker@attack_lead, {+pri_a17_atk_mon_pat} walker@attack_lead
combat_ignore_cond = {=check_enemy_name(pri_a17_military_sergeant_morozov)} true, {=check_enemy_name(pri_a17_military_captain_tarasov)} true
on_info7 = {+pri_a17_mon_ambush_start} walker@attack_lead, {+pri_a17_mon_atk} walker@attack_lead, {+pri_a17_atk_mon_pat} walker@attack_lead
[walker@attack_lead]:walker@generic
path_walk = patrol_3_stay
path_look = patrol_3_look
combat_ignore_cond = {=check_enemy_name(pri_a17_military_sergeant_morozov)} true
[death@patrol_3]
on_info = %=inc_counter(pri_a17_monolith_death:1) +pri_a17_mon_atk +pri_a17_mon_pat_lead_dead%
;----------------------------------------------------------
[logic@pri_a17_monolith_patrol_1_dead]
suitable = {+pri_a17_actor_leaver =check_npc_name(pri_a17_monolith_patrol_1)}
prior = 70
active = walker@patrol_1_dead
on_combat = combat
post_combat_time = 0, 0
known_info = known_info
[walker@patrol_1_dead]:walker@generic
path_walk = patrol_1_dead
on_info = walker@patrol_1_dead_2 %=teleport_npc(pri_a17_patrol_1_dead)%
meet = no_meet
[walker@patrol_1_dead_2]:walker@generic
path_walk = patrol_1_dead
on_game_timer = 20 | walker@patrol_1_dead_3 %=hit_npc(self:pri_a17_taras_chek_sit:bip01_head:1:23)%
[walker@patrol_1_dead_3]:walker@generic
path_walk = patrol_1_dead
on_game_timer = 5 | nil %=kill_npc%
;----------------------------------------------------------
[logic@pri_a17_monolith_patrol_2_dead]
suitable = {+pri_a17_actor_leaver =check_npc_name(pri_a17_monolith_patrol_2)}
prior = 70
active = walker@patrol_2_dead
on_combat = combat
post_combat_time = 0, 0
known_info = known_info
[walker@patrol_2_dead]:walker@generic
path_walk = patrol_2_dead
on_info = walker@patrol_2_dead_2 %=teleport_npc(pri_a17_patrol_2_dead)%
meet = no_meet
[walker@patrol_2_dead_2]:walker@generic
path_walk = patrol_2_dead
on_game_timer = 20 | walker@patrol_2_dead_3 %=hit_npc(self:pri_a17_pod_pat_look:bip01_head:1:43)%
[walker@patrol_2_dead_3]:walker@generic
path_walk = patrol_2_dead
on_game_timer = 5 | nil %=kill_npc%
;----------------------------------------------------------
[logic@pri_a17_monolith_patrol_lead_dead]
suitable = {+pri_a17_actor_leaver =check_npc_name(pri_a17_monolith_patrol_lead)}
prior = 70
active = walker@patrol_3_dead
on_combat = combat
post_combat_time = 0, 0
known_info = known_info
[walker@patrol_3_dead]:walker@generic
path_walk = patrol_3_dead
on_info = walker@patrol_3_dead_2 %=teleport_npc(pri_a17_patrol_3_dead)%
meet = no_meet
[walker@patrol_3_dead_2]:walker@generic
path_walk = patrol_3_dead
on_game_timer = 20 | walker@patrol_3_dead_3 %=hit_npc(self:pri_a17_ice_takin_pos:bip01_head:1:37)%
[walker@patrol_3_dead_3]:walker@generic
path_walk = patrol_3_dead
on_game_timer = 5 | nil %=kill_npc%
;----------------------------------------------------------
[logic@pri_a17_monolith_sniper_1]
suitable = {=check_npc_name(pri_a17_monolith_sniper_1)}
prior = 70
active = walker@take_pos_1_start
on_death = death
[walker@take_pos_1_start]:walker@generic
path_walk = sniper_1_trans
path_look = ambusher_trans_look_1
def_state_standing = trans_1
combat_ignore_cond = true
combat_ignore_keep_when_attacked = true
on_info = {+pri_a17_actor_attack_military} walker@take_pos_1, {+pri_a17_mon_ambush_start} walker@take_pos_1, {+pri_a17_actor_find_ambush} walker@take_pos_1
[walker@take_pos_1]:walker@generic
path_walk = mon_sni_1
path_look = mon_snilook_1
def_state_moving1 = assault
on_signal = ready | camper@sniper_1
combat_ignore_cond = {=fighting_dist_ge (20)} true
[camper@sniper_1]:walker@generic
path_walk = mon_sni_1
path_look = mon_snilook_1
def_state_moving1 = assault
def_state_moving2 = assault
def_state_moving3 = assault
def_state_campering = threat
def_state_campering_fire = threat_fire
no_retreat = true
;----------------------------------------------------------
[logic@pri_a17_monolith_sniper_2]
suitable = {=check_npc_name(pri_a17_monolith_sniper_2)}
prior = 70
active = walker@take_pos_2_start
on_death = death
[walker@take_pos_2_start]:walker@generic
path_walk = sniper_2_trans
path_look = ambusher_trans_look_1
def_state_standing = trans_0
combat_ignore_cond = true
combat_ignore_keep_when_attacked = true
on_info = {+pri_a17_actor_attack_military} walker@take_pos_2, {+pri_a17_mon_ambush_start} walker@take_pos_2, {+pri_a17_actor_find_ambush} walker@take_pos_2
[walker@take_pos_2]:walker@generic
path_walk = mon_sni_2
path_look = mon_snilook_2
def_state_moving1 = assault
on_signal = ready | camper@sniper_2
combat_ignore_cond = {=fighting_dist_ge (20)} true
[camper@sniper_2]:walker@generic
path_walk = mon_sni_2
path_look = mon_snilook_2
def_state_moving1 = assault
def_state_moving2 = assault
def_state_moving3 = assault
def_state_standing = hide
no_retreat = true
;----------------------------------------------------------
[logic@pri_a17_monolith_sniper_3]
suitable = {=check_npc_name(pri_a17_monolith_sniper_3)}
prior = 70
active = walker@take_pos_3
on_death = death
[walker@take_pos_3]:walker@generic
path_walk = mon_sni_3
path_look = mon_snilook_3
def_state_moving1 = assault
on_signal = ready | camper@sniper_3
combat_ignore_cond = {=fighting_dist_ge (20)} true
[camper@sniper_3]:walker@generic
path_walk = mon_sni_3
path_look = mon_snilook_3
def_state_moving1 = assault
def_state_moving2 = assault
def_state_moving3 = assault
def_state_campering = threat
def_state_campering_fire = threat_fire
no_retreat = true
;----------------------------------------------------------
[logic@pri_a17_monolith_sniper_4]
suitable = {=check_npc_name(pri_a17_monolith_sniper_4)}
prior = 70
active = walker@take_pos_4
on_death = death
[walker@take_pos_4]:walker@generic
path_walk = mon_sni_4
path_look = mon_snilook_4
def_state_moving1 = assault
on_signal = ready | camper@sniper_4
combat_ignore_cond = {=fighting_dist_ge (20)} true
[camper@sniper_4]:walker@generic
path_walk = mon_sni_4
path_look = mon_snilook_4
def_state_moving1 = assault
def_state_moving2 = assault
def_state_moving3 = assault
def_state_standing = hide
no_retreat = true
;-------------------------------------------------------------
[wounded]
hp_state = 0|wounded_heavy@help_heavy
hp_state_see = 0|wounded_heavy@help_heavy
hp_victim = 0|nil
hp_fight = 0|false
hp_cover = 0|false