123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171 |
- #pragma once
- #include "SpielKlasse.h"
- #include "Variablen.h"
- #include "Trigger.h"
- #include "Bariere.h"
- #include "Base.h"
- #include "Drop.h"
- #include "Geschoss.h"
- #include "Umlenkung.h"
- #include "Tunnel.h"
- #include "Schiene.h"
- #include "Schalter.h"
- #include "Statistik.h"
- #include "Reader.h"
- #include <Critical.h>
- #include <Datei.h>
- #include <Random.h>
- #include <Punkt.h>
- class Statistik;
- class StatistikV;
- class Spiel : public SpielKlasse
- {
- private:
- bool isRunning;
- RandomGenerator randG;
- SSDatenbankV *psqldb;
- RCArray< SSKlientV > *zKlients;
- RCArray< VarPointer > variablen;
- RCArray< Spieler > spieler;
- RCArray< Team > teams;
- RCArray< Bariere > barieren;
- RCArray< Base > basen;
- RCArray< Drop > drops;
- RCArray< Gegenstand > items;
- RCArray< Geschoss > shots;
- RCArray< FeuerballTreffer > feuer;
- RCArray< Schalter > schalter;
- RCArray< Schiene > schienen;
- RCArray< Timer > timer;
- RCArray< Tunnel > tunnel;
- RCArray< Umlenkung > umlenkungen;
- RCArray< Trigger > trigger;
- RCArray< TriggerRun > triggerRuns;
- Array< int > *zAccounts;
- Statistik *stat;
- Text mapPfad;
- Critical c;
- Datei *log;
- Punkt mapSize;
- int nextId;
- bool ende;
- int spielerAnzahl;
- int spielId;
- int karteId;
- int gameTicks;
- bool pause;
- int ref;
- public:
- // Konstruktor
- Spiel();
- // Destruktor
- ~Spiel();
- // nicht constant
- void setPSQLK( SSDatenbankV *psqldb ) override; // call 1
- void setSpielId( int id ) override; // call 2
- void setKarteId( int karteId ) override; // call 3
- void setTempPfad( char *pfad ) override; // call 3.5
- void setAccounts( int anzahl, Array< int > *zAccounts ) override; // call 4
- void setKlients( int anzahl, RCArray< SSKlientV > *zKlients ) override; // call 5
- void setSpielerNummern( int anzahl, Array< int > *spielerNummern ) override; // call 6
- void run() override; // call 7
- void klientOffline( int accountId ) override;
- void klientOnline( int accountId, SSKlientV *zKlient ) override;
- void nachricht( int accountId, int len, char *bytes ) override;
- void setMapSize( int width, int height );
- void setPausiert( bool pausiert );
- void tick( double zeit );
- void addVariable( const char *name, Variable *var );
- void setVariable( const char *name, Variable *var );
- void addTeam( Team *team );
- void addSpieler( Spieler *spieler );
- void addBariere( Bariere *bariere );
- void addBase( Base *base );
- void addDrop( Drop *drop );
- void addGegenstand( Gegenstand *gegenstand );
- void addGeschoss( Geschoss *geschoss );
- void addSchalter( Schalter *schalter );
- void addSchiene( Schiene *schiene );
- void addTimer( Timer *timer );
- void addTunnel( Tunnel *tunnel );
- void addUmlenkung( Umlenkung *umlenkung );
- void addTrigger( Trigger *trigger );
- void addTriggerRun( TriggerRun *tRun );
- void activateShalter( int id );
- void throwEvent( Ereignis *e );
- Variable *getVariable( const char *name ) const;
- Variable *zVariable( const char *name ) const;
- bool istPausiert() const;
- bool needEvent( EreignisTyp typ ) const;
- Team *getTeam( int id ) const;
- Spieler *getSpieler( int id ) const;
- Iterator< Spieler * > getSpieler() const;
- Iterator< Bariere * > getBarieren() const;
- Bariere *getBariere( int id ) const;
- Base *getBase( int id ) const;
- Drop *getDrop( int id ) const;
- Schalter *getSchalter( int id ) const;
- Schiene *getSchiene( int id ) const;
- Timer *getTimer( int id ) const;
- Tunnel *getTunnel( int id ) const;
- Umlenkung *getUmlenkung( int id ) const;
- Trigger *getTrigger( int id ) const;
- int getNextId();
- double getRand();
- int getTickCount() const;
- void setEnde( Team *zGewinner );
- Trigger *getRandomTrigger() const;
- Trigger *getLastRunnedTrigger() const;
- Bariere *getRandomBariere() const;
- Bariere *getZuletztEingeschalteteBariere() const;
- Bariere *getZuletztAusgeschalteteBariere() const;
- Bariere *getZuletztBewegteBariere() const;
- Base *getRandomBase() const;
- Base *getLastTeamChangedBase() const;
- Drop *getRandomDrop() const;
- Drop *getLastDrop() const;
- GegenstandTyp getItemZuletztAufgehoben() const;
- GegenstandTyp getItemZuletztAktiviert() const;
- GegenstandTyp getItemZuletztGedropt() const;
- Geschoss *getRandomGeschoss() const;
- Geschoss *getGeschossZuletztAbgefeuert() const;
- Geschoss *getGeschossZuletztUmgelenkt() const;
- Geschoss *getGeschossZuletztBariereGetroffen() const;
- Geschoss *getGeschossZuletztTunnelBenutzt() const;
- Geschoss *getGeschossZuletztGeschossGetroffen() const;
- Schalter *getRandomSchalter() const;
- Schalter *getSchalterZuletztAktiviert() const;
- Spieler *getRandomSpieler() const;
- Spieler *getRandomSpieler( Team *zTeam ) const;
- Spieler *getSpielerZuletztSchadenGemacht() const;
- Spieler *getSpielerZuletztSchadenGenommen() const;
- Spieler *getSpielerZuletztGeheilt() const;
- Spieler *getSpielerZuletztLevelUp() const;
- Spieler *getSpielerZuletztErfahrungBekommen() const;
- Spieler *getSpielerZuletztGegenstandAktiviert() const;
- Spieler *getSpielerZuletztGegenstandAufgehoben() const;
- Spieler *getSpielerZuletztSchalterAktiviert() const;
- Spieler *getSpielerZuletztTunnelBenutzt() const;
- Spieler *getSpielerZuletztGestorben() const;
- Spieler *getSpielerZuletztWiederbelebt() const;
- Spieler *getSpielerZuletztGeschossen() const;
- Team *getRandomTeam() const;
- Timer *getRandomTimer() const;
- Timer *getTimerZuletztAbgelaufen() const;
- Timer *getTimerZuletztGestartet() const;
- Timer *getTimerZuletztPausiert() const;
- Timer *getTimerZuletztFortgesetzt() const;
- Tunnel *getRandomTunnel() const;
- Tunnel *getTunnelZuletztBenutzt() const;
- Umlenkung *getRandomUmlenkung() const;
- Umlenkung *getUmlenkungZuletztBenutzt() const;
- // constant
- StatistikV *getStatistik() const override;
- // Reference Counting
- SpielKlasse *getThis() override;
- SpielKlasse *release() override;
- };
|