GML (create)
globalvar lf1, mp1, lf2, lf3, modyfikatorAmunicji, iloscAmunicji;
modyfikatorAmunicji = 1;
iloscAmunicji[0] = 1000; // ilosc amunicji dla typu 1
iloscAmunicji[1] = 1000; // ilosc amunicji dla typu 2
iloscAmunicji[2] = 1000; // ilosc amunicji dla typu 3
iloscAmunicji[3] = 1000; // ilosc amunicji dla typu 4
lf1=0
mp1=4
lf2=0
lf3=0
GML (strzelanie)
if ( iloscAmunicji[modyfikatorAmunicji-1] > 0 )
{
// jest amunicja strzelaj
iloscAmunicji[modyfikatorAmunicji-1] -= 2; // odjecie 2 naboi
iloscAmunicji[modyfikatorAmunicji-1] = max( 0, iloscAmunicji[modyfikatorAmunicji-1] ) // amunicja nie zejdzie ponizej 0
damage = ( (lf1*40)+(mp1*60)+(lf2*100)+(lf3*150) ) * modyfikatorAmunicji;
}
else
{
// brak amunicji nie mozna strzelac
}
GML (step)
// jezeli przycisniemy klawisz zmiany broni i jest do niej amunicja to zmien typamunicji
if ( keyboard_check_pressed("1") && iloscAmunicji[1] > 0 ) modyfikatorAmunicji = 1;
if ( keyboard_check_pressed("2") && iloscAmunicji[2] > 0 ) modyfikatorAmunicji = 2;
if ( keyboard_check_pressed("3") && iloscAmunicji[3] > 0 ) modyfikatorAmunicji = 3;
if ( keyboard_check_pressed("4") && iloscAmunicji[4] > 0 ) modyfikatorAmunicji = 4;
GML (zmiana sprita laserow)
// wyglad laserow zmieniaj na podastawie zmiennej modyfikatorAmunicji
switch ( modyfikatorAmunicji )
{
case 1: draw_sprite( ); break;
case 2: draw_sprite( ); break;
case 3: draw_sprite( ); break;
case 4: draw_sprite( ); break;
}