Begin VisualThinker migration. Some effects still pending.
This commit is contained in:
parent
af8f8fc6ee
commit
77b1ad89a9
28 changed files with 577 additions and 412 deletions
|
|
@ -58,7 +58,7 @@ Class SWWMCasing : Actor abstract
|
|||
pitchvel *= .98;
|
||||
}
|
||||
if ( heat <= 0 ) return;
|
||||
let s = Spawn("SWWMSmallSmoke",pos);
|
||||
let s = SWWMAnimSprite.SpawnAt("SWWMSmallSmoke",pos);
|
||||
s.alpha *= heat;
|
||||
heat -= 0.05;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -25,21 +25,21 @@ Class ParriedBuff : Inventory
|
|||
}
|
||||
if ( special1 <= 0 ) return;
|
||||
// smoke trail
|
||||
Actor s;
|
||||
SWWMAnimSprite s;
|
||||
if ( special1&1 )
|
||||
{
|
||||
s = Spawn("SWWMHalfSmoke",Owner.pos);
|
||||
s = SWWMAnimSprite.SpawnAt("SWWMHalfSmoke",Owner.pos);
|
||||
s.vel = Owner.vel*.3+SWWMUtility.Vec3FromAngles(FRandom[Ponch](0,360),FRandom[Ponch](-90,90))*FRandom[Ponch](.1,.6);
|
||||
s.scale *= 1.2;
|
||||
s.alpha *= .3;
|
||||
}
|
||||
if ( special1 > 1 )
|
||||
{
|
||||
s = Spawn("SWWMHalfSmoke",Owner.pos);
|
||||
s = SWWMAnimSprite.SpawnAt("SWWMHalfSmoke",Owner.pos);
|
||||
s.vel = Owner.vel*.3+SWWMUtility.Vec3FromAngles(FRandom[Ponch](0,360),FRandom[Ponch](-90,90))*FRandom[Ponch](.1,1.2);
|
||||
s.scale *= 2.;
|
||||
s.A_SetRenderStyle(s.alpha,STYLE_AddShaded);
|
||||
s.SetShade(Color(4,2,1)*Random[Ponch](32,63));
|
||||
s.SetRenderStyle(STYLE_AddShaded);
|
||||
s.scolor = Color(4,2,1)*Random[Ponch](32,63);
|
||||
}
|
||||
}
|
||||
override void ModifyDamage( int damage, Name damageType, int &newdamage, bool passive, Actor inflictor, Actor source, int flags )
|
||||
|
|
@ -503,7 +503,7 @@ extend Class SWWMWeapon
|
|||
invoker.wallponch = false;
|
||||
}
|
||||
// check for shootables
|
||||
SWWMBulletTrail.DoTrail(self,origin,dir,DEFMELEERANGE*rangemul,0);
|
||||
SWWMBulletTrail.DoTrail(self,origin,dir,DEFMELEERANGE*rangemul,2);
|
||||
bool res = TryMelee((raging?.3:.2)*spreadmul,dmg,hitsound,rangemul,kickmul,flags,impactclass);
|
||||
if ( res && !(flags&MELEE_Rip) ) return res;
|
||||
// check for walls instead
|
||||
|
|
|
|||
|
|
@ -105,10 +105,10 @@ Class HellblazerArm : Actor
|
|||
Spawn("HellblazerArmTrail",pos);
|
||||
SWWMUtility.DoExplosion(self,6+reactiontime/2,3000+500*reactiontime,80+10*reactiontime);
|
||||
Vector3 pvel = SWWMUtility.Vec3FromAngles(FRandom[ExploS](0,360),FRandom[ExploS](-90,90))*FRandom[ExploS](1,5);
|
||||
let s = Spawn("SWWMHalfSmoke",pos);
|
||||
let s = SWWMAnimSprite.SpawnAt("SWWMHalfSmoke",pos);
|
||||
s.vel = pvel+vel*.2;
|
||||
s.SetShade(Color(4,2,1)*Random[ExploS](48,63));
|
||||
s.special1 = Random[ExploS](0,2);
|
||||
s.scolor = Color(4,2,1)*Random[ExploS](48,63);
|
||||
s.framestep = Random[ExploS](1,3);
|
||||
s.scale *= 3.;
|
||||
s.alpha *= 0.1+.4*(ReactionTime/8.);
|
||||
A_CountDown();
|
||||
|
|
@ -217,10 +217,10 @@ Class HellblazerMissile : Actor
|
|||
Vector3 traildir = -SWWMUtility.Vec3FromAngles(angle,pitch);
|
||||
for ( int i=0; i<3; i++ )
|
||||
{
|
||||
let s = Spawn("SWWMHalfSmoke",level.Vec3Offset(pos,traildir*3));
|
||||
s.SetShade(smokecol*Random[Hellblazer](48,63));
|
||||
let s = SWWMAnimSprite.SpawnAt("SWWMHalfSmoke",level.Vec3Offset(pos,traildir*3));
|
||||
s.scolor = smokecol*Random[Hellblazer](48,63);
|
||||
s.scale *= FRandom[Hellblazer](.8,1.2);
|
||||
s.special1 = Random[Hellblazer](0,2);
|
||||
s.framestep = Random[Hellblazer](1,3);
|
||||
s.alpha *= .5;
|
||||
s.vel = .3*vel + (traildir+SWWMUtility.Vec3FromAngles(FRandom[Hellblazer](0,360),FRandom[Hellblazer](-90,90))*.4).unit()*FRandom[Hellblazer](1.,2.);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -87,8 +87,9 @@ Class Wallbuster : SWWMWeapon
|
|||
}
|
||||
for ( int i=5; i<t.Results.Distance; i+=10 )
|
||||
{
|
||||
if ( !Random[Boolet](0,bc) ) continue;
|
||||
let b = Actor.Spawn("SWWMBubble",level.Vec3Offset(origin,dir*i));
|
||||
if ( Random[Boolet](0,bc) ) continue;
|
||||
if ( Random[Boolet](0,i/100) ) continue; // fall off w/ distance
|
||||
let b = SWWMAnimSprite.SpawnAt("SWWMHalfBubble",level.Vec3Offset(origin,dir*i));
|
||||
b.Scale *= FRandom[Boolet](.1,.3);
|
||||
}
|
||||
foreach( hit:t.HitList )
|
||||
|
|
|
|||
|
|
@ -92,11 +92,11 @@ Class BusterWall : Thinker
|
|||
if ( (initial || !(busttics%2)) && !Random[Wallbuster](0,1) )
|
||||
{
|
||||
Vector3 pvel = (bustdir+SWWMUtility.Vec3FromAngles(FRandom[Wallbuster](0,360),FRandom[Wallbuster](-90,90))).unit()*FRandom[Wallbuster](-2.,8.);
|
||||
let s = Actor.Spawn("SWWMHalfSmoke",spot);
|
||||
let s = SWWMAnimSprite.SpawnAt("SWWMHalfSmoke",spot);
|
||||
s.vel = pvel;
|
||||
s.scale *= 2.5;
|
||||
s.special1 = Random[Wallbuster](3,8);
|
||||
s.SetShade(Color(1,1,1)*Random[Wallbuster](40,120));
|
||||
s.framestep = Random[Wallbuster](4,9);
|
||||
s.scolor = Color(1,1,1)*Random[Wallbuster](40,120);
|
||||
}
|
||||
if ( (!initial && (busttics%3)) || (busttics > (bustmax/2)) ) continue;
|
||||
int numpt = Random[Wallbuster](-4,1);
|
||||
|
|
@ -128,11 +128,11 @@ Class BusterWall : Thinker
|
|||
if ( (initial || !(busttics%2)) && !Random[Wallbuster](0,1) )
|
||||
{
|
||||
Vector3 pvel = (bustdir+SWWMUtility.Vec3FromAngles(FRandom[Wallbuster](0,360),FRandom[Wallbuster](-90,90))).unit()*FRandom[Wallbuster](-2.,8.);
|
||||
let s = Actor.Spawn("SWWMHalfSmoke",spot);
|
||||
let s = SWWMAnimSprite.SpawnAt("SWWMHalfSmoke",spot);
|
||||
s.vel = pvel;
|
||||
s.scale *= 2.5;
|
||||
s.special1 = Random[Wallbuster](3,8);
|
||||
s.SetShade(Color(1,1,1)*Random[Wallbuster](40,120));
|
||||
s.framestep = Random[Wallbuster](4,9);
|
||||
s.scolor = Color(1,1,1)*Random[Wallbuster](40,120);
|
||||
}
|
||||
if ( (!initial && (busttics%3)) || (busttics > (bustmax/2)) ) continue;
|
||||
int numpt = Random[Wallbuster](-4,1);
|
||||
|
|
|
|||
|
|
@ -216,7 +216,7 @@ Class Eviscerator : SWWMWeapon
|
|||
{
|
||||
let [x, y, z] = SWWMUtility.GetPlayerAxes(self);
|
||||
Vector3 origin = SWWMUtility.GetFireOffset(self,ofs.x,ofs.y,ofs.z);
|
||||
let s = Spawn("SWWMHalfSmoke",origin);
|
||||
let s = Spawn("SWWMSmoke",origin);
|
||||
s.scale *= .2;
|
||||
s.alpha *= .4;
|
||||
s.speed *= .1;
|
||||
|
|
|
|||
|
|
@ -189,7 +189,7 @@ Class EvisceratorChunk : Actor
|
|||
A_SetTranslation(tls[clamp(int(lifetime*10),0,7)]);
|
||||
if ( !Random[Eviscerator](0,2) && (lifetime < .7) )
|
||||
{
|
||||
let s = Spawn("SWWMHalfSmoke",pos);
|
||||
let s = SWWMAnimSprite.SpawnAt("SWWMHalfSmoke",pos);
|
||||
s.vel = .2*vel+SWWMUtility.Vec3FromAngles(FRandom[Eviscerator](0,360),FRandom[Eviscerator](-90,90));
|
||||
s.scale *= .5;
|
||||
s.alpha *= scale.x*max(0,.7-lifetime)*1.5;
|
||||
|
|
@ -552,7 +552,7 @@ Class EvisceratorProj : Actor
|
|||
heat -= 0.004+0.0004*vel.length();
|
||||
if ( heat > 0 )
|
||||
{
|
||||
let s = Spawn("SWWMHalfSmoke",pos);
|
||||
let s = SWWMAnimSprite.SpawnAt("SWWMHalfSmoke",pos);
|
||||
s.alpha *= heat;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -816,11 +816,12 @@ Class YnykronSingularityExplosionArm : Actor
|
|||
{
|
||||
Spawn("YnykronSingularityExplosionTrail",pos);
|
||||
Vector3 pvel = SWWMUtility.Vec3FromAngles(FRandom[ExploS](0,360),FRandom[ExploS](-90,90))*FRandom[ExploS](1,5);
|
||||
let s = Spawn("SWWMHalfSmoke",pos);
|
||||
s.SetShade(Color(1,1,1)*Random[ExploS](128,160)+Color(28,0,31));
|
||||
s.A_SetRenderStyle(s.alpha*(.1+.4*(ReactionTime/15.)),STYLE_AddShaded);
|
||||
let s = SWWMAnimSprite.SpawnAt("SWWMHalfSmoke",pos);
|
||||
s.scolor = Color(1,1,1)*Random[ExploS](128,160)+Color(28,0,31);
|
||||
s.alpha *= .1+.4*(ReactionTime/15.);
|
||||
s.SetRenderStyle(STYLE_AddShaded);
|
||||
s.vel = pvel+vel*.2;
|
||||
s.special1 = Random[ExploS](1,3);
|
||||
s.framestep = Random[ExploS](2,4);
|
||||
s.scale *= 2.4;
|
||||
}
|
||||
}
|
||||
|
|
@ -1359,10 +1360,11 @@ Class YnykronAltBeam : SWWMNonInteractiveActor
|
|||
for ( int i=0; i<t.Results.Distance; i+=16 )
|
||||
{
|
||||
if ( Random[Ynykron](0,2) ) continue;
|
||||
let b = Spawn("SWWMHalfSmoke",level.Vec3Offset(pos,x*i));
|
||||
let b = SWWMAnimSprite.SpawnAt("SWWMHalfSmoke",level.Vec3Offset(pos,x*i));
|
||||
b.Scale *= FRandom[Ynykron](1.6,2.8);
|
||||
b.special1 = Random[Ynykron](3,5);
|
||||
b.A_SetRenderStyle(b.alpha*.3,STYLE_Subtract);
|
||||
b.framestep = Random[Ynykron](4,6);
|
||||
b.alpha *= .3;
|
||||
b.SetRenderStyle(STYLE_Subtract);
|
||||
b.vel += x*FRandom[Ynykron](-.2,.4);
|
||||
}
|
||||
if ( t.Results.HitType != TRACE_HitNone )
|
||||
|
|
|
|||
|
|
@ -245,9 +245,9 @@ Class YnykronImpactArm : Actor
|
|||
{
|
||||
Spawn("YnykronImpactTrail",pos);
|
||||
Vector3 pvel = SWWMUtility.Vec3FromAngles(FRandom[ExploS](0,360),FRandom[ExploS](-90,90))*FRandom[ExploS](1,5);
|
||||
let s = Spawn("SWWMHalfSmoke",pos);
|
||||
let s = SWWMAnimSprite.SpawnAt("SWWMHalfSmoke",pos);
|
||||
s.vel = pvel+vel*.2;
|
||||
s.special1 = Random[ExploS](1,3);
|
||||
s.framestep = Random[ExploS](2,4);
|
||||
s.scale *= 2.4;
|
||||
s.alpha *= 0.1+.4*(ReactionTime/15.);
|
||||
}
|
||||
|
|
@ -448,9 +448,9 @@ Class YnykronImpact : SWWMNonInteractiveActor
|
|||
for ( int i=0; i<numpt; i++ )
|
||||
{
|
||||
Vector3 pvel = SWWMUtility.Vec3FromAngles(FRandom[ExploS](0,360),FRandom[ExploS](-90,90))*FRandom[ExploS](.5,2);
|
||||
let s = Spawn("SWWMHalfSmoke",pos);
|
||||
let s = SWWMAnimSprite.SpawnAt("SWWMHalfSmoke",pos);
|
||||
s.vel = pvel;
|
||||
s.special1 = Random[ExploS](1,8);
|
||||
s.framestep = Random[ExploS](2,9);
|
||||
s.scale *= 3.;
|
||||
s.alpha *= .4;
|
||||
}
|
||||
|
|
@ -635,9 +635,9 @@ Class YnykronBeam : SWWMNonInteractiveActor
|
|||
for ( int i=0; i<t.Results.Distance; i+=32 )
|
||||
{
|
||||
if ( Random[Ynykron](0,5) ) continue;
|
||||
let b = Spawn("SWWMHalfSmoke",level.Vec3Offset(pos,x*i));
|
||||
let b = SWWMAnimSprite.SpawnAt("SWWMHalfSmoke",level.Vec3Offset(pos,x*i));
|
||||
b.Scale *= FRandom[Ynykron](1.6,2.8);
|
||||
b.special1 = Random[Ynykron](3,5);
|
||||
b.framestep = Random[Ynykron](4,6);
|
||||
b.alpha *= .3;
|
||||
b.vel += x*FRandom[Ynykron](-.2,.4);
|
||||
}
|
||||
|
|
@ -731,9 +731,9 @@ Class YnykronBeam : SWWMNonInteractiveActor
|
|||
{
|
||||
Vector3 ofs = level.Vec3Offset(pos,x*i);
|
||||
if ( Random[Ynykron](0,5) || !level.IsPointInLevel(ofs) ) continue;
|
||||
let b = Spawn("SWWMHalfSmoke",ofs);
|
||||
let b = SWWMAnimSprite.SpawnAt("SWWMHalfSmoke",ofs);
|
||||
b.Scale *= FRandom[Ynykron](1.6,2.8);
|
||||
b.special1 = Random[Ynykron](3,5);
|
||||
b.framestep = Random[Ynykron](4,6);
|
||||
b.alpha *= .3;
|
||||
b.vel += x*FRandom[Ynykron](-.2,.4);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -145,7 +145,7 @@ Class DeepImpact : SWWMWeapon
|
|||
t.hitposy.Clear();
|
||||
t.hitposz.Clear();
|
||||
t.Trace(origin,level.PointInSector(origin.xy),dir,250-i*150,0,ignore:self);
|
||||
SWWMBulletTrail.DoTrail(self,origin,dir,250-i*150,0);
|
||||
SWWMBulletTrail.DoTrail(self,origin,dir,250-i*150,10);
|
||||
for ( int k=0; k<t.hitlist.Size(); k++ )
|
||||
{
|
||||
int inl = -1;
|
||||
|
|
|
|||
|
|
@ -167,8 +167,9 @@ Class Spreadgun : SWWMWeapon
|
|||
}
|
||||
for ( int i=5; i<t.Results.Distance; i+=10 )
|
||||
{
|
||||
if ( !Random[Boolet](0,bc) ) continue;
|
||||
let b = Actor.Spawn("SWWMBubble",level.Vec3Offset(origin,dir*i));
|
||||
if ( Random[Boolet](0,bc) ) continue;
|
||||
if ( Random[Boolet](0,i/100) ) continue; // fall off w/ distance
|
||||
let b = SWWMAnimSprite.SpawnAt("SWWMHalfBubble",level.Vec3Offset(origin,dir*i));
|
||||
b.Scale *= FRandom[Boolet](.1,.3);
|
||||
}
|
||||
foreach( hit:t.HitList )
|
||||
|
|
@ -293,7 +294,7 @@ Class Spreadgun : SWWMWeapon
|
|||
st.shootthroughlist.Clear();
|
||||
st.waterhitlist.Clear();
|
||||
st.Trace(origin,level.PointInSector(origin.xy),dir,8000.,0,ignore:self);
|
||||
ProcessTraceHit(st,origin,dir,10,7000,bc:5);
|
||||
ProcessTraceHit(st,origin,dir,10,7000,bc:3);
|
||||
}
|
||||
for ( int i=0; i<16; i++ )
|
||||
{
|
||||
|
|
|
|||
|
|
@ -322,13 +322,13 @@ Class BigBiospark : Actor
|
|||
for ( int i=0; i<numpt; i++ )
|
||||
{
|
||||
Vector3 pvel = SWWMUtility.Vec3FromAngles(FRandom[ExploS](0,360),FRandom[ExploS](-90,90))*FRandom[ExploS](.3,16)*factor;
|
||||
let s = Spawn("SWWMSmallSmoke",pos);
|
||||
let s = SWWMAnimSprite.SpawnAt("SWWMSmallSmoke",pos);
|
||||
s.vel = pvel;
|
||||
s.SetShade(Color(4,5,2)*int(Random[ExploS](40,50)*factor));
|
||||
s.A_SetRenderStyle(s.alpha,STYLE_AddShaded);
|
||||
s.scolor = Color(4,5,2)*int(Random[ExploS](40,50)*factor);
|
||||
s.SetRenderStyle(STYLE_AddShaded);
|
||||
s.scale *= 8.*factor;
|
||||
s.alpha *= factor;
|
||||
s.bAMBUSH = true;
|
||||
s.bCheckWater = false;
|
||||
}
|
||||
numpt = int(Random[ExploS](8,12));
|
||||
for ( int i=0; i<numpt; i++ )
|
||||
|
|
@ -585,13 +585,13 @@ Class BiosparkBall : Actor
|
|||
for ( int i=0; i<numpt; i++ )
|
||||
{
|
||||
Vector3 pvel = SWWMUtility.Vec3FromAngles(FRandom[ExploS](0,360),FRandom[ExploS](-90,90))*FRandom[ExploS](.3,8)*factor;
|
||||
let s = Spawn("SWWMSmallSmoke",pos);
|
||||
let s = SWWMAnimSprite.SpawnAt("SWWMSmallSmoke",pos);
|
||||
s.vel = pvel;
|
||||
s.SetShade(Color(4,5,2)*int(Random[ExploS](40,50)*factor));
|
||||
s.A_SetRenderStyle(s.alpha,STYLE_AddShaded);
|
||||
s.scolor = Color(4,5,2)*int(Random[ExploS](40,50)*factor);
|
||||
s.SetRenderStyle(STYLE_AddShaded);
|
||||
s.scale *= 4.*factor;
|
||||
s.alpha *= factor;
|
||||
s.bAMBUSH = true;
|
||||
s.bCheckWater = false;
|
||||
}
|
||||
numpt = int(Random[ExploS](4,8));
|
||||
for ( int i=0; i<numpt; i++ )
|
||||
|
|
@ -743,13 +743,13 @@ Class BiosparkBeamImpact : SWWMNonInteractiveActor
|
|||
for ( int i=0; i<numpt; i++ )
|
||||
{
|
||||
Vector3 pvel = SWWMUtility.Vec3FromAngles(FRandom[ExploS](0,360),FRandom[ExploS](-90,90))*FRandom[ExploS](.3,8)*factor;
|
||||
let s = Spawn("SWWMSmallSmoke",pos);
|
||||
let s = SWWMAnimSprite.SpawnAt("SWWMSmallSmoke",pos);
|
||||
s.vel = pvel;
|
||||
s.SetShade(Color(4,5,2)*int(Random[ExploS](40,50)*factor));
|
||||
s.A_SetRenderStyle(s.alpha,STYLE_AddShaded);
|
||||
s.scolor = Color(4,5,2)*int(Random[ExploS](40,50)*factor);
|
||||
s.SetRenderStyle(STYLE_AddShaded);
|
||||
s.scale *= 4.*factor;
|
||||
s.alpha *= factor;
|
||||
s.bAMBUSH = true;
|
||||
s.bCheckWater = false;
|
||||
}
|
||||
numpt = int(Random[ExploS](2,4));
|
||||
for ( int i=0; i<numpt; i++ )
|
||||
|
|
@ -925,13 +925,13 @@ Class BiosparkComboImpact : SWWMNonInteractiveActor
|
|||
for ( int i=0; i<numpt; i++ )
|
||||
{
|
||||
Vector3 pvel = SWWMUtility.Vec3FromAngles(FRandom[ExploS](0,360),FRandom[ExploS](-90,90))*FRandom[ExploS](.3,16)*factor;
|
||||
let s = Spawn("SWWMSmallSmoke",pos);
|
||||
let s = SWWMAnimSprite.SpawnAt("SWWMSmallSmoke",pos);
|
||||
s.vel = pvel;
|
||||
s.SetShade(Color(4,5,2)*int(Random[ExploS](40,50)*factor));
|
||||
s.A_SetRenderStyle(s.alpha,STYLE_AddShaded);
|
||||
s.scolor = Color(4,5,2)*int(Random[ExploS](40,50)*factor);
|
||||
s.SetRenderStyle(STYLE_AddShaded);
|
||||
s.scale *= 4.*factor;
|
||||
s.alpha *= factor;
|
||||
s.bAMBUSH = true;
|
||||
s.bCheckWater = false;
|
||||
}
|
||||
numpt = int(Random[ExploS](4,8));
|
||||
for ( int i=0; i<numpt; i++ )
|
||||
|
|
@ -1634,13 +1634,13 @@ Class BiosparkCore : Actor
|
|||
for ( int i=0; i<numpt; i++ )
|
||||
{
|
||||
Vector3 pvel = SWWMUtility.Vec3FromAngles(FRandom[ExploS](0,360),FRandom[ExploS](-90,90))*FRandom[ExploS](.3,8)*factor;
|
||||
let s = Spawn("SWWMSmallSmoke",pos);
|
||||
let s = SWWMAnimSprite.SpawnAt("SWWMSmallSmoke",pos);
|
||||
s.vel = pvel;
|
||||
s.SetShade(Color(4,5,2)*int(Random[ExploS](40,50)*factor));
|
||||
s.A_SetRenderStyle(s.alpha,STYLE_AddShaded);
|
||||
s.scolor = Color(4,5,2)*int(Random[ExploS](40,50)*factor);
|
||||
s.SetRenderStyle(STYLE_AddShaded);
|
||||
s.scale *= 4.*factor;
|
||||
s.alpha *= factor;
|
||||
s.bAMBUSH = true;
|
||||
s.bCheckWater = false;
|
||||
}
|
||||
numpt = int(Random[ExploS](4,8));
|
||||
for ( int i=0; i<numpt; i++ )
|
||||
|
|
@ -1678,12 +1678,13 @@ Class BiosparkCore : Actor
|
|||
pitch += pitchvel;
|
||||
roll += rollvel;
|
||||
Vector3 pvel = SWWMUtility.Vec3FromAngles(FRandom[ExploS](0,360),FRandom[ExploS](-90,90))*FRandom[ExploS](.1,.4);
|
||||
let s = Spawn("SWWMHalfSmoke",pos);
|
||||
let s = SWWMAnimSprite.SpawnAt("SWWMHalfSmoke",pos);
|
||||
s.vel = pvel+vel*.1;
|
||||
s.SetShade(Color(4,5,2)*Random[ExploS](40,50));
|
||||
s.A_SetRenderStyle(s.alpha*.4,STYLE_AddShaded);
|
||||
s.scolor = Color(4,5,2)*Random[ExploS](40,50);
|
||||
s.alpha *= .4;
|
||||
s.SetRenderStyle(STYLE_AddShaded);
|
||||
s.scale *= 2.;
|
||||
s.bAMBUSH = true;
|
||||
s.bCheckWater = false;
|
||||
}
|
||||
States
|
||||
{
|
||||
|
|
|
|||
|
|
@ -72,10 +72,10 @@ Class ExplodiumMagArm : Actor
|
|||
if ( target && special1 ) SWWMUtility.AchievementProgressInc("grenade",nkill,target.player);
|
||||
}
|
||||
Vector3 pvel = SWWMUtility.Vec3FromAngles(FRandom[ExploS](0,360),FRandom[ExploS](-90,90))*FRandom[ExploS](1,5);
|
||||
let s = Spawn("SWWMHalfSmoke",pos);
|
||||
let s = SWWMAnimSprite.SpawnAt("SWWMHalfSmoke",pos);
|
||||
s.vel = pvel+vel*.2;
|
||||
s.SetShade(Color(1,1,1)*Random[ExploS](64,224));
|
||||
s.special1 = Random[ExploS](1,3);
|
||||
s.scolor = Color(1,1,1)*Random[ExploS](64,224);
|
||||
s.framestep = Random[ExploS](2,4);
|
||||
s.scale *= 2.4;
|
||||
s.alpha *= 0.1+.4*(ReactionTime/15.);
|
||||
A_CountDown();
|
||||
|
|
|
|||
|
|
@ -122,16 +122,16 @@ Class CandyBeam : SWWMNonInteractiveActor
|
|||
double a = FRandom[Candy](0,360), s = FRandom[Candy](0.,.8);
|
||||
nextdir = SWWMUtility.ConeSpread(dir,y,z,a,s);
|
||||
}
|
||||
void A_Spread( Class<Actor> pop = "CandyPop", Class<Actor> smk = "SWWMHalfSmoke" )
|
||||
void A_Spread( Class<Actor> pop = "CandyPop", Class<SWWMAnimSprite> smk = "SWWMHalfSmoke" )
|
||||
{
|
||||
Vector3 tdir = level.Vec3Diff(pos,nextpos);
|
||||
Vector3 pvel = .1*tdir+SWWMUtility.Vec3FromAngles(FRandom[ExploS](0,360),FRandom[ExploS](-90,90))*FRandom[ExploS](.1,.3);
|
||||
if ( special2 && !Random[ExploS](0,special2) )
|
||||
{
|
||||
let m = Spawn(smk,level.Vec3Offset(pos,tdir*.5));
|
||||
let m = SWWMAnimSprite.SpawnAt(smk,level.Vec3Offset(pos,tdir*.5));
|
||||
m.vel = pvel;
|
||||
m.SetShade(Color(1,1,1)*Random[ExploS](64,224));
|
||||
m.special1 = Random[ExploS](1,3);
|
||||
m.scolor = Color(1,1,1)*Random[ExploS](64,224);
|
||||
m.framestep = Random[ExploS](2,4);
|
||||
m.scale *= 1.5;
|
||||
m.alpha *= .4;
|
||||
}
|
||||
|
|
@ -276,10 +276,10 @@ Class TinyCandyPop : CandyPop
|
|||
for ( int i=0; i<numpt; i++ )
|
||||
{
|
||||
Vector3 pvel = SWWMUtility.Vec3FromAngles(FRandom[ExploS](0,360),FRandom[ExploS](-90,90))*FRandom[ExploS](.2,.9);
|
||||
let s = Spawn("SWWMSmallSmoke",pos);
|
||||
let s = SWWMAnimSprite.SpawnAt("SWWMSmallSmoke",pos);
|
||||
s.vel = pvel;
|
||||
s.SetShade(Color(1,1,1)*Random[ExploS](64,224));
|
||||
s.special1 = Random[ExploS](1,3);
|
||||
s.scolor = Color(1,1,1)*Random[ExploS](64,224);
|
||||
s.framestep = Random[ExploS](2,4);
|
||||
s.scale *= 1.8;
|
||||
s.alpha *= .4;
|
||||
}
|
||||
|
|
@ -330,10 +330,10 @@ Class CandyMagArm : Actor
|
|||
double spd = vel.length();
|
||||
vel = (vel*.1+SWWMUtility.Vec3FromAngles(FRandom[ExploS](0,360),FRandom[ExploS](-90,90))*.7).unit()*spd;
|
||||
Vector3 pvel = SWWMUtility.Vec3FromAngles(FRandom[ExploS](0,360),FRandom[ExploS](-90,90))*FRandom[ExploS](1,5);
|
||||
let s = Spawn("SWWMHalfSmoke",pos);
|
||||
let s = SWWMAnimSprite.SpawnAt("SWWMHalfSmoke",pos);
|
||||
s.vel = pvel+vel*.2;
|
||||
s.SetShade(Color(1,1,1)*Random[ExploS](64,224));
|
||||
s.special1 = Random[ExploS](2,7);
|
||||
s.scolor = Color(1,1,1)*Random[ExploS](64,224);
|
||||
s.framestep = Random[ExploS](3,8);
|
||||
s.scale *= 2.4;
|
||||
s.alpha *= 0.1+.4*(ReactionTime/8.);
|
||||
int numpt = Random[ExploS](ReactionTime-12,3);
|
||||
|
|
@ -403,10 +403,10 @@ Class CandyMagArmBig : CandyMagArm
|
|||
double spd = vel.length();
|
||||
vel = (vel*.1+SWWMUtility.Vec3FromAngles(FRandom[ExploS](0,360),FRandom[ExploS](-90,90))*.5).unit()*spd;
|
||||
Vector3 pvel = SWWMUtility.Vec3FromAngles(FRandom[ExploS](0,360),FRandom[ExploS](-90,90))*FRandom[ExploS](1,5);
|
||||
let s = Spawn("SWWMHalfSmoke",pos);
|
||||
let s = SWWMAnimSprite.SpawnAt("SWWMHalfSmoke",pos);
|
||||
s.vel = pvel+vel*.2;
|
||||
s.SetShade(Color(1,1,1)*Random[ExploS](64,224));
|
||||
s.special1 = Random[ExploS](2,7);
|
||||
s.scolor = Color(1,1,1)*Random[ExploS](64,224);
|
||||
s.framestep = Random[ExploS](3,8);
|
||||
s.scale *= 2.4;
|
||||
s.alpha *= 0.1+.4*(ReactionTime/6.);
|
||||
int numpt = Random[ExploS](ReactionTime-15,1);
|
||||
|
|
|
|||
|
|
@ -386,10 +386,10 @@ Class SilverBullet : SWWMWeapon
|
|||
if ( !Random[Boolet](0,1) ) continue;
|
||||
Vector3 ofs = level.Vec3Offset(start,tdir*i);
|
||||
if ( !level.IsPointInLevel(ofs) ) continue;
|
||||
let b = Spawn("SWWMHalfSmoke",ofs);
|
||||
let b = SWWMAnimSprite.SpawnAt("SWWMHalfSmoke",ofs);
|
||||
b.Scale *= FRandom[Boolet](.9,1.6);
|
||||
b.alpha *= .5;
|
||||
b.special1 = Random[Boolet](0,2);
|
||||
b.framestep = Random[Boolet](1,3);
|
||||
}
|
||||
for ( int i=1; i<t.WallPenetrateList.Size(); i+=2 )
|
||||
{
|
||||
|
|
@ -419,10 +419,10 @@ Class SilverBullet : SWWMWeapon
|
|||
if ( !Random[Boolet](0,1) ) continue;
|
||||
Vector3 ofs = level.Vec3Offset(start,tdir*i);
|
||||
if ( !level.IsPointInLevel(ofs) ) continue;
|
||||
let b = Spawn("SWWMHalfSmoke",ofs);
|
||||
let b = SWWMAnimSprite.SpawnAt("SWWMHalfSmoke",ofs);
|
||||
b.Scale *= FRandom[Boolet](.9,1.6);
|
||||
b.alpha *= .5;
|
||||
b.special1 = Random[Boolet](0,2);
|
||||
b.framestep = Random[Boolet](1,3);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -449,10 +449,10 @@ Class SilverBullet : SWWMWeapon
|
|||
if ( !Random[Boolet](0,1) ) continue;
|
||||
Vector3 ofs = level.Vec3Offset(origin,dir*i);
|
||||
if ( !level.IsPointInLevel(ofs) ) continue;
|
||||
let b = Spawn("SWWMHalfSmoke",ofs);
|
||||
let b = SWWMAnimSprite.SpawnAt("SWWMHalfSmoke",ofs);
|
||||
b.Scale *= FRandom[Boolet](.9,1.6);
|
||||
b.alpha *= .5;
|
||||
b.special1 = Random[Boolet](0,2);
|
||||
b.framestep = Random[Boolet](1,3);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue