ShopClient.h 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. #pragma once
  2. #include "../Include/KSGNetwork.h"
  3. #include <Critical.h>
  4. namespace KSGClient
  5. {
  6. // Wird verwendet um Spiele oder Karten zu kaufen
  7. // Kann nur von eingeloggten Clients verwendet werden
  8. class ShopClient : public ShopServerClient
  9. {
  10. private:
  11. Framework::Text ip;
  12. unsigned short port;
  13. int cId;
  14. Network::Klient* k;
  15. char* key;
  16. unsigned char keyLen;
  17. Framework::Critical cs;
  18. Framework::Text err;
  19. public:
  20. // Konstruktor
  21. ShopClient(int klientId, unsigned short port, const char* ip, const char* key, unsigned char keyLen);
  22. // Destruktor
  23. ~ShopClient();
  24. // verbindet sich mit dem zugewiesenen Shop Server
  25. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  26. bool verbinde() override;
  27. // Gibt eine Liste mit Spiel Ids zurück, mit Spielen, die einen Bestimten Text im Namen haben
  28. // suche: Der Text, der im Namen der Spiele vorkommen soll
  29. // Gibt bei misserfolg 0 zurück
  30. Framework::Array< int >* suchSpiele(const char* suche) override;
  31. // läd Titelbild des Spieles herunter und speichert es unter data/tmp/shop/kazfen/spiele/{id}/titelbg.ltdb
  32. // id: Die Id des Spiels
  33. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  34. bool ladeSpielTitel(int id) override;
  35. // läd Shop Seite des Spieles herunter und speichert es unter data/tmp/shop/kazfen/spiele/{id}/seite.ksgs
  36. // id: Die Id des Spiels
  37. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  38. bool ladeSpielSeite(int id) override;
  39. // Gibt den Besitz Status eines Spiels zurück (0 = nicht im Besitz, 1 = Testversion, 2 = gekauft)
  40. // id: Die Id des Spiels
  41. int getSpielBesitzStatus(int id) override;
  42. // gibt die Anzahl der verbleibenden Spiele der Testversion zurück
  43. // id: Die Id des Spiels
  44. int getSpielTestversion(int id) override;
  45. // Gibt den Erwerbbarkeits Status eines Spiels zurück (0 = nichts, 1 = nur Testversion, 2 = nur Vollversion, 3 = beides)
  46. // id: Die Id des Spiels
  47. int istSpielErwerbbar(int id) override;
  48. // Gibt den Preis eines Spiels in Kupfer zurück
  49. // id: Die Id des Spiels
  50. // testVersion: 1:=Es wird der Preis der Testversion zurückgegeben, 0:=Es wird der Preis der Vollversion zurückgegeben
  51. int getSpielPreis(int id, bool testVersion) override;
  52. // Kauft ein Spiel
  53. // id: Die Id des Spiels
  54. // testVersion: 1:=Es wird die Testversion erworben, 0:=Es wird die Vollversion erworben
  55. bool spielErwerben(int spielId, bool testVersion) override;
  56. // sucht nach Karten mit zu einem bestimmten Spiel
  57. // suche: Ein Text, der im Namen der Karte vorkommen soll
  58. // spielId: Die Id des Spiels
  59. // Gibt eine Liste Mit den Ids der gefundenen Karten zurück
  60. Framework::Array< int >* suchKarten(const char* suche, int spielId) override;
  61. // lädt das Titelbild der Karte herunter und speichert es unter data/tmp/shop/kaufen/karten/{id}/titelbg.ltdb
  62. // id: Die Id der Karte
  63. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  64. bool ladeKarteTitel(int id) override;
  65. // lädt die Shop Seite der Karte herunter und speichert es unter data/tmp/shop/kaufen/karten/{id}/seite.ksgs
  66. // id: Die Id der Karte
  67. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  68. bool ladeKarteSeite(int id) override;
  69. // Gibt den Besitz Status einer Karte zurück (0 = nicht im Besitz, 1 = Testversion, 2 = gekauft)
  70. // id: Die Id der Karte
  71. int getKarteBesitzStatus(int id) override;
  72. // gibt die Anzahl der verbleibenden Spiele der Testversion zurück
  73. // id: Die Id der Karte
  74. int getKarteTestversion(int id) override;
  75. // Gibt den Erwerbbarkeits Status einer Karte zurück (0 = nichts, 1 = nur Testversion, 2 = nur Vollversion, 3 = beides)
  76. // id: Die Id der Karte
  77. int istKarteErwerbbar(int id) override;
  78. // Gibt den Preis einer Karte in Kupfer zurück
  79. // id: Die Id der Karte
  80. // testVersion: 1:=Es wird der Preis der Testversion zurückgegeben, 0:=Es wird der Preis der Vollversion zurückgegeben
  81. int getKartePreis(int id, bool testVersion) override;
  82. // Kauft eine Karte
  83. // id: Die Id der Karte
  84. // testVersion: 1:=Es wird die Testversion erworben, 0:=Es wird die Vollversion erworben
  85. bool karteErwerben(int karteId, bool testVersion) override;
  86. // Erhält die Verbindung aufrecht
  87. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  88. // Sollte während einer bestehenden Verbindung etwa einmal alle 60 Sekunden aufgerufen werden, da sonst der Router die Verbindung automatisch trennt
  89. bool keepAlive() override;
  90. // Trennt die Verbindung zum Server
  91. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  92. // Sollte erst nach einem erfolgreichen Aufruf von verbinde aufgerufen werden
  93. bool trenne(bool abmelden) override;
  94. // Gibt 1 zurück, falls der Client verbunden ist, 0 sonst
  95. bool istVerbunden() const override;
  96. // gibt den Letzten Fehlertext zuück
  97. // sollte erst aufgerufen werden, nachdem eine andere aufgerufene Methode fehlgeschlagen ist
  98. const char* getLetzterFehler() const override;
  99. };
  100. }