Xonotic QuakeC
The free, fast arena FPS with crisp movement and a wide array of weapons
spiderbot_weapons.qh File Reference
Include dependency graph for spiderbot_weapons.qh:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

void spiderbot_rocket_do (entity this)

Variables

int autocvar_g_vehicle_spiderbot_minigun_ammo_cost = 1
int autocvar_g_vehicle_spiderbot_minigun_ammo_max = 100
int autocvar_g_vehicle_spiderbot_minigun_ammo_regen = 40
float autocvar_g_vehicle_spiderbot_minigun_ammo_regen_pause = 1
float autocvar_g_vehicle_spiderbot_minigun_damage = 16
float autocvar_g_vehicle_spiderbot_minigun_force = 9
float autocvar_g_vehicle_spiderbot_minigun_refire = 0.06
float autocvar_g_vehicle_spiderbot_minigun_solidpenetration = 32
float autocvar_g_vehicle_spiderbot_minigun_spread = 0.012
float autocvar_g_vehicle_spiderbot_rocket_damage = 50
float autocvar_g_vehicle_spiderbot_rocket_force = 150
float autocvar_g_vehicle_spiderbot_rocket_health = 100
float autocvar_g_vehicle_spiderbot_rocket_lifetime = 20
float autocvar_g_vehicle_spiderbot_rocket_noise = 0.2
float autocvar_g_vehicle_spiderbot_rocket_radius = 250
float autocvar_g_vehicle_spiderbot_rocket_refire = 0.1
float autocvar_g_vehicle_spiderbot_rocket_refire2 = 0.025
float autocvar_g_vehicle_spiderbot_rocket_reload = 4
float autocvar_g_vehicle_spiderbot_rocket_speed = 3500
float autocvar_g_vehicle_spiderbot_rocket_spread = 0.05
float autocvar_g_vehicle_spiderbot_rocket_turnrate = 0.25

Function Documentation

◆ spiderbot_rocket_do()

void spiderbot_rocket_do ( entity this)

Definition at line 137 of file spiderbot_weapons.qc.

138{
139 vector v;
140 entity rocket = NULL;
141
142 if (this.wait != -10)
143 {
144 if (PHYS_INPUT_BUTTON_ATCK2(this.owner) && STAT(VEHICLESTAT_W2MODE, this) == SBRM_GUIDE)
145 {
146 if (this.wait == 1)
147 if (this.tur_head.frame == 9 || this.tur_head.frame == 1)
148 {
149 if(this.gun2.cnt < time && this.tur_head.frame == 9)
150 this.tur_head.frame = 1;
151
152 return;
153 }
154 this.wait = 1;
155 }
156 else
157 {
158 if(this.wait)
160
161 this.wait = 0;
162 }
163 }
164
165 if(this.gun2.cnt > time)
166 return;
167
168 if (this.tur_head.frame >= 9)
169 {
170 this.tur_head.frame = 1;
171 this.wait = 0;
172 }
173
174 if(this.wait != -10)
176 return;
177
178 if(weaponLocked(this.owner) || weaponUseForbidden(this.owner))
179 return;
180
181 v = gettaginfo(this.tur_head,gettagindex(this.tur_head,"tag_fire"));
182
183 switch(STAT(VEHICLESTAT_W2MODE, this))
184 {
185 case SBRM_VOLLY:
186 rocket = vehicles_projectile(this, EFFECT_SPIDERBOT_ROCKETLAUNCH, SND_VEH_SPIDERBOT_ROCKET_FIRE,
189 DEATH_VH_SPID_ROCKET.m_id, PROJECTILE_SPIDERROCKET, autocvar_g_vehicle_spiderbot_rocket_health, false, true, this.owner);
193 rocket.nextthink = time + (_dist / autocvar_g_vehicle_spiderbot_rocket_speed);
195
196 if(PHYS_INPUT_BUTTON_ATCK2(this.owner) && this.tur_head.frame == 1)
197 this.wait = -10;
198 break;
199 case SBRM_GUIDE:
200 rocket = vehicles_projectile(this, EFFECT_SPIDERBOT_ROCKETLAUNCH, SND_VEH_SPIDERBOT_ROCKET_FIRE,
203 DEATH_VH_SPID_ROCKET.m_id, PROJECTILE_SPIDERROCKET, autocvar_g_vehicle_spiderbot_rocket_health, false, false, this.owner);
205 rocket.pos1 = trace_endpos;
206 rocket.nextthink = time;
208
209
210 break;
211 case SBRM_ARTILLERY:
212 rocket = vehicles_projectile(this, EFFECT_SPIDERBOT_ROCKETLAUNCH, SND_VEH_SPIDERBOT_ROCKET_FIRE,
215 DEATH_VH_SPID_ROCKET.m_id, PROJECTILE_SPIDERROCKET, autocvar_g_vehicle_spiderbot_rocket_health, false, true, this.owner);
216
218
220 rocket.pos1_z = trace_endpos_z;
221
222 traceline(v, v + '0 0 1' * max_shot_distance, MOVE_WORLDONLY, this);
223 float h1 = 0.75 * vlen(v - trace_endpos);
224
225 //v = trace_endpos;
226 traceline(v , rocket.pos1 + '0 0 1' * max_shot_distance, MOVE_WORLDONLY, this);
227 float h2 = 0.75 * vlen(rocket.pos1 - v);
228
229 rocket.velocity = spiberbot_calcartillery(v, rocket.pos1, ((h1 < h2) ? h1 : h2));
231 rocket.gravity = 1;
232 //setthink(rocket, spiderbot_rocket_artillery);
233 break;
234 }
235 rocket.classname = "spiderbot_rocket";
236
238
239 this.tur_head.frame += 1;
240 if (this.tur_head.frame == 9)
242 else
244
245 this.gun2.cnt = time + this.attack_finished_single[0];
246}
var entity(vector mins, vector maxs,.entity tofield) findbox_tofield_OrFallback
float wait
Definition items.qc:17
entity owner
Definition main.qh:87
#define PHYS_INPUT_BUTTON_ATCK2(s)
Definition player.qh:152
float time
vector trace_endpos
float MOVE_WORLDONLY
vector v_forward
#define gettagindex
#define STAT(...)
Definition stats.qh:82
float random(void)
float vlen(vector v)
vector randomvec(void)
vector normalize(vector v)
void set_movetype(entity this, int mt)
Definition movetypes.qc:4
const int MOVETYPE_TOSS
Definition movetypes.qh:135
#define NULL
Definition post.qh:14
#define gettaginfo
Definition post.qh:32
const int PROJECTILE_SPIDERROCKET
#define setthink(e, f)
vector
Definition self.qh:92
const int SBRM_VOLLY
Definition spiderbot.qc:12
const int SBRM_GUIDE
Definition spiderbot.qc:13
const int SBRM_ARTILLERY
Definition spiderbot.qc:14
vector spiberbot_calcartillery(vector org, vector tgt, float ht)
void spiderbot_rocket_guided(entity this)
void spiderbot_guide_release(entity this)
float autocvar_g_vehicle_spiderbot_rocket_speed
float autocvar_g_vehicle_spiderbot_rocket_lifetime
float autocvar_g_vehicle_spiderbot_rocket_force
float autocvar_g_vehicle_spiderbot_rocket_damage
float autocvar_g_vehicle_spiderbot_rocket_radius
float autocvar_g_vehicle_spiderbot_rocket_health
float autocvar_g_vehicle_spiderbot_rocket_spread
float autocvar_g_vehicle_spiderbot_rocket_refire2
float autocvar_g_vehicle_spiderbot_rocket_reload
float autocvar_g_vehicle_spiderbot_rocket_refire
entity tur_head
Definition sv_turrets.qh:28
entity vehicles_projectile(entity this, entity _mzlfx, Sound _mzlsound, vector _org, vector _vel, float _dmg, float _radi, float _force, float _size, int _deahtype, float _projtype, float _health, bool _cull, bool _clianim, entity _owner)
void vehicles_projectile_explode_think(entity this)
entity gun2
void crosshair_trace(entity pl)
Definition tracing.qc:549
int max_shot_distance
Definition weapon.qh:203
bool weaponUseForbidden(entity player)
bool weaponLocked(entity player)
float attack_finished_single[MAX_WEAPONSLOTS]

References attack_finished_single, autocvar_g_vehicle_spiderbot_rocket_damage, autocvar_g_vehicle_spiderbot_rocket_force, autocvar_g_vehicle_spiderbot_rocket_health, autocvar_g_vehicle_spiderbot_rocket_lifetime, autocvar_g_vehicle_spiderbot_rocket_radius, autocvar_g_vehicle_spiderbot_rocket_refire, autocvar_g_vehicle_spiderbot_rocket_refire2, autocvar_g_vehicle_spiderbot_rocket_reload, autocvar_g_vehicle_spiderbot_rocket_speed, autocvar_g_vehicle_spiderbot_rocket_spread, crosshair_trace(), entity(), gettagindex, gettaginfo, gun2, max_shot_distance, MOVE_WORLDONLY, MOVETYPE_TOSS, normalize(), NULL, owner, PHYS_INPUT_BUTTON_ATCK2, PROJECTILE_SPIDERROCKET, random(), randomvec(), SBRM_ARTILLERY, SBRM_GUIDE, SBRM_VOLLY, set_movetype(), setthink, spiberbot_calcartillery(), spiderbot_guide_release(), spiderbot_rocket_guided(), STAT, time, trace_endpos, tur_head, v_forward, vector, vehicles_projectile(), vehicles_projectile_explode_think(), vlen(), wait, weaponLocked(), and weaponUseForbidden().

Referenced by spiderbot_frame().

Variable Documentation

◆ autocvar_g_vehicle_spiderbot_minigun_ammo_cost

int autocvar_g_vehicle_spiderbot_minigun_ammo_cost = 1

Definition at line 14 of file spiderbot_weapons.qh.

Referenced by spiderbot_frame().

◆ autocvar_g_vehicle_spiderbot_minigun_ammo_max

int autocvar_g_vehicle_spiderbot_minigun_ammo_max = 100

Definition at line 15 of file spiderbot_weapons.qh.

Referenced by spiderbot_frame().

◆ autocvar_g_vehicle_spiderbot_minigun_ammo_regen

int autocvar_g_vehicle_spiderbot_minigun_ammo_regen = 40

Definition at line 16 of file spiderbot_weapons.qh.

Referenced by spiderbot_frame().

◆ autocvar_g_vehicle_spiderbot_minigun_ammo_regen_pause

float autocvar_g_vehicle_spiderbot_minigun_ammo_regen_pause = 1

Definition at line 17 of file spiderbot_weapons.qh.

Referenced by spiderbot_frame().

◆ autocvar_g_vehicle_spiderbot_minigun_damage

float autocvar_g_vehicle_spiderbot_minigun_damage = 16

Definition at line 11 of file spiderbot_weapons.qh.

Referenced by spiderbot_frame().

◆ autocvar_g_vehicle_spiderbot_minigun_force

float autocvar_g_vehicle_spiderbot_minigun_force = 9

Definition at line 18 of file spiderbot_weapons.qh.

Referenced by spiderbot_frame().

◆ autocvar_g_vehicle_spiderbot_minigun_refire

float autocvar_g_vehicle_spiderbot_minigun_refire = 0.06

Definition at line 12 of file spiderbot_weapons.qh.

Referenced by spiderbot_frame().

◆ autocvar_g_vehicle_spiderbot_minigun_solidpenetration

float autocvar_g_vehicle_spiderbot_minigun_solidpenetration = 32

Definition at line 19 of file spiderbot_weapons.qh.

Referenced by spiderbot_frame().

◆ autocvar_g_vehicle_spiderbot_minigun_spread

float autocvar_g_vehicle_spiderbot_minigun_spread = 0.012

Definition at line 13 of file spiderbot_weapons.qh.

Referenced by spiderbot_frame().

◆ autocvar_g_vehicle_spiderbot_rocket_damage

float autocvar_g_vehicle_spiderbot_rocket_damage = 50

Definition at line 21 of file spiderbot_weapons.qh.

Referenced by spiderbot_rocket_do().

◆ autocvar_g_vehicle_spiderbot_rocket_force

float autocvar_g_vehicle_spiderbot_rocket_force = 150

Definition at line 22 of file spiderbot_weapons.qh.

Referenced by spiderbot_rocket_do().

◆ autocvar_g_vehicle_spiderbot_rocket_health

float autocvar_g_vehicle_spiderbot_rocket_health = 100

Definition at line 30 of file spiderbot_weapons.qh.

Referenced by spiderbot_rocket_do().

◆ autocvar_g_vehicle_spiderbot_rocket_lifetime

float autocvar_g_vehicle_spiderbot_rocket_lifetime = 20

Definition at line 33 of file spiderbot_weapons.qh.

Referenced by spiderbot_rocket_do().

◆ autocvar_g_vehicle_spiderbot_rocket_noise

float autocvar_g_vehicle_spiderbot_rocket_noise = 0.2

Definition at line 31 of file spiderbot_weapons.qh.

Referenced by spiderbot_rocket_guided(), and spiderbot_rocket_unguided().

◆ autocvar_g_vehicle_spiderbot_rocket_radius

float autocvar_g_vehicle_spiderbot_rocket_radius = 250

Definition at line 23 of file spiderbot_weapons.qh.

Referenced by spiderbot_rocket_do().

◆ autocvar_g_vehicle_spiderbot_rocket_refire

float autocvar_g_vehicle_spiderbot_rocket_refire = 0.1

Definition at line 26 of file spiderbot_weapons.qh.

Referenced by spiderbot_rocket_do().

◆ autocvar_g_vehicle_spiderbot_rocket_refire2

float autocvar_g_vehicle_spiderbot_rocket_refire2 = 0.025

Definition at line 28 of file spiderbot_weapons.qh.

Referenced by spiderbot_rocket_do().

◆ autocvar_g_vehicle_spiderbot_rocket_reload

float autocvar_g_vehicle_spiderbot_rocket_reload = 4

Definition at line 29 of file spiderbot_weapons.qh.

Referenced by spiderbot_rocket_do().

◆ autocvar_g_vehicle_spiderbot_rocket_speed

float autocvar_g_vehicle_spiderbot_rocket_speed = 3500

◆ autocvar_g_vehicle_spiderbot_rocket_spread

float autocvar_g_vehicle_spiderbot_rocket_spread = 0.05

Definition at line 25 of file spiderbot_weapons.qh.

Referenced by spiderbot_rocket_do().

◆ autocvar_g_vehicle_spiderbot_rocket_turnrate

float autocvar_g_vehicle_spiderbot_rocket_turnrate = 0.25

Definition at line 32 of file spiderbot_weapons.qh.

Referenced by spiderbot_rocket_guided(), and spiderbot_rocket_unguided().