Geschoss.h 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. #pragma once
  2. #include "GameObject.h"
  3. #include "Spieler.h"
  4. enum GeschossTyp
  5. {
  6. GESCHOSS_PFEIL,
  7. GESCHOSS_KUGEL,
  8. GESCHOSS_DRACHENAUGE,
  9. GESCHOSS_FEUERBALL,
  10. GESCHOSS_MINE
  11. };
  12. #define PFEIL_DAMAGE 100
  13. #define KUGEL_DAMAGE 100
  14. class Geschoss : public GameObject
  15. {
  16. private:
  17. float speed;
  18. Richtung richtung;
  19. Spieler *besitzer;
  20. GeschossTyp typ;
  21. int tunnelBenutzt;
  22. int umgelenkt;
  23. int geschosseGetroffen;
  24. int schalter;
  25. int id;
  26. public:
  27. Geschoss( int id, float speed, GeschossTyp typ, Richtung r, int x, int y, Spieler *besitzer );
  28. ~Geschoss();
  29. void invertDirection();
  30. void addUmlenkung();
  31. void addGeschossTreffer();
  32. void addTunnel();
  33. void addSchalter();
  34. void setRichtung( Richtung r );
  35. void tick( double zeit );
  36. GeschossTyp getTyp() const;
  37. Spieler *zBesitzer() const;
  38. Spieler *getBesitzer() const;
  39. Richtung getRichtung() const;
  40. };
  41. // size: 150x150
  42. class FeuerballTreffer : public GameObject
  43. {
  44. private:
  45. int id;
  46. Spieler *besitzer;
  47. int count;
  48. float timeLeft;
  49. public:
  50. FeuerballTreffer( int id, int x, int y, Spieler *besitzer, int maxZeit );
  51. ~FeuerballTreffer();
  52. void tick( double zeit );
  53. bool isOver() const;
  54. bool makeDamage() const;
  55. Spieler *zVerursacher() const;
  56. };