For a map I am working on, I am trying to create a shield generator type aura, which applies a shield capacitor to units in range, and recharges those capacitors with it's shield. However, I have a problem. I cannot get it to apply the effect properly. It should, more or less, have the effect of redirecting damage to the generator shield. This would be done, by applying a buff to the units in range, which gives shield capacity, as well as refilling that capacity when it is not full, at the cost of the generator's shield. However, several problems occur. For one thing, The shield constantly recharges to full, without using the generator's shield, because the buff, when applied, adds maximum shield capacity, which appears to innately also apply shield energy. Also, The shield buff flickers, if I use too low a duration (if it matches the apply period) but it double-stacks if the duration is slightly larger. Also, I am unsure if there is a way to easily transfer exactly x amount of shield, instantly, with exactly one effect, rather than a large number of small, possibly wasteful constants (due to overflow)
Also, as a less important issue, I am using the guardian shield bubble, which has the problematic charactoristic of flickering rapidly, each time the aura behavior ticks (around once per 5 seconds, to start a persistant, which applies the aura in one second intervals) when it ought to only change when the generator's shield is depleted, or at least reduced to a certain point. I tried using a delay timer for the deactivate effect, but that somehow resulting in the shield bubble just appearing for long enough for the death animation each 5 seconds.
@Ranakastrasz: Go
To fix the flickering/full recharging all the time...
Shield buff has -1 duration(permanent)
On your shield generator, Validate that the target unit has no shield buff
Shield Buff validates within range of Shield Generator, else disables if out of range.
In effect, if the target is within range of the shield generator, it applies the shield buff if the unit doesn't have it already. The shield buff will remain on the target as long as they are within range of the Shield Generator. The shield buff will not be constantly reapplied, refilling them or causing the flickering of your aura model/actor.
You can apply a Modify Unit effect upon applying the shield buff that reduces shields by the amount given by your buff.
Use a Create Healer effect to restore shields. Use a cost of caster shields with a 1:1 ratio, and a near-infinite healing rate. And probably add some validators to stop it when not needed, compare with the medic/medivac.
If your actor responds to Behavior...ON/OFF with Create/Destroy, and you reapply the buff before the older stack expires the model shouldn't flicker.
Limit the target buff to 1 stack per caster. Be careful with BorgDragon's method as it will have some residual problems if units are in range of multiple generators, especially if one of them goes down.
How do I check for the specific generator? I think there is a link-system, that, for one thing, disallows two medics to heal the same target, and I am wondering if that is related.
I need to be able to have two shield generators apply the shield capacity and give semi-even recharge rates, and I am unsure how to make a validator to check for a buff added by "That particular generator", instead of the other one you just so happen to be under.
It greatly depends on how you want multiple generators to interact with eachother. You can use "markers" (and subsequent validators that check for them) to identify units. Mutalisk attacks and healing beams use them.
I can think of 2 basic approaches:
The first is to have each generator operate individually. Setting the maximum stack amount on your target buff to infinite allows generators to stack, while setting it to 1 (and setting the appropriate replacement rule) would basically make the generators "compete" for targets, distributing damage rather randomly amongst each other. (What happens then is that every time the aura effect ticks it reapplies the target buff, linking the target to the generator that just ticked. This would be happening several times per second for a decent aura)
The second method, which would work with BorgDragon's suggestion, is to have 2 seperate effect chains: 1 places the shield buff as discussed, the other checks for all targets in range and applies the shield restoration/distribution. You could either have all generators affecting the target simultaneously, hopefully producing an even damage distribution, or limit it to 1 generator per target.
Both methods allow the use of markers, exclusion of generator units from the effect (if desired), and some degree of control over how multiple generators interact. I think BorgDragon's method is more efficient for doing what you've explained, but the other one might be easier to use with a more complex chain of effects as you have a direct link between the shield buff and the shield-sharing mechanism.
About the one stack limit approach, wouldn't that cause whichever aura applied itself first always get all of the units? Or is there a way to cause it to be evenly distributed, like applying the aura to one new unit per tick, similar to the mothership cloak?
You can do the 1-per-tick method, but that alone would still mean that once a unit is linked to a generator it stays linked until that one goes offline.
Buffs with a stack limit are automatically "replaced" when a new stack is meant to be applied. This can be set to keep the "oldest" buff (nothing gets replaced), but it can also be set to prefer the newest one, which even is the default afaik. All existing auras work by reapplying the buff before the previous stack expires, which in those cases simply refreshes the duration (as there are no initial effects or vitals modifiers involved)
What would then happen is that every unit would constantly be re-linked to whichever generator aura "ticked" most recently, producing a rather random distribution but ensuring the effect keeps going if one generator dies. Basically like stacking Psi Storms from multiple templar should work from what I can gather.
Problem with that is that the ability is given by an item behavior, which also deactivates (including the animation in theory) when shields drop below 25%
Uhm, The problem is i cannot see how the effect would cause the model to show up at all, because the shielding unit does not shield itself, and the model is attached to the actualy generator, which does not have any effects applied to it.
Basically, Want to attach guardian shield to the shield generator, as long as it has the shield field behavior, but have it disappear when the shield field behavior turns off (via validator suppression, like terran burndown uses) and then reappear after shileds regen and the behavior comes back on.
So in short, you have a Buff behaviour on the generator that is validated by a Unit Compare Vital validator. This buff then uses the standard Search Area + Apply Behavior effects to give an aura like buff. The applied buff then channels a Create Healer effect that works in reverse to drain the caster to gain a fraction of the shield. You then have a Model type behavior that is created when the main behaviour is on and destroyed when it is off. Sure you set the hosting site ops right?
Mostly. The behavior also had been creating a dummy persistant effect, to display the shield effect, based on guardian shield. I was trying to remove that however, and refer to the behavior directly, but It refused to show up afterwards.
The create healer part, as well as an applied buff to boost shield capacity is right, and working now.
Not sure what you mean by model behavior. I am using an actor, linked to the shield behavior, but I think it might need more than the events changed to refer to behaviors instead of persistants. Going to do research on hosting site ops, because I dont know what that is, but it sounds like it may be the problem.
Alright. The Modified part, aside from the model size and attachment points (which was working correctly with attachment to the persistant) and so on, Is the two events
Not sure if that is correct or not. I do know that that is the correct behavior, and that it toggles on and off correctly, and is definitely on the unit that it should be.
Maybe it needs initilized somehow? I looked at fire-suppression system's actor, and it looked the same, and works similarly, so I am unsure what the problem is.
For a map I am working on, I am trying to create a shield generator type aura, which applies a shield capacitor to units in range, and recharges those capacitors with it's shield. However, I have a problem. I cannot get it to apply the effect properly. It should, more or less, have the effect of redirecting damage to the generator shield. This would be done, by applying a buff to the units in range, which gives shield capacity, as well as refilling that capacity when it is not full, at the cost of the generator's shield. However, several problems occur. For one thing, The shield constantly recharges to full, without using the generator's shield, because the buff, when applied, adds maximum shield capacity, which appears to innately also apply shield energy. Also, The shield buff flickers, if I use too low a duration (if it matches the apply period) but it double-stacks if the duration is slightly larger. Also, I am unsure if there is a way to easily transfer exactly x amount of shield, instantly, with exactly one effect, rather than a large number of small, possibly wasteful constants (due to overflow)
Also, as a less important issue, I am using the guardian shield bubble, which has the problematic charactoristic of flickering rapidly, each time the aura behavior ticks (around once per 5 seconds, to start a persistant, which applies the aura in one second intervals) when it ought to only change when the generator's shield is depleted, or at least reduced to a certain point. I tried using a delay timer for the deactivate effect, but that somehow resulting in the shield bubble just appearing for long enough for the death animation each 5 seconds.
Can anyone help me?
@Ranakastrasz: Go To fix the flickering/full recharging all the time...
In effect, if the target is within range of the shield generator, it applies the shield buff if the unit doesn't have it already. The shield buff will remain on the target as long as they are within range of the Shield Generator. The shield buff will not be constantly reapplied, refilling them or causing the flickering of your aura model/actor.
You can apply a Modify Unit effect upon applying the shield buff that reduces shields by the amount given by your buff.
Use a Create Healer effect to restore shields. Use a cost of caster shields with a 1:1 ratio, and a near-infinite healing rate. And probably add some validators to stop it when not needed, compare with the medic/medivac.
If your actor responds to Behavior...ON/OFF with Create/Destroy, and you reapply the buff before the older stack expires the model shouldn't flicker.
Limit the target buff to 1 stack per caster. Be careful with BorgDragon's method as it will have some residual problems if units are in range of multiple generators, especially if one of them goes down.
Alright, those look mostly workable.
However a few questions.
How do I check for the specific generator? I think there is a link-system, that, for one thing, disallows two medics to heal the same target, and I am wondering if that is related.
I need to be able to have two shield generators apply the shield capacity and give semi-even recharge rates, and I am unsure how to make a validator to check for a buff added by "That particular generator", instead of the other one you just so happen to be under.
Thanks
It greatly depends on how you want multiple generators to interact with eachother. You can use "markers" (and subsequent validators that check for them) to identify units. Mutalisk attacks and healing beams use them.
I can think of 2 basic approaches:
The first is to have each generator operate individually. Setting the maximum stack amount on your target buff to infinite allows generators to stack, while setting it to 1 (and setting the appropriate replacement rule) would basically make the generators "compete" for targets, distributing damage rather randomly amongst each other. (What happens then is that every time the aura effect ticks it reapplies the target buff, linking the target to the generator that just ticked. This would be happening several times per second for a decent aura)
The second method, which would work with BorgDragon's suggestion, is to have 2 seperate effect chains: 1 places the shield buff as discussed, the other checks for all targets in range and applies the shield restoration/distribution. You could either have all generators affecting the target simultaneously, hopefully producing an even damage distribution, or limit it to 1 generator per target.
Both methods allow the use of markers, exclusion of generator units from the effect (if desired), and some degree of control over how multiple generators interact. I think BorgDragon's method is more efficient for doing what you've explained, but the other one might be easier to use with a more complex chain of effects as you have a direct link between the shield buff and the shield-sharing mechanism.
About the one stack limit approach, wouldn't that cause whichever aura applied itself first always get all of the units? Or is there a way to cause it to be evenly distributed, like applying the aura to one new unit per tick, similar to the mothership cloak?
You can do the 1-per-tick method, but that alone would still mean that once a unit is linked to a generator it stays linked until that one goes offline.
Buffs with a stack limit are automatically "replaced" when a new stack is meant to be applied. This can be set to keep the "oldest" buff (nothing gets replaced), but it can also be set to prefer the newest one, which even is the default afaik. All existing auras work by reapplying the buff before the previous stack expires, which in those cases simply refreshes the duration (as there are no initial effects or vitals modifiers involved)
What would then happen is that every unit would constantly be re-linked to whichever generator aura "ticked" most recently, producing a rather random distribution but ensuring the effect keeps going if one generator dies. Basically like stacking Psi Storms from multiple templar should work from what I can gather.
I advise you have the buffs added to the units use the healer otherwise there is a chanelling issue.
Contribute to the wiki (Wiki button at top of page) Considered easy altering of the unit textures?
https://www.sc2mapster.com/forums/resources/tutorials/179654-data-actor-events-message-texture-select-by-id
https://media.forgecdn.net/attachments/187/40/Screenshot2011-04-17_09_16_21.jpg
I cannot get the shield bubble to show up unless I attach it to a dummy persistant, based off of guardian shield.
How you trying to host it? If you want to host it on an effect you might need SOp (Shadow) like the lurker spines.
Contribute to the wiki (Wiki button at top of page) Considered easy altering of the unit textures?
https://www.sc2mapster.com/forums/resources/tutorials/179654-data-actor-events-message-texture-select-by-id
https://media.forgecdn.net/attachments/187/40/Screenshot2011-04-17_09_16_21.jpg
I copied the Guardian shield actor, and set it to start up when the behavior is "On", and to, I think, Stop animation when the behavior is "off"
Use Effect.blah.start instead.
Contribute to the wiki (Wiki button at top of page) Considered easy altering of the unit textures?
https://www.sc2mapster.com/forums/resources/tutorials/179654-data-actor-events-message-texture-select-by-id
https://media.forgecdn.net/attachments/187/40/Screenshot2011-04-17_09_16_21.jpg
@DrSuperEvil: Go
Problem with that is that the ability is given by an item behavior, which also deactivates (including the animation in theory) when shields drop below 25%
So what is the problem then? In the worst case base it of the fungal growth model actor.
Contribute to the wiki (Wiki button at top of page) Considered easy altering of the unit textures?
https://www.sc2mapster.com/forums/resources/tutorials/179654-data-actor-events-message-texture-select-by-id
https://media.forgecdn.net/attachments/187/40/Screenshot2011-04-17_09_16_21.jpg
@DrSuperEvil: Go
Uhm, The problem is i cannot see how the effect would cause the model to show up at all, because the shielding unit does not shield itself, and the model is attached to the actualy generator, which does not have any effects applied to it.
Basically, Want to attach guardian shield to the shield generator, as long as it has the shield field behavior, but have it disappear when the shield field behavior turns off (via validator suppression, like terran burndown uses) and then reappear after shileds regen and the behavior comes back on.
So in short, you have a Buff behaviour on the generator that is validated by a Unit Compare Vital validator. This buff then uses the standard Search Area + Apply Behavior effects to give an aura like buff. The applied buff then channels a Create Healer effect that works in reverse to drain the caster to gain a fraction of the shield. You then have a Model type behavior that is created when the main behaviour is on and destroyed when it is off. Sure you set the hosting site ops right?
Contribute to the wiki (Wiki button at top of page) Considered easy altering of the unit textures?
https://www.sc2mapster.com/forums/resources/tutorials/179654-data-actor-events-message-texture-select-by-id
https://media.forgecdn.net/attachments/187/40/Screenshot2011-04-17_09_16_21.jpg
@DrSuperEvil: Go
Mostly. The behavior also had been creating a dummy persistant effect, to display the shield effect, based on guardian shield. I was trying to remove that however, and refer to the behavior directly, but It refused to show up afterwards.
The create healer part, as well as an applied buff to boost shield capacity is right, and working now.
Not sure what you mean by model behavior. I am using an actor, linked to the shield behavior, but I think it might need more than the events changed to refer to behaviors instead of persistants. Going to do research on hosting site ops, because I dont know what that is, but it sounds like it may be the problem.
That part is just a relic from beta, the sentry has no need for it.
That is because the shield Model type actor is created and destroyed by the persistent.
Sorry meant actor.
Having looked at the actor you are basing yours on, the problem is the events.
Contribute to the wiki (Wiki button at top of page) Considered easy altering of the unit textures?
https://www.sc2mapster.com/forums/resources/tutorials/179654-data-actor-events-message-texture-select-by-id
https://media.forgecdn.net/attachments/187/40/Screenshot2011-04-17_09_16_21.jpg
Alright. The Modified part, aside from the model size and attachment points (which was working correctly with attachment to the persistant) and so on, Is the two events
Behavior.SmallShieldProjector.On AtCaster Create
Behavior.SmallShieldProjector.Off Atcaster AnimBraketStopBSD
Not sure if that is correct or not. I do know that that is the correct behavior, and that it toggles on and off correctly, and is definitely on the unit that it should be.
Maybe it needs initilized somehow? I looked at fire-suppression system's actor, and it looked the same, and works similarly, so I am unsure what the problem is.
Try dumping the actor and making a new one from scratch? Some dupes are known to give problems.
Contribute to the wiki (Wiki button at top of page) Considered easy altering of the unit textures?
https://www.sc2mapster.com/forums/resources/tutorials/179654-data-actor-events-message-texture-select-by-id
https://media.forgecdn.net/attachments/187/40/Screenshot2011-04-17_09_16_21.jpg