]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/common/weapons/w_electro.qc
Clean up SetupProjectileVelocity a little bit
[xonotic/xonotic-data.pk3dir.git] / qcsrc / common / weapons / w_electro.qc
index 5b30a65dcf670a0c141f4b44b7a63534295a1185..352e4eeae5d282c325f10eefb3eb1f3fc2345d5c 100644 (file)
@@ -6,6 +6,7 @@ REGISTER_WEAPON(
 /* impulse  */ 5,
 /* flags    */ WEP_FLAG_NORMAL | WEP_FLAG_RELOADABLE | WEP_TYPE_SPLASH,
 /* rating   */ BOT_PICKUP_RATING_MID,
+/* color       */ '0 0.5 1',
 /* model    */ "electro",
 /* netname  */ "electro",
 /* fullname */ _("Electro")
@@ -13,38 +14,38 @@ REGISTER_WEAPON(
 
 #define ELECTRO_SETTINGS(w_cvar,w_prop) ELECTRO_SETTINGS_LIST(w_cvar, w_prop, ELECTRO, electro)
 #define ELECTRO_SETTINGS_LIST(w_cvar,w_prop,id,sn) \
-       w_cvar(id, sn, MO_BOTH, ammo) \
-       w_cvar(id, sn, MO_BOTH, animtime) \
-       w_cvar(id, sn, MO_BOTH, damage) \
-       w_cvar(id, sn, MO_BOTH, edgedamage) \
-       w_cvar(id, sn, MO_BOTH, force) \
-       w_cvar(id, sn, MO_BOTH, radius) \
-       w_cvar(id, sn, MO_BOTH, refire) \
-       w_cvar(id, sn, MO_BOTH, speed) \
-       w_cvar(id, sn, MO_BOTH, spread) \
-       w_cvar(id, sn, MO_BOTH, lifetime) \
-       w_cvar(id, sn, MO_PRI,  comboradius) \
-       w_cvar(id, sn, MO_PRI,  midaircombo_explode) \
-       w_cvar(id, sn, MO_PRI,  midaircombo_interval) \
-       w_cvar(id, sn, MO_PRI,  midaircombo_radius) \
-       w_cvar(id, sn, MO_SEC,  bouncefactor) \
-       w_cvar(id, sn, MO_SEC,  bouncestop) \
-       w_cvar(id, sn, MO_SEC,  count) \
-       w_cvar(id, sn, MO_SEC,  damageforcescale) \
-       w_cvar(id, sn, MO_SEC,  damagedbycontents) \
-       w_cvar(id, sn, MO_SEC,  health) \
-       w_cvar(id, sn, MO_SEC,  refire2) \
-       w_cvar(id, sn, MO_SEC,  speed_up) \
-       w_cvar(id, sn, MO_SEC,  speed_z) \
-       w_cvar(id, sn, MO_SEC,  touchexplode) \
-       w_cvar(id, sn, MO_NONE, combo_comboradius) \
-       w_cvar(id, sn, MO_NONE, combo_comboradius_thruwall) \
-       w_cvar(id, sn, MO_NONE, combo_damage) \
-       w_cvar(id, sn, MO_NONE, combo_edgedamage) \
-       w_cvar(id, sn, MO_NONE, combo_force) \
-       w_cvar(id, sn, MO_NONE, combo_radius) \
-       w_cvar(id, sn, MO_NONE, combo_speed) \
-       w_cvar(id, sn, MO_NONE, combo_safeammocheck) \
+       w_cvar(id, sn, BOTH, ammo) \
+       w_cvar(id, sn, BOTH, animtime) \
+       w_cvar(id, sn, BOTH, damage) \
+       w_cvar(id, sn, BOTH, edgedamage) \
+       w_cvar(id, sn, BOTH, force) \
+       w_cvar(id, sn, BOTH, radius) \
+       w_cvar(id, sn, BOTH, refire) \
+       w_cvar(id, sn, BOTH, speed) \
+       w_cvar(id, sn, BOTH, spread) \
+       w_cvar(id, sn, BOTH, lifetime) \
+       w_cvar(id, sn, PRI,  comboradius) \
+       w_cvar(id, sn, PRI,  midaircombo_explode) \
+       w_cvar(id, sn, PRI,  midaircombo_interval) \
+       w_cvar(id, sn, PRI,  midaircombo_radius) \
+       w_cvar(id, sn, SEC,  bouncefactor) \
+       w_cvar(id, sn, SEC,  bouncestop) \
+       w_cvar(id, sn, SEC,  count) \
+       w_cvar(id, sn, SEC,  damageforcescale) \
+       w_cvar(id, sn, SEC,  damagedbycontents) \
+       w_cvar(id, sn, SEC,  health) \
+       w_cvar(id, sn, SEC,  refire2) \
+       w_cvar(id, sn, SEC,  speed_up) \
+       w_cvar(id, sn, SEC,  speed_z) \
+       w_cvar(id, sn, SEC,  touchexplode) \
+       w_cvar(id, sn, NONE, combo_comboradius) \
+       w_cvar(id, sn, NONE, combo_comboradius_thruwall) \
+       w_cvar(id, sn, NONE, combo_damage) \
+       w_cvar(id, sn, NONE, combo_edgedamage) \
+       w_cvar(id, sn, NONE, combo_force) \
+       w_cvar(id, sn, NONE, combo_radius) \
+       w_cvar(id, sn, NONE, combo_speed) \
+       w_cvar(id, sn, NONE, combo_safeammocheck) \
        w_prop(id, sn, float,  reloading_ammo, reload_ammo) \
        w_prop(id, sn, float,  reloading_time, reload_time) \
        w_prop(id, sn, float,  switchdelay_raise, switchdelay_raise) \
@@ -241,7 +242,7 @@ void W_Electro_Attack_Bolt(void)
 {
        entity proj;
 
-       W_DecreaseAmmo(ammo_cells, WEP_CVAR_PRI(electro, ammo), autocvar_g_balance_electro_reload_ammo);//weapontodo
+       W_DecreaseAmmo(WEP_CVAR_PRI(electro, ammo));
 
        W_SetupShot_ProjectileSize(self, '0 0 -3', '0 0 -3', FALSE, 2, "weapons/electro_fire.wav", CH_WEAPON_A, WEP_CVAR_PRI(electro, damage));
 
@@ -261,7 +262,7 @@ void W_Electro_Attack_Bolt(void)
        setorigin(proj, w_shotorg);
 
        proj.movetype = MOVETYPE_FLY;
-       WEP_SETUPPROJVELOCITY_PRI(proj, electro);
+       WEP_SPV_PRI(proj, electro);
        proj.angles = vectoangles(proj.velocity);
        proj.touch = W_Electro_TouchExplode;
        setsize(proj, '0 0 -3', '0 0 -3');
@@ -330,7 +331,7 @@ void W_Electro_Orb_Damage(entity inflictor, entity attacker, float damage, float
 
 void W_Electro_Attack_Orb(void)
 {
-       W_DecreaseAmmo(ammo_cells, WEP_CVAR_SEC(electro, ammo), autocvar_g_balance_electro_reload_ammo);//weapontodo
+       W_DecreaseAmmo(WEP_CVAR_SEC(electro, ammo));
 
        W_SetupShot_ProjectileSize(self, '0 0 -4', '0 0 -4', FALSE, 2, "weapons/electro_fire2.wav", CH_WEAPON_A, WEP_CVAR_SEC(electro, damage));
 
@@ -353,7 +354,7 @@ void W_Electro_Attack_Orb(void)
        //proj.glow_size = 50;
        //proj.glow_color = 45;
        proj.movetype = MOVETYPE_BOUNCE;
-       WEP_SETUPPROJVELOCITY_UP_SEC(proj, electro);
+       WEP_SPV_UP_SEC(proj, electro);
        proj.touch = W_Electro_Orb_Touch;
        setsize(proj, '0 0 -4', '0 0 -4');
        proj.takedamage = DAMAGE_YES;
@@ -485,14 +486,9 @@ float W_Electro(float req)
                        ELECTRO_SETTINGS(WEP_SKIPCVAR, WEP_SET_PROP)
                        return TRUE;
                }
-               case WR_SETUP:
-               {
-                       self.current_ammo = ammo_cells;
-                       return TRUE;
-               }
                case WR_CHECKAMMO1:
                {
-                       ammo_amount = self.ammo_cells >= WEP_CVAR_PRI(electro, ammo);
+                       ammo_amount = self.AMMO_VAL(WEP_ELECTRO) >= WEP_CVAR_PRI(electro, ammo);
                        ammo_amount += self.(weapon_load[WEP_ELECTRO]) >= WEP_CVAR_PRI(electro, ammo);
                        return ammo_amount;
                }
@@ -500,12 +496,12 @@ float W_Electro(float req)
                {
                        if(WEP_CVAR(electro, combo_safeammocheck)) // true if you can fire at least one secondary blob AND one primary shot after it, otherwise false.
                        {
-                               ammo_amount = self.ammo_cells >= WEP_CVAR_SEC(electro, ammo) + WEP_CVAR_PRI(electro, ammo);
+                               ammo_amount = self.AMMO_VAL(WEP_ELECTRO) >= WEP_CVAR_SEC(electro, ammo) + WEP_CVAR_PRI(electro, ammo);
                                ammo_amount += self.(weapon_load[WEP_ELECTRO]) >= WEP_CVAR_SEC(electro, ammo) + WEP_CVAR_PRI(electro, ammo);
                        }
                        else
                        {
-                               ammo_amount = self.ammo_cells >= WEP_CVAR_SEC(electro, ammo);
+                               ammo_amount = self.AMMO_VAL(WEP_ELECTRO) >= WEP_CVAR_SEC(electro, ammo);
                                ammo_amount += self.(weapon_load[WEP_ELECTRO]) >= WEP_CVAR_SEC(electro, ammo);
                        }
                        return ammo_amount;