Galaxium III mine

From Hack Wars Wiki

Jump to: navigation, search
#define functions
 
int main(){
 
 
int id=getID();
int center=getLocal("center");
 
 
int frame=getLocal(center,"frame");
if(id==center){
    setLocal(center,"frame",frame+1);   
}
 
int explode=getLocal("explode");
int pulse=getLocal("pulse");
 
if(id==center&&explode==0){
 
	if(frame%10==0){
	if(pulse==0){
		setLocal("pulse",1);
		setFrame(1);
	}else{
			setLocal("pulse",0);
			setFrame(0);
	}
	}	
}		
		if(id==center)
		while(getMessageCount()>0&&explode==0){
			int health=getLocal("health");
			if(getFlag()=="damage"){
				int damage=getMessage();
				health=health-damage;
				setLocal("health",health);
				if(health<0){
					int ii=center;
					while(ii<center+9){
						setLocal(ii,"explode",frame);
						ii=ii+1;	
					}
 
					if(getLocal("type")=="headmine"){
						//playSound(61);
						setGlobal("score",getGlobal("score")+50);
						setLocal("killed",0);
						if(rand()<=0.25){
							int s=createSprite(18,14,getX(),getY(),2);
							setFrame(s,6);
							setLocal(s,"animate",0);
							setLocal(s,"type","health");
							float aangle=rand()*360.0;
							aangle=intValue(aangle%24)*15.0;
							int ax=intValue((cos(aangle)*2.0));
							int ay=intValue(((-1)*sin(aangle)*2.0));
							setLocal(s,"addx",ax);
							setLocal(s,"addy",ay);
						}
 
					}
				}
			}
			nextMessage();
		}
 
		while(getCollidedCount()>0&&explode==0){
			int target=collidedWith();
			string type=getLocal(target,"type");
 
			if(type!="asteroidexplode"&&type!="enemy"&&type!="explode"&&type!="headmine"&&type!="mine"&&type!="planet"&&type!="asteroid"&&type!="bullet"){
				int ii=center;
				while(ii<center+9){
					setLocal(ii,"explode",frame);
					ii=ii+1;	
				}
			}
			nextCollided();
		}
 
if(explode>0){
	if(id==center){
		int phase=0;
		if(getImage()==14)
			phase=1;
		if(getImage()==15)
			phase=2;
		explode1(frame,explode,phase);
	}else
 
	if(id==center+1){
		explode2(frame,explode,5,24,4);
	}else
 
	if(id==center+2){
		explode2(frame,explode,4,0,0);
	}else if(id>center+2){
		explode2(frame,explode,-1,0,0);
	}
}
 
}
 
int explode2(int life,int explodestart,int frame,int x,int y){
	if(life>=explodestart+10&&life<explodestart+20){
		if(frame>0)
			setFrame(frame);
	}else if(life>=explodestart+20){
		int s=0;
		int ii=0;
		int x=getX();
		int y=getY();
		int id=getID();
		while(ii<5){
			int x1=intValue(rand()*24);
			int y1=intValue(rand()*24);
			s=createSprite(11,7,x+x1,y+y1,2);
			setFrame(s,2);
			setLocal(s,"type","explode");
			setLocal(s,"damage",1);
			setLocal(s,"movey",0);
			setLocal(s,"movex",0);
			setLocal(s,"life",0);
			setLocal(s,"explode",0);
			setLocal(s,"parent",id);
			setLocal("dealdamage",2);
			ii=ii+1;
		}
 
		destroySprite();
	}
}
 
int explode1(int life,int explodestart,int phase){
 
if(phase==0&&isLocalSet("killed")){
	drawText("50","courier",10,getX()-getViewportX()+32,getY()-getViewportY()+32-(life-explodestart),255,255,255,255);
}
 
if(phase==0){
	if(life<explodestart+10){
		setFrame(2);
	}else if(life<explodestart+20){
		setFrame(3);
	}else if(life<explodestart+25){
		setFrame(0);
		setImage(14);
		setLocal("explode",life);
	}
}else{
 
if(life<explodestart+3){
	setFrame(1);
}else if(life<explodestart+6){
	setFrame(2);
}else if(life<explodestart+9){
	setFrame(3);
}else if(life<explodestart+12){
	setFrame(4);
}else if(life<explodestart+15){
	setFrame(5);
}else if(life<explodestart+18){
	if(phase==2)
		destroySprite();
	else{
		setImage(15);
		setLocal("explode",life);
	}
}
 
}
 
}
Personal tools