Changeset 7076 in orxonox.OLD for trunk/src/world_entities/npcs/npc.cc
- Timestamp:
- Feb 7, 2006, 3:46:43 PM (18 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/world_entities/npcs/npc.cc
r6341 r7076 41 41 void NPC::collidesWith(WorldEntity* entity, const Vector& location) 42 42 { 43 if (entity->isA(CL_PROJECTILE) && entity != this->collider) 43 44 if (entity == collider) 45 return; 46 collider = entity; 47 48 if (entity->isA(CL_PROJECTILE)) 44 49 { 45 // PRINTF(3)("collision %s vs %s @ (%f,%f,%f)\n", this->getName(), entity->getName(), location.x, location.y, location.z);46 // this->applyForce(Vector(0,0,0)-location*1000); 47 if ( (float)rand()/RAND_MAX < .3)50 this->decreaseHealth(entity->getHealth() *(float)rand()/(float)RAND_MAX); 51 // EXTREME HACK 52 if (this->getHealth() <= 0.0f) 48 53 { 49 WorldEntity* powerUp = new TurretPowerUp(); 50 powerUp->setAbsCoor(this->getAbsCoor()); 51 // powerUp->toList(OM_COMMON); 54 this->destroy(); 52 55 } 53 else if ((float)rand()/RAND_MAX < .3) 54 { 55 WorldEntity* powerUp = new LaserPowerUp(); 56 powerUp->setAbsCoor(this->getAbsCoor()); 57 powerUp->toList(OM_COMMON); 58 } 59 this->toList(OM_DEAD); 60 this->removeNode(); 56 } 61 57 62 this->collider = entity; 63 } 64 // else if (entity->isA(CL_PLAYER)) 65 // this->applyForce(Vector(0,0,0)-location*100); 66 else if (entity->isA(CL_NPC)) 67 { 68 this->setVisibiliy(false); 69 this->toList(OM_DEAD); 70 this->removeNode(); 71 } 58 59 // // PRINTF(3)("collision %s vs %s @ (%f,%f,%f)\n", this->getName(), entity->getName(), location.x, location.y, location.z); 60 // // this->applyForce(Vector(0,0,0)-location*1000); 61 // if ((float)rand()/RAND_MAX < .3) 62 // { 63 // WorldEntity* powerUp = new TurretPowerUp(); 64 // powerUp->setAbsCoor(this->getAbsCoor()); 65 // // powerUp->toList(OM_COMMON); 66 // } 67 // else if ((float)rand()/RAND_MAX < .3) 68 // { 69 // WorldEntity* powerUp = new LaserPowerUp(); 70 // powerUp->setAbsCoor(this->getAbsCoor()); 71 // powerUp->toList(OM_COMMON); 72 // } 73 // this->toList(OM_DEAD); 74 // this->removeNode(); 75 // 76 // this->collider = entity; 77 // } 78 // // else if (entity->isA(CL_PLAYER)) 79 // // this->applyForce(Vector(0,0,0)-location*100); 80 // else if (entity->isA(CL_NPC)) 81 // { 82 // this->setVisibiliy(false); 83 // this->toList(OM_DEAD); 84 // this->removeNode(); 85 // } 72 86 }
Note: See TracChangeset
for help on using the changeset viewer.