Trying to make a "Fleet Synergy" and custom Magnetize abilities

As the title says I'm trying to make an ability similar to the Advent "Synergy" skill, only as an ultimate that works on ships. The actual ability works fairly well, but when a new ship enters the AoE it only gets the boost for all other new arrivals, not the ships already present.

My setup so far is:

Ability: Copy of "Flux Field", target buff changed to "Fleet Synergy Self"

Fleet Synergy Self: Copy of "Flux Field Self", applies "Fleet Synergy Spawn" to targets in range every 2 seconds

Fleet Synergy Spawn: Copied from "Spread Weapon Damage Spawn" (Malice), set to "onReapplyDuplicateType "PrioritizeOldBuffs"", stacking limit 1, instantly applies "Fleet Synergy Target" to all ships in a radius equal to the range of "Fleet Synergy Self", finish conditions: OutOfRange, FirstSpawnerNoLongerHasBuff-"Fleet Synergy Self"

Fleet Synergy Target: applies various buffs (damage, shield regen etc), stacking limit -1, finish conditions: LastSpawnerNoLongerHasBuff-"Fleet Synergy Spawn", FirstSpawnerNoLongerHasBuff-"Fleet Synergy Self", OutOfRange

 

As I said, it works fairly well, except that if a ship enters the AoE after ability activation it doesn't gain boosts for ships already affected, as with the current mechanism the "Spawn" buff is only applied once on every ship. I also can't think of any in-game ability that works this way (all "aura" effects are either nonstacking or, in the case of Synergy, don't allow any movement at all)

Do I have to "cheat" by periodically reapplying the "Target" buff and giving it a set duration equal to this period? Will that even work?

 

Edit: So now I'm stuck with another ability: A Magnetize/Repulsion Field mix. The idea is: ship casts ability->targets are pulled in->targets come too close->target and caster take damage, target is blasted outwards. The problem occurs with the "is blasted outwards" part, as it seems you can't stack InitializeMovementTowardLastSpawner actions, and for some reason the "old" one remains. Basically I have 2 Repulsion Fields running simultaneously, one that "pulls" with 10k range and one that "pushes" with 500 range, the latter not being linked to an OutOfRange finish condition, corrected that mistake already. Now when a ship enters the "push" field it takes damage, but it isn't pushed, instead it flies through the caster at "pulling" speed, and flies in a straight line until it leaves the "pull" field

10,129 views 13 replies
Reply #1 Top

Ok, so the "periodically reapply" option seems to work, it just doesn't look very pretty with the Flux Field effect because it dissipates every 2 seconds. Any ideas on a different approach?

Reply #2 Top

Do you want a different particle effect?

I make particle effects for new modders.

You have separate buffs for each of the effects, correct? (stupid question probably)

Have a small range for "push", and have it apply an instant action for push and damage, while canceling the "pull" buff. There is an action that cancels a specific buff. (see the scout anti-jump-inhibitor ability[it cancels the jump inhibitor buff]) Just have it cancel the previous "pull" buff of yours.

Tell me how it all works, if it does.

Reply #3 Top

Thanks for the reply. I don't need custom particle effects (I would love to find a different solution for the ability though)

As for the other ability, the scout ability doesn't exactly "cancel out" the debuff, as far as I can see, and neither does said buff shut down once the research is done. I don't know how it plays out ingame, but I don't see anything that would remove the inhibitor debuff if the research is completed while you're close to a PJI.

However the action does exist, I found it on the Antorak's Distort Gravity buff. (need to add that to the Modifier List thread) WOOT!! it works like a charm! Now the non-stacking system works my way, and prevents the ships from being pulled in again! :grin:

Reply #4 Top

AWWW

I just took a look at the unstoppable phase jump for scouts, and it appears like they have removed the buff canceler. Sorry for the misinformation.

Glad that you have gotten it sorted out.

Reply #5 Top

If I'm stuck with another ability should I post here or should I create a new thread? (for each ability?)

It would probably be better to rename this one to "Help me with abilities" and keep posting here right?

Reply #6 Top

You are fine, just use the current thread, you dont really have to rename it unless you want to.

Reply #7 Top

Problem with the Synergy ability again: Is there a "current host no longer has buff" finish condition? Or a workaround to make the "last spawner..." one consider the current target by "rebounding" to another ship first?

Here's the setup:

Synergy Self: applies "Synergy Spawn" every second to all ships in range (8000)

Synergy Spawn: applies "Synergy Wait" to all ships in range (4000), prioritizes old buffs, finish conditions same as all "aura" buffs

Synergy Wait: applies "Synergy Target" to self, infinitely stackable, "aura" finish conditions

Synergy Target: buffs ship, infinite stacks, finish conditions: "First spawner no longer has Synergy Self" and "Last spawner no longer has Synergy Spawn"

What happens is that the buff simply doesn't appear. I don't get any (related) errors in the Dev.exe, but it doesn't work.  My guess is that "Apply buff to self" breaks the entire LastSpawner chain, possibly even the FirstSpawner reference, thus instantly removing the buff as there is no "last spawner" to have a buff anymore.

Ultimately I want a way of forcing a "out of initial cast range" finish condition for chains of multiple ships spawning buffs (like cancelling Malice once an affected ship is more than 8000 range away from the Mothership)

Reply #8 Top

I've been working on a similar fleet synergy mod... here's what I've done so far:

1. The ability itself applies a passive buff (buffABCspawn) to itself, which periodically applies a separate buff to self (buffABCself) and another buff (buffABCclone) to all other targets in the area.

2. the self-applied buff (self) periodically applies the actual buff to the caster, with the finish condition "FirstSpawnerNoLongerHasBuff" to check whether the caster has the buffABCclone buff- this is to ensure that the caster doesn't get any bonus w/o another ship in the area

3. buffABCclone stacks to one less than the max. stackable digits (extraneous but I use it just to make sure I get what I want) applies the buffABC to the target with the finishCondition "FirstSpawnerNoLongerHasBuff" buffABCself- this ensures that only the right ships can use it

4. buffABC applies the actual buff stuff, and is stackable to the limit required

not sure if it will help, but...

Reply #9 Top

You seem to be making all/some ships synergize with each other automatically. Mine is a capship ultimate that's supposed to make all ships around the cap synergise with each other.

I'm guessing you have "AllowInitialSpawnerToStack FALSE" on your "clone" buff?

Sadly your setup, the way I understand it, doesn't work for my ability, as you use "FirstSpawner..." to refer to the casting ship itself. However, I want to activate this synergising behavior through a capship ability, so the first spawner is the cap. And I can't place your ability on all ships, because some (Scouts, anything I mod to do so) already have 5 abilities.

Is there a "Current ship no longer has buff" finish condition or a workaround for that? ApplyBuffToSelf seems to wreck the entire chain, and even breaks the FirstSpawner condition from what I saw. (I might have had some other issue causing that, but I can confirm that ApplyBuffToSelf does not make the ship see itself as the LastSpawner)

Reply #10 Top

I don't think there is; I worked around this by making every ship that is affected act as "spawner" in order to use "FirstSpawnerNoLongerHasBuff" but from what I understand, the condition refers to the spawner of the buff in question... so if the Cap Ship SelfBuff applies an AOE buff (buffABCSpawn) that applies a buffABCSelf "ToSelf" AND a AOE buff to other ships (the clone) which applies a buffTarget "ToSelf" then the "FirstSpawner" will work to cancel the effects of the synergy if the finish conditions dictate that the buff stuff (buffABC) need to have both the buffTarget and the buffSelf- the cap ship buff "spawns" the other buffs and cancels them only if the ship goes out of range ("OutOfRange") from the cap ship, while the two final applied buffs are required to apply the buff stuff, with the buffABCself and buffClone acting as intermediaries...

sorry if that was confusing...

 

 

Reply #11 Top

PM me your email address and I'll send you a buff that does what you're looking to do.  Too messy to write out the steps.  The only difference is that it's not centered around a single ship being the spawner, but that wont make any mechanical differences in the application process.

 

As far as the magnetize effect goes, you need to reset the state and halt that impetus before applying the second force to push them back out.  You've already built up significant force to pull them in.

 

Assuming it will work, I haven't tested such a scheme, it should take an instant action buff call to pull on the ships in range, with a periodic buff application to trigger the short range push.  In the push buff, add an instant interrupt and physics reset to remove the pull and stop motion, and then the push on a split second delay.

 

Theoretically, this will do it.

Reply #12 Top

@Trooper: I think FirstSpawner refers to the first ship in the entire chain, or the caster of the initial ability. I'll test sometime later. FirstSpawner works for your setup because every ship has the ability, and thus refers to itself as the FirstSpawner (I don't know for sure though).

Does your buff (the actual ship boosting one) have a set duration? If yes please say so and ignore the following paragraph.

If your buff is permanent, could you please try the following setup: You have 2 groups of 2 ships (4 total) already synergising, tell one ship to enter the AoE of the other group without leaving the range of the 4th ship. Then, tell the same ship to exit the AoE of the other group again, remaining in the range of the 4th ship all the time. Tell me if, and how many, stacks of your buff (the actual boost) remain on the ship. (set it to +1% damage for easy checking)

 

@psychoak: Just to make sure, the buff you have works without an expiry time, and cancels when the ship leaves the AoE of the initial buff, no matter how many ships it has been "bounced around" by before arriving at the current ship? Is your solution just one important trick or do you have some 3+ buffs as a workaround. If the former is the case could you please post said trick here.

About the magnetize ability, first of all ResetPhysicsState also seems to reset all movement (including rotation and ship engines), and the InitializeMovement action doesn't "build up momentum", it doesn't stack. At all. The ability works now, however I recently switched to the ApplyImpule action of TK Push, as the ability is a "vortex", and I wanted the ships to at least leave their engines on when falling to their doom. My initial problem was that I didn't know how InitializeMovement doesn't stack. 

Still, thanks for trying to help. And if your synergy buff works, that would be awesome! (I really don't like the "periodically reapply" solution, it just feels like I'm doing something wrong)

Reply #13 Top

Lets see...

 

Yes, it would be a periodic, two actually, no other way to apply to new arrivals.  No need for an expiration though.  Since you want a single spawn, it makes it much less complicated to terminate.  The buff I did has multiple sources, so has to have an expiration due to each ship being their own spawn.

 

If you want it, I'll need an address, if I can attach files to posts here I'm too dumb to figure out how, not really worth the hassle of uploading it somewhere.