]> icculus.org git repositories - divverent/nexuiz.git/blob - qcsrc/gamec/w_crylink.c
Got rid of third attack and replaced it with a zoom
[divverent/nexuiz.git] / qcsrc / gamec / w_crylink.c
1 void() crylink_ready_01;
2 void() crylink_fire1_01;
3 void() crylink_fire2_01;
4 void() crylink_deselect_01;
5 void() crylink_select_01;
6
7 float() crylink_check = 
8 {
9         if (self.ammo_cells > 0) 
10                 return TRUE; 
11         return FALSE;
12 };
13
14 void(float req) w_crylink =
15 {
16         if (req == WR_IDLE)
17                 crylink_ready_01();
18         else if (req == WR_FIRE1)
19                 weapon_prepareattack(crylink_check, crylink_check, crylink_fire1_01, 0.2);
20         else if (req == WR_FIRE2)
21                 weapon_prepareattack(crylink_check, crylink_check, crylink_fire2_01, 0.2);
22         else if (req == WR_RAISE)
23                 crylink_select_01();
24         else if (req == WR_UPDATECOUNTS)
25                 self.currentammo = self.ammo_cells;
26         else if (req == WR_DROP)
27                 crylink_deselect_01();
28         else if (req == WR_SETUP)
29                 weapon_setup(WEP_CRYLINK, "w_crylink.zym", IT_CELLS);
30         else if (req == WR_CHECKAMMO)
31                 weapon_hasammo = crylink_check();
32 };               
33
34
35 void W_Crylink_Touch (void)
36 {
37         self.event_damage = SUB_Null;
38         te_smallflash(self.origin);
39         RadiusDamage (self, self.owner, 45, 0, 3, world, 55, IT_CRYLINK);
40         remove (self);
41 }
42
43 void W_Crylink_Attack (void) //(float postion)
44 {
45         entity  proj;
46
47         sound (self, CHAN_WEAPON, "weapons/crylink2.wav", 1, ATTN_NORM);
48         
49         makevectors(self.v_angle);
50         proj = spawn ();
51         proj.owner = self;
52         proj.classname = "spike";
53
54         proj.movetype = MOVETYPE_FLY; 
55         proj.solid = SOLID_BBOX;
56         
57         setmodel (proj, "models/plasma.mdl");
58         setsize (proj, '0 0 0', '0 0 0');
59         setorigin (proj, self.origin + self.view_ofs + v_forward * 10 + v_right * 5 + v_up * -14);
60
61         proj.velocity = v_forward * 4000;
62         proj.velocity = proj.velocity + v_right * ( crandom() * 50 );
63         proj.velocity = proj.velocity + v_up * ( crandom() * 50 );
64         proj.touch = W_Crylink_Touch;
65         proj.think = SUB_Remove;
66         proj.nextthink = time + 9;
67
68         proj.glow_color = 10;
69         proj.glow_size = 30;
70
71         proj.effects = proj.effects | EF_ADDITIVE;
72
73         self.attack_finished = time + 0.20;
74         self.ammo_cells = self.ammo_cells - 0.2;
75 }
76
77 void W_Crylink_Attack2 (void)
78 {
79
80
81 }
82
83
84 // weapon frames 
85 void()  crylink_ready_01 =      {weapon_thinkf(WFRAME_IDLE, 0.1, crylink_ready_01); self.weaponentity.state = WS_READY;};
86 void()  crylink_select_01 =     {weapon_thinkf(-1, PLAYER_WEAPONSELECTION_DELAY, w_ready); weapon_boblayer1(PLAYER_WEAPONSELECTION_SPEED, '0 0 0');};
87 void()  crylink_deselect_01 =   {weapon_thinkf(-1, PLAYER_WEAPONSELECTION_DELAY, w_clear); weapon_boblayer1(PLAYER_WEAPONSELECTION_SPEED, PLAYER_WEAPONSELECTION_RANGE);};
88 void()  crylink_fire1_01 =      
89 {
90         weapon_doattack(crylink_check, crylink_check, W_Crylink_Attack);
91         weapon_thinkf(WFRAME_FIRE1, 0.15, crylink_ready_01);
92 };
93 void()  crylink_fire2_01 =      
94 {
95         weapon_doattack(crylink_check, crylink_check, W_Crylink_Attack);
96         weapon_thinkf(WFRAME_FIRE1, 0.15, crylink_ready_01);
97 };
98 void()  crylink_fire3_01 =      
99 {
100         weapon_doattack(crylink_check, crylink_check, W_Crylink_Attack);
101         weapon_thinkf(WFRAME_FIRE1, 0.15, crylink_ready_01);
102 };
103