ZoriaRPG icon

Bomb Arrows for 2.55, v0.2

ZoriaRPG | PRO | 03/19/19 09:04:10 AM UTC | 0 ⭐ | 836 👁️ | Never ⏰ | []
C++ |

1.55 KB

|

None

|

0 👍

/

0 👎

//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(); 
        }
        
    }
}

Comments