Several optimizations on non-interactive actors.
This commit is contained in:
parent
4a46817881
commit
4bb3a1e85a
32 changed files with 336 additions and 1867 deletions
|
|
@ -68,7 +68,7 @@ Class RedShell16 : RedShell
|
|||
}
|
||||
}
|
||||
|
||||
Class GoldShellSparkle : Actor
|
||||
Class GoldShellSparkle : SWWMNonInteractiveActor
|
||||
{
|
||||
override void PostBeginPlay()
|
||||
{
|
||||
|
|
@ -86,14 +86,7 @@ Class GoldShellSparkle : Actor
|
|||
{
|
||||
RenderStyle "Add";
|
||||
Scale 0.05;
|
||||
+NOGRAVITY;
|
||||
+NOBLOCKMAP;
|
||||
+NOINTERACTION;
|
||||
+SYNCHRONIZED;
|
||||
+DONTSPLASH;
|
||||
+NOTELEPORT;
|
||||
+FORCEXYBILLBOARD;
|
||||
FloatBobPhase 0;
|
||||
}
|
||||
States
|
||||
{
|
||||
|
|
|
|||
|
|
@ -155,16 +155,10 @@ Mixin Class SWWMOverlapPickupSound
|
|||
}
|
||||
}
|
||||
|
||||
Class SWWMRespawnTimer : Actor
|
||||
Class SWWMRespawnTimer : SWWMNonInteractiveActor
|
||||
{
|
||||
default
|
||||
{
|
||||
+NOGRAVITY;
|
||||
+NOINTERACTION;
|
||||
+DONTSPLASH;
|
||||
+NOTELEPORT;
|
||||
Radius .1;
|
||||
Height 0.;
|
||||
Args 0,3,2;
|
||||
}
|
||||
override void PostBeginPlay()
|
||||
|
|
@ -195,12 +189,6 @@ Class SWWMRespawnTimer : Actor
|
|||
A_SpawnParticle(Color(args[0]*85,args[1]*85,args[2]*85),SPF_FULLBRIGHT,Random[ExploS](30,60),FRandom[ExploS](1.,2.),0,0,0,16,FRandom[ExploS](-.8,.8),FRandom[ExploS](-.8,.8),FRandom[ExploS](-.8,.8),0,0,0,FRandom[ExploS](.45,.9)*str,-1,FRandom[ExploS](-.04,-.02)*str);
|
||||
}
|
||||
}
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
TNT1 A -1;
|
||||
Stop;
|
||||
}
|
||||
}
|
||||
|
||||
Mixin Class SWWMPickupGlow
|
||||
|
|
@ -219,6 +207,35 @@ Mixin Class SWWMPickupGlow
|
|||
}
|
||||
}
|
||||
|
||||
Class SWWMItemOverlay : SWWMNonInteractiveActor
|
||||
{
|
||||
Default
|
||||
{
|
||||
RenderStyle "Add";
|
||||
+FLOATBOB;
|
||||
FloatBobStrength .25;
|
||||
}
|
||||
override void Tick()
|
||||
{
|
||||
if ( !target )
|
||||
{
|
||||
Destroy();
|
||||
return;
|
||||
}
|
||||
prev = target.prev;
|
||||
if ( (target.pos != pos) || (target.vel != (0,0,0)) ) SetOrigin(target.pos+target.vel,true);
|
||||
if ( angle != target.angle ) A_SetAngle(target.angle,SPF_INTERPOLATE);
|
||||
FloatBobPhase = target.FloatBobPhase;
|
||||
bInvisible = target.bInvisible||Inventory(target).Owner;
|
||||
}
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
XZW1 A -1 Bright;
|
||||
Stop;
|
||||
}
|
||||
}
|
||||
|
||||
Mixin Class SWWMRespawn
|
||||
{
|
||||
override void Hide()
|
||||
|
|
|
|||
|
|
@ -283,19 +283,11 @@ Class SWWMFlag : Actor
|
|||
}
|
||||
|
||||
// oof
|
||||
Class SWWMGasCloudSpawner : Actor
|
||||
Class SWWMGasCloudSpawner : SWWMNonInteractiveActor
|
||||
{
|
||||
Default
|
||||
{
|
||||
Radius .1;
|
||||
Height 0.;
|
||||
+NOBLOCKMAP;
|
||||
+NOTELEPORT;
|
||||
+DONTSPLASH;
|
||||
+NOINTERACTION;
|
||||
}
|
||||
override void Tick()
|
||||
{
|
||||
if ( isFrozen() ) return;
|
||||
if ( !(special1%5) )
|
||||
{
|
||||
Vector3 x, y, z;
|
||||
|
|
@ -309,20 +301,15 @@ Class SWWMGasCloudSpawner : Actor
|
|||
}
|
||||
}
|
||||
|
||||
Class SWWMGasCloud : Actor
|
||||
Class SWWMGasCloud : SWWMNonInteractiveActor
|
||||
{
|
||||
Default
|
||||
{
|
||||
Radius .1;
|
||||
Height 0.;
|
||||
+NOBLOCKMAP;
|
||||
+NOTELEPORT;
|
||||
+DONTSPLASH;
|
||||
+NOINTERACTION;
|
||||
+FORCERADIUSDMG;
|
||||
}
|
||||
override void Tick()
|
||||
{
|
||||
if ( isFrozen() ) return;
|
||||
for ( int i=0; i<2; i++ )
|
||||
{
|
||||
let e = Spawn("SWWMFart",level.Vec3Offset(pos,specialf1*SWWMUtility.Vec3FromAngles(FRandom[ExploS](0,360),FRandom[ExploS](-90,90))*20.));
|
||||
|
|
@ -352,7 +339,7 @@ Class SWWMFart : SWWMHalfSmoke
|
|||
}
|
||||
|
||||
// yay!
|
||||
Class FancyConfetti : Actor
|
||||
Class FancyConfetti : SWWMNonInteractiveActor
|
||||
{
|
||||
int deadtimer;
|
||||
bool dead;
|
||||
|
|
@ -362,20 +349,10 @@ Class FancyConfetti : Actor
|
|||
|
||||
Default
|
||||
{
|
||||
Radius 2;
|
||||
Height 2;
|
||||
+NOBLOCKMAP;
|
||||
+DROPOFF;
|
||||
+THRUACTORS;
|
||||
+NOTELEPORT;
|
||||
+DONTSPLASH;
|
||||
+INTERPOLATEANGLES;
|
||||
+ROLLSPRITE;
|
||||
+ROLLCENTER;
|
||||
+NOINTERACTION;
|
||||
+SYNCHRONIZED;
|
||||
Gravity 0.05;
|
||||
FloatBobPhase 0;
|
||||
}
|
||||
override void PostBeginPlay()
|
||||
{
|
||||
|
|
@ -522,20 +499,13 @@ Class FancyConfetti : Actor
|
|||
Stop;
|
||||
}
|
||||
}
|
||||
Class SuperFancyTrail : Actor
|
||||
Class SuperFancyTrail : SWWMNonInteractiveActor
|
||||
{
|
||||
Default
|
||||
{
|
||||
RenderStyle "Add";
|
||||
Radius .1;
|
||||
Height 0.;
|
||||
XScale 24.;
|
||||
+FORCEXYBILLBOARD;
|
||||
+NOGRAVITY;
|
||||
+NOBLOCKMAP;
|
||||
+NOINTERACTION;
|
||||
+DONTSPLASH;
|
||||
+NOTELEPORT;
|
||||
}
|
||||
override void Tick()
|
||||
{
|
||||
|
|
@ -550,24 +520,16 @@ Class SuperFancyTrail : Actor
|
|||
Stop;
|
||||
}
|
||||
}
|
||||
Class SuperFancySparkle : Actor
|
||||
Class SuperFancySparkle : SWWMNonInteractiveActor
|
||||
{
|
||||
Default
|
||||
{
|
||||
RenderStyle "Add";
|
||||
Radius 0.1;
|
||||
Height 0;
|
||||
Scale .25;
|
||||
+NOGRAVITY;
|
||||
+NOBLOCKMAP;
|
||||
+DONTSPLASH;
|
||||
+ROLLSPRITE;
|
||||
+ROLLCENTER;
|
||||
+INTERPOLATEANGLES;
|
||||
+FORCEXYBILLBOARD;
|
||||
+NOINTERACTION;
|
||||
+SYNCHRONIZED;
|
||||
FloatBobPhase 0;
|
||||
}
|
||||
override void PostBeginPlay()
|
||||
{
|
||||
|
|
@ -583,8 +545,8 @@ Class SuperFancySparkle : Actor
|
|||
}
|
||||
override void Tick()
|
||||
{
|
||||
if ( isFrozen() ) return;
|
||||
prev = pos;
|
||||
if ( isFrozen() ) return;
|
||||
A_SetScale(scale.x*specialf1);
|
||||
A_SetRoll(roll+special1,SPF_INTERPOLATE);
|
||||
A_FadeOut(specialf2);
|
||||
|
|
@ -641,19 +603,10 @@ Class SuperPartyLight : PaletteLight
|
|||
SetOrigin(level.Vec3Offset(pos,vel),true);
|
||||
}
|
||||
}
|
||||
Class PartyTime : Actor
|
||||
Class PartyTime : SWWMNonInteractiveActor
|
||||
{
|
||||
bool ignite;
|
||||
|
||||
Default
|
||||
{
|
||||
Radius .1;
|
||||
Height 0.;
|
||||
+NOBLOCKMAP;
|
||||
+NOTELEPORT;
|
||||
+DONTSPLASH;
|
||||
+NOINTERACTION;
|
||||
}
|
||||
override void PostBeginPlay()
|
||||
{
|
||||
if ( target ) specialf1 = target.Height/2.;
|
||||
|
|
|
|||
|
|
@ -236,14 +236,8 @@ Mixin Class SWWMShadedPowerup
|
|||
}
|
||||
}
|
||||
|
||||
Class GhostSnd : Actor
|
||||
Class GhostSnd : SWWMNonInteractiveActor
|
||||
{
|
||||
Default
|
||||
{
|
||||
+NOBLOCKMAP;
|
||||
+NOGRAVITY;
|
||||
+NOINTERACTION;
|
||||
}
|
||||
override void Tick()
|
||||
{
|
||||
if ( !target || !master )
|
||||
|
|
@ -405,44 +399,7 @@ Class GhostPower : PowerInvisibility
|
|||
}
|
||||
}
|
||||
|
||||
Class GhostArtifactX : Actor
|
||||
{
|
||||
SpriteID bsprite;
|
||||
|
||||
Default
|
||||
{
|
||||
RenderStyle "Add";
|
||||
+NOGRAVITY;
|
||||
+NOCLIP;
|
||||
+DONTSPLASH;
|
||||
+NOINTERACTION;
|
||||
Radius .1;
|
||||
Height 0;
|
||||
+FLOATBOB;
|
||||
FloatBobStrength 0.25;
|
||||
}
|
||||
override void Tick()
|
||||
{
|
||||
if ( !target )
|
||||
{
|
||||
Destroy();
|
||||
return;
|
||||
}
|
||||
prev = target.prev;
|
||||
vel = target.vel;
|
||||
if ( (target.pos != pos) || (target.vel != (0,0,0)) ) SetOrigin(target.pos+vel,true);
|
||||
if ( angle != target.angle ) A_SetAngle(target.angle,SPF_INTERPOLATE);
|
||||
FloatBobPhase = target.FloatBobPhase;
|
||||
if ( !bsprite ) bsprite = GetSpriteIndex('XZW1');
|
||||
bInvisible = target.bInvisible||(target.sprite!=bsprite);
|
||||
}
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
XZW1 A -1 Bright;
|
||||
Stop;
|
||||
}
|
||||
}
|
||||
Class GhostArtifactX : SWWMItemOverlay {}
|
||||
|
||||
Class GhostArtifact : Inventory
|
||||
{
|
||||
|
|
@ -521,14 +478,8 @@ Class GhostArtifact : Inventory
|
|||
}
|
||||
}
|
||||
|
||||
Class GravSnd : Actor
|
||||
Class GravSnd : SWWMNonInteractiveActor
|
||||
{
|
||||
Default
|
||||
{
|
||||
+NOBLOCKMAP;
|
||||
+NOGRAVITY;
|
||||
+NOINTERACTION;
|
||||
}
|
||||
override void Tick()
|
||||
{
|
||||
if ( !target || !master )
|
||||
|
|
@ -614,7 +565,7 @@ Class GravityPower : Powerup
|
|||
|
||||
}
|
||||
|
||||
Class GravityX : GhostArtifactX
|
||||
Class GravityX : SWWMItemOverlay
|
||||
{
|
||||
Default
|
||||
{
|
||||
|
|
@ -717,14 +668,8 @@ Class InvinciballLight : PointLightAttenuated
|
|||
bDORMANT = Powerup(master).isBlinking();
|
||||
}
|
||||
}
|
||||
Class InvinciSnd : Actor
|
||||
Class InvinciSnd : SWWMNonInteractiveActor
|
||||
{
|
||||
Default
|
||||
{
|
||||
+NOBLOCKMAP;
|
||||
+NOGRAVITY;
|
||||
+NOINTERACTION;
|
||||
}
|
||||
override void Tick()
|
||||
{
|
||||
if ( !target || !master )
|
||||
|
|
@ -854,7 +799,7 @@ Class InvinciballPower : Powerup
|
|||
}
|
||||
}
|
||||
|
||||
Class InvinciballX : GhostArtifactX
|
||||
Class InvinciballX : SWWMItemOverlay
|
||||
{
|
||||
Default
|
||||
{
|
||||
|
|
@ -967,14 +912,8 @@ Class RagekitLight : PointLightAttenuated
|
|||
}
|
||||
}
|
||||
|
||||
Class RageSnd : Actor
|
||||
Class RageSnd : SWWMNonInteractiveActor
|
||||
{
|
||||
Default
|
||||
{
|
||||
+NOBLOCKMAP;
|
||||
+NOGRAVITY;
|
||||
+NOINTERACTION;
|
||||
}
|
||||
override void Tick()
|
||||
{
|
||||
if ( !target || !master )
|
||||
|
|
@ -1140,7 +1079,7 @@ Class RagekitPower : Powerup
|
|||
}
|
||||
}
|
||||
|
||||
Class RagekitX : GhostArtifactX
|
||||
Class RagekitX : SWWMItemOverlay
|
||||
{
|
||||
Default
|
||||
{
|
||||
|
|
@ -2002,14 +1941,8 @@ Class BarrierLight : PointLightAttenuated
|
|||
bDORMANT = Powerup(master).isBlinking();
|
||||
}
|
||||
}
|
||||
Class BarrierSnd : Actor
|
||||
Class BarrierSnd : SWWMNonInteractiveActor
|
||||
{
|
||||
Default
|
||||
{
|
||||
+NOBLOCKMAP;
|
||||
+NOGRAVITY;
|
||||
+NOINTERACTION;
|
||||
}
|
||||
override void Tick()
|
||||
{
|
||||
if ( !target || !master )
|
||||
|
|
@ -2273,9 +2206,7 @@ Class EBarrier : Inventory
|
|||
}
|
||||
}
|
||||
|
||||
Class EBarrierX : GhostArtifactX
|
||||
{
|
||||
}
|
||||
Class EBarrierX : SWWMItemOverlay {}
|
||||
|
||||
Class TendrilTracer : LineTracer
|
||||
{
|
||||
|
|
@ -2308,7 +2239,7 @@ Class TendrilTracer : LineTracer
|
|||
}
|
||||
|
||||
// main heatseeker
|
||||
Class MykradvoTendril : Actor
|
||||
Class MykradvoTendril : SWWMNonInteractiveActor
|
||||
{
|
||||
Vector3 nextpos, nextdir;
|
||||
|
||||
|
|
@ -2446,15 +2377,8 @@ Class MykradvoTendril : Actor
|
|||
DamageFunction 100;
|
||||
ReactionTime 8;
|
||||
Speed 64;
|
||||
Radius .1;
|
||||
Height 0;
|
||||
+NOGRAVITY;
|
||||
+NOCLIP;
|
||||
+DONTSPLASH;
|
||||
+INTERPOLATEANGLES;
|
||||
+NOTELEPORT;
|
||||
+FOILINVUL;
|
||||
+NOINTERACTION;
|
||||
+MISSILEMORE;
|
||||
}
|
||||
States
|
||||
|
|
@ -2622,7 +2546,7 @@ Class MykradvoBurstLight : PaletteLight
|
|||
}
|
||||
|
||||
// 'splode
|
||||
Class MykradvoBurst : Actor
|
||||
Class MykradvoBurst : SWWMNonInteractiveActor
|
||||
{
|
||||
Array<Actor> targets;
|
||||
int nstep;
|
||||
|
|
@ -2630,11 +2554,7 @@ Class MykradvoBurst : Actor
|
|||
Default
|
||||
{
|
||||
RenderStyle "Add";
|
||||
+NOBLOCKMAP;
|
||||
+NOGRAVITY;
|
||||
+FORCEXYBILLBOARD;
|
||||
+NOTELEPORT;
|
||||
+NOINTERACTION;
|
||||
Scale 1.4;
|
||||
}
|
||||
void FlashPlayer( int str, double rad )
|
||||
|
|
@ -2955,7 +2875,7 @@ Class Mykradvo : Inventory
|
|||
}
|
||||
}
|
||||
|
||||
Class MykradvoX : GhostArtifactX
|
||||
Class MykradvoX : SWWMItemOverlay
|
||||
{
|
||||
Default
|
||||
{
|
||||
|
|
@ -2976,14 +2896,12 @@ Class MykradvoX : GhostArtifactX
|
|||
return;
|
||||
}
|
||||
prev = target.prev;
|
||||
vel = target.vel;
|
||||
if ( (target.pos != pos) || (target.vel != (0,0,0)) ) SetOrigin(target.pos+vel,true);
|
||||
if ( angle != target.angle ) A_SetAngle(target.angle,SPF_INTERPOLATE);
|
||||
FloatBobPhase = target.FloatBobPhase;
|
||||
A_SetScale(.16+.01*sin(GetAge()*4));
|
||||
if ( !bsprite ) bsprite = GetSpriteIndex('XZW0');
|
||||
bool bOldInvis = bInvisible;
|
||||
bInvisible = target.bInvisible||(target.sprite!=bsprite);
|
||||
bInvisible = target.bInvisible||Inventory(target).Owner;
|
||||
if ( bInvisible != bOldInvis )
|
||||
{
|
||||
SetState(SpawnState+bInvisible);
|
||||
|
|
@ -2999,7 +2917,7 @@ Class MykradvoX : GhostArtifactX
|
|||
}
|
||||
}
|
||||
|
||||
Class MykradvoX2 : GhostArtifactX
|
||||
Class MykradvoX2 : SWWMItemOverlay
|
||||
{
|
||||
Default
|
||||
{
|
||||
|
|
@ -3018,16 +2936,14 @@ Class MykradvoX2 : GhostArtifactX
|
|||
return;
|
||||
}
|
||||
prev = target.prev;
|
||||
vel = target.vel;
|
||||
if ( (target.pos != pos) || (target.vel != (0,0,0)) ) SetOrigin(target.pos+vel,true);
|
||||
if ( angle != target.angle ) A_SetAngle(target.angle,SPF_INTERPOLATE);
|
||||
FloatBobPhase = target.FloatBobPhase;
|
||||
A_SetPitch(sin(GetAge()*special1*8)*5,SPF_INTERPOLATE);
|
||||
A_SetRoll(cos(GetAge()*special1*8)*5,SPF_INTERPOLATE);
|
||||
FloatBobPhase = target.FloatBobPhase;
|
||||
A_SetScale(1.+.05*cos(GetAge()*4)*special1);
|
||||
if ( !bsprite ) bsprite = GetSpriteIndex('XZW0');
|
||||
bool bOldInvis = bInvisible;
|
||||
bInvisible = target.bInvisible||(target.sprite!=bsprite);
|
||||
bInvisible = target.bInvisible||Inventory(target).Owner;
|
||||
if ( bInvisible != bOldInvis )
|
||||
SetState(SpawnState+bInvisible);
|
||||
}
|
||||
|
|
@ -3194,14 +3110,8 @@ Class AngeryLight : PointLightAttenuated
|
|||
bDORMANT = Powerup(master).isBlinking();
|
||||
}
|
||||
}
|
||||
Class AngerySnd : Actor
|
||||
Class AngerySnd : SWWMNonInteractiveActor
|
||||
{
|
||||
Default
|
||||
{
|
||||
+NOBLOCKMAP;
|
||||
+NOGRAVITY;
|
||||
+NOINTERACTION;
|
||||
}
|
||||
override void Tick()
|
||||
{
|
||||
if ( !target || !master )
|
||||
|
|
@ -3394,7 +3304,7 @@ Class AngerySigil : Inventory
|
|||
Stop;
|
||||
}
|
||||
}
|
||||
Class AngerySigilX : GhostArtifactX
|
||||
Class AngerySigilX : SWWMItemOverlay
|
||||
{
|
||||
Default
|
||||
{
|
||||
|
|
@ -3417,13 +3327,11 @@ Class AngerySigilX : GhostArtifactX
|
|||
return;
|
||||
}
|
||||
prev = target.prev;
|
||||
vel = target.vel;
|
||||
if ( (target.pos != pos) || (target.vel != (0,0,0)) ) SetOrigin(target.pos+vel,true);
|
||||
if ( angle != target.angle ) A_SetAngle(target.angle,SPF_INTERPOLATE);
|
||||
FloatBobPhase = target.FloatBobPhase;
|
||||
if ( !bsprite ) bsprite = GetSpriteIndex('XZW1');
|
||||
bool bOldInvis = bInvisible;
|
||||
bInvisible = target.bInvisible||(target.sprite!=bsprite);
|
||||
bInvisible = target.bInvisible||Inventory(target).Owner;
|
||||
if ( bInvisible != bOldInvis )
|
||||
{
|
||||
SetState(SpawnState+bInvisible);
|
||||
|
|
@ -3464,14 +3372,8 @@ Class DivineSpriteLight : PointLightAttenuated
|
|||
args[LIGHT_INTENSITY] = Random[Invinciball](10,12)*10;
|
||||
}
|
||||
}
|
||||
Class DivineSpriteSnd : Actor
|
||||
Class DivineSpriteSnd : SWWMNonInteractiveActor
|
||||
{
|
||||
Default
|
||||
{
|
||||
+NOBLOCKMAP;
|
||||
+NOGRAVITY;
|
||||
+NOINTERACTION;
|
||||
}
|
||||
override void Tick()
|
||||
{
|
||||
if ( !target || !master )
|
||||
|
|
@ -3668,7 +3570,7 @@ Class DivineSprite : Inventory
|
|||
Stop;
|
||||
}
|
||||
}
|
||||
Class DivineSpriteX : GhostArtifactX
|
||||
Class DivineSpriteX : SWWMItemOverlay
|
||||
{
|
||||
Default
|
||||
{
|
||||
|
|
@ -3689,13 +3591,11 @@ Class DivineSpriteX : GhostArtifactX
|
|||
return;
|
||||
}
|
||||
prev = target.prev;
|
||||
vel = target.vel;
|
||||
if ( (target.pos != pos) || (target.vel != (0,0,0)) ) SetOrigin(target.pos+vel,true);
|
||||
if ( angle != target.angle ) A_SetAngle(target.angle,SPF_INTERPOLATE);
|
||||
FloatBobPhase = target.FloatBobPhase;
|
||||
if ( !bsprite ) bsprite = GetSpriteIndex('XZW1');
|
||||
bool bOldInvis = bInvisible;
|
||||
bInvisible = target.bInvisible||(target.sprite!=bsprite);
|
||||
bInvisible = target.bInvisible||Inventory(target).Owner;
|
||||
if ( bOldInvis != bInvisible )
|
||||
{
|
||||
SetState(SpawnState+bInvisible);
|
||||
|
|
@ -3713,18 +3613,8 @@ Class DivineSpriteX : GhostArtifactX
|
|||
|
||||
// TBD 1.4 Ballsy Bomb
|
||||
|
||||
Class BallImpact : Actor
|
||||
Class BallImpact : SWWMNonInteractiveActor
|
||||
{
|
||||
Default
|
||||
{
|
||||
Radius 0.1;
|
||||
Height 0;
|
||||
+NOGRAVITY;
|
||||
+NOCLIP;
|
||||
+DONTSPLASH;
|
||||
+NOTELEPORT;
|
||||
+NOINTERACTION;
|
||||
}
|
||||
override void PostBeginPlay()
|
||||
{
|
||||
Super.PostBeginPlay();
|
||||
|
|
@ -4061,24 +3951,18 @@ Class SaltLight2 : PaletteLight
|
|||
}
|
||||
}
|
||||
|
||||
Class SaltImpact : Actor
|
||||
Class SaltImpact : SWWMNonInteractiveActor
|
||||
{
|
||||
Default
|
||||
{
|
||||
Obituary "$O_SALTSHOT";
|
||||
DamageType "Salt";
|
||||
RenderStyle "Add";
|
||||
Radius 0.1;
|
||||
Height 0;
|
||||
Scale 1.8;
|
||||
+NOGRAVITY;
|
||||
+NOBLOCKMAP;
|
||||
+NODAMAGETHRUST;
|
||||
+FORCERADIUSDMG;
|
||||
+FORCEXYBILLBOARD;
|
||||
+NOTELEPORT;
|
||||
+FOILINVUL;
|
||||
+NOINTERACTION;
|
||||
}
|
||||
override void PostBeginPlay()
|
||||
{
|
||||
|
|
@ -4117,17 +4001,6 @@ Class SaltImpact : Actor
|
|||
}
|
||||
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
|
||||
{
|
||||
Spawn:
|
||||
|
|
@ -4144,27 +4017,20 @@ Class SaltImpact : Actor
|
|||
}
|
||||
}
|
||||
|
||||
Class SaltBeam : Actor
|
||||
Class SaltBeam : SWWMNonInteractiveActor
|
||||
{
|
||||
Default
|
||||
{
|
||||
Obituary "$O_SALTSHOT";
|
||||
DamageType "Salt";
|
||||
RenderStyle "Add";
|
||||
Radius 0.1;
|
||||
Height 0;
|
||||
Stamina 9;
|
||||
Speed 32;
|
||||
+NOGRAVITY;
|
||||
+NOBLOCKMAP;
|
||||
+DONTSPLASH;
|
||||
+NOTELEPORT;
|
||||
+ROLLSPRITE;
|
||||
+ROLLCENTER;
|
||||
+NODAMAGETHRUST;
|
||||
+FORCERADIUSDMG;
|
||||
+FOILINVUL;
|
||||
+NOINTERACTION;
|
||||
}
|
||||
|
||||
void SpreadOut()
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue