HiveSpirit wrote:How does that "script"/code.. whats it called? Im looking for it in tyr_buff_self_reverse_synapse.rbf but just cant find it, is it in the same file?
"speed_maximum_modifier" Is this such an example?
The Reverse Synapse is. The way to prevent a certain amount of stacking in this case is the use of sim variables (sim_var in the file). Here's the code that defines the buff stacking; it's kind of long:
Code: Select all
target_action: {
| $REF: "actions\ability\target_action";
| area_info: {
| | angle_left: 0f;
| | angle_right: 0f;
| | radius: 32f;
| | area_type: "Circle";
| | line_length: 0f;
| | radius_inner: 0f;
| };
| die_with_creator: true;
| do_recalc_targets: false;
| duration: 1f;
| stationary: false;
| subactions: {
| | fire_and_forget_action: {
| | | $REF: "actions\ability\fire_and_forget_action";
| | | sub_actions: {
| | | | on_self_action: {
| | | | | $REF: "actions\ability\on_self_action";
| | | | | subactions: {
| | | | | | timed_action: {
| | | | | | | $REF: "actions\ability\timed_action";
| | | | | | | duration: 1f;
| | | | | | | subactions: {
| | | | | | | | requirement_action: {
| | | | | | | | | $REF: "actions\ability\requirement_action";
| | | | | | | | | kill_action_on_failed_requirements: false;
| | | | | | | | | requirements: {
| | | | | | | | | | required_squad_sim_var: {
| | | | | | | | | | | $REF: "requirements\required_squad_sim_var";
| | | | | | | | | | | sim_variable: "test_variable";
| | | | | | | | | | | comparison: "less_or_equal";
| | | | | | | | | | | value: 33f;
| | | | | | | | | | | reason: "usage";
| | | | | | | | | | | ui_name: 0;
| | | | | | | | | | };
| | | | | | | | | };
| | | | | | | | | subactions: {
| | | | | | | | | | apply_modifiers_action: {
| | | | | | | | | | | $REF: "actions\ability\apply_modifiers_action";
| | | | | | | | | | | duration: 0f;
| | | | | | | | | | | permanent: false;
| | | | | | | | | | | modifiers: {
| | | | | | | | | | | | damage_melee_weapon_modifier: {
| | | | | | | | | | | | | $REF: "modifiers\weapon_modifiers\damage_melee_weapon_modifier";
| | | | | | | | | | | | | application_type: "apply_to_weapon";
| | | | | | | | | | | | | exclusive: false;
| | | | | | | | | | | | | probability_of_applying: 1f;
| | | | | | | | | | | | | target_type_name: "hardpoint_01";
| | | | | | | | | | | | | usage_type: "multiplication";
| | | | | | | | | | | | | value: 1.015f;
| | | | | | | | | | | | | exclusive_type: "tp_synapse_reverse_effect";
| | | | | | | | | | | | | show_modifier_decorator: true;
| | | | | | | | | | | | };
| | | | | | | | | | | };
| | | | | | | | | | };
| | | | | | | | | };
| | | | | | | | | apply_to_target: false;
| | | | | | | | | validate_subactions: false;
| | | | | | | | | validate: false;
| | | | | | | | };
| | | | | | | | requirement_action: {
| | | | | | | | | $REF: "actions\ability\requirement_action";
| | | | | | | | | kill_action_on_failed_requirements: false;
| | | | | | | | | requirements: {
| | | | | | | | | | required_squad_sim_var: {
| | | | | | | | | | | $REF: "requirements\required_squad_sim_var";
| | | | | | | | | | | sim_variable: "test_variable";
| | | | | | | | | | | comparison: "greater";
| | | | | | | | | | | value: 33f;
| | | | | | | | | | | reason: "usage";
| | | | | | | | | | | ui_name: 0;
| | | | | | | | | | };
| | | | | | | | | };
| | | | | | | | | subactions: {
| | | | | | | | | | apply_modifiers_action: {
| | | | | | | | | | | $REF: "actions\ability\apply_modifiers_action";
| | | | | | | | | | | duration: 0f;
| | | | | | | | | | | permanent: false;
| | | | | | | | | | | modifiers: {
| | | | | | | | | | | | damage_melee_weapon_modifier: {
| | | | | | | | | | | | | $REF: "modifiers\weapon_modifiers\damage_melee_weapon_modifier";
| | | | | | | | | | | | | application_type: "apply_to_weapon";
| | | | | | | | | | | | | exclusive: true;
| | | | | | | | | | | | | probability_of_applying: 1f;
| | | | | | | | | | | | | target_type_name: "hardpoint_01";
| | | | | | | | | | | | | usage_type: "multiplication";
| | | | | | | | | | | | | value: 1.5f;
| | | | | | | | | | | | | exclusive_type: "tp_synapse_reverse_effect";
| | | | | | | | | | | | | show_modifier_decorator: true;
| | | | | | | | | | | | };
| | | | | | | | | | | };
| | | | | | | | | | };
| | | | | | | | | };
| | | | | | | | | apply_to_target: false;
| | | | | | | | | validate_subactions: false;
| | | | | | | | | validate: false;
| | | | | | | | };
| | | | | | | | set_sim_var_action: {
| | | | | | | | | $REF: "actions\ability\set_sim_var_action";
| | | | | | | | | should_undo: true;
| | | | | | | | | value: 1f;
| | | | | | | | | sim_var_op: "increment";
| | | | | | | | | sim_variable: "test_variable";
| | | | | | | | };
| | | | | | | };
| | | | | | };
| | | | | };
| | | | };
| | | };
| | | validate: true;
| | };
| };
| targets: {
| | entity_type_to_choose: "";
| | exclude_self: true;
| | prefer_squads: false;
| | target_info: {
| | | $REF: "types\targets\binary_expr";
| | | operation: "and";
| | | targets: {
| | | | own: {
| | | | | $REF: "types\targets\own";
| | | | };
| | | | has_unit_type: {
| | | | | $REF: "types\targets\has_unit_type";
| | | | | unit_type: "lesser_tyranid";
| | | | };
| | | };
| | };
| };
| sweep_type: "none";
| use_direction: false;
};This is the first target_action under the repeat_action for reverse synapse. If you keep expanding the subactions, you will eventually come to two requirement_actions and a set_sim_var_action. The set_sim_var_action has a setting that can be set to "decrement", "increment", and "set". In this case, it's increment, which means that every time this action is applied, the sim variable will increase in value by 1. So every time a new gaunt/gant is found in the radius, the sim_var increases by 1.
Then, the requirement_actions are set to interpret the sim variable values. You can see in the requirement actions that they require a certain sim_var value to execute. The first one requires the sim_var to be less than or equal to 33, and the second one requires it be higher than 33. When the requirement is met, the actions are executed.
HiveSpirit wrote:A predator is unit type vehicle, a carnifex just unit type carnifex, but both has armor type vehicle.
So it does not differenciate unit type and armor type ("if it has one its included")?
It does differentiate them, but if the vehicle armour type, for instance, is one of the targets, the unit type doesn't matter. Only one of the unit's "types" has to be targeted for it to be affected or ignored by the buff/debuff.
HiveSpirit wrote:Only ripper, hormagaunt, termagaunt has unit type lesser tyranid, what should i make out of this? Is it only those three that can reinforce?
Normally, yes, if that were an ability the Brood Nest had. But in this case, no. Check the Brood Nest's ebps file and look at its abilities. tyr_spawn_gaunt_reinforcements.rbf is not one of its abilities. The only ability it has is the healing aura. The spawner is part of the building itself, and is added with the "spawner_ext" node in the ebps file.
HiveSpirit wrote:Also, it does seem like basic synpase is given to t3 lictor, tyrant guard and carnifex?
It does to all of them, yes.
HiveSpirit wrote:*Also, where could one find the rbf file for the power node, what armor type is it?
Under each race's ebps, it is in buildings\<race>_listening_post
HiveSpirit wrote:Would that be because tyranid lictor is "type_unit_class": "single_entity", and the basic synapse applies to "application_type": "apply_to_squad",?
No, that just means that the effect applies to everything in the squad, even if the radius technically only touches one model. The T3 Lictor just happens to have one model in its squad
