/* $Id: weaponhomingmissile.cpp,v 1.8 2005/12/21 10:22:17 pohlt Exp $ */ #include "weaponhomingmissile.hpp" #include "world.hpp" #include "avatar.hpp" #include "stationarygun.hpp" /**********************************************************/ bool WeaponHomingMissile::reallyShoot( World* world, Avatar* avatar, const StationaryGun* gun ) const { // place missile HomingMissile* const homing = dynamic_cast( world->newObject( HOMING_MISSILE )); if( gun ) return homing->initialize( gun->getShootingPoint(), gun->getRandomizedAimingVector( 2 )*0.25, avatar->getPlayer()->getPlayerID(), 300, 10, gun->getRandomizedAimingVector( 2 )*130 ); else return homing->initialize( // initial position of the missile avatar->placeBesideCollRect( homing->getCollRectX() + homing->getCollRectWidth() - 1, -homing->getCollRectX(), homing->getCollRectY() + homing->getCollRectHeight() - 1, -homing->getCollRectY() ), // initial velocity avatar->getRandomizedAimingVector( 2 )*0.25 + avatar->getVel(), // owner avatar->getPlayer()->getPlayerID(), // number of shrapnels, damage 300, 10, // initial thrust avatar->getRandomizedAimingVector( 2 )*130 ); } /**********************************************************/