Okay, so I figured out that you can make a weapon produce the effect of "Use ability" and it works swimmingly, but there's two issues with a Graviton Beam Tower that I've run into:
-The first of which is that if there's only one unit left, it will continually lift it indefinitely. Is there a way I can apply a transient debuff/buff to the unit that prevents it from being retargeted immediately? Or can I script the weapon to always target a different unit after its done?
-My second problem is that I'd like the tower to be upgradeable, and for every upgrade, it lifts an additional unit simultaneously. Doubling the weapon doesn't work, I found out rather quickly, and I'm not sure how to force two separate targets.
If anyone could shed light on some of these issues, I'd be very thankful. I've been trying to come up with some creative tower ideas so I'll no doubt be back with more questions later. =)
I'm unsure of how to do this unless you are scriping everything, which I assume you are. The first of your questions should be solvable through the use of unit groups. Once a unit is targeted, add it to the unit group and make it so the tower won't target units in the unit group when it's ability is used. Have the unit removed after a time interval or have their removal triggered by an event of your choice. There might be a way to use debuff/buffs, but I'm still stuck on Warcrafts system, and I'm unsure of the differences atm.
To the second question, I am now questioning whether or not you are scripting this all, but if you were, you would simply have two units picked in a trigger and have them moved .5 or w/e closer to the position of the tower every .01 seconds, or whatever setting make the transition smooth. If you are using mostly the data editor, again, I am not yet familiar with the new one.
You can probably give the ability a custom validator object, which will cause the tower to not use the ability if there is only 1 unit left within it's radius. For your upgrades, the first upgrade would make it so that if there is zero or one unit, no effect is used, if there are 2 units, it will apply the "lift 1" effect. If there are 3 or more units, it will use the "lift 2 effect". In this way, there is always at least one unit traveling.
First off, all of the replies thus far are over complicating the problem. If your tower is simply a Weapon Fire > Graviton Beam Ability sequence then all your problems are easily solved provided I understand them correctly.
I'm going to assume the following with my response:
Your tower is akin to a "slow" tower in that it lifts a unit up for a set period of time (or permanently until killed) so that other towers can shoot it longer.
You have changed the setup your weapon as follows: Weapon Acquire > Attack > [Graviton Effect Series]
Perpetual Targeting:
You want the tower to have a delay between attacks:
Go to the Weapon firing the effect and give it a Period of N
Go to the Behavior and give it a Duration to (N - [Delay time])
If you are wanting the unit to have a chance of running away between lifts, this will cause the tower to use Graviton Beam for and then wait to use it again until the weapons attack period finishes. Example: Period of 6, Duration of 4; Graviton beam will last for 4 seconds and will not fire again for 2 seconds.
OR
You want the tower to target different units to prevent focus fire:
Go to the Weapon and add TSRandom to Acquire Target Sorts +
This will cause each attack to be a randomly selected unit within range.
Upgradable Attack:
Create a Validator for each upgrade
Create a new Effect with Effect Type: Search Area
Set Area + to (Arc: 360; Effect: [First Effect of Graviton Beam Series]; Maximum Count: [Desired Targets]; Radius: [Desired Radius]
Change other fields as needed
Duplicate above effect for each upgrade and change each effect as needed
Create a new Effect with Effect Type: Switch
Set Default to [First Effect of Graviton Beam Series]
Add all Search Area effects to Cases + with each upgrade Validator paired its Search Area
Now every time your tower attacks it will use the default until a Validator is met. When you research the upgrade that matches the Validator, the attach will "switch" to that effect. Thus if Level 1 is one target and Level 2 is 2 targets, your weapon will switch from using the Graviton Beam directly to searching for a Maximum of 2 targets to use Graviton Beam on.
This "should" fix both problems if implemented correctly unless I misunderstood your problem. If this doesn't, send me a PM and we'll work it out. I'm also on the sites IRC channel quite frequently to provide help with Data Editor questions ;)
@ProzaicMuze: Go
I find it kinda strange that you were saying the above solutions were overcomplicating the problem and then turn around and suggest pretty much the same thing that I already suggested. What you're specifically saying (second solution) ignores that if the tower has 1 unit left within range, the tower will indefinitely lift off the unit unless another tower kills it, however, if there is no damage tower in range, then it will continue doing this forever with no way to kill the unit, which is why I added the "always allow at least one unit in range to travel" validator when I posted.
Thank you guys for your help, especially Prozaic and Azkit. I've run into another complication though. My test zealot wave is ordered from region to region for the pathing, but after a Zealot gets Graviton Beamed, he loses all his orders. Is there a way I can get him to retain his orders?
Also, how do you make upgrade icons go away after you've already purchased the upgrade?
On an unrelated note, I've managed to get the zoom to go much farther out, but I can't hear anything. I'd like to make everything audible once I see it at its fixed distance (which'll be farther than the default).
@Azkit - My solution doesn't ignore that at all. If you read more closely you'd see that one of my suggestions was to add a delay between attacks that will prevent the tower from constantly lifting a unit by allowing the unit to run some distance before being lifted again. Essentially running out of range if not killed immediately. It also isn't the same because you're suggesting he use a validator to prevent perpetual lifting while I'm suggesting he add a buffer between attacks so the unit can run away. Your solution is over-complicated because it will make the tower useless against single units even if other towers are around; like bosses. As for my second solution, it's there in case he meant something other than what the first solution was addressing. The only similarity is that I've detailed HOW to use validators for upgrades in an efficient manner. You didn't mention switches at all.
@Draco - You can either have the order issued every N seconds or you can use triggers to specifically tell any unit effected by the graviton beam to move to the end. This treats the graviton beam ending as if the Zealot had spawned from the beginning.
@Draco - You can either have the order issued every N seconds or you can use triggers to specifically tell any unit effected by the graviton beam to move to the end. This treats the graviton beam ending as if the Zealot had spawned from the beginning.
Well that's my quick fix right now, but I have 19 regions (for smooth, rounded turning) and multipathing in my game. I also have certain parts of my cliff that can be walked up by small units and no matter how much I paint "no pathing" around the area, it just doesn't fix itself. So when the dropped Zealot is issued to move from wherever he is to the exact end, it looks very fugly when he just cuts across the cliff.
Rollback Post to RevisionRollBack
To post a comment, please login or register a new account.
Okay, so I figured out that you can make a weapon produce the effect of "Use ability" and it works swimmingly, but there's two issues with a Graviton Beam Tower that I've run into:
-The first of which is that if there's only one unit left, it will continually lift it indefinitely. Is there a way I can apply a transient debuff/buff to the unit that prevents it from being retargeted immediately? Or can I script the weapon to always target a different unit after its done?
-My second problem is that I'd like the tower to be upgradeable, and for every upgrade, it lifts an additional unit simultaneously. Doubling the weapon doesn't work, I found out rather quickly, and I'm not sure how to force two separate targets.
If anyone could shed light on some of these issues, I'd be very thankful. I've been trying to come up with some creative tower ideas so I'll no doubt be back with more questions later. =)
@draco89123: Go
I'm unsure of how to do this unless you are scriping everything, which I assume you are. The first of your questions should be solvable through the use of unit groups. Once a unit is targeted, add it to the unit group and make it so the tower won't target units in the unit group when it's ability is used. Have the unit removed after a time interval or have their removal triggered by an event of your choice. There might be a way to use debuff/buffs, but I'm still stuck on Warcrafts system, and I'm unsure of the differences atm.
To the second question, I am now questioning whether or not you are scripting this all, but if you were, you would simply have two units picked in a trigger and have them moved .5 or w/e closer to the position of the tower every .01 seconds, or whatever setting make the transition smooth. If you are using mostly the data editor, again, I am not yet familiar with the new one.
Hope I helped.
@draco89123: Go
You can probably give the ability a custom validator object, which will cause the tower to not use the ability if there is only 1 unit left within it's radius. For your upgrades, the first upgrade would make it so that if there is zero or one unit, no effect is used, if there are 2 units, it will apply the "lift 1" effect. If there are 3 or more units, it will use the "lift 2 effect". In this way, there is always at least one unit traveling.
First off, all of the replies thus far are over complicating the problem. If your tower is simply a Weapon Fire > Graviton Beam Ability sequence then all your problems are easily solved provided I understand them correctly.
I'm going to assume the following with my response:
Perpetual Targeting:
If you are wanting the unit to have a chance of running away between lifts, this will cause the tower to use Graviton Beam for and then wait to use it again until the weapons attack period finishes. Example: Period of 6, Duration of 4; Graviton beam will last for 4 seconds and will not fire again for 2 seconds.
OR
This will cause each attack to be a randomly selected unit within range.
Upgradable Attack:
Now every time your tower attacks it will use the default until a Validator is met. When you research the upgrade that matches the Validator, the attach will "switch" to that effect. Thus if Level 1 is one target and Level 2 is 2 targets, your weapon will switch from using the Graviton Beam directly to searching for a Maximum of 2 targets to use Graviton Beam on.
This "should" fix both problems if implemented correctly unless I misunderstood your problem. If this doesn't, send me a PM and we'll work it out. I'm also on the sites IRC channel quite frequently to provide help with Data Editor questions ;)
@ProzaicMuze: Go I find it kinda strange that you were saying the above solutions were overcomplicating the problem and then turn around and suggest pretty much the same thing that I already suggested. What you're specifically saying (second solution) ignores that if the tower has 1 unit left within range, the tower will indefinitely lift off the unit unless another tower kills it, however, if there is no damage tower in range, then it will continue doing this forever with no way to kill the unit, which is why I added the "always allow at least one unit in range to travel" validator when I posted.
Thank you guys for your help, especially Prozaic and Azkit. I've run into another complication though. My test zealot wave is ordered from region to region for the pathing, but after a Zealot gets Graviton Beamed, he loses all his orders. Is there a way I can get him to retain his orders?
Also, how do you make upgrade icons go away after you've already purchased the upgrade?
On an unrelated note, I've managed to get the zoom to go much farther out, but I can't hear anything. I'd like to make everything audible once I see it at its fixed distance (which'll be farther than the default).
Thanks for the support.
@Azkit - My solution doesn't ignore that at all. If you read more closely you'd see that one of my suggestions was to add a delay between attacks that will prevent the tower from constantly lifting a unit by allowing the unit to run some distance before being lifted again. Essentially running out of range if not killed immediately. It also isn't the same because you're suggesting he use a validator to prevent perpetual lifting while I'm suggesting he add a buffer between attacks so the unit can run away. Your solution is over-complicated because it will make the tower useless against single units even if other towers are around; like bosses. As for my second solution, it's there in case he meant something other than what the first solution was addressing. The only similarity is that I've detailed HOW to use validators for upgrades in an efficient manner. You didn't mention switches at all.
@Draco - You can either have the order issued every N seconds or you can use triggers to specifically tell any unit effected by the graviton beam to move to the end. This treats the graviton beam ending as if the Zealot had spawned from the beginning.
Well that's my quick fix right now, but I have 19 regions (for smooth, rounded turning) and multipathing in my game. I also have certain parts of my cliff that can be walked up by small units and no matter how much I paint "no pathing" around the area, it just doesn't fix itself. So when the dropped Zealot is issued to move from wherever he is to the exact end, it looks very fugly when he just cuts across the cliff.