Beta stage entered. Ynykron Altfire finalized.

This commit is contained in:
Mari the Deer 2020-09-15 19:15:43 +02:00
commit 6cd065cf7c
44 changed files with 577 additions and 24 deletions

View file

@ -1,4 +1,4 @@
**Swimming in Jizz:** ~~**Swimming in Jizz:**~~
- This is where I make all the stuff before beta. - This is where I make all the stuff before beta.
- It's been over nine months already, still a shorter dev time than my previous projects. - It's been over nine months already, still a shorter dev time than my previous projects.

View file

@ -1,7 +1,3 @@
**Fundamental things before beta:**
- Ynykron Artifact altfire
**Not so fundamental things during first beta:** **Not so fundamental things during first beta:**
- Extra Demolitionist animations (swimming, additional gestures) - Extra Demolitionist animations (swimming, additional gestures)

View file

@ -1,2 +1,2 @@
[default] [default]
SWWM_MODVER="\chSWWM \cwGZ\c- r547 (Tue 15 Sep 14:11:49 CEST 2020)"; SWWM_MODVER="\chSWWM \cwGZ\c- 0.9b r549 (Tue 15 Sep 19:18:10 CEST 2020)";

BIN
palettes/Purple.pal Normal file

Binary file not shown.

BIN
sprites/MOPFA0.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

BIN
sprites/XEX4A0.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

BIN
sprites/XEX4B0.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

BIN
sprites/XEX4C0.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

BIN
sprites/XEX4D0.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

BIN
sprites/XEX4E0.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

BIN
sprites/XEX4F0.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2 KiB

BIN
sprites/XEX4G0.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

BIN
sprites/XEX4H0.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

BIN
sprites/XEX4I0.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

BIN
sprites/XEX4J0.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

BIN
sprites/XEX4K0.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

BIN
sprites/XEX4L0.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

BIN
sprites/XEX4M0.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

BIN
sprites/XEX4N0.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

BIN
sprites/XEX4O0.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

BIN
sprites/XEX4P0.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3 KiB

BIN
sprites/XEX4Q0.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

BIN
sprites/XEX4R0.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

BIN
sprites/XEX4S0.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3 KiB

BIN
sprites/XEX4T0.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

BIN
sprites/XEX4U0.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

BIN
sprites/XEX4V0.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

BIN
sprites/XEX4W0.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

BIN
sprites/XEX4X0.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

BIN
sprites/XEX4Y0.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

BIN
sprites/XEX4Z0.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

