example :
Code: Select all
Class Smoke : Actor
{
double smokeScaling;
double smokeFadeSpeed;
property Scaling: smokeScaling;
property FadeSpeed: smokeFadeSpeed;
Default
{
Radius 8;
Height 8;
Projectile;
Speed 16;
+RANDOMIZE;
+NOCLIP;
+CLIENTSIDEONLY;
+FORCEXYBILLBOARD;
+ROLLSPRITE;
+ROLLCENTER;
RenderStyle "Translucent";
Scale 0.2;
Alpha 0.5;
Smoke.Scaling 0.005;
Smoke.FadeSpeed 0.01;
}
States
{
Spawn:
TNT1 A 1
{
if(random(0,101) > 50)
{
A_ChangeFlag("SPRITEFLIP",TRUE);
}
}
Death:
SMOK A 1
{
A_FadeOut(FadeSpeed);
A_SetScale((scale.x + Scaling));
ThrustThingZ (0, 1, 0, 0);
}
Loop;
}
}
Action void A_FireProjectileSmoke(class<Actor> missiletype, double FadeSpeed = 0.005, double smokeScaling = 0.01, double angle = 0, bool useammo = true, double spawnofs_xy = 0, double spawnheight = 0, int flags = 0, double pitch = 0)
{
//pseudo code
Smoke.Scaling = smokeScaling;
Smoke.FadeSpeed = FadeSpeed;
//other code for spawn smoke with parameters
}