Changeset 8579 for code/branches/presentation/src/modules/weapons
- Timestamp:
- May 25, 2011, 9:28:29 PM (14 years ago)
- Location:
- code/branches/presentation/src/modules/weapons
- Files:
-
- 2 deleted
- 14 edited
Legend:
- Unmodified
- Added
- Removed
-
code/branches/presentation/src/modules/weapons/projectiles/CMakeLists.txt
r8578 r8579 6 6 Rocket.cc 7 7 SimpleRocket.cc 8 BasicProjectile.cc9 8 ) -
code/branches/presentation/src/modules/weapons/projectiles/Projectile.cc
r8578 r8579 23 23 * Fabian 'x3n' Landau 24 24 * Co-authors: 25 * simonmie25 * ... 26 26 * 27 27 */ … … 41 41 CreateFactory(Projectile); 42 42 43 Projectile::Projectile(BaseObject* creator) : MovableEntity(creator) , BasicProjectile()43 Projectile::Projectile(BaseObject* creator) : MovableEntity(creator) 44 44 { 45 45 RegisterObject(Projectile); 46 46 47 47 this->setConfigValues(); 48 this->bDestroy_ = false; 48 49 this->owner_ = 0; 50 this->damage_ = 15; 49 51 50 52 // Get notification about collisions 53 51 54 if (GameMode::isMaster()) 52 55 { … … 81 84 return; 82 85 83 if (this-> getBDestroy())86 if (this->bDestroy_) 84 87 this->destroy(); // TODO: use a scheduler instead of deleting the object right here in tick() 85 88 } … … 91 94 } 92 95 93 /* Calls the collidesAgainst function of BasicProjectile94 */95 96 bool Projectile::collidesAgainst(WorldEntity* otherObject, btManifoldPoint& contactPoint) 96 97 { 97 return BasicProjectile::basicCollidesAgainst(otherObject,contactPoint,this->getOwner(),this); 98 if (!this->bDestroy_ && GameMode::isMaster()) 99 { 100 if (otherObject == this->owner_) 101 return false; 102 103 this->bDestroy_ = true; 104 105 if (this->owner_) 106 { 107 { 108 ParticleSpawner* effect = new ParticleSpawner(this->owner_->getCreator()); 109 effect->setPosition(this->getPosition()); 110 effect->setOrientation(this->getOrientation()); 111 effect->setDestroyAfterLife(true); 112 effect->setSource("Orxonox/explosion3"); 113 effect->setLifetime(2.0f); 114 } 115 { 116 ParticleSpawner* effect = new ParticleSpawner(this->owner_->getCreator()); 117 effect->setPosition(this->getPosition()); 118 effect->setOrientation(this->getOrientation()); 119 effect->setDestroyAfterLife(true); 120 effect->setSource("Orxonox/smoke4"); 121 effect->setLifetime(3.0f); 122 } 123 } 124 125 Pawn* victim = orxonox_cast<Pawn*>(otherObject); 126 if (victim) 127 victim->hit(this->owner_, contactPoint, this->damage_); 128 } 129 return false; 98 130 } 99 131 -
code/branches/presentation/src/modules/weapons/projectiles/Projectile.h
r8578 r8579 23 23 * Fabian 'x3n' Landau 24 24 * Co-authors: 25 * simonmie25 * ... 26 26 * 27 27 */ … … 35 35 #include "worldentities/MovableEntity.h" 36 36 37 #include "BasicProjectile.h"38 39 37 namespace orxonox 40 38 { 41 class _WeaponsExport Projectile : public MovableEntity , public BasicProjectile39 class _WeaponsExport Projectile : public MovableEntity 42 40 { 43 41 public: … … 51 49 virtual bool collidesAgainst(WorldEntity* otherObject, btManifoldPoint& contactPoint); 52 50 51 inline void setDamage(float damage) 52 { this->damage_ = damage; } 53 inline float getDamage() const 54 { return this->damage_; } 55 53 56 void setOwner(Pawn* owner); 54 57 inline Pawn* getOwner() const 55 58 { return this->owner_; } 56 59 57 58 60 private: 59 61 WeakPtr<Pawn> owner_; 60 62 float lifetime_; 63 float damage_; 64 bool bDestroy_; 61 65 Timer destroyTimer_; 62 66 }; -
code/branches/presentation/src/modules/weapons/projectiles/Rocket.cc
r8578 r8579 23 23 * Oliver Scheuss 24 24 * Co-authors: 25 * simonmie25 * ... 26 26 * 27 27 */ … … 52 52 Constructor. Registers the object and initializes some default values. 53 53 */ 54 Rocket::Rocket(BaseObject* creator) : ControllableEntity(creator) , BasicProjectile()54 Rocket::Rocket(BaseObject* creator) : ControllableEntity(creator) 55 55 { 56 56 RegisterObject(Rocket);// - register the Rocket class to the core 57 57 58 58 this->localAngularVelocity_ = 0; 59 this->bDestroy_ = false; 59 60 this->lifetime_ = 100; 60 61 … … 145 146 { 146 147 this->owner_ = owner; 147 this->player_ = this-> getOwner()->getPlayer();148 this-> getOwner()->getPlayer()->startTemporaryControl(this);148 this->player_ = this->owner_->getPlayer(); 149 this->owner_->getPlayer()->startTemporaryControl(this); 149 150 150 151 if( GameMode::isMaster() ) … … 174 175 if( GameMode::isMaster() ) 175 176 { 176 if( this-> getBDestroy())177 if( this->bDestroy_ ) 177 178 this->destroy(); 178 179 … … 180 181 } 181 182 182 /* Calls the collidesAgainst function of BasicProjectile183 */184 183 bool Rocket::collidesAgainst(WorldEntity* otherObject, btManifoldPoint& contactPoint) 185 184 { 186 return BasicProjectile::basicCollidesAgainst(otherObject,contactPoint,this->getOwner(),this); 185 if (!this->bDestroy_ && GameMode::isMaster()) 186 { 187 if (otherObject == this->owner_) 188 return false; 189 190 this->bDestroy_ = true; 191 192 if (this->owner_) 193 { 194 { 195 ParticleSpawner* effect = new ParticleSpawner(this->owner_->getCreator()); 196 effect->setPosition(this->getPosition()); 197 effect->setOrientation(this->getOrientation()); 198 effect->setDestroyAfterLife(true); 199 effect->setSource("Orxonox/explosion4"); 200 effect->setLifetime(2.0f); 201 } 202 203 { 204 ParticleSpawner* effect = new ParticleSpawner(this->owner_->getCreator()); 205 effect->setPosition(this->getPosition()); 206 effect->setOrientation(this->getOrientation()); 207 effect->setDestroyAfterLife(true); 208 effect->setSource("Orxonox/smoke4"); 209 effect->setLifetime(3.0f); 210 } 211 } 212 213 Pawn* victim = orxonox_cast<Pawn*>(otherObject); 214 if (victim) 215 victim->hit(this->owner_, contactPoint, this->damage_); 216 // this->destroy(); 217 } 218 return false; 187 219 } 188 220 … … 201 233 void Rocket::fired(unsigned int firemode) 202 234 { 203 this->destroy(); 235 // if (this->owner_) 236 // { 237 this->destroy(); 238 // } 204 239 } 205 240 … … 207 242 { 208 243 ParticleSpawner *effect1, *effect2; 209 if( this-> getOwner())210 { 211 effect1 = new ParticleSpawner(this-> getOwner()->getCreator());212 effect2 = new ParticleSpawner(this-> getOwner()->getCreator());244 if( this->owner_ ) 245 { 246 effect1 = new ParticleSpawner(this->owner_->getCreator()); 247 effect2 = new ParticleSpawner(this->owner_->getCreator()); 213 248 } 214 249 else -
code/branches/presentation/src/modules/weapons/projectiles/Rocket.h
r8578 r8579 23 23 * Oliver Scheuss 24 24 * Co-authors: 25 * simonmie25 * ... 26 26 * 27 27 */ … … 34 34 #include "tools/Timer.h" 35 35 #include "worldentities/ControllableEntity.h" 36 37 #include "BasicProjectile.h"38 36 39 37 namespace orxonox … … 48 46 Oli Scheuss 49 47 */ 50 class _WeaponsExport Rocket : public ControllableEntity , public BasicProjectile48 class _WeaponsExport Rocket : public ControllableEntity 51 49 { 52 50 public: … … 111 109 { return this->owner_; } 112 110 111 inline void setDamage(float damage) 112 { this->damage_ = damage; } 113 inline float getDamage() const 114 { return this->damage_; } 113 115 virtual void fired(unsigned int firemode); 114 116 … … 116 118 WeakPtr<Pawn> owner_; 117 119 Vector3 localAngularVelocity_; 120 float damage_; 121 bool bDestroy_; 118 122 119 123 WeakPtr<PlayerInfo> player_; -
code/branches/presentation/src/modules/weapons/projectiles/SimpleRocket.cc
r8578 r8579 23 23 * Oliver Scheuss 24 24 * Co-authors: 25 * simonmie25 * ... 26 26 * 27 27 */ … … 48 48 CreateFactory(SimpleRocket); 49 49 50 SimpleRocket::SimpleRocket(BaseObject* creator) : ControllableEntity(creator) , BasicProjectile()50 SimpleRocket::SimpleRocket(BaseObject* creator) : ControllableEntity(creator) 51 51 { 52 52 RegisterObject(SimpleRocket);// - register the SimpleRocket class to the core 53 53 54 54 this->localAngularVelocity_ = 0; 55 this->bDestroy_ = false; 55 56 this->lifetime_ = 120; 56 57 57 58 this->setMass(15); 58 //COUT(4) << "simplerocket constructed\n";59 COUT(4) << "simplerocket constructed\n"; 59 60 60 61 if (GameMode::isMaster()) … … 114 115 this->disableFire(); 115 116 116 if( this-> getBDestroy())117 if( this->bDestroy_ ) 117 118 this->destroy(); 118 119 } … … 158 159 { 159 160 this->owner_ = owner; 160 this->player_ = this-> getOwner()->getPlayer();161 } 162 163 164 /* Calls the collidesAgainst function of BasicProjectile 165 */ 161 this->player_ = this->owner_->getPlayer(); 162 } 163 164 165 166 166 167 bool SimpleRocket::collidesAgainst(WorldEntity* otherObject, btManifoldPoint& contactPoint) 167 168 { 168 return BasicProjectile::basicCollidesAgainst(otherObject,contactPoint,this->getOwner(),this); 169 if (!this->bDestroy_ && GameMode::isMaster()) 170 { 171 if (otherObject == this->owner_) 172 return false; 173 174 this->bDestroy_ = true; 175 176 if (this->owner_) 177 { 178 { 179 ParticleSpawner* effect = new ParticleSpawner(this->owner_->getCreator()); 180 effect->setPosition(this->getPosition()); 181 effect->setOrientation(this->getOrientation()); 182 effect->setDestroyAfterLife(true); 183 effect->setSource("Orxonox/explosion4"); 184 effect->setLifetime(2.0f); 185 } 186 187 { 188 ParticleSpawner* effect = new ParticleSpawner(this->owner_->getCreator()); 189 effect->setPosition(this->getPosition()); 190 effect->setOrientation(this->getOrientation()); 191 effect->setDestroyAfterLife(true); 192 effect->setSource("Orxonox/smoke4"); 193 effect->setLifetime(3.0f); 194 } 195 } 196 197 float dmg = this->damage_; 198 // if (this->owner_) 199 // dmg = this->owner_->getPickups().processModifiers(ModifierType::Damage, dmg, false); 200 201 Pawn* victim = orxonox_cast<Pawn*>(otherObject); 202 if (victim) 203 victim->hit(this->owner_, contactPoint, dmg); 204 } 205 return false; 169 206 } 170 207 -
code/branches/presentation/src/modules/weapons/projectiles/SimpleRocket.h
r8578 r8579 23 23 * Oliver Scheuss 24 24 * Co-authors: 25 * simonmie25 * ... 26 26 * 27 27 */ … … 36 36 #include "graphics/ParticleSpawner.h" 37 37 38 #include "BasicProjectile.h"39 40 38 namespace orxonox 41 39 { … … 48 46 Gabriel Nadler (Original file: Oli Scheuss) 49 47 */ 50 class _WeaponsExport SimpleRocket : public ControllableEntity , public BasicProjectile48 class _WeaponsExport SimpleRocket : public ControllableEntity 51 49 { 52 50 public: … … 113 111 inline Pawn* getOwner() const 114 112 { return this->owner_; } 115 116 113 inline bool hasFuel() const 117 114 { return this->fuel_; } 115 116 inline void setDamage(float damage) 117 { this->damage_ = damage; } 118 inline float getDamage() const 119 { return this->damage_; } 118 120 119 121 … … 121 123 WeakPtr<Pawn> owner_; 122 124 Vector3 localAngularVelocity_; 125 float damage_; 126 bool bDestroy_; 123 127 bool fuel_; //!< Bool is true while the rocket "has fuel" 124 128 -
code/branches/presentation/src/modules/weapons/weaponmodes/EnergyDrink.cc
r8578 r8579 23 23 * Hagen Seifert 24 24 * Co-authors: 25 * simonmie25 * ... 26 26 * 27 27 */ … … 50 50 51 51 this->reloadTime_ = 0.25; 52 this->damage_ = 0; //default 1552 this->damage_ = 15; 53 53 this->speed_ = 2500; 54 54 this->delay_ = 0; … … 97 97 } 98 98 99 /* Creates the projectile object, sets its properties to the EnergyDrink properties, calls muendungsfeuer()100 */101 99 void EnergyDrink::shot() 102 100 { … … 114 112 projectile->setOwner(this->getWeapon()->getWeaponPack()->getWeaponSystem()->getPawn()); 115 113 projectile->setDamage(this->getDamage()); 116 projectile->setShieldDamage(this->getShieldDamage());117 projectile->setHealthDamage(this->getHealthDamage());118 114 119 115 EnergyDrink::muendungsfeuer(); -
code/branches/presentation/src/modules/weapons/weaponmodes/FusionFire.cc
r8578 r8579 23 23 * Martin Polak 24 24 * Co-authors: 25 * simonmie25 * ... 26 26 * 27 27 */ … … 48 48 this->reloadTime_ = 1.0; 49 49 this->bParallelReload_ = false; 50 this->damage_ = 0; //default 4050 this->damage_ = 40; 51 51 this->speed_ = 1250; 52 52 … … 54 54 } 55 55 56 /* Creates the projectile (BillboardProjectile) object, sets its properties to the FusionFire properties57 */58 56 void FusionFire::fire() 59 57 { … … 67 65 projectile->setOwner(this->getWeapon()->getWeaponPack()->getWeaponSystem()->getPawn()); 68 66 projectile->setDamage(this->getDamage()); 69 projectile->setShieldDamage(this->getShieldDamage());70 projectile->setHealthDamage(this->getHealthDamage());71 72 67 projectile->setColour(ColourValue(1.0f, 0.7f, 0.3f, 1.0f)); 73 68 } -
code/branches/presentation/src/modules/weapons/weaponmodes/HsW01.cc
r8578 r8579 23 23 * Hagen Seifert 24 24 * Co-authors: 25 * simonmie25 * ... 26 26 * 27 27 */ … … 51 51 52 52 this->reloadTime_ = 0.25; 53 this->damage_ = 0; //default 1553 this->damage_ = 15; 54 54 this->speed_ = 2500; 55 55 this->delay_ = 0; … … 109 109 } 110 110 111 /* Creates the projectile object, sets its properties to the HsW01 properties, calls muendungsfeuer()112 */113 111 void HsW01::shot() 114 112 { … … 128 126 projectile->setOwner(this->getWeapon()->getWeaponPack()->getWeaponSystem()->getPawn()); 129 127 projectile->setDamage(this->getDamage()); 130 projectile->setShieldDamage(this->getShieldDamage());131 projectile->setHealthDamage(this->getHealthDamage());132 128 133 129 HsW01::muendungsfeuer(); -
code/branches/presentation/src/modules/weapons/weaponmodes/LaserFire.cc
r8578 r8579 23 23 * Martin Polak 24 24 * Co-authors: 25 * simonmie25 * ... 26 26 * 27 27 */ … … 45 45 46 46 this->reloadTime_ = 0.25; 47 this->damage_ = 0; //default 1547 this->damage_ = 15; 48 48 this->speed_ = 1250; 49 49 … … 51 51 } 52 52 53 /* Creates the projectile object, sets its properties to the LaserFire properties54 */55 53 void LaserFire::fire() 56 54 { … … 63 61 projectile->setOwner(this->getWeapon()->getWeaponPack()->getWeaponSystem()->getPawn()); 64 62 projectile->setDamage(this->getDamage()); 65 projectile->setShieldDamage(this->getShieldDamage());66 projectile->setHealthDamage(this->getHealthDamage());67 63 } 68 64 } -
code/branches/presentation/src/modules/weapons/weaponmodes/LightningGun.cc
r8578 r8579 23 23 * Joel Smely 24 24 * Co-authors: 25 * simonmie25 * ... 26 26 * 27 27 */ … … 45 45 46 46 this->reloadTime_ = 1; 47 this->damage_ = 0; //default 10047 this->damage_ = 100; 48 48 this->speed_ = 150; 49 49 … … 56 56 } 57 57 58 /* Creates the projectile (LightningGunProjectile) object, sets its properties to the LightningGun properties59 */60 58 void LightningGun::fire() 61 59 { … … 71 69 projectile->setOwner(this->getWeapon()->getWeaponPack()->getWeaponSystem()->getPawn()); 72 70 projectile->setDamage(this->getDamage()); 73 projectile->setShieldDamage(this->getShieldDamage());74 projectile->setHealthDamage(this->getHealthDamage());75 71 } 76 72 } -
code/branches/presentation/src/modules/weapons/weaponmodes/RocketFire.cc
r8578 r8579 23 23 * Oliver Scheuss 24 24 * Co-authors: 25 * simonmie25 * ... 26 26 * 27 27 */ … … 48 48 this->reloadTime_ = 0.20f; 49 49 this->bParallelReload_ = false; 50 this->damage_ = 0;50 this->damage_ = 100; 51 51 this->speed_ = 500; 52 52 … … 59 59 } 60 60 61 /* Creates the Rocket object, sets its properties to the RocketFire properties62 */63 61 void RocketFire::fire() 64 62 { … … 73 71 rocket->setOwner(this->getWeapon()->getWeaponPack()->getWeaponSystem()->getPawn()); 74 72 rocket->setDamage(this->getDamage()); 75 rocket->setShieldDamage(this->getShieldDamage());76 rocket->setHealthDamage(this->getHealthDamage());77 73 } 78 74 } -
code/branches/presentation/src/modules/weapons/weaponmodes/SimpleRocketFire.cc
r8578 r8579 23 23 * Oliver Scheuss 24 24 * Co-authors: 25 * simonmie25 * ... 26 26 * 27 27 */ … … 50 50 this->reloadTime_ = 1; 51 51 this->bParallelReload_ = false; 52 this->damage_ = 0;52 this->damage_ = 100; 53 53 this->speed_ = 500; 54 54 … … 62 62 } 63 63 64 /* Creates the Rocket (RocketController) object, sets its properties to the SimpleRocketFire properties, sets target65 */66 64 void SimpleRocketFire::fire() 67 65 { … … 73 71 rocket->setVelocity(this->getMuzzleDirection()*this->speed_); 74 72 rocket->setOwner(this->getWeapon()->getWeaponPack()->getWeaponSystem()->getPawn()); 75 76 73 rocket->setDamage(this->damage_); 77 rocket->setShieldDamage(this->getShieldDamage());78 rocket->setHealthDamage(this->getHealthDamage());79 80 74 WorldEntity* pawnn=static_cast<ControllableEntity*>(this->getWeapon()->getWeaponPack()->getWeaponSystem()->getPawn())->getTarget(); 81 75 if (pawnn) con->setTarget(pawnn);
Note: See TracChangeset
for help on using the changeset viewer.