Atölye › Missile Command Tarzı Savunma › 27/35. adım

Dalganın sonu

Ne yapıyoruz

Bir dalga ne zaman biter? Fırlatılacak füze kalmadığında, gökte füze kalmadığında ve hiçbir patlama sürmediğinde. O anda sana bir bonus verilecek: ayakta kalan her şehir için 100, harcamadığın her önleyici için 5 puan. Sonra kısa bir mola ve bir sonraki dalga.

Oyunun hangi aşamada olduğunu bir değişkende tutuyoruz: state (durum). Şimdilik iki değeri var: 'playing' (oyunda) ve 'between' (dalgalar arası mola).

```js
let state // 'playing', 'between' (a pause after a wave) or 'over'
let pause

  state = 'playing'

  if (state === 'between') {
    pause -= 1
    if (pause <= 0) nextWave()
    return
  }

  if (toLaunch === 0 && incoming.length === 0 && blasts.length === 0) {
    // Bonus for every city still standing and every interceptor left.
    score += cities.filter((c) => c.alive).length * 100 + ammo * 5
    state = 'between'
    pause = 90
  }
```

Ne işe yarıyor

Sıra sende

  1. let score satırının altına let state (yorumuyla) ve let pause yaz.
  2. nextWave fonksiyonunun sonuna, ammo = ... satırının altına state = 'playing' yaz.
  3. update fonksiyonunun en başına between bloğunu yaz; altında bir boş satır kalsın.
  4. update'in sonunda incoming = incoming.filter(...) satırının altına bir boş satır bırak ve dalga sonu bloğunu yaz.
  5. Çalıştır ve bir dalgayı bitir: kısa bir moladan sonra yeni füzeler gelmeli.

Beceriler: Oyun durumları

Tüm adımlar

  1. Korunacak altı şehir
  2. Füze üssün
  3. Tekrar tekrar çiz
  4. Yıkılabilen şehirler
  5. Enkaz
  6. Bir noktaya doğru ilerle
  7. Düşman füzesi fırlat
  8. Saniyede bir füze
  9. Yoldaki füzeler
  10. Duman izleri
  11. Çarpma
  12. Önleyici ateşle
  13. Gökyüzüne tıkla
  14. Önleyiciler uçuyor
  15. Büyüyüp küçülen patlama
  16. Varınca patla
  17. Patlamaları çiz
  18. Yere düşen de patlar
  19. Patlamaya yakalanmak
  20. Zincirleme tepkime
  21. Yalnız senin patlamaların sayılır
  22. Her füzeye puan
  23. Puanı göster
  24. Sınırlı cephane
  25. Dalgalar
  26. Her dalga daha zor
  27. Dalganın sonu
  28. Son
  29. Yeniden oyna
  30. Dalga, cephane ve mesajlar
  31. Her yerden fırlat
  32. Bazı füzeler bölünecek
  33. Üçe bölün
  34. Rekor
  35. Kendin yap: nişangâh