BIN
sprites/XEX4[0.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

BIN
sprites/XEX4^0.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

View file

@ -44,6 +44,17 @@ Class HellblazerSubExpl : Actor
+NOTELEPORT; +NOTELEPORT;
+NOINTERACTION; +NOINTERACTION;
} }
override void Tick()
{
if ( isFrozen() ) return;
if ( !CheckNoDelay() || (tics == -1) ) return;
if ( tics > 0 ) tics--;
while ( !tics )
{
if ( !SetState(CurState.NextState) )
return;
}
}
States States
{ {
Spawn: Spawn:
@ -66,6 +77,17 @@ Class HellblazerRing : Actor
+NOTELEPORT; +NOTELEPORT;
+NOINTERACTION; +NOINTERACTION;
} }
override void Tick()
{
if ( isFrozen() ) return;
if ( !CheckNoDelay() || (tics == -1) ) return;
if ( tics > 0 ) tics--;
while ( !tics )
{
if ( !SetState(CurState.NextState) )
return;
}
}
States States
{ {
Spawn: Spawn:
@ -88,6 +110,17 @@ Class HellblazerRing2 : Actor
+NOTELEPORT; +NOTELEPORT;
+NOINTERACTION; +NOINTERACTION;
} }
override void Tick()
{
if ( isFrozen() ) return;
if ( !CheckNoDelay() || (tics == -1) ) return;
if ( tics > 0 ) tics--;
while ( !tics )
{
if ( !SetState(CurState.NextState) )
return;
}
}
States States
{ {
Spawn: Spawn:
@ -117,6 +150,17 @@ Class HellblazerTrail : Actor
Super.PostBeginPlay(); Super.PostBeginPlay();
SetState(FindState("Spawn")+Random[ExploS](0,7)); SetState(FindState("Spawn")+Random[ExploS](0,7));
} }
override void Tick()
{
if ( isFrozen() ) return;
if ( !CheckNoDelay() || (tics == -1) ) return;
if ( tics > 0 ) tics--;
while ( !tics )
{
if ( !SetState(CurState.NextState) )
return;
}
}
States States
{ {
Spawn: Spawn:
@ -162,6 +206,7 @@ Class HellblazerFlare : Actor
override void Tick() override void Tick()
{ {
if ( isFrozen() ) return;
if ( !master || !master.bMISSILE ) if ( !master || !master.bMISSILE )
{ {
Destroy(); Destroy();
@ -939,6 +984,13 @@ Class RavagerPuff : Actor
if ( isFrozen() ) return; if ( isFrozen() ) return;
A_FadeOut((waterlevel>0)?.1:.02); A_FadeOut((waterlevel>0)?.1:.02);
scale += initsc*.2; scale += initsc*.2;
if ( !CheckNoDelay() || (tics == -1) ) return;
if ( tics > 0 ) tics--;
while ( !tics )
{
if ( !SetState(CurState.NextState) )
return;
}
} }
States States
{ {
@ -1097,6 +1149,17 @@ Class HellblazerWarheadTrail : Actor
+NOINTERACTION; +NOINTERACTION;
Scale 2.4; Scale 2.4;
} }
override void Tick()
{
if ( isFrozen() ) return;
if ( !CheckNoDelay() || (tics == -1) ) return;
if ( tics > 0 ) tics--;
while ( !tics )
{
if ( !SetState(CurState.NextState) )
return;
}
}
States States
{ {
Spawn: Spawn:

View file

@ -24,6 +24,17 @@ Class mkBlood : Actor
else b.SetShade(Color(80,0,0)); else b.SetShade(Color(80,0,0));
b.CopyBloodColor(target); b.CopyBloodColor(target);
} }
override void Tick()
{
if ( isFrozen() ) return;
if ( !CheckNoDelay() || (tics == -1) ) return;
if ( tics > 0 ) tics--;
while ( !tics )
{
if ( !SetState(CurState.NextState) )
return;
}
}
States States
{ {
Spawn: Spawn:

View file

@ -483,6 +483,17 @@ Class EvisceratorSubExpl : Actor
+NOTELEPORT; +NOTELEPORT;
+NOINTERACTION; +NOINTERACTION;
} }
override void Tick()
{
if ( isFrozen() ) return;
if ( !CheckNoDelay() || (tics == -1) ) return;
if ( tics > 0 ) tics--;
while ( !tics )
{
if ( !SetState(CurState.NextState) )
return;
}
}
States States
{ {
Spawn: Spawn:
@ -505,6 +516,17 @@ Class EvisceratorRing : Actor
+NOTELEPORT; +NOTELEPORT;
+NOINTERACTION; +NOINTERACTION;
} }
override void Tick()
{
if ( isFrozen() ) return;
if ( !CheckNoDelay() || (tics == -1) ) return;
if ( tics > 0 ) tics--;
while ( !tics )
{
if ( !SetState(CurState.NextState) )
return;
}
}
States States
{ {
Spawn: Spawn:

View file

@ -219,6 +219,17 @@ Class YnykronImpactTrail : Actor
Scale.x *= RandomPick[ExploS](-1,1); Scale.x *= RandomPick[ExploS](-1,1);
Scale.y *= RandomPick[ExploS](-1,1); Scale.y *= RandomPick[ExploS](-1,1);
} }
override void Tick()
{
if ( isFrozen() ) return;
if ( !CheckNoDelay() || (tics == -1) ) return;
if ( tics > 0 ) tics--;
while ( !tics )
{
if ( !SetState(CurState.NextState) )
return;
}
}
States States
{ {
Spawn: Spawn:
@ -452,6 +463,17 @@ Class YnykronImpact : Actor
YnykronShot(master).blastcount--; YnykronShot(master).blastcount--;
Super.OnDestroy(); Super.OnDestroy();
} }
override void Tick()
{
if ( isFrozen() ) return;
if ( !CheckNoDelay() || (tics == -1) ) return;
if ( tics > 0 ) tics--;
while ( !tics )
{
if ( !SetState(CurState.NextState) )
return;
}
}
States States
{ {
Spawn: Spawn:
@ -901,6 +923,17 @@ Class YnykronRing : Actor
+ROLLCENTER; +ROLLCENTER;
+NOINTERACTION; +NOINTERACTION;
} }
override void Tick()
{
if ( isFrozen() ) return;
if ( !CheckNoDelay() || (tics == -1) ) return;
if ( tics > 0 ) tics--;
while ( !tics )
{
if ( !SetState(CurState.NextState) )
return;
}
}
States States
{ {
Spawn: Spawn:
@ -927,9 +960,15 @@ Class YnykronImpactRing : Actor
} }
override void Tick() override void Tick()
{ {
Super.Tick();
if ( isFrozen() ) return; if ( isFrozen() ) return;
A_SetScale(scale.x*(special2?1.06:1.03)); A_SetScale(scale.x*(special2?1.06:1.03));
if ( !CheckNoDelay() || (tics == -1) ) return;
if ( tics > 0 ) tics--;
while ( !tics )
{
if ( !SetState(CurState.NextState) )
return;
}
} }
States States
{ {
@ -1830,6 +1869,168 @@ Class SimpleMoveTracer : LineTracer
} }
} }
Class YnykronSingularityRing : Actor
{
Default
{
RenderStyle "Add";
Radius 0.1;
Height 0;
Scale 4.;
+NOGRAVITY;
+NOBLOCKMAP;
+FORCEXYBILLBOARD;
+NOTELEPORT;
+DONTSPLASH;
+NOINTERACTION;
}
override void Tick()
{
if ( isFrozen() ) return;
A_SetScale(scale.x*1.05);
if ( !CheckNoDelay() || (tics == -1) ) return;
if ( tics > 0 ) tics--;
while ( !tics )
{
if ( !SetState(CurState.NextState) )
return;
}
}
States
{
Spawn:
XRG4 ABCDEFGHIJKLMNOPQRSTUVWX 2 Bright;
Stop;
}
}
Class YnykronVoidExplLight : PaletteLight
{
Default
{
Tag "Purple";
ReactionTime 60;
Args 0,0,0,1200;
}
}
Class YnykronVoidSparkle : Actor
{
Default
{
RenderStyle "Add";
Radius 0.1;
Height 0;
+NOGRAVITY;
+NOBLOCKMAP;
+DONTSPLASH;
+ROLLSPRITE;
+ROLLCENTER;
+FORCEXYBILLBOARD;
+NOINTERACTION;
}
override void PostBeginPlay()
{
Scale *= FRandom[ExploS](.75,1.5);
specialf1 = FRandom[ExploS](.95,.98);
specialf2 = FRandom[ExploS](.005,.015);
vel = (cos(angle)*cos(pitch),sin(angle)*cos(pitch),sin(-pitch))*FRandom[ExploS](1,16);
}
override void Tick()
{
if ( isFrozen() ) return;
A_SetScale(scale.x*specialf1);
A_FadeOut(specialf2);
Vector3 dir = vel;
double magvel = dir.length();
magvel *= .99;
if ( magvel > 0. )
{
dir /= magvel;
dir += .2*(FRandom[ExploS](-1,1),FRandom[ExploS](-1,1),FRandom[ExploS](-1,1));
vel = dir.unit()*magvel;
}
SetOrigin(level.Vec3Offset(pos,vel),true);
}
States
{
Spawn:
MOPF A -1 Bright;
Stop;
}
}
Class YnykronSingularityExplosion : Actor
{
Default
{
Obituary "$O_YNYKRONALT";
DamageType "YnykronAlt";
RenderStyle "Add";
Scale 5.;
Radius 0.1;
Height 0;
+NOGRAVITY;
+NOBLOCKMAP;
+NODAMAGETHRUST;
+FORCERADIUSDMG;
+FORCEXYBILLBOARD;
+NOTELEPORT;
+FOILINVUL;
+NOINTERACTION;
}
override void PostBeginPlay()
{
Super.PostBeginPlay();
if ( !Random[ExploS](0,5) )
A_StartSound("ynykron/impact",CHAN_VOICE);
SWWMUtility.DoExplosion(self,10000,5000,400,200);
A_SprayDecal("WumboScorch",-172);
Scale *= FRandom[ExploS](0.8,1.1);
Scale.x *= RandomPick[ExploS](-1,1);
Scale.y *= RandomPick[ExploS](-1,1);
int numpt = Random[ExploS](8,12);
for ( int i=0; i<numpt; i++ )
{
Vector3 pvel = (FRandom[ExploS](-1,1),FRandom[ExploS](-1,1),FRandom[ExploS](-1,1)).unit()*FRandom[ExploS](4,20);
let s = Spawn("SWWMSmoke",pos);
s.vel = pvel;
s.SetShade(Color(1,1,1)*Random[ExploS](128,160)+Color(28,0,31));
s.A_SetRenderStyle(.2,STYLE_AddShaded);
s.special1 = Random[ExploS](2,5);
s.scale *= 8.;
}
numpt = Random[ExploS](5,10);
for ( int i=0; i<numpt; i++ )
{
double ang = FRandom[ExploS](0,360);
double pt = FRandom[ExploS](-90,90);
double ofs = FRandom[ExploS](0.,30.);
let s = Spawn("YnykronVoidSparkle",level.Vec3Offset(pos,ofs*(cos(ang)*cos(pt),sin(ang)*cos(pt),sin(-pt))));
s.angle = ang;
s.pitch = pt;
}
}
override void Tick()
{
if ( isFrozen() ) return;
scale *= 1.01;
if ( !CheckNoDelay() || (tics == -1) ) return;
if ( tics > 0 ) tics--;
while ( !tics )
{
if ( !SetState(CurState.NextState) )
return;
}
}
States
{
Spawn:
XEX4 ABCDEFGHIJKLMNOPQRSTUVWXYZ[\ 2 Bright;
Stop;
}
}
Class YnykronSingularity : Actor Class YnykronSingularity : Actor
{ {
const MAXBEAMS = 20; const MAXBEAMS = 20;
@ -2110,45 +2311,90 @@ Class YnykronSingularity : Actor
} }
void A_SingularityBlast() void A_SingularityBlast()
{ {
Console.Printf("// TODO explosion goes here"); A_AlertMonsters();
A_QuakeEx(8,8,8,80,0,65536,"",QF_RELATIVE|QF_SCALEDOWN,falloff:65536,rollIntensity:1.6); SWWMUtility.DoExplosion(self,int.max,500000,800,400);
A_QuakeEx(8,8,8,100,0,65536,"",QF_RELATIVE|QF_SCALEDOWN,falloff:65536,rollIntensity:1.6);
A_StopAllSounds(); A_StopAllSounds();
A_StartSound("ynykron/vortexend",CHAN_VOICE,attenuation:0.); A_StartSound("ynykron/vortexend",CHAN_VOICE,attenuation:0.);
FlashPlayer(250,9000); FlashPlayer(250,9000);
vel *= 0; vel *= 0;
// kill off and detach any leftover beams // kill off any leftover beams
for ( int i=0; i<MAXBEAMS; i++ ) for ( int i=0; i<MAXBEAMS; i++ )
{ {
if ( !beamers[i] ) continue; if ( !beamers[i] ) continue;
YnykronVoidBeam(beamers[i]).maxlife = 0; YnykronVoidBeam(beamers[i]).maxlife = 0;
beamers[i] = null; }
Spawn("YnykronSingularityRing",pos);
Spawn("YnykronVoidExplLight",pos);
int numpt = Random[ExploS](40,60);
for ( int i=0; i<numpt; i++ )
{
let s = Spawn("YnykronVoidSparkle",pos);
s.angle = FRandom[ExploS](0,360);
s.pitch = FRandom[ExploS](-90,90);
s.scale *= 8.;
s.alpha *= 5.;
} }
} }
void A_SingularityExtraBlast() void A_SingularityExtraBlast()
{ {
special1++; special1++;
if ( special1 > 80 ) if ( special1 > 60 )
{ {
if ( IsActorPlayingSound(CHAN_VOICE) ) return; if ( IsActorPlayingSound(CHAN_VOICE) ) return;
for ( int i=0; i<MAXBEAMS; i++ ) if ( beamers[i] ) return; for ( int i=0; i<MAXBEAMS; i++ ) if ( beamers[i] ) return;
Destroy(); Destroy();
return; return;
} }
for ( int i=0; i<MAXBEAMS; i++ ) double factor = (60-special1)/60.;
double invfct = 1.-factor;
SWWMUtility.DoExplosion(self,0,-50000*factor,2000*invfct);
FlashPlayer(int(100*factor),9000);
FLineTraceData d;
Vector3 HitNormal;
Vector3 origin;
double ang, pt;
int numpt = clamp(special1/6,2,8);
for ( int i=0; i<numpt; i++ )
{ {
if ( beamers[i] ) double totaldist = 30+(special1**2.5)*.05;
ang = FRandom[ExploS](0,360);
pt = FRandom[ExploS](-90,90);
origin = pos;
while ( totaldist > 0 )
{ {
YnykronVoidBeam(beamers[i]).maxlife = 0; LineTrace(ang,totaldist,pt,TRF_THRUACTORS|TRF_ABSPOSITION,origin.z,origin.x,origin.y,d);
continue; hitnormal = -d.HitDir;
if ( d.HitType == TRACE_HitFloor )
{
if ( d.Hit3DFloor ) hitnormal = -d.Hit3DFloor.top.Normal;
else hitnormal = d.HitSector.floorplane.Normal;
}
else if ( d.HitType == TRACE_HitCeiling )
{
if ( d.Hit3DFloor ) hitnormal = -d.Hit3DFloor.bottom.Normal;
else hitnormal = d.HitSector.ceilingplane.Normal;
}
else if ( d.HitType == TRACE_HitWall )
{
hitnormal = (-d.HitLine.delta.y,d.HitLine.delta.x,0).unit();
if ( !d.LineSide ) hitnormal *= -1;
}
totaldist -= d.Distance;
if ( totaldist > 0 )
{
Vector3 bounced = d.HitDir-(2*hitnormal*(d.HitDir dot HitNormal));
ang = atan2(bounced.y,bounced.x);
pt = asin(-bounced.z);
origin = d.HitLocation+hitnormal;
}
} }
beamers[i] = Spawn("YnykronVoidBeam",pos); let p = Spawn("YnykronSingularityExplosion",d.HitLocation+hitnormal*4);
YnykronVoidBeam(beamers[i]).basebeam = beamers[i]; p.angle = atan2(hitnormal.y,hitnormal.x);
beamers[i].target = target; p.pitch = asin(-hitnormal.z);
beamers[i].master = self; p.target = target;
beamers[i].stamina = 1; p.scale *= 1.+special1/40.;
beamers[i].scale *= scale.x*10.;
} }
scale.x *= .97;
} }
Default Default

View file

@ -151,6 +151,17 @@ Class AirBulletRing : Actor
Radius 0.1; Radius 0.1;
Height 0; Height 0;
} }
override void Tick()
{
if ( isFrozen() ) return;
if ( !CheckNoDelay() || (tics == -1) ) return;
if ( tics > 0 ) tics--;
while ( !tics )
{
if ( !SetState(CurState.NextState) )
return;
}
}
States States
{ {
Spawn: Spawn:

View file

@ -1077,6 +1077,9 @@ Class SWWMHandler : EventHandler
CopyFloatBob(e.Thing); CopyFloatBob(e.Thing);
if ( swwm_doomfall && e.Thing.bISMONSTER && !level.monsterfallingdamage ) if ( swwm_doomfall && e.Thing.bISMONSTER && !level.monsterfallingdamage )
ForcedFallerDamager.TrackBody(e.Thing); ForcedFallerDamager.TrackBody(e.Thing);
// alternate form without extra thinker, just needs PR #1153
//if ( swwm_doomfall && e.Thing.bISMONSTER )
// e.Thing.bFALLDAMAGE = true;
if ( e.Thing is 'Key' ) if ( e.Thing is 'Key' )
{ {
DoKeyTagFix(e.Thing); DoKeyTagFix(e.Thing);

View file

@ -533,6 +533,17 @@ Class SaltImpact : Actor
} }
Spawn("SaltLight2",pos); Spawn("SaltLight2",pos);
} }
override void Tick()
{
if ( isFrozen() ) return;
if ( !CheckNoDelay() || (tics == -1) ) return;
if ( tics > 0 ) tics--;
while ( !tics )
{
if ( !SetState(CurState.NextState) )
return;
}
}
States States
{ {
Spawn: Spawn:
@ -832,13 +843,14 @@ Class OnFire : Actor
override void Tick() override void Tick()
{ {
if ( isFrozen() ) return;
if ( !victim ) if ( !victim )
{ {
A_StopSound(CHAN_5); A_StopSound(CHAN_5);
Destroy(); Destroy();
return; return;
} }
SetOrigin(victim.pos,true); SetOrigin(victim.pos,false);
if ( victim.waterlevel > 0 ) if ( victim.waterlevel > 0 )
{ {
if ( lite ) lite.Destroy(); if ( lite ) lite.Destroy();
@ -1043,6 +1055,19 @@ Class OnFireTrail : Actor
s.scale *= .5+abs(scale.x)*(.5+special1/6.); s.scale *= .5+abs(scale.x)*(.5+special1/6.);
} }
} }
override void Tick()
{
if ( isFrozen() ) return;
SetOrigin(level.Vec3Offset(pos,vel),true);
UpdateWaterLevel();
if ( !CheckNoDelay() || (tics == -1) ) return;
if ( tics > 0 ) tics--;
while ( !tics )
{
if ( !SetState(CurState.NextState) )
return;
}
}
Default Default
{ {
RenderStyle "Add"; RenderStyle "Add";
@ -1683,6 +1708,17 @@ Class GoldenImpact : Actor
p.target = target; p.target = target;
} }
} }
override void Tick()
{
if ( isFrozen() ) return;
if ( !CheckNoDelay() || (tics == -1) ) return;
if ( tics > 0 ) tics--;
while ( !tics )
{
if ( !SetState(CurState.NextState) )
return;
}
}
States States
{ {
Spawn: Spawn:
@ -1808,6 +1844,17 @@ Class GoldenSubImpact : Actor
p.target = target; p.target = target;
} }
} }
override void Tick()
{
if ( isFrozen() ) return;
if ( !CheckNoDelay() || (tics == -1) ) return;
if ( tics > 0 ) tics--;
while ( !tics )
{
if ( !SetState(CurState.NextState) )
return;
}
}
States States
{ {
Spawn: Spawn:
@ -1861,6 +1908,17 @@ Class GoldenSubSubImpact : Actor
s.alpha *= .2; s.alpha *= .2;
} }
} }
override void Tick()
{
if ( isFrozen() ) return;
if ( !CheckNoDelay() || (tics == -1) ) return;
if ( tics > 0 ) tics--;
while ( !tics )
{
if ( !SetState(CurState.NextState) )
return;
}
}
States States
{ {
Spawn: Spawn:

View file

@ -796,6 +796,17 @@ Class BiosparkBeamImpact : Actor
s.ReactionTime += Random[Sparkster](0,int(5*factor)); s.ReactionTime += Random[Sparkster](0,int(5*factor));
} }
} }
override void Tick()
{
if ( isFrozen() ) return;
if ( !CheckNoDelay() || (tics == -1) ) return;
if ( tics > 0 ) tics--;
while ( !tics )
{
if ( !SetState(CurState.NextState) )
return;
}
}
States States
{ {
Spawn: Spawn:
@ -836,6 +847,17 @@ Class BiosparkComboImpactSub : Actor
if ( !bAMBUSH ) return; if ( !bAMBUSH ) return;
SWWMUtility.DoExplosion(self,100,10000,300,120); SWWMUtility.DoExplosion(self,100,10000,300,120);
} }
override void Tick()
{
if ( isFrozen() ) return;
if ( !CheckNoDelay() || (tics == -1) ) return;
if ( tics > 0 ) tics--;
while ( !tics )
{
if ( !SetState(CurState.NextState) )
return;
}
}
States States
{ {
Spawn: Spawn:
@ -1042,6 +1064,17 @@ Class BiosparkComboImpact : Actor
p.bAMBUSH = bAMBUSH; p.bAMBUSH = bAMBUSH;
} }
} }
override void Tick()
{
if ( isFrozen() ) return;
if ( !CheckNoDelay() || (tics == -1) ) return;
if ( tics > 0 ) tics--;
while ( !tics )
{
if ( !SetState(CurState.NextState) )
return;
}
}
States States
{ {
Spawn: Spawn:
@ -1636,6 +1669,17 @@ Class BiosparkSpark : Actor
+FORCEXYBILLBOARD; +FORCEXYBILLBOARD;
+NOINTERACTION; +NOINTERACTION;
} }
override void Tick()
{
if ( isFrozen() ) return;
if ( !CheckNoDelay() || (tics == -1) ) return;
if ( tics > 0 ) tics--;
while ( !tics )
{
if ( !SetState(CurState.NextState) )
return;
}
}
States States
{ {
Spawn: Spawn:

View file

@ -89,6 +89,17 @@ Class ExplodiumMagTrail : Actor
+NOINTERACTION; +NOINTERACTION;
Scale 1.1; Scale 1.1;
} }
override void Tick()
{
if ( isFrozen() ) return;
if ( !CheckNoDelay() || (tics == -1) ) return;
if ( tics > 0 ) tics--;
while ( !tics )
{
if ( !SetState(CurState.NextState) )
return;
}
}
States States
{ {
Spawn: Spawn:
@ -262,6 +273,17 @@ Class ExplodiumBulletImpact : Actor
} }
Spawn("ExploLight",pos); Spawn("ExploLight",pos);
} }
override void Tick()
{
if ( isFrozen() ) return;
if ( !CheckNoDelay() || (tics == -1) ) return;
if ( tics > 0 ) tics--;
while ( !tics )
{
if ( !SetState(CurState.NextState) )
return;
}
}
States States
{ {
Spawn: Spawn:

View file

@ -245,6 +245,17 @@ Class CandyPop : Actor
SWWMHandler.DoFlash(mo,Color(str,224,0,255),3); SWWMHandler.DoFlash(mo,Color(str,224,0,255),3);
} }
} }
override void Tick()
{
if ( isFrozen() ) return;
if ( !CheckNoDelay() || (tics == -1) ) return;
if ( tics > 0 ) tics--;
while ( !tics )
{
if ( !SetState(CurState.NextState) )
return;
}
}
States States
{ {
Spawn: Spawn:
@ -412,6 +423,17 @@ Class CandyMagTrail : Actor
Scale 2.4; Scale 2.4;
Alpha 0.7; Alpha 0.7;
} }
override void Tick()
{
if ( isFrozen() ) return;
if ( !CheckNoDelay() || (tics == -1) ) return;
if ( tics > 0 ) tics--;
while ( !tics )
{
if ( !SetState(CurState.NextState) )
return;
}
}
States States
{ {
Spawn: Spawn:
@ -773,6 +795,17 @@ Class CandyBulletImpact : Actor
Spawn("CandyLight",pos); Spawn("CandyLight",pos);
Spawn("CandyRing",pos); Spawn("CandyRing",pos);
} }
override void Tick()
{
if ( isFrozen() ) return;
if ( !CheckNoDelay() || (tics == -1) ) return;
if ( tics > 0 ) tics--;
while ( !tics )
{
if ( !SetState(CurState.NextState) )
return;
}
}
States States
{ {
Spawn: Spawn:
@ -808,6 +841,17 @@ Class CandyRing : Actor
+NOTELEPORT; +NOTELEPORT;
+NOINTERACTION; +NOINTERACTION;
} }
override void Tick()
{
if ( isFrozen() ) return;
if ( !CheckNoDelay() || (tics == -1) ) return;
if ( tics > 0 ) tics--;
while ( !tics )
{
if ( !SetState(CurState.NextState) )
return;
}
}
States States
{ {
Spawn: Spawn:

View file

@ -140,6 +140,17 @@ Class SilverImpact : Actor
s.vel = pvel; s.vel = pvel;
} }
} }
override void Tick()
{
if ( isFrozen() ) return;
if ( !CheckNoDelay() || (tics == -1) ) return;
if ( tics > 0 ) tics--;
while ( !tics )
{
if ( !SetState(CurState.NextState) )
return;
}
}
States States
{ {
Spawn: Spawn:
@ -453,6 +464,17 @@ Class FatChodeImpact : Actor
} }
Spawn("ExploLight3",pos); Spawn("ExploLight3",pos);
} }
override void Tick()
{
if ( isFrozen() ) return;
if ( !CheckNoDelay() || (tics == -1) ) return;
if ( tics > 0 ) tics--;
while ( !tics )
{
if ( !SetState(CurState.NextState) )
return;
}
}
States States
{ {
Spawn: Spawn:
@ -491,6 +513,17 @@ Class FatChodeExplosionTrail : Actor
+NOINTERACTION; +NOINTERACTION;
Scale 3.; Scale 3.;
} }
override void Tick()
{
if ( isFrozen() ) return;
if ( !CheckNoDelay() || (tics == -1) ) return;
if ( tics > 0 ) tics--;
while ( !tics )
{
if ( !SetState(CurState.NextState) )
return;
}
}
States States
{ {
Spawn: Spawn: