]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blob - qcsrc/server/vehicles/bumblebee.qc
Merge remote-tracking branch 'origin/master' into tzork/vehicles-2
[xonotic/xonotic-data.pk3dir.git] / qcsrc / server / vehicles / bumblebee.qc
1 // Auto cvars
2 float autocvar_g_vehicle_bumblebee_speed_forward;
3 float autocvar_g_vehicle_bumblebee_speed_strafe;
4 float autocvar_g_vehicle_bumblebee_turnspeed;
5 float autocvar_g_vehicle_bumblebee_pitchspeed;
6 float autocvar_g_vehicle_bumblebee_friction;
7
8 float autocvar_g_vehicle_bumblebee_energy;
9 float autocvar_g_vehicle_bumblebee_energy_regen;
10 float autocvar_g_vehicle_bumblebee_energy_regen_pause;
11
12 float autocvar_g_vehicle_bumblebee_health;
13 float autocvar_g_vehicle_bumblebee_health_regen;
14 float autocvar_g_vehicle_bumblebee_health_regen_pause;
15
16 float autocvar_g_vehicle_bumblebee_shield;
17 float autocvar_g_vehicle_bumblebee_shield_regen;
18 float autocvar_g_vehicle_bumblebee_shield_regen_pause;
19
20 float autocvar_g_vehicle_bumblebee_cannon_cost;
21 float autocvar_g_vehicle_bumblebee_cannon_damage;
22 float autocvar_g_vehicle_bumblebee_cannon_radius;
23 float autocvar_g_vehicle_bumblebee_cannon_refire;
24 float autocvar_g_vehicle_bumblebee_cannon_speed;
25 float autocvar_g_vehicle_bumblebee_cannon_spread;
26 float autocvar_g_vehicle_bumblebee_cannon_force;
27
28 float autocvar_g_vehicle_bumblebee_respawntime;
29
30 float autocvar_g_vehicle_bumblebee_blowup_radius;
31 float autocvar_g_vehicle_bumblebee_blowup_coredamage;
32 float autocvar_g_vehicle_bumblebee_blowup_edgedamage;
33 float autocvar_g_vehicle_bumblebee_blowup_forceintensity;
34
35
36 #define BUMB_MIN '-120 -120 -40'
37 #define BUMB_MAX '120 120 40'
38
39 .entity gunner1;
40 .entity gunner2;
41
42 float bumb_frame()
43 {
44     entity pilot, gunner, vehic;
45
46
47     return 1;
48 }
49
50 void bumb_think()
51 {
52 }
53
54 void bumb_enter()
55 {
56 }
57
58 void bumb_exit(float eject)
59 {
60 }
61
62 void bumb_spawn()
63 {    
64     self.movetype = MOVETYPE_FLY;
65     setorigin(self, self.origin + '0 0 150');
66 }
67
68 void bumb_die()
69 {
70     self.health       = 0;
71     self.event_damage = SUB_Null;
72     self.iscreature   = FALSE;
73     self.solid        = SOLID_CORPSE;
74     self.takedamage   = DAMAGE_NO;
75     self.deadflag     = DEAD_DYING;
76     self.movetype     = MOVETYPE_BOUNCE;
77
78     pointparticles(particleeffectnum("rocket_explode"), findbetterlocation (self.origin, 16), '0 0 0', 1);
79 }
80
81 void bumb_dinit()
82 {
83     if not (vehicle_initialize(
84              "Bumblebee",
85              "models/vehicles/bumblebee_body.dpm",
86              "",
87              "models/vehicles/wakizashi_cockpit.dpm",
88              "", "", "tag_viewport",
89              HUD_WAKIZASHI,
90              BUMB_MIN, BUMB_MAX,
91              FALSE,
92              bumb_spawn, autocvar_g_vehicle_bumblebee_respawntime,
93              bumb_frame,
94              bumb_enter, bumb_exit,
95              bumb_die,   bumb_think))
96     {
97         remove(self);
98         return;
99     }
100     self.gun1 = spawn();
101     self.gun2 = spawn();
102     setmodel(self.gun1, "models/vehicles/bumblebee_plasma_left.dpm");
103     setmodel(self.gun2, "models/vehicles/bumblebee_plasma_right.dpm");
104     setattachment(self.gun1, self, "tag_hardpoint02");
105     setattachment(self.gun2, self, "tag_hardpoint01");
106 }
107
108 void spawnfunc_vehicle_bumblebee()
109 {
110
111     precache_model ("models/vehicles/bumblebee_body.dpm");
112     precache_model ("models/vehicles/bumblebee_plasma_left.dpm");
113     precache_model ("models/vehicles/bumblebee_plasma_right.dpm");
114     precache_model ("models/vehicles/bumblebee_ray.dpm");
115
116     //vehicles_configcheck("vehicle_bumblebee.cfg", autocvar_g_vehicle_bumblebee_health);
117     
118     if(autocvar_g_vehicle_bumblebee_energy)
119         if(autocvar_g_vehicle_bumblebee_energy_regen)
120             self.vehicle_flags |= VHF_ENERGYREGEN;
121
122     if(autocvar_g_vehicle_bumblebee_shield)
123         self.vehicle_flags |= VHF_HASSHIELD;
124
125     if(autocvar_g_vehicle_bumblebee_shield_regen)
126         self.vehicle_flags |= VHF_SHIELDREGEN;
127
128     if(autocvar_g_vehicle_bumblebee_health_regen)
129         self.vehicle_flags |= VHF_HEALTHREGEN;
130
131     self.think = bumb_dinit;
132     self.nextthink = time + 1;    
133 }