[Orxonox-commit 7680] r12273 - in code/branches/Boxhead_FS19: data/levels data/levels/includes src/modules/hover src/modules/weapons/projectiles src/modules/weapons/weaponmodes
cwaupoti at orxonox.net
cwaupoti at orxonox.net
Thu Apr 4 15:51:06 CEST 2019
Author: cwaupoti
Date: 2019-04-04 15:51:04 +0200 (Thu, 04 Apr 2019)
New Revision: 12273
Modified:
code/branches/Boxhead_FS19/data/levels/Hover.oxw
code/branches/Boxhead_FS19/data/levels/includes/weaponSettingsHover.oxi
code/branches/Boxhead_FS19/src/modules/hover/Hover.h
code/branches/Boxhead_FS19/src/modules/weapons/projectiles/CMakeLists.txt
code/branches/Boxhead_FS19/src/modules/weapons/projectiles/HoverGunProjectile.cc
code/branches/Boxhead_FS19/src/modules/weapons/projectiles/HoverGunProjectile.h
code/branches/Boxhead_FS19/src/modules/weapons/weaponmodes/CMakeLists.txt
code/branches/Boxhead_FS19/src/modules/weapons/weaponmodes/HoverGun.cc
code/branches/Boxhead_FS19/src/modules/weapons/weaponmodes/HoverGun.h
Log:
comment
Modified: code/branches/Boxhead_FS19/data/levels/Hover.oxw
===================================================================
--- code/branches/Boxhead_FS19/data/levels/Hover.oxw 2019-04-04 13:33:04 UTC (rev 12272)
+++ code/branches/Boxhead_FS19/data/levels/Hover.oxw 2019-04-04 13:51:04 UTC (rev 12273)
@@ -1,12 +1,3 @@
-<!-- include("HUDTemplates3.oxo") -->
- <!-- include("templates/spaceshipSwallow.oxt") -->
- <!-- include("templates/spaceshipPirate.oxt") -->
- <!-- include("templates/spaceshipEscort.oxt") -->
- <!-- include("templates/spaceshipCollateralDamage.oxt") -->
- <!-- include("templates/spaceshipAssff.oxt") -->
- <!-- include("templates/spaceshipAssff2.oxt") -->
- <!-- include("templates/spaceshipTransporter.oxt") -->
-
<LevelInfo
name = "Hover level"
description = "Level for Minigame Hover"
Modified: code/branches/Boxhead_FS19/data/levels/includes/weaponSettingsHover.oxi
===================================================================
--- code/branches/Boxhead_FS19/data/levels/includes/weaponSettingsHover.oxi 2019-04-04 13:33:04 UTC (rev 12272)
+++ code/branches/Boxhead_FS19/data/levels/includes/weaponSettingsHover.oxi 2019-04-04 13:51:04 UTC (rev 12273)
@@ -26,5 +26,5 @@
</WeaponPack>
</weaponpacks>
<munition>
- <IceMunition initialmagazines=1 maxmagazines=1 munitionpermagazine=10/>
+ <LaserMunition initialmagazines=1 maxmagazines=1 munitionpermagazine=10/>
</munition>
Modified: code/branches/Boxhead_FS19/src/modules/hover/Hover.h
===================================================================
--- code/branches/Boxhead_FS19/src/modules/hover/Hover.h 2019-04-04 13:33:04 UTC (rev 12272)
+++ code/branches/Boxhead_FS19/src/modules/hover/Hover.h 2019-04-04 13:51:04 UTC (rev 12273)
@@ -26,7 +26,7 @@
*
*/
-/**f
+/**
@file Hover.h
@brief Gametype. For more information see .cc file
@ingroup Hover
Modified: code/branches/Boxhead_FS19/src/modules/weapons/projectiles/CMakeLists.txt
===================================================================
--- code/branches/Boxhead_FS19/src/modules/weapons/projectiles/CMakeLists.txt 2019-04-04 13:33:04 UTC (rev 12272)
+++ code/branches/Boxhead_FS19/src/modules/weapons/projectiles/CMakeLists.txt 2019-04-04 13:51:04 UTC (rev 12273)
@@ -14,4 +14,5 @@
GravityBombField.cc
MineProjectile.cc
WagnisProjectile.cc
+ HoverGunProjectile.cc
)
Modified: code/branches/Boxhead_FS19/src/modules/weapons/projectiles/HoverGunProjectile.cc
===================================================================
--- code/branches/Boxhead_FS19/src/modules/weapons/projectiles/HoverGunProjectile.cc 2019-04-04 13:33:04 UTC (rev 12272)
+++ code/branches/Boxhead_FS19/src/modules/weapons/projectiles/HoverGunProjectile.cc 2019-04-04 13:51:04 UTC (rev 12273)
@@ -20,82 +20,68 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*
* Author:
- * Fabian 'x3n' Landau
+ * Joel Smely
* Co-authors:
- * simonmie
+ * ...
*
*/
/**
- @file Projectile.h
- @brief Implementation of the Projectile class.
+ @file HoverGunProjectile.h
+ @brief Implementation of the HoverGunProjectile class.
*/
#include "HoverGunProjectile.h"
-#include "core/config/ConfigValueIncludes.h"
#include "core/CoreIncludes.h"
-#include "core/GameMode.h"
#include "core/command/Executor.h"
+#include "util/Convert.h"
-#include "worldentities/pawns/Pawn.h"
-
namespace orxonox
{
RegisterClass(HoverGunProjectile);
- HoverGunProjectile::HoverGunProjectile(Context* context) : MovableEntity(context), BasicProjectile()
+ HoverGunProjectile::HoverGunProjectile(Context* context) : BillboardProjectile(context)
{
RegisterObject(HoverGunProjectile);
- this->setConfigValues();
+ this->textureIndex_ = 1;
+ this->setMass(0.1f);
+ this->setCollisionType(CollisionType::Dynamic);
+ this->maxTextureIndex_ = 8;
+ this->textureTimer_.setTimer(0.01f, true, createExecutor(createFunctor(&HoverGunProjectile::changeTexture, this)));
- // Get notification about collisions
- if (GameMode::isMaster())
- {
- this->setMass(0.1f);
- this->enableCollisionCallback();
- this->setCollisionResponse(false);
- this->setCollisionType(CollisionType::Dynamic);
-
- // Create a sphere collision shape and attach it to the projectile.
- collisionShape_ = new SphereCollisionShape(this->getContext());
- setCollisionShapeRadius(8.0f);
- this->attachCollisionShape(collisionShape_);
-
- this->destroyTimer_.setTimer(this->lifetime_, false, createExecutor(createFunctor(&BasicProjectile::destroyObject, this)));
- }
+ registerVariables();
}
- HoverGunProjectile::~HoverGunProjectile()
+ void HoverGunProjectile::registerVariables()
{
+ registerVariable(this->materialBase_);
}
- void HoverGunProjectile::setConfigValues()
+ /**
+ @brief
+ Set the material.
+ @param material
+ The name of the material. Material names with 1 to 8 appended must exist.
+ */
+ void HoverGunProjectile::setMaterial(const std::string& material)
{
- SetConfigValue(lifetime_, 4.0f).description("The time in seconds a projectile stays alive");
- }
+ this->materialBase_ = material;
- void HoverGunProjectile::tick(float dt)
- {
- SUPER(Projectile, tick, dt);
-
- if (!this->isActive())
- return;
-
- this->destroyCheck();
+ BillboardProjectile::setMaterial(material + multi_cast<std::string>(this->textureIndex_));
}
- bool HoverGunProjectile::collidesAgainst(WorldEntity* otherObject, const btCollisionShape* cs, btManifoldPoint& contactPoint)
+ /**
+ @brief
+ Change the texture.
+ */
+ void HoverGunProjectile::changeTexture()
{
- return this->processCollision(otherObject, contactPoint, cs);
- }
+ this->textureIndex_++;
+ if (this->textureIndex_ > this->maxTextureIndex_)
+ this->textureIndex_ = 1;
- void HoverGunProjectile::setCollisionShapeRadius(float radius)
- {
- if (collisionShape_ != nullptr && radius > 0)
- {
- collisionShape_->setRadius(radius);
- }
+ this->setMaterial(this->materialBase_);
}
}
Modified: code/branches/Boxhead_FS19/src/modules/weapons/projectiles/HoverGunProjectile.h
===================================================================
--- code/branches/Boxhead_FS19/src/modules/weapons/projectiles/HoverGunProjectile.h 2019-04-04 13:33:04 UTC (rev 12272)
+++ code/branches/Boxhead_FS19/src/modules/weapons/projectiles/HoverGunProjectile.h 2019-04-04 13:51:04 UTC (rev 12273)
@@ -20,15 +20,15 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*
* Author:
- * Fabian 'x3n' Landau
+ * Joel Smely
* Co-authors:
- * simonmie
+ * ...
*
*/
/**
- @file Projectile.h
- @brief Definition of the Projectile class.
+ @file HoverGunProjectile.h
+ @brief Definition of the HoverGunProjectile class.
*/
#ifndef _HoverGunProjectile_H__
@@ -36,44 +36,38 @@
#include "weapons/WeaponsPrereqs.h"
+#include <string>
#include "tools/Timer.h"
-#include "worldentities/MovableEntity.h"
-#include "objects/collisionshapes/SphereCollisionShape.h"
+#include "BillboardProjectile.h"
-#include "BasicProjectile.h"
-
namespace orxonox
{
/**
@brief
- Represents all 'standard' projectiles.
-
+ The HoverGunProjectile is a projectile that is represented by a looped series of billboards.
+
@author
- Fabian 'x3n' Landau
- @author
- Simon Miescher
+ Joel Smely
@ingroup WeaponsProjectiles
*/
- class _WeaponsExport HoverGunProjectile : public MovableEntity, public BasicProjectile
+ class _WeaponsExport HoverGunProjectile : public BillboardProjectile
{
public:
HoverGunProjectile(Context* context);
- virtual ~HoverGunProjectile();
+ virtual ~HoverGunProjectile() {}
- void setConfigValues();
+ virtual void setMaterial(const std::string& material) override;
- virtual void tick(float dt) override;
- virtual bool collidesAgainst(WorldEntity* otherObject, const btCollisionShape* cs, btManifoldPoint& contactPoint) override;
-
- protected:
- virtual void setCollisionShapeRadius(float radius);
- float lifetime_; //!< The time the projectile exists.
-
private:
- Timer destroyTimer_; //!< Timer to destroy the projectile after its lifetime has run out.
- WeakPtr<SphereCollisionShape> collisionShape_; // The collision shape of the projectile.
+ void registerVariables();
+ void changeTexture();
+
+ unsigned int textureIndex_; //!< The current index of the texture. (i.e. the index of the currently displayed texture)
+ unsigned int maxTextureIndex_; //!< The maximal index.
+ Timer textureTimer_; //!< A timer that loops and changes textures each time it expires.
+ std::string materialBase_; //!< The base name of the material.
};
}
-#endif /* _Projectile_H__ */
+#endif /* _HoverGunProjectile_H__ */
Modified: code/branches/Boxhead_FS19/src/modules/weapons/weaponmodes/CMakeLists.txt
===================================================================
--- code/branches/Boxhead_FS19/src/modules/weapons/weaponmodes/CMakeLists.txt 2019-04-04 13:33:04 UTC (rev 12272)
+++ code/branches/Boxhead_FS19/src/modules/weapons/weaponmodes/CMakeLists.txt 2019-04-04 13:51:04 UTC (rev 12273)
@@ -4,6 +4,7 @@
LaserFire.cc
HsW01.cc
LightningGun.cc
+ HoverGun.cc
SplitGun.cc
IceGun.cc
FlameGun.cc
Modified: code/branches/Boxhead_FS19/src/modules/weapons/weaponmodes/HoverGun.cc
===================================================================
--- code/branches/Boxhead_FS19/src/modules/weapons/weaponmodes/HoverGun.cc 2019-04-04 13:33:04 UTC (rev 12272)
+++ code/branches/Boxhead_FS19/src/modules/weapons/weaponmodes/HoverGun.cc 2019-04-04 13:51:04 UTC (rev 12273)
@@ -20,7 +20,7 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*
* Author:
- * Hagen Seifert
+ * Joel Smely
* Co-authors:
* simonmie
*
@@ -27,25 +27,19 @@
*/
/**
- @file HsW01.h
- @brief Implementation of the HsW01 class.
+ @file HoverGun.h
+ @brief Implementation of the HoverGun class.
*/
#include "HoverGun.h"
#include "core/CoreIncludes.h"
-#include "core/XMLPort.h"
-#include "core/command/Executor.h"
-
-#include "graphics/Model.h"
#include "weaponsystem/Weapon.h"
#include "weaponsystem/WeaponPack.h"
#include "weaponsystem/WeaponSystem.h"
-#include "worldentities/WorldEntity.h"
#include "worldentities/pawns/Pawn.h"
#include "weapons/projectiles/HoverGunProjectile.h"
-#include "weapons/MuzzleFlash.h"
namespace orxonox
{
@@ -55,21 +49,14 @@
{
RegisterObject(HoverGun);
- this->reloadTime_ = 0.25f;
- this->damage_ = 0.0f; //default 15
+ this->reloadTime_ = 1.0f;
+ this->damage_ = 0.0f;
this->speed_ = 750.0f;
- this->delay_ = 0.0f;
- this->setMunitionName("LaserMunition");
- this->mesh_ = "laserbeam.mesh";
+ this->setMunitionName("HoverMunition");
+ this->setFireSound("sounds/Weapon_HoverGun.ogg");
- this->delayTimer_.setTimer(this->delay_, false, createExecutor(createFunctor(&HoverGun::shot, this)));
- this->delayTimer_.stopTimer();
-
- this->setFireSound("sounds/Weapon_HsW01.ogg");
- this->setReloadSound("sounds/Reload_HsW01.ogg", 0.5);
-
- hudImageString_ = "Orxonox/WSHUD_WM_HsW01";
+ hudImageString_ = "Orxonox/WSHUD_WM_HoverGun";
}
HoverGun::~HoverGun()
@@ -76,48 +63,14 @@
{
}
- void HoverGun::XMLPort(Element& xmlelement, XMLPort::Mode mode)
- {
- SUPER(HoverGun, XMLPort, xmlelement, mode);
-
- XMLPortParam(HoverGun, "delay", setDelay, getDelay, xmlelement, mode);
- XMLPortParam(HoverGun, "material", setMaterial, getMaterial, xmlelement, mode);
- XMLPortParam(HoverGun, "projectileMesh", setMesh, getMesh, xmlelement, mode);
- XMLPortParam(HoverGun, "sound", setSound, getSound, xmlelement, mode);
- }
-
/**
@brief
- Set the firing delay.
- @param delay
- The firing delay in seconds.
- */
- void HoverGun::setDelay(float delay)
- {
- this->delay_ = delay;
- this->delayTimer_.setInterval(this->delay_);
- }
-
- // void HoverGun::fire()
- // {
- // this->delayTimer_.startTimer();
- // }
-
- /**
- @brief
Fires the weapon. Creates a projectile and fires it.
*/
void HoverGun::fire()
{
- assert( this->getWeapon() && this->getWeapon()->getWeaponPack() && this->getWeapon()->getWeaponPack()->getWeaponSystem() && this->getWeapon()->getWeaponPack()->getWeaponSystem()->getPawn() );
-
- // Create the projectile.
HoverGunProjectile* projectile = new HoverGunProjectile(this->getContext());
- Model* model = new Model(HoverGunprojectile->getContext());
- model->setMeshSource(mesh_);
- model->setCastShadows(false);
- projectile->attach(model);
- model->setScale(5);
+ projectile->setMaterial("Flares/HoverBall_");
this->computeMuzzleParameters(this->getWeapon()->getWeaponPack()->getWeaponSystem()->getPawn()->getAimPosition());
projectile->setOrientation(this->getMuzzleOrientation());
@@ -128,20 +81,5 @@
projectile->setDamage(this->getDamage());
projectile->setShieldDamage(this->getShieldDamage());
projectile->setHealthDamage(this->getHealthDamage());
-
- // Display the muzzle flash.
- // this->HoverGun::muzzleflash();
}
-
- /**
- @brief
- Displays the muzzle flash.
- */
- // void HoverGun::muzzleflash()
- // {
- // MuzzleFlash *muzzleFlash = new MuzzleFlash(this->getContext());
- // this->getWeapon()->attach(muzzleFlash);
- // muzzleFlash->setPosition(this->getMuzzleOffset());
- // muzzleFlash->setMaterial(this->material_);
- // }
}
Modified: code/branches/Boxhead_FS19/src/modules/weapons/weaponmodes/HoverGun.h
===================================================================
--- code/branches/Boxhead_FS19/src/modules/weapons/weaponmodes/HoverGun.h 2019-04-04 13:33:04 UTC (rev 12272)
+++ code/branches/Boxhead_FS19/src/modules/weapons/weaponmodes/HoverGun.h 2019-04-04 13:51:04 UTC (rev 12273)
@@ -20,7 +20,7 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*
* Author:
- * Hagen Seifert
+ * Joel Smely
* Co-authors:
* ...
*
@@ -35,8 +35,6 @@
#define _HoverGun_H__
#include "weapons/WeaponsPrereqs.h"
-
-#include "tools/Timer.h"
#include "weaponsystem/WeaponMode.h"
namespace orxonox
@@ -44,9 +42,9 @@
/**
@brief
- Shoots laser beams.
+ A slow ball of lightning.
@author
- Hagen Seifert
+ Joel Smely
@ingroup WeaponsWeaponModes
*/
class _WeaponsExport HoverGun : public WeaponMode
@@ -56,71 +54,10 @@
virtual ~HoverGun();
virtual void fire() override;
- virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode) override;
- protected:
- /**
- @brief Set the mesh.
- @param mesh The mesh name.
- */
- void setMesh(const std::string& mesh)
- { this->mesh_ = mesh; }
-
- /**
- @brief Get the mesh.
- @return Returns the mesh name.
- */
- const std::string& getMesh() const
- { return this->mesh_; }
-
- /**
- @brief Set the sound.
- @param sound The Sound name.
- */
- void setSound(const std::string& sound)
- { this->sound_ = sound; }
-
- /**
- @brief Get the sound.
- @return Returns the sound name.
- */
- const std::string& getSound() const
- { return this->sound_; }
-
- /**
- @brief Set the material.
- @param material The material name.
- */
- void setMaterial(const std::string& material)
- { this->material_ = material; }
- /**
- @brief Get the material.
- @return Returns the material name.
- */
- const std::string& getMaterial() const
- { return this->material_; }
-
- void setDelay(float delay);
- /**
- @brief Get the firing delay.
- @return Returns the firing delay in seconds.
- */
- float getDelay() const
- { return this->delay_; }
-
- virtual void shot();
- void muzzleflash();
-
- std::string material_; //!< The material.
- std::string mesh_; //!< The mesh.
- std::string sound_; //!< The sound.
-
-
-
+ private:
float speed_; //!< The speed of the fired projectile.
- float delay_; //!< The firing delay.
- Timer delayTimer_; //!< A timer to delay the firing.
};
}
-#endif /* HoverGun */
+#endif /* _HoverGun_H__ */
More information about the Orxonox-commit
mailing list