Creating levelable skills for non-hero units

Modding discussion.
BILLYREDNECK34
Level 0
Posts: 5
Joined: Wed 18 Mar, 2020 12:31 am

Creating levelable skills for non-hero units

Postby BILLYREDNECK34 » Wed 18 Mar, 2020 12:38 am

I'm trying to make an apothecary that is trainable from the hq. I've got the apothecary unit made, trainable, and assigned abilities and wargear.

The issue I'm running into is that I want the apothecary heal ability to level with the apothecary (the unit's max level is now 4 and has its own troop entry).

I assigned:
new target heal level 1 = target heal 1
new target heal level 2 = target heal 3
new target heal level 3 = target heal 5
new target heal level 4 = target heal 6

The skill still works at level 1, but once the apothecary hits level 2 the skill activates, the heal fx appears over the targeted unit, but no healing happens. It doesn't seem to matter whether the unit is standard infantry (i.e. tactical marines) or a commander/hero type (i.e. librarian/force commander).

I think it has something to do with the requirements/required_player_hero_level table, but I haven't yet found a replacement.

Any help would be appreciated.

The following posts are the .rbf corsix-strings.
Last edited by BILLYREDNECK34 on Wed 18 Mar, 2020 12:43 am, edited 3 times in total.
BILLYREDNECK34
Level 0
Posts: 5
Joined: Wed 18 Mar, 2020 12:31 am

Re: Creating levelable skills for non-hero units

Postby BILLYREDNECK34 » Wed 18 Mar, 2020 12:39 am

ebps entry:

sm_apothecary_1.rbf

