From 57253d54345db03381e6cd0ea54f04fd19d832b7 Mon Sep 17 00:00:00 2001 From: Marisa the Magician Date: Fri, 22 Jul 2022 20:19:57 +0200 Subject: [PATCH] Sheen HMG fully functional. May need touchups later. --- FuturePlans.md | 4 +- graphics/HUD/SheenBar.png | Bin 0 -> 83 bytes graphics/HUD/SheenBar0.png | Bin 97 -> 0 bytes graphics/HUD/SheenBar1.png | Bin 95 -> 0 bytes graphics/HUD/SheenBar2.png | Bin 95 -> 0 bytes graphics/HUD/SheenBar3.png | Bin 96 -> 0 bytes language.def_base | 8 +- language.def_lore | 2 +- language.def_menu | 1 + language.es_base | 10 +- language.es_lore | 2 +- language.es_menu | 1 + language.version | 4 +- lore/default/heavymahsheengun.txt | 2 +- lore/es/heavymahsheengun.txt | 2 +- modeldef.dlcammo | 10 +- modeldef.sheenhmg | 118 +++++++++++ models/SheenLED.png | Bin 2617 -> 3676 bytes models/SheenLED.xcf | Bin 13762 -> 15958 bytes shaders/glsl/SheenLED.fp | 35 ++++ sndinfo.dlcweapons | 8 +- sounds/dlc1/sheen/sheen_case1.ogg | Bin 0 -> 15172 bytes sounds/dlc1/sheen/sheen_case2.ogg | Bin 0 -> 13953 bytes sounds/dlc1/sheen/sheen_case3.ogg | Bin 0 -> 15403 bytes sounds/dlc1/sheen/sheen_case4.ogg | Bin 0 -> 13508 bytes sounds/dlc1/sheen/sheen_overheat.ogg | Bin 0 -> 11959 bytes sounds/dlc1/sheen/sheen_unlock.ogg | Bin 0 -> 7226 bytes zscript/dlc1/swwm_ammoitems_dlc.zsc | 12 +- zscript/dlc1/swwm_dlcweapons_hud.zsc | 14 +- zscript/dlc1/swwm_heavymahsheengun.zsc | 230 +++++++++++++++++++--- zscript/dlc1/swwm_heavymahsheengun_fx.zsc | 107 ++++++++++ zscript/handler/swwm_handler_process.zsc | 31 --- zscript/kbase/swwm_kbasetab_store.zsc | 13 ++ zscript/swwm_player.zsc | 5 +- zscript/swwm_thinkers_player.zsc | 1 + zscript/weapons/swwm_baseweapon.zsc | 2 +- 36 files changed, 528 insertions(+), 94 deletions(-) create mode 100644 graphics/HUD/SheenBar.png delete mode 100644 graphics/HUD/SheenBar0.png delete mode 100644 graphics/HUD/SheenBar1.png delete mode 100644 graphics/HUD/SheenBar2.png delete mode 100644 graphics/HUD/SheenBar3.png create mode 100644 shaders/glsl/SheenLED.fp create mode 100644 sounds/dlc1/sheen/sheen_case1.ogg create mode 100644 sounds/dlc1/sheen/sheen_case2.ogg create mode 100644 sounds/dlc1/sheen/sheen_case3.ogg create mode 100644 sounds/dlc1/sheen/sheen_case4.ogg create mode 100644 sounds/dlc1/sheen/sheen_overheat.ogg create mode 100644 sounds/dlc1/sheen/sheen_unlock.ogg diff --git a/FuturePlans.md b/FuturePlans.md index 0ab12f589..84cc75657 100644 --- a/FuturePlans.md +++ b/FuturePlans.md @@ -13,8 +13,8 @@ More weapons, because we need 'em. In addition, all the "easy to implement" mini - High Noon *(Land 6 killing shots in a single Puntzer Beta reload)* - [4] Puntzer Gamma *(Ultra Suite 2)* - You Gained Brouzouf *(Unload an entire mag in fuller auto with the Puntzer Gamma without missing a single shot)* - - [5] Sheen HMG *(SWWM Platinum Ep2)* - - Dakka *(Fire the Sheen HMG at 700 RPM for 30 seconds straight)* + - ✓ [5] Sheen HMG *(SWWM Platinum Ep2)* + - ✓ Dakka *(Fire the Sheen HMG at 700 RPM for 30 seconds straight)* - [6] Quadravol *(UnSX)* - Gravely Roast *(Perform 50 bayonet combos with the Quadravol)* - [7] Sparkster x3 *(UnSX 2)* diff --git a/graphics/HUD/SheenBar.png b/graphics/HUD/SheenBar.png new file mode 100644 index 0000000000000000000000000000000000000000..91230b90451e2b09ab7a3cf7b8596c9b6ba5cc08 GIT binary patch literal 83 zcmeAS@N?(olHy`uVBq!ia0y~yU=U(pU|{B8V_;yI=MtaEz`!8o>Eal|aXs1Q@PQBW n8@U=j+E3+4vOMh|%fN8&3(MSX>Y;rM3=9mOu6{1-oD!M<_!Jg9 literal 0 HcmV?d00001 diff --git a/graphics/HUD/SheenBar0.png b/graphics/HUD/SheenBar0.png deleted file mode 100644 index f4e3d5cb3f9e224de76810a814975abaf8bcfac8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 97 zcmeAS@N?(olHy`uVBq!ia0y~yU=U_tU|`{3V_;y&X=ZuPz`&s4>Eak7aXHx}E#b#` z2iAgVjg1qJ&SE)e%fZ9E6hCsv$Wz^87!DsudR}a^I>3MVDNPHb6Mw<&;$T= C(iEak7aXHy1IpN27 z2Udgb#>R<9XEbI#usFVdQ&MBb@09~LP A?f?J) diff --git a/graphics/HUD/SheenBar2.png b/graphics/HUD/SheenBar2.png deleted file mode 100644 index 81bbcf1a134a21e331c4734f63a53e6d37fc2b02..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 95 zcmeAS@N?(olHy`uVBq!ia0y~yU=U_tU|`{3V_;y&X=ZuPz`&s9>Eak7aXER;$pate zH*zV=ZET!)bVg&=1N+mFuOyEh;4q#l)yBwhO_r5&|7^#33=9kmp00i_>zopr0FBff Ay8r+H diff --git a/graphics/HUD/SheenBar3.png b/graphics/HUD/SheenBar3.png deleted file mode 100644 index 8a5b9a8b862ae6d31cfcd209c20365556a8b11e3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 96 zcmeAS@N?(olHy`uVBq!ia0y~yU=U_tU|`{3V_;y&X=ZuPz`&sH>Eak7aXH!M@PQBW z8@Ud&G&WBBXg`%FIVB+>!Sb|&?E#LZD<4@gJj`XiT<5)6mVtqR!PC{xWt~$(69Amz B9Y_EG diff --git a/language.def_base b/language.def_base index e02e24187..15552530b 100644 --- a/language.def_base +++ b/language.def_base @@ -788,9 +788,9 @@ TT_PUNTZERGAMMA = "\cfAltfire:\c- Fuller-auto fire.\n" "\cfReload:\c- Reload weapon."; TT_SHEENHMG = -"\cfFire:\c- Slow fire.\n" -"\cfAltfire:\c- Moderate fire.\n" -"\cfZoom:\c- Fast fire."; +"\cfFire:\c- Shoot weapon.\n" +"\cfAltfire:\c- Increase speed.\n" +"\cfZoom:\c- Decrease speed."; TT_QUADRAVOL = "\cfFire:\c- Shoot weapon.\n" "\cfAltfire:\c- Pump weapon.\n" @@ -810,7 +810,7 @@ TT_RAYKHOM = "\cfZoom:\c- Use scope."; TT_MORTALRIFLE = "\cfFire:\c- Shoot weapon.\n" -"\cfAltfire:\c- Shoot grenade.\n" +"\cfAltfire:\c- Shoot/reload grenade.\n" "\cfZoom:\c- Cycle fire modes.\n" "\cfReload:\c- Reload weapon."; TT_RAFANKOS = diff --git a/language.def_lore b/language.def_lore index afe03f0b0..f6db3a4ed 100644 --- a/language.def_lore +++ b/language.def_lore @@ -1459,7 +1459,7 @@ SWWM_LORETXT_HEAVYMAHSHEENGUN = "\n" "\cf300 RPM:\c- A slow spin. Sustained fire in this mode is theoretically endless, as the heat produced can be efficiently nullified by the internal cooling systems, it is therefore the recommended mode for most situations.\n" "\n" -"\cf700 RPM:\c- Much faster spin, with moderate heat buildup. It's still possible to keep firing in this mode for about a minute or so from a cold start. If you need to deliver more pain and have the ammunition to spare, choose this.\n" +"\cf700 RPM:\c- Much faster spin, with moderate heat buildup. It's still possible to keep firing within operational temperature for an extended period of time, albeit less accurately. If you need to deliver more pain and have the ammunition to spare, choose this.\n" "\n" "\cf2100 RPM:\c- Extremely fast, with the highest heat potential. Sustained fire in this mode may quickly trigger the weapon's safety lock should the rising heat get too close to non-operational temperature. If you want things dead fast and don't care about running out of ammo in a matter of seconds, do pick this.\n" "\n" diff --git a/language.def_menu b/language.def_menu index 27f2e3aa0..37a6dcd7e 100644 --- a/language.def_menu +++ b/language.def_menu @@ -494,6 +494,7 @@ SWWM_KBASETAB = "Library"; SWWM_STORETAB = "Store"; SWWM_STOREFULL = "You can't hold more of that."; SWWM_STOREMUNS = "You don't have enough money."; +SWWM_STORESWAP = "You already own a weapon in the same slot: %s."; SWWM_NOSTORE = "(no items left to buy)"; SWWM_NOSTORESELL = "(no items to be sold)"; SWWM_CHATTAB = "Messages"; diff --git a/language.es_base b/language.es_base index 66af7cdc5..c36faa119 100644 --- a/language.es_base +++ b/language.es_base @@ -667,7 +667,7 @@ TT_PLASMABLAST = TT_PLASMABLAST2 = "\cfPrimario:\c- Disparar arma derecha.\n" "\cfSecundario:\c- Disparar arma izquierda.\n" -"\cfRecarga:\c- Recargar arna(s)."; +"\cfRecarga:\c- Recargar arma(s)."; TT_PUNTZERBETA = "\cfPrimario:\c- Disparar arma.\n" "\cfSecundario:\c- Modo de disparo rápido.\n" @@ -677,9 +677,9 @@ TT_PUNTZERGAMMA = "\cfSecundario:\c- Fuego super-automático.\n" "\cfRecarga:\c- Recargar arma."; TT_SHEENHMG = -"\cfPrimario:\c- Fuego lento.\n" -"\cfSecundario:\c- Fuego moderado.\n" -"\cfZoom:\c- Fuego rápido."; +"\cfPrimario:\c- Disparar arma.\n" +"\cfSecundario:\c- Incrementar velocidad.\n" +"\cfZoom:\c- Reducir velocidad."; TT_QUADRAVOL = "\cfPrimario:\c- Disparar arma.\n" "\cfSecundario:\c- Bombear arma.\n" @@ -699,7 +699,7 @@ TT_RAYKHOM = "\cfZoom:\c- Usar mira."; TT_MORTALRIFLE = "\cfPrimario:\c- Disparar arma.\n" -"\cfSecundario:\c- Disparar granada.\n" +"\cfSecundario:\c- Disparar/recargar granada.\n" "\cfZoom:\c- Cambiar modo de disparo.\n" "\cfRecarga:\c- Recargar arma."; TT_RAFANKOS = diff --git a/language.es_lore b/language.es_lore index 9240b6b18..6a79fb384 100644 --- a/language.es_lore +++ b/language.es_lore @@ -1350,7 +1350,7 @@ SWWM_LORETXT_HEAVYMAHSHEENGUN = "\n" "\cf300 RPM:\c- Velocidad lenta. El fuego prolongado en este modo es en teoría infinito, ya que el calor producido puede ser anulado eficientemente por los sistemas de refrigeración internos, es entonces el modo recomendado para la mayoría de situaciones.\n" "\n" -"\cf700 RPM:\c- Mayor velocidad, con calentamiento moderado. Aun es posible el fuego continuado en este modo, durante al menos un minuto aproximadamente desde un inicio en frío. Si necesitas repartir más dolor y tienes munición de sobra, usa esto.\n" +"\cf700 RPM:\c- Mayor velocidad, con calentamiento moderado. El fuego prolongado sigue siendo posible dentro de la temperatura recomendada, aunque esto afectará a la puntería. Si necesitas repartir más dolor y tienes munición de sobra, usa esto.\n" "\n" "\cf2100 RPM:\c- Extremadamente rápido, con el mayor potencial de calor. El fuego prolongado en este modo puede activar rápidamente el bloqueo de seguridad del arma si el aumento de temperatura se acerca a niveles no operacionales. Si tienes prisa por matar y no te importa quedarte sin munición en pocos segundos, entonces elige esto.\n" "\n" diff --git a/language.es_menu b/language.es_menu index a11685b10..80709e873 100644 --- a/language.es_menu +++ b/language.es_menu @@ -459,6 +459,7 @@ SWWM_KBASETAB = "Biblioteca"; SWWM_STORETAB = "Tienda"; SWWM_STOREFULL = "No puedes llevar más de eso."; SWWM_STOREMUNS = "No tienes suficiente dinero."; +SWWM_STORESWAP = "Ya posees un arma en la misma ranura: %s."; SWWM_NOSTORE = "(no queda nada que comprar)"; SWWM_NOSTORESELL = "(no tienes ítems que vender)"; SWWM_CHATTAB = "Mensajes"; diff --git a/language.version b/language.version index 7e5b89acc..9d6ff6520 100644 --- a/language.version +++ b/language.version @@ -1,3 +1,3 @@ [default] -SWWM_MODVER="\cyDEMOLITIONIST \cw1.3pre r195 \cu(Fri 22 Jul 01:34:12 CEST 2022)\c-"; -SWWM_SHORTVER="\cw1.3pre r195 \cu(2022-07-22 01:34:12)\c-"; +SWWM_MODVER="\cyDEMOLITIONIST \cw1.3pre r197 \cu(Fri 22 Jul 20:20:58 CEST 2022)\c-"; +SWWM_SHORTVER="\cw1.3pre r197 \cu(2022-07-22 20:20:58)\c-"; diff --git a/lore/default/heavymahsheengun.txt b/lore/default/heavymahsheengun.txt index 6bb84ad28..2e5e40693 100644 --- a/lore/default/heavymahsheengun.txt +++ b/lore/default/heavymahsheengun.txt @@ -22,7 +22,7 @@ The weapon is rated for three speeds: \cf300 RPM:\c- A slow spin. Sustained fire in this mode is theoretically endless, as the heat produced can be efficiently nullified by the internal cooling systems, it is therefore the recommended mode for most situations. -\cf700 RPM:\c- Much faster spin, with moderate heat buildup. It's still possible to keep firing in this mode for about a minute or so from a cold start. If you need to deliver more pain and have the ammunition to spare, choose this. +\cf700 RPM:\c- Much faster spin, with moderate heat buildup. It's still possible to keep firing within operational temperature for an extended period of time, albeit less accurately. If you need to deliver more pain and have the ammunition to spare, choose this. \cf2100 RPM:\c- Extremely fast, with the highest heat potential. Sustained fire in this mode may quickly trigger the weapon's safety lock should the rising heat get too close to non-operational temperature. If you want things dead fast and don't care about running out of ammo in a matter of seconds, do pick this. diff --git a/lore/es/heavymahsheengun.txt b/lore/es/heavymahsheengun.txt index 0eae0167e..11b737e64 100644 --- a/lore/es/heavymahsheengun.txt +++ b/lore/es/heavymahsheengun.txt @@ -18,7 +18,7 @@ El arma está preparada para tres velocidades: \cf300 RPM:\c- Velocidad lenta. El fuego prolongado en este modo es en teoría infinito, ya que el calor producido puede ser anulado eficientemente por los sistemas de refrigeración internos, es entonces el modo recomendado para la mayoría de situaciones. -\cf700 RPM:\c- Mayor velocidad, con calentamiento moderado. Aun es posible el fuego continuado en este modo, durante al menos un minuto aproximadamente desde un inicio en frío. Si necesitas repartir más dolor y tienes munición de sobra, usa esto. +\cf700 RPM:\c- Mayor velocidad, con calentamiento moderado. El fuego prolongado sigue siendo posible dentro de la temperatura recomendada, aunque esto afectará a la puntería. Si necesitas repartir más dolor y tienes munición de sobra, usa esto. \cf2100 RPM:\c- Extremadamente rápido, con el mayor potencial de calor. El fuego prolongado en este modo puede activar rápidamente el bloqueo de seguridad del arma si el aumento de temperatura se acerca a niveles no operacionales. Si tienes prisa por matar y no te importa quedarte sin munición en pocos segundos, entonces elige esto. diff --git a/modeldef.dlcammo b/modeldef.dlcammo index 674a7e188..2021384f4 100644 --- a/modeldef.dlcammo +++ b/modeldef.dlcammo @@ -70,7 +70,7 @@ Model "SheenAmmo" Model 0 "SheenBullet_d.3d" Skin 0 "SheenBullet.png" - Scale 0.04 0.04 0.04 + Scale 0.025 0.025 0.025 ZOffset 16 PitchOffset 30 ROTATING @@ -83,7 +83,7 @@ Model "SheenAmmo2" Model 0 "SheenBullet2_d.3d" Skin 0 "SheenBullet.png" - Scale 0.04 0.04 0.04 + Scale 0.025 0.025 0.025 ZOffset 16 ROTATING @@ -95,7 +95,7 @@ Model "SheenAmmo3" Model 0 "SheenBullet3_d.3d" Skin 0 "SheenBullet.png" - Scale 0.04 0.04 0.04 + Scale 0.025 0.025 0.025 ZOffset 16 ROTATING @@ -108,7 +108,7 @@ Model "SheenSmallAmmo" Model 0 "SheenBullet10_d.3d" SurfaceSkin 0 0 "SheenBullet.png" SurfaceSkin 0 1 "SheenAmmoBand.png" - Scale 0.04 0.04 0.04 + Scale 0.025 0.025 0.025 ZOffset 16 ROTATING @@ -120,7 +120,7 @@ Model "SheenBigAmmo" Model 0 "SheenBullet50_d.3d" Skin 0 "SheenAmmoBox.png" - Scale 0.08 0.08 0.08 + Scale 0.05 0.05 0.05 ZOffset 16 ROTATING diff --git a/modeldef.sheenhmg b/modeldef.sheenhmg index c5d867e2c..39b205ba8 100644 --- a/modeldef.sheenhmg +++ b/modeldef.sheenhmg @@ -1,3 +1,86 @@ +Model "SheenTrail" +{ + Path "models/extra" + + Model 0 "BaseBeam_d.3d" + Scale 1.5625 0.05 0.05 + Offset 200 0 0 + DONTCULLBACKFACES + USEACTORPITCH + USEACTORROLL + + Skin 0 "dlc/SheenTracer.png" + FrameIndex XZW1 A 0 0 + // recolors, whew + Skin 0 "dlc/SheenTracer_White.png" + FrameIndex XZW1 B 0 0 + Skin 0 "dlc/SheenTracer_Red.png" + FrameIndex XZW1 C 0 0 + Skin 0 "dlc/SheenTracer_Yellow.png" + FrameIndex XZW1 D 0 0 + Skin 0 "dlc/SheenTracer_Green.png" + FrameIndex XZW1 E 0 0 + Skin 0 "dlc/SheenTracer_Cyan.png" + FrameIndex XZW1 F 0 0 + Skin 0 "dlc/SheenTracer_Blue.png" + FrameIndex XZW1 G 0 0 + Skin 0 "dlc/SheenTracer_Magenta.png" + FrameIndex XZW1 H 0 0 + Skin 0 "dlc/SheenTracer_TransBlue.png" + FrameIndex XZW1 I 0 0 + Skin 0 "dlc/SheenTracer_TransPink.png" + FrameIndex XZW1 J 0 0 +} +Model "SheenPhantom" +{ + Path "models/extra" + + Model 0 "BaseBeam_d.3d" + Scale 0.1953125 0.02 0.02 + Offset 25 0 0 + DONTCULLBACKFACES + USEACTORPITCH + USEACTORROLL + + Skin 0 "ChunkTrail.png" + FrameIndex XZW1 A 0 0 + // recolors, whew + Skin 0 "ChunkTrail_White.png" + FrameIndex XZW1 B 0 0 + Skin 0 "ChunkTrail_Red.png" + FrameIndex XZW1 C 0 0 + Skin 0 "ChunkTrail_Yellow.png" + FrameIndex XZW1 D 0 0 + Skin 0 "ChunkTrail_Green.png" + FrameIndex XZW1 E 0 0 + Skin 0 "ChunkTrail_Cyan.png" + FrameIndex XZW1 F 0 0 + Skin 0 "ChunkTrail_Blue.png" + FrameIndex XZW1 G 0 0 + Skin 0 "ChunkTrail_Magenta.png" + FrameIndex XZW1 H 0 0 + Skin 0 "ChunkTrail_TransBlue.png" + FrameIndex XZW1 I 0 0 + Skin 0 "ChunkTrail_TransPink.png" + FrameIndex XZW1 J 0 0 +} + +Model "SheenCasing" +{ + Path "models" + + Model 0 "SheenBulletCase_d.3d" + Skin 0 "SheenBullet_Fired.png" + Scale 0.025 0.025 0.025 + AngleOffset -90 + USEACTORPITCH + USEACTORROLL + + FrameIndex XZW1 A 0 0 + ZOffset 0.5 + FrameIndex XZW1 B 0 0 +} + Model "HeavyMahSheenGun" { Path "models" @@ -13,6 +96,41 @@ Model "HeavyMahSheenGun" FrameIndex XZW1 A 0 0 } +Model "HeavyMahSheenGun" +{ + Path "models/extra" + + Model 2 "Flat_d.3d" + Offset 0 -60 -15 + RollOffset 90 + AngleOffset 90 + + Scale 0.12 0.12 0.12 + Skin 2 "dlc/SheenMuz0.png" + FrameIndex XZW0 A 2 0 + Scale 0.11 0.11 0.11 + Skin 2 "dlc/SheenMuz1.png" + FrameIndex XZW0 B 2 0 + Scale 0.10 0.10 0.10 + Skin 2 "dlc/SheenMuz2.png" + FrameIndex XZW0 C 2 0 + Scale 0.09 0.09 0.09 + Skin 2 "dlc/SheenMuz3.png" + FrameIndex XZW0 D 2 0 + Scale 0.08 0.08 0.08 + Skin 2 "dlc/SheenMuz4.png" + FrameIndex XZW0 E 2 0 + Scale 0.07 0.07 0.07 + Skin 2 "dlc/SheenMuz5.png" + FrameIndex XZW0 F 2 0 + Scale 0.06 0.06 0.06 + Skin 2 "dlc/SheenMuz6.png" + FrameIndex XZW0 G 2 0 + Scale 0.05 0.05 0.05 + Skin 2 "dlc/SheenMuz7.png" + FrameIndex XZW0 H 2 0 +} + Model "HeavyMahSheenGun" { Path "models" diff --git a/models/SheenLED.png b/models/SheenLED.png index 908169709e6175f187d78125eea763e78dcc997c..43598bf9e65c1aa53d231d7ad98fe034625fc032 100644 GIT binary patch literal 3676 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 diff --git a/models/SheenLED.xcf b/models/SheenLED.xcf index bbf70682c8c99eb9d142b06ddf0c031104425393..8775c6bf13f6763e93019befab4634919cb95150 100644 GIT binary patch literal 15958 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 CJ$!fo literal 13762 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 diff --git a/shaders/glsl/SheenLED.fp b/shaders/glsl/SheenLED.fp new file mode 100644 index 000000000..525d130cc --- /dev/null +++ b/shaders/glsl/SheenLED.fp @@ -0,0 +1,35 @@ +// this is a temporary gross hack + +void SetupMaterial( inout Material mat ) +{ + mat.Base = getTexel(vTexCoord.st); + // extract data from bytes of camtex + vec4 ccol = texture(camtex,vec2(.5)); + int xy = int(ccol.r*255.); // low and mid digits (*F = HOT, F* = OK) + int zw = int(ccol.g*255.); // high digit and speed (*F = blink) + int u = int(ccol.b*255.); // width of heat bar + int digit0 = zw&0x0F; + int digit1 = (xy&0xF0)>>4; + int digit2 = xy&0x0F; + if ( digit0 != 0x0F ) + { + vec2 tc; + if ( digit1 == 0x0F ) + { + // OK + } + else if ( digit2 == 0x0F ) + { + // HOT + } + else + { + // digits + tc = vec2(.125*(digit0%8),.5*(digit0/8)); + } + } + vec2 uv = vTexCoord.st*vec2(textureSize(tex,0)); + mat.Base *= 1.5*texture(pixtex,uv); + mat.Normal = ApplyNormalMap(vTexCoord.st); + mat.Bright = vec4(1.); +} diff --git a/sndinfo.dlcweapons b/sndinfo.dlcweapons index f6f3e1bc9..fe7d64073 100644 --- a/sndinfo.dlcweapons +++ b/sndinfo.dlcweapons @@ -62,7 +62,13 @@ sheen/700rpm sounds/dlc1/sheen/sheen_700rpm.ogg sheen/2100rpm sounds/dlc1/sheen/sheen_2100rpm.ogg sheen/crankin sounds/dlc1/sheen/sheen_crankin.ogg sheen/crankout sounds/dlc1/sheen/sheen_crankout.ogg -// TODO overheat alarm +sheen/overheat sounds/dlc1/sheen/sheen_overheat.ogg +sheen/unlock sounds/dlc1/sheen/sheen_unlock.ogg +sheen/casing1 sounds/dlc1/sheen/sheen_case1.ogg +sheen/casing2 sounds/dlc1/sheen/sheen_case2.ogg +sheen/casing3 sounds/dlc1/sheen/sheen_case3.ogg +sheen/casing4 sounds/dlc1/sheen/sheen_case4.ogg +$random sheen/casing { sheen/casing1 sheen/casing2 sheen/casing3 sheen/casing4 } quadshot/select sounds/dlc1/quadshot/quad_select.ogg quadshot/deselect sounds/dlc1/quadshot/quad_deselect.ogg diff --git a/sounds/dlc1/sheen/sheen_case1.ogg b/sounds/dlc1/sheen/sheen_case1.ogg new file mode 100644 index 0000000000000000000000000000000000000000..7dcb074797917dacf2c9b24eccc8bcd2b8b7e0b7 GIT binary patch literal 15172 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 Wi5rKxHznKm1k`4&_;m0XGamqtLQ8xA literal 0 HcmV?d00001 diff --git a/sounds/dlc1/sheen/sheen_case3.ogg b/sounds/dlc1/sheen/sheen_case3.ogg new file mode 100644 index 0000000000000000000000000000000000000000..61df96a63e49c6cc9cf5b67ba2f14eaa162d8f86 GIT binary patch literal 15403 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

bt(?1o2yW%vCUH~c%x+8}q%=+-yW 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 literal 0 HcmV?d00001 diff --git a/sounds/dlc1/sheen/sheen_overheat.ogg b/sounds/dlc1/sheen/sheen_overheat.ogg new file mode 100644 index 0000000000000000000000000000000000000000..6749f2d7f686c1986ba3c95127c8d9bf6ee75348 GIT binary patch literal 11959 zcmeZIPY-5bVt|6M>C>t~%;fsUaz;7Evizc?%wmuLBSS5SVqo~-&j@DhUBs0Vy69xu`h|GcvJ^!L~g`CW!FtG6oo(e_=Mg|7v1||v`L8&RF z$(ecS3a)u&nML_|xv6<2njrHTSs`X@@ED9xFi8<*U|?Zr(BSM_{LC}!oMpO%dSB53 z%S=Cu4}Dcj&Re!+S$5tzO;rxwNLB_0CI$x&#a59Z5RufO*d~$Gq1Y}{ zbV70YoFXo*6$_fUj7}&t`xw1kGTG1S<%-39RK@!TkKdZWzQiz@z~ zbOMDAQWVwjBrELupLkcKJ6gVd-X--<~xhySfUFPg<8LPMDp5CN$ zdJ_*=2?HYo3&=GL3o>Ud!$4_~(^3f|hl~?i3=T{T4#x{+ju)!92B{n`(qRXO@CgP6 z4hDxHoufr2?!_j@i*1e<+qjpwoSfow_KOccSP26YINBK)91LZS7RsEwsNx@_d%4Io zyx8`7vG4WL*leT2=#x@q|Qhuz&(uVj+h!55y)G28ND>PZVZd znDzOrCEu*43s#EEzI?DVWVZUwl{038V=(8OM^?&M7{Zd1)5=%9|0hi_b+~nDuPMPLbKg=Q^j%R^Pfa1Y#c8 z(Bg9|ND7Jv}q1Mmg-0Y>mJ1m3Sn?{BOmI}U z-7(4XFwf@)K^meiKFz(V=6wphhnB^7KDFR*at>o*2xMSrFg#&+M55@N=g9>w=L|XL zPB~$zzI5^>Pfguv62_XU%Y>32&sluQ^W>5#65d^Nmk1?yu4Q0oU|?rxVBlVOVS*^5 zg9rmd5>F79X6uxobDGa41f4Q`Dih>oxqMFWIZF=NmQ#jobDIS;m&yd6(>yNIa>nuL zoaPIT8Vn2y2N)R?4mfF;q_{E&s53k$P&q%@#9KtwTiEryNa}TA-|JIN&YGA8hJ>CL z4!s%@dRxplbepQLu&?izkWgXQP|?uK(|kj>=AJi6y%`dES1k1Ew$$5Vb>Y)W?;HC@ ziiKXi<{P@T^!l{g_-nbbGoVKKihzwW3%$P0G_WKzFf=tXBs8)tHS&9C__bPZk9 zt2eFry-MfxwiT;(tv$7A!|ZjdUvGQQeOTx9u7XwT)~(+31|+*{?dxNOuXh>LEYm!_ zZ1t;MD|hY6d%dgh%(h&a#j9TJ(>i@LX0U+>c2QmPmjT6%X%?Bnp%$nUxF<@2Jy zw{FU{-oN(uslwO0F8#1PpD(j>TdvIJJn8*we;@m-ZJ%h-w={j$w%k>#*3MqF`t_zf z?ZazcI|YW;#!gMWZyp;do_F88FZz1#qE)YUX`SA;;nXI>JIC^6b{ojV-ZtxtzCL%; zTJGB96W=+{XWu?n_}l97x6;Myc{q>vGcYtTg3^ZYDTjrM+Dr`=j0|jw&qaa-w2ms2 z2n4-SSQ28$rdaIfbyQ|bfLE5{lq*`t6hituPt2Jt`KyGg(YHMnYvRhMP;o#b|tDuFj>Ip`I3}#o}5d!fFz3jyq+&u!sq0*bcu+!mu}b@ z&yx!lUvl(VxkM<~bLG|muk58u#Js%>w~0jO8D5j|%G6yV6z!>bOe8p0_t-4uV+twf zJWqlw2ix&<#uPp$ubIu0yu8*9T8CAc^Q)+iSCmz1Cj464a}EY*upa-m9~!-@|;Kl%;#@TGCpO z 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 D$NXe{ literal 0 HcmV?d00001 diff --git a/zscript/dlc1/swwm_ammoitems_dlc.zsc b/zscript/dlc1/swwm_ammoitems_dlc.zsc index 60b7e0d79..37e4f4558 100644 --- a/zscript/dlc1/swwm_ammoitems_dlc.zsc +++ b/zscript/dlc1/swwm_ammoitems_dlc.zsc @@ -67,8 +67,8 @@ Class SheenAmmo : SWWMAmmo +FLOATBOB; FloatBobStrength 0.25; Accuracy 35; - Radius 4; - Height 24; + Radius 2; + Height 22; } States { @@ -82,7 +82,7 @@ Class SheenAmmo2 : SheenAmmo Default { Inventory.Amount 2; - Radius 6; + Radius 4; } } Class SheenAmmo3 : SheenAmmo @@ -90,7 +90,7 @@ Class SheenAmmo3 : SheenAmmo Default { Inventory.Amount 3; - Radius 6; + Radius 4; } } Class SheenSmallAmmo : SheenAmmo @@ -98,7 +98,7 @@ Class SheenSmallAmmo : SheenAmmo Default { Inventory.Amount 10; - Radius 6; + Radius 4; } } Class SheenBigAmmo : SheenAmmo @@ -106,7 +106,7 @@ Class SheenBigAmmo : SheenAmmo Default { Inventory.Amount 50; - Radius 16; + Radius 12; } } diff --git a/zscript/dlc1/swwm_dlcweapons_hud.zsc b/zscript/dlc1/swwm_dlcweapons_hud.zsc index 0f2028938..2945bade8 100644 --- a/zscript/dlc1/swwm_dlcweapons_hud.zsc +++ b/zscript/dlc1/swwm_dlcweapons_hud.zsc @@ -3,7 +3,7 @@ // Sheen HMG extend Class HeavyMahSheenGun { - ui TextureID WeaponBox, BulletTex[2], SpeedTex, BarTex[4]; + ui TextureID WeaponBox, BulletTex[2], SpeedTex, BarTex; override void DrawWeapon( double TicFrac, double bx, double by, double hs, Vector2 ss ) { @@ -11,16 +11,16 @@ extend Class HeavyMahSheenGun if ( !BulletTex[0] ) BulletTex[0] = TexMan.CheckForTexture("graphics/HUD/SheenRound.png",TexMan.Type_Any); if ( !BulletTex[1] ) BulletTex[1] = TexMan.CheckForTexture("graphics/HUD/SheenCasing.png",TexMan.Type_Any); if ( !SpeedTex ) SpeedTex = TexMan.CheckForTexture("graphics/HUD/SheenSpeed.png",TexMan.Type_Any); - if ( !BarTex[0] ) BarTex[0] = TexMan.CheckForTexture("graphics/HUD/SheenBar0.png",TexMan.Type_Any); - if ( !BarTex[1] ) BarTex[1] = TexMan.CheckForTexture("graphics/HUD/SheenBar1.png",TexMan.Type_Any); - if ( !BarTex[2] ) BarTex[2] = TexMan.CheckForTexture("graphics/HUD/SheenBar2.png",TexMan.Type_Any); - if ( !BarTex[3] ) BarTex[3] = TexMan.CheckForTexture("graphics/HUD/SheenBar3.png",TexMan.Type_Any); + if ( !BarTex ) BarTex = TexMan.CheckForTexture("graphics/HUD/SheenBar.png",TexMan.Type_Any); Screen.DrawTexture(WeaponBox,false,bx-23,by-24,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true); if ( firespeed == 0 ) for ( int i=0; i<2; i++ ) Screen.DrawTexture(SpeedTex,false,bx-21,(by-14)+i*8,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true); else if ( firespeed == 1 ) for ( int i=0; i<3; i++ ) Screen.DrawTexture(SpeedTex,false,bx-21,(by-14)+i*4,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true); else if ( firespeed == 2 ) for ( int i=0; i<5; i++ ) Screen.DrawTexture(SpeedTex,false,bx-21,(by-14)+i*2,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true); - // TODO heat bar - Screen.DrawText(NewConsoleFont,Font.CR_RED,64,64,String.Format("heat: %g\nshake: %g\nspread: %g\ntimer: %d",barrelheat,vibrate,aimerror,firetimer?((gametic-firetimer)/GameTicRate):0)); + double ht = clamp(HeatInter?HeatInter.GetValue(TicFrac):barrelheat,0.,100.); + double hw = ht*.18; + bool blinking = (incooldown)&&(gametic%8>=4); + Screen.DrawTexture(BarTex,false,bx-20,by-21,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_SrcWidth,hw,DTA_DestWidthF,hw,DTA_ColorOverlay,Color(255,0,0,0)); + Screen.DrawTexture(BarTex,false,bx-21,by-22,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_SrcWidth,hw,DTA_DestWidthF,hw,DTA_ColorOverlay,blinking?Color(128,0,0,0):Color(0,0,0,0)); bool isfired = !!fired; double firefact = 0.; if ( firespeed == 0 ) diff --git a/zscript/dlc1/swwm_heavymahsheengun.zsc b/zscript/dlc1/swwm_heavymahsheengun.zsc index 2f8632dd7..404cb9a03 100644 --- a/zscript/dlc1/swwm_heavymahsheengun.zsc +++ b/zscript/dlc1/swwm_heavymahsheengun.zsc @@ -7,37 +7,192 @@ Class HeavyMahSheenGun : SWWMWeapon int firespeed; double barrelheat, aimerror, vibrate; bool incooldown, stopfire, firstshot; - int firetimer; + int firetimer, shotcnt; + + transient ui SmoothDynamicValueInterpolator HeatInter; + transient SpreadSlugTracer st; + + override void HudTick() + { + Super.HudTick(); + if ( !HeatInter ) HeatInter = SmoothDynamicValueInterpolator.Create(barrelheat,.5,1.,25.); + HeatInter.Update(barrelheat); + } + + action void A_DropCasing() + { + Vector3 x, y, z; + [x, y, z] = swwm_CoordUtil.GetAxes(pitch,angle,roll); + Vector3 origin = level.Vec3Offset(Vec2OffsetZ(0,0,player.viewz),4*x+8*y-12*z); + let c = Spawn("SheenCasing",origin); + c.angle = angle; + c.pitch = pitch; + c.vel = x*FRandom[Junk](-.5,.5)+y*FRandom[Junk](.5,2.)-(0,0,FRandom[Junk](2.,5.)); + c.vel += vel*.5; + } action void A_SheenFire() { + double spreadfct = (1.+invoker.aimerror+(invoker.barrelheat/50.)+invoker.firespeed**2.); invoker.stopfire = ((invoker.Ammo1.Amount<=1)||!(player.cmd.buttons&BT_ATTACK)||(player.Health<=0)); invoker.barrelheat = invoker.barrelheat*(1.025-invoker.firespeed*.008)+3.-(invoker.firespeed**.8)*1.35; invoker.aimerror = min(1.,invoker.aimerror*1.01+.01+invoker.firespeed*.01); + Vector3 x, y, z; + [x, y, z] = swwm_CoordUtil.GetAxes(pitch,angle,roll); + Vector3 origin = level.Vec3Offset(Vec2OffsetZ(0,0,player.viewz),10*x-4*z); + SWWMHandler.DoFlash(self,Color(32,255,224,64),3); + A_SWWMFlash(); if ( invoker.firespeed == 1 ) { + A_AlertMonsters(swwm_uncapalert?0:3000); + A_BumpFOV(.98); + A_QuakeEx(2,2,2,4,0,1,"",QF_RELATIVE|QF_SCALEDOWN|QF_3D,rollIntensity:.2); A_StartSound("sheen/700rpm",CHAN_WEAPONEXTRA,CHANF_LOOPING,attenuation:.5); invoker.vibrate = .25; A_Overlay(-9999,"EjectRound3"); + SWWMUtility.DoKnockback(self,-x,9000.); SWWMUtility.AchievementProgress("dakka",(gametic-invoker.firetimer)/GameTicRate,player); } else if ( invoker.firespeed == 2 ) { + A_AlertMonsters(swwm_uncapalert?0:5000); + A_BumpFOV(.99+FRandom[Sheen](-.005,.005)); + A_QuakeEx(2,2,2,4,0,1,"",QF_RELATIVE|QF_SCALEDOWN|QF_3D,rollIntensity:.15); A_StartSound("sheen/2100rpm",CHAN_WEAPONEXTRA,CHANF_LOOPING,attenuation:.4); invoker.vibrate = min(1.,invoker.vibrate*1.05+.05); + SWWMUtility.DoKnockback(self,-x,15000.); A_Overlay(-9999,"EjectRound1"); } else if ( invoker.firespeed == 0 ) { + A_AlertMonsters(swwm_uncapalert?0:2000); + A_BumpFOV(.97); + A_QuakeEx(2,2,2,8,0,1,"",QF_RELATIVE|QF_SCALEDOWN|QF_3D,rollIntensity:.25); A_StartSound("sheen/fire",CHAN_WEAPON,CHANF_OVERLAP,attenuation:.6); + SWWMUtility.DoKnockback(self,-x,6000.); A_Overlay(-9999,"EjectRound7"); } - if ( invoker.barrelheat > 100. ) invoker.stopfire = invoker.incooldown = true; + if ( invoker.barrelheat > 100. ) + { + A_StartSound("sheen/overheat",CHAN_WEAPONEXTRA2,CHANF_LOOPING,attenuation:3.); + invoker.stopfire = invoker.incooldown = true; + } invoker.firstshot = true; if ( !sv_infiniteammo && !FindInventory('PowerInfiniteAmmo',true) ) invoker.Ammo1.Amount--; invoker.fired = gametic; - // TODO the actual firing itself + // dakka dakka dakka + Vector3 x2, y2, z2; + [x2, y2, z2] = swwm_CoordUtil.GetAxes(BulletSlope(),angle,roll); + double a = FRandom[Sheen](0,360), s = FRandom[Sheen](.002,.02)*spreadfct; + Vector3 dir = (x2+y2*cos(a)*s+z2*sin(a)*s).unit(); + if ( !invoker.st ) invoker.st = new("SpreadSlugTracer"); + let st = invoker.st; // thanks zscript + st.ignoreme = self; + st.penetration = 80.; + st.hitlist.Clear(); + st.shootthroughlist.Clear(); + st.waterhitlist.Clear(); + st.Trace(origin,level.PointInSector(origin.xy),dir,8000.,TRACE_HitSky); + if ( swwm_omnibust ) + { + // Wall busting + BusterWall.Bust(st.Results,int(st.penetration),self,st.Results.HitVector,st.Results.HitPos.z); + } + for ( int i=0; i 200. ) + { + int trail = CVar.GetCVar('swwm_funtrails',player).GetInt(); + if ( trail == 8 ) trail = Random[Sheen](1,7); + else if ( trail == 9 ) trail = 2+(invoker.shotcnt%6); + else if ( trail == 10 ) switch ( invoker.shotcnt%5 ) + { + case 0: + case 3: + trail = 8; + break; + case 1: + case 4: + trail = 9; + break; + case 2: + trail = 1; + break; + } + let t = Spawn("SheenTrail",origin); + t.target = self; + t.angle = atan2(dir.y,dir.x); + t.pitch = asin(-dir.z); + t.specialf1 = st.Results.Distance; + t.frame = trail; + } + invoker.shotcnt++; } action void A_CheckContinueFire() { @@ -46,11 +201,6 @@ Class HeavyMahSheenGun : SWWMWeapon } override void OwnerDied() { - if ( Owner.IsActorPlayingSound(CHAN_WEAPONEXTRA) ) - { - A_StopSound(CHAN_WEAPONEXTRA); - A_StartSound("sheen/fire",CHAN_WEAPON,CHANF_OVERLAP,attenuation:.6,starttime:.2); - } Super.OwnerDied(); aimerror = 0.; vibrate = 0.; @@ -64,21 +214,32 @@ Class HeavyMahSheenGun : SWWMWeapon override void DoEffect() { Super.DoEffect(); - barrelheat = max(0.,barrelheat*.99-.15); - if ( barrelheat <= 0. ) incooldown = false; + if ( incooldown ) barrelheat = max(0.,barrelheat*.995-.1); + else barrelheat = max(0.,barrelheat*.99-.15); + bool hascooled = false; + if ( barrelheat <= 0. ) + { + hascooled = incooldown; + incooldown = false; + } if ( !Owner || !Owner.player || (Owner.player.ReadyWeapon != self) ) { aimerror = 0.; vibrate = 0.; return; } + if ( hascooled ) + { + Owner.A_StopSound(CHAN_WEAPONEXTRA2); + Owner.A_StartSound("sheen/unlock",CHAN_WEAPONEXTRA2,CHANF_OVERLAP,attenuation:3.); + } let pspm = Owner.player.FindPSprite(PSP_WEAPON); if ( pspm ) { pspm.x = FRandom[Shivers](-1.,1.)*vibrate*4.; pspm.y = 32+FRandom[Shivers](-1.,1.)*vibrate*4.; } - aimerror *= .95; + aimerror *= .9; } override bool CheckAmmo( int firemode, bool autoswitch, bool requireammo, int ammocount ) { @@ -128,7 +289,11 @@ Class HeavyMahSheenGun : SWWMWeapon XZW1 A -1; Stop; Select: - XZW2 K 3 A_FullRaise(); + XZW2 K 3 + { + A_FullRaise(); + if ( invoker.incooldown ) A_StartSound("sheen/overheat",CHAN_WEAPONEXTRA2,CHANF_LOOPING,attenuation:3.); + } XZW2 LMNOP 3; XZW2 QRSTUV 2; XZW2 WX 3; @@ -136,6 +301,7 @@ Class HeavyMahSheenGun : SWWMWeapon Ready: XZW2 A 1 { + invoker.shotcnt = 0; invoker.firetimer = gametic; invoker.aimerror = 0.; invoker.vibrate = 0.; @@ -149,7 +315,7 @@ Class HeavyMahSheenGun : SWWMWeapon } Wait; Fire: - XZW2 A 1; + XZW2 A 2; XZW2 Z 1 { invoker.firstshot = false; @@ -320,29 +486,29 @@ Class HeavyMahSheenGun : SWWMWeapon XZW4 L 0; Goto VeryFastFireHold; EndFireFast7: - XZW4 MNO 1 { invoker.vibrate *= .25; } + XZW4 MNO 2 { invoker.vibrate *= .25; } Goto Ready; EndFireFast6: - XZW4 PQR 1 { invoker.vibrate *= .25; } + XZW4 PQR 2 { invoker.vibrate *= .25; } Goto Ready; EndFireFast5: - XZW4 STU 1 { invoker.vibrate *= .25; } + XZW4 STU 2 { invoker.vibrate *= .25; } Goto Ready; EndFireFast4: - XZW4 VWX 1 { invoker.vibrate *= .25; } + XZW4 VWX 2 { invoker.vibrate *= .25; } Goto Ready; EndFireFast3: - XZW4 YZ 1 { invoker.vibrate *= .25; } - XZW5 A 1 { invoker.vibrate *= .25; } + XZW4 YZ 2 { invoker.vibrate *= .25; } + XZW5 A 2 { invoker.vibrate *= .25; } Goto Ready; EndFireFast2: - XZW5 BCD 1 { invoker.vibrate *= .25; } + XZW5 BCD 2 { invoker.vibrate *= .25; } Goto Ready; EndFireFast1: - XZW5 EFG 1 { invoker.vibrate *= .25; } + XZW5 EFG 2 { invoker.vibrate *= .25; } Goto Ready; StopFire: - XZW2 Z 1 A_StopSound(CHAN_WEAPONEXTRA); // just in case + XZW2 Z 2 A_StopSound(CHAN_WEAPONEXTRA); // just in case Goto Ready; EjectRound7: TNT1 A 7; @@ -351,10 +517,10 @@ Class HeavyMahSheenGun : SWWMWeapon TNT1 A 3; Goto EjectRound; EjectRound1: - TNT1 A 7; + TNT1 A 1; Goto EjectRound; EjectRound: - TNT1 A 1; // TODO + TNT1 A 1 A_DropCasing(); Stop; AltFire: XZW2 A 3 A_StartSound("sheen/crankin",CHAN_WEAPON,CHANF_OVERLAP); @@ -403,7 +569,21 @@ Class HeavyMahSheenGun : SWWMWeapon Deselect: XZW2 A 2 A_StartSound("sheen/deselect",CHAN_WEAPON,CHANF_OVERLAP); XZW2 BCDEFGHIJK 2; - XZW2 K -1 A_FullLower(); + XZW2 K -1 + { + A_StopSound(CHAN_WEAPONEXTRA2); + A_FullLower(); + } + Stop; + Flash: + XZW0 A 2 + { + let psp = player.GetPSprite(PSP_FLASH); + psp.frame = Random[GunFlash](0,7); + let l = Spawn("SWWMWeaponLight",pos); + l.target = self; + l.Args[3] -= psp.frame*5; + } Stop; } } diff --git a/zscript/dlc1/swwm_heavymahsheengun_fx.zsc b/zscript/dlc1/swwm_heavymahsheengun_fx.zsc index 1150517c2..f8cff7533 100644 --- a/zscript/dlc1/swwm_heavymahsheengun_fx.zsc +++ b/zscript/dlc1/swwm_heavymahsheengun_fx.zsc @@ -1 +1,108 @@ // Sheen HMG projectiles and effects + +Class SheenCasing : SWWMCasing +{ + Default + { + BounceSound "sheen/casing"; + } +} + +Class SheenPhantom : Actor +{ + Default + { + +NOBLOCKMAP; + +NOGRAVITY; + +DONTSPLASH; + +NOTELEPORT; + +NOINTERACTION; + +INTERPOLATEANGLES; + Radius .1; + Height 0.; + Alpha .5; + RenderStyle "Add"; + } + override void Tick() + { + if ( isFrozen() ) return; + A_FadeOut(frame?.02:.05); + } + States + { + Spawn: + XZW1 A -1 Bright; + Stop; + } +} + +Class SheenTrail : Actor +{ + Default + { + Obituary "$O_SHEENHMG"; + +NOBLOCKMAP; + +NOGRAVITY; + +DONTSPLASH; + +NOTELEPORT; + +NOINTERACTION; + +INTERPOLATEANGLES; + +FORCERADIUSDMG; + +NODAMAGETHRUST; + Speed 200; + Radius .1; + Height 0.; + RenderStyle "Add"; + } + + override void Tick() + { + Vector3 oldpos = pos; + if ( isFrozen() ) return; + if ( CurState == SpawnState ) + { + Vector3 dir = (cos(angle)*cos(pitch),sin(angle)*cos(pitch),-sin(pitch)); + Vector3 newpos = level.Vec3Offset(pos,dir*min(speed,specialf1)); + special1++; + for ( int i=0; i<4; i++ ) + { + let p = Spawn("SheenPhantom",level.Vec3Offset(pos,dir*(i+1)*50.)); + p.angle = angle; + p.pitch = pitch; + p.frame = frame; + p.alpha *= clamp((special1+i*.25)/2.,.25,1.); + } + // burn the air throughout + Vector3 tdir = level.Vec3Diff(pos,newpos); + double dist = tdir.length(); + tdir /= dist; + for ( int i=0; i 0 ) tics--; + while ( !tics ) + { + if ( !SetState(CurState.NextState) ) + return; + } + } + + States + { + Spawn: + XZW1 A -1 Bright; + Stop; + Death: + TNT1 A 5; + Stop; + } +} diff --git a/zscript/handler/swwm_handler_process.zsc b/zscript/handler/swwm_handler_process.zsc index 732458288..d02cf2e16 100644 --- a/zscript/handler/swwm_handler_process.zsc +++ b/zscript/handler/swwm_handler_process.zsc @@ -350,37 +350,6 @@ extend Class SWWMHandler if ( SWWMCredits.Take(players[e.Args[0]],e.Args[1]) ) { let def = GetDefaultByType(item); - SWWMWeapon sw; - // drop the swapweapon if we own it first - if ( swwm_swapweapons && (item is 'SWWMWeapon') && (sw = SWWMWeapon(def).HasSwapWeapon(players[e.Args[0]].mo)) ) - { - // special case, otherwise candy gun won't drop itself - if ( sw is 'CandyGun' ) CandyGun(sw).swapdrop = true; - bool swapto = (sw == players[e.Args[0]].ReadyWeapon) || (sw.SisterWeapon && (sw.Sisterweapon == players[e.Args[0]].ReadyWeapon)); - int ngun = sw.Amount; - if ( ngun == 2 ) - { - // create a dual giver to drop - let dg = SWWMDualWeaponGiver(Actor.Spawn("SWWMDualWeaponGiver",players[e.Args[0]].mo.pos+(0,0,10))); - dg.angle = players[e.Args[0]].mo.angle; - dg.VelFromAngle(5.); - dg.vel.z += 1.; - dg.vel += players[e.Args[0]].mo.vel; - // transfer both guns - dg.giveme[0] = SWWMWeapon(sw.CreateTossable(1)); - dg.giveme[0].AttachToOwner(dg); - dg.giveme[1] = SWWMWeapon(sw.CreateTossable(1)); - dg.giveme[1].AttachToOwner(dg); - dg.SetPickupState(); - } - else players[e.Args[0]].mo.DropInventory(sw); // just drop it - // don't autoswitch just yet (hacky) - if ( swapto ) - { - players[e.Args[0]].ReadyWeapon = null; - players[e.Args[0]].PendingWeapon = WP_NOCHANGE; - } - } if ( (item is 'ArmorNuggetItem') || (item is 'HealthNuggetItem') ) { // these have to be given in a loop because fun reasons diff --git a/zscript/kbase/swwm_kbasetab_store.zsc b/zscript/kbase/swwm_kbasetab_store.zsc index 771f7620c..9c780bb1d 100644 --- a/zscript/kbase/swwm_kbasetab_store.zsc +++ b/zscript/kbase/swwm_kbasetab_store.zsc @@ -598,6 +598,19 @@ Class DemolitionistMenuStoreItem : DemolitionistMenuListItem master.tmsgtic = Menu.MenuTime()+70; return; } + if ( (inv is 'SWWMWeapon') && swwm_swapweapons ) + { + // check swapweapon + let wpn = GetDefaultByType((Class)(inv)); + let sw = wpn.HasSwapWeapon(players[consoleplayer].mo); + if ( sw ) + { + master.MenuSound("menu/noinvuse"); + master.tmsg = String.Format(StringTable.Localize("$SWWM_STORESWAP"),sw.GetTag()); + master.tmsgtic = Menu.MenuTime()+70; + return; + } + } let cur = players[consoleplayer].mo.FindInventory(inv); int camt, max; if ( cur ) diff --git a/zscript/swwm_player.zsc b/zscript/swwm_player.zsc index 964f75b05..045c71f86 100644 --- a/zscript/swwm_player.zsc +++ b/zscript/swwm_player.zsc @@ -2813,8 +2813,11 @@ Class Demolitionist : PlayerPawn // weapon get oneliner if ( (item is 'Weapon') && !(item is 'SWWMGesture') && !(item is 'SWWMItemGesture') && mystats && !mystats.GotWeapon(Weapon(item).GetClass()) && (player == players[consoleplayer]) && !ingivecheat ) { - if ( (item is 'HeavyMahSheenGun') && Random[DemoLines](0,2) && SWWMHandler.AddOneliner("sheenspecial",2,20) ) + if ( (item is 'HeavyMahSheenGun') && !Random[DemoLines](0,2) && SWWMHandler.AddOneliner("sheenspecial",2,20) ) + { A_StartSound("sheen/specialpick",CHAN_ITEM,CHANF_OVERLAP,1.,.5); + A_StartSound("sheen/specialpick",CHAN_ITEM,CHANF_OVERLAP,1.,.5); + } else if ( (item is 'SWWMWeapon') && (SWWMWeapon(item).GetLine != "") ) { // fall back to generic weapon get if voicepack lacks weapon-specific lines diff --git a/zscript/swwm_thinkers_player.zsc b/zscript/swwm_thinkers_player.zsc index 1841591ee..9eac2de96 100644 --- a/zscript/swwm_thinkers_player.zsc +++ b/zscript/swwm_thinkers_player.zsc @@ -170,6 +170,7 @@ Class SWWMStats : SWWMStaticThinker else if ( ((inflictor is 'SaltImpact') && !inflictor.Args[0]) || ((inflictor is 'SaltBeam') && !inflictor.Args[1]) || (inflictor is 'CorrodeDebuff') || (inflictor is 'CorrosiveFlechette') || ((inflictor is 'TheBall') && !inflictor.special1) || (inflictor is 'GoldenImpact') || (inflictor is 'GoldenSubImpact') || (inflictor is 'GoldenSubSubImpact') ) which = 'Spreadgun'; else if ( ((inflictor is 'SaltImpact') && inflictor.Args[0]) || ((inflictor is 'SaltBeam') && inflictor.Args[1]) || ((inflictor is 'TheBall') && inflictor.special1) ) which = 'Wallbuster'; else if ( (inflictor is 'EvisceratorChunk') || (inflictor is 'EvisceratorProj') ) which = 'Eviscerator'; + else if ( inflictor is 'SheenTrail' ) which = 'HeavyMahSheenGun'; else if ( (inflictor is 'HellblazerMissile') || (inflictor is 'HellblazerRavagerArm') || (inflictor is 'HellblazerWarheadArm') ) which = 'Hellblazer'; else if ( (inflictor is 'BigBiospark') || (inflictor is 'BiosparkBall') || (inflictor is 'BiosparkBeamImpact') || (inflictor is 'BiosparkComboImpact') || (inflictor is 'BiosparkComboImpactSub') || (inflictor is 'BiosparkBeam') || (inflictor is 'BiosparkArc') || (inflictor is 'BiosparkCore') ) which = 'Sparkster'; else if ( (inflictor is 'SilverAirRip') || (inflictor is 'SilverAirRip2') || (inflictor is 'SilverImpact') || (inflictor is 'FatChodeImpact') || (inflictor is 'FatChodeExplosionArm') ) which = 'SilverBullet'; diff --git a/zscript/weapons/swwm_baseweapon.zsc b/zscript/weapons/swwm_baseweapon.zsc index fc86018f3..5e016f6f6 100644 --- a/zscript/weapons/swwm_baseweapon.zsc +++ b/zscript/weapons/swwm_baseweapon.zsc @@ -100,7 +100,7 @@ Class SWWMWeapon : Weapon abstract // if the toucher owns our SwapWeapon, drop it before picking us up bool swapto = false; SWWMWeapon sw; - if ( swwm_swapweapons && (sw = HasSwapWeapon(user)) ) + if ( swwm_swapweapons && (sw = HasSwapWeapon(user)) && (user.player.WeaponState&WF_WEAPONSWITCHOK) && !(user.player.WeaponState&WF_DISABLESWITCH) ) { // special case, otherwise candy gun won't drop itself if ( sw is 'CandyGun' ) CandyGun(sw).swapdrop = true;