From: k9er Date: Mon, 13 Jan 2025 18:06:31 +0000 (+0000) Subject: Improve weapon colors, and make HLAC green X-Git-Url: https://git.rm.cloudns.org/?a=commitdiff_plain;h=e159917739fb544d0ca2f57bc604a275c5793f2b;p=xonotic%2Fxonotic-data.pk3dir.git Improve weapon colors, and make HLAC green --- diff --git a/effectinfo.txt b/effectinfo.txt index 8e3230d66..1e5af3a25 100644 --- a/effectinfo.txt +++ b/effectinfo.txt @@ -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 diff --git a/gfx/hud/luma/ok_weapon_smg.tga b/gfx/hud/luma/ok_weapon_smg.tga index cb26a1657..1b10823b5 100644 Binary files a/gfx/hud/luma/ok_weapon_smg.tga and b/gfx/hud/luma/ok_weapon_smg.tga differ diff --git a/gfx/hud/luma/weaponarc.tga b/gfx/hud/luma/weaponarc.tga index adaeff531..fe070beef 100644 Binary files a/gfx/hud/luma/weaponarc.tga and b/gfx/hud/luma/weaponarc.tga differ diff --git a/gfx/hud/luma/weapongrenadelauncher.tga b/gfx/hud/luma/weapongrenadelauncher.tga index 9cb32288b..e8c2b8f70 100644 Binary files a/gfx/hud/luma/weapongrenadelauncher.tga and b/gfx/hud/luma/weapongrenadelauncher.tga differ diff --git a/gfx/hud/luma/weaponhagar.tga b/gfx/hud/luma/weaponhagar.tga index 63a8b608d..788371d27 100644 Binary files a/gfx/hud/luma/weaponhagar.tga and b/gfx/hud/luma/weaponhagar.tga differ diff --git a/gfx/hud/luma/weaponhlac.tga b/gfx/hud/luma/weaponhlac.tga index 2208b8363..8796045e4 100644 Binary files a/gfx/hud/luma/weaponhlac.tga and b/gfx/hud/luma/weaponhlac.tga differ diff --git a/gfx/hud/luma/weaponhook.tga b/gfx/hud/luma/weaponhook.tga index a3d2b886d..fe7725df6 100644 Binary files a/gfx/hud/luma/weaponhook.tga and b/gfx/hud/luma/weaponhook.tga differ diff --git a/gfx/hud/luma/weaponminelayer.tga b/gfx/hud/luma/weaponminelayer.tga index 0f0069d3a..199d93e08 100644 Binary files a/gfx/hud/luma/weaponminelayer.tga and b/gfx/hud/luma/weaponminelayer.tga differ diff --git a/gfx/hud/luma/weaponporto.tga b/gfx/hud/luma/weaponporto.tga index 5ee816970..35eae3530 100644 Binary files a/gfx/hud/luma/weaponporto.tga and b/gfx/hud/luma/weaponporto.tga differ diff --git a/gfx/hud/luma/weaponrifle.tga b/gfx/hud/luma/weaponrifle.tga index 036845c47..6b6bc0590 100644 Binary files a/gfx/hud/luma/weaponrifle.tga and b/gfx/hud/luma/weaponrifle.tga differ diff --git a/gfx/hud/luma/weaponseeker.tga b/gfx/hud/luma/weaponseeker.tga index 17645a674..a7f6621f3 100644 Binary files a/gfx/hud/luma/weaponseeker.tga and b/gfx/hud/luma/weaponseeker.tga differ diff --git a/gfx/hud/luma/weapontuba.tga b/gfx/hud/luma/weapontuba.tga index 47acf244f..4a5b57ac0 100644 Binary files a/gfx/hud/luma/weapontuba.tga and b/gfx/hud/luma/weapontuba.tga differ diff --git a/gfx/hud/luma/weaponuzi.tga b/gfx/hud/luma/weaponuzi.tga index 5aee32ab5..8915dc840 100644 Binary files a/gfx/hud/luma/weaponuzi.tga and b/gfx/hud/luma/weaponuzi.tga differ diff --git a/models/hlac_bullet.tga b/models/hlac_bullet.tga index 8b49da395..288d2bcae 100644 Binary files a/models/hlac_bullet.tga and b/models/hlac_bullet.tga differ diff --git a/models/weapons/g_arc_luma.tga b/models/weapons/g_arc_luma.tga index b899eda9a..ff9b58d77 100644 Binary files a/models/weapons/g_arc_luma.tga and b/models/weapons/g_arc_luma.tga differ diff --git a/models/weapons/g_campingrifle_luma.tga b/models/weapons/g_campingrifle_luma.tga index 5f8e13548..23356ba65 100644 Binary files a/models/weapons/g_campingrifle_luma.tga and b/models/weapons/g_campingrifle_luma.tga differ diff --git a/models/weapons/g_gl_luma.tga b/models/weapons/g_gl_luma.tga index 4e0ac91a3..cf4840e05 100644 Binary files a/models/weapons/g_gl_luma.tga and b/models/weapons/g_gl_luma.tga differ diff --git a/models/weapons/g_hagar_luma.tga b/models/weapons/g_hagar_luma.tga index 1a980606a..cd180c62a 100644 Binary files a/models/weapons/g_hagar_luma.tga and b/models/weapons/g_hagar_luma.tga differ diff --git a/models/weapons/g_hlac_luma.tga b/models/weapons/g_hlac_luma.tga index 0e938ad5f..08b708020 100644 Binary files a/models/weapons/g_hlac_luma.tga and b/models/weapons/g_hlac_luma.tga differ diff --git a/models/weapons/g_hookgun_luma.tga b/models/weapons/g_hookgun_luma.tga index 4ce22fb31..d6d2ba000 100644 Binary files a/models/weapons/g_hookgun_luma.tga and b/models/weapons/g_hookgun_luma.tga differ diff --git a/models/weapons/g_minelayer_luma.tga b/models/weapons/g_minelayer_luma.tga index ff1e667c1..4c10edd11 100644 Binary files a/models/weapons/g_minelayer_luma.tga and b/models/weapons/g_minelayer_luma.tga differ diff --git a/models/weapons/g_porto_luma.tga b/models/weapons/g_porto_luma.tga index 93bef14a1..dc587505c 100644 Binary files a/models/weapons/g_porto_luma.tga and b/models/weapons/g_porto_luma.tga differ diff --git a/models/weapons/g_seeker_luma.tga b/models/weapons/g_seeker_luma.tga index 12405eed9..a82789b93 100644 Binary files a/models/weapons/g_seeker_luma.tga and b/models/weapons/g_seeker_luma.tga differ diff --git a/models/weapons/g_tuba_luma.tga b/models/weapons/g_tuba_luma.tga index 82785e6f4..a4d0b4a78 100644 Binary files a/models/weapons/g_tuba_luma.tga and b/models/weapons/g_tuba_luma.tga differ diff --git a/models/weapons/g_uzi_luma.tga b/models/weapons/g_uzi_luma.tga index 8a05499b8..3d133fd79 100644 Binary files a/models/weapons/g_uzi_luma.tga and b/models/weapons/g_uzi_luma.tga differ diff --git a/qcsrc/common/effects/all.inc b/qcsrc/common/effects/all.inc index 1bd7ad9ed..d98bbe9d4 100644 --- a/qcsrc/common/effects/all.inc +++ b/qcsrc/common/effects/all.inc @@ -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") diff --git a/qcsrc/common/effects/effectinfo.inc b/qcsrc/common/effects/effectinfo.inc index ad2800bb8..026a6adde 100644 --- a/qcsrc/common/effects/effectinfo.inc +++ b/qcsrc/common/effects/effectinfo.inc @@ -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! diff --git a/qcsrc/common/mutators/mutator/overkill/okhmg.qh b/qcsrc/common/mutators/mutator/overkill/okhmg.qh index 5393fa933..34c2bb0fd 100644 --- a/qcsrc/common/mutators/mutator/overkill/okhmg.qh +++ b/qcsrc/common/mutators/mutator/overkill/okhmg.qh @@ -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); diff --git a/qcsrc/common/mutators/mutator/overkill/okmachinegun.qh b/qcsrc/common/mutators/mutator/overkill/okmachinegun.qh index 367afca7c..b51c2fb69 100644 --- a/qcsrc/common/mutators/mutator/overkill/okmachinegun.qh +++ b/qcsrc/common/mutators/mutator/overkill/okmachinegun.qh @@ -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); diff --git a/qcsrc/common/mutators/mutator/overkill/oknex.qh b/qcsrc/common/mutators/mutator/overkill/oknex.qh index f90d3292a..6dfe2fc5f 100644 --- a/qcsrc/common/mutators/mutator/overkill/oknex.qh +++ b/qcsrc/common/mutators/mutator/overkill/oknex.qh @@ -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); diff --git a/qcsrc/common/mutators/mutator/overkill/okrpc.qh b/qcsrc/common/mutators/mutator/overkill/okrpc.qh index 7a3415156..64ec5a5e8 100644 --- a/qcsrc/common/mutators/mutator/overkill/okrpc.qh +++ b/qcsrc/common/mutators/mutator/overkill/okrpc.qh @@ -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); diff --git a/qcsrc/common/mutators/mutator/overkill/okshotgun.qh b/qcsrc/common/mutators/mutator/overkill/okshotgun.qh index 08cff024a..4f57b986f 100644 --- a/qcsrc/common/mutators/mutator/overkill/okshotgun.qh +++ b/qcsrc/common/mutators/mutator/overkill/okshotgun.qh @@ -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); diff --git a/qcsrc/common/weapons/weapon/arc.qh b/qcsrc/common/weapons/weapon/arc.qh index 31b829c59..c8dc31592 100644 --- a/qcsrc/common/weapons/weapon/arc.qh +++ b/qcsrc/common/weapons/weapon/arc.qh @@ -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); diff --git a/qcsrc/common/weapons/weapon/blaster.qh b/qcsrc/common/weapons/weapon/blaster.qh index a06652301..74c1fcedc 100644 --- a/qcsrc/common/weapons/weapon/blaster.qh +++ b/qcsrc/common/weapons/weapon/blaster.qh @@ -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); diff --git a/qcsrc/common/weapons/weapon/crylink.qh b/qcsrc/common/weapons/weapon/crylink.qh index 17f2b193c..c082ac02d 100644 --- a/qcsrc/common/weapons/weapon/crylink.qh +++ b/qcsrc/common/weapons/weapon/crylink.qh @@ -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); diff --git a/qcsrc/common/weapons/weapon/devastator.qh b/qcsrc/common/weapons/weapon/devastator.qh index 710e97421..2d69ae0da 100644 --- a/qcsrc/common/weapons/weapon/devastator.qh +++ b/qcsrc/common/weapons/weapon/devastator.qh @@ -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); diff --git a/qcsrc/common/weapons/weapon/electro.qh b/qcsrc/common/weapons/weapon/electro.qh index a8f22029a..4b79c5889 100644 --- a/qcsrc/common/weapons/weapon/electro.qh +++ b/qcsrc/common/weapons/weapon/electro.qh @@ -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); diff --git a/qcsrc/common/weapons/weapon/fireball.qh b/qcsrc/common/weapons/weapon/fireball.qh index af09a666c..216791dd6 100644 --- a/qcsrc/common/weapons/weapon/fireball.qh +++ b/qcsrc/common/weapons/weapon/fireball.qh @@ -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); diff --git a/qcsrc/common/weapons/weapon/hagar.qh b/qcsrc/common/weapons/weapon/hagar.qh index 64bbd6ab7..b460958d9 100644 --- a/qcsrc/common/weapons/weapon/hagar.qh +++ b/qcsrc/common/weapons/weapon/hagar.qh @@ -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); diff --git a/qcsrc/common/weapons/weapon/hlac.qc b/qcsrc/common/weapons/weapon/hlac.qc index 81f06fc1c..0b30d037f 100644 --- a/qcsrc/common/weapons/weapon/hlac.qc +++ b/qcsrc/common/weapons/weapon/hlac.qc @@ -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); } diff --git a/qcsrc/common/weapons/weapon/hlac.qh b/qcsrc/common/weapons/weapon/hlac.qh index 662f6dc5c..e5b25c91b 100644 --- a/qcsrc/common/weapons/weapon/hlac.qh +++ b/qcsrc/common/weapons/weapon/hlac.qh @@ -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); diff --git a/qcsrc/common/weapons/weapon/hook.qh b/qcsrc/common/weapons/weapon/hook.qh index 492bc5a9c..5ca68d1fa 100644 --- a/qcsrc/common/weapons/weapon/hook.qh +++ b/qcsrc/common/weapons/weapon/hook.qh @@ -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); diff --git a/qcsrc/common/weapons/weapon/machinegun.qh b/qcsrc/common/weapons/weapon/machinegun.qh index d6e6b61a6..89b014d14 100644 --- a/qcsrc/common/weapons/weapon/machinegun.qh +++ b/qcsrc/common/weapons/weapon/machinegun.qh @@ -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); diff --git a/qcsrc/common/weapons/weapon/minelayer.qh b/qcsrc/common/weapons/weapon/minelayer.qh index d6973a3fb..6b6976a2b 100644 --- a/qcsrc/common/weapons/weapon/minelayer.qh +++ b/qcsrc/common/weapons/weapon/minelayer.qh @@ -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); diff --git a/qcsrc/common/weapons/weapon/mortar.qh b/qcsrc/common/weapons/weapon/mortar.qh index 4da2388a4..bce9e4373 100644 --- a/qcsrc/common/weapons/weapon/mortar.qh +++ b/qcsrc/common/weapons/weapon/mortar.qh @@ -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); diff --git a/qcsrc/common/weapons/weapon/porto.qh b/qcsrc/common/weapons/weapon/porto.qh index 269152a15..0b9557d0b 100644 --- a/qcsrc/common/weapons/weapon/porto.qh +++ b/qcsrc/common/weapons/weapon/porto.qh @@ -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); diff --git a/qcsrc/common/weapons/weapon/rifle.qh b/qcsrc/common/weapons/weapon/rifle.qh index bf5633168..c5cc4e8f4 100644 --- a/qcsrc/common/weapons/weapon/rifle.qh +++ b/qcsrc/common/weapons/weapon/rifle.qh @@ -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); diff --git a/qcsrc/common/weapons/weapon/seeker.qh b/qcsrc/common/weapons/weapon/seeker.qh index f9e8609a0..f6a006df6 100644 --- a/qcsrc/common/weapons/weapon/seeker.qh +++ b/qcsrc/common/weapons/weapon/seeker.qh @@ -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); diff --git a/qcsrc/common/weapons/weapon/shockwave.qh b/qcsrc/common/weapons/weapon/shockwave.qh index b9b5855b5..d0ea5329a 100644 --- a/qcsrc/common/weapons/weapon/shockwave.qh +++ b/qcsrc/common/weapons/weapon/shockwave.qh @@ -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); diff --git a/qcsrc/common/weapons/weapon/shotgun.qh b/qcsrc/common/weapons/weapon/shotgun.qh index b53916163..7bc6e3dee 100644 --- a/qcsrc/common/weapons/weapon/shotgun.qh +++ b/qcsrc/common/weapons/weapon/shotgun.qh @@ -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); diff --git a/qcsrc/common/weapons/weapon/tuba.qh b/qcsrc/common/weapons/weapon/tuba.qh index 8d5982914..31a569d7b 100644 --- a/qcsrc/common/weapons/weapon/tuba.qh +++ b/qcsrc/common/weapons/weapon/tuba.qh @@ -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); diff --git a/qcsrc/common/weapons/weapon/vaporizer.qh b/qcsrc/common/weapons/weapon/vaporizer.qh index a3e959f31..5a91d4ff9 100644 --- a/qcsrc/common/weapons/weapon/vaporizer.qh +++ b/qcsrc/common/weapons/weapon/vaporizer.qh @@ -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); diff --git a/qcsrc/common/weapons/weapon/vortex.qh b/qcsrc/common/weapons/weapon/vortex.qh index 30d311674..8c988fa81 100644 --- a/qcsrc/common/weapons/weapon/vortex.qh +++ b/qcsrc/common/weapons/weapon/vortex.qh @@ -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); diff --git a/textures/projectiles/hlac_projectile_core.tga b/textures/projectiles/hlac_projectile_core.tga index f5a49e1b0..016057b20 100644 Binary files a/textures/projectiles/hlac_projectile_core.tga and b/textures/projectiles/hlac_projectile_core.tga differ diff --git a/textures/projectiles/hlac_projectile_core_glow.tga b/textures/projectiles/hlac_projectile_core_glow.tga index f5a49e1b0..f5027018f 100644 Binary files a/textures/projectiles/hlac_projectile_core_glow.tga and b/textures/projectiles/hlac_projectile_core_glow.tga differ diff --git a/textures/projectiles/hlac_projectile_long.tga b/textures/projectiles/hlac_projectile_long.tga index a7e68da2d..86a250c83 100644 Binary files a/textures/projectiles/hlac_projectile_long.tga and b/textures/projectiles/hlac_projectile_long.tga differ diff --git a/textures/projectiles/hlac_projectile_long_glow.tga b/textures/projectiles/hlac_projectile_long_glow.tga index a7e68da2d..088585342 100644 Binary files a/textures/projectiles/hlac_projectile_long_glow.tga and b/textures/projectiles/hlac_projectile_long_glow.tga differ