Changeset 5968 in orxonox.OLD for branches/network/src/world_entities/weapons
- Timestamp:
- Dec 7, 2005, 4:16:51 PM (19 years ago)
- Location:
- branches/network/src/world_entities/weapons
- Files:
-
- 11 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/network/src/world_entities/weapons/aiming_turret.cc
r5819 r5968 26 26 27 27 #include "animation3d.h" 28 #include "sound_engine.h"29 28 30 29 #include "factory.h" … … 93 92 94 93 this->setCapability(WTYPE_ALLDIRS | WTYPE_TURRET); 95 this->setProjectileType(CL_ ROCKET);94 this->setProjectileType(CL_GUIDED_MISSILE); 96 95 97 96 … … 142 141 return; 143 142 144 143 pj->setVelocity(/*this->getVelocity()+*/(this->getAbsDir().apply(Vector(1,0,0))*250.0 + VECTOR_RAND(13) 145 144 /*target->getAbsCoor() - this->getAbsCoor()*/)*.5);//this->getVelocity()); 146 145 146 pj->setTarget(this->target->getParent()); 147 147 pj->setParent(NullParent::getInstance()); 148 148 pj->setAbsCoor(this->getEmissionPoint()); -
branches/network/src/world_entities/weapons/bomb.cc
r5769 r5968 17 17 #include "glincl.h" 18 18 #include "state.h" 19 #include "model.h" 20 #include "primitive_model.h" 21 22 #include "fast_factory.h" 19 23 #include "list.h" 20 #include "model.h"21 #include "vector.h"22 #include "fast_factory.h"23 24 25 #include "object_manager.h" 24 26 25 27 #include "particle_engine.h" … … 59 61 Bomb::~Bomb () 60 62 { 63 delete this->detonationSphere; 64 delete this->detonationMaterial; 61 65 62 66 } … … 71 75 this->setClassID(CL_BOMB, "Bomb"); 72 76 77 78 this->detonationSphere = new PrimitiveModel(PRIM_SPHERE); 79 this->detonationMaterial = new Material(); 80 this->detonationMaterial->setDiffuse(1, 0, 0); 81 // this->detonationMaterial->setTransparency(.1); 73 82 /** 74 83 * @todo: Write CL_PROTO_WORLD_ENTITY INTO THE src/defs/class_id.h (your own definition) … … 101 110 void Bomb::tick(float time) 102 111 { 103 //Vector v = *this->flightDirection * ( this->speed * time * 1000 + 0.1);104 Vector v = this->velocity * (time);105 this->shiftCoor(v);106 107 112 this->lifeCycle += time/this->lifeSpan; 108 113 if( this->lifeCycle >= 1.0) … … 114 119 this->deactivate(); 115 120 } 121 else if (this->lifeCycle > 0.9f) 122 this->detonate ((this->lifeCycle-.89) *1000.0); 123 else 124 { 125 Vector v = this->velocity * (time); 126 this->shiftCoor(v); 127 } 116 128 } 117 129 … … 133 145 glMultMatrixf((float*)matrix); 134 146 135 if (model) 136 model->draw(); 147 if (this->lifeCycle < .9) 148 { 149 if (model) 150 model->draw(); 151 } 152 else 153 { 154 glScalef((this->lifeCycle-.89) *1000.0, 155 (this->lifeCycle-.89) *1000.0, 156 (this->lifeCycle-.89) *1000.0); 157 this->detonationMaterial->select(); 158 this->detonationSphere->draw(); 159 } 137 160 glPopMatrix(); 138 161 } … … 145 168 void Bomb::collidesWith (WorldEntity* entity, const Vector& location) 146 169 { 147 this->detonate(); 170 if (this->lifeCycle < .9f && entity->isA(CL_NPC)) 171 this->lifeCycle = 0.9f; 148 172 } 149 173 … … 157 181 { 158 182 State::getWorldEntityList()->remove(this); 183 this->lifeCycle = 0.0f; 159 184 Bomb::fastFactory->kill(this); 160 185 } 161 186 162 void Bomb::detonate( )187 void Bomb::detonate(float size) 163 188 { 164 tIterator<WorldEntity>* it = State::getWorldEntityList()->getIterator(); 165 WorldEntity* lm = it->firstElement(); 166 167 while(lm != NULL) 189 std::list<WorldEntity*>* detonationList = ObjectManager::distanceFromObject(*this, size, CL_NPC); 190 if (detonationList != NULL) 168 191 { 169 170 lm = it->nextElement(); 192 while( !detonationList->empty() ) 193 { 194 detonationList->front()->collidesWith(this, Vector(0,0,0)); 195 detonationList->pop_front(); 196 } 197 delete detonationList; 171 198 } 172 199 } -
branches/network/src/world_entities/weapons/bomb.h
r5750 r5968 8 8 9 9 #include "projectile.h" 10 10 11 class FastFactory; 11 12 class ParticleSystem; 12 13 class ParticleEmitter; 14 class Material; 13 15 14 16 //! A Class to ... … … 31 33 virtual void collidesWith (WorldEntity* entity, const Vector& location); 32 34 virtual void activate(); 33 virtual void detonate();34 35 virtual void deactivate(); 36 37 void detonate(float size); 35 38 36 39 private: … … 40 43 41 44 ParticleEmitter* emitter; 42 45 Model* detonationSphere; 46 Material* detonationMaterial; 43 47 }; 44 48 -
branches/network/src/world_entities/weapons/cannon.cc
r5819 r5968 32 32 #include "list.h" 33 33 #include "animation3d.h" 34 #include "sound_engine.h"35 34 36 35 #include "null_parent.h" … … 83 82 this->setStateDuration(WS_DEACTIVATING, .4); 84 83 85 this->setMaximumEnergy(100, 1);86 this->increaseEnergy( 30);84 this->setMaximumEnergy(100, 20); 85 this->increaseEnergy(100); 87 86 //this->minCharge = 2; 88 87 -
branches/network/src/world_entities/weapons/ground_turret.cc
r5819 r5968 145 145 void GroundTurret::collidesWith (WorldEntity* entity, const Vector& location) 146 146 { 147 147 if (entity->isA(CL_PROJECTILE)) 148 this->setAbsDirSoft(Quaternion(-90, Vector(0,0,1)), 90); 148 149 } 149 150 -
branches/network/src/world_entities/weapons/guided_missile.cc
r5779 r5968 48 48 this->energyMin = 1; 49 49 this->energyMax = 10; 50 this->lifeSpan = 5 ;51 this->agility = 5 ;50 this->lifeSpan = 5.0; 51 this->agility = 5.0; 52 52 this->maxVelocity = 100; 53 53 -
branches/network/src/world_entities/weapons/test_gun.cc
r5819 r5968 32 32 #include "list.h" 33 33 #include "animation3d.h" 34 #include "sound_engine.h"35 34 36 35 #include "null_parent.h" -
branches/network/src/world_entities/weapons/turret.cc
r5819 r5968 26 26 #include "list.h" 27 27 #include "animation3d.h" 28 #include "sound_engine.h"29 28 30 29 #include "factory.h" -
branches/network/src/world_entities/weapons/weapon.cc
r5750 r5968 28 28 #include "load_param.h" 29 29 #include "state.h" 30 #include "sound_engine.h"31 30 #include "animation3d.h" 32 31 #include "vector.h" 32 33 #include "sound_source.h" 34 #include "sound_buffer.h" 33 35 34 36 //////////////////// -
branches/network/src/world_entities/weapons/weapon_manager.cc
r5779 r5968 110 110 this->crossHairSizeAnim->addKeyFrame(100, .05, ANIM_LINEAR); 111 111 this->crossHairSizeAnim->addKeyFrame(50, .01, ANIM_LINEAR); 112 113 this->targetIterator = NULL;114 112 } 115 113 … … 337 335 } 338 336 } 339 }340 341 342 /**343 * Selects an Entity from the NPC-list, and returns the Target344 */345 PNode* WeaponManager::getSomeTarget()346 {347 if (this->targetIterator == NULL)348 {349 std::list<BaseObject*>* npcList = ClassList::getList(CL_NPC);350 if (npcList != NULL)351 {352 this->targetIterator = npcList->begin();353 }354 else355 return NULL;356 }357 358 ///FIXME359 // this->targetIterator++;360 PNode* retNode = dynamic_cast<PNode*>((*targetIterator));361 // if (retNode == NULL && this->targetIterator->getList()->getSize() > 0)362 // retNode = dynamic_cast<PNode*>(targetIterator->firstElement());363 364 return retNode;365 }366 367 368 /**369 * Selects an Entity from the Entity-List, that is near of the carrier PNode.370 * @param carrier: The PNode from which the distance should be measured371 * @param distance: The Maximum Distance to Return.372 */373 PNode* WeaponManager::getDistanceTarget(const PNode* carrier, float distance)374 {375 std::list<BaseObject*>* npcList = ClassList::getList(CL_NPC);376 if (npcList != NULL)377 {378 list<BaseObject*>::iterator node;379 for (node= npcList->begin(); node != npcList->end(); node++)380 if ((carrier->getAbsCoor() - dynamic_cast<PNode*>(*node)->getAbsCoor()).len() < distance)381 return dynamic_cast<PNode*>(*node);382 }383 return this->getFixedTarget();384 337 } 385 338 -
branches/network/src/world_entities/weapons/weapon_manager.h
r5779 r5968 80 80 /** @returns a fixed target namely the Crosshair's 3D position */ 81 81 inline PNode* getFixedTarget() const { return this->crosshair; }; 82 PNode* getSomeTarget();83 PNode* getDistanceTarget(const PNode* carrier, float distance);84 82 85 83 void fire(); … … 109 107 Crosshair* crosshair; //!< an aim. 110 108 tAnimation<Crosshair>* crossHairSizeAnim; //!< An animation for the crosshair (scaling) 111 112 std::list<BaseObject*>::iterator targetIterator; //!< An iterator for traversion lists of enemies.113 109 };
Note: See TracChangeset
for help on using the changeset viewer.