Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Changeset 7076 in orxonox.OLD for trunk/src/world_entities/npcs/npc.cc


Ignore:
Timestamp:
Feb 7, 2006, 3:46:43 PM (18 years ago)
Author:
bensch
Message:

weaponAdjustment

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/world_entities/npcs/npc.cc

    r6341 r7076  
    4141void NPC::collidesWith(WorldEntity* entity, const Vector& location)
    4242{
    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))
    4449  {
    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)
    4853    {
    49       WorldEntity* powerUp = new TurretPowerUp();
    50       powerUp->setAbsCoor(this->getAbsCoor());
    51 //      powerUp->toList(OM_COMMON);
     54      this->destroy();
    5255    }
    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  }
    6157
    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//   }
    7286}
Note: See TracChangeset for help on using the changeset viewer.