Geschoss.h 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  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. GeschossTyp getGeschossTypFromString( Text str );
  13. #define PFEIL_DAMAGE 100
  14. #define KUGEL_DAMAGE 100
  15. class Geschoss : public GameObject
  16. {
  17. private:
  18. float speed;
  19. Richtung richtung;
  20. Spieler *besitzer;
  21. GeschossTyp typ;
  22. int tunnelBenutzt;
  23. int umgelenkt;
  24. int geschosseGetroffen;
  25. int schalter;
  26. int id;
  27. public:
  28. Geschoss( int id, float speed, GeschossTyp typ, Richtung r, int x, int y, Spieler *besitzer );
  29. ~Geschoss();
  30. void invertDirection();
  31. void addUmlenkung();
  32. void addGeschossTreffer();
  33. void addTunnel();
  34. void addSchalter();
  35. void setSpeed( float speed );
  36. void setBesitzer( Spieler *besitzer );
  37. void setTyp( GeschossTyp typ );
  38. void setRichtung( Richtung r );
  39. void tick( double zeit );
  40. GeschossTyp getTyp() const;
  41. Spieler *zBesitzer() const;
  42. Spieler *getBesitzer() const;
  43. Richtung getRichtung() const;
  44. };
  45. // size: 150x150
  46. class FeuerballTreffer : public GameObject
  47. {
  48. private:
  49. int id;
  50. Spieler *besitzer;
  51. int count;
  52. float timeLeft;
  53. public:
  54. FeuerballTreffer( int id, int x, int y, Spieler *besitzer, int maxZeit );
  55. ~FeuerballTreffer();
  56. void tick( double zeit );
  57. bool isOver() const;
  58. bool makeDamage() const;
  59. Spieler *zVerursacher() const;
  60. };