public DzialoRakietowe(Rakieta p, int czest) { Pierwowzor = p; Czestotliwosc = czest; T = 0; Gotowy = false; }
public void Pracuj(Vector2[] gdzie, int ile, bool laser, bool rakieta) { if (Zniszczony) { return; } if (ile != 0) { Dokad = gdzie[0]; Vector2 dif = Dokad - Pozycja; dif.Normalize(); Normalna = dif; Ruch = Rodzaj_Ruchu.RuchJednostajny; Stop = false; } if (Vector2.Distance(Pozycja, Dokad) < 5f) { Stop = true; } if (!Stop) { Pozycja += Normalna * V; } Wyposazenie.Lasery[IDLasera].Pracuj(); Wyposazenie.Rakiety[IDRakiety].Pracuj(); if (laser) { if (Wyposazenie.Lasery[IDLasera].Strzel()) { Laser nowy = new Laser(Pozycja, ref Wyposazenie.Lasery[IDLasera].Pierwowzor.Obrazek, 0f, Wyposazenie.Lasery[IDLasera].Pierwowzor.Sila, new Vector2(0f, -1f), Wyposazenie.Lasery[IDLasera].Pierwowzor.V, Wyposazenie.Lasery[IDLasera].Pierwowzor.KolorLaseru); GlobalAcc.ListaObiektow2.Add(nowy); } } if (rakieta) { if (Wyposazenie.Rakiety[IDRakiety].Strzel()) { Rakieta nowa = Wyposazenie.Rakiety[IDRakiety].Pierwowzor.Kopia(Pozycja, Wyposazenie.Rakiety[IDRakiety].Pierwowzor.V, 0f); Random rand = new Random(); if (rand.Next(0, 2) == 1) { nowa.Niestabilnosc = -nowa.Niestabilnosc; } GlobalAcc.ListaObiektow1.Add(nowa); } } Silnik.X = (int)Pozycja.X; Silnik.Y = (int)Pozycja.Y; Silnik.Obrot = Obrot; Silnik.Pracuj(!Zniszczony); DoublePoints.Pracuj(); }