Add freezetics support to all actors that need it.

Remove Demoslayer fun option.
This commit is contained in:
Mari the Deer 2022-10-31 15:08:11 +01:00
commit ab9023d3ee
25 changed files with 312 additions and 291 deletions

View file

@ -47,7 +47,7 @@ Class SWWMCasing : Actor abstract
override void Tick()
{
Super.Tick();
if ( isFrozen() ) return;
if ( isFrozen() || (freezetics > 0) ) return;
if ( killme ) A_FadeOut(.01);
if ( waterlevel > 0 )
{
@ -152,6 +152,7 @@ Class SWWMWeaponLight : DynamicLight
override void Tick()
{
Super.Tick();
if ( isFrozen() || (freezetics > 0) ) return;
if ( !target )
{
Destroy();

View file

@ -159,7 +159,6 @@ Class HellblazerFlare : SWWMNonInteractiveActor
override void Tick()
{
if ( isFrozen() ) return;
if ( !master || !master.bMISSILE )
{
Destroy();
@ -423,7 +422,7 @@ Class HellblazerMissile2 : HellblazerMissile
{
oldvel = vel;
Super.Tick();
if ( isFrozen() || !InStateSequence(CurState,FindState("Spawn")) ) return;
if ( isFrozen() || (freezetics > 0) || !InStateSequence(CurState,FindState("Spawn")) ) return;
roll += rollvel;
angle += anglevel;
pitch += pitchvel;

View file

@ -14,8 +14,8 @@ Class EvisceratorChunkLight : PointLightAttenuated
Destroy();
return;
}
if ( isFrozen() || (freezetics > 0) ) return;
SetOrigin(target.pos,true);
if ( isFrozen() ) return;
double intst = clamp((.7-EvisceratorChunk(target).lifetime)/.7,0.,1.);
args[LIGHT_RED] = int(255*intst);
args[LIGHT_GREEN] = int(224*intst);
@ -68,6 +68,11 @@ Class EvisceratorChunkGlow : SWWMNonInteractiveActor
}
override void Tick()
{
if ( freezetics > 0 )
{
freezetics--;
return;
}
if ( isFrozen() ) return;
if ( !EvisceratorChunk(target) || EvisceratorChunk(target).justdied )
{
@ -97,6 +102,11 @@ Class EvisceratorChunkTrail : SWWMNonInteractiveActor
}
override void Tick()
{
if ( freezetics > 0 )
{
freezetics--;
return;
}
if ( isFrozen() ) return;
A_SetScale(scale.x*(.6+specialf1),scale.y);
A_FadeOut(.1+specialf2);
@ -172,7 +182,7 @@ Class EvisceratorChunk : Actor
// otherwise there is a single puff of smoke at the LAST tic
// of the state, there is no logical explanation for this,
// I guess I can blame graf, randi, or whoever else
if ( isFrozen() || justdied ) return;
if ( isFrozen() || (freezetics > 0) || justdied ) return;
lifetime += lifespeed;
if ( waterlevel > 0 ) lifetime = max(.7,lifetime);
A_SetTranslation(tls[clamp(int(lifetime*10),0,7)]);
@ -386,6 +396,11 @@ Class EvisceratorProjSmoke : SWWMNonInteractiveActor
}
override void Tick()
{
if ( freezetics > 0 )
{
freezetics--;
return;
}
if ( isFrozen() ) return;
lifetime += lifespeed;
let s = Spawn("SWWMSmoke",pos);

View file

@ -5,9 +5,14 @@ Class AshenRemains : SWWMNonInteractiveActor
{
override void Tick()
{
if ( freezetics > 0 )
{
freezetics--;
return;
}
if ( isFrozen() ) return;
double fz = CurSector.floorplane.ZAtPoint(pos.xy);
if ( fz != pos.z ) SetOrigin((pos.x,pos.y,fz),true);
if ( isFrozen() ) return;
special1++;
if ( special1 > 350 ) A_FadeOut(0.01);
}
@ -280,6 +285,11 @@ Class YnykronDelayedImpact : SWWMNonInteractiveActor
override void Tick()
{
if ( freezetics > 0 )
{
freezetics--;
return;
}
if ( isFrozen() ) return;
special1++;
if ( special1 < 4 )
@ -820,6 +830,11 @@ Class YnykronBeam : SWWMNonInteractiveActor
}
override void Tick()
{
if ( freezetics > 0 )
{
freezetics--;
return;
}
if ( isFrozen() ) return;
A_FadeOut(FRandom[Ynykron](.01,.02));
special2++;
@ -906,6 +921,11 @@ Class DelayedWallBeam : SWWMNonInteractiveActor
}
override void Tick()
{
if ( freezetics > 0 )
{
freezetics--;
return;
}
if ( isFrozen() ) return;
special2--;
if ( special2 > 0 ) return;
@ -976,6 +996,11 @@ Class YnykronImpactRing : SWWMNonInteractiveActor
}
override void Tick()
{
if ( freezetics > 0 )
{
freezetics--;
return;
}
if ( isFrozen() ) return;
A_SetScale(scale.x*(special2?1.06:1.03));
if ( !CheckNoDelay() || (tics == -1) ) return;
@ -1048,6 +1073,11 @@ Class YnykronShot : SWWMNonInteractiveActor
}
override void Tick()
{
if ( freezetics > 0 )
{
freezetics--;
return;
}
if ( isFrozen() ) return;
// spawn rings
special1++;
@ -1130,6 +1160,11 @@ Class YnykronHaloTail : SWWMNonInteractiveActor
}
override void Tick()
{
if ( freezetics > 0 )
{
freezetics--;
return;
}
if ( isFrozen() ) return;
A_SetScale(scale.x+.5);
A_FadeOut(.2);
@ -1152,6 +1187,11 @@ Class YnykronHalo : SWWMNonInteractiveActor
}
override void Tick()
{
if ( freezetics > 0 )
{
freezetics--;
return;
}
if ( isFrozen() ) return;
if ( !target || target.InStateSequence(target.CurState,target.FindState("Death")) )
{
@ -1232,6 +1272,11 @@ Class YnykronVoidBeamTail : SWWMNonInteractiveActor
}
override void Tick()
{
if ( freezetics > 0 )
{
freezetics--;
return;
}
if ( isFrozen() ) return;
A_FadeOut();
}
@ -1786,6 +1831,11 @@ Class YnykronVoidSparkleTrail : SWWMNonInteractiveActor
}
override void Tick()
{
if ( freezetics > 0 )
{
freezetics--;
return;
}
if ( isFrozen() ) return;
A_SetScale(scale.x*.95,scale.y);
A_FadeOut(.04);
@ -1816,6 +1866,11 @@ Class YnykronVoidSparkle : SWWMNonInteractiveActor
}
override void Tick()
{
if ( freezetics > 0 )
{
freezetics--;
return;
}
if ( isFrozen() ) return;
A_SetScale(scale.x*specialf1);
A_FadeOut(specialf2);
@ -2052,6 +2107,11 @@ Class YnykronSingularity : SWWMNonInteractiveActor
override void Tick()
{
prev = pos;
if ( freezetics > 0 )
{
freezetics--;
return;
}
if ( isFrozen() ) return;
Vector3 newpos;
if ( !mt ) mt = new("SimpleMoveTracer");
@ -2534,6 +2594,11 @@ Class YnykronAltBeam : SWWMNonInteractiveActor
}
override void Tick()
{
if ( freezetics > 0 )
{
freezetics--;
return;
}
if ( isFrozen() ) return;
A_FadeOut(FRandom[Ynykron](.01,.02));
special2++;
@ -2623,6 +2688,11 @@ Class YnykronAltShot : SWWMNonInteractiveActor
}
override void Tick()
{
if ( freezetics > 0 )
{
freezetics--;
return;
}
if ( isFrozen() || IsActorPlayingSound(CHAN_VOICE) ) return;
Destroy();
}

View file

@ -91,6 +91,11 @@ Class BigOrbiter : SWWMNonInteractiveActor
Destroy();
return;
}
if ( freezetics > 0 )
{
freezetics--;
return;
}
if ( isFrozen() ) return;
angle += anglevel;
pitch += pitchvel;
@ -1245,6 +1250,11 @@ Class BiosparkChildBeam : SWWMNonInteractiveActor
}
override void Tick()
{
if ( freezetics > 0 )
{
freezetics--;
return;
}
if ( isFrozen() ) return;
A_FadeOut(.02);
if ( !CheckNoDelay() || (tics == -1) ) return;

View file

@ -301,6 +301,7 @@ Class ExplodiumMagAttach : ExplodiumMagProj
override void Tick()
{
Super.Tick();
if ( freezetics > 0 ) return;
if ( isFrozen() ) return;
if ( bKILLED ) return;
if ( atline ) // attempt to follow the movement of the line