GameData: {
| combat_ext: {
| | $REF: "entity_extensions\combat_ext";
| | hardpoints: {
| | | hardpoint_details: {
| | | | $REF: "hardpoint_details";
| | | | weapon_table: {
| | | | };
| | | | default_position_info: {
| | | | | heading: {
| | | | | | $REF: "basic_data_types\heading_vector";
| | | | | | x: 0f;
| | | | | | y: 0f;
| | | | | | z: 1f;
| | | | | };
| | | | | origin: {
| | | | | | $REF: "basic_data_types\position";
| | | | | | x: 0f;
| | | | | | y: 1.85f;
| | | | | | z: 0f;
| | | | | };
| | | | | muzzle_length: 0f;
| | | | };
| | | };
| | | hardpoint_details: {
| | | | $REF: "hardpoint_details";
| | | | weapon_table: {
| | | | };
| | | | default_position_info: {
| | | | | heading: {
| | | | | | $REF: "basic_data_types\heading_vector";
| | | | | | x: 0f;
| | | | | | y: 0f;
| | | | | | z: 1f;
| | | | | };
| | | | | origin: {
| | | | | | $REF: "basic_data_types\position";
| | | | | | x: 0f;
| | | | | | y: 0f;
| | | | | | z: 0f;
| | | | | };
| | | | | muzzle_length: 0f;
| | | | };
| | | };
| | };
| };
| entity_blueprint_ext: {
| | $REF: "entity_extensions\entity_blueprint_ext";
| | always_revealed_in_fow: false;
| | animator: "race_marine\troops\space_marine\space_marine";
| | is_visible_in_game: true;
| | size: "small";
| | is_in_spatial_bucket: true;
| | rotate_snap: 360f;
| | use_collision_mesh: false;
| | size_override: 1;
| | animator_attachments: {
| | | attachment: "art\race_marine\troops_wargear\armour\apothecary\apothecary";
| | };
| | use_expanded_destination_size: true;
| | online_level_animator_attachments: {
| | | group: {
| | | | minimum_level: 12;
| | | | maximum_level: 23;
| | | | attachment: "art\race_marine\troops_wargear\armour_items\pow_armature_of_zeal\pow_armature_of_zeal";
| | | };
| | | group: {
| | | | minimum_level: 24;
| | | | maximum_level: 44;
| | | | attachment: "art\race_marine\troops_wargear\armour_items\pow_armour_of_victory\pow_armour_of_victory";
| | | };
| | | group: {
| | | | minimum_level: 24;
| | | | maximum_level: 60;
| | | | attachment: "art\race_marine\troops_wargear\armour_items\pow_immovable\pow_immovable";
| | | };
| | | group: {
| | | | minimum_level: 45;
| | | | maximum_level: 60;
| | | | attachment: "art\race_marine\troops_wargear\armour_items\pow_golden_mantle\pow_golden_mantle_apo";
| | | };
| | | group: {
| | | | minimum_level: 45;
| | | | maximum_level: 60;
| | | | attachment: "art\race_marine\troops_wargear\armour_items\pow_gift_of_mars\pow_gift_of_mars_apo";
| | | };
| | | group: {
| | | | minimum_level: 45;
| | | | maximum_level: 60;
| | | | attachment: "art\race_marine\troops_wargear\armour_items\pow_improved_power_armour\pow_improved_power_armour";
| | | };
| | | group: {
| | | | minimum_level: 55;
| | | | maximum_level: 60;
| | | | attachment: "art\race_marine\troops_wargear\armour\librarian\librarian_cloth";
| | | };
| | | group: {
| | | | minimum_level: 58;
| | | | maximum_level: 60;
| | | | attachment: "art\race_marine\troops_wargear\accessories\iron_halo_laurels_of_hadrian\iron_halo_laurels_of_hadrian";
| | | };
| | };
| | is_visible_initially: true;
| | chapter_animator_attachments: {
| | | chapter_animator_attachment: {
| | | | chapter_key_name: "SM_Ultramarines_DLC";
| | | | animator_attachments: {
| | | | | animator_attachment: "art\race_marine\troops_wargear\armour\apothecary_ultramarines\apothecary_ultramarines";
| | | | | animator_attachment: "art\race_marine\troops_wargear\accessories\ultramarines_apothecary_tabard\ultramarines_apothecary_tabard";
| | | | };
| | | };
| | | chapter_animator_attachment: {
| | | | chapter_key_name: "SM_Legion_of_the_Damned_Elite";
| | | | animator_attachments: {
| | | | | animator_attachment: "art\race_marine\troops_wargear\armour\apothecary_damned\apothecary";
| | | | };
| | | };
| | | chapter_animator_attachment: {
| | | | chapter_key_name: "SM_ImperialFists_DLC";
| | | | animator_attachments: {
| | | | | animator_attachment: "art\race_marine\troops_wargear\armour\apothecary_imperial_fist\apothecary_imperial_fist";
| | | | };
| | | };
| | | chapter_animator_attachment: {
| | | | chapter_key_name: "SM_Blacktemplars_Elite";
| | | | animator_attachments: {
| | | | | animator_attachment: "art\race_marine\troops_wargear\armour\templar_apothecary\templar_apothecary";
| | | | };
| | | };
| | | chapter_animator_attachment: {
| | | | chapter_key_name: "SM_Spacewolves_Elite";
| | | | animator_attachments: {
| | | | | animator_attachment: "art\race_marine\troops_wargear\armour\spacewolves_apothecary\spacewolves_apothecary";
| | | | };
| | | };
| | | chapter_animator_attachment: {
| | | | chapter_key_name: "SM_Bloodangels_Elite";
| | | | animator_attachments: {
| | | | | animator_attachment: "art\race_marine\troops_wargear\armour\bloodangels_apothecary\bloodangels_apothecary";
| | | | };
| | | };
| | | chapter_animator_attachment: {
| | | | chapter_key_name: "SM_ImperialFists_Elite";
| | | | animator_attachments: {
| | | | | animator_attachment: "art\race_marine\troops_wargear\armour\imperialfist_apothecary\imperialfist_apothecary";
| | | | };
| | | };
| | | chapter_animator_attachment: {
| | | | chapter_key_name: "SM_Salamanders_Elite";
| | | | animator_attachments: {
| | | | | animator_attachment: "art\race_marine\troops_wargear\armour\salamanders_apothecary\salamanders_apothecary";
| | | | };
| | | };
| | | chapter_animator_attachment: {
| | | | chapter_key_name: "SM_Luna_Wolves_30K";
| | | | animator_attachments: {
| | | | | animator_attachment: "art\race_marine\troops_wargear\armour\heresy_apothecary\heresy_apothecary";
| | | | };
| | | };
| | | chapter_animator_attachment: {
| | | | chapter_key_name: "SM_Lamenters_Elite";
| | | | animator_attachments: {
| | | | | animator_attachment: "art\race_marine\troops_wargear\armour\lamenter_apothecary\lamenter_apothecary";
| | | | };
| | | };
| | };
| };
| sight_ext: {
| | $REF: "entity_extensions\sight_ext";
| | sight_radius: 40f;
| | reveal_area_on_death_time: 6f;
| | apply_elevation_bonus: false;
| | keen_sense_radius: 5f;
| | is_detector: false;
| | entity_level_spotting: false;
| };
| cost_ext: {
| | $REF: "entity_extensions\cost_ext";
| | time_cost: {
| | | $REF: "time_cost_table";
| | | cost: {
| | | | $REF: "cost_table";
| | | | popcap: 0f;
| | | | requisition: 350f;
| | | | power: 50f;
| | | | waaagh: 0f;
| | | };
| | | time_seconds: 25f;
| | | energy: 0f;
| | };
| | xp_points: 500f;
| | upkeep: {
| | | $REF: "cost_table";
| | | popcap: 0f;
| | | requisition: 0.0425f;
| | | power: 0f;
| | | waaagh: 0f;
| | };
| };
| health_ext: {
| | $REF: "entity_extensions\health_ext";
| | hitpoints: 4500f;
| | regeneration: 0.5f;
| | delete_when_dead: true;
| | death_seconds: 10f;
| | death_event_name: "Death";
| | is_invincible: false;
| | receive_weapon_cover_modifiers: true;
| | regeneration_disabled: false;
| | remove_from_pathfinding_on_death: true;
| | reveal_to_all_on_death: false;
| | ui_can_scuttle: false;
| | rebuilt_entity: "";
| | wreck_entity: "";
| | keep_wreck_ownership: false;
| | death_actions: {
| | };
| | wargear_drop_type: "none";
| | can_repair: false;
| | is_salvagable_wreck: false;
| | unconscious_on_death: {
| | | enabled: true;
| | | health_ratio_to_revive: 0.025f;
| | | actions: {
| | | | apply_modifiers_action: {
| | | | | $REF: "actions\ability\apply_modifiers_action";
| | | | | duration: 0f;
| | | | | permanent: false;
| | | | | modifiers: {
| | | | | | experience_gained_squad_modifier: {
| | | | | | | $REF: "modifiers\squad_modifiers\experience_gained_squad_modifier";
| | | | | | | application_type: "apply_to_squad";
| | | | | | | exclusive: true;
| | | | | | | target_type_name: "hardpoint_01";
| | | | | | | usage_type: "multiplication";
| | | | | | | value: 0f;
| | | | | | | exclusive_type: "tp_modifier";
| | | | | | | show_modifier_decorator: true;
| | | | | | };
| | | | | | energy_regen_rate_squad_modifier: {
| | | | | | | $REF: "modifiers\squad_modifiers\energy_regen_rate_squad_modifier";
| | | | | | | application_type: "apply_to_squad";
| | | | | | | exclusive: false;
| | | | | | | target_type_name: "";
| | | | | | | usage_type: "multiplication";
| | | | | | | value: 0f;
| | | | | | | exclusive_type: "tp_modifier";
| | | | | | | show_modifier_decorator: true;
| | | | | | };
| | | | | };
| | | | };
| | | };
| | | cause_squad_to_hunker: true;
| | | time_until_death: 0f;
| | | regeneration_while_unconcious_multiplier: 0f;
| | };
| | regeneration_in_combat_multiplier: 1f;
| | world_object: {
| | | is_targetable: false;
| | };
| | is_meleeable: true;
| | rear_damage_multiplier: 1f;
| | death_ragdoll: true;
| | is_auto_targetable: true;
| | grant_resource_on_death: {
| | | $REF: "cost_table";
| | | popcap: 0f;
| | | requisition: 0f;
| | | power: 0f;
| | | waaagh: 30f;
| | };
| | resurrection: {
| | | max_resurrect_cost: {
| | | | $REF: "cost_table";
| | | | popcap: 0f;
| | | | requisition: 500f;
| | | | power: 0f;
| | | | waaagh: 0f;
| | | };
| | | min_resurrect_cost: {
| | | | $REF: "cost_table";
| | | | popcap: 0f;
| | | | requisition: 250f;
| | | | power: 0f;
| | | | waaagh: 0f;
| | | };
| | | depreciation_time: 20f;
| | | per_level_resurrect_charge: {
| | | | $REF: "cost_table";
| | | | popcap: 0f;
| | | | requisition: 50f;
| | | | power: 0f;
| | | | waaagh: 0f;
| | | };
| | | max_depreciation_time: 50f;
| | | min_depreciation_time: 10f;
| | | per_level_depreciation_time: 10f;
| | };
| | is_remotely_detonated: false;
| | is_invincible_team_weapon: false;
| | pvp_on_revive_terrain_dca_action_name: "abilities\space_marine\teleport_arrive";
| | death_fade_time: 0f;
| | wreck_offset: {
| | | x: 0f;
| | | y: 0f;
| | };
| | grant_resource_to_owner_on_death: true;
| | grant_resource_to_attacker_on_death: true;
| };
| moving_ext: {
| | $REF: "entity_extensions\moving_ext";
| | acceleration: 30f;
| | deceleration: 30f;
| | rotation_rate: 800f;
| | speed_max: 5f;
| | orient_to_terrain: false;
| | pass_type: "passability\land_only";
| | turn_plan: "turn_plan\turn_plan\human";
| | skid_look_ahead_time: -1f;
| | disable_walker_sliding: false;
| | jumping: {
| | | jump_info: {
| | | | $REF: "types\jump_info";
| | | | jump_distance_max: 50f;
| | | | jump_height: 25f;
| | | | jump_min_height: 0f;
| | | | max_forward_speed: 1f;
| | | | min_forward_speed: 1f;
| | | | aggression: 0f;
| | | | breakdown_time: 0.5f;
| | | | anticipation_time: 0f;
| | | | teleport: false;
| | | | number_of_jumpers: 0;
| | | | use_special_on_completion_actions: false;
| | | | skip_facing: false;
| | | | jump_pass_type: "";
| | | };
| | | enable: false;
| | | jump_pass_type: "passability\jumper";
| | | look_ahead_time: 2f;
| | | post_obstacle_time: 0.5f;
| | | burrow_mode: false;
| | };
| | allow_forced_combat_reverse: true;
| | combat_hack_avoid_facing_average_squad_pos: false;
| };
| ui_ext: {
| | $REF: "entity_extensions\ui_ext";
| | selection: {
| | | selection_type: "squad_select";
| | | selection_name: "hero";
| | | alt_selection: "obb";
| | };
| | icon_name: "units\tacticalmarine_icon";
| | occlusion_state: "can_be_occluded";
| | screen_name: 9025669;
| | help_text: 0;
| | extra_text: 0;
| | hotkey_name: "";
| | minimap_enable: false;
| | minimap_teamcolor: true;
| | minimap_color_r: 0f;
| | minimap_color_g: 0f;
| | minimap_color_b: 0f;
| | minimap_color_a: 0f;
| | ap_killed_kicker: false;
| | ap_loss_kicker: false;
| | ghost_enable: false;
| | speech: {
| | | has_speech_code: true;
| | | speech_code_2: {
| | | | $REF: "types\speech\speech_codes";
| | | | codes: {
| | | | | code: "ta";
| | | | };
| | | };
| | | speech_code_3: {
| | | | $REF: "types\speech\speech_codes";
| | | | codes: {
| | | | | code: "tac";
| | | | | code: "mph";
| | | | | code: "gma";
| | | | };
| | | };
| | | speech_code_cover: {
| | | | $REF: "types\speech\speech_codes";
| | | | codes: {
| | | | };
| | | };
| | | speaker: {
| | | | $REF: "types\speech\speech_codes";
| | | | codes: {
| | | | | code: "apo";
| | | | };
| | | };
| | | speech_directory: "sound:STREAMED_SPEECH\MP\SP";
| | };
| | entity_name: 0;
| | entity_type: 0;
| | brief_text: 0;
| | tooltip_txt: 0;
| | sergeant_caster_decorator: "";
| | sergeant_combination_decorator: "";
| | sergeant_replacement_decorator: "";
| | minimap_blip_override: "";
| };
| hit_object_ext: {
| | $REF: "entity_extensions\hit_object_ext";
| | hit_non_neutral: false;
| | hit_percentage: 0.15f;
| | pass_through: false;
| | hit_material: "hit_material\reg_unit_metal_armor";
| | blocks_projectile_type: {
| | | homing: true;
| | | artillery: true;
| | | thrown: false;
| | | plasma: false;
| | };
| };
| posture_ext: {
| | $REF: "entity_extensions\posture_ext";
| | posture: "posture\default_posture";
| | can_fidget: false;
| | can_cheer: false;
| };
| cover_ext: {
| | $REF: "entity_extensions\cover_ext";
| | cover_table: {
| | | tp_garrison_cover: {
| | | | $REF: "types\cover_ext_entry";
| | | | actions: {
| | | | };
| | | | safety_value: 0.4f;
| | | | speed_multiplier: 1f;
| | | };
| | | tp_heavy: {
| | | | $REF: "types\cover_ext_entry";
| | | | actions: {
| | | | };
| | | | safety_value: 0.4f;
| | | | speed_multiplier: 1f;
| | | };
| | | tp_light: {
| | | | $REF: "types\cover_ext_entry";
| | | | actions: {
| | | | };
| | | | safety_value: 0.25f;
| | | | speed_multiplier: 1f;
| | | };
| | | tp_open: {
| | | | $REF: "types\cover_ext_entry";
| | | | actions: {
| | | | };
| | | | safety_value: -0.01f;
| | | | speed_multiplier: 1f;
| | | };
| | | tp_energy_shield: {
| | | | $REF: "types\cover_ext_entry";
| | | | actions: {
| | | | };
| | | | safety_value: 0.5f;
| | | | speed_multiplier: 1f;
| | | };
| | };
| };
| melee_ext: {
| | $REF: "entity_extensions\melee_ext";
| | weapon_skill: 50;
| | charge: {
| | | range: 12f;
| | | on_charge_actions: {
| | | | apply_modifiers_action: {
| | | | | $REF: "actions\ability\apply_modifiers_action";
| | | | | duration: 4f;
| | | | | permanent: false;
| | | | | modifiers: {
| | | | | | speed_maximum_modifier: {
| | | | | | | $REF: "modifiers\entity_modifiers\speed_maximum_modifier";
| | | | | | | application_type: "apply_to_squad";
| | | | | | | exclusive: false;
| | | | | | | target_type_name: "";
| | | | | | | usage_type: "addition";
| | | | | | | value: 3f;
| | | | | | | exclusive_type: "tp_modifier";
| | | | | | | show_modifier_decorator: true;
| | | | | | };
| | | | | };
| | | | };
| | | | animator_set_action: {
| | | | | $REF: "actions\ability\animator_set_action";
| | | | | action_name: "abilities\space_marine\on_charge";
| | | | | fire_and_forget: false;
| | | | | delay: 0f;
| | | | };
| | | };
| | | cooldown: 6f;
| | | minimum_range: 0f;
| | | on_completion_actions: {
| | | };
| | | on_completion_target_actions: {
| | | };
| | | ignore_melee_skill: true;
| | };
| | in_combat_ranged_damage_modifier: 0.5f;
| | leap: {
| | | can_leap: false;
| | | on_completion_actions: {
| | | };
| | | on_start_actions: {
| | | };
| | | jump_info: {
| | | | $REF: "types\jump_info";
| | | | jump_distance_max: 50f;
| | | | jump_height: 1.5f;
| | | | jump_min_height: 1f;
| | | | max_forward_speed: 30f;
| | | | min_forward_speed: 30f;
| | | | aggression: 0.5f;
| | | | breakdown_time: 0.5f;
| | | | anticipation_time: 0f;
| | | | teleport: false;
| | | | number_of_jumpers: 0;
| | | | use_special_on_completion_actions: false;
| | | | skip_facing: false;
| | | | jump_pass_type: "";
| | | };
| | | on_completion_target_actions: {
| | | };
| | };
| | melee_base_size: "small";
| | has_melee_right_of_way: false;
| };
| knockback_ext: {
| | $REF: "entity_extensions\knockback_ext";
| | stand_up_time: 2f;
| | domino_strength_reduction: 65f;
| | domino_strength_threshold: 35f;
| | domino_knockback: {
| | | $REF: "actions\ability\knockback_action";
| | | knockback_type: "ability_knockback";
| | | flight_distance: 4.5f;
| | | scatter_angle: 20f;
| | | flight_loft: 0.3f;
| | | scatter_flight: 35f;
| | | domino_strength: 50f;
| | | crush_type: "passability\light_crusher";
| | | levitate: {
| | | | duration: 0f;
| | | | scatter_angle: 0f;
| | | };
| | | specials: {
| | | | knock_towards_executer: false;
| | | | ignore_pathfinding: false;
| | | };
| | };
| | chance: {
| | | weapon: 1f;
| | | ability: 1f;
| | | domino: 1f;
| | | light_weapon: 1f;
| | | medium_weapon: 1f;
| | };
| };
| modifier_ext: {
| | $REF: "entity_extensions\modifier_ext";
| };
| population_ext: {
| | $REF: "entity_extensions\population_ext";
| | personnel_pop: 5;
| | vehicle_pop: 0;
| | sp_commander_pop: 0;
| | sp_assault_pop: 0;
| | sp_scout_pop: 0;
| | sp_tactical_pop: 0;
| | sp_heavy_pop: 0;
| | sp_walker_pop: 0;
| | sp_total_pop: 0;
| };
| wargear_ext: {
| | $REF: "entity_extensions\wargear_ext";
| | default_wargear: {
| | | wargear: "wargear\wargear\pvp\race_marine\sm_wp2_chainsword_apothecary";
| | | wargear: "wargear\wargear\pvp\race_marine\sm_wp1_bolt_pistol_hero";
| | };
| | default_wargear_levels: {
| | };
| };
| leveling_ext: {
| | $REF: "entity_extensions\leveling_ext";
| | attrib_levels: {
| | | attrib_level_attributes: {
| | | | $REF: "types\leveling\attrib_level_attributes";
| | | | health: {
| | | | | health: 610f;
| | | | | regeneration: 0.5f;
| | | | };
| | | | weapon: {
| | | | | melee_skill: 70;
| | | | | melee_damage_modifier: 1f;
| | | | | ranged_damage_modifier: 1f;
| | | | };
| | | | skills: {
| | | | | morale_regeneration: 0.2f;
| | | | | energy_regeneration: 1f;
| | | | | morale: 600f;
| | | | | energy: 100f;
| | | | | supression_resistance: 4f;
| | | | };
| | | };
| | | attrib_level_attributes: {
| | | | $REF: "types\leveling\attrib_level_attributes";
| | | | health: {
| | | | | health: 610f;
| | | | | regeneration: 0.5f;
| | | | };
| | | | weapon: {
| | | | | melee_skill: 70;
| | | | | melee_damage_modifier: 1f;
| | | | | ranged_damage_modifier: 1f;
| | | | };
| | | | skills: {
| | | | | morale_regeneration: 0.2f;
| | | | | energy_regeneration: 1f;
| | | | | morale: 600f;
| | | | | energy: 100f;
| | | | | supression_resistance: 4f;
| | | | };
| | | };
| | | attrib_level_attributes: {
| | | | $REF: "types\leveling\attrib_level_attributes";
| | | | health: {
| | | | | health: 672.525f;
| | | | | regeneration: 0.5253125f;
| | | | };
| | | | weapon: {
| | | | | melee_skill: 72;
| | | | | melee_damage_modifier: 1.090225f;
| | | | | ranged_damage_modifier: 1.0404f;
| | | | };
| | | | skills: {
| | | | | morale_regeneration: 1.2f;
| | | | | energy_regeneration: 1.21f;
| | | | | morale: 624.24f;
| | | | | energy: 120f;
| | | | | supression_resistance: 4.1616f;
| | | | };
| | | };
| | | attrib_level_attributes: {
| | | | $REF: "types\leveling\attrib_level_attributes";
| | | | health: {
| | | | | health: 741.4588f;
| | | | | regeneration: 0.5519065f;
| | | | };
| | | | weapon: {
| | | | | melee_skill: 74;
| | | | | melee_damage_modifier: 1.181355f;
| | | | | ranged_damage_modifier: 1.082432f;
| | | | };
| | | | skills: {
| | | | | morale_regeneration: 2.2f;
| | | | | energy_regeneration: 1.4641f;
| | | | | morale: 649.4593f;
| | | | | energy: 140f;
| | | | | supression_resistance: 4.329729f;
| | | | };
| | | };
| | | attrib_level_attributes: {
| | | | $REF: "types\leveling\attrib_level_attributes";
| | | | health: {
| | | | | health: 800f;
| | | | | regeneration: 0.5657041f;
| | | | };
| | | | weapon: {
| | | | | melee_skill: 75;
| | | | | melee_damage_modifier: 1.217261f;
| | | | | ranged_damage_modifier: 1.104081f;
| | | | };
| | | | skills: {
| | | | | morale_regeneration: 2.7f;
| | | | | energy_regeneration: 1.61051f;
| | | | | morale: 662.4485f;
| | | | | energy: 155f;
| | | | | supression_resistance: 4.416323f;
| | | | };
| | | };
| | };
| | entity_only: {
| | | max_level: 4;
| | };
| };
| ability_ext: {
| | $REF: "entity_extensions\ability_ext";
| | abilities: {
| | | ability: "ability\pvp\race_marine\apothecary_1\sm_heal_aoe_aura_1";
| | };
| };
| syncdeath_ext: {
| | $REF: "entity_extensions\syncdeath_ext";
| | syncdeath_infos: {
| | | syncdeath_info: {
| | | | $REF: "types\synckills\syncdeath_info";
| | | | synckill_id: "sk_id_01";
| | | };
| | | syncdeath_info: {
| | | | $REF: "types\synckills\syncdeath_info";
| | | | synckill_id: "sk_id_03";
| | | };
| | | syncdeath_info: {
| | | | $REF: "types\synckills\syncdeath_info";
| | | | synckill_id: "sk_id_04";
| | | };
| | | syncdeath_info: {
| | | | $REF: "types\synckills\syncdeath_info";
| | | | synckill_id: "sk_id_05";
| | | };
| | | syncdeath_info: {
| | | | $REF: "types\synckills\syncdeath_info";
| | | | synckill_id: "sk_id_06";
| | | };
| | };
| | force_sync_kill_on_death: false;
| };
| marker_ext: {
| | $REF: "entity_extensions\marker_ext";
| };
| synckill_ext: {
| | $REF: "entity_extensions\synckill_ext";
| | chance: 40f;
| | synckill_types: {
| | };
| };
| camouflage_ext: {
| | $REF: "entity_extensions\camouflage_ext";
| | must_be_fully_constructed: false;
| | revert_time_on_detection: 4f;
| | revert_time: 1f;
| | revert_multiplier: 1.2f;
| | revert_max: 6f;
| | reveal_duration: 16f;
| | attack_priority: 0f;
| | permanently_activated: false;
| | first_strike_actions: {
| | };
| | revealed_only_by_detectors: false;
| | on_concealed_actions: {
| | | apply_modifiers_action: {
| | | | $REF: "actions\ability\apply_modifiers_action";
| | | | duration: 0f;
| | | | permanent: false;
| | | | modifiers: {
| | | | | received_courage_damage_squad_modifier: {
| | | | | | $REF: "modifiers\squad_modifiers\received_courage_damage_squad_modifier";
| | | | | | application_type: "apply_to_squad";
| | | | | | exclusive: false;
| | | | | | target_type_name: "";
| | | | | | usage_type: "multiplication";
| | | | | | value: 0f;
| | | | | | exclusive_type: "tp_modifier";
| | | | | | show_modifier_decorator: true;
| | | | | };
| | | | };
| | | };
| | };
| | on_partially_revealed_actions: {
| | | 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.8f;
| | | | | | exclusive_type: "tp_modifier";
| | | | | | show_modifier_decorator: true;
| | | | | };
| | | | };
| | | };
| | };
| | on_revealed_actions: {
| | };
| | camouflage_fx: "camouflage_fx\camouflage_fx\default";
| | cannot_be_revealed: false;
| | animator_override: "";
| | first_strike_actions_on_target: {
| | };
| | first_strike_actions_cooldown: 0f;
| };
| crush_ext: {
| | $REF: "entity_extensions\crush_ext";
| | crush_humans: false;
| };
| attention_gen_ext: {
| | $REF: "entity_extensions\attention_gen_ext";
| | attention_weight_override: 10;
| | spotted_countdown_timer_override: -1f;
| };
| jump_ext: {
| | $REF: "entity_extensions\jump_ext";
| | on_completion_actions: {
| | | animator_set_action: {
| | | | $REF: "actions\ability\animator_set_action";
| | | | action_name: "abilities\eldar\teleport_arrive";
| | | | fire_and_forget: false;
| | | | delay: 0f;
| | | };
| | };
| | on_start_actions: {
| | | animator_set_action: {
| | | | $REF: "actions\ability\animator_set_action";
| | | | action_name: "abilities\eldar\teleport_leave";
| | | | fire_and_forget: false;
| | | | delay: 0f;
| | | };
| | };
| | special_on_completion_actions: {
| | };
| };
| type_ext: {
| | $REF: "entity_extensions\type_ext";
| | armour_type: "commander";
| | race: "racebps\space_marines";
| | unit_type_list: {
| | | type_unit_class: "infantry";
| | | type_unit_class: "hero";
| | };
| };
};
Last edited by BILLYREDNECK34 on Wed 18 Mar, 2020 12:41 am, edited 1 time in total.
BILLYREDNECK34
Level 0
Posts: 5
Joined: Wed 18 Mar, 2020 12:31 am

Re: Creating levelable skills for non-hero units

Postby BILLYREDNECK34 » Wed 18 Mar, 2020 12:39 am

sbps entry:

sm_apothecary_1.rbf

GameData: {
| squad_loadout_ext: {
| | $REF: "squad_extensions\squad_loadout_ext";
| | max_leaders: 0;
| | unit_list: {
| | | squad_loadout_unit_entry: {
| | | | $REF: "squad_loadout_unit_entry";
| | | | num: 1;
| | | | max: 1;
| | | | type: "ebps\pvp\race_marine\troops\sm_apothecary_1";
| | | };
| | };
| | squad_type: "scout_marine";
| | terminator_mode_sbp: "";
| };
| squad_combat_behaviour_ext: {
| | $REF: "squad_extensions\squad_combat_behaviour_ext";
| | melee_leash_distance: 20f;
| | weapon_stance: "melee";
| | suppression: {
| | | can_be_suppressed: true;
| | | starting_courage: 100f;
| | | courage_regen_rate: 10f;
| | | suppression_resistance: 0f;
| | | disable_moving_firing_while_suppressed: true;
| | };
| | idle_leash_distance: 0f;
| | call_for_help_distance: 0f;
| | melee_idle_leash_distance: 500f;
| | can_retreat: true;
| | plans: {
| | | idle_retaliation_plan: "squad_plan\pvp\pvp_idle_retaliation";
| | | ranged_attack_plan: "squad_plan\pvp\pvp_range_basic";
| | | setup_weapon_attack_plan: "";
| | | melee_plan: "squad_plan\melee_plan_default";
| | };
| | accuracy_windup: {
| | | initial: 1f;
| | | windup: 0f;
| | };
| | in_melee_time_override: 0f;
| };
| squad_ui_ext: {
| | $REF: "squad_extensions\squad_ui_ext";
| | selection_group: "Apothecary";
| | icon_name: "sm_apothecary";
| | help_text: 9025889;
| | screen_name: 9025890;
| | ui_group_position: 10;
| | speech: {
| | | has_speech_code: true;
| | | speech_code_2: {
| | | | $REF: "types\speech\speech_codes";
| | | | codes: {
| | | | };
| | | };
| | | speech_code_3: {
| | | | $REF: "types\speech\speech_codes";
| | | | codes: {
| | | | | code: "apo";
| | | | | code: "mph";
| | | | | code: "gma";
| | | | };
| | | };
| | | speaker_generic: {
| | | | $REF: "types\speech\speech_codes";
| | | | codes: {
| | | | | code: "apo";
| | | | };
| | | };
| | | speaker_specific: {
| | | | $REF: "types\speech\speech_codes";
| | | | codes: {
| | | | | code: "apo";
| | | | };
| | | };
| | | speaker_specific_chapter_overrides: {
| | | };
| | | speaker_generic_chapter_overrides: {
| | | };
| | };
| | show_decorator: true;
| | build_button_index: 5;
| | minimap_blip_override: "hero";
| | squad_name: 9025891;
| | squad_type: 9025892;
| | facing_arrow: "ui\area_outlines\shapes\arrow\default_arrow";
| | brief_text: 0;
| | hotkey_name: "";
| | decorator_name: "hero_anti_infantry_melee";
| | simple_decorator: false;
| | allow_squad_tab: true;
| | icon_name_chapter_overrides: {
| | };
| };
| squad_formation_ext: {
| | $REF: "squad_extensions\squad_formation_ext";
| | move_dest_cover_search_radius: 2f;
| | idle_cover_search_radius: 0f;
| | cover_formation_table: {
| | | tp_garrison_cover: "";
| | | tp_heavy: "";
| | | tp_light: "";
| | | tp_open: "";
| | | tp_energy_shield: "";
| | };
| | formation_default: "formation\default";
| | squad_distribution: "squad_distribution\default_distribution";
| };
| squad_holdable_ext: {
| | $REF: "squad_extensions\squad_holdable_ext";
| | hold_type: "hold_infantry";
| | modifier_table: {
| | };
| | storm_trooper: true;
| | shared_hold_enter_cooldown: 10f;
| };
| squad_modifier_ext: {
| | $REF: "squad_extensions\squad_modifier_ext";
| };
| squad_capture_strategic_point_ext: {
| | $REF: "squad_extensions\squad_capture_strategic_point_ext";
| | can_capture: true;
| | can_uncapture: true;
| | capture_rate_multiplier: 1f;
| };
| squad_ability_ext: {
| | $REF: "squad_extensions\squad_ability_ext";
| | abilities: {
| | | ability: "ability\pvp\race_marine\sm_hero_xp_modifier";
| | | ability: "ability\pvp\race_marine\sm_melee_resistance_aura";
| | | ability: "ability\pvp\race_marine\apothecary\sm_resurrect_improved";
| | | ability: "ability\pvp\race_marine\apothecary_1\sm_heal_target_apoth_1";
| | | ability: "ability\pvp\race_marine\apothecary\sm_self_speed_buff";
| | };
| };
| squad_item_slot_ext: {
| | $REF: "squad_extensions\squad_item_slot_ext";
| | num_slots: 4;
| };
| squad_morale_ext: {
| | $REF: "squad_extensions\squad_morale_ext";
| | starting_morale: 300;
| | regen_rate: 35f;
| | bound_broken: 50;
| | bound_inspired_offset: 100;
| | bound_broken_restore_offset: 100;
| };
| squad_leveling_ext: {
| | $REF: "squad_extensions\squad_leveling_ext";
| | auto_allocate_discretionary_points: false;
| | auto_allocate_points: {
| | | health: "primary";
| | | ranged: "primary";
| | | melee: "primary";
| | | energy: "primary";
| | | offense: "none";
| | };
| | max_attribute_points: {
| | | energy: -1;
| | | health: -1;
| | | melee: -1;
| | | ranged: -1;
| | | offense: -1;
| | };
| | max_bonus_attribute_points: {
| | | energy: 0;
| | | health: 0;
| | | melee: 0;
| | | ranged: 0;
| | | offense: 0;
| | };
| | max_level: 4;
| | redirect_xp: false;
| | discretionary_upgrades: {
| | };
| | leveling_override: {
| | | $REF: "";
| | };
| };
| squad_energy_ext: {
| | $REF: "squad_extensions\squad_energy_ext";
| | starting_energy: 200f;
| | regen_rate: 1f;
| | is_armour: false;
| };
| squad_jump_ext: {
| | $REF: "squad_extensions\squad_jump_ext";
| | test_3d_range: false;
| | ui_reticule: {
| | | $REF: "ui\reticule";
| | | texture1: "targeting\target_circle_orange";
| | | texture2: "targeting\target_circle_red";
| | | height: 0.5f;
| | | directional: false;
| | | element_count1: 5;
| | | element_count2: 1;
| | | width: 0.5f;
| | | radius: 25f;
| | | pattern_repeat: 1;
| | | rotation_rate: 0f;
| | };
| | jump_delay_max: 0.3f;
| | jump_info: {
| | | $REF: "types\jump_info";
| | | jump_distance_max: 50f;
| | | jump_height: 25f;
| | | jump_min_height: 0f;
| | | max_forward_speed: 1f;
| | | min_forward_speed: 1f;
| | | aggression: 0f;
| | | breakdown_time: 0.5f;
| | | anticipation_time: 0f;
| | | teleport: true;
| | | number_of_jumpers: 0;
| | | use_special_on_completion_actions: false;
| | | skip_facing: false;
| | | jump_pass_type: "";
| | };
| | requirements: {
| | | required_player_upgrade: {
| | | | $REF: "requirements\required_player_upgrade";
| | | | is_present: true;
| | | | reason: "usage";
| | | | upgrade_name: "";
| | | | ui_name: 9057443;
| | | | min_completed: 1;
| | | | max_completed: 2147483647;
| | | | only_check_in_progress: false;
| | | | skip_upgrade_requirement_check: false;
| | | };
| | };
| | energy_per_distance: 0f;
| | energy_cost: 0f;
| };
| squad_upgrade_ext: {
| | $REF: "squad_extensions\squad_upgrade_ext";
| | upgrades: {
| | | upgrade: "upgrade\pvp\race_marine\wargear\acc_apoth_improved_medical_equipment_1";
| | | upgrade: "upgrade\pvp\race_marine\wargear\arm_apoth_gyro_stabilized_armour_1";
| | | upgrade: "upgrade\pvp\race_marine\wargear\wp_apoth_master_crafted_bolter_1";
| | | upgrade: "upgrade\pvp\race_marine\wargear\wp_apoth_sanguine_chainsword_1";
| | };
| | defaults: {
| | | upgrade: "upgrade\pvp\race_marine\troops\build_menu";
| | };
| };
| squad_requirement_ext: {
| | $REF: "squad_extensions\squad_requirement_ext";
| | requirement_table: {
| | | required_player_upgrade: {
| | | | $REF: "requirements\required_player_upgrade";
| | | | is_present: false;
| | | | reason: "display_and_usage_and_produce";
| | | | upgrade_name: "upgrade\pvp\race_marine\research\grey_knights";
| | | | ui_name: 9066239;
| | | | min_completed: 1;
| | | | max_completed: 2147483647;
| | | | only_check_in_progress: false;
| | | | skip_upgrade_requirement_check: false;
| | | };
| | | require_squad_ratio: {
| | | | $REF: "requirements\require_squad_ratio";
| | | | max_squad_cap: 1;
| | | | squad_name: "sbps\pvp\race_marine\troops\sm_apothecary_1.rbf";
| | | | reason: "usage";
| | | | check_teammates: false;
| | | };
| | };
| };
};
Last edited by BILLYREDNECK34 on Wed 18 Mar, 2020 12:41 am, edited 1 time in total.
BILLYREDNECK34
Level 0
Posts: 5
Joined: Wed 18 Mar, 2020 12:31 am

Re: Creating levelable skills for non-hero units

Postby BILLYREDNECK34 » Wed 18 Mar, 2020 12:40 am

ability entry:

sm_heal_target_apoth_1.rbf

GameData: {
| ability_bag: {
| | activation: "targeted";
| | cost: {
| | | $REF: "cost_table";
| | | popcap: 0f;
| | | requisition: 0f;
| | | power: 0f;
| | | waaagh: 0f;
| | };
| | duration_time: 0.2f;
| | global_recharge: false;
| | recharge_time: 25f;
| | ui: {
| | | ui_direction_required: false;
| | | ui_cursor: {
| | | | cursor_bad: "crsr_dsbld";
| | | | cursor_good: "ablty";
| | | };
| | | ui_info: {
| | | | $REF: "types\ui_info";
| | | | screen_name: 9112928;
| | | | hotkey_name: "sm_apothecary_heal";
| | | | icon_name: "abilities\ability_allied_fire_up";
| | | | help_text: 10000529;
| | | | extra_text: 0;
| | | | brief_text: 9112930;
| | | };
| | | ui_group_position: 10;
| | | ui_group: "command_panel";
| | | ui_area_selection_warning_types: {
| | | | $REF: "types\targets\never";
| | | };
| | | ui_area_selection_error_types: {
| | | | $REF: "types\targets\never";
| | | };
| | | ui_area_selection_radius: 0f;
| | | ui_setfacing: {
| | | | $REF: "ui\set_facing";
| | | | arrow_height: 0f;
| | | | arrow_width: 1f;
| | | | line_uvscale: 0.05f;
| | | | line_thickness: 0.5f;
| | | | line_offset: 0f;
| | | | dot_height: 1f;
| | | | dot_width: 1f;
| | | | dot_angle: 10f;
| | | | dot_spacing: 0.1f;
| | | | arrow_texture: "";
| | | | line_texture: "";
| | | | dot_texture: "";
| | | | centre_texture: "";
| | | | centre_width: 0f;
| | | | centre_height: 0f;
| | | };
| | | speech: {
| | | | has_speech_code: true;
| | | | speech_code_2: {
| | | | | $REF: "types\speech\speech_codes";
| | | | | codes: {
| | | | | | code: "sp";
| | | | | };
| | | | };
| | | | speech_code_3: {
| | | | | $REF: "types\speech\speech_codes";
| | | | | codes: {
| | | | | | code: "hea";
| | | | | | code: "ghe";
| | | | | };
| | | | };
| | | | btn_click_speech: "ui/in_game/x_x_generic_buff";
| | | };
| | | ui_alternate_icon: "";
| | | ui_range: {
| | | | $REF: "ui\reticule";
| | | | texture1: "targeting\target_circle_orange";
| | | | texture2: "targeting\target_circle_red";
| | | | height: 0.5f;
| | | | directional: false;
| | | | element_count1: 5;
| | | | element_count2: 1;
| | | | width: 0.5f;
| | | | radius: 25f;
| | | | pattern_repeat: 1;
| | | | rotation_rate: 0f;
| | | };
| | | ui_modal_action_name: "";
| | | ui_reticule_maxheight_radius: 0f;
| | | ui_modal_action_alt_name: "";
| | | ui_display_count: true;
| | | ui_modal_action_multitarget0: "";
| | | ui_modal_action_multitargets: "";
| | };
| | action_list: {
| | | start_self_actions: {
| | | };
| | | start_target_actions: {
| | | | target_action: {
| | | | | $REF: "actions\ability\target_action";
| | | | | area_info: {
| | | | | | angle_left: 0f;
| | | | | | angle_right: 0f;
| | | | | | radius: 0f;
| | | | | | area_type: "Point";
| | | | | | line_length: 0f;
| | | | | | radius_inner: 0f;
| | | | | };
| | | | | die_with_creator: true;
| | | | | do_recalc_targets: false;
| | | | | duration: 0f;
| | | | | stationary: false;
| | | | | subactions: {
| | | | | | requirement_action: {
| | | | | | | $REF: "actions\ability\requirement_action";
| | | | | | | kill_action_on_failed_requirements: false;
| | | | | | | requirements: {
| | | | | | | | required_player_hero_level: {
| | | | | | | | | $REF: "requirements\required_player_hero_level";
| | | | | | | | | minimum_level: 1;
| | | | | | | | | maximum_level: 1;
| | | | | | | | | reason: "usage";
| | | | | | | | };
| | | | | | | };
| | | | | | | subactions: {
| | | | | | | | heal_action: {
| | | | | | | | | $REF: "actions\ability\heal_action";
| | | | | | | | | amount: 110f;
| | | | | | | | | target_info: {
| | | | | | | | | | $REF: "types\targets\binary_expr";
| | | | | | | | | | operation: "and";
| | | | | | | | | | targets: {
| | | | | | | | | | | allied: {
| | | | | | | | | | | | $REF: "types\targets\allied";
| | | | | | | | | | | };
| | | | | | | | | | | has_unit_type: {
| | | | | | | | | | | | $REF: "types\targets\has_unit_type";
| | | | | | | | | | | | unit_type: "infantry";
| | | | | | | | | | | };
| | | | | | | | | | };
| | | | | | | | | };
| | | | | | | | | heal_type: "health_boost_fixed";
| | | | | | | | | only_unconscious: false;
| | | | | | | | };
| | | | | | | };
| | | | | | | apply_to_target: false;
| | | | | | | validate_subactions: true;
| | | | | | | validate: false;
| | | | | | };
| | | | | | requirement_action: {
| | | | | | | $REF: "actions\ability\requirement_action";
| | | | | | | kill_action_on_failed_requirements: false;
| | | | | | | requirements: {
| | | | | | | | required_player_hero_level: {
| | | | | | | | | $REF: "requirements\required_player_hero_level";
| | | | | | | | | minimum_level: 2;
| | | | | | | | | maximum_level: 2;
| | | | | | | | | reason: "usage";
| | | | | | | | };
| | | | | | | };
| | | | | | | subactions: {
| | | | | | | | heal_action: {
| | | | | | | | | $REF: "actions\ability\heal_action";
| | | | | | | | | amount: 140f;
| | | | | | | | | target_info: {
| | | | | | | | | | $REF: "types\targets\allied";
| | | | | | | | | };
| | | | | | | | | heal_type: "health_boost_fixed";
| | | | | | | | | only_unconscious: false;
| | | | | | | | };
| | | | | | | };
| | | | | | | apply_to_target: false;
| | | | | | | validate_subactions: true;
| | | | | | | validate: false;
| | | | | | };
| | | | | | requirement_action: {
| | | | | | | $REF: "actions\ability\requirement_action";
| | | | | | | kill_action_on_failed_requirements: false;
| | | | | | | requirements: {
| | | | | | | | required_player_hero_level: {
| | | | | | | | | $REF: "requirements\required_player_hero_level";
| | | | | | | | | minimum_level: 3;
| | | | | | | | | maximum_level: 3;
| | | | | | | | | reason: "usage";
| | | | | | | | };
| | | | | | | };
| | | | | | | subactions: {
| | | | | | | | heal_action: {
| | | | | | | | | $REF: "actions\ability\heal_action";
| | | | | | | | | amount: 170f;
| | | | | | | | | target_info: {
| | | | | | | | | | $REF: "types\targets\binary_expr";
| | | | | | | | | | operation: "and";
| | | | | | | | | | targets: {
| | | | | | | | | | | allied: {
| | | | | | | | | | | | $REF: "types\targets\allied";
| | | | | | | | | | | };
| | | | | | | | | | | has_unit_type: {
| | | | | | | | | | | | $REF: "types\targets\has_unit_type";
| | | | | | | | | | | | unit_type: "infantry";
| | | | | | | | | | | };
| | | | | | | | | | };
| | | | | | | | | };
| | | | | | | | | heal_type: "health_boost_fixed";
| | | | | | | | | only_unconscious: false;
| | | | | | | | };
| | | | | | | };
| | | | | | | apply_to_target: false;
| | | | | | | validate_subactions: true;
| | | | | | | validate: false;
| | | | | | };
| | | | | | requirement_action: {
| | | | | | | $REF: "actions\ability\requirement_action";
| | | | | | | kill_action_on_failed_requirements: false;
| | | | | | | requirements: {
| | | | | | | | required_player_hero_level: {
| | | | | | | | | $REF: "requirements\required_player_hero_level";
| | | | | | | | | minimum_level: 1;
| | | | | | | | | maximum_level: 1;
| | | | | | | | | reason: "usage";
| | | | | | | | };
| | | | | | | };
| | | | | | | subactions: {
| | | | | | | | target_action: {
| | | | | | | | | $REF: "actions\ability\target_action";
| | | | | | | | | area_info: {
| | | | | | | | | | angle_left: 0f;
| | | | | | | | | | angle_right: 0f;
| | | | | | | | | | radius: 0f;
| | | | | | | | | | area_type: "Circle";
| | | | | | | | | | line_length: 0f;
| | | | | | | | | | radius_inner: 0f;
| | | | | | | | | };
| | | | | | | | | die_with_creator: true;
| | | | | | | | | do_recalc_targets: false;
| | | | | | | | | duration: 0f;
| | | | | | | | | stationary: false;
| | | | | | | | | subactions: {
| | | | | | | | | | heal_action: {
| | | | | | | | | | | $REF: "actions\ability\heal_action";
| | | | | | | | | | | amount: 40f;
| | | | | | | | | | | target_info: {
| | | | | | | | | | | | $REF: "types\targets\binary_expr";
| | | | | | | | | | | | operation: "and";
| | | | | | | | | | | | targets: {
| | | | | | | | | | | | | binary_expr: {
| | | | | | | | | | | | | | $REF: "types\targets\binary_expr";
| | | | | | | | | | | | | | operation: "and";
| | | | | | | | | | | | | | targets: {
| | | | | | | | | | | | | | | allied: {
| | | | | | | | | | | | | | | | $REF: "types\targets\allied";
| | | | | | | | | | | | | | | };
| | | | | | | | | | | | | | | has_armour_type: {
| | | | | | | | | | | | | | | | $REF: "types\targets\has_armour_type";
| | | | | | | | | | | | | | | | armour_type: "commander";
| | | | | | | | | | | | | | | };
| | | | | | | | | | | | | | };
| | | | | | | | | | | | | };
| | | | | | | | | | | | };
| | | | | | | | | | | };
| | | | | | | | | | | heal_type: "health_boost_fixed";
| | | | | | | | | | | only_unconscious: false;
| | | | | | | | | | };
| | | | | | | | | };
| | | | | | | | | targets: {
| | | | | | | | | | entity_type_to_choose: "";
| | | | | | | | | | exclude_self: false;
| | | | | | | | | | prefer_squads: true;
| | | | | | | | | | target_info: {
| | | | | | | | | | | $REF: "types\targets\binary_expr";
| | | | | | | | | | | operation: "and";
| | | | | | | | | | | targets: {
| | | | | | | | | | | | allied: {
| | | | | | | | | | | | | $REF: "types\targets\allied";
| | | | | | | | | | | | };
| | | | | | | | | | | | has_armour_type: {
| | | | | | | | | | | | | $REF: "types\targets\has_armour_type";
| | | | | | | | | | | | | armour_type: "commander";
| | | | | | | | | | | | };
| | | | | | | | | | | };
| | | | | | | | | | };
| | | | | | | | | };
| | | | | | | | | sweep_type: "none";
| | | | | | | | | use_direction: false;
| | | | | | | | };
| | | | | | | };
| | | | | | | apply_to_target: false;
| | | | | | | validate_subactions: true;
| | | | | | | validate: false;
| | | | | | };
| | | | | | requirement_action: {
| | | | | | | $REF: "actions\ability\requirement_action";
| | | | | | | kill_action_on_failed_requirements: false;
| | | | | | | requirements: {
| | | | | | | | required_player_hero_level: {
| | | | | | | | | $REF: "requirements\required_player_hero_level";
| | | | | | | | | minimum_level: 2;
| | | | | | | | | maximum_level: 2;
| | | | | | | | | reason: "usage";
| | | | | | | | };
| | | | | | | };
| | | | | | | subactions: {
| | | | | | | | heal_action: {
| | | | | | | | | $REF: "actions\ability\heal_action";
| | | | | | | | | amount: 110f;
| | | | | | | | | target_info: {
| | | | | | | | | | $REF: "types\targets\binary_expr";
| | | | | | | | | | operation: "and";
| | | | | | | | | | targets: {
| | | | | | | | | | | allied: {
| | | | | | | | | | | | $REF: "types\targets\allied";
| | | | | | | | | | | };
| | | | | | | | | | | has_armour_type: {
| | | | | | | | | | | | $REF: "types\targets\has_armour_type";
| | | | | | | | | | | | armour_type: "commander";
| | | | | | | | | | | };
| | | | | | | | | | };
| | | | | | | | | };
| | | | | | | | | heal_type: "health_boost_fixed";
| | | | | | | | | only_unconscious: false;
| | | | | | | | };
| | | | | | | };
| | | | | | | apply_to_target: false;
| | | | | | | validate_subactions: true;
| | | | | | | validate: false;
| | | | | | };
| | | | | | requirement_action: {
| | | | | | | $REF: "actions\ability\requirement_action";
| | | | | | | kill_action_on_failed_requirements: false;
| | | | | | | requirements: {
| | | | | | | | required_player_hero_level: {
| | | | | | | | | $REF: "requirements\required_player_hero_level";
| | | | | | | | | minimum_level: 3;
| | | | | | | | | maximum_level: 3;
| | | | | | | | | reason: "usage";
| | | | | | | | };
| | | | | | | };
| | | | | | | subactions: {
| | | | | | | | heal_action: {
| | | | | | | | | $REF: "actions\ability\heal_action";
| | | | | | | | | amount: 180f;
| | | | | | | | | target_info: {
| | | | | | | | | | $REF: "types\targets\binary_expr";
| | | | | | | | | | operation: "and";
| | | | | | | | | | targets: {
| | | | | | | | | | | allied: {
| | | | | | | | | | | | $REF: "types\targets\allied";
| | | | | | | | | | | };
| | | | | | | | | | | has_armour_type: {
| | | | | | | | | | | | $REF: "types\targets\has_armour_type";
| | | | | | | | | | | | armour_type: "commander";
| | | | | | | | | | | };
| | | | | | | | | | };
| | | | | | | | | };
| | | | | | | | | heal_type: "health_boost_fixed";
| | | | | | | | | only_unconscious: false;
| | | | | | | | };
| | | | | | | };
| | | | | | | apply_to_target: false;
| | | | | | | validate_subactions: true;
| | | | | | | validate: false;
| | | | | | };
| | | | | | timed_action: {
| | | | | | | $REF: "actions\ability\timed_action";
| | | | | | | duration: 6f;
| | | | | | | subactions: {
| | | | | | | | animator_set_action: {
| | | | | | | | | $REF: "actions\ability\animator_set_action";
| | | | | | | | | action_name: "ui\abilities\medkit";
| | | | | | | | | fire_and_forget: true;
| | | | | | | | | delay: 0f;
| | | | | | | | };
| | | | | | | };
| | | | | | };
| | | | | | requirement_action: {
| | | | | | | $REF: "actions\ability\requirement_action";
| | | | | | | kill_action_on_failed_requirements: false;
| | | | | | | requirements: {
| | | | | | | | required_player_hero_level: {
| | | | | | | | | $REF: "requirements\required_player_hero_level";
| | | | | | | | | minimum_level: 4;
| | | | | | | | | maximum_level: 4;
| | | | | | | | | reason: "usage";
| | | | | | | | };
| | | | | | | };
| | | | | | | subactions: {
| | | | | | | | heal_action: {
| | | | | | | | | $REF: "actions\ability\heal_action";
| | | | | | | | | amount: 185f;
| | | | | | | | | target_info: {
| | | | | | | | | | $REF: "types\targets\binary_expr";
| | | | | | | | | | operation: "and";
| | | | | | | | | | targets: {
| | | | | | | | | | | allied: {
| | | | | | | | | | | | $REF: "types\targets\allied";
| | | | | | | | | | | };
| | | | | | | | | | | has_unit_type: {
| | | | | | | | | | | | $REF: "types\targets\has_unit_type";
| | | | | | | | | | | | unit_type: "infantry";
| | | | | | | | | | | };
| | | | | | | | | | };
| | | | | | | | | };
| | | | | | | | | heal_type: "health_boost_fixed";
| | | | | | | | | only_unconscious: false;
| | | | | | | | };
| | | | | | | };
| | | | | | | apply_to_target: false;
| | | | | | | validate_subactions: true;
| | | | | | | validate: false;
| | | | | | };
| | | | | | requirement_action: {
| | | | | | | $REF: "actions\ability\requirement_action";
| | | | | | | kill_action_on_failed_requirements: false;
| | | | | | | requirements: {
| | | | | | | | required_player_hero_level: {
| | | | | | | | | $REF: "requirements\required_player_hero_level";
| | | | | | | | | minimum_level: 4;
| | | | | | | | | maximum_level: 4;
| | | | | | | | | reason: "usage";
| | | | | | | | };
| | | | | | | };
| | | | | | | subactions: {
| | | | | | | | heal_action: {
| | | | | | | | | $REF: "actions\ability\heal_action";
| | | | | | | | | amount: 215f;
| | | | | | | | | target_info: {
| | | | | | | | | | $REF: "types\targets\binary_expr";
| | | | | | | | | | operation: "and";
| | | | | | | | | | targets: {
| | | | | | | | | | | allied: {
| | | | | | | | | | | | $REF: "types\targets\allied";
| | | | | | | | | | | };
| | | | | | | | | | | has_armour_type: {
| | | | | | | | | | | | $REF: "types\targets\has_armour_type";
| | | | | | | | | | | | armour_type: "commander";
| | | | | | | | | | | };
| | | | | | | | | | };
| | | | | | | | | };
| | | | | | | | | heal_type: "health_boost_fixed";
| | | | | | | | | only_unconscious: false;
| | | | | | | | };
| | | | | | | };
| | | | | | | apply_to_target: false;
| | | | | | | validate_subactions: true;
| | | | | | | validate: false;
| | | | | | };
| | | | | };
| | | | | targets: {
| | | | | | entity_type_to_choose: "";
| | | | | | exclude_self: false;
| | | | | | prefer_squads: true;
| | | | | | target_info: {
| | | | | | | $REF: "types\targets\binary_expr";
| | | | | | | operation: "and";
| | | | | | | targets: {
| | | | | | | | allied: {
| | | | | | | | | $REF: "types\targets\allied";
| | | | | | | | };
| | | | | | | | has_unit_type: {
| | | | | | | | | $REF: "types\targets\has_unit_type";
| | | | | | | | | unit_type: "infantry";
| | | | | | | | };
| | | | | | | };
| | | | | | };
| | | | | };
| | | | | sweep_type: "none";
| | | | | use_direction: false;
| | | | };
| | | | target_action: {
| | | | | $REF: "actions\ability\target_action";
| | | | | area_info: {
| | | | | | angle_left: 0f;
| | | | | | angle_right: 0f;
| | | | | | radius: 7f;
| | | | | | area_type: "Circle";
| | | | | | line_length: 0f;
| | | | | | radius_inner: 0f;
| | | | | };
| | | | | die_with_creator: true;
| | | | | do_recalc_targets: false;
| | | | | duration: 0f;
| | | | | stationary: false;
| | | | | subactions: {
| | | | | | requirement_action: {
| | | | | | | $REF: "actions\ability\requirement_action";
| | | | | | | kill_action_on_failed_requirements: false;
| | | | | | | requirements: {
| | | | | | | | required_player_upgrade: {
| | | | | | | | | $REF: "requirements\required_player_upgrade";
| | | | | | | | | is_present: true;
| | | | | | | | | reason: "usage";
| | | | | | | | | upgrade_name: "upgrade\pvp\race_marine\wargear\acc_apoth_purification_rites";
| | | | | | | | | ui_name: 0;
| | | | | | | | | min_completed: 1;
| | | | | | | | | max_completed: 2147483647;
| | | | | | | | | only_check_in_progress: false;
| | | | | | | | | skip_upgrade_requirement_check: false;
| | | | | | | | };
| | | | | | | };
| | | | | | | subactions: {
| | | | | | | | requirement_action: {
| | | | | | | | | $REF: "actions\ability\requirement_action";
| | | | | | | | | kill_action_on_failed_requirements: false;
| | | | | | | | | requirements: {
| | | | | | | | | | required_player_hero_level: {
| | | | | | | | | | | $REF: "requirements\required_player_hero_level";
| | | | | | | | | | | minimum_level: 1;
| | | | | | | | | | | maximum_level: 1;
| | | | | | | | | | | reason: "usage";
| | | | | | | | | | };
| | | | | | | | | };
| | | | | | | | | subactions: {
| | | | | | | | | | animator_set_action: {
| | | | | | | | | | | $REF: "actions\ability\animator_set_action";
| | | | | | | | | | | action_name: "abilities\common\up_holy_hit";
| | | | | | | | | | | fire_and_forget: false;
| | | | | | | | | | | delay: 0f;
| | | | | | | | | | };
| | | | | | | | | | damage: {
| | | | | | | | | | | $REF: "actions\ability\damage";
| | | | | | | | | | | damage: 25f;
| | | | | | | | | | | percentage: false;
| | | | | | | | | | | damage_type: "weapons\weapon_damage\pvp\melee_pvp";
| | | | | | | | | | | morale_damage: 0f;
| | | | | | | | | | | courage_damage: 0f;
| | | | | | | | | | | application_type: "apply_damage";
| | | | | | | | | | | show_health_kicker: false;
| | | | | | | | | | | leveling_weapon_type_damage: "unapplicable";
| | | | | | | | | | | extreme_kills: {
| | | | | | | | | | | };
| | | | | | | | | | | death_type: {
| | | | | | | | | | | | $REF: "weapons\weapon_death_type";
| | | | | | | | | | | | ragdoll: 0f;
| | | | | | | | | | | | gibbing: 0f;
| | | | | | | | | | | };
| | | | | | | | | | };
| | | | | | | | | | knockback_action: {
| | | | | | | | | | | $REF: "actions\ability\knockback_action";
| | | | | | | | | | | knockback_type: "weapon_knockback";
| | | | | | | | | | | flight_distance: 6f;
| | | | | | | | | | | scatter_angle: 0f;
| | | | | | | | | | | flight_loft: 0.6f;
| | | | | | | | | | | scatter_flight: 25f;
| | | | | | | | | | | domino_strength: 60f;
| | | | | | | | | | | crush_type: "passability\light_crusher";
| | | | | | | | | | | levitate: {
| | | | | | | | | | | | duration: 0f;
| | | | | | | | | | | | scatter_angle: 0f;
| | | | | | | | | | | };
| | | | | | | | | | | specials: {
| | | | | | | | | | | | knock_towards_executer: false;
| | | | | | | | | | | | ignore_pathfinding: false;
| | | | | | | | | | | };
| | | | | | | | | | };
| | | | | | | | | };
| | | | | | | | | apply_to_target: false;
| | | | | | | | | validate_subactions: true;
| | | | | | | | | validate: false;
| | | | | | | | };
| | | | | | | | requirement_action: {
| | | | | | | | | $REF: "actions\ability\requirement_action";
| | | | | | | | | kill_action_on_failed_requirements: false;
| | | | | | | | | requirements: {
| | | | | | | | | | required_player_hero_level: {
| | | | | | | | | | | $REF: "requirements\required_player_hero_level";
| | | | | | | | | | | minimum_level: 2;
| | | | | | | | | | | maximum_level: 2;
| | | | | | | | | | | reason: "usage";
| | | | | | | | | | };
| | | | | | | | | };
| | | | | | | | | subactions: {
| | | | | | | | | | animator_set_action: {
| | | | | | | | | | | $REF: "actions\ability\animator_set_action";
| | | | | | | | | | | action_name: "abilities\common\up_holy_hit";
| | | | | | | | | | | fire_and_forget: false;
| | | | | | | | | | | delay: 0f;
| | | | | | | | | | };
| | | | | | | | | | damage: {
| | | | | | | | | | | $REF: "actions\ability\damage";
| | | | | | | | | | | damage: 28f;
| | | | | | | | | | | percentage: false;
| | | | | | | | | | | damage_type: "weapons\weapon_damage\pvp\melee_pvp";
| | | | | | | | | | | morale_damage: 0f;
| | | | | | | | | | | courage_damage: 0f;
| | | | | | | | | | | application_type: "apply_damage";
| | | | | | | | | | | show_health_kicker: false;
| | | | | | | | | | | leveling_weapon_type_damage: "unapplicable";
| | | | | | | | | | | extreme_kills: {
| | | | | | | | | | | };
| | | | | | | | | | | death_type: {
| | | | | | | | | | | | $REF: "weapons\weapon_death_type";
| | | | | | | | | | | | ragdoll: 0f;
| | | | | | | | | | | | gibbing: 0f;
| | | | | | | | | | | };
| | | | | | | | | | };
| | | | | | | | | | knockback_action: {
| | | | | | | | | | | $REF: "actions\ability\knockback_action";
| | | | | | | | | | | knockback_type: "weapon_knockback";
| | | | | | | | | | | flight_distance: 6f;
| | | | | | | | | | | scatter_angle: 0f;
| | | | | | | | | | | flight_loft: 0.6f;
| | | | | | | | | | | scatter_flight: 25f;
| | | | | | | | | | | domino_strength: 60f;
| | | | | | | | | | | crush_type: "passability\light_crusher";
| | | | | | | | | | | levitate: {
| | | | | | | | | | | | duration: 0f;
| | | | | | | | | | | | scatter_angle: 0f;
| | | | | | | | | | | };
| | | | | | | | | | | specials: {
| | | | | | | | | | | | knock_towards_executer: false;
| | | | | | | | | | | | ignore_pathfinding: false;
| | | | | | | | | | | };
| | | | | | | | | | };
| | | | | | | | | };
| | | | | | | | | apply_to_target: false;
| | | | | | | | | validate_subactions: true;
| | | | | | | | | validate: false;
| | | | | | | | };
| | | | | | | | requirement_action: {
| | | | | | | | | $REF: "actions\ability\requirement_action";
| | | | | | | | | kill_action_on_failed_requirements: false;
| | | | | | | | | requirements: {
| | | | | | | | | | required_player_hero_level: {
| | | | | | | | | | | $REF: "requirements\required_player_hero_level";
| | | | | | | | | | | minimum_level: 3;
| | | | | | | | | | | maximum_level: 3;
| | | | | | | | | | | reason: "usage";
| | | | | | | | | | };
| | | | | | | | | };
| | | | | | | | | subactions: {
| | | | | | | | | | animator_set_action: {
| | | | | | | | | | | $REF: "actions\ability\animator_set_action";
| | | | | | | | | | | action_name: "abilities\common\up_holy_hit";
| | | | | | | | | | | fire_and_forget: false;
| | | | | | | | | | | delay: 0f;
| | | | | | | | | | };
| | | | | | | | | | damage: {
| | | | | | | | | | | $REF: "actions\ability\damage";
| | | | | | | | | | | damage: 31f;
| | | | | | | | | | | percentage: false;
| | | | | | | | | | | damage_type: "weapons\weapon_damage\pvp\melee_pvp";
| | | | | | | | | | | morale_damage: 0f;
| | | | | | | | | | | courage_damage: 0f;
| | | | | | | | | | | application_type: "apply_damage";
| | | | | | | | | | | show_health_kicker: false;
| | | | | | | | | | | leveling_weapon_type_damage: "unapplicable";
| | | | | | | | | | | extreme_kills: {
| | | | | | | | | | | };
| | | | | | | | | | | death_type: {
| | | | | | | | | | | | $REF: "weapons\weapon_death_type";
| | | | | | | | | | | | ragdoll: 0f;
| | | | | | | | | | | | gibbing: 0f;
| | | | | | | | | | | };
| | | | | | | | | | };
| | | | | | | | | | knockback_action: {
| | | | | | | | | | | $REF: "actions\ability\knockback_action";
| | | | | | | | | | | knockback_type: "weapon_knockback";
| | | | | | | | | | | flight_distance: 6f;
| | | | | | | | | | | scatter_angle: 0f;
| | | | | | | | | | | flight_loft: 0.6f;
| | | | | | | | | | | scatter_flight: 25f;
| | | | | | | | | | | domino_strength: 60f;
| | | | | | | | | | | crush_type: "passability\light_crusher";
| | | | | | | | | | | levitate: {
| | | | | | | | | | | | duration: 0f;
| | | | | | | | | | | | scatter_angle: 0f;
| | | | | | | | | | | };
| | | | | | | | | | | specials: {
| | | | | | | | | | | | knock_towards_executer: false;
| | | | | | | | | | | | ignore_pathfinding: false;
| | | | | | | | | | | };
| | | | | | | | | | };
| | | | | | | | | };
| | | | | | | | | apply_to_target: false;
| | | | | | | | | validate_subactions: true;
| | | | | | | | | validate: false;
| | | | | | | | };
| | | | | | | | requirement_action: {
| | | | | | | | | $REF: "actions\ability\requirement_action";
| | | | | | | | | kill_action_on_failed_requirements: false;
| | | | | | | | | requirements: {
| | | | | | | | | | required_player_hero_level: {
| | | | | | | | | | | $REF: "requirements\required_player_hero_level";
| | | | | | | | | | | minimum_level: 4;
| | | | | | | | | | | maximum_level: 4;
| | | | | | | | | | | reason: "usage";
| | | | | | | | | | };
| | | | | | | | | };
| | | | | | | | | subactions: {
| | | | | | | | | | animator_set_action: {
| | | | | | | | | | | $REF: "actions\ability\animator_set_action";
| | | | | | | | | | | action_name: "abilities\common\up_holy_hit";
| | | | | | | | | | | fire_and_forget: false;
| | | | | | | | | | | delay: 0f;
| | | | | | | | | | };
| | | | | | | | | | damage: {
| | | | | | | | | | | $REF: "actions\ability\damage";
| | | | | | | | | | | damage: 34f;
| | | | | | | | | | | percentage: false;
| | | | | | | | | | | damage_type: "weapons\weapon_damage\pvp\melee_pvp";
| | | | | | | | | | | morale_damage: 0f;
| | | | | | | | | | | courage_damage: 0f;
| | | | | | | | | | | application_type: "apply_damage";
| | | | | | | | | | | show_health_kicker: false;
| | | | | | | | | | | leveling_weapon_type_damage: "unapplicable";
| | | | | | | | | | | extreme_kills: {
| | | | | | | | | | | };
| | | | | | | | | | | death_type: {
| | | | | | | | | | | | $REF: "weapons\weapon_death_type";
| | | | | | | | | | | | ragdoll: 0f;
| | | | | | | | | | | | gibbing: 0f;
| | | | | | | | | | | };
| | | | | | | | | | };
| | | | | | | | | | knockback_action: {
| | | | | | | | | | | $REF: "actions\ability\knockback_action";
| | | | | | | | | | | knockback_type: "weapon_knockback";
| | | | | | | | | | | flight_distance: 6f;
| | | | | | | | | | | scatter_angle: 0f;
| | | | | | | | | | | flight_loft: 0.6f;
| | | | | | | | | | | scatter_flight: 25f;
| | | | | | | | | | | domino_strength: 60f;
| | | | | | | | | | | crush_type: "passability\light_crusher";
| | | | | | | | | | | levitate: {
| | | | | | | | | | | | duration: 0f;
| | | | | | | | | | | | scatter_angle: 0f;
| | | | | | | | | | | };
| | | | | | | | | | | specials: {
| | | | | | | | | | | | knock_towards_executer: false;
| | | | | | | | | | | | ignore_pathfinding: false;
| | | | | | | | | | | };
| | | | | | | | | | };
| | | | | | | | | };
| | | | | | | | | apply_to_target: false;
| | | | | | | | | validate_subactions: true;
| | | | | | | | | validate: false;
| | | | | | | | };
| | | | | | | | requirement_action: {
| | | | | | | | | $REF: "actions\ability\requirement_action";
| | | | | | | | | kill_action_on_failed_requirements: false;
| | | | | | | | | requirements: {
| | | | | | | | | | required_player_hero_level: {
| | | | | | | | | | | $REF: "requirements\required_player_hero_level";
| | | | | | | | | | | minimum_level: 5;
| | | | | | | | | | | maximum_level: 5;
| | | | | | | | | | | reason: "usage";
| | | | | | | | | | };
| | | | | | | | | };
| | | | | | | | | subactions: {
| | | | | | | | | | animator_set_action: {
| | | | | | | | | | | $REF: "actions\ability\animator_set_action";
| | | | | | | | | | | action_name: "abilities\common\up_holy_hit_green";
| | | | | | | | | | | fire_and_forget: false;
| | | | | | | | | | | delay: 0f;
| | | | | | | | | | };
| | | | | | | | | | damage: {
| | | | | | | | | | | $REF: "actions\ability\damage";
| | | | | | | | | | | damage: 37f;
| | | | | | | | | | | percentage: false;
| | | | | | | | | | | damage_type: "weapons\weapon_damage\pvp\melee_pvp";
| | | | | | | | | | | morale_damage: 0f;
| | | | | | | | | | | courage_damage: 0f;
| | | | | | | | | | | application_type: "apply_damage";
| | | | | | | | | | | show_health_kicker: false;
| | | | | | | | | | | leveling_weapon_type_damage: "unapplicable";
| | | | | | | | | | | extreme_kills: {
| | | | | | | | | | | };
| | | | | | | | | | | death_type: {
| | | | | | | | | | | | $REF: "weapons\weapon_death_type";
| | | | | | | | | | | | ragdoll: 0f;
| | | | | | | | | | | | gibbing: 0f;
| | | | | | | | | | | };
| | | | | | | | | | };
| | | | | | | | | | knockback_action: {
| | | | | | | | | | | $REF: "actions\ability\knockback_action";
| | | | | | | | | | | knockback_type: "weapon_knockback";
| | | | | | | | | | | flight_distance: 6f;
| | | | | | | | | | | scatter_angle: 0f;
| | | | | | | | | | | flight_loft: 0.6f;
| | | | | | | | | | | scatter_flight: 25f;
| | | | | | | | | | | domino_strength: 60f;
| | | | | | | | | | | crush_type: "passability\light_crusher";
| | | | | | | | | | | levitate: {
| | | | | | | | | | | | duration: 0f;
| | | | | | | | | | | | scatter_angle: 0f;
| | | | | | | | | | | };
| | | | | | | | | | | specials: {
| | | | | | | | | | | | knock_towards_executer: false;
| | | | | | | | | | | | ignore_pathfinding: false;
| | | | | | | | | | | };
| | | | | | | | | | };
| | | | | | | | | };
| | | | | | | | | apply_to_target: false;
| | | | | | | | | validate_subactions: true;
| | | | | | | | | validate: false;
| | | | | | | | };
| | | | | | | | requirement_action: {
| | | | | | | | | $REF: "actions\ability\requirement_action";
| | | | | | | | | kill_action_on_failed_requirements: false;
| | | | | | | | | requirements: {
| | | | | | | | | | required_player_hero_level: {
| | | | | | | | | | | $REF: "requirements\required_player_hero_level";
| | | | | | | | | | | minimum_level: 6;
| | | | | | | | | | | maximum_level: 6;
| | | | | | | | | | | reason: "usage";
| | | | | | | | | | };
| | | | | | | | | };
| | | | | | | | | subactions: {
| | | | | | | | | | animator_set_action: {
| | | | | | | | | | | $REF: "actions\ability\animator_set_action";
| | | | | | | | | | | action_name: "abilities\common\up_holy_hit_green";
| | | | | | | | | | | fire_and_forget: false;
| | | | | | | | | | | delay: 0f;
| | | | | | | | | | };
| | | | | | | | | | damage: {
| | | | | | | | | | | $REF: "actions\ability\damage";
| | | | | | | | | | | damage: 40f;
| | | | | | | | | | | percentage: false;
| | | | | | | | | | | damage_type: "weapons\weapon_damage\pvp\melee_pvp";
| | | | | | | | | | | morale_damage: 0f;
| | | | | | | | | | | courage_damage: 0f;
| | | | | | | | | | | application_type: "apply_damage";
| | | | | | | | | | | show_health_kicker: false;
| | | | | | | | | | | leveling_weapon_type_damage: "unapplicable";
| | | | | | | | | | | extreme_kills: {
| | | | | | | | | | | };
| | | | | | | | | | | death_type: {
| | | | | | | | | | | | $REF: "weapons\weapon_death_type";
| | | | | | | | | | | | ragdoll: 0f;
| | | | | | | | | | | | gibbing: 0f;
| | | | | | | | | | | };
| | | | | | | | | | };
| | | | | | | | | | knockback_action: {
| | | | | | | | | | | $REF: "actions\ability\knockback_action";
| | | | | | | | | | | knockback_type: "weapon_knockback";
| | | | | | | | | | | flight_distance: 6f;
| | | | | | | | | | | scatter_angle: 0f;
| | | | | | | | | | | flight_loft: 0.6f;
| | | | | | | | | | | scatter_flight: 25f;
| | | | | | | | | | | domino_strength: 60f;
| | | | | | | | | | | crush_type: "passability\light_crusher";
| | | | | | | | | | | levitate: {
| | | | | | | | | | | | duration: 0f;
| | | | | | | | | | | | scatter_angle: 0f;
| | | | | | | | | | | };
| | | | | | | | | | | specials: {
| | | | | | | | | | | | knock_towards_executer: false;
| | | | | | | | | | | | ignore_pathfinding: false;
| | | | | | | | | | | };
| | | | | | | | | | };
| | | | | | | | | };
| | | | | | | | | apply_to_target: false;
| | | | | | | | | validate_subactions: true;
| | | | | | | | | validate: false;
| | | | | | | | };
| | | | | | | | requirement_action: {
| | | | | | | | | $REF: "actions\ability\requirement_action";
| | | | | | | | | kill_action_on_failed_requirements: false;
| | | | | | | | | requirements: {
| | | | | | | | | | required_player_hero_level: {
| | | | | | | | | | | $REF: "requirements\required_player_hero_level";
| | | | | | | | | | | minimum_level: 7;
| | | | | | | | | | | maximum_level: 7;
| | | | | | | | | | | reason: "usage";
| | | | | | | | | | };
| | | | | | | | | };
| | | | | | | | | subactions: {
| | | | | | | | | | animator_set_action: {
| | | | | | | | | | | $REF: "actions\ability\animator_set_action";
| | | | | | | | | | | action_name: "abilities\common\up_holy_hit_green";
| | | | | | | | | | | fire_and_forget: false;
| | | | | | | | | | | delay: 0f;
| | | | | | | | | | };
| | | | | | | | | | damage: {
| | | | | | | | | | | $REF: "actions\ability\damage";
| | | | | | | | | | | damage: 43f;
| | | | | | | | | | | percentage: false;
| | | | | | | | | | | damage_type: "weapons\weapon_damage\pvp\melee_pvp";
| | | | | | | | | | | morale_damage: 0f;
| | | | | | | | | | | courage_damage: 0f;
| | | | | | | | | | | application_type: "apply_damage";
| | | | | | | | | | | show_health_kicker: false;
| | | | | | | | | | | leveling_weapon_type_damage: "unapplicable";
| | | | | | | | | | | extreme_kills: {
| | | | | | | | | | | };
| | | | | | | | | | | death_type: {
| | | | | | | | | | | | $REF: "weapons\weapon_death_type";
| | | | | | | | | | | | ragdoll: 0f;
| | | | | | | | | | | | gibbing: 0f;
| | | | | | | | | | | };
| | | | | | | | | | };
| | | | | | | | | | knockback_action: {
| | | | | | | | | | | $REF: "actions\ability\knockback_action";
| | | | | | | | | | | knockback_type: "weapon_knockback";
| | | | | | | | | | | flight_distance: 6f;
| | | | | | | | | | | scatter_angle: 0f;
| | | | | | | | | | | flight_loft: 0.6f;
| | | | | | | | | | | scatter_flight: 25f;
| | | | | | | | | | | domino_strength: 60f;
| | | | | | | | | | | crush_type: "passability\light_crusher";
| | | | | | | | | | | levitate: {
| | | | | | | | | | | | duration: 0f;
| | | | | | | | | | | | scatter_angle: 0f;
| | | | | | | | | | | };
| | | | | | | | | | | specials: {
| | | | | | | | | | | | knock_towards_executer: false;
| | | | | | | | | | | | ignore_pathfinding: false;
| | | | | | | | | | | };
| | | | | | | | | | };
| | | | | | | | | };
| | | | | | | | | apply_to_target: false;
| | | | | | | | | validate_subactions: true;
| | | | | | | | | validate: false;
| | | | | | | | };
| | | | | | | | requirement_action: {
| | | | | | | | | $REF: "actions\ability\requirement_action";
| | | | | | | | | kill_action_on_failed_requirements: false;
| | | | | | | | | requirements: {
| | | | | | | | | | required_player_hero_level: {
| | | | | | | | | | | $REF: "requirements\required_player_hero_level";
| | | | | | | | | | | minimum_level: 8;
| | | | | | | | | | | maximum_level: 8;
| | | | | | | | | | | reason: "usage";
| | | | | | | | | | };
| | | | | | | | | };
| | | | | | | | | subactions: {
| | | | | | | | | | animator_set_action: {
| | | | | | | | | | | $REF: "actions\ability\animator_set_action";
| | | | | | | | | | | action_name: "abilities\common\up_holy_hit_green";
| | | | | | | | | | | fire_and_forget: false;
| | | | | | | | | | | delay: 0f;
| | | | | | | | | | };
| | | | | | | | | | damage: {
| | | | | | | | | | | $REF: "actions\ability\damage";
| | | | | | | | | | | damage: 46f;
| | | | | | | | | | | percentage: false;
| | | | | | | | | | | damage_type: "weapons\weapon_damage\pvp\melee_pvp";
| | | | | | | | | | | morale_damage: 0f;
| | | | | | | | | | | courage_damage: 0f;
| | | | | | | | | | | application_type: "apply_damage";
| | | | | | | | | | | show_health_kicker: false;
| | | | | | | | | | | leveling_weapon_type_damage: "unapplicable";
| | | | | | | | | | | extreme_kills: {
| | | | | | | | | | | };
| | | | | | | | | | | death_type: {
| | | | | | | | | | | | $REF: "weapons\weapon_death_type";
| | | | | | | | | | | | ragdoll: 0f;
| | | | | | | | | | | | gibbing: 0f;
| | | | | | | | | | | };
| | | | | | | | | | };
| | | | | | | | | | knockback_action: {
| | | | | | | | | | | $REF: "actions\ability\knockback_action";
| | | | | | | | | | | knockback_type: "weapon_knockback";
| | | | | | | | | | | flight_distance: 6f;
| | | | | | | | | | | scatter_angle: 0f;
| | | | | | | | | | | flight_loft: 0.6f;
| | | | | | | | | | | scatter_flight: 25f;
| | | | | | | | | | | domino_strength: 60f;
| | | | | | | | | | | crush_type: "passability\light_crusher";
| | | | | | | | | | | levitate: {
| | | | | | | | | | | | duration: 0f;
| | | | | | | | | | | | scatter_angle: 0f;
| | | | | | | | | | | };
| | | | | | | | | | | specials: {
| | | | | | | | | | | | knock_towards_executer: false;
| | | | | | | | | | | | ignore_pathfinding: false;
| | | | | | | | | | | };
| | | | | | | | | | };
| | | | | | | | | };
| | | | | | | | | apply_to_target: false;
| | | | | | | | | validate_subactions: true;
| | | | | | | | | validate: false;
| | | | | | | | };
| | | | | | | | requirement_action: {
| | | | | | | | | $REF: "actions\ability\requirement_action";
| | | | | | | | | kill_action_on_failed_requirements: false;
| | | | | | | | | requirements: {
| | | | | | | | | | required_player_hero_level: {
| | | | | | | | | | | $REF: "requirements\required_player_hero_level";
| | | | | | | | | | | minimum_level: 9;
| | | | | | | | | | | maximum_level: 9;
| | | | | | | | | | | reason: "usage";
| | | | | | | | | | };
| | | | | | | | | };
| | | | | | | | | subactions: {
| | | | | | | | | | animator_set_action: {
| | | | | | | | | | | $REF: "actions\ability\animator_set_action";
| | | | | | | | | | | action_name: "abilities\common\up_holy_hit_red";
| | | | | | | | | | | fire_and_forget: false;
| | | | | | | | | | | delay: 0f;
| | | | | | | | | | };
| | | | | | | | | | damage: {
| | | | | | | | | | | $REF: "actions\ability\damage";
| | | | | | | | | | | damage: 49f;
| | | | | | | | | | | percentage: false;
| | | | | | | | | | | damage_type: "weapons\weapon_damage\pvp\melee_pvp";
| | | | | | | | | | | morale_damage: 0f;
| | | | | | | | | | | courage_damage: 0f;
| | | | | | | | | | | application_type: "apply_damage";
| | | | | | | | | | | show_health_kicker: false;
| | | | | | | | | | | leveling_weapon_type_damage: "unapplicable";
| | | | | | | | | | | extreme_kills: {
| | | | | | | | | | | };
| | | | | | | | | | | death_type: {
| | | | | | | | | | | | $REF: "weapons\weapon_death_type";
| | | | | | | | | | | | ragdoll: 0f;
| | | | | | | | | | | | gibbing: 0f;
| | | | | | | | | | | };
| | | | | | | | | | };
| | | | | | | | | | knockback_action: {
| | | | | | | | | | | $REF: "actions\ability\knockback_action";
| | | | | | | | | | | knockback_type: "weapon_knockback";
| | | | | | | | | | | flight_distance: 6f;
| | | | | | | | | | | scatter_angle: 0f;
| | | | | | | | | | | flight_loft: 0.6f;
| | | | | | | | | | | scatter_flight: 25f;
| | | | | | | | | | | domino_strength: 60f;
| | | | | | | | | | | crush_type: "passability\light_crusher";
| | | | | | | | | | | levitate: {
| | | | | | | | | | | | duration: 0f;
| | | | | | | | | | | | scatter_angle: 0f;
| | | | | | | | | | | };
| | | | | | | | | | | specials: {
| | | | | | | | | | | | knock_towards_executer: false;
| | | | | | | | | | | | ignore_pathfinding: false;
| | | | | | | | | | | };
| | | | | | | | | | };
| | | | | | | | | };
| | | | | | | | | apply_to_target: false;
| | | | | | | | | validate_subactions: true;
| | | | | | | | | validate: false;
| | | | | | | | };
| | | | | | | | requirement_action: {
| | | | | | | | | $REF: "actions\ability\requirement_action";
| | | | | | | | | kill_action_on_failed_requirements: false;
| | | | | | | | | requirements: {
| | | | | | | | | | required_player_hero_level: {
| | | | | | | | | | | $REF: "requirements\required_player_hero_level";
| | | | | | | | | | | minimum_level: 10;
| | | | | | | | | | | maximum_level: 10;
| | | | | | | | | | | reason: "usage";
| | | | | | | | | | };
| | | | | | | | | };
| | | | | | | | | subactions: {
| | | | | | | | | | animator_set_action: {
| | | | | | | | | | | $REF: "actions\ability\animator_set_action";
| | | | | | | | | | | action_name: "abilities\common\up_holy_hit_red";
| | | | | | | | | | | fire_and_forget: false;
| | | | | | | | | | | delay: 0f;
| | | | | | | | | | };
| | | | | | | | | | damage: {
| | | | | | | | | | | $REF: "actions\ability\damage";
| | | | | | | | | | | damage: 52f;
| | | | | | | | | | | percentage: false;
| | | | | | | | | | | damage_type: "weapons\weapon_damage\pvp\melee_pvp";
| | | | | | | | | | | morale_damage: 0f;
| | | | | | | | | | | courage_damage: 0f;
| | | | | | | | | | | application_type: "apply_damage";
| | | | | | | | | | | show_health_kicker: false;
| | | | | | | | | | | leveling_weapon_type_damage: "unapplicable";
| | | | | | | | | | | extreme_kills: {
| | | | | | | | | | | };
| | | | | | | | | | | death_type: {
| | | | | | | | | | | | $REF: "weapons\weapon_death_type";
| | | | | | | | | | | | ragdoll: 0f;
| | | | | | | | | | | | gibbing: 0f;
| | | | | | | | | | | };
| | | | | | | | | | };
| | | | | | | | | | knockback_action: {
| | | | | | | | | | | $REF: "actions\ability\knockback_action";
| | | | | | | | | | | knockback_type: "weapon_knockback";
| | | | | | | | | | | flight_distance: 6f;
| | | | | | | | | | | scatter_angle: 0f;
| | | | | | | | | | | flight_loft: 0.6f;
| | | | | | | | | | | scatter_flight: 25f;
| | | | | | | | | | | domino_strength: 60f;
| | | | | | | | | | | crush_type: "passability\light_crusher";
| | | | | | | | | | | levitate: {
| | | | | | | | | | | | duration: 0f;
| | | | | | | | | | | | scatter_angle: 0f;
| | | | | | | | | | | };
| | | | | | | | | | | specials: {
| | | | | | | | | | | | knock_towards_executer: false;
| | | | | | | | | | | | ignore_pathfinding: false;
| | | | | | | | | | | };
| | | | | | | | | | };
| | | | | | | | | };
| | | | | | | | | apply_to_target: false;
| | | | | | | | | validate_subactions: true;
| | | | | | | | | validate: false;
| | | | | | | | };
| | | | | | | };
| | | | | | | apply_to_target: false;
| | | | | | | validate_subactions: true;
| | | | | | | validate: false;
| | | | | | };
| | | | | };
| | | | | targets: {
| | | | | | entity_type_to_choose: "";
| | | | | | exclude_self: true;
| | | | | | prefer_squads: false;
| | | | | | target_info: {
| | | | | | | $REF: "types\targets\binary_expr";
| | | | | | | operation: "and";
| | | | | | | targets: {
| | | | | | | | enemy: {
| | | | | | | | | $REF: "types\targets\enemy";
| | | | | | | | };
| | | | | | | | unary_expr: {
| | | | | | | | | $REF: "types\targets\unary_expr";
| | | | | | | | | operation: "not";
| | | | | | | | | target: {
| | | | | | | | | | $REF: "types\targets\has_armour_type";
| | | | | | | | | | armour_type: "building";
| | | | | | | | | };
| | | | | | | | };
| | | | | | | | unary_expr: {
| | | | | | | | | $REF: "types\targets\unary_expr";
| | | | | | | | | operation: "not";
| | | | | | | | | target: {
| | | | | | | | | | $REF: "types\targets\has_armour_type";
| | | | | | | | | | armour_type: "building_defence";
| | | | | | | | | };
| | | | | | | | };
| | | | | | | | unary_expr: {
| | | | | | | | | $REF: "types\targets\unary_expr";
| | | | | | | | | operation: "not";
| | | | | | | | | target: {
| | | | | | | | | | $REF: "types\targets\has_armour_type";
| | | | | | | | | | armour_type: "building_light";
| | | | | | | | | };
| | | | | | | | };
| | | | | | | | unary_expr: {
| | | | | | | | | $REF: "types\targets\unary_expr";
| | | | | | | | | operation: "not";
| | | | | | | | | target: {
| | | | | | | | | | $REF: "types\targets\has_armour_type";
| | | | | | | | | | armour_type: "vehicle";
| | | | | | | | | };
| | | | | | | | };
| | | | | | | };
| | | | | | };
| | | | | };
| | | | | sweep_type: "none";
| | | | | use_direction: false;
| | | | };
| | | };
| | | end_self_actions: {
| | | };
| | | end_target_actions: {
| | | };
| | };
| | casters_can_evacuate: false;
| | disable_combat: false;
| | engage_combat: false;
| | initial_delay_time: 0f;
| | initial_recharge: false;
| | requirements: {
| | | required_not_in_building: {
| | | | $REF: "requirements\required_not_in_building";
| | | | reason: "";
| | | };
| | };
| | targeted: {
| | | can_interrupt: false;
| | | can_target_in_fow: true;
| | | facing_angle: 5f;
| | | facing_ignore: false;
| | | move_back: false;
| | | move_back_distance: 0f;
| | | range: 25f;
| | | range_ignore: false;
| | | caster_close_in_distance: 2f;
| | | chase_target: false;
| | | final_close_in_distance: 0f;
| | | is_default_action: false;
| | | target: "squad";
| | | break_formation_distance: 1f;
| | | line_of_sight_ignore: true;
| | | target_adjust: "";
| | | directional_type: "none";
| | | min_range: 0f;
| | | can_retreat_interrupt: false;
| | | unconscious_ignore: true;
| | | range_ignore_after_ability_start: false;
| | | number_of_targets: 1;
| | | proxy_caster_range: -1f;
| | };
| | entity_busy_time: 0f;
| | validate_actions: true;
| | user_interface: {
| | | icon_index: 0;
| | | icon_file_path: "space_marines/icon_abilities/buff/sm_apothecary_heal";
| | | max_range_indicator: "ui\area_outlines\shapes\circle\default_circle";
| | | direction_indicator: "";
| | | direction_indicator_length: 0f;
| | | is_global_mp: false;
| | | is_per_entity_cost: false;
| | | min_range_indicator: "ui\area_outlines\shapes\circle\min_range";
| | };
| | shared_timer_player_wide: false;
| | energy_cost: 60f;
| | squad_caster: "squad";
| | limit_break_points_cost: 0f;
| | requirements_to_sustain: {
| | };
| | requirements_to_reveal: {
| | };
| | toggled_recharge_time_on: 0f;
| | toggled_recharge_time_off: 0f;
| | requirements_on_target_to_sustain: {
| | };
| | override_ability_plan: "";
| | shared_timer: "";
| | castable_in_buildings_or_holds: false;
| | incoming_munition_type_override: "";
| | disable_direct_fire_while_active: true;
| | stop_ability_on_retreat: true;
| | disable_ability_on_worship: true;
| | refundability: "use_actions";
| | can_work_in_retreat: false;
| };
};
User avatar
Black Relic
Level 4
Posts: 844
Joined: Mon 29 Jul, 2013 3:05 am
Location: United States
Contact:

Re: Creating levelable skills for non-hero units

Postby Black Relic » Wed 18 Mar, 2020 10:32 pm

you could look at the hero apothocary's heal ability. it does exactly this. And it will work. im doing something similar for a physic power decreasing in damage the higher level the target is. It all mainly has to do with a requirement action that states the required level. Then you do the same thing for the next level.

But still i say look at the apothocary's heal to help you out to help you out.

If you are looking the level skill where you do not require the unit itself to gain levels, make the game track sim variables and then have the ability do a base effect then use requirement actions that state if they have "x" amount of "this" variable the ability also does this. requirement actions help alot imo. But alot of the variable stuff is trial and error. I had a a hard time getting a passive ability to work on something after you have captured another thing and then make the ability deactivate when an enemy unit was nearby. Works now. But it took me like 7 hours.
"...With every strike of his sword, with every word of his speech, does he reaffirm the ideals of our honored master..." -From the Teachings of Roboute Guilliman as laid down in the Apocrypha of Skaros. Space Marines Codex pg. 54
BILLYREDNECK34
Level 0
Posts: 5
Joined: Wed 18 Mar, 2020 12:31 am

Re: Creating levelable skills for non-hero units

Postby BILLYREDNECK34 » Thu 19 Mar, 2020 1:17 am

I'll take a look at that. Thank you.

Return to “Modding”



Who is online

Users browsing this forum: No registered users and 14 guests