Projectile AnchorLauncher::fireWeapon(PhysicsObject& origin) { SphereCollisionObject projectilePhysics = SphereCollisionObject(75, 1, origin.position()); projectilePhysics.velocity(origin.velocity() + origin.heading() * 4000); projectilePhysics.orientation(origin.orientation()); resetShotCounter(); return Projectile(projectilePhysics, ObjectType::ANCHOR_PROJECTILE, 0, 120, memoryManager()); }
Projectile PlasmaCannon::fireWeapon(PhysicsObject& origin) { SphereCollisionObject projectilePhysics = SphereCollisionObject(75, 1, origin.position()); projectilePhysics.velocity(origin.velocity() + origin.heading() * 12000); // projectilePhysics.applyForce(origin.heading() * 4000); projectilePhysics.orientation(origin.orientation()); if(m_shootLeft) { projectilePhysics.position(origin.position() + (origin.orientation() * Vector3(40, -30, -30))); } else { projectilePhysics.position(origin.position() + (origin.orientation() * Vector3(-40, -30, -30))); } m_shootLeft = !m_shootLeft; resetShotCounter(); return Projectile(projectilePhysics, ObjectType::PROJECTILE, 35, 10, memoryManager()); }