# script_party_set_simple_ai
# Input: arg1 = party_no, arg2 = new_ai_state, arg3 = action_object (if necessary)
# Output: given action
#Party react to simple orders
("party_set_simple_ai",
[
(store_script_param, ":party_no", 1), #who?
(store_script_param, ":new_ai_state", 2), # what spai eg. spai_accompanying_army, spai_screening_army
(store_script_param, ":new_ai_object", 3), #what? enemy party, or castle
(store_faction_of_party, ":faction_no", ":party_no"),
#accompany or screen
(try_begin),
(this_or_next|eq, ":new_ai_state", spai_accompanying_army),
(eq, ":new_ai_state", spai_screening_army),
(party_set_ai_behavior, ":party_no", ai_bhvr_escort_party),
(party_set_ai_object, ":party_no", ":new_ai_object"),
(party_set_flags, ":party_no", pf_default_behavior, 0),
(try_begin),
(eq, ":new_ai_state", spai_screening_army),
(assign, ":aggressiveness", 12),
(assign, ":courage", 15),
(assign, ":initiative", 80),
(assign, ":helpfulness", 190),
(else_try),
(assign, ":aggressiveness",
,
(assign, ":courage", 9),
(assign, ":initiative", 10),
(assign, ":helpfulness", 190),
(try_end),
(try_end),
#raid around village
(try_begin),
(eq, ":new_ai_state", spai_raiding_around_center),
(party_get_position, pos1, ":new_ai_object"),
(map_get_random_position_around_position, pos2, pos1, 1),
(party_set_ai_behavior, ":party_no", ai_bhvr_patrol_location),
(party_set_ai_patrol_radius, ":party_no", 10),
(party_set_ai_target_position, ":party_no", pos2),
(party_set_ai_object, ":party_no", ":new_ai_object"),
(party_set_flags, ":party_no", pf_default_behavior, 0),
(party_set_slot, ":party_no", slot_party_follow_me, 1),
(try_begin),
(assign, ":aggressiveness", 13),
(assign, ":courage", 13),
(assign, ":initiative", 80),
(assign, ":helpfulness", 160),
(try_end),
(try_end),
#attack enemy party
(try_begin),
(eq, ":new_ai_state", spai_engaging_army),
(party_set_ai_behavior, ":party_no", ai_bhvr_attack_party),
(party_set_ai_object, ":party_no", ":new_ai_object"),
(party_set_flags, ":party_no", pf_default_behavior, 0),
(try_begin),
(assign, ":aggressiveness", 14),
(assign, ":courage", 14),
(assign, ":initiative", 80),
(assign, ":helpfulness", 120),
(try_end),
(try_end),
(try_begin), #scouting - try rather to scout not engage
(eq, ":new_ai_state", spai_scouting_around_center), #scout at - we need differ somehow from patrol...!
#but:
#(assign, ":new_ai_state", spai_patrolling_around_center),
(party_get_position, pos1, ":new_ai_object"),
(map_get_random_position_around_position, pos2, pos1, 1),
(party_set_ai_behavior, ":party_no", ai_bhvr_patrol_location),
(party_set_ai_target_position, ":party_no", pos2),
(party_set_ai_object, ":party_no", ":new_ai_object"),
(try_begin),
(faction_slot_eq, ":faction_no", slot_faction_ai_state, sfai_attacking_enemies_around_center),
(party_set_ai_patrol_radius, ":party_no", 3), #line 100
(else_try),
(party_set_ai_patrol_radius, ":party_no",
, #line 100
(try_end),
(try_begin),
(assign, ":aggressiveness", 5),
(assign, ":courage", 5),
(assign, ":initiative", 60),
(assign, ":helpfulness", 60),
(try_end),
(try_end),
#patrol around center
(try_begin),
(eq, ":new_ai_state", spai_patrolling_around_center),
(party_get_position, pos1, ":new_ai_object"),
(map_get_random_position_around_position, pos2, pos1, 1),
(party_set_ai_behavior, ":party_no", ai_bhvr_patrol_location),
(party_set_ai_target_position, ":party_no", pos2),
(party_set_ai_object, ":party_no", ":new_ai_object"),
(try_begin),
(faction_slot_eq, ":faction_no", slot_faction_ai_state, sfai_attacking_enemies_around_center),
(party_set_ai_patrol_radius, ":party_no", 1), #line 100
(assign, ":aggressiveness", 12),
(assign, ":courage", 12),
(assign, ":initiative", 80),
(assign, ":helpfulness", 260),
(else_try),
(party_set_ai_patrol_radius, ":party_no", 5), #line 100
(assign, ":aggressiveness",
,
(assign, ":courage", 9),
(assign, ":initiative", 80),
(assign, ":helpfulness", 160),
(try_end),
(party_set_flags, ":party_no", pf_default_behavior, 0),
(party_set_slot, ":party_no", slot_party_follow_me, 1),
(party_set_slot, ":party_no", slot_party_ai_substate, 0),
(try_end),
#defend center
(try_begin),
(eq, ":new_ai_state", spai_retreating_to_center),
(party_get_position, pos1, ":new_ai_object"),
(map_get_random_position_around_position, pos2, pos1, 1),
(party_set_ai_behavior, ":party_no", ai_bhvr_patrol_location),
(party_set_ai_target_position, ":party_no", pos2),
(party_set_ai_object, ":party_no", ":new_ai_object"),
(try_begin),
(faction_slot_eq, ":faction_no", slot_faction_ai_state, sfai_attacking_enemies_around_center),
(party_set_ai_patrol_radius, ":party_no", 1), #line 100
(assign, ":aggressiveness", 9),
(assign, ":courage", 14),
(assign, ":initiative", 80),
(assign, ":helpfulness", 100),
(else_try),
(party_set_ai_patrol_radius, ":party_no", 1), #line 100
(assign, ":aggressiveness",
,
(assign, ":courage", 14),
(assign, ":initiative", 80),
(assign, ":helpfulness", 80),
(try_end),
(party_set_flags, ":party_no", pf_default_behavior, 0),
(party_set_slot, ":party_no", slot_party_follow_me, 1),
(party_set_slot, ":party_no", slot_party_ai_substate, 0),
(try_end),
(party_set_aggressiveness, ":party_no", ":aggressiveness"),
(party_set_courage, ":party_no", ":courage"),
(party_set_ai_initiative, ":party_no", ":initiative"),
(party_set_helpfulness, ":party_no", ":helpfulness"),
]),