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

@ -70,6 +70,11 @@ Class GoldShellSparkle : SWWMNonInteractiveActor
}
override void Tick()
{
if ( freezetics > 0 )
{
freezetics--;
return;
}
if ( isFrozen() ) return;
SetOrigin(Vec3Offset(0,0,vel.z),true);
alpha -= .02;

View file

@ -144,6 +144,11 @@ Class SWWMRespawnTimer : SWWMNonInteractiveActor
return;
}
special2 = tracer.tics;
if ( freezetics > 0 )
{
freezetics--;
return;
}
if ( isFrozen() ) return;
double str = 1.-special2/double(special1);
int freq = int(clamp(30*(1.-str),3,30));

View file

@ -83,6 +83,7 @@ Class FroggyChair : Actor
wasonground = ((pos.z <= floorz) || !TestMobjZ());
lastvelz = vel.z;
Super.Tick();
if ( isFrozen() || (freezetics > 0) ) return;
if ( (pos.z <= floorz) || !TestMobjZ() )
{
if ( !wasonground && (lastvelz < -1) ) A_StartSound("squeak",CHAN_BODY,CHANF_OVERLAP,clamp(-lastvelz*.05,0.,1.));
@ -287,6 +288,11 @@ Class SWWMGasCloudSpawner : SWWMNonInteractiveActor
{
override void Tick()
{
if ( freezetics > 0 )
{
freezetics--;
return;
}
if ( isFrozen() ) return;
if ( !(special1%5) )
{
@ -309,6 +315,11 @@ Class SWWMGasCloud : SWWMNonInteractiveActor
}
override void Tick()
{
if ( freezetics > 0 )
{
freezetics--;
return;
}
if ( isFrozen() ) return;
for ( int i=0; i<2; i++ )
{
@ -367,6 +378,11 @@ Class FancyConfetti : SWWMNonInteractiveActor
override void Tick()
{
prev = pos; // for interpolation
if ( freezetics > 0 )
{
freezetics--;
return;
}
if ( isFrozen() ) return;
if ( dead )
{
@ -509,6 +525,11 @@ Class SuperFancyTrail : SWWMNonInteractiveActor
}
override void Tick()
{
if ( freezetics > 0 )
{
freezetics--;
return;
}
if ( isFrozen() ) return;
A_SetScale(scale.x*.95,scale.y);
A_FadeOut(.01);
@ -546,6 +567,11 @@ Class SuperFancySparkle : SWWMNonInteractiveActor
override void Tick()
{
prev = pos;
if ( freezetics > 0 )
{
freezetics--;
return;
}
if ( isFrozen() ) return;
A_SetScale(scale.x*specialf1);
A_SetRoll(roll+special1,SPF_INTERPOLATE);
@ -599,7 +625,7 @@ Class SuperPartyLight : PaletteLight
override void Tick()
{
Super.Tick();
if ( isFrozen() ) return;
if ( isFrozen() || (freezetics > 0) ) return;
SetOrigin(level.Vec3Offset(pos,vel),true);
}
}

View file

@ -290,6 +290,11 @@ Class GhostTarget : Actor
}
override void Tick()
{
if ( freezetics > 0 )
{
freezetics--;
return;
}
if ( isFrozen() ) return;
if ( diedie ) A_FadeOut(.02);
let bt = BlockThingsIterator.Create(self,300);
@ -1429,7 +1434,7 @@ Class LampMoth : Actor
override void Tick()
{
Super.Tick();
if ( isFrozen() ) return;
if ( isFrozen() || (freezetics > 0) ) return;
if ( isEntranced() )
{
lifespan = 100;
@ -1612,7 +1617,7 @@ Class CompanionLamp : Actor
Destroy();
return;
}
if ( isFrozen() ) return;
if ( isFrozen() || (freezetics > 0) ) return;
// update trailing position
bool foundspot = false;
for ( int i=0; i<180; i+=5 )
@ -2346,6 +2351,11 @@ Class MykradvoTendril : SWWMNonInteractiveActor
}
override void Tick()
{
if ( freezetics > 0 )
{
freezetics--;
return;
}
if ( isFrozen() ) return;
A_FadeOut(bMISSILEMORE?.05:bSTANDSTILL?.2:.1);
if ( !CheckNoDelay() || (tics == -1) ) return;
@ -2586,6 +2596,11 @@ Class MykradvoBurst : SWWMNonInteractiveActor
}
override void Tick()
{
if ( freezetics > 0 )
{
freezetics--;
return;
}
if ( isFrozen() ) return;
if ( (special1++)%3 )
{
@ -3746,7 +3761,7 @@ Class TheBall : Actor
{
oldvel = vel;
Super.Tick();
if ( isFrozen() ) return;
if ( isFrozen() || (freezetics > 0) ) return;
if ( InStateSequence(CurState,ResolveState("Death")) )
{
deadtimer++;
@ -4116,6 +4131,11 @@ Class SaltBeam : SWWMNonInteractiveActor
override void Tick()
{
if ( freezetics > 0 )
{
freezetics--;
return;
}
if ( isFrozen() ) return;
A_FadeOut(.04);
if ( Random[Spreadgun](-2,args[2]/10) == 0 )