about summary refs log tree commit diff
path: root/src/game/server/entities/laser.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/game/server/entities/laser.hpp')
-rw-r--r--src/game/server/entities/laser.hpp31
1 files changed, 31 insertions, 0 deletions
diff --git a/src/game/server/entities/laser.hpp b/src/game/server/entities/laser.hpp
new file mode 100644
index 00000000..4842b3f8
--- /dev/null
+++ b/src/game/server/entities/laser.hpp
@@ -0,0 +1,31 @@
+/* copyright (c) 2007 magnus auvinen, see licence.txt for more info */
+
+#ifndef GAME_SERVER_ENTITY_LASER_H
+#define GAME_SERVER_ENTITY_LASER_H
+
+#include <game/server/entity.hpp>
+
+class CHARACTER;
+
+class LASER : public ENTITY
+{
+	vec2 from;
+	vec2 dir;
+	float energy;
+	int bounces;
+	int eval_tick;
+	CHARACTER *owner;
+	
+	bool hit_character(vec2 from, vec2 to);
+	void do_bounce();
+	
+public:
+	
+	LASER(vec2 pos, vec2 direction, float start_energy, CHARACTER *owner);
+	
+	virtual void reset();
+	virtual void tick();
+	virtual void snap(int snapping_client);
+};
+
+#endif