Starshatter_Open
Open source Starshatter engine
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
Drone.h
Go to the documentation of this file.
1 /* Project Starshatter 4.5
2  Destroyer Studios LLC
3  Copyright © 1997-2004. All Rights Reserved.
4 
5  SUBSYSTEM: Stars.exe
6  FILE: Drone.h
7  AUTHOR: John DiCamillo
8 
9 
10  OVERVIEW
11  ========
12  Decoy / Weapons Drone class
13 */
14 
15 #ifndef Drone_h
16 #define Drone_h
17 
18 #include "Types.h"
19 #include "Geometry.h"
20 #include "Shot.h"
21 
22 // +--------------------------------------------------------------------+
23 
24 class Camera;
25 class Ship;
26 class Trail;
27 class System;
28 class WeaponDesign;
29 class Sprite3D;
30 class Sound;
31 
32 // +--------------------------------------------------------------------+
33 
34 class Drone : public Shot
35 {
36 public:
37  static const char* TYPENAME() { return "Drone"; }
38 
39  Drone(const Point& pos, const Camera& cam, WeaponDesign* design, const Ship* ship=0);
40  virtual ~Drone();
41 
42  virtual void SeekTarget(SimObject* target, System* sub=0);
43  virtual void ExecFrame(double factor);
44 
45  virtual bool IsDrone() const { return true; }
46  virtual bool IsDecoy() const { return decoy_type != 0; }
47  virtual bool IsProbe() const { return probe?true:false; }
48 
49  virtual void Disarm();
50  virtual void Destroy();
51 
52  // SENSORS AND VISIBILITY:
53  virtual double PCS() const;
54  virtual double ACS() const;
55  virtual const char* ClassName() const;
56  virtual int Class() const;
57 
58  // DAMAGE RESOLUTION:
59  void SetLife(int seconds) { life = seconds; }
60  virtual int HitBy(Shot* shot, Point& impact);
61 
62 protected:
63  int iff_code;
65  int probe;
66 };
67 
68 #endif Drone_h
69