Re: Scripted LWeapon items #1
Oopsie. fixed.
Also the wand magic was strewn together with no design at all really, and turned out kinda dumb as a result....I should fix that but what should it do? Spread shot like contra maybe?
Code:
int fire3;
int wand2;
global script global_2{
void run(){
int attack_delay;
while(true){
Waitframe();
int lx = Link->X; int ly = Link->Y;
if(attack_delay>0)attack_delay--;
if(Link->InputB && fire3>0){
if(attack_delay==0){
attack_delay = 6;
lweapon laser = Screen->CreateLWeapon(LW_FIRE);
if(Link->Dir==0){laser->Dir=0;laser->X=lx;laser->Y=ly-16;}
else if(Link->Dir==1){laser->Dir=1;laser->X=lx;laser->Y=ly+16;}
else if(Link->Dir==2){laser->Dir=2;laser->X=lx-16;laser->Y=ly;}
else{ laser->Dir=3;laser->X=lx+16;laser->Y=ly;}
laser->Step=200;
laser->Damage=2;
laser->CSet=8;
Game->PlaySound(13);
}
}
else fire3=0;
}
}
}
item script flamethrower_item{
void run(){
fire3=3;
}
}
item script wand_lv2{
void run(int tile){
int d = 2; // damage
int c = 7; // cset
int s = 300; // speed
int t = Link->Dir;
int lx = Link->X; int ly = Link->Y;
if(wand2>=0){
lweapon laser = Screen->CreateLWeapon(LW_MAGIC);
if(Link->Dir==0){laser->Dir=0;laser->X=lx;laser->Y=ly-16;}
else if(Link->Dir==1){laser->Dir=1;laser->X=lx;laser->Y=ly+16;}
else if(Link->Dir==2){laser->Dir=2;laser->X=lx-16;laser->Y=ly;}
else{ laser->Dir=3;laser->X=lx+16;laser->Y=ly;}
laser->Step=s;laser->Tile=tile+t;
laser->Damage=d;
laser->CSet=c;
Game->PlaySound(32);
}
if(wand2>=0){
lweapon laser = Screen->CreateLWeapon(LW_MAGIC);
if(Link->Dir==0){laser->Dir=0;laser->X=lx+8;laser->Y=ly-16;}
else if(Link->Dir==1){laser->Dir=1;laser->X=lx+8;laser->Y=ly+16;}
else if(Link->Dir==2){laser->Dir=2;laser->X=lx-16;laser->Y=ly+8;}
else{ laser->Dir=3;laser->X=lx+16;laser->Y=ly+8;}
laser->Step=s;laser->Tile=tile+t;
laser->Damage=d;
laser->CSet=c;
Game->PlaySound(32);
}
if(wand2>=0){
lweapon laser = Screen->CreateLWeapon(LW_MAGIC);
if(Link->Dir==0){laser->Dir=0;laser->X=lx-8;laser->Y=ly-16;}
else if(Link->Dir==1){laser->Dir=1;laser->X=lx-8;laser->Y=ly+16;}
else if(Link->Dir==2){laser->Dir=2;laser->X=lx-16;laser->Y=ly-8;}
else{ laser->Dir=3;laser->X=lx+16;laser->Y=ly-8;}
laser->Step=s;laser->Tile=tile+t;
laser->Damage=d;
laser->CSet=c;
Game->PlaySound(32);
}
if(wand2>=0){
lweapon laser = Screen->CreateLWeapon(LW_MAGIC);
if(Link->Dir==0){laser->Dir=1;laser->X=lx;laser->Y=ly+16;laser->Tile=tile+1;}
else if(Link->Dir==1){laser->Dir=0;laser->X=lx+8;laser->Y=ly-16;laser->Tile=tile;}
else if(Link->Dir==2){laser->Dir=3;laser->X=lx+16;laser->Y=ly;laser->Tile=tile+3;}
else{ laser->Dir=2;laser->X=lx-16;laser->Y=ly;laser->Tile=tile+2;}
laser->Step=s;
laser->Damage=d;
laser->CSet=c;
Game->PlaySound(32);
}
}
}
item script boomerang_multi{
void run(){
int s = 300; // b_rang speed
int c = 11;
lweapon fire1 = Screen->CreateLWeapon(LW_BRANG);
fire1->Step=s;
fire1->Damage=0;
fire1->CSet=c; // cset
Game->PlaySound(4);
if(Link->InputLeft && Link->InputUp){
fire1->X = Link->X - 16;
fire1->Y = Link->Y - 16;
fire1->Dir=4;
}
else if(Link->InputRight && Link->InputUp){
fire1->X = Link->X + 16;
fire1->Y = Link->Y - 16;
fire1->Dir=5;
}
else if(Link->InputLeft && Link->InputDown){
fire1->X = Link->X - 16;
fire1->Y = Link->Y + 16;
fire1->Dir=6;
}
else if(Link->InputRight && Link->InputDown){
fire1->X = Link->X + 16;
fire1->Y = Link->Y + 16;
fire1->Dir=7;
}
else{
if(Link->Dir == 0) {
fire1->X = Link->X;
fire1->Y = Link->Y - 16;
fire1->Dir=0;
}
if(Link->Dir == 1) {
fire1->X = Link->X;
fire1->Y = Link->Y + 16;
fire1->Dir=1;
}
if(Link->Dir == 2) {
fire1->X = Link->X - 16;
fire1->Y = Link->Y;
fire1->Dir=2;
}
if(Link->Dir == 3) {
fire1->X = Link->X + 16;
fire1->Y = Link->Y;
fire1->Dir=3;
}
}
}
}
Re: Scripted LWeapon items #1
Yeah, a spread shot would be cool.