Yandros
25th May 11, 12:15 PM
Hello!
I would like to use the Last Stand "confuse" power in MP, but, of course, copying last stand ability code hasn't worked (it didn't change anything, except for the red "cross" that appears on its head, showing it should be a confused squad :( ) :
start_target_actions: {
| validation_action: {
| | $REF: "actions\ability\validation_action";
| | targets: {
| | | binary_expr: {
| | | | $REF: "types\targets\binary_expr";
| | | | operation: "and";
| | | | targets: {
| | | | | enemy: {
| | | | | | $REF: "types\targets\enemy";
| | | | | };
| | | | | is_squad: {
| | | | | | $REF: "types\targets\is_squad";
| | | | | };
| | | | };
| | | };
| | };
| | subactions: {
| | | fire_and_forget_action: {
| | | | $REF: "actions\ability\fire_and_forget_action";
| | | | sub_actions: {
| | | | | timed_action: {
| | | | | | $REF: "actions\ability\timed_action";
| | | | | | duration: 10.1f;
| | | | | | subactions: {
| | | | | | | animator_set_action: {
| | | | | | | | $REF: "actions\ability\animator_set_action";
| | | | | | | | action_name: "abilities\eldar\confuse";
| | | | | | | | fire_and_forget: false;
| | | | | | | | delay: 0f;
| | | | | | | };
| | | | | | | change_ownership_action: {
| | | | | | | | $REF: "actions\ability\change_ownership_action";
| | | | | | | | duration: 10f;
| | | | | | | | change_type: "jerk";
| | | | | | | | change_team_color: true;
| | | | | | | };
| | | | | | };
| | | | | };
| | | | | delay: {
| | | | | | $REF: "actions\ability\delay";
| | | | | | delay: 0.1f;
| | | | | | delayed_actions: {
| | | | | | | scar_function_call: {
| | | | | | | | $REF: "actions\ability\scar_function_call";
| | | | | | | | function_name: "";
| | | | | | | | function_name_params: "Survive_ConfuseTarget";
| | | | | | | };
| | | | | | };
| | | | | | display_progress_bar: false;
| | | | | };
| | | | };
| | | | validate: false;
| | | };
| | };
| | validation_on_self: false;
| | only_initial_target_check: false;
| };
};
It will most probably be due to the fact there is only one human team in last Stand, and one AI enemy team, and in MP, there are lots of different teams, with human as well as with bots.
Then I thought to adapt dreadnought's berseker ability (it becomes stronger, but attacks any nearby unit, no matter if it is a friendly unit or if it isn't)
==> Seems OK, for my purpose: creating an "Accept the Chaos Gods Power!" (or "Do you want more power?") ability, that would make the targetted unit become stronger but uncontrollable, so that it will attack all nearby units.
The problem is that when Kyras (my hero that should use the ability) uses my adapted "Confuse Power", the "mad" unit is Kyras and not the targetted unit.
Here is the code:
action_list: {
| start_self_actions: {
| };
| start_target_actions: {
| | validation_action: {
| | | $REF: "actions\ability\validation_action";
| | | targets: {
| | | | is_squad: {
| | | | | $REF: "types\targets\is_squad";
| | | | };
| | | };
| | | subactions: {
| | | | fire_and_forget_action: {
| | | | | $REF: "actions\ability\fire_and_forget_action";
| | | | | sub_actions: {
| | | | | | timed_action: {
| | | | | | | $REF: "actions\ability\timed_action";
| | | | | | | duration: 10.1f;
| | | | | | | subactions: {
| | | | | | | | animator_set_action: {
| | | | | | | | | $REF: "actions\ability\animator_set_action";
| | | | | | | | | action_name: "abilities\eldar\confuse";
| | | | | | | | | fire_and_forget: false;
| | | | | | | | | delay: 0f;
| | | | | | | | };
| | | | | | | | change_ownership_action: {
| | | | | | | | | $REF: "actions\ability\change_ownership_action";
| | | | | | | | | duration: 10f;
| | | | | | | | | change_type: "jerk";
| | | | | | | | | change_team_color: true;
| | | | | | | | };
| | | | | | | | animator_set_state: {
| | | | | | | | | $REF: "actions\ability\animator_set_state";
| | | | | | | | | do_action_state_name: "on";
| | | | | | | | | state_machine_name: "blood_frenzy";
| | | | | | | | | undo_action_state_name: "off";
| | | | | | | | };
| | | | | | | | apply_modifiers_action: {
| | | | | | | | | $REF: "actions\ability\apply_modifiers_action";
| | | | | | | | | duration: 0f;
| | | | | | | | | permanent: false;
| | | | | | | | | modifiers: {
| | | | | | | | | | received_damage_modifier: {
| | | | | | | | | | | $REF: "modifiers\entity_modifiers\received_damage_modifier";
| | | | | | | | | | | application_type: "apply_to_entity";
| | | | | | | | | | | exclusive: false;
| | | | | | | | | | | target_type_name: "";
| | | | | | | | | | | usage_type: "multiplication";
| | | | | | | | | | | value: 0.5f;
| | | | | | | | | | | exclusive_type: "tp_modifier";
| | | | | | | | | | | show_modifier_decorator: true;
| | | | | | | | | | };
| | | | | | | | | | damage_weapon_modifier: {
| | | | | | | | | | | $REF: "modifiers\weapon_modifiers\damage_weapon_modifier";
| | | | | | | | | | | application_type: "apply_to_weapon";
| | | | | | | | | | | exclusive: false;
| | | | | | | | | | | probability_of_applying: 1f;
| | | | | | | | | | | target_type_name: "hardpoint_01";
| | | | | | | | | | | usage_type: "multiplication";
| | | | | | | | | | | value: 1.3f;
| | | | | | | | | | | exclusive_type: "tp_modifier";
| | | | | | | | | | | show_modifier_decorator: true;
| | | | | | | | | | };
| | | | | | | | | | speed_maximum_modifier: {
| | | | | | | | | | | $REF: "modifiers\entity_modifiers\speed_maximum_modifier";
| | | | | | | | | | | application_type: "apply_to_entity";
| | | | | | | | | | | exclusive: false;
| | | | | | | | | | | target_type_name: "";
| | | | | | | | | | | usage_type: "addition";
| | | | | | | | | | | value: 2.5f;
| | | | | | | | | | | exclusive_type: "tp_modifier";
| | | | | | | | | | | show_modifier_decorator: true;
| | | | | | | | | | };
| | | | | | | | | | cooldown_weapon_modifier: {
| | | | | | | | | | | $REF: "modifiers\weapon_modifiers\cooldown_weapon_modifier";
| | | | | | | | | | | application_type: "apply_to_weapon";
| | | | | | | | | | | exclusive: false;
| | | | | | | | | | | target_type_name: "";
| | | | | | | | | | | usage_type: "multiplication";
| | | | | | | | | | | value: 0.5f;
| | | | | | | | | | | exclusive_type: "tp_modifier";
| | | | | | | | | | | show_modifier_decorator: true;
| | | | | | | | | | };
| | | | | | | | | | reload_weapon_modifier: {
| | | | | | | | | | | $REF: "modifiers\weapon_modifiers\reload_weapon_modifier";
| | | | | | | | | | | application_type: "apply_to_weapon";
| | | | | | | | | | | exclusive: false;
| | | | | | | | | | | target_type_name: "";
| | | | | | | | | | | usage_type: "multiplication";
| | | | | | | | | | | value: 0.6f;
| | | | | | | | | | | exclusive_type: "tp_modifier";
| | | | | | | | | | | show_modifier_decorator: true;
| | | | | | | | | | };
| | | | | | | | | | camouflage_enable_modifier: {
| | | | | | | | | | | $REF: "modifiers\entity_modifiers\camouflage_enable_modifier";
| | | | | | | | | | | application_type: "apply_to_entity";
| | | | | | | | | | | exclusive: true;
| | | | | | | | | | | target_type_name: "";
| | | | | | | | | | | usage_type: "enable";
| | | | | | | | | | | value: -1f;
| | | | | | | | | | | exclusive_type: "tp_modifier";
| | | | | | | | | | | show_modifier_decorator: true;
| | | | | | | | | | };
| | | | | | | | | };
| | | | | | | | };
| | | | | | | | go_beserk_action: {
| | | | | | | | | $REF: "actions\ability\go_beserk_action";
| | | | | | | | | duration: 0f;
| | | | | | | | };
| | | | | | | | repeat_action: {
| | | | | | | | | $REF: "actions\ability\repeat_action";
| | | | | | | | | sub_actions: {
| | | | | | | | | | action_environment: {
| | | | | | | | | | | $REF: "actions\functional\action_environment";
| | | | | | | | | | | context: {
| | | | | | | | | | | | key_value: {
| | | | | | | | | | | | | $REF: "types\actions\key_value";
| | | | | | | | | | | | | value: {
| | | | | | | | | | | | | | $REF: "types\actions\value";
| | | | | | | | | | | | | | value: {
| | | | | | | | | | | | | | | $REF: "types\actions\value_expressions\targets\collect_targets";
| | | | | | | | | | | | | | | area_info: {
| | | | | | | | | | | | | | | | area_type: "Circle";
| | | | | | | | | | | | | | | | radius: {
| | | | | | | | | | | | | | | | | $REF: "types\actions\value_constants\float";
| | | | | | | | | | | | | | | | | constant: 50f;
| | | | | | | | | | | | | | | | };
| | | | | | | | | | | | | | | | radius_inner: {
| | | | | | | | | | | | | | | | | $REF: "types\actions\value_constants\float";
| | | | | | | | | | | | | | | | | constant: 0f;
| | | | | | | | | | | | | | | | };
| | | | | | | | | | | | | | | | line_length: {
| | | | | | | | | | | | | | | | | $REF: "types\actions\value_constants\float";
| | | | | | | | | | | | | | | | | constant: 0f;
| | | | | | | | | | | | | | | | };
| | | | | | | | | | | | | | | | angle_left: {
| | | | | | | | | | | | | | | | | $REF: "types\actions\value_constants\float";
| | | | | | | | | | | | | | | | | constant: 0f;
| | | | | | | | | | | | | | | | };
| | | | | | | | | | | | | | | | angle_right: {
| | | | | | | | | | | | | | | | | $REF: "types\actions\value_constants\float";
| | | | | | | | | | | | | | | | | constant: 0f;
| | | | | | | | | | | | | | | | };
| | | | | | | | | | | | | | | };
| | | | | | | | | | | | | | | executer: {
| | | | | | | | | | | | | | | | $REF: "types\actions\key";
| | | | | | | | | | | | | | | | name: "_executer";
| | | | | | | | | | | | | | | };
| | | | | | | | | | | | | | | filter: {
| | | | | | | | | | | | | | | | $REF: "types\filters\collect_targets_units_info";
| | | | | | | | | | | | | | | | entity_type_to_choose: "";
| | | | | | | | | | | | | | | | exclude_self: true;
| | | | | | | | | | | | | | | | prefer_squads: false;
| | | | | | | | | | | | | | | | target_info: {
| | | | | | | | | | | | | | | | | $REF: "types\targets\melee_target";
| | | | | | | | | | | | | | | | };
| | | | | | | | | | | | | | | };
| | | | | | | | | | | | | | };
| | | | | | | | | | | | | };
| | | | | | | | | | | | | key: {
| | | | | | | | | | | | | | $REF: "types\actions\key";
| | | | | | | | | | | | | | name: "possible_targets";
| | | | | | | | | | | | | };
| | | | | | | | | | | | };
| | | | | | | | | | | | key_value: {
| | | | | | | | | | | | | $REF: "types\actions\key_value";
| | | | | | | | | | | | | value: {
| | | | | | | | | | | | | | $REF: "types\actions\value";
| | | | | | | | | | | | | | value: {
| | | | | | | | | | | | | | | $REF: "types\actions\value_expressions\targets\select_target";
| | | | | | | | | | | | | | | targets: {
| | | | | | | | | | | | | | | | $REF: "types\actions\key";
| | | | | | | | | | | | | | | | name: "possible_targets";
| | | | | | | | | | | | | | | };
| | | | | | | | | | | | | | | priorities: {
| | | | | | | | | | | | | | | | priority_type: {
| | | | | | | | | | | | | | | | | weight: -1f;
| | | | | | | | | | | | | | | | | priority: {
| | | | | | | | | | | | | | | | | | $REF: "types\priorities\distance";
| | | | | | | | | | | | | | | | | | position_target: {
| | | | | | | | | | | | | | | | | | | $REF: "types\actions\key";
| | | | | | | | | | | | | | | | | | | name: "_executer";
| | | | | | | | | | | | | | | | | | };
| | | | | | | | | | | | | | | | | };
| | | | | | | | | | | | | | | | };
| | | | | | | | | | | | | | | };
| | | | | | | | | | | | | | };
| | | | | | | | | | | | | };
| | | | | | | | | | | | | key: {
| | | | | | | | | | | | | | $REF: "types\actions\key";
| | | | | | | | | | | | | | name: "closest_target";
| | | | | | | | | | | | | };
| | | | | | | | | | | | };
| | | | | | | | | | | };
| | | | | | | | | | | operations: {
| | | | | | | | | | | | force_target: {
| | | | | | | | | | | | | $REF: "actions\functional\actions\tactical\force_target";
| | | | | | | | | | | | | executer: {
| | | | | | | | | | | | | | $REF: "types\actions\key";
| | | | | | | | | | | | | | name: "_executer";
| | | | | | | | | | | | | };
| | | | | | | | | | | | | target: {
| | | | | | | | | | | | | | $REF: "types\actions\key";
| | | | | | | | | | | | | | name: "closest_target";
| | | | | | | | | | | | | };
| | | | | | | | | | | | };
| | | | | | | | | | | | debug_print: {
| | | | | | | | | | | | | $REF: "actions\functional\actions\debugging\debug_print";
| | | | | | | | | | | | | description: "**ACTION DEBUG**";
| | | | | | | | | | | | | keys: {
| | | | | | | | | | | | | };
| | | | | | | | | | | | };
| | | | | | | | | | | };
| | | | | | | | | | | subactions: {
| | | | | | | | | | | };
| | | | | | | | | | | debug: {
| | | | | | | | | | | | documentation: "Selects the closest 'enemy' target, and force-targets it.";
| | | | | | | | | | | | enable_debug_traces: false;
| | | | | | | | | | | };
| | | | | | | | | | };
| | | | | | | | | };
| | | | | | | | | validate: true;
| | | | | | | | | frequency: 5f;
| | | | | | | | | number_of_repeats: 0;
| | | | | | | | };
| | | | | | | | special_attack_action: {
| | | | | | | | | $REF: "actions\ability\special_attack_action";
| | | | | | | | | override_chance: 0.25f;
| | | | | | | | };
| | | | | | | };
| | | | | | };
| | | | | | delay: {
| | | | | | | $REF: "actions\ability\delay";
| | | | | | | delay: 0.1f;
| | | | | | | delayed_actions: {
| | | | | | | };
| | | | | | | display_progress_bar: false;
| | | | | | };
| | | | | };
| | | | | validate: false;
| | | | };
| | | };
| | | validation_on_self: false;
| | | only_initial_target_check: false;
| | };
| };
| end_self_actions: {
| };
| end_target_actions: {
| | action_environment: {
| | | $REF: "actions\functional\action_environment";
| | | context: {
| | | | key_value: {
| | | | | $REF: "types\actions\key_value";
| | | | | value: {
| | | | | | $REF: "types\actions\value";
| | | | | | value: {
| | | | | | | $REF: "types\actions\value_expressions\targets\new_reset_target";
| | | | | | };
| | | | | };
| | | | | key: {
| | | | | | $REF: "types\actions\key";
| | | | | | name: "reset_target";
| | | | | };
| | | | };
| | | };
| | | operations: {
| | | | force_target: {
| | | | | $REF: "actions\functional\actions\tactical\force_target";
| | | | | executer: {
| | | | | | $REF: "types\actions\key";
| | | | | | name: "_executer";
| | | | | };
| | | | | target: {
| | | | | | $REF: "types\actions\key";
| | | | | | name: "reset_target";
| | | | | };
| | | | };
| | | };
| | | subactions: {
| | | };
| | | debug: {
| | | | documentation: "";
| | | | enable_debug_traces: false;
| | | };
| | };
| | special_attack_action: {
| | | $REF: "actions\ability\special_attack_action";
| | | override_chance: -1f;
| | };
| };
};
It works. However, it doesn't work on the targeted unit, but on Kyras instead.
Any ideas?
Thank you very much.
I would like to use the Last Stand "confuse" power in MP, but, of course, copying last stand ability code hasn't worked (it didn't change anything, except for the red "cross" that appears on its head, showing it should be a confused squad :( ) :
start_target_actions: {
| validation_action: {
| | $REF: "actions\ability\validation_action";
| | targets: {
| | | binary_expr: {
| | | | $REF: "types\targets\binary_expr";
| | | | operation: "and";
| | | | targets: {
| | | | | enemy: {
| | | | | | $REF: "types\targets\enemy";
| | | | | };
| | | | | is_squad: {
| | | | | | $REF: "types\targets\is_squad";
| | | | | };
| | | | };
| | | };
| | };
| | subactions: {
| | | fire_and_forget_action: {
| | | | $REF: "actions\ability\fire_and_forget_action";
| | | | sub_actions: {
| | | | | timed_action: {
| | | | | | $REF: "actions\ability\timed_action";
| | | | | | duration: 10.1f;
| | | | | | subactions: {
| | | | | | | animator_set_action: {
| | | | | | | | $REF: "actions\ability\animator_set_action";
| | | | | | | | action_name: "abilities\eldar\confuse";
| | | | | | | | fire_and_forget: false;
| | | | | | | | delay: 0f;
| | | | | | | };
| | | | | | | change_ownership_action: {
| | | | | | | | $REF: "actions\ability\change_ownership_action";
| | | | | | | | duration: 10f;
| | | | | | | | change_type: "jerk";
| | | | | | | | change_team_color: true;
| | | | | | | };
| | | | | | };
| | | | | };
| | | | | delay: {
| | | | | | $REF: "actions\ability\delay";
| | | | | | delay: 0.1f;
| | | | | | delayed_actions: {
| | | | | | | scar_function_call: {
| | | | | | | | $REF: "actions\ability\scar_function_call";
| | | | | | | | function_name: "";
| | | | | | | | function_name_params: "Survive_ConfuseTarget";
| | | | | | | };
| | | | | | };
| | | | | | display_progress_bar: false;
| | | | | };
| | | | };
| | | | validate: false;
| | | };
| | };
| | validation_on_self: false;
| | only_initial_target_check: false;
| };
};
It will most probably be due to the fact there is only one human team in last Stand, and one AI enemy team, and in MP, there are lots of different teams, with human as well as with bots.
Then I thought to adapt dreadnought's berseker ability (it becomes stronger, but attacks any nearby unit, no matter if it is a friendly unit or if it isn't)
==> Seems OK, for my purpose: creating an "Accept the Chaos Gods Power!" (or "Do you want more power?") ability, that would make the targetted unit become stronger but uncontrollable, so that it will attack all nearby units.
The problem is that when Kyras (my hero that should use the ability) uses my adapted "Confuse Power", the "mad" unit is Kyras and not the targetted unit.
Here is the code:
action_list: {
| start_self_actions: {
| };
| start_target_actions: {
| | validation_action: {
| | | $REF: "actions\ability\validation_action";
| | | targets: {
| | | | is_squad: {
| | | | | $REF: "types\targets\is_squad";
| | | | };
| | | };
| | | subactions: {
| | | | fire_and_forget_action: {
| | | | | $REF: "actions\ability\fire_and_forget_action";
| | | | | sub_actions: {
| | | | | | timed_action: {
| | | | | | | $REF: "actions\ability\timed_action";
| | | | | | | duration: 10.1f;
| | | | | | | subactions: {
| | | | | | | | animator_set_action: {
| | | | | | | | | $REF: "actions\ability\animator_set_action";
| | | | | | | | | action_name: "abilities\eldar\confuse";
| | | | | | | | | fire_and_forget: false;
| | | | | | | | | delay: 0f;
| | | | | | | | };
| | | | | | | | change_ownership_action: {
| | | | | | | | | $REF: "actions\ability\change_ownership_action";
| | | | | | | | | duration: 10f;
| | | | | | | | | change_type: "jerk";
| | | | | | | | | change_team_color: true;
| | | | | | | | };
| | | | | | | | animator_set_state: {
| | | | | | | | | $REF: "actions\ability\animator_set_state";
| | | | | | | | | do_action_state_name: "on";
| | | | | | | | | state_machine_name: "blood_frenzy";
| | | | | | | | | undo_action_state_name: "off";
| | | | | | | | };
| | | | | | | | apply_modifiers_action: {
| | | | | | | | | $REF: "actions\ability\apply_modifiers_action";
| | | | | | | | | duration: 0f;
| | | | | | | | | permanent: false;
| | | | | | | | | modifiers: {
| | | | | | | | | | received_damage_modifier: {
| | | | | | | | | | | $REF: "modifiers\entity_modifiers\received_damage_modifier";
| | | | | | | | | | | application_type: "apply_to_entity";
| | | | | | | | | | | exclusive: false;
| | | | | | | | | | | target_type_name: "";
| | | | | | | | | | | usage_type: "multiplication";
| | | | | | | | | | | value: 0.5f;
| | | | | | | | | | | exclusive_type: "tp_modifier";
| | | | | | | | | | | show_modifier_decorator: true;
| | | | | | | | | | };
| | | | | | | | | | damage_weapon_modifier: {
| | | | | | | | | | | $REF: "modifiers\weapon_modifiers\damage_weapon_modifier";
| | | | | | | | | | | application_type: "apply_to_weapon";
| | | | | | | | | | | exclusive: false;
| | | | | | | | | | | probability_of_applying: 1f;
| | | | | | | | | | | target_type_name: "hardpoint_01";
| | | | | | | | | | | usage_type: "multiplication";
| | | | | | | | | | | value: 1.3f;
| | | | | | | | | | | exclusive_type: "tp_modifier";
| | | | | | | | | | | show_modifier_decorator: true;
| | | | | | | | | | };
| | | | | | | | | | speed_maximum_modifier: {
| | | | | | | | | | | $REF: "modifiers\entity_modifiers\speed_maximum_modifier";
| | | | | | | | | | | application_type: "apply_to_entity";
| | | | | | | | | | | exclusive: false;
| | | | | | | | | | | target_type_name: "";
| | | | | | | | | | | usage_type: "addition";
| | | | | | | | | | | value: 2.5f;
| | | | | | | | | | | exclusive_type: "tp_modifier";
| | | | | | | | | | | show_modifier_decorator: true;
| | | | | | | | | | };
| | | | | | | | | | cooldown_weapon_modifier: {
| | | | | | | | | | | $REF: "modifiers\weapon_modifiers\cooldown_weapon_modifier";
| | | | | | | | | | | application_type: "apply_to_weapon";
| | | | | | | | | | | exclusive: false;
| | | | | | | | | | | target_type_name: "";
| | | | | | | | | | | usage_type: "multiplication";
| | | | | | | | | | | value: 0.5f;
| | | | | | | | | | | exclusive_type: "tp_modifier";
| | | | | | | | | | | show_modifier_decorator: true;
| | | | | | | | | | };
| | | | | | | | | | reload_weapon_modifier: {
| | | | | | | | | | | $REF: "modifiers\weapon_modifiers\reload_weapon_modifier";
| | | | | | | | | | | application_type: "apply_to_weapon";
| | | | | | | | | | | exclusive: false;
| | | | | | | | | | | target_type_name: "";
| | | | | | | | | | | usage_type: "multiplication";
| | | | | | | | | | | value: 0.6f;
| | | | | | | | | | | exclusive_type: "tp_modifier";
| | | | | | | | | | | show_modifier_decorator: true;
| | | | | | | | | | };
| | | | | | | | | | camouflage_enable_modifier: {
| | | | | | | | | | | $REF: "modifiers\entity_modifiers\camouflage_enable_modifier";
| | | | | | | | | | | application_type: "apply_to_entity";
| | | | | | | | | | | exclusive: true;
| | | | | | | | | | | target_type_name: "";
| | | | | | | | | | | usage_type: "enable";
| | | | | | | | | | | value: -1f;
| | | | | | | | | | | exclusive_type: "tp_modifier";
| | | | | | | | | | | show_modifier_decorator: true;
| | | | | | | | | | };
| | | | | | | | | };
| | | | | | | | };
| | | | | | | | go_beserk_action: {
| | | | | | | | | $REF: "actions\ability\go_beserk_action";
| | | | | | | | | duration: 0f;
| | | | | | | | };
| | | | | | | | repeat_action: {
| | | | | | | | | $REF: "actions\ability\repeat_action";
| | | | | | | | | sub_actions: {
| | | | | | | | | | action_environment: {
| | | | | | | | | | | $REF: "actions\functional\action_environment";
| | | | | | | | | | | context: {
| | | | | | | | | | | | key_value: {
| | | | | | | | | | | | | $REF: "types\actions\key_value";
| | | | | | | | | | | | | value: {
| | | | | | | | | | | | | | $REF: "types\actions\value";
| | | | | | | | | | | | | | value: {
| | | | | | | | | | | | | | | $REF: "types\actions\value_expressions\targets\collect_targets";
| | | | | | | | | | | | | | | area_info: {
| | | | | | | | | | | | | | | | area_type: "Circle";
| | | | | | | | | | | | | | | | radius: {
| | | | | | | | | | | | | | | | | $REF: "types\actions\value_constants\float";
| | | | | | | | | | | | | | | | | constant: 50f;
| | | | | | | | | | | | | | | | };
| | | | | | | | | | | | | | | | radius_inner: {
| | | | | | | | | | | | | | | | | $REF: "types\actions\value_constants\float";
| | | | | | | | | | | | | | | | | constant: 0f;
| | | | | | | | | | | | | | | | };
| | | | | | | | | | | | | | | | line_length: {
| | | | | | | | | | | | | | | | | $REF: "types\actions\value_constants\float";
| | | | | | | | | | | | | | | | | constant: 0f;
| | | | | | | | | | | | | | | | };
| | | | | | | | | | | | | | | | angle_left: {
| | | | | | | | | | | | | | | | | $REF: "types\actions\value_constants\float";
| | | | | | | | | | | | | | | | | constant: 0f;
| | | | | | | | | | | | | | | | };
| | | | | | | | | | | | | | | | angle_right: {
| | | | | | | | | | | | | | | | | $REF: "types\actions\value_constants\float";
| | | | | | | | | | | | | | | | | constant: 0f;
| | | | | | | | | | | | | | | | };
| | | | | | | | | | | | | | | };
| | | | | | | | | | | | | | | executer: {
| | | | | | | | | | | | | | | | $REF: "types\actions\key";
| | | | | | | | | | | | | | | | name: "_executer";
| | | | | | | | | | | | | | | };
| | | | | | | | | | | | | | | filter: {
| | | | | | | | | | | | | | | | $REF: "types\filters\collect_targets_units_info";
| | | | | | | | | | | | | | | | entity_type_to_choose: "";
| | | | | | | | | | | | | | | | exclude_self: true;
| | | | | | | | | | | | | | | | prefer_squads: false;
| | | | | | | | | | | | | | | | target_info: {
| | | | | | | | | | | | | | | | | $REF: "types\targets\melee_target";
| | | | | | | | | | | | | | | | };
| | | | | | | | | | | | | | | };
| | | | | | | | | | | | | | };
| | | | | | | | | | | | | };
| | | | | | | | | | | | | key: {
| | | | | | | | | | | | | | $REF: "types\actions\key";
| | | | | | | | | | | | | | name: "possible_targets";
| | | | | | | | | | | | | };
| | | | | | | | | | | | };
| | | | | | | | | | | | key_value: {
| | | | | | | | | | | | | $REF: "types\actions\key_value";
| | | | | | | | | | | | | value: {
| | | | | | | | | | | | | | $REF: "types\actions\value";
| | | | | | | | | | | | | | value: {
| | | | | | | | | | | | | | | $REF: "types\actions\value_expressions\targets\select_target";
| | | | | | | | | | | | | | | targets: {
| | | | | | | | | | | | | | | | $REF: "types\actions\key";
| | | | | | | | | | | | | | | | name: "possible_targets";
| | | | | | | | | | | | | | | };
| | | | | | | | | | | | | | | priorities: {
| | | | | | | | | | | | | | | | priority_type: {
| | | | | | | | | | | | | | | | | weight: -1f;
| | | | | | | | | | | | | | | | | priority: {
| | | | | | | | | | | | | | | | | | $REF: "types\priorities\distance";
| | | | | | | | | | | | | | | | | | position_target: {
| | | | | | | | | | | | | | | | | | | $REF: "types\actions\key";
| | | | | | | | | | | | | | | | | | | name: "_executer";
| | | | | | | | | | | | | | | | | | };
| | | | | | | | | | | | | | | | | };
| | | | | | | | | | | | | | | | };
| | | | | | | | | | | | | | | };
| | | | | | | | | | | | | | };
| | | | | | | | | | | | | };
| | | | | | | | | | | | | key: {
| | | | | | | | | | | | | | $REF: "types\actions\key";
| | | | | | | | | | | | | | name: "closest_target";
| | | | | | | | | | | | | };
| | | | | | | | | | | | };
| | | | | | | | | | | };
| | | | | | | | | | | operations: {
| | | | | | | | | | | | force_target: {
| | | | | | | | | | | | | $REF: "actions\functional\actions\tactical\force_target";
| | | | | | | | | | | | | executer: {
| | | | | | | | | | | | | | $REF: "types\actions\key";
| | | | | | | | | | | | | | name: "_executer";
| | | | | | | | | | | | | };
| | | | | | | | | | | | | target: {
| | | | | | | | | | | | | | $REF: "types\actions\key";
| | | | | | | | | | | | | | name: "closest_target";
| | | | | | | | | | | | | };
| | | | | | | | | | | | };
| | | | | | | | | | | | debug_print: {
| | | | | | | | | | | | | $REF: "actions\functional\actions\debugging\debug_print";
| | | | | | | | | | | | | description: "**ACTION DEBUG**";
| | | | | | | | | | | | | keys: {
| | | | | | | | | | | | | };
| | | | | | | | | | | | };
| | | | | | | | | | | };
| | | | | | | | | | | subactions: {
| | | | | | | | | | | };
| | | | | | | | | | | debug: {
| | | | | | | | | | | | documentation: "Selects the closest 'enemy' target, and force-targets it.";
| | | | | | | | | | | | enable_debug_traces: false;
| | | | | | | | | | | };
| | | | | | | | | | };
| | | | | | | | | };
| | | | | | | | | validate: true;
| | | | | | | | | frequency: 5f;
| | | | | | | | | number_of_repeats: 0;
| | | | | | | | };
| | | | | | | | special_attack_action: {
| | | | | | | | | $REF: "actions\ability\special_attack_action";
| | | | | | | | | override_chance: 0.25f;
| | | | | | | | };
| | | | | | | };
| | | | | | };
| | | | | | delay: {
| | | | | | | $REF: "actions\ability\delay";
| | | | | | | delay: 0.1f;
| | | | | | | delayed_actions: {
| | | | | | | };
| | | | | | | display_progress_bar: false;
| | | | | | };
| | | | | };
| | | | | validate: false;
| | | | };
| | | };
| | | validation_on_self: false;
| | | only_initial_target_check: false;
| | };
| };
| end_self_actions: {
| };
| end_target_actions: {
| | action_environment: {
| | | $REF: "actions\functional\action_environment";
| | | context: {
| | | | key_value: {
| | | | | $REF: "types\actions\key_value";
| | | | | value: {
| | | | | | $REF: "types\actions\value";
| | | | | | value: {
| | | | | | | $REF: "types\actions\value_expressions\targets\new_reset_target";
| | | | | | };
| | | | | };
| | | | | key: {
| | | | | | $REF: "types\actions\key";
| | | | | | name: "reset_target";
| | | | | };
| | | | };
| | | };
| | | operations: {
| | | | force_target: {
| | | | | $REF: "actions\functional\actions\tactical\force_target";
| | | | | executer: {
| | | | | | $REF: "types\actions\key";
| | | | | | name: "_executer";
| | | | | };
| | | | | target: {
| | | | | | $REF: "types\actions\key";
| | | | | | name: "reset_target";
| | | | | };
| | | | };
| | | };
| | | subactions: {
| | | };
| | | debug: {
| | | | documentation: "";
| | | | enable_debug_traces: false;
| | | };
| | };
| | special_attack_action: {
| | | $REF: "actions\ability\special_attack_action";
| | | override_chance: -1f;
| | };
| };
};
It works. However, it doesn't work on the targeted unit, but on Kyras instead.
Any ideas?
Thank you very much.