openclonk/planet/BackToTheRocks.c4f/ThunderousSkies.c4s/MovingBrick.c4d/Script.c

69 lines
1.1 KiB
C

/*-- Moving Bricks --*/
local ox,oy,rx,ry,size;
protected func Initialize()
{
ox=GetX();
oy=GetY();
ry=40;
rx=0;
SetAction("Moving");
SetPosition(ox,oy);
size=4;
AddEffect("MovingAround",this,100,1,this,this->GetID());
return;
}
func Room(int xa, int ya, int a,int xd, int yd)
{
rx=xa;
ry=ya;
SetXDir(xd);
SetYDir(yd);
if(a==1){ SetGraphics("S1"); size=1;}
else if(a==2){ SetGraphics("S2"); size=2;}
else if(a==3){ SetGraphics("S3"); size=3;}
else { SetGraphics(Format("%d",1+Random(4))); size=4;}
}
func FxMovingAroundTimer(object pTarget, int noum, int timer)
{
pTarget->Move(timer%360);
}
func Move(int a)
{
if(GetY()<oy)SetYDir(GetYDir()+1);
if(GetY()>(oy+ry))SetYDir(GetYDir()-1);
if(GetX()<ox)SetXDir(GetXDir()+1);
if(GetX()>(ox+rx))SetXDir(GetXDir()-1);
DigFreeRect(GetX()-20,GetY()-6,size*10,12);
}
func Definition(def)
{
SetProperty("ActMap", {
Moving = {
Prototype = Action,
Name = "Moving",
Procedure = DFA_FLOAT,
Length = 1,
Delay = 1,
X = 0,
Y = 0,
Wdt = 40,
Hgt = 10,
NextAction = "Moving",
},
}, def);
SetProperty("Name", "$Name$", def);
}