Lightning Bolt

Name: Lightning Bolt
Type: Weapon
Author: John Doe
Description: Player shoots a bolt of lightning.

[code]if (playertouchsme) {
toweapons Lightning Bolt;
hide;
}

if (weaponfired) {
if (playerdir==0) {
this.oldx=playerx+0.5;
this.oldy=playery-3;
this.way=1;
this.expo=0;
putexplosion2 3,1,playerx+4,playery+0.75;
putexplosion2 3,1,playerx+0.5,playery-3;
putexplosion2 3,1,playerx+0.5,playery+4.5;
putexplosion2 3,1,playerx-3,playery+0.75;
}
if (playerdir==1) {
this.oldx=playerx-3;
this.oldy=playery+0.75;
this.way=2;
this.expo=0;
putexplosion2 3,1,playerx+4,playery+0.75;
putexplosion2 3,1,playerx-3,playery+0.75;
putexplosion2 3,1,playerx+0.5,playery-3;
putexplosion2 3,1,playerx+0.5,playery+4.5;
}
if (playerdir==2) {
this.oldx=playerx+0.5;
this.oldy=playery+4.5;
this.way=3;
this.expo=0;
putexplosion2 3,1,playerx+4,playery+0.75;
putexplosion2 3,1,playerx+0.5,playery+4.5;
putexplosion2 3,1,playerx+0.5,playery-3;
putexplosion2 3,1,playerx-3,playery+0.75;
}
if (playerdir==3) {
this.oldx=playerx+4;
this.oldy=playery+0.75;
this.way=4;
this.expo=0;
putexplosion2 3,1,playerx+4,playery+0.75;
putexplosion2 3,1,playerx+0.5,playery+4.5;
putexplosion2 3,1,playerx+0.5,playery-3;
putexplosion2 3,1,playerx-3,playery+0.75;
}
freezeplayer 0.65;
playersprite=14;
timeout=.05;
}
if (timeout) {
if (playerx<this.oldx&& !onwall(this.oldx+2,this.oldy+1)&&
this.way==4) {
this.oldx+=1;
}
if (playery<this.oldy&& !onwall(this.oldx+1,this.oldy+2)&&
this.way==3) {
this.oldy+=1;
}
if (playerx>this.oldx&& !onwall(this.oldx,this.oldy+1)&&
this.way==2) {
this.oldx-=1;
}
if (playery>this.oldy&& !onwall(this.oldx+1,this.oldy)&&
this.way==1) {
this.oldy-=1;
}
this.expo+=1;
timeout=.05;
}
if (this.oldx>64 ||
this.oldx<0 ||
this.oldy>64 ||
this.oldy<0 ||
onwall(this.oldx,this.oldy) ||
onwall(this.oldx+2,this.oldy) ||
onwall(this.oldx,this.oldy+2) ||
onwall(this.oldx+2,this.oldy+2) ||
onwall(this.oldx+2,this.oldy+1) ||
onwall(this.oldx+1,this.oldy+2) ||
onwall(this.oldx,this.oldy+1) ||
onwall(this.oldx+1,this.oldy)) {
timeout=0;
this.expo=0;
}
if (this.expo==2) {
putexplosion2 3,1,this.oldx,this.oldy;
this.expo-=2;
}[/code]