]> git.rm.cloudns.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
Improve weapon colors, and make HLAC green
authork9er <k9wolf@pm.me>
Mon, 13 Jan 2025 18:06:31 +0000 (18:06 +0000)
committerterencehill <piuntn@gmail.com>
Mon, 13 Jan 2025 18:06:31 +0000 (18:06 +0000)
57 files changed:
effectinfo.txt
gfx/hud/luma/ok_weapon_smg.tga
gfx/hud/luma/weaponarc.tga
gfx/hud/luma/weapongrenadelauncher.tga
gfx/hud/luma/weaponhagar.tga
gfx/hud/luma/weaponhlac.tga
gfx/hud/luma/weaponhook.tga
gfx/hud/luma/weaponminelayer.tga
gfx/hud/luma/weaponporto.tga
gfx/hud/luma/weaponrifle.tga
gfx/hud/luma/weaponseeker.tga
gfx/hud/luma/weapontuba.tga
gfx/hud/luma/weaponuzi.tga
models/hlac_bullet.tga
models/weapons/g_arc_luma.tga
models/weapons/g_campingrifle_luma.tga
models/weapons/g_gl_luma.tga
models/weapons/g_hagar_luma.tga
models/weapons/g_hlac_luma.tga
models/weapons/g_hookgun_luma.tga
models/weapons/g_minelayer_luma.tga
models/weapons/g_porto_luma.tga
models/weapons/g_seeker_luma.tga
models/weapons/g_tuba_luma.tga
models/weapons/g_uzi_luma.tga
qcsrc/common/effects/all.inc
qcsrc/common/effects/effectinfo.inc
qcsrc/common/mutators/mutator/overkill/okhmg.qh
qcsrc/common/mutators/mutator/overkill/okmachinegun.qh
qcsrc/common/mutators/mutator/overkill/oknex.qh
qcsrc/common/mutators/mutator/overkill/okrpc.qh
qcsrc/common/mutators/mutator/overkill/okshotgun.qh
qcsrc/common/weapons/weapon/arc.qh
qcsrc/common/weapons/weapon/blaster.qh
qcsrc/common/weapons/weapon/crylink.qh
qcsrc/common/weapons/weapon/devastator.qh
qcsrc/common/weapons/weapon/electro.qh
qcsrc/common/weapons/weapon/fireball.qh
qcsrc/common/weapons/weapon/hagar.qh
qcsrc/common/weapons/weapon/hlac.qc
qcsrc/common/weapons/weapon/hlac.qh
qcsrc/common/weapons/weapon/hook.qh
qcsrc/common/weapons/weapon/machinegun.qh
qcsrc/common/weapons/weapon/minelayer.qh
qcsrc/common/weapons/weapon/mortar.qh
qcsrc/common/weapons/weapon/porto.qh
qcsrc/common/weapons/weapon/rifle.qh
qcsrc/common/weapons/weapon/seeker.qh
qcsrc/common/weapons/weapon/shockwave.qh
qcsrc/common/weapons/weapon/shotgun.qh
qcsrc/common/weapons/weapon/tuba.qh
qcsrc/common/weapons/weapon/vaporizer.qh
qcsrc/common/weapons/weapon/vortex.qh
textures/projectiles/hlac_projectile_core.tga
textures/projectiles/hlac_projectile_core_glow.tga
textures/projectiles/hlac_projectile_long.tga
textures/projectiles/hlac_projectile_long_glow.tga

index 8e3230d66464afc4ed03dc3a49b79183b97737c2..1e5af3a25b405b47c6e6ec57809210dc16005a58 100644 (file)
@@ -5967,7 +5967,7 @@ effect damage_hlac
        type smoke
        airfriction -0.350000
        alpha 128 16 128
-       color 0x880000 0xff4400
+       color 0x008800 0x44ff00
        count 3
        notunderwater
        originjitter 4 4 4
@@ -8925,3 +8925,67 @@ effect item_despawn
        lightradiusfade 64
        lightcolor 1 0.75 0.36
        lightshadow 1
+effect hlac_muzzleflash
+       type smoke
+       airfriction 10
+       alpha 128 256 6280
+       color 0x00cc00 0x00ff00
+       countabsolute 1
+       lightcolor 0.4 0.8 0.2
+       lightradiusfade 2000
+       lightradius 100
+       sizeincrease -100
+       size 2 5
+       stretchfactor 2
+       tex 70 70
+effect hlac_muzzleflash
+       type spark
+       airfriction 12
+       alpha 0 128 1024
+       color 0x92e045 0x64f42a
+       count 15
+       originjitter 1 1 1
+       rotate -180 180 -400 400
+       size 2 5
+       stretchfactor 2
+       tex 48 55
+       velocityjitter 200 200 200
+       velocitymultiplier 0.500000
+effect hlac_impact
+       type decal
+       alpha 128 128 0
+       countabsolute 1
+       lightcolor 0.4 0.8 0.2
+       lightradiusfade 500
+       lightradius 150
+       originjitter 14 14 14
+       size 12 12
+       tex 47 47
+effect hlac_impact
+       type static
+       alpha 256 256 1024
+       color 0x1be508 0xd5f0a1
+       countabsolute 1
+       size 24 24
+       tex 46 46
+effect hlac_impact
+       type spark
+       airfriction 8
+       alpha 256 256 1024
+       color 0x92e045 0x54e51a
+       count 128
+       liquidfriction 2
+       size 4 4
+       tex 45 45
+       velocityjitter 256 256 256
+effect hlac_impact
+       type smoke
+       alpha 64 256 256
+       color 0x92e045 0xc7eda1
+       count 4
+       originjitter 1 1 1
+       sizeincrease 6
+       size 12 12
+       tex 4 6
+       velocityjitter 16 16 16
+       velocitymultiplier 0.010000
index cb26a1657dd0f04c2775e9d9323327885a5cc918..1b10823b5075e4079f874e0f8519b13388ba8dc4 100644 (file)
Binary files a/gfx/hud/luma/ok_weapon_smg.tga and b/gfx/hud/luma/ok_weapon_smg.tga differ
index adaeff5317e3badd8e18e0ad88071d35b9f54a32..fe070beef39292af3740542f62cb245dd22df15a 100644 (file)
Binary files a/gfx/hud/luma/weaponarc.tga and b/gfx/hud/luma/weaponarc.tga differ
index 9cb32288b0ef2d96907158987093d4c944fa41b1..e8c2b8f70d59794d533a6b2f615bb3142992fd79 100644 (file)
Binary files a/gfx/hud/luma/weapongrenadelauncher.tga and b/gfx/hud/luma/weapongrenadelauncher.tga differ
index 63a8b608d811dd402c34a4fc7e52852352357782..788371d27787fe2acf529bb634013710f308f8db 100644 (file)
Binary files a/gfx/hud/luma/weaponhagar.tga and b/gfx/hud/luma/weaponhagar.tga differ
index 2208b8363f5f5e03e104c0b62219f4cfc2893607..8796045e4bf7a938d81b64aa1d3df9bb8f2ddbff 100644 (file)
Binary files a/gfx/hud/luma/weaponhlac.tga and b/gfx/hud/luma/weaponhlac.tga differ
index a3d2b886d9c4acc2216225fd55051ead969787d2..fe7725df66a24d47d069557bd427cf04f0eea4d7 100644 (file)
Binary files a/gfx/hud/luma/weaponhook.tga and b/gfx/hud/luma/weaponhook.tga differ
index 0f0069d3af8a25c6e5f28211a54ab8f1240dff79..199d93e081f67354a8f72714d10c84eadfc50bea 100644 (file)
Binary files a/gfx/hud/luma/weaponminelayer.tga and b/gfx/hud/luma/weaponminelayer.tga differ
index 5ee816970a4dad48453d9076856a78702697512c..35eae3530e8b447bac6b104379170837c3c03bd4 100644 (file)
Binary files a/gfx/hud/luma/weaponporto.tga and b/gfx/hud/luma/weaponporto.tga differ
index 036845c47e85d8aa5e24afceb8bd22fa0a198992..6b6bc05908694133e0d58c233cde449d85dcd6fe 100644 (file)
Binary files a/gfx/hud/luma/weaponrifle.tga and b/gfx/hud/luma/weaponrifle.tga differ
index 17645a67443fefc689f5ea2ef6c471ec4895d305..a7f6621f3d51a35d68a56c2155795d89db4cbbe2 100644 (file)
Binary files a/gfx/hud/luma/weaponseeker.tga and b/gfx/hud/luma/weaponseeker.tga differ
index 47acf244f2a5fb37b1f460a1755ed1db27f2993c..4a5b57ac0744ad10fdef417948b6daf6be2ee6d1 100644 (file)
Binary files a/gfx/hud/luma/weapontuba.tga and b/gfx/hud/luma/weapontuba.tga differ
index 5aee32ab545a47884f50cd00ce4248e8cb35ab3c..8915dc8401347ac5a0e0a4180ee63c9504e56148 100644 (file)
Binary files a/gfx/hud/luma/weaponuzi.tga and b/gfx/hud/luma/weaponuzi.tga differ
index 8b49da395360bac5dbbd12d240abc28d75ceb15c..288d2bcae7137a7660ba821726e0d08bce4f0851 100644 (file)
Binary files a/models/hlac_bullet.tga and b/models/hlac_bullet.tga differ
index b899eda9a32d42c17c8f51322f3f5b0b04e68375..ff9b58d77800a60b4465ceebcde722c12c242632 100644 (file)
Binary files a/models/weapons/g_arc_luma.tga and b/models/weapons/g_arc_luma.tga differ
index 5f8e13548860ecb9679a526c8db5e0023bda467f..23356ba65f03e53c25d983d2fcf669ae470dbe3d 100644 (file)
Binary files a/models/weapons/g_campingrifle_luma.tga and b/models/weapons/g_campingrifle_luma.tga differ
index 4e0ac91a375d16dcbcdee5f1eb5a17c640b31d08..cf4840e0571377d80716fa016f728705d70f99db 100644 (file)
Binary files a/models/weapons/g_gl_luma.tga and b/models/weapons/g_gl_luma.tga differ
index 1a980606a95960379f12e0963cd88b91e47fc2cb..cd180c62ae70f5ab8e1d3f15a769157c0e114b3c 100644 (file)
Binary files a/models/weapons/g_hagar_luma.tga and b/models/weapons/g_hagar_luma.tga differ
index 0e938ad5f5d21e6f4456a9bf70506421117f3290..08b708020b3a08ed43004ec63994c585dbb82364 100644 (file)
Binary files a/models/weapons/g_hlac_luma.tga and b/models/weapons/g_hlac_luma.tga differ
index 4ce22fb313c76aac812595f4ec445488f63f8106..d6d2ba00058c09578aa0674c8efb4815d55bd066 100644 (file)
Binary files a/models/weapons/g_hookgun_luma.tga and b/models/weapons/g_hookgun_luma.tga differ
index ff1e667c10889d016f5b153bea7ca7ac2ffba443..4c10edd117621633b8dfef3c102f7208c27f0c21 100644 (file)
Binary files a/models/weapons/g_minelayer_luma.tga and b/models/weapons/g_minelayer_luma.tga differ
index 93bef14a1a73928424a0809bc48ade80450821f4..dc587505c98f9f7dd49d03ee2c1239c16da39be7 100644 (file)
Binary files a/models/weapons/g_porto_luma.tga and b/models/weapons/g_porto_luma.tga differ
index 12405eed9ffe419d86618dc4d7d0f818154fe70e..a82789b93c8f8ca1cb90cd4dc95b80063ee471e4 100644 (file)
Binary files a/models/weapons/g_seeker_luma.tga and b/models/weapons/g_seeker_luma.tga differ
index 82785e6f488f714b4377d7d7f1caf0da7e3cc270..a4d0b4a78003d29775484a55f6a57b7b3a20603a 100644 (file)
Binary files a/models/weapons/g_tuba_luma.tga and b/models/weapons/g_tuba_luma.tga differ
index 8a05499b825f4b4682334370abde78e07134a562..3d133fd795db16444afa1e819b5dceb4a1d2b5f4 100644 (file)
Binary files a/models/weapons/g_uzi_luma.tga and b/models/weapons/g_uzi_luma.tga differ
index 1bd7ad9ed06156d38865205d80290b6c54fe97e3..d98bbe9d4445ee9299f3b0e470bc166e855d0eae 100644 (file)
@@ -49,6 +49,11 @@ EFFECT(0, CRYLINK_IMPACT2,          "crylink_impact")
 EFFECT(0, CRYLINK_JOINEXPLODE,      "crylink_joinexplode")
 EFFECT(0, CRYLINK_MUZZLEFLASH,      "crylink_muzzleflash")
 
+// TODO: rename GREEN_HLAC_* to HLAC_* after next release (xonotic-v0.9.0)
+// see also common/weapons/weapon/hlac.q*
+EFFECT(0, GREEN_HLAC_IMPACT,        "hlac_impact")
+EFFECT(0, GREEN_HLAC_MUZZLEFLASH,   "hlac_muzzleflash")
+
 EFFECT(0, VORTEX_BEAM,              "nex_beam")
 EFFECT(0, VORTEX_BEAM_OLD,          "TE_TEI_G3")
 EFFECT(0, VORTEX_IMPACT,            "nex_impact")
index ad2800bb82fa83032bce5537827d29ee64ab7799..026a6adde3986e2c73cb3937df05959bf0ff1c79 100644 (file)
@@ -7723,8 +7723,8 @@ SUB(damage_hlac) {
        MY(alpha_min) = 128;
        MY(alpha_max) = 16;
        MY(alpha_fade) = 128;
-       MY(color_min) = "0x880000";
-       MY(color_max) = "0xff4400";
+       MY(color_min) = "0x008800";
+       MY(color_max) = "0x44ff00";
        MY(count) = 3;
        MY(notunderwater) = true;
        MY(originjitter) = '4.0 4.0 4.0';
@@ -9167,4 +9167,114 @@ SUB(item_despawn) {
        MY(lightshadow) 1;
 }
 
+DEF(hlac_muzzleflash);
+// glow and light
+SUB(hlac_muzzleflash) {
+       MY(airfriction) = 10;
+       MY(alpha_min) = 128;
+       MY(alpha_max) = 256;
+       MY(alpha_fade) = 6280;
+       MY(color_min) = "0x00cc00";
+       MY(color_max) = "0x00ff00";
+       MY(countabsolute) = 1;
+       MY(lightcolor) = '0.4 0.8 0.2';
+       MY(lightradiusfade) = 2000;
+       MY(lightradius) = 100;
+       MY(sizeincrease) = -100;
+       MY(size_min) = 2;
+       MY(size_max) = 5;
+       MY(stretchfactor) = 2;
+       MY(tex_min) = 70;
+       MY(tex_max) = 70;
+       MY(type) = "smoke";
+}
+// electricity
+SUB(hlac_muzzleflash) {
+       MY(airfriction) = 12;
+       MY(alpha_min) = 0;
+       MY(alpha_max) = 128;
+       MY(alpha_fade) = 1024;
+       MY(color_min) = "0x92e045";
+       MY(color_max) = "0x64f42a";
+       MY(count) = 15;
+       MY(originjitter) = '1.0 1.0 1.0';
+       MY(startangle_min) = -180;
+       MY(startangle_max) = 180;
+       MY(spin_min) = -400;
+       MY(spin_max) = 400;
+       MY(size_min) = 2;
+       MY(size_max) = 5;
+       MY(stretchfactor) = 2;
+       MY(tex_min) = 48;
+       MY(tex_max) = 55;
+       MY(type) = "spark";
+       MY(velocityjitter) = '200.0 200.0 200.0';
+       MY(velocitymultiplier) = 0.500000;
+}
+
+DEF(hlac_impact);
+// decal
+SUB(hlac_impact) {
+       MY(alpha_min) = 128;
+       MY(alpha_max) = 128;
+       MY(countabsolute) = 1;
+       MY(lightcolor) = '0.4 0.8 0.2';
+       MY(lightradiusfade) = 500;
+       MY(lightradius) = 150;
+       MY(originjitter) = '14.0 14.0 14.0';
+       MY(size_min) = 12;
+       MY(size_max) = 12;
+       MY(tex_min) = 47;
+       MY(tex_max) = 47;
+       MY(type) = "decal";
+}
+// flare effect
+SUB(hlac_impact) {
+       MY(alpha_min) = 256;
+       MY(alpha_max) = 256;
+       MY(alpha_fade) = 1024;
+       MY(color_min) = "0x1be508";
+       MY(color_max) = "0xd5f0a1";
+       MY(countabsolute) = 1;
+       MY(size_min) = 24;
+       MY(size_max) = 24;
+       MY(tex_min) = 46;
+       MY(tex_max) = 46;
+       MY(type) = "static";
+}
+// sparks that rapidly expand and rapidly slow down to form an interesting spherical effect
+SUB(hlac_impact) {
+       MY(airfriction) = 8;
+       MY(alpha_min) = 256;
+       MY(alpha_max) = 256;
+       MY(alpha_fade) = 1024;
+       MY(color_min) = "0x92e045";
+       MY(color_max) = "0x54e51a";
+       MY(count) = 128;
+       MY(liquidfriction) = 2;
+       MY(size_min) = 4;
+       MY(size_max) = 4;
+       MY(tex_min) = 45;
+       MY(tex_max) = 45;
+       MY(type) = "spark";
+       MY(velocityjitter) = '256.0 256.0 256.0';
+}
+SUB(hlac_impact) {
+       MY(alpha_min) = 64;
+       MY(alpha_max) = 256;
+       MY(alpha_fade) = 256;
+       MY(color_min) = "0x92e045";
+       MY(color_max) = "0xc7eda1";
+       MY(count) = 4;
+       MY(originjitter) = '1.0 1.0 1.0';
+       MY(sizeincrease) = 6;
+       MY(size_min) = 12;
+       MY(size_max) = 12;
+       MY(tex_min) = 4;
+       MY(tex_max) = 6;
+       MY(type) = "smoke";
+       MY(velocityjitter) = '16.0 16.0 16.0';
+       MY(velocitymultiplier) = 0.010000;
+}
+
 // always add new effects to the bottom of the list. And keep this comment in the bottom line of this file!
index 5393fa933587d34c8912ae2d9d30134d292a327d..34c2bb0fd4460134d4129909c5e9ee95501a55bd 100644 (file)
@@ -8,7 +8,7 @@ CLASS(OverkillHeavyMachineGun, Weapon)
 /* impulse   */ ATTRIB(OverkillHeavyMachineGun, impulse, int, 3);
 /* flags     */ ATTRIB(OverkillHeavyMachineGun, spawnflags, int, WEP_FLAG_MUTATORBLOCKED | WEP_FLAG_HIDDEN | WEP_FLAG_RELOADABLE | WEP_TYPE_HITSCAN | WEP_FLAG_SUPERWEAPON | WEP_FLAG_PENETRATEWALLS);
 /* rating    */ ATTRIB(OverkillHeavyMachineGun, bot_pickupbasevalue, float, 10000);
-/* color     */ ATTRIB(OverkillHeavyMachineGun, m_color, vector, '0.5 0.5 0');
+/* color     */ ATTRIB(OverkillHeavyMachineGun, m_color, vector, '0.992 0.471 0.396');
 /* modelname */ ATTRIB(OverkillHeavyMachineGun, mdl, string, "ok_hmg");
 #ifdef GAMEQC
 /* model     */ ATTRIB(OverkillHeavyMachineGun, m_model, Model, MDL_HMG_ITEM);
index 367afca7cf131f4be8c26391d09742fafba7d55f..b51c2fb69ac4182e5b78b76dbad03e607556bd1b 100644 (file)
@@ -6,7 +6,7 @@ CLASS(OverkillMachineGun, Weapon)
 /* impulse   */ ATTRIB(OverkillMachineGun, impulse, int, 3);
 /* flags     */ ATTRIB(OverkillMachineGun, spawnflags, int, WEP_FLAG_HIDDEN | WEP_FLAG_RELOADABLE | WEP_TYPE_HITSCAN | WEP_FLAG_PENETRATEWALLS | WEP_FLAG_MUTATORBLOCKED);
 /* rating    */ ATTRIB(OverkillMachineGun, bot_pickupbasevalue, float, 7000);
-/* color     */ ATTRIB(OverkillMachineGun, m_color, vector, '1 1 0');
+/* color     */ ATTRIB(OverkillMachineGun, m_color, vector, '0.678 0.886 0.267');
 /* modelname */ ATTRIB(OverkillMachineGun, mdl, string, "ok_mg");
 #ifdef GAMEQC
 /* model     */ ATTRIB(OverkillMachineGun, m_model, Model, MDL_OK_MG_ITEM);
index f90d3292a359111f87e7215dce82e111cb255ab9..6dfe2fc5f16e5393a417fbd90da37fd33922049d 100644 (file)
@@ -6,7 +6,7 @@ CLASS(OverkillNex, Weapon)
 /* impulse   */ ATTRIB(OverkillNex, impulse, int, 7);
 /* flags     */ ATTRIB(OverkillNex, spawnflags, int, WEP_FLAG_HIDDEN | WEP_FLAG_RELOADABLE | WEP_TYPE_HITSCAN | WEP_FLAG_MUTATORBLOCKED);
 /* rating    */ ATTRIB(OverkillNex, bot_pickupbasevalue, float, 8000);
-/* color     */ ATTRIB(OverkillNex, m_color, vector, '0.5 1 1');
+/* color     */ ATTRIB(OverkillNex, m_color, vector, '0.459 0.765 0.835');
 /* modelname */ ATTRIB(OverkillNex, mdl, string, "ok_sniper");
 #ifdef GAMEQC
 /* model     */ ATTRIB(OverkillNex, m_model, Model, MDL_OK_SNIPER_ITEM);
index 7a341515648ea2bf1508e5102a04420081355156..64ec5a5e8f256791a0ee3e84651b6b80d34bec77 100644 (file)
@@ -8,7 +8,7 @@ CLASS(OverkillRocketPropelledChainsaw, Weapon)
 /* impulse   */ ATTRIB(OverkillRocketPropelledChainsaw, impulse, int, 9);
 /* flags     */ ATTRIB(OverkillRocketPropelledChainsaw, spawnflags, int, WEP_FLAG_MUTATORBLOCKED | WEP_FLAG_HIDDEN | WEP_FLAG_CANCLIMB | WEP_FLAG_RELOADABLE | WEP_TYPE_SPLASH | WEP_FLAG_SUPERWEAPON);
 /* rating    */ ATTRIB(OverkillRocketPropelledChainsaw, bot_pickupbasevalue, float, 10000);
-/* color     */ ATTRIB(OverkillRocketPropelledChainsaw, m_color, vector, '0.5 0.5 0');
+/* color     */ ATTRIB(OverkillRocketPropelledChainsaw, m_color, vector, '0.914 0.745 0.341');
 /* modelname */ ATTRIB(OverkillRocketPropelledChainsaw, mdl, string, "ok_rl");
 #ifdef GAMEQC
 /* model     */ ATTRIB(OverkillRocketPropelledChainsaw, m_model, Model, MDL_RPC_ITEM);
index 08cff024ad23da710efe7f9f5d6ad505375ac90b..4f57b986f033097f7a6991512a49307eef54ca54 100644 (file)
@@ -6,7 +6,7 @@ CLASS(OverkillShotgun, Weapon)
 /* impulse   */ ATTRIB(OverkillShotgun, impulse, int, 2);
 /* flags     */ ATTRIB(OverkillShotgun, spawnflags, int, WEP_FLAG_HIDDEN | WEP_FLAG_RELOADABLE | WEP_TYPE_HITSCAN | WEP_FLAG_MUTATORBLOCKED);
 /* rating    */ ATTRIB(OverkillShotgun, bot_pickupbasevalue, float, 6000);
-/* color     */ ATTRIB(OverkillShotgun, m_color, vector, '0.5 0.25 0');
+/* color     */ ATTRIB(OverkillShotgun, m_color, vector, '0.518 0.608 0.659');
 /* modelname */ ATTRIB(OverkillShotgun, mdl, string, "ok_shotgun");
 #ifdef GAMEQC
 /* model     */ ATTRIB(OverkillShotgun, m_model, Model, MDL_OK_SHOTGUN_ITEM);
index 31b829c59a0c3b1bc99f0dd8a3093deca821f660..c8dc3159211bad85e72e6ac3ebec4b9562dc70de 100644 (file)
@@ -6,7 +6,7 @@ CLASS(Arc, Weapon)
 /* impulse   */ ATTRIB(Arc, impulse, int, 3);
 /* flags     */ ATTRIB(Arc, spawnflags, int, WEP_FLAG_MUTATORBLOCKED | WEP_TYPE_HITSCAN);
 /* rating    */ ATTRIB(Arc, bot_pickupbasevalue, float, 8000);
-/* color     */ ATTRIB(Arc, m_color, vector, '1 1 1');
+/* color     */ ATTRIB(Arc, m_color, vector, '0.463 0.612 0.886');
 /* modelname */ ATTRIB(Arc, mdl, string, "arc");
 #ifdef GAMEQC
 /* model     */ ATTRIB(Arc, m_model, Model, MDL_ARC_ITEM);
index a066523011b0ee027c16fa6eb760b11af5edd037..74c1fcedccb987fd7f2e8569546b10bd8e4a46d0 100644 (file)
@@ -6,7 +6,7 @@ CLASS(Blaster, Weapon)
 /* impulse   */ ATTRIB(Blaster, impulse, int, 1);
 /* flags     */ ATTRIB(Blaster, spawnflags, int, WEP_FLAG_NORMAL | WEP_FLAG_CANCLIMB | WEP_TYPE_SPLASH);
 /* rating    */ ATTRIB(Blaster, bot_pickupbasevalue, float, 0);
-/* color     */ ATTRIB(Blaster, m_color, vector, '1 0.5 0.5');
+/* color     */ ATTRIB(Blaster, m_color, vector, '0.969 0.443 0.482');
 /* modelname */ ATTRIB(Blaster, mdl, string, "laser");
 #ifdef GAMEQC
 /* model     */ ATTRIB(Blaster, m_model, Model, MDL_BLASTER_ITEM);
index 17f2b193c89bdafa36ff7f98783102a013311d4d..c082ac02daad6b3633a7ce54e866c2cfa97eb032 100644 (file)
@@ -6,7 +6,7 @@ CLASS(Crylink, Weapon)
 /* impulse   */ ATTRIB(Crylink, impulse, int, 6);
 /* flags     */ ATTRIB(Crylink, spawnflags, int, WEP_FLAG_NORMAL | WEP_FLAG_RELOADABLE | WEP_TYPE_SPLASH | WEP_FLAG_CANCLIMB);
 /* rating    */ ATTRIB(Crylink, bot_pickupbasevalue, float, 6000);
-/* color     */ ATTRIB(Crylink, m_color, vector, '1 0.5 1');
+/* color     */ ATTRIB(Crylink, m_color, vector, '0.918 0.435 0.976');
 /* modelname */ ATTRIB(Crylink, mdl, string, "crylink");
 #ifdef GAMEQC
 /* model     */ ATTRIB(Crylink, m_model, Model, MDL_CRYLINK_ITEM);
index 710e9742143562be35fa5c0e61bd7f4cdd7b014d..2d69ae0dac623f00c0970b9ede8a7637765784df 100644 (file)
@@ -6,7 +6,7 @@ CLASS(Devastator, Weapon)
 /* impulse   */ ATTRIB(Devastator, impulse, int, 9);
 /* flags     */ ATTRIB(Devastator, spawnflags, int, WEP_FLAG_NORMAL | WEP_FLAG_RELOADABLE | WEP_FLAG_CANCLIMB | WEP_TYPE_SPLASH);
 /* rating    */ ATTRIB(Devastator, bot_pickupbasevalue, float, 8000);
-/* color     */ ATTRIB(Devastator, m_color, vector, '1 1 0');
+/* color     */ ATTRIB(Devastator, m_color, vector, '0.914 0.745 0.341');
 /* modelname */ ATTRIB(Devastator, mdl, string, "rl");
 #ifdef GAMEQC
 /* model     */ ATTRIB(Devastator, m_model, Model, MDL_DEVASTATOR_ITEM);
index a8f22029ae11a607721b467eab5bb5ad75149f54..4b79c5889083b1550926438103640dc196cc5188 100644 (file)
@@ -6,7 +6,7 @@ CLASS(Electro, Weapon)
 /* impulse   */ ATTRIB(Electro, impulse, int, 5);
 /* flags     */ ATTRIB(Electro, spawnflags, int, WEP_FLAG_NORMAL | WEP_FLAG_RELOADABLE | WEP_TYPE_SPLASH);
 /* rating    */ ATTRIB(Electro, bot_pickupbasevalue, float, 5000);
-/* color     */ ATTRIB(Electro, m_color, vector, '0 0.5 1');
+/* color     */ ATTRIB(Electro, m_color, vector, '0.408 0.600 0.949');
 /* modelname */ ATTRIB(Electro, mdl, string, "electro");
 #ifdef GAMEQC
 /* model     */ ATTRIB(Electro, m_model, Model, MDL_ELECTRO_ITEM);
index af09a666cabf9e8d9b772e156f4fc08d55cf7258..216791dd641d308d78ac2db97c011f0273fd53f7 100644 (file)
@@ -6,7 +6,7 @@ CLASS(Fireball, Weapon)
 /* impulse   */ ATTRIB(Fireball, impulse, int, 9);
 /* flags     */ ATTRIB(Fireball, spawnflags, int, WEP_FLAG_SUPERWEAPON | WEP_TYPE_SPLASH | WEP_FLAG_NODUAL);
 /* rating    */ ATTRIB(Fireball, bot_pickupbasevalue, float, 5000);
-/* color     */ ATTRIB(Fireball, m_color, vector, '1 0.5 0');
+/* color     */ ATTRIB(Fireball, m_color, vector, '0.941 0.522 0.373');
 /* modelname */ ATTRIB(Fireball, mdl, string, "fireball");
 #ifdef GAMEQC
 /* model     */ ATTRIB(Fireball, m_model, Model, MDL_FIREBALL_ITEM);
index 64bbd6ab74c2049ccf7a94706cef3dd67cb2fd0f..b460958d9eb5a9e0bb6018e078b24ef890e60a42 100644 (file)
@@ -6,7 +6,7 @@ CLASS(Hagar, Weapon)
 /* impulse   */ ATTRIB(Hagar, impulse, int, 8);
 /* flags     */ ATTRIB(Hagar, spawnflags, int, WEP_FLAG_NORMAL | WEP_FLAG_RELOADABLE | WEP_FLAG_CANCLIMB | WEP_TYPE_SPLASH);
 /* rating    */ ATTRIB(Hagar, bot_pickupbasevalue, float, 6000);
-/* color     */ ATTRIB(Hagar, m_color, vector, '1 1 0.5');
+/* color     */ ATTRIB(Hagar, m_color, vector, '0.886 0.545 0.345');
 /* modelname */ ATTRIB(Hagar, mdl, string, "hagar");
 #ifdef GAMEQC
 /* model     */ ATTRIB(Hagar, m_model, Model, MDL_HAGAR_ITEM);
index 81f06fc1c416e35fc558dd280661e21b508dd16a..0b30d037f907f429c087e02d48ebeb7d6e69ca8b 100644 (file)
@@ -219,8 +219,16 @@ METHOD(HLAC, wr_killmessage, Notification(entity thiswep))
 
 METHOD(HLAC, wr_impacteffect, void(entity thiswep, entity actor))
 {
+       // TODO: remove this caching & fallback after next release (xonotic-v0.9.0)
+       // do the same for the muzzleflash effect in hlac.qh. see also common/effects/all.inc
+       entity eff = EFFECT_GREEN_HLAC_IMPACT;
+       if (!thiswep.cnt) // cache effect num here
+               thiswep.cnt = particleeffectnum(eff); // can't return 0
+       if (thiswep.cnt < 0)
+               eff = EFFECT_BLASTER_IMPACT; // compatible with Xonotic v0.8.6 or lower
+
        vector org2 = w_org + w_backoff * 2;
-       pointparticles(EFFECT_BLASTER_IMPACT, org2, w_backoff * 1000, 1);
+       pointparticles(eff, org2, w_backoff * 1000, 1);
        if(!w_issilent)
                sound(actor, CH_SHOTS, SND_LASERIMPACT, VOL_BASE, ATTN_NORM);
 }
index 662f6dc5c995589db4045b96e6fcf78e3d901aca..e5b25c91b1f3ea87329d58e56fa5721ce9379120 100644 (file)
@@ -6,12 +6,15 @@ CLASS(HLAC, Weapon)
 /* impulse   */ ATTRIB(HLAC, impulse, int, 6);
 /* flags     */ ATTRIB(HLAC, spawnflags, int, WEP_FLAG_MUTATORBLOCKED | WEP_FLAG_RELOADABLE | WEP_TYPE_SPLASH);
 /* rating    */ ATTRIB(HLAC, bot_pickupbasevalue, float, 4000);
-/* color     */ ATTRIB(HLAC, m_color, vector, '0 1 0');
+/* color     */ ATTRIB(HLAC, m_color, vector, '0.506 0.945 0.239');
 /* modelname */ ATTRIB(HLAC, mdl, string, "hlac");
 #ifdef GAMEQC
 /* model     */ ATTRIB(HLAC, m_model, Model, MDL_HLAC_ITEM);
 /* flash mdl */ ATTRIB(HLAC, m_muzzlemodel, Model, MDL_Null);
-/* flash eff */ ATTRIB(HLAC, m_muzzleeffect, entity, EFFECT_BLASTER_MUZZLEFLASH);
+/* flash eff */ ATTRIB(HLAC, m_muzzleeffect, entity,
+       (particleeffectnum(EFFECT_GREEN_HLAC_MUZZLEFLASH) < 0)
+               ? EFFECT_BLASTER_MUZZLEFLASH // compatible with Xonotic v0.8.6 or lower
+               : EFFECT_GREEN_HLAC_MUZZLEFLASH);
 #endif
 /* crosshair */ ATTRIB(HLAC, w_crosshair, string, "gfx/crosshairhlac");
 /* crosshair */ ATTRIB(HLAC, w_crosshair_size, float, 0.6);
index 492bc5a9c9aead67cad8be2e0606e26c5118f402..5ca68d1fa972ff346fa434376acc24bf5c7c98c1 100644 (file)
@@ -6,7 +6,7 @@ CLASS(Hook, Weapon)
 /* impulse   */ ATTRIB(Hook, impulse, int, 0);
 /* flags     */ ATTRIB(Hook, spawnflags, int, WEP_FLAG_CANCLIMB | WEP_TYPE_SPLASH | WEP_FLAG_NOTRUEAIM);
 /* rating    */ ATTRIB(Hook, bot_pickupbasevalue, float, 0);
-/* color     */ ATTRIB(Hook, m_color, vector, '0 0.5 0');
+/* color     */ ATTRIB(Hook, m_color, vector, '0.471 0.817 0.392');
 /* modelname */ ATTRIB(Hook, mdl, string, "hookgun");
 #ifdef GAMEQC
 /* model     */ ATTRIB(Hook, m_model, Model, MDL_HOOK_ITEM);
index d6e6b61a6cf0a1eef7e4f4763de0664c00aca733..89b014d148de54bd6af2b2bea70d846f84956189 100644 (file)
@@ -6,7 +6,7 @@ CLASS(MachineGun, Weapon)
 /* impulse   */ ATTRIB(MachineGun, impulse, int, 3);
 /* flags     */ ATTRIB(MachineGun, spawnflags, int, WEP_FLAG_NORMAL | WEP_FLAG_RELOADABLE | WEP_TYPE_HITSCAN | WEP_FLAG_PENETRATEWALLS | WEP_FLAG_BLEED);
 /* rating    */ ATTRIB(MachineGun, bot_pickupbasevalue, float, 7000);
-/* color     */ ATTRIB(MachineGun, m_color, vector, '1 1 0');
+/* color     */ ATTRIB(MachineGun, m_color, vector, '0.678 0.886 0.267');
 /* modelname */ ATTRIB(MachineGun, mdl, string, "uzi");
 #ifdef GAMEQC
 /* model     */ ATTRIB(MachineGun, m_model, Model, MDL_MACHINEGUN_ITEM);
index d6973a3fb407c3fcfce86144cd4abba4f6798284..6b6976a2b21aece2a1ca7389dde3317c227a3170 100644 (file)
@@ -6,7 +6,7 @@ CLASS(MineLayer, Weapon)
 /* impulse   */ ATTRIB(MineLayer, impulse, int, 4);
 /* flags     */ ATTRIB(MineLayer, spawnflags, int, WEP_FLAG_MUTATORBLOCKED | WEP_FLAG_RELOADABLE | WEP_TYPE_SPLASH);
 /* rating    */ ATTRIB(MineLayer, bot_pickupbasevalue, float, 7000);
-/* color     */ ATTRIB(MineLayer, m_color, vector, '0.75 1 0');
+/* color     */ ATTRIB(MineLayer, m_color, vector, '0.988 0.514 0.392');
 /* modelname */ ATTRIB(MineLayer, mdl, string, "minelayer");
 #ifdef GAMEQC
 /* model     */ ATTRIB(MineLayer, m_model, Model, MDL_MINELAYER_ITEM);
index 4da2388a4e6c105189e8f8285316b48c6222163d..bce9e437313f1d4d75628614fc11353d58a898dc 100644 (file)
@@ -6,7 +6,7 @@ CLASS(Mortar, Weapon)
 /* impulse   */ ATTRIB(Mortar, impulse, int, 4);
 /* flags     */ ATTRIB(Mortar, spawnflags, int, WEP_FLAG_NORMAL | WEP_FLAG_RELOADABLE | WEP_FLAG_CANCLIMB | WEP_TYPE_SPLASH | WEP_FLAG_NOTRUEAIM);
 /* rating    */ ATTRIB(Mortar, bot_pickupbasevalue, float, 7000);
-/* color     */ ATTRIB(Mortar, m_color, vector, '1 0 0');
+/* color     */ ATTRIB(Mortar, m_color, vector, '0.988 0.392 0.314');
 /* modelname */ ATTRIB(Mortar, mdl, string, "gl");
 #ifdef GAMEQC
 /* model     */ ATTRIB(Mortar, m_model, Model, MDL_MORTAR_ITEM);
index 269152a15563b3b7bd95e70d09eea6016b0737ed..0b9557d0bed12f4d70c5c8a6c6c7b45662df1b5c 100644 (file)
@@ -6,7 +6,7 @@ CLASS(PortoLaunch, Weapon)
 /* impulse   */ ATTRIB(PortoLaunch, impulse, int, 0);
 /* flags     */ ATTRIB(PortoLaunch, spawnflags, int, WEP_TYPE_OTHER | WEP_FLAG_SUPERWEAPON | WEP_FLAG_NODUAL | WEP_FLAG_NOTRUEAIM);
 /* rating    */ ATTRIB(PortoLaunch, bot_pickupbasevalue, float, 0);
-/* color     */ ATTRIB(PortoLaunch, m_color, vector, '0.5 0.5 0.5');
+/* color     */ ATTRIB(PortoLaunch, m_color, vector, '0.404 0.545 0.937');
 /* modelname */ ATTRIB(PortoLaunch, mdl, string, "porto");
 #ifdef GAMEQC
 /* model     */ ATTRIB(PortoLaunch, m_model, Model, MDL_PORTO_ITEM);
index bf5633168e2c3575d5a78cf4379cb3b6c49d1869..c5cc4e8f497182a8c86fcc6a422b374e18d14a8b 100644 (file)
@@ -6,7 +6,7 @@ CLASS(Rifle, Weapon)
 /* impulse   */ ATTRIB(Rifle, impulse, int, 7);
 /* flags     */ ATTRIB(Rifle, spawnflags, int, WEP_FLAG_MUTATORBLOCKED | WEP_FLAG_RELOADABLE | WEP_TYPE_HITSCAN | WEP_FLAG_PENETRATEWALLS);
 /* rating    */ ATTRIB(Rifle, bot_pickupbasevalue, float, 7000);
-/* color     */ ATTRIB(Rifle, m_color, vector, '0.5 1 0');
+/* color     */ ATTRIB(Rifle, m_color, vector, '0.886 0.620 0.353');
 /* modelname */ ATTRIB(Rifle, mdl, string, "campingrifle");
 #ifdef GAMEQC
 /* model     */ ATTRIB(Rifle, m_model, Model, MDL_RIFLE_ITEM);
index f9e8609a0ec141409ab99e0a45bf7966f41ef803..f6a006df67dea7c1bdcbf795bf4c4413aa6aef30 100644 (file)
@@ -6,7 +6,7 @@ CLASS(Seeker, Weapon)
 /* impulse   */ ATTRIB(Seeker, impulse, int, 8);
 /* flags     */ ATTRIB(Seeker, spawnflags, int, WEP_FLAG_MUTATORBLOCKED | WEP_FLAG_RELOADABLE | WEP_TYPE_SPLASH);
 /* rating    */ ATTRIB(Seeker, bot_pickupbasevalue, float, 5000);
-/* color     */ ATTRIB(Seeker, m_color, vector, '0.5 1 0');
+/* color     */ ATTRIB(Seeker, m_color, vector, '0.957 0.439 0.533');
 /* modelname */ ATTRIB(Seeker, mdl, string, "seeker");
 #ifdef GAMEQC
 /* model     */ ATTRIB(Seeker, m_model, Model, MDL_SEEKER_ITEM);
index b9b5855b5843bde1ce5a49bc603983631bee738e..d0ea5329abc577291730b19c09a3b382c9004f6d 100644 (file)
@@ -6,7 +6,7 @@ CLASS(Shockwave, Weapon)
 /* impulse   */ ATTRIB(Shockwave, impulse, int, 2);
 /* flags     */ ATTRIB(Shockwave, spawnflags, int, WEP_FLAG_MUTATORBLOCKED | WEP_FLAG_HIDDEN | WEP_TYPE_HITSCAN | WEP_FLAG_CANCLIMB | WEP_TYPE_MELEE_SEC);
 /* rating    */ ATTRIB(Shockwave, bot_pickupbasevalue, float, 3000);
-/* color     */ ATTRIB(Shockwave, m_color, vector, '0.5 0.25 0');
+/* color     */ ATTRIB(Shockwave, m_color, vector, '0.467 0.702 0.541');
 /* modelname */ ATTRIB(Shockwave, mdl, string, "shotgun");
 #ifdef GAMEQC
 /* model     */ ATTRIB(Shockwave, m_model, Model, MDL_SHOCKWAVE_ITEM);
index b53916163c4d4d62eb9c1130cdfe0874224f84ea..7bc6e3dee1409f0152b268d9f7c66e569a65ca5d 100644 (file)
@@ -6,7 +6,7 @@ CLASS(Shotgun, Weapon)
 /* impulse   */ ATTRIB(Shotgun, impulse, int, 2);
 /* flags     */ ATTRIB(Shotgun, spawnflags, int, WEP_FLAG_NORMAL | WEP_FLAG_RELOADABLE | WEP_TYPE_HITSCAN | WEP_TYPE_MELEE_SEC | WEP_FLAG_BLEED);
 /* rating    */ ATTRIB(Shotgun, bot_pickupbasevalue, float, 6000);
-/* color     */ ATTRIB(Shotgun, m_color, vector, '0.5 0.25 0');
+/* color     */ ATTRIB(Shotgun, m_color, vector, '0.518 0.608 0.659');
 /* modelname */ ATTRIB(Shotgun, mdl, string, "shotgun");
 #ifdef GAMEQC
 /* model     */ ATTRIB(Shotgun, m_model, Model, MDL_SHOTGUN_ITEM);
index 8d5982914dee0a737fc16e5445ea354d50829f18..31a569d7bb601f9c0768679435376f24010b2564 100644 (file)
@@ -5,7 +5,7 @@ CLASS(Tuba, Weapon)
 /* impulse   */ ATTRIB(Tuba, impulse, int, 1);
 /* flags     */ ATTRIB(Tuba, spawnflags, int, WEP_FLAG_HIDDEN | WEP_TYPE_SPLASH | WEP_FLAG_NODUAL | WEP_FLAG_NOTRUEAIM);
 /* rating    */ ATTRIB(Tuba, bot_pickupbasevalue, float, 2000);
-/* color     */ ATTRIB(Tuba, m_color, vector, '0 1 0');
+/* color     */ ATTRIB(Tuba, m_color, vector, '0.909 0.816 0.345');
 /* modelname */ ATTRIB(Tuba, mdl, string, "tuba");
 #ifdef GAMEQC
 /* model     */ ATTRIB(Tuba, m_model, Model, MDL_TUBA_ITEM);
index a3e959f31f38b96831bf6dcafebe310e3c0cc524..5a91d4ff952c0dc4ebe0314cc222575022e02554 100644 (file)
@@ -6,7 +6,7 @@ CLASS(Vaporizer, Weapon)
 /* impulse   */ ATTRIB(Vaporizer, impulse, int, 7);
 /* flags     */ ATTRIB(Vaporizer, spawnflags, int, WEP_FLAG_RELOADABLE | WEP_FLAG_CANCLIMB | WEP_FLAG_SUPERWEAPON | WEP_TYPE_HITSCAN | WEP_FLAG_NODUAL);
 /* rating    */ ATTRIB(Vaporizer, bot_pickupbasevalue, float, 10000);
-/* color     */ ATTRIB(Vaporizer, m_color, vector, '0.5 1 1');
+/* color     */ ATTRIB(Vaporizer, m_color, vector, '0.592 0.557 0.824');
 /* modelname */ ATTRIB(Vaporizer, mdl, string, "minstanex");
 #ifdef GAMEQC
 /* model     */ ATTRIB(Vaporizer, m_model, Model, MDL_VAPORIZER_ITEM);
index 30d31167436aabc7d645f629e1ba1b8b391bc77f..8c988fa81b4b8d424c0ede6c4e486604d3448ac6 100644 (file)
@@ -6,7 +6,7 @@ CLASS(Vortex, Weapon)
 /* impulse   */ ATTRIB(Vortex, impulse, int, 7);
 /* flags     */ ATTRIB(Vortex, spawnflags, int, WEP_FLAG_NORMAL | WEP_FLAG_RELOADABLE | WEP_TYPE_HITSCAN);
 /* rating    */ ATTRIB(Vortex, bot_pickupbasevalue, float, 8000);
-/* color     */ ATTRIB(Vortex, m_color, vector, '0.5 1 1');
+/* color     */ ATTRIB(Vortex, m_color, vector, '0.459 0.765 0.835');
 /* modelname */ ATTRIB(Vortex, mdl, string, "nex");
 #ifdef GAMEQC
 /* model     */ ATTRIB(Vortex, m_model, Model, MDL_VORTEX_ITEM);
index f5a49e1b0bd5e2db347b316f8226a82d6ca97cb9..016057b20810dba85465e4623d855e8db8e313d5 100644 (file)
Binary files a/textures/projectiles/hlac_projectile_core.tga and b/textures/projectiles/hlac_projectile_core.tga differ
index f5a49e1b0bd5e2db347b316f8226a82d6ca97cb9..f5027018fbf4a7b67659019ca097a9046e44858d 100644 (file)
Binary files a/textures/projectiles/hlac_projectile_core_glow.tga and b/textures/projectiles/hlac_projectile_core_glow.tga differ
index a7e68da2dc1022778d7aab9db19b7c7dd4fa9cb9..86a250c83c63d801e4dc404e6a61bda7d92498ad 100644 (file)
Binary files a/textures/projectiles/hlac_projectile_long.tga and b/textures/projectiles/hlac_projectile_long.tga differ
index a7e68da2dc1022778d7aab9db19b7c7dd4fa9cb9..0885853424be4f64aada5a3799bd3eeb9fa86465 100644 (file)
Binary files a/textures/projectiles/hlac_projectile_long_glow.tga and b/textures/projectiles/hlac_projectile_long_glow.tga differ