123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165 |
- #ifndef Spieler_H
- #define Spieler_H
- #include <Bild.h>
- #include <Model2D.h>
- #include "Strukturen.h"
- #include "Skill.h"
- class Team;
- class Laser;
- class Karte;
- class Klient;
- class SSKlientV;
- using namespace Framework;
- enum TastaturStatus
- {
- T_GAS,
- T_ROT_L,
- T_ROT_R,
- T_FEUER,
- T_MAX
- };
- class Spieler : public Model2DObject
- {
- private:
- // antrieb
- Vertex stL;
- Vertex kL;
- Vertex stR;
- Vertex kR;
- Vertex stM;
- Vertex kM;
- WeltInfo wInfo;
- RCArray< ActiveSkill > *activeSkills;
- int level;
- int accountId;
- int sNum;
- int farbe;
- Team *team;
- Klient *klient;
- bool tastatur[ T_MAX ];
- bool amLeben;
- double schussAbk;
- double energieAbk;
- double repAbk;
- double reinkAbk;
- int maxReinkAbk;
- // Raumschiff Eigenschaftend
- Vertex startPos;
- double beschleunigung;
- double energie;
- double stability;
- double reparatur;
- double laserIntensity;
- double laserEffizienz;
- double akkuLeistung;
- double maxEnergie;
- double maxStability;
- double laserTempo;
- double netzwerk;
- double wendigkeit;
- double antriebEffizienz;
- double energieSchild;
- double energieSchildEffizienz;
- int skillPunkte;
- // Statistik Werte
- double schadenBekommen;
- double schadenGemacht;
- double treibstoffVerbraucht;
- int shots;
- int treffer;
- int punkte;
- int kills;
- int tode;
- double zeitAmLeben;
- double zeitTod;
- float ep;
- float nextSkillEp;
- bool needWiederbelebung;
- double calculateBeschleunigung();
- double calculateReparatur();
- double calculateLaserIntensity();
- double calculateLaserEffizienz();
- double calculateAkkuLeistung();
- double calculateMaxEnergie();
- double calculateMaxStability();
- double calculateLaserTempo();
- double calculateWendigkeit();
- double calculateAntriebEffizienz();
- double calculateEnergieSchild();
- double calculateEnergieSchildEffizienz();
- public:
- // Konstruktor
- Spieler( SpielerStr *zStr );
- // Destruktor
- ~Spieler();
- // nicht constant
- void addSkill( ActiveSkill *skill );
- void useSkill( int id );
- void offline();
- void online( SSKlientV *zKlient );
- void setModelData( Model2DData *data );
- void setAccountId( int id );
- void setTeam( Team *team );
- void setSpielerFarbe( int farbe );
- void setKlient( Klient *klient );
- bool setTastataturStatus( TastaturStatus ts, bool aktiv );
- bool tick( const WeltInfo &info, double zeit ) override;
- bool setSkill( int art );
- Laser *getLaser( int sId );
- bool nimmSchaden( double &intensity, int sLevel );
- void machSchaden( double intensity, int sLevel, bool erf = 1 );
- void addKill( int sLevel, bool erf = 1 );
- void addTreffer( float intensity, int sLevel, bool erf = 1 );
- void wiederbeleben();
- void addEp( float ep );
- // constant
- int getAccountId() const;
- bool istOnline() const;
- Klient *zKlient() const;
- bool istTreffer( Vec2< float > pos ) const;
- // Raumschiff Eigenschaften
- double getTeamMaxEnergieBonus() const;
- double getTeamMaxStabilityBonus() const;
- double getTeamReparaturBonus() const;
- double getTeamLaserIntensityBonus() const;
- double getTeamLaserEffizienzBonus() const;
- double getTeamAkkuLeistungBonus() const;
- double getTeamLaserTempoBonus() const;
- double getTeamBeschleunigungBonus() const;
- double getTeamWendigkeitBonus() const;
- double getTeamAntriebEffizienzBonus() const;
- double getTeamEnergieSchildBonus() const;
- double getTeamEnergieSchildEffizienzBonus() const;
- bool istAmLeben() const;
- // Statistik Werte
- int getSpielerNummer() const;
- Team *zTeam() const;
- int getSpielerFarbe() const;
- int getSchadenBekommen() const;
- int getSchadenGemacht() const;
- int getTreibstoffVerbraucht() const;
- int getShots() const;
- int getTreffer() const;
- int getPunkte() const;
- int getKills() const;
- int getTode() const;
- int getZeitAmLeben() const;
- int getZeitTod() const;
- bool doNeedWiederbelebung() const;
- float getEp() const;
- int getSkillP() const;
- int getLevel() const;
- // Reference Counting
- Spieler *getThis();
- Spieler *release();
- };
- #endif
|