@ Herder:
(1, 0, 0, [],
[
(set_fixed_point_multiplier, 100),
(try_for_agents, ":agent"),
(agent_is_alive, ":agent"),
(agent_is_human, ":agent"),
[only certain troops]
(agent_get_position, pos1, ":agent"),
(position_get_x, 100, ":pos_x"),
(position_get_y, 100, ":pos_y"),
(agent_get_slot, ":px", ":agent", slot_agent_last_pos_x),
(agent_get_slot, ":py", ":agent", slot_agent_last_pos_y),
(try_begin),
(this_or_next|neq, ":pos_x", ":px"),
(neq, ":pos_y", ":py"),
[use agent_set_animation and agent_play_sound here]
(try_end),
(agent_set_slot, ":agent", slot_agent_last_pos_x, ":pos_x"),
(agent_set_slot, ":agent", slot_agent_last_pos_y, ":pos_y"),
(try_end),
]),
[
(set_fixed_point_multiplier, 100),
(try_for_agents, ":agent"),
(agent_is_alive, ":agent"),
(agent_is_human, ":agent"),
[only certain troops]
(agent_get_position, pos1, ":agent"),
(position_get_x, 100, ":pos_x"),
(position_get_y, 100, ":pos_y"),
(agent_get_slot, ":px", ":agent", slot_agent_last_pos_x),
(agent_get_slot, ":py", ":agent", slot_agent_last_pos_y),
(try_begin),
(this_or_next|neq, ":pos_x", ":px"),
(neq, ":pos_y", ":py"),
[use agent_set_animation and agent_play_sound here]
(try_end),
(agent_set_slot, ":agent", slot_agent_last_pos_x, ":pos_x"),
(agent_set_slot, ":agent", slot_agent_last_pos_y, ":pos_y"),
(try_end),
]),