Changeset 8577 for code/branches/gameimmersion/src/orxonox/worldentities
- Timestamp:
- May 25, 2011, 9:07:17 PM (14 years ago)
- Location:
- code/branches/gameimmersion/src/orxonox/worldentities/pawns
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
code/branches/gameimmersion/src/orxonox/worldentities/pawns/Pawn.cc
r8575 r8577 130 130 XMLPortParam(Pawn, "reloadrate", setReloadRate, getReloadRate, xmlelement, mode).defaultValues(0); 131 131 XMLPortParam(Pawn, "reloadwaittime", setReloadWaitTime, getReloadWaitTime, xmlelement, mode).defaultValues(1.0f); 132 133 //TODO: DEFINES fuer defaultwerte (hier und weiter oben dieselben)134 132 } 135 133 … … 227 225 } 228 226 229 /* Old damage function.230 * For effects causing only damage not specifically to shield or health231 */232 void Pawn::damage(float damage, Pawn* originator)233 {234 if (this->getGametype() && this->getGametype()->allowPawnDamage(this, originator))235 {236 //share the dealt damage to the shield and the Pawn.237 float shielddamage = damage*this->shieldAbsorption_;238 float healthdamage = damage*(1-this->shieldAbsorption_);239 240 // In case the shield can not take all the shield damage.241 if (shielddamage > this->getShieldHealth())242 {243 healthdamage += shielddamage-this->getShieldHealth();244 this->setShieldHealth(0);245 }246 247 this->setHealth(this->health_ - healthdamage);248 249 if (this->getShieldHealth() > 0)250 {251 this->setShieldHealth(this->shieldHealth_ - shielddamage);252 }253 254 this->lastHitOriginator_ = originator;255 256 // play damage effect257 }258 }259 260 /* Does damage to the pawn, splits it up to shield and health.261 * Sets lastHitOriginator.262 */263 227 void Pawn::damage(float damage, float healthdamage, float shielddamage, Pawn* originator) 264 228 { … … 284 248 285 249 this->lastHitOriginator_ = originator; 286 287 // play damage effect 288 } 289 } 290 291 250 } 251 } 252 253 // TODO: Still valid? 292 254 /* HIT-Funktionen 293 255 Die hit-Funktionen muessen auch in src/orxonox/controllers/Controller.h angepasst werden! (Visuelle Effekte) … … 295 257 */ 296 258 297 /* Old hit function, calls the old damage function and changes velocity vector298 */299 void Pawn::hit(Pawn* originator, const Vector3& force, float damage)300 {301 if (this->getGametype() && this->getGametype()->allowPawnHit(this, originator) && (!this->getController() || !this->getController()->getGodMode()) )302 {303 this->damage(damage, originator);304 this->setVelocity(this->getVelocity() + force);305 306 // play hit effect307 }308 }309 310 /* calls the damage function and adds the force that hit the pawn to the velocity vector311 */312 259 void Pawn::hit(Pawn* originator, const Vector3& force, float damage, float healthdamage, float shielddamage) 313 260 { … … 316 263 this->damage(damage, healthdamage, shielddamage, originator); 317 264 this->setVelocity(this->getVelocity() + force); 318 319 // play hit effect 320 } 321 } 322 323 /* Old hit (2) function, calls the old damage function and hits controller 324 */ 325 void Pawn::hit(Pawn* originator, btManifoldPoint& contactpoint, float damage) 326 { 327 if (this->getGametype() && this->getGametype()->allowPawnHit(this, originator) && (!this->getController() || !this->getController()->getGodMode()) ) 328 { 329 this->damage(damage, originator); 330 331 if ( this->getController() ) 332 this->getController()->hit(originator, contactpoint, damage); 333 334 // play hit effect 335 } 336 } 337 338 /* Hit (2) function, calls the damage function and hits controller 339 */ 265 } 266 } 267 268 340 269 void Pawn::hit(Pawn* originator, btManifoldPoint& contactpoint, float damage, float healthdamage, float shielddamage) 341 270 { … … 346 275 if ( this->getController() ) 347 276 this->getController()->hit(originator, contactpoint, damage); // changed to damage, why shielddamage? 348 349 // play hit effect350 277 } 351 278 } -
code/branches/gameimmersion/src/orxonox/worldentities/pawns/Pawn.h
r8386 r8577 53 53 inline bool isAlive() const 54 54 { return this->bAlive_; } 55 56 ///////////////////////////////// me57 virtual void setReloadRate(float reloadrate);58 inline float getReloadRate() const59 { return this->reloadRate_; }60 61 inline void addShieldHealth(float amount)62 { this->setShieldHealth(this->shieldHealth_ + amount); }63 64 inline bool hasShield()65 { return (this->getShieldHealth() > 0); }66 67 virtual void setReloadWaitTime(float reloadwaittime);68 inline float getReloadWaitTime() const69 { return this->reloadWaitTime_; }70 71 inline void resetReloadCountdown()72 { this->reloadWaitCountdown_ = 0; }73 74 inline void startReloadCountdown()75 { this->reloadWaitCountdown_ = this->getReloadWaitTime(); } //in projectile.cc einbauen!!!!!!1111!!111!76 77 virtual void decreaseReloadCountdownTime(float dt);78 79 virtual void setMaxShieldHealth(float maxshieldhealth);80 inline float getMaxShieldHealth() const81 { return this->maxShieldHealth_; }82 83 inline void setInitialShieldHealth(float initialshieldhealth)84 { this->initialShieldHealth_ = initialshieldhealth; this->setShieldHealth(initialshieldhealth); }85 inline float getInitialShieldHealth() const86 { return this->initialShieldHealth_; }87 88 inline void restoreInitialShieldHealth()89 { this->setShieldHealth(this->initialShieldHealth_); }90 inline void restoreMaxShieldHealth()91 { this->setShieldHealth(this->maxShieldHealth_); }92 93 94 ///////////////////////////////// end me95 55 96 56 virtual void setHealth(float health); … … 117 77 { return this->shieldHealth_; } 118 78 79 inline void addShieldHealth(float amount) 80 { this->setShieldHealth(this->shieldHealth_ + amount); } 81 82 inline bool hasShield() 83 { return (this->getShieldHealth() > 0); } 84 85 virtual void setMaxShieldHealth(float maxshieldhealth); 86 inline float getMaxShieldHealth() const 87 { return this->maxShieldHealth_; } 88 89 inline void setInitialShieldHealth(float initialshieldhealth) 90 { this->initialShieldHealth_ = initialshieldhealth; this->setShieldHealth(initialshieldhealth); } 91 inline float getInitialShieldHealth() const 92 { return this->initialShieldHealth_; } 93 94 inline void restoreInitialShieldHealth() 95 { this->setShieldHealth(this->initialShieldHealth_); } 96 inline void restoreMaxShieldHealth() 97 { this->setShieldHealth(this->maxShieldHealth_); } 98 119 99 inline void setShieldAbsorption(float shieldAbsorption) 120 100 { this->shieldAbsorption_ = shieldAbsorption; } … … 122 102 { return this->shieldAbsorption_; } 123 103 104 // TODO: Rename to shieldRechargeRate 105 virtual void setReloadRate(float reloadrate); 106 inline float getReloadRate() const 107 { return this->reloadRate_; } 108 109 virtual void setReloadWaitTime(float reloadwaittime); 110 inline float getReloadWaitTime() const 111 { return this->reloadWaitTime_; } 112 113 inline void resetReloadCountdown() 114 { this->reloadWaitCountdown_ = 0; } 115 116 inline void startReloadCountdown() 117 { this->reloadWaitCountdown_ = this->getReloadWaitTime(); } // TODO: Implement in Projectile.cc 118 119 virtual void decreaseReloadCountdownTime(float dt); 120 124 121 inline ControllableEntity* getLastHitOriginator() const 125 122 { return this->lastHitOriginator_; } 126 123 127 virtual void hit(Pawn* originator, const Vector3& force, float damage); 128 virtual void hit(Pawn* originator, btManifoldPoint& contactpoint, float damage); 129 /////////me 130 virtual void hit(Pawn* originator, const Vector3& force, float damage, float healthdamage, float shielddamage); 131 virtual void hit(Pawn* originator, btManifoldPoint& contactpoint, float damage, float healthdamage, float shielddamage); 132 ////////end me 124 //virtual void hit(Pawn* originator, const Vector3& force, float damage); 125 //virtual void hit(Pawn* originator, btManifoldPoint& contactpoint, float damage); 126 virtual void hit(Pawn* originator, const Vector3& force, float damage, float healthdamage = 0.0f, float shielddamage = 0.0f); 127 virtual void hit(Pawn* originator, btManifoldPoint& contactpoint, float damage, float healthdamage = 0.0f, float shielddamage = 0.0f); 128 133 129 virtual void kill(); 134 130 … … 186 182 virtual void spawneffect(); 187 183 188 virtual void damage(float damage, Pawn* originator = 0); 189 //////////me 190 virtual void damage(float damage, float healthdamage, float shielddamage, Pawn* originator); 191 /////////end me 184 //virtual void damage(float damage, Pawn* originator = 0); 185 virtual void damage(float damage, float healthdamage = 0.0f, float shielddamage = 0.0f, Pawn* originator = NULL); 192 186 193 187 bool bAlive_; … … 198 192 { return NULL; } 199 193 200 /////////////////////////// me 194 float health_; 195 float maxHealth_; 196 float initialHealth_; 197 198 float shieldHealth_; 199 float maxShieldHealth_; 200 float initialShieldHealth_; 201 float shieldAbsorption_; // Has to be between 0 and 1 201 202 float reloadRate_; 202 203 float reloadWaitTime_; 203 204 float reloadWaitCountdown_; 204 205 float maxShieldHealth_;206 float initialShieldHealth_;207 208 ////////////////////////// end me209 210 float health_;211 float maxHealth_;212 float initialHealth_;213 float shieldHealth_;214 float shieldAbsorption_; // Has to be between 0 and 1215 205 216 206 WeakPtr<Pawn> lastHitOriginator_; -
code/branches/gameimmersion/src/orxonox/worldentities/pawns/SpaceShip.cc
r8575 r8577 107 107 XMLPortParamVariable(SpaceShip, "boostCooldownDuration", boostCooldownDuration_, xmlelement, mode); 108 108 XMLPortParamVariable(SpaceShip, "shakeFrequency", shakeFrequency_, xmlelement, mode); 109 XMLPortParamVariable(SpaceShip, "shakeAmplitude", shakeAmplitude_, xmlelement, mode); 109 110 } 110 111 … … 114 115 registerVariable(this->auxilaryThrust_, VariableDirection::ToClient); 115 116 registerVariable(this->rotationThrust_, VariableDirection::ToClient); 117 // TODO: Synchronization of boost needed? 116 118 registerVariable(this->boostPower_, VariableDirection::ToClient); 117 119 registerVariable(this->boostPowerRate_, VariableDirection::ToClient); … … 119 121 registerVariable(this->boostCooldownDuration_, VariableDirection::ToClient); 120 122 registerVariable(this->shakeFrequency_, VariableDirection::ToClient); 123 registerVariable(this->shakeAmplitude_, VariableDirection::ToClient); 121 124 } 122 125
Note: See TracChangeset
for help on using the changeset viewer.