123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115 |
- #pragma once
- #include "Team.h"
- #include "Gegenstand.h"
- #include "SSKlient.h"
- class Effekt
- {
- private:
- Spieler *zSpieler;
- double timeLeft;
- int ref;
- public:
- Effekt( Spieler *zSpieler, int maxTime );
- virtual bool tick( double time );
- Effekt *getThis();
- Effekt *release();
- };
- class DrachenAugeEffekt : public Effekt
- {
- private:
- Spieler *zVerursacher;
- public:
- DrachenAugeEffekt( Spieler *zVerursacher, Spieler *zOpfer, int maxTime );
- bool tick( double time ) override;
- };
- class Spieler : public GameObject
- {
- public:
- class Style
- {
- const static int MOVES_RIGHT = 1;
- const static int MOVES_LEFT = 2;
- const static int MOVES_BOTTOM = 4;
- const static int MOVES_TOP = 8;
- const static int AM_LEBEN = 0x10;
- const static int UNSICHTBAR = 0x20;
- const static int ENTERHAKEN_AKTIV = 0x40;
- const static int ENTERHAKEN_UNVERWUNDBAR = 0x40;
- };
- private:
- RCArray< Effekt > effekte;
- Klient *klient;
- int accountId;
- int spielerNummer;
- Team *team;
- int style;
- int maxWiederbelebungsZeit;
- float wiederbelebungsZeit;
- GegenstandTyp zuletztAufgehoben;
- GegenstandTyp zuletztAktiviert;
- int leben;
- int maxLeben;
- int level;
- int erfahrung;
- int maxErfahrung;
- int spawnX;
- int spawnY;
- int laufTempo;
- int geschossTempo;
- int armor;
- int schadensBonus;
- int lebensraub;
- int lebensRegeneration;
- int abklingZeitVerringerung;
- int color;
- float gegenstandAbklingzeit[ ITEMANZAHL ];
- int kills;
- int tode;
- int treffer;
- int getroffen;
- int schadenGenommen;
- int schadenGemacht;
- int lebenGeheilt;
- int erhalteneErfahrung;
- int itemsAufgehoben;
- int itemsVerwendet;
- int tunnelBenutzt;
- int schalterAktiviert;
- int geschosseGeschossen;
- char *tastenStand;
- public:
- Spieler( int id, Team *team, int spawnX, int spawnY, int breite, int height,
- int farbe, int leben, int erfahrung, int laufTempo, int geschossTempo,
- int armor, int schadenBonus, int lebensraub, int lebensReg,
- int abkVerringerung, int level );
- ~Spieler();
- bool setTastenStand( char taste, bool pressed );
- void setTeam( Team *team );
- void setAccount( int id );
- void setKlient( Klient *klient );
- void addEffekt( Effekt *e );
- // aktualisiert auch die team statistik
- void addKill();
- void addTreffer();
- void addGetroffen();
- void tick( double zeit );
- // heilt auch um den lebensraub prozentsatz
- void addGemachterSchaden( double schaden );
- // zieht die rüstung ab
- void nimmSchaden( double &schaden );
- int getSchadenBonus() const;
- Klient *zKlient() const;
- int getSpielerNummer() const;
- Team *zTeam() const;
- int getFarbe() const;
- int getAccountId() const;
- int getPunkte() const;
- bool istAmLeben() const;
- };
|