1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
|
/* This file is part of the Spring engine (GPL v2 or later), see LICENSE.html */
#ifndef LASER_PROJECTILE_H
#define LASER_PROJECTILE_H
#include "WeaponProjectile.h"
#include "Sim/Misc/DamageArray.h"
class CLaserProjectile : public CWeaponProjectile
{
CR_DECLARE(CLaserProjectile);
public:
CLaserProjectile(const float3& pos, const float3& speed, CUnit* owner,
float length, const float3& color, const float3& color2,
float intensity, const WeaponDef* weaponDef, int ttl = 1000);
virtual ~CLaserProjectile();
void Draw();
void Update();
void Collision(CUnit* unit);
void Collision(CFeature* feature);
void Collision();
int ShieldRepulse(CPlasmaRepulser* shield, float3 shieldPos, float shieldForce, float shieldMaxSpeed);
private:
float intensity;
float3 color;
float3 color2;
float length;
float curLength;
float speedf;
float intensityFalloff;
float midtexx;
/**
* Number of frames the laser had left to expand
* if it impacted before reaching full length.
*/
int stayTime;
};
#endif /* LASER_PROJECTILE_H */
|