- Timestamp:
- May 27, 2015, 4:23:44 PM (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
code/branches/weaponFS15/src/modules/weapons/projectiles/GravityBomb.cc
r10455 r10502 12 12 RegisterClass(GravityBomb); 13 13 14 const float GravityBomb::LIFETIME = 5; ///< The gravity bomb lifetime in seconds.14 const float GravityBomb::LIFETIME = 2.5; ///< The gravity bomb lifetime in seconds. 15 15 16 16 GravityBomb::GravityBomb(Context* context): … … 22 22 23 23 this->setMass(10.0); 24 this-> isDetonated_ = false;24 this->hasCollided_ = false; 25 25 if (GameMode::isMaster()) 26 26 { … … 67 67 void GravityBomb::tick(float dt) 68 68 { 69 timeToLife_ -= dt;70 if(timeToLife_ < 0)71 {72 //orxout(debug_output) << "bomb has stoped moving" <<endl;73 setVelocity(Vector3::ZERO); //Stop the bomb.74 isDetonated_ = true;75 }76 else77 {78 //orxout(debug_output)<< "Time to live:" << timeToLife_ <<endl;79 destroyCheck(); //Every BasicProjectil has to call this method in each tick.80 }81 if(isDetonated_) detonate();82 else SUPER(GravityBomb, tick, dt);69 SUPER(GravityBomb, tick, dt); 70 timeToLife_ -= dt; 71 if (timeToLife_ < 0) 72 { 73 //orxout(debug_output) << "bomb has stoped moving" <<endl; 74 setVelocity(Vector3::ZERO); //Stop the bomb. 75 detonate(); 76 this->destroy(); 77 } 78 else 79 { 80 if (hasCollided_) detonate(); 81 destroyCheck(); //Bomb is going to be destroyed by destroyCheck(). As written in BasicProectile, this Method should be called by every Projectile. 82 } 83 83 } 84 84 85 85 bool GravityBomb::collidesAgainst(WorldEntity* otherObject, const btCollisionShape* cs, btManifoldPoint& contactPoint) 86 86 { 87 if(otherObject != getShooter()) //Ensure that the bomb cannot collide with its shooter. 88 { 89 orxout(debug_output) << "collides" << endl; 90 processCollision(otherObject, contactPoint,cs); 91 isDetonated_ = true; 92 return true; 93 } 94 else{ 95 //orxout(debug_output) << "collided with shooter. Has no effect..." << endl; 96 return false; 97 } 87 hasCollided_ = processCollision(otherObject, contactPoint, cs); 88 return hasCollided_; 98 89 } 99 90 … … 106 97 //orxout(debug_output) << "detonating. Creating GravityBombField." <<endl; 107 98 //orxout(debug_output) << "Field is at Position: " << getPosition() << endl; 108 this->destroy();109 99 } 110 100 }
Note: See TracChangeset
for help on using the changeset viewer.