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

Go to the source code of this file.

Functions

void bumble_raygun_draw (entity this)
bool bumble_raygun_send (entity this, entity to, float sf)
void bumblebee_fire_cannon (entity this, entity _gun, string _tagname, entity _owner)
 NET_HANDLE (ENT_CLIENT_BUMBLE_RAYGUN, bool isnew)

Variables

vector bumble_origin
float bumble_raygun_nextdraw

Function Documentation

◆ bumble_raygun_draw()

void bumble_raygun_draw ( entity this)

Definition at line 88 of file bumblebee_weapons.qc.

89{
90 float _len;
91 vector _dir;
92 vector _vtmp1, _vtmp2;
93
94 _len = vlen(this.origin - this.bumble_origin);
95 _dir = normalize(this.bumble_origin - this.origin);
96
98 {
99 entity eff = REGISTRY_GET(Effects, this.traileffect);
100 boxparticles(particleeffectnum(eff), this, this.origin, this.origin + _dir * -64, _dir * -_len , _dir * -_len, 1, PARTICLES_USEALPHA);
101 boxparticles(this.lip, this, this.bumble_origin, this.bumble_origin + _dir * -64, _dir * -200 , _dir * -200, 1, PARTICLES_USEALPHA);
102 this.bumble_raygun_nextdraw = time + 0.1;
103 }
104
105 float i, df, sz, al;
106 for(i = -0.1; i < 0.2; i += 0.1)
107 {
108 df = DRAWFLAG_NORMAL; //((random() < 0.5) ? DRAWFLAG_ADDITIVE : DRAWFLAG_SCREEN);
109 sz = 5 + random() * 5;
110 al = 0.25 + random() * 0.5;
111 _vtmp1 = this.origin + _dir * _len * (0.25 + i);
112 _vtmp1 += (randomvec() * (_len * 0.2) * (frametime * 2)); //this.raygun_l1;
113 Draw_CylindricLine(this.origin, _vtmp1, sz, "gfx/colors/white", 1, 1, this.colormod, al, df, view_origin);
114
115 _vtmp2 = this.origin + _dir * _len * (0.5 + i);
116 _vtmp2 += (randomvec() * (_len * 0.2) * (frametime * 5)); //this.raygun_l2;
117 Draw_CylindricLine(_vtmp1, _vtmp2, sz, "gfx/colors/white", 1, 1, this.colormod, al, df, view_origin);
118
119 _vtmp1 = this.origin + _dir * _len * (0.75 + i);
120 _vtmp1 += randomvec() * (_len * 0.2) * (frametime * 10); //this.raygun_l3;
121 Draw_CylindricLine(_vtmp2, _vtmp1, sz, "gfx/colors/white", 1, 1, this.colormod, al, df, view_origin);
122
123 Draw_CylindricLine(_vtmp1, this.bumble_origin + randomvec() * 32, sz, "gfx/colors/white", 1, 1, this.colormod, al, df, view_origin);
124 }
125}
vector bumble_origin
float bumble_raygun_nextdraw
var entity(vector mins, vector maxs,.entity tofield) findbox_tofield_OrFallback
vector colormod
Definition powerups.qc:21
vector view_origin
Definition main.qh:109
void Draw_CylindricLine(vector from, vector to, float thickness, string texture, float aspect, float shift, vector rgb, float theAlpha, float drawflag, vector vieworg)
Definition draw.qh:11
const float DRAWFLAG_NORMAL
float frametime
float time
vector origin
float PARTICLES_USEALPHA
#define particleeffectnum(e)
Definition effect.qh:3
float random(void)
float vlen(vector v)
vector randomvec(void)
vector normalize(vector v)
#define REGISTRY_GET(id, i)
Definition registry.qh:43
vector
Definition self.qh:92
float lip
Definition subs.qh:40

References bumble_origin, bumble_raygun_nextdraw, colormod, Draw_CylindricLine(), DRAWFLAG_NORMAL, entity(), frametime, lip, normalize(), origin, particleeffectnum, PARTICLES_USEALPHA, random(), randomvec(), REGISTRY_GET, time, vector, view_origin, and vlen().

Referenced by NET_HANDLE().

◆ bumble_raygun_send()

bool bumble_raygun_send ( entity this,
entity to,
float sf )

Definition at line 18 of file bumblebee_weapons.qc.

19{
20 WriteHeader(MSG_ENTITY, ENT_CLIENT_BUMBLE_RAYGUN);
21
23 if(sf & BRG_SETUP)
24 {
26 WriteByte(MSG_ENTITY, this.realowner.team);
28 }
29
30 if(sf & BRG_START)
31 {
32 WriteVector(MSG_ENTITY, this.hook_start);
33 }
34
35 if(sf & BRG_END)
36 {
37 WriteVector(MSG_ENTITY, this.hook_end);
38 }
39
40 return true;
41}
const float BRG_SETUP
Definition bumblebee.qc:9
const float BRG_START
Definition bumblebee.qc:10
const float BRG_END
Definition bumblebee.qc:11
float cnt
Definition powerups.qc:24
const int MSG_ENTITY
Definition net.qh:115
#define WriteHeader(to, id)
Definition net.qh:221
void WriteByte(float data, float dest, float desto)
#define etof(e)
Definition misc.qh:25
vector hook_start
Definition hook.qc:80
vector hook_end
Definition hook.qc:80
entity realowner

References BRG_END, BRG_SETUP, BRG_START, cnt, entity(), etof, hook_end, hook_start, MSG_ENTITY, realowner, WriteByte(), and WriteHeader.

◆ bumblebee_fire_cannon()

void bumblebee_fire_cannon ( entity this,
entity _gun,
string _tagname,
entity _owner )

Definition at line 9 of file bumblebee_weapons.qc.

10{
11 vector v = gettaginfo(_gun, gettagindex(_gun, _tagname));
12 vehicles_projectile(this, EFFECT_BIGPLASMA_MUZZLEFLASH, SND_VEH_BUMBLEBEE_FIRE,
15 DEATH_VH_BUMB_GUN.m_id, PROJECTILE_BUMBLE_GUN, 0, true, true, _owner);
16}
float autocvar_g_vehicle_bumblebee_cannon_speed
float autocvar_g_vehicle_bumblebee_cannon_radius
float autocvar_g_vehicle_bumblebee_cannon_damage
float autocvar_g_vehicle_bumblebee_cannon_force
float autocvar_g_vehicle_bumblebee_cannon_spread
vector v_forward
#define gettagindex
#define gettaginfo
Definition post.qh:32
const int PROJECTILE_BUMBLE_GUN
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)

References autocvar_g_vehicle_bumblebee_cannon_damage, autocvar_g_vehicle_bumblebee_cannon_force, autocvar_g_vehicle_bumblebee_cannon_radius, autocvar_g_vehicle_bumblebee_cannon_speed, autocvar_g_vehicle_bumblebee_cannon_spread, entity(), gettagindex, gettaginfo, normalize(), PROJECTILE_BUMBLE_GUN, randomvec(), v_forward, vector, and vehicles_projectile().

Referenced by bumblebee_gunner_frame().

◆ NET_HANDLE()

NET_HANDLE ( ENT_CLIENT_BUMBLE_RAYGUN ,
bool isnew )

Definition at line 51 of file bumblebee_weapons.qc.

52{
53 int sf = ReadByte();
54
55 if(sf & BRG_SETUP)
56 {
57 this.cnt = ReadByte();
58 this.team = ReadByte();
59 this.count = ReadByte();
60
61 if(this.count)
62 this.colormod = '1 0 0';
63 else
64 this.colormod = '0 1 0';
65
66 this.traileffect = EFFECT_BUMBLEBEE_HEAL_MUZZLEFLASH.m_id;
67 this.lip = particleeffectnum(EFFECT_BUMBLEBEE_HEAL_IMPACT);
68
69 this.draw = bumble_raygun_draw;
70 if (isnew) IL_PUSH(g_drawables, this);
71 }
72
73
74 if(sf & BRG_START)
75 {
76 this.origin = ReadVector();
77 setorigin(this, this.origin);
78 }
79
80 if(sf & BRG_END)
81 {
83 }
84 return true;
85}
void bumble_raygun_draw(entity this)
float count
Definition powerups.qc:22
IntrusiveList g_drawables
Definition main.qh:91
int team
Definition main.qh:188
ERASEABLE entity IL_PUSH(IntrusiveList this, entity it)
Push to tail.
#define ReadVector()
Definition net.qh:367
int ReadByte()

References BRG_END, BRG_SETUP, BRG_START, bumble_origin, bumble_raygun_draw(), cnt, colormod, count, g_drawables, IL_PUSH(), lip, origin, particleeffectnum, ReadByte(), ReadVector, and team.

Variable Documentation

◆ bumble_origin

vector bumble_origin

Definition at line 49 of file bumblebee_weapons.qc.

Referenced by bumble_raygun_draw(), and NET_HANDLE().

◆ bumble_raygun_nextdraw

float bumble_raygun_nextdraw

Definition at line 87 of file bumblebee_weapons.qc.

Referenced by bumble_raygun_draw().