Code: Select all
piece base ,flare1 ,gun ,flare2 ;
#DEFINE SMOKEPIECE1 base
#DEFINE SIG_NUM1 2
#INCLUDE "SmokeUnit.h"
#INCLUDE "exptype.h"
Create()
{
HIDE flare1;
HIDE flare2;
DONT-CACHE flare1;
DONT-CACHE flare2;
DONT-CACHE gun;
DONT-CACHE base;
DONT-SHADE flare1;
DONT-SHADE gun;
DONT-SHADE flare2;
DONT-SHADE base;
START-SCRIPT SmokeUnit();
}
AimPrimary(heading,pitch)
{
SIGNAL SIG_NUM1;
SET-SIGNAL-MASK SIG_NUM1;
TURN gun to y-axis heading SPEED <300.07>;
WAIT-FOR-TURN gun around y-axis;
RETURN ( TRUE );
}
FirePrimary()
{
SHOW flare1;
SLEEP <150>;
HIDE flare1;
}
FireSecondary()
{
SHOW flare2;
SLEEP <150>;
HIDE flare2;
}
AimFromPrimary(piecenum)
{
piecenum = gun;
}
QueryPrimary(piecenum)
{
piecenum = flare1;
}
QuerySecondary(piecenum)
{
piecenum = flare2;
}
SweetSpot(piecenum)
{
piecenum = base;
}
Killed(severity,corpsetype)
{
HIDE flare;
IF (severity <= 25 )
{
corpsetype = 1 ;
EXPLODE base type BITMAPONLY | BITMAP2;
EXPLODE flare1 type BITMAPONLY | BITMAP3;
EXPLODE gun type BITMAPONLY | BITMAP4;
EXPLODE flare2 type BITMAPONLY | BITMAP5;
RETURN ( 0 );
}
IF (severity <= 50 )
{
corpsetype = 2 ;
EXPLODE base type BITMAPONLY | BITMAP2;
EXPLODE flare1 type FALL | BITMAP3;
EXPLODE flare2 type SHATTER | BITMAP4;
EXPLODE gun type FALL | BITMAP5;
RETURN ( 0 );
}
IF (severity <= 99 )
{
corpsetype = 3 ;
EXPLODE base type BITMAPONLY | BITMAP2;
EXPLODE flare1 type FALL | SMOKE | FIRE | EXPLODE_ON_HIT | BITMAP3;
EXPLODE gun type SHATTER | EXPLODE_ON_HIT | BITMAP4;
EXPLODE flare2 type FALL | SMOKE | FIRE | EXPLODE_ON_HIT | BITMAP5;
RETURN ( 0 );
}
corpsetype = 3 ;
EXPLODE base type BITMAPONLY | BITMAP2;
EXPLODE flare1 type FALL | SMOKE | FIRE | EXPLODE_ON_HIT | BITMAP3;
EXPLODE gun type SHATTER | EXPLODE_ON_HIT | BITMAP4;
EXPLODE flare2 type FALL | SMOKE | FIRE | EXPLODE_ON_HIT | BITMAP5;
RETURN ( 0 );
}