Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //Bomb Arrow Script for 2.55
- //v0.2
- //By ZoriaRPG
- //19th March, 2019
- //v0.1 : Initial
- //v0.2 : Fix comppile, and fix how we check if the arrow is dead to create the explosion.
- // : We cannot run the explosion after while(this->isValid()), because the script runs out of scope if the
- // : sprite is no longer on the screen. Thus, we check its deadstate, while it is valid.
- lweapon script bombarrow
- {
- void run()
- {
- itemdata bomb; bool found; bool super; int x; int y; int pow;
- bomb = Game->LoadItemData(Link->ItemA);
- if ( bomb->Family == IC_BOMB ) found = true;
- if ( bomb->Family == IC_SBOMB ) { found = true; super = true; }
- if ( !found )
- {
- bomb = Game->LoadItemData(Link->ItemB);
- if ( bomb->Family == IC_BOMB ) { found = true; }
- if ( bomb->Family == IC_SBOMB ) { found = true; super = true; }
- }
- if ( !found ) Quit(); //quit if bombs not in a slot
- else
- {
- pow = bomb->Power;
- if ( super )
- {
- if ( !Game->Counter[CR_SBOMBS] ) Quit(); //quit if not enough bombs
- else --Game->Counter[CR_SBOMBS];
- }
- else
- {
- if ( !Game->Counter[CR_BOMBS] ) Quit(); //quit if not enough bombs
- else --Game->Counter[CR_BOMBS];
- }
- }
- while(this->isValid())
- {
- x = this->X; y = this->Y;
- if ( this->DeadState != WDS_ALIVE ) //When the arrow itself dies, make an explosion.
- {
- lweapon boom = Screen->CreateLWeapon( (( super ) ? LW_SBOMBBLAST : LW_BOMBBLAST ));
- boom->Damage = pow;
- boom->X = x;
- boom->Y = y;
- }
- Waitframe();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement