How do I create a continuous beam weapon? My current attempt is here but the effect does not get deleted when desired.
variables
{
player:
4: Energy
36: ProjVar1
37: ProjVar2
46: DestroyEffect1
47: DestroyEffect2
48: DestroyEffect3
85: RepulsorActive
}
rule("[IRONMAN]: Repulsor Ray Charge Sound")
{
event
{
Ongoing - Each Player;
Team 2;
Pharah;
}
conditions
{
Is Button Held(Event Player, Primary Fire) == True;
Is Alive(Event Player) == True;
}
actions
{
Abort If(Has Status(Event Player, Knocked Down));
Abort If(Has Status(Event Player, Stunned));
Abort If(Has Status(Event Player, Asleep));
Abort If(Has Status(Event Player, Rooted));
Create Effect(All Players(All Teams), Energy Sound, White, Event Player, 1000, Visible To Position and Radius);
Set Player Variable(Event Player, DestroyEffect1, Last Created Entity);
Wait(0.500, Ignore Condition);
Create Effect(All Players(All Teams), Sparkles Sound, White, Event Player, 10000, Visible To Position and Radius);
Set Player Variable(Event Player, DestroyEffect2, Last Created Entity);
Destroy Effect(Player Variable(Event Player, DestroyEffect1));
Set Player Variable(Event Player, RepulsorActive, True);
}
}
rule("[IRONMAN]: Repulsor Ray Coordinates")
{
event
{
Ongoing - Each Player;
Team 2;
Pharah;
}
conditions
{
Player Variable(Event Player, RepulsorActive) == True;
Player Variable(Event Player, Energy) >= 10;
}
actions
{
Abort If(Compare(Player Variable(Event Player, Energy), <=, 10));
Wait(0.300, Ignore Condition);
Modify Player Variable(Event Player, Energy, Subtract, 10);
Set Player Variable(Event Player, ProjVar1, Ray Cast Hit Position(Eye Position(Event Player), Add(Eye Position(Event Player),
Multiply(Facing Direction Of(Event Player), 1000)), All Players(All Teams), Event Player, True));
Set Player Variable(Event Player, ProjVar2, Eye Position(Event Player));
Play Effect(All Players(All Teams), Bad Explosion, Orange, Player Variable(Event Player, ProjVar1), 5);
Chase Player Variable At Rate(Event Player, ProjVar2, Player Variable(Event Player, ProjVar1), 120, Destination and Rate);
Set Player Variable(Event Player, ProjVar2, Eye Position(Event Player));
Loop If Condition Is True;
}
}
rule("[IRONMAN]: Repulsor Ray Projectile")
{
event
{
Ongoing - Each Player;
Team 2;
Pharah;
}
conditions
{
Player Variable(Event Player, RepulsorActive) == True;
Player Variable(Event Player, Energy) >= 10;
}
actions
{
Create Beam Effect(All Players(All Teams), Bad Beam, Eye Position(Event Player), Player Variable(Event Player, ProjVar2), Orange,
Visible To Position and Radius);
Set Player Variable(Event Player, DestroyEffect3, Last Created Entity);
}
}
rule("[IRONMAN]: End Loop")
{
event
{
Ongoing - Each Player;
Team 2;
Pharah;
}
conditions
{
Player Variable(Event Player, Energy) < 10;
}
actions
{
Destroy Effect(Player Variable(Event Player, DestroyEffect2));
Destroy Effect(Player Variable(Event Player, DestroyEffect3));
Set Player Variable(Event Player, RepulsorActive, False);
}
}