From eaf19d3007925bd62bdc6d45d05d52cafe4f1f3b Mon Sep 17 00:00:00 2001 From: Marisa Kirisame Date: Sun, 24 Jan 2021 14:32:13 +0100 Subject: [PATCH] 1.1.3 mini-update: - Added hacky ammo displays. - Removed swingers. - Updated patron credits. --- Readme.md | 29 +-- animdefs.txt | 4 + cvarinfo.txt | 2 - gldefs.txt | 12 -- menudef.txt | 14 +- modeldef.eightball | 4 +- modeldef.flak | 2 +- modeldef.minigun | 4 +- modeldef.pulse | 2 +- models/Eightm_d.3d | Bin 8496 -> 8496 bytes models/Minigun2m_d.3d | Bin 9056 -> 9056 bytes models/PulseGunR_d.3d | Bin 13520 -> 13520 bytes models/flakm_d.3d | Bin 9056 -> 9056 bytes models/miniammoledbase.png | Bin 107 -> 0 bytes sprites/ammoled/AMCBA0.png | Bin 0 -> 83 bytes .../ammoled/AMLDA0.png | Bin .../ammoled/AMLDB0.png | Bin sprites/ammoled/AMLDC0.png | Bin 0 -> 1094 bytes sprites/ammoled/AMLDD0.png | Bin 0 -> 84 bytes sprites/ammoled/LFN1A0.png | Bin 0 -> 434 bytes sprites/ammoled/LFN1B0.png | Bin 0 -> 344 bytes sprites/ammoled/LFN1C0.png | Bin 0 -> 420 bytes sprites/ammoled/LFN1D0.png | Bin 0 -> 413 bytes sprites/ammoled/LFN1E0.png | Bin 0 -> 406 bytes sprites/ammoled/LFN1F0.png | Bin 0 -> 422 bytes sprites/ammoled/LFN1G0.png | Bin 0 -> 424 bytes sprites/ammoled/LFN1H0.png | Bin 0 -> 379 bytes sprites/ammoled/LFN1I0.png | Bin 0 -> 436 bytes sprites/ammoled/LFN1J0.png | Bin 0 -> 431 bytes sprites/ammoled/LFN2A0.png | Bin 0 -> 333 bytes sprites/ammoled/LFN2B0.png | Bin 0 -> 295 bytes sprites/ammoled/LFN2C0.png | Bin 0 -> 327 bytes sprites/ammoled/LFN2D0.png | Bin 0 -> 321 bytes sprites/ammoled/LFN2E0.png | Bin 0 -> 316 bytes sprites/ammoled/LFN2F0.png | Bin 0 -> 329 bytes sprites/ammoled/LFN2G0.png | Bin 0 -> 328 bytes sprites/ammoled/LFN2H0.png | Bin 0 -> 309 bytes sprites/ammoled/LFN2I0.png | Bin 0 -> 323 bytes sprites/ammoled/LFN2J0.png | Bin 0 -> 330 bytes zscript.txt | 1 + zscript/ammoled.zsc | 192 ++++++++++++++++++ zscript/biorifle.zsc | 8 +- zscript/chainsaw.zsc | 10 +- zscript/eightball.zsc | 18 +- zscript/enforcer.zsc | 2 - zscript/flakcannon.zsc | 18 +- zscript/impacthammer.zsc | 3 - zscript/minigun.zsc | 28 ++- zscript/pulsegun.zsc | 18 +- zscript/ripper.zsc | 12 +- zscript/shockrifle.zsc | 16 +- zscript/sniperrifle.zsc | 9 +- zscript/translocator.zsc | 2 - zscript/utcommon.zsc | 80 -------- zscript/warheadlauncher.zsc | 2 - 55 files changed, 293 insertions(+), 199 deletions(-) delete mode 100644 models/miniammoledbase.png create mode 100644 sprites/ammoled/AMCBA0.png rename models/AmmoLedBase.png => sprites/ammoled/AMLDA0.png (100%) rename models/FlakAmmoLEDBase.png => sprites/ammoled/AMLDB0.png (100%) create mode 100644 sprites/ammoled/AMLDC0.png create mode 100644 sprites/ammoled/AMLDD0.png create mode 100644 sprites/ammoled/LFN1A0.png create mode 100644 sprites/ammoled/LFN1B0.png create mode 100644 sprites/ammoled/LFN1C0.png create mode 100644 sprites/ammoled/LFN1D0.png create mode 100644 sprites/ammoled/LFN1E0.png create mode 100644 sprites/ammoled/LFN1F0.png create mode 100644 sprites/ammoled/LFN1G0.png create mode 100644 sprites/ammoled/LFN1H0.png create mode 100644 sprites/ammoled/LFN1I0.png create mode 100644 sprites/ammoled/LFN1J0.png create mode 100644 sprites/ammoled/LFN2A0.png create mode 100644 sprites/ammoled/LFN2B0.png create mode 100644 sprites/ammoled/LFN2C0.png create mode 100644 sprites/ammoled/LFN2D0.png create mode 100644 sprites/ammoled/LFN2E0.png create mode 100644 sprites/ammoled/LFN2F0.png create mode 100644 sprites/ammoled/LFN2G0.png create mode 100644 sprites/ammoled/LFN2H0.png create mode 100644 sprites/ammoled/LFN2I0.png create mode 100644 sprites/ammoled/LFN2J0.png create mode 100644 zscript/ammoled.zsc diff --git a/Readme.md b/Readme.md index 05fd8a0..75da5ff 100644 --- a/Readme.md +++ b/Readme.md @@ -1,9 +1,8 @@ # DOOM TOURNAMENT -What began as a test for importing UT vertex meshes has turned into an actual -full UT weapon and item mod. +What began as a test for importing UT vertex meshes has turned into an actual full UT weapon and item mod. -This mod requires GZDoom 4.2.4 or later. +This mod requires GZDoom 4.3 or later. ## Currently implemented @@ -49,8 +48,6 @@ This mod requires GZDoom 4.2.4 or later. - "Instant Rocket" mode toggleable with reload - Scaling/Customization options for the HUD - UT-like player movement physics - - Visual recoil affecting aim (improved A_Swing from Soundless Mound, can be - toggled) - UT-like weapon dropping style - UT player classes - Heretic compatibility @@ -61,29 +58,23 @@ This mod requires GZDoom 4.2.4 or later. - Hexen compatibility - Fancy titlemap - Semi-accurate UT sound behaviour + - Hacky cameratexture ammo counters for Pulsegun, Minigun, Flak Cannon and rocket launcher ## In progress - - N/A this is the 1.1.2 release. + - N/A this is the 1.1.3 release. ## Planned - Stuff for 1.2 - - Touch up blood/gibbing features. At the moment, Nashgore is still a - superior alternative. + - Refactor everything, backporting many fixes and improvements from SWWM GZ. + - Touch up blood/gibbing features. At the moment, Nashgore is still a superior alternative. - Help screens describing items and stuff (maybe?). - - Chex Quest compatibility ? - - Strife compatibility ???? - Stuff for much later - - Add ammo counters to Pulsegun, Minigun, Flak Cannon and Rocket Launcher - once scripted textures are implemented - - Redo player models once GZDoom gets a well deserved model animation system - overhaul (mainly to clean up the current, messy implementation of this) - - Add weapon attachment support to player models when that is also added in - (at the moment all player models have an integrated placeholder weapon) + - Proper scripted textures for ammo counters, if they are ever implemented. + - Redo player models once GZDoom gets a well deserved model animation system overhaul (mainly to clean up the current, messy implementation of this). + - Add weapon attachment support to player models when that is also added in (at the moment all player models have an integrated placeholder weapon). ## Known bugs - - Biorifle sludge doesn't attach properly when it lands on the edge between - sectors. This is most noticeable with moving sectors and 3d floors. This - might be fixed once there's virtuals for world collision. + - Biorifle sludge doesn't attach properly when it lands on the edge between sectors. This is most noticeable with moving sectors and 3d floors. It doesn't seem like there's an easy fix for this. diff --git a/animdefs.txt b/animdefs.txt index d3f182a..17cc507 100644 --- a/animdefs.txt +++ b/animdefs.txt @@ -4,3 +4,7 @@ texture static1 range static4 tics 1 texture invis00 range invis31 tics 2 +cameratexture PAmmoLed 256 128 +cameratexture FlakALed 128 64 +cameratexture MiniALed 64 64 +cameratexture RAmmoLed 64 64 diff --git a/cvarinfo.txt b/cvarinfo.txt index 6ae8472..03a0d5a 100644 --- a/cvarinfo.txt +++ b/cvarinfo.txt @@ -33,8 +33,6 @@ server int flak_taptics = 8; // maximum delay in tics between double taps for server bool flak_nobosstelefrag = false; // disable telefragging of boss monsters (useful when translocator is enabled) server bool flak_nowalkdrop = false; // [GLITCHY] don't drop off ledges while holding walk key server bool flak_corpsedamage = false; // [WIP/EXPERIMENTAL] allow corpses to take damage and be gibbed, currently just causes a jump to XDeath until gore system is implemented -server bool flak_swingers = true; // weapon recoil that affects player view -server float flak_swingerstrength = 0.5; // strength of visual recoil server bool flak_radboots = true; // jump boots protect against damaging floors (this is to account for the lack of a radsuit) server bool flak_blood = true; // [WIP] use doom tournament blood (disable if using another gore mod) server bool flak_gibs = false; // [WIP/UNSTABLE] use doom tournament gibbing (disable if using another gore mod) diff --git a/gldefs.txt b/gldefs.txt index 1985c2f..a8afc78 100644 --- a/gldefs.txt +++ b/gldefs.txt @@ -431,14 +431,6 @@ HardwareShader Texture "models/JPulsePickup_01.png" Shader "shaders/glsl/AmbientGlow_Brightmapped.fp" Texture "brighttex" "brightmaps/JPulsePickup_01.png" } -Brightmap Texture "models/AmmoLedBase.png" -{ - Map "brightmaps/fullbright.png" -} -Brightmap Texture "models/FlakAmmoLEDBase.png" -{ - Map "brightmaps/fullbright.png" -} HardwareShader Texture "models/AToxSuit1.png" { Shader "shaders/glsl/AmbientGlow.fp" @@ -614,10 +606,6 @@ Brightmap Texture "models/Eight_t4.png" { Map "brightmaps/Eight_t4.png" } -Brightmap Texture "models/miniammoledbase.png" -{ - Map "brightmaps/fullbright.png" -} HardwareShader Texture "models/tloc1_.png" { Shader "shaders/glsl/AmbientGlow_Brightmapped.fp" diff --git a/menudef.txt b/menudef.txt index 881591f..97f202d 100644 --- a/menudef.txt +++ b/menudef.txt @@ -31,8 +31,6 @@ OptionMenu "UTOptionMenu" Option "$FLAK_SAWAMMO", "flak_sawammo", "YesNo" Option "$FLAK_ZOOMSND", "flak_zoomsound", "YesNo" Option "$FLAK_ZSHADER", "flak_zoomshader", "YesNo" - Option "$FLAK_RECOIL", "flak_swingers", "YesNo" - Slider "$FLAK_RSTRENGTH", "flak_swingerstrength", 0.0, 1.0, 0.1, 1 Slider "$FLAK_FSTRENGTH", "flak_flashstrength", 0.0, 1.0, 0.1, 1 StaticText " " StaticText "$FLAK_IOPTS", "Gold" @@ -98,11 +96,13 @@ OptionMenu "UTCreditsMenu" StaticText "Epic Games", "White" StaticText " " StaticText "$FLAK_CPATRON", "Gold" - StaticText "Christian Grab, john, Alexa Jones-Gonzales,", "White" - StaticText "Jonas Höglund, Valerie Thiessen, Corey Hectus,", "White" - StaticText "dac, Pietro Gagliardi, Artem Bashev,", "White" - StaticText "Xada Xephron, Zard1084, NekoMithos,", "White" - StaticText "Max Zeal, m8f, 3d0xp0xy", "White" + StaticText "Snacks, Artem Bashev, john,", "White" + StaticText "Jonas Höglund, Lilian Lamp, Valerie Thiessen,", "White" + StaticText "Corey Hectus, Dac, Pietro Gagliardi, Xada Xephron,", "White" + StaticText "Alexa Jones-Gonzales, John, NekoMithos,", "White" + StaticText "bouncytem, Figo, Holly_Rook,", "White" + StaticText "Namsan, YaGirlJuniper, Ashley Lambert,", "White" + StaticText "LordMisfit, m8f, 3d0xp0xy", "White" StaticText " " StaticText "$FLAK_CTHANK", "Gold" StaticText "KynikossDragonn, Raffine52, KeksDose, Skerion", "White" diff --git a/modeldef.eightball b/modeldef.eightball index d83a268..3f2c45c 100644 --- a/modeldef.eightball +++ b/modeldef.eightball @@ -73,7 +73,7 @@ Model "UTRocketLauncher" SurfaceSkin 0 1 "Eight_t2.png" SurfaceSkin 0 2 "Eight_t3.png" SurfaceSkin 0 3 "Eight_t4.png" - SurfaceSkin 0 4 "miniammoledbase.png" + SurfaceSkin 0 4 "RAmmoLed" Scale -0.2 0.22 0.2 Offset 3.4 -9.2 -8.5 AngleOffset 94 @@ -276,4 +276,4 @@ Model "UTRocketLauncher" FrameIndex EBLD I 0 154 FrameIndex EBLD J 0 155 FrameIndex EBLD K 0 156 -} \ No newline at end of file +} diff --git a/modeldef.flak b/modeldef.flak index 59a999e..3b904be 100644 --- a/modeldef.flak +++ b/modeldef.flak @@ -234,7 +234,7 @@ Model "FlakCannon" SurfaceSkin 0 1 "flak_t2.png" SurfaceSkin 0 2 "flak_t3.png" SurfaceSkin 0 3 "flak_t4.png" - SurfaceSkin 0 4 "flakammoledbase.png" + SurfaceSkin 0 4 "FlakALed" AngleOffset 90 PitchOffset 180 RollOffset 178 diff --git a/modeldef.minigun b/modeldef.minigun index 59cb3f8..677097f 100644 --- a/modeldef.minigun +++ b/modeldef.minigun @@ -77,7 +77,7 @@ Model "Minigun" SurfaceSkin 0 1 "Mini_t2.png" SurfaceSkin 0 2 "Mini_t3.png" SurfaceSkin 0 3 "Mini_t4.png" - SurfaceSkin 0 4 "miniammoledbase.png" + SurfaceSkin 0 4 "MiniALed" Scale 0.12 -0.08 0.12 Offset 1.8 -19.9 -13.8 AngleOffset 90 @@ -194,4 +194,4 @@ Model "Minigun" FrameIndex MGND H 0 148 FrameIndex MGND I 0 149 FrameIndex MGND J 0 150 -} \ No newline at end of file +} diff --git a/modeldef.pulse b/modeldef.pulse index 73e2ccc..285aa9d 100644 --- a/modeldef.pulse +++ b/modeldef.pulse @@ -103,7 +103,7 @@ Model "PulseGun" Path "models" Model 0 "PulseGunR_d.3d" // indices start at 1 for this model - SurfaceSkin 0 1 "AmmoLedBase.png" + SurfaceSkin 0 1 "PAmmoLed" SurfaceSkin 0 2 "JPulseGun_02.png" SurfaceSkin 0 3 "JPulseGun_03.png" AngleOffset 90 diff --git a/models/Eightm_d.3d b/models/Eightm_d.3d index adb33ab6d0acf6a803da35cec040b7217f81fa2d..aa752c6857d0ebd317808080c30877fcc4d64039 100644 GIT binary patch delta 32 jcmdnsw83eEgrWok!~g&P8CV#E7!4U!83iC*1{MYYtpW*S delta 32 lcmdnsw83eEgrdZM28RC(3@i*njE0P=i~3KLZN`0M*3{FaQ7m diff --git a/models/PulseGunR_d.3d b/models/PulseGunR_d.3d index 0f6ec34ef6460436851c4fb6a8cfb0685c80a3fb..7ac7d274357b26d479554e43a2325f37a669a971 100644 GIT binary patch delta 33 pcmcbRc_DLxg&4#C|Ns9pFfv?WyvlftL4e^u0|NuY|BZf4CIJ7+4T1mw delta 33 pcmcbRc_DLxh1kD;O#hge7#XfGUS&MSAi%)H^pEM^zm0xPCIIj^4Tt~$ diff --git a/models/flakm_d.3d b/models/flakm_d.3d index 9ae584f085df7655cfc702d30fae71ed9acd2e28..1efac93cd1fc5f2ff5be798d06dfd9148cbcd8c5 100644 GIT binary patch delta 32 jcmaFh_P}j}hq462|Ns9P7+4rCFkEDaVGw|D8CVzq+uaL~ delta 32 lcmaFh_P}j}hqA=~{|x{CGq5mRV7SN-!yv%G@E?R&7y#$d3y%N* diff --git a/models/miniammoledbase.png b/models/miniammoledbase.png deleted file mode 100644 index 49e3c304d34518f1931b7fa45a2819d2ec6f8b44..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 107 zcmeAS@N?(olHy`uVBq!ia0y~yU~m9oMrH;Eh6&3b&t+g>;4JWnEM{Qf76xHPhFNnY z7#J9s1AIbU85kIrSJ~cTU|`_$ba4!kkW7|fUEILLz`*3d!1!TC(;Nl{1_n=8KbLh* G2~7b0niYZo diff --git a/sprites/ammoled/AMCBA0.png b/sprites/ammoled/AMCBA0.png new file mode 100644 index 0000000000000000000000000000000000000000..15880d04a454704e4e3a472095b210aa5497a072 GIT binary patch literal 83 zcmeAS@N?(olHy`uVBq!ia0y~yU^v3Sz`(`G%)r2Ku`Brv0|NtdfKP}k!*K@XgEhen n3=G_!E{-7*lF1URJPeF142&)DW{(&c7#KWV{an^LB{Ts5j;Ijn literal 0 HcmV?d00001 diff --git a/models/AmmoLedBase.png b/sprites/ammoled/AMLDA0.png similarity index 100% rename from models/AmmoLedBase.png rename to sprites/ammoled/AMLDA0.png diff --git a/models/FlakAmmoLEDBase.png b/sprites/ammoled/AMLDB0.png similarity index 100% rename from models/FlakAmmoLEDBase.png rename to sprites/ammoled/AMLDB0.png diff --git a/sprites/ammoled/AMLDC0.png b/sprites/ammoled/AMLDC0.png new file mode 100644 index 0000000000000000000000000000000000000000..18bf6ae924da05958fe7aae985a661b5a1bda85a GIT binary patch literal 1094 zcmeAS@N?(olHy`uVBq!ia0y~yU~m9o4h9AWhJGeJCI$u;UQZXt5DCfNg9jT`7{iV_ zybMiZ{Wm)@KIMGe0|Q%^ANTi3C~$7K;XPQ<>bR$`=LwsO>Hh;OIhf?HF#Hr$2=LOZ z2@t56Rp3X{W2>z*#q$^W=XgPBi4Yun~$$t@Kn|@62WU z#`)Q~ib?M~tX`ik6ljUx<2uo8NsEZDaFxV-p}hO2^JQnSKD_SD&AjR9wBUagJ(ru_ z|6JN_r0~#2^V1Vi^OMnBPlP8G9-LcwP*6ZcaiZfcWtS<_Z4(@drk77=m$c`xX?DlK%7x zvL>#ucvZpqY0{6?Vm=!e@QLwso=|x5eiFmS)^2vqy)Dd^|5kE{e4D#)=^Un$_ck@Y+#9E*-Q ztmxDGr@G+C#0NZ1t_Bn1S-tdGB-vzKU61IyRIUs-;&MQtt6p1xiEZ5_qqwF&YX26i zB=KlECItNHF8nBzwS^_P7-m7t>Nvgb+p#I17{*+n$C%Lqt( zQdaEzpKJ8{!ifr=Js)}|O>byuQBd6CaFJK^=5+SWvd=7R4IB*qc~o|G=qtEL^CvjX z*WV;^dK2NiQ_DWL-aM>bK0o802g{SCl9|~@ z>X-gle3MD;U|!?=ea#UYPP_^JsBg zqn#7%W6WCYIyE*qoKSca)sP^oU)kBp1X4=?x` heE$JUC?f*{Lk+Wl0|TSvX2UX&jHj!g%Q~loCIGF+5~~0J literal 0 HcmV?d00001 diff --git a/sprites/ammoled/LFN1A0.png b/sprites/ammoled/LFN1A0.png new file mode 100644 index 0000000000000000000000000000000000000000..20da6f09fe271f2c2fe112a1a10136af3af05942 GIT binary patch literal 434 zcmeAS@N?(olHy`uVBq!ia0y~yU@%}{U14Ba#1H&%{28M~-s; zLz#`3PkiNbxH#FpeUs{5=g`T!B~JS4JW(<$60wftK7XN$`9*8g2O*n;+g3M%&mM@) zSaoLMhL=`P+&<4VTkGW<&o}G;@9M0wn-7Iwp5tSC?0QRa-V+tMCtBA&pIUC*V0J9< zo8g=$!&MS7!pS^8-1joN^PbugXs}C{fq_A_#5JNMC9x#cD!C{%u_Tqj$iT=@*T7KM y$Rxzjz{=Fv%FtBXz`)ADAaq%~3W|o@{FKbJO57S$e%sFgMTV!VpUXO@geCyuO^+V{ literal 0 HcmV?d00001 diff --git a/sprites/ammoled/LFN1B0.png b/sprites/ammoled/LFN1B0.png new file mode 100644 index 0000000000000000000000000000000000000000..655391b43173bd02407de974e794c0ec10e886f3 GIT binary patch literal 344 zcmeAS@N?(olHy`uVBq!ia0y~yU@%}{U14Ba#1H&%{28M`sfQ$`6cD+R*?yk-mx3_+eQjv*T7lM@u! zEgV)bCrlD_GIZ7`<2cH{@QLCS+m==B0sjw*DDTx+QEPDfX`l>8sp%DMgZ_mTlLe0^ ze>%~2@hpEuZA$;yRdP{kVo554 zk%5t+u7RPhkx7W5ft9JTm7%G&fq|8QLFlq}6%-A*`6-!cmAEyi{I;I~3NlYuKbLh* G2~7Y;_F`ZF literal 0 HcmV?d00001 diff --git a/sprites/ammoled/LFN1C0.png b/sprites/ammoled/LFN1C0.png new file mode 100644 index 0000000000000000000000000000000000000000..c55154a8c996fb07d01fe363f88630e81961f67c GIT binary patch literal 420 zcmeAS@N?(olHy`uVBq!ia0y~yU@%}{U14Ba#1H&%{28M-9qlAtHnH?e|YniPxCd)>ouZbbGf?v|MUJy z@PF98O5*A1%sK`J2GtVRh?11Vl2ohYqSVBaR0bmhBST#SLtP`25JLkiQ)4SbQ*8qS kD+7bjW$h{`8glbfGSez?Yf$-ZKLZr}p00i_>zopr06jL1dH?_b literal 0 HcmV?d00001 diff --git a/sprites/ammoled/LFN1D0.png b/sprites/ammoled/LFN1D0.png new file mode 100644 index 0000000000000000000000000000000000000000..928a1427a4d2393b5bb295592fcb52567ac7bc34 GIT binary patch literal 413 zcmeAS@N?(olHy`uVBq!ia0y~yU@%}{U14Ba#1H&%{28Ma@!~o#oLzSj3Z?c=SMsVc-Pm=5$82T_>AUBhxBAeDzr+?G`F= zrIPhkHgBvvt8YH5x2?F&mjHv8>k=-cGM-z@@PhNdsIEYFQ{Z++8`keq?cqJoe(XGD zr2c({%;%+lCI1QUO(=L*nBjQK{i(z`Z%6LD>*-4uCwYV>cg+rZ%>Rrx_rMcptHiBA<+uF|P`G=#`njxgN@xNA1nYs~ literal 0 HcmV?d00001 diff --git a/sprites/ammoled/LFN1E0.png b/sprites/ammoled/LFN1E0.png new file mode 100644 index 0000000000000000000000000000000000000000..058a0492d86e627432635775e251da5f1558f184 GIT binary patch literal 406 zcmeAS@N?(olHy`uVBq!ia0y~yU@%}{U14Ba#1H&%{28MGB))Bs6lQ8Otq@6g@WR(`2e#_9}$ z4uXYkZbw9;1e*jl9#BYX^*q8BdW7$v>hU+T)aTuEK5}a!;ke>QoPz!CYfbUnp9w*p8V14Ba#1H&%{28M+(CMhjsMdQ^fJd zT4Kxlgr)Pjxc7!Hs93=;Wv1b>zY&ak(=IJ_O1T*oFWPoSc5A4{t+EB*bh)qcCjR^V ze_#HowL9KBFTTydz@S><8c~vxSdwa$T$GwvlFDFYU}UIkV5n14Ba#1H&%{28MIQlLie!&O@*-LE-$TKcH)*0#$&){~jz^Osd6t=g5o zh-(G!Ggs|3+pL_{d}S=W(6ZwNXVL}RBN@z#m;~O&OIYV|9of0NMNMb-yWJ0Cw*=hX zpcOUQ;?;yBvFkl;N@u$;|L^2d?ab2tIZ@)v4EfEg?@hKSxx3YF^ZrRX-PdG`x4!*V zFI~4meA3b*b1fpR&oMACsFt`!l%ync8R{As>Kd7Z7#dia8e18f oY8x0>85o2vYga+hkei>9nO2EggUWCF8K5ZeboFyt=akR{06f`>MgRZ+ literal 0 HcmV?d00001 diff --git a/sprites/ammoled/LFN1H0.png b/sprites/ammoled/LFN1H0.png new file mode 100644 index 0000000000000000000000000000000000000000..17c9ad57237234bf60f8025206e3a79f82fc63c7 GIT binary patch literal 379 zcmeAS@N?(olHy`uVBq!ia0y~yU@%}{U14Ba#1H&%{28M`sfQ$`6cD+R*?yk-mx45gkfjv*T7_nzO# zdq9DQ<$$}MhGb))1aJO?jYb}79`1qG*CjY}G(#2}R6z&eM`iEhO}%}>LvP=YpPC27S8uL6 zd3DM5ZT4q*_04i#zt0U`#K6FyTH+c}l9E`GYL#4+npl#`U}RuqsB2)TYh)5)XkcY( rY-MPwZD3$!U=X^jT?Iu$ZhlH;S|x4`D!=V#fI`*N)z4*}Q$iB}2l;W# literal 0 HcmV?d00001 diff --git a/sprites/ammoled/LFN1I0.png b/sprites/ammoled/LFN1I0.png new file mode 100644 index 0000000000000000000000000000000000000000..e6388e3c83b94da9ba94a2ed4819b650141a058c GIT binary patch literal 436 zcmeAS@N?(olHy`uVBq!ia0y~yU@%}{U14Ba#1H&%{28M`sfQ$`6cD+R*?yk-mx4C_2y978nD@13}j zx7k3%g?}l>L;*QQvyWOiPP=*zYE2AUlENzBdP_md-D%&PjjFdy9*WnUonG@^{=?@v zD|bE?DR32Icv4l{yGivr+p$S`4KGhbzBuVQ<3!wylU@a1!Xg^OJ}~e%G9TKmoY}%& zDa>QZr=j)ft^z;b)@`XQF-`G8-EQ3|6PFl=G&7cpVE7z_42pN zox0(rD0)4o*VDLrR{acpNyj&RY|D>MWnf@XEpd$~Nl7e8wMs5ZO)N=eFfuSQ)HN{F zH8Ke?G_W!?wlXx;HZZUgTe~DWM4f6%UKL literal 0 HcmV?d00001 diff --git a/sprites/ammoled/LFN1J0.png b/sprites/ammoled/LFN1J0.png new file mode 100644 index 0000000000000000000000000000000000000000..55a79bb8bb91acd09d66d12c53043c39d3c257a0 GIT binary patch literal 431 zcmeAS@N?(olHy`uVBq!ia0y~yU@%}{U14Ba#1H&%{28MG5r^HmP@=^OPy|dgPw(8S{10ktNAOo3lNW8fP8h`nNny!}Cv;O5ug~Db}xS zZ-&H{tv9?Sk=qlvyyZf+)B58re%?$0v;P!dWr@k|*5GWO7j;uL@k+E)=G?8JtBWtK zJUwq;FYo!Y=RY&}U%#?Iz>Hajfq_A_#5JNMC9x#cD!C{%u_Tqj$iT=@*T7KM$Rxzj uz{=Fv%FtBXz`)ADAaq%~3W|o@{FKbJO57S$e%sFg#e}D;pUXO@geCyel#dty literal 0 HcmV?d00001 diff --git a/sprites/ammoled/LFN2A0.png b/sprites/ammoled/LFN2A0.png new file mode 100644 index 0000000000000000000000000000000000000000..087bc861d269eea3d71d203a9246cee699114645 GIT binary patch literal 333 zcmeAS@N?(olHy`uVBq!ia0y~yU=U$oU{GdcU|?X_(<{D}fq{V~-O<;Pfnj4m_n$;o z1_lO&WRDvTIFUi~8g@N&Im+%q>1_t&LPhVH|r;HL@R$3QDpJ*^JFt~fVIEHXsPfloH z`uU%i=g)sxi7Wpt4J7_s9!U84nW352xGd*jMZ>{{hYZb3&CC+bH+Eb(wBhM}W}avN z`3zn#pPl~yd;>27!y*XvTIFUi~8g@N&Im+%q>1_t&LPhVH|r;HL@R$3QDpJ*^JFerMuIEHXsPfl=P zmvPWxJR;^0)5sj{aJ4{T<$8r6+dKvaRV{YM(q+co3=9maC9V-ADTyViR>?)Fi6yBF zMg~TPx(0^2MkXPK23DrVR)(h91_o9J2BFK^RZukK=BH$)RpQp5^4op}CvTIFUi~8g@N&Im+%q>1_t&LPhVH|r;HL@R$3QDpJ*^JFgSX;IEHXsPfloH z`uU%i=g)shi5ved4GjKU9ysvlGXpcTG2fXAhBa(U0U|{%tPvRJ>>$HCi3=FCzt`Q|Ei6yC4$wjG&C8-QX21bUu28OyuCLx9fR;I>Q qhNjvE237_Jq08D;P&DM`r(~v8;?|(@+kOTpggjmST-G@yGywqjNnMEm literal 0 HcmV?d00001 diff --git a/sprites/ammoled/LFN2D0.png b/sprites/ammoled/LFN2D0.png new file mode 100644 index 0000000000000000000000000000000000000000..26ade440267eb58f91da8a00e0a8dbb88ad73556 GIT binary patch literal 321 zcmeAS@N?(olHy`uVBq!ia0y~yU=U$oU{GdcU|?X_(<{D}fq{V~-O<;Pfnj4m_n$;o z1_lO&WRDvTIFUi~8g@N&Im+%q>1_t&LPhVH|r;HL@R$3QDpJ*^JFj#xKIEHXsPfloH z`uU%i=g)sxi5vfA6B7OvH#B~H&dA1=CNo2D5!({E7RQ`9Sqo?Ue9ySyrovZ+-5VGf z=87mN-Z}qjIs*fPYKdz^NlIc#s#S7PYGO$$gOP!ep{{|Uu8~QIp@EgDv6Z2zwt<0_ jfkEi9b`=y2x%nxXX_dG&sQk8{0SX&WS3j3^P6vTIFUi~8g@N&Im+%q>1_t&LPhVH|r;HL@R$3QDpJ*^JFqnC|IEHXsPfl=P z;^N`sVdG(!(2?LbxMA@4m_p@adv=K*|E(JgjVGKv;KRWD)xe-(12Z!p149X?M7-UG z4;c&$45}rr5hW>!C8<`)MX8A;sSHL2MuxfuhPp;3A%+H4rp8u=rrHJuRt5&4%i2{? dH00)|WTsW()}Zp+eg-I5JYD@<);T3K0RS}wPs#uQ literal 0 HcmV?d00001 diff --git a/sprites/ammoled/LFN2F0.png b/sprites/ammoled/LFN2F0.png new file mode 100644 index 0000000000000000000000000000000000000000..a861a46c075ae50ba6551041f615c881816843a5 GIT binary patch literal 329 zcmeAS@N?(olHy`uVBq!ia0y~yU=U$oU{GdcU|?X_(<{D}fq{V~-O<;Pfnj4m_n$;o z1_lO&WRDvTIFUi~8g@N&Im+%q>1_t&LPhVH|r;HL@R$3QDpJ*^JFgSaH`wssnjz%< z0R{dm&8!Rzd$&mZnanZuEdv9CYKdz^NlIc#s#S7PYGO$$gOP!ep{{|Uu8~QIp@EgD rv6Z2zwt<0_fkEi9b`=y2x%nxXX_dG&sQk8{0SY5eS3j3^P6vTIFUi~8g@N&Im+%q>1_t&LPhVH|r;HL@R$3QDpJ*^JFgSU-IEHXsPfloH z`uU%i=g)shi7WpN4J7_2CTw8ny7}OMg5?CMzyAet{yb-B<~6R%`T3op`Qv_Oo>%{6 z8@`zsBrq~4R!XZ?YU+3~Ffgc=xJHzuB$lLFB^RY8mZUNm85kMr8W`#tnS>Y`SeY7I q8JcPv7+4t?gf44WLD7(#pOTqYiCcrpZ~GabAo6teb6Mw<&;$SngvTIFUi~8g@N&Im+%q>1_t&LPhVH|r;HL@R$3QDpJ*^JFz9=_IEHXsPfloH z`uU%S=g)r`i5vfA5)%FuHZ(R0cFZhHm>|Q9Ex0xN^Dqv-X_e&HSl1_sp< z*NBpo#FA92nC}Q!>*k VacfZdZ9fAP9-gj#F6*2UngEtZQUm}1 literal 0 HcmV?d00001 diff --git a/sprites/ammoled/LFN2I0.png b/sprites/ammoled/LFN2I0.png new file mode 100644 index 0000000000000000000000000000000000000000..d7141855a91172d7678755307f0995cc93b74df2 GIT binary patch literal 323 zcmeAS@N?(olHy`uVBq!ia0y~yU=U$oU{GdcU|?X_(<{D}fq{V~-O<;Pfnj4m_n$;o z1_lO&WRDvTIFUi~8g@N&Im+%q>1_t&LPhVH|r;HL@R$3QDpJ*^JFxYy!IEHXsPfloH z`uU%i=g)shi7Wpt4J7_s9!U84nW352xGd*j1;ZM*|NEIGns4m5a%jWT_zt-VKNYGs zFfeRCto-5C`;}e{3=FCzt`Q|Ei6yC4$wjG&C8-QX21bUu28OyuCLx9fR;I>QhNjvE m237_Jq08D;P&DM`r(~v8;?|(@+kOTpbUa=CT-G@yGywo^=3YAh literal 0 HcmV?d00001 diff --git a/sprites/ammoled/LFN2J0.png b/sprites/ammoled/LFN2J0.png new file mode 100644 index 0000000000000000000000000000000000000000..caa19875e8557f5e025c6fce2748fd8ffa354923 GIT binary patch literal 330 zcmeAS@N?(olHy`uVBq!ia0y~yU=U$oU{GdcU|?X_(<{D}fq{V~-O<;Pfnj4m_n$;o z1_lO&WRDvTIFUi~8g@N&Im+%q>1_t&LPhVH|r;HL@R$3QDpJ*^JFt~WSIEHXsPfloH z`uU%i=g)shi7Wpt4J7_s9!U84nW352I4|cwL4)JZe&zsv4*7(Hf7K0*jgsbUCpZ7M zW(eco#LdmXpnYBOZluSp$qWn(swJ)wB`Jv|saDBFsfi`23`Pb= 5.1 ) return; if ( weap.Ammo1.Amount <= 0 ) return; if ( !weap.DepleteAmmo(weap.bAltFire,true,1) ) return; diff --git a/zscript/chainsaw.zsc b/zscript/chainsaw.zsc index 975aee5..4509a2d 100644 --- a/zscript/chainsaw.zsc +++ b/zscript/chainsaw.zsc @@ -124,7 +124,6 @@ Class UTChainsaw : UTWeapon { invoker.ammocharge += 10./TICRATE; A_QuakeEx(2,2,2,2,0,1,"",QF_RELATIVE,rollIntensity:0.15); - UTMainHandler.DoSwing(self,(FRandom[Chainsaw](-1,1),FRandom[Chainsaw](-1,1)),0.6,-0.2,2,SWING_Spring); invoker.sawcnt += 1./TICRATE; if ( invoker.sawcnt > 0.15 ) { @@ -177,7 +176,6 @@ Class UTChainsaw : UTWeapon { invoker.ammocharge += 20./TICRATE; A_QuakeEx(2,2,2,3,0,1,"",QF_RELATIVE,rollIntensity:0.15); - UTMainHandler.DoSwing(self,(FRandom[Chainsaw](-1,1),FRandom[Chainsaw](-1,1)),0.6,-0.2,2,SWING_Spring); if ( initial ) invoker.FireEffect(); A_AlertMonsters(); Vector3 x, y, z; @@ -233,7 +231,6 @@ Class UTChainsaw : UTWeapon A_QuakeEx(1,1,1,3,0,1,"",QF_RELATIVE,rollIntensity:0.4); } else A_QuakeEx(0,0,0,2,0,1,"",QF_RELATIVE,rollIntensity:0.2); - UTMainHandler.DoSwing(self,(FRandom[Chainsaw](-1,1),FRandom[Chainsaw](-1,1)),0.25,-0.1,2,SWING_Spring); if ( bAlt || Random[Chainsaw](0,2) ) return; Vector3 x, y, z; [x, y, z] = dt_CoordUtil.GetAxes(pitch,angle,roll); @@ -334,14 +331,9 @@ Class UTChainsaw : UTWeapon { A_StopSound(CHAN_WEAPONMISC); A_StartSound("chainsaw/fire",CHAN_WEAPON); - UTMainHandler.DoSwing(self,(FRandom[Chainsaw](-0.8,-1.2),FRandom[Chainsaw](-0.4,-0.7)),0,1,5,SWING_Spring,6,3); } CSWA ABCDE 2 A_Vibrate(true); - CSWA F 2 - { - A_Overlay(PSP_WEAPON+1,"AltFireSwipes"); - UTMainHandler.DoSwing(self,(FRandom[Chainsaw](0.8,1.2),0),0,2,6,SWING_Spring,1,3); - } + CSWA F 2 A_Overlay(PSP_WEAPON+1,"AltFireSwipes"); CSWA GHIJ 2; CSWA K 2 A_Vibrate(true); CSWA K 0 diff --git a/zscript/eightball.zsc b/zscript/eightball.zsc index 374f81d..dd0206d 100644 --- a/zscript/eightball.zsc +++ b/zscript/eightball.zsc @@ -294,6 +294,22 @@ Class UTRocketLauncher : UTWeapon int locktics; bool bSingleRocket; + UTRocketLauncherLED ammoled; + + override void DoEffect() + { + Super.DoEffect(); + if ( !ammoled ) + { + let ti = ThinkerIterator.Create("UTRocketLauncherLED"); + while ( ammoled=UTRocketLauncherLED(ti.Next()) ) break; + if ( !ammoled ) ammoled = UTRocketLauncherLED(Spawn("UTRocketLauncherLED")); + } + if ( !Owner || !Owner.player || (Owner != players[consoleplayer].Camera) ) return; + ammoled.mygun = self; + TexMan.SetCameraToTexture(ammoled,"RAmmoLed",90); + } + override void PostBeginPlay() { Super.PostBeginPlay(); @@ -366,8 +382,6 @@ Class UTRocketLauncher : UTWeapon UTPlayer(self).PlayAttacking3(); A_AlertMonsters(); A_QuakeEx(2+num,2+num,2+num,6+num,0,1,"",QF_RELATIVE|QF_SCALEDOWN,rollIntensity:0.1+num*0.05); - for ( int i=0; i0)?Min(50,weap.Ammo1.Amount):50; invoker.FireEffect(); UTMainHandler.DoFlash(self,Color(32,128,255,128),1); - UTMainHandler.DoSwing(self,(FRandom[Pulse](-1,-1),FRandom[Pulse](-1,1)),0.3,-0.1,2,SWING_Spring,0,3); A_AlertMonsters(); A_QuakeEx(1,1,1,2,0,1,"",QF_RELATIVE|QF_SCALEDOWN,rollIntensity:0.05); A_Overlay(-2,"MuzzleFlash"); diff --git a/zscript/ripper.zsc b/zscript/ripper.zsc index 10a8a31..3718791 100644 --- a/zscript/ripper.zsc +++ b/zscript/ripper.zsc @@ -251,16 +251,8 @@ Class Ripper2 : UTWeapon invoker.FireEffect(); UTMainHandler.DoFlash(self,Color(8,0,255,255),1); A_AlertMonsters(); - if ( alt ) - { - A_QuakeEx(3,3,3,8,0,1,"",QF_RELATIVE|QF_SCALEDOWN,rollIntensity:0.1); - UTMainHandler.DoSwing(self,(FRandom[Ripper](-0.3,-0.6),FRandom[Ripper](0.2,0.6)),3,-0.5,3,SWING_Spring,5,4); - } - else - { - A_QuakeEx(1,1,1,5,0,1,"",QF_RELATIVE|QF_SCALEDOWN,rollIntensity:0.08); - UTMainHandler.DoSwing(self,(FRandom[Ripper](-0.3,-0.6),FRandom[Ripper](0.2,0.6)),1,-0.3,2,SWING_Spring,2,2); - } + if ( alt ) A_QuakeEx(3,3,3,8,0,1,"",QF_RELATIVE|QF_SCALEDOWN,rollIntensity:0.1); + else A_QuakeEx(1,1,1,5,0,1,"",QF_RELATIVE|QF_SCALEDOWN,rollIntensity:0.08); Vector3 x, y, z; [x, y, z] = dt_CoordUtil.GetAxes(pitch,angle,roll); Vector3 origin = level.Vec3Offset(Vec2OffsetZ(0,0,player.viewz),10*x+6*y-4*z); diff --git a/zscript/shockrifle.zsc b/zscript/shockrifle.zsc index 1b585ad..7d6a013 100644 --- a/zscript/shockrifle.zsc +++ b/zscript/shockrifle.zsc @@ -344,11 +344,7 @@ Class ShockBeam : Actor ExplodeMissile(null,t.Results.HitActor); if ( t.Results.HitActor is 'ShockHitbox' ) { - if ( target ) - { - target.TakeInventory('ShockAmmo',2); - UTMainHandler.DoSwing(target,(FRandom[ASMD](-0.1,-0.6),FRandom[ASMD](-0.1,0.5)),5,-1,3,SWING_Spring,3,6); - } + if ( target ) target.TakeInventory('ShockAmmo',2); let b = t.Results.HitActor.target; UTMainHandler.DoBlast(b,250,70000); b.ExplodeMissile(null,self); @@ -581,11 +577,7 @@ Class SuperShockBeam : Actor ExplodeMissile(null,t.Results.HitActor); if ( t.Results.HitActor is 'ShockHitbox' ) { - if ( target ) - { - target.TakeInventory('EnhancedShockAmmo',1); - UTMainHandler.DoSwing(target,(FRandom[ASMD](-0.1,-0.6),FRandom[ASMD](-0.1,0.5)),10,-2,3,SWING_Spring,3,6); - } + if ( target ) target.TakeInventory('EnhancedShockAmmo',1); let b = t.Results.HitActor.target; UTMainHandler.DoBlast(b,400,70000); b.ExplodeMissile(null,self); @@ -1069,7 +1061,6 @@ Class ShockRifle : UTWeapon A_StartSound("shock/fire",CHAN_WEAPON,CHANF_OVERLAP); invoker.FireEffect(); UTMainHandler.DoFlash(self,Color(128,128,0,255),1); - UTMainHandler.DoSwing(self,(FRandom[ASMD](-0.1,-0.6),FRandom[ASMD](-0.1,0.5)),2,-0.3,3,SWING_Spring,0,4); A_AlertMonsters(); A_QuakeEx(2,2,2,4,0,1,"",QF_RELATIVE|QF_SCALEDOWN,rollIntensity:0.1); Vector3 x, y, z; @@ -1107,7 +1098,6 @@ Class ShockRifle : UTWeapon A_StartSound("shock/altfire",CHAN_WEAPON,CHANF_OVERLAP); invoker.FireEffect(); UTMainHandler.DoFlash(self,Color(128,128,0,255),1); - UTMainHandler.DoSwing(self,(FRandom[ASMD](-0.1,-0.6),FRandom[ASMD](-0.1,0.5)),3,-0.4,3,SWING_Spring,0,4); A_AlertMonsters(); A_QuakeEx(2,2,2,8,0,1,"",QF_RELATIVE|QF_SCALEDOWN,rollIntensity:0.1); Vector3 x, y, z; @@ -1252,7 +1242,6 @@ Class EnhancedShockRifle : UTWeapon A_StartSound("shock/fire",CHAN_WEAPON,CHANF_OVERLAP); invoker.FireEffect(); UTMainHandler.DoFlash(self,Color(128,255,128,0),1); - UTMainHandler.DoSwing(self,(FRandom[ASMD](-0.1,-0.6),FRandom[ASMD](-0.1,0.5)),4,-0.6,3,SWING_Spring,0,4); A_AlertMonsters(); A_QuakeEx(3,3,3,4,0,1,"",QF_RELATIVE|QF_SCALEDOWN,rollIntensity:0.15); Vector3 x, y, z; @@ -1290,7 +1279,6 @@ Class EnhancedShockRifle : UTWeapon A_StartSound("shock/altfire",CHAN_WEAPON,CHANF_OVERLAP); invoker.FireEffect(); UTMainHandler.DoFlash(self,Color(128,255,128,0),1); - UTMainHandler.DoSwing(self,(FRandom[ASMD](-0.1,-0.6),FRandom[ASMD](-0.1,0.5)),6,-0.8,3,SWING_Spring,0,4); A_AlertMonsters(); A_QuakeEx(3,3,3,4,0,1,"",QF_RELATIVE|QF_SCALEDOWN,rollIntensity:0.15); Vector3 x, y, z; diff --git a/zscript/sniperrifle.zsc b/zscript/sniperrifle.zsc index e31627f..0372284 100644 --- a/zscript/sniperrifle.zsc +++ b/zscript/sniperrifle.zsc @@ -84,17 +84,10 @@ Class SniperRifle : UTWeapon UTMainHandler.DoFlash(self,Color(32,0,0,255),1); A_StartSound("sniper/fire",CHAN_WEAPON,CHANF_OVERLAP); A_AlertMonsters(); - if ( zoomed ) - { - A_QuakeEx(2,2,2,3,0,1,"",QF_RELATIVE|QF_SCALEDOWN,rollIntensity:0.09); - for ( int i=0; i<3; i++ ) - UTMainHandler.DoSwing(self,(FRandom[Sniper](-0.3,0.05),FRandom[Sniper](-0.3,0.1)),2,-0.5,Random[Sniper](3,4),SWING_Spring,Random[Sniper](3,4),Random[Sniper](4,5)); - } + if ( zoomed ) A_QuakeEx(2,2,2,3,0,1,"",QF_RELATIVE|QF_SCALEDOWN,rollIntensity:0.09); else { A_QuakeEx(3,3,3,6,0,1,"",QF_RELATIVE|QF_SCALEDOWN,rollIntensity:0.12); - for ( int i=0; i<3; i++ ) - UTMainHandler.DoSwing(self,(FRandom[Sniper](-0.3,0.05),FRandom[Sniper](-0.3,0.1)),4,-1,Random[Sniper](3,4),SWING_Spring,Random[Sniper](3,4),Random[Sniper](4,5)); A_Overlay(-2,"MuzzleFlash"); A_OverlayFlags(-2,PSPF_RENDERSTYLE|PSPF_FORCESTYLE,true); A_OverlayRenderstyle(-2,STYLE_Add); diff --git a/zscript/translocator.zsc b/zscript/translocator.zsc index 5c924e8..be05ab6 100644 --- a/zscript/translocator.zsc +++ b/zscript/translocator.zsc @@ -393,7 +393,6 @@ Class Translocator : UTWeapon if ( !weap ) return; A_StartSound("transloc/throw",CHAN_WEAPON); invoker.FireEffect(); - UTMainHandler.DoSwing(self,(FRandom[Translocator](-0.2,0.4),FRandom[Translocator](-0.2,0.7)),2,-0.3,3,SWING_Spring,2,3); A_AlertMonsters(); Vector3 x, y, z; [x, y, z] = dt_CoordUtil.GetAxes(pitch,angle,roll); @@ -415,7 +414,6 @@ Class Translocator : UTWeapon if ( !weap ) return; A_StartSound("transloc/return",CHAN_WEAPON); invoker.FireEffect(); - UTMainHandler.DoSwing(self,(FRandom[Translocator](-0.2,-0.4),FRandom[Translocator](-0.2,0.7)),3,-1,2,SWING_Spring,2,2); A_AlertMonsters(); if ( invoker.module && invoker.module.bAMBUSH ) { diff --git a/zscript/utcommon.zsc b/zscript/utcommon.zsc index b7c3c4c..0a19a20 100644 --- a/zscript/utcommon.zsc +++ b/zscript/utcommon.zsc @@ -2869,68 +2869,6 @@ Class UTBulletTrail : LineTracer } } -Enum ESwingMode -{ - SWING_Straight, // constant increment - SWING_Spring, // bounces back after a delay -}; - -Class Swinger : Thinker -{ - Actor target; - Vector2 dir; - double inc, rmul; - int steps, mode, delay; - double str, tstr; - int cnt, cstate; - - Enum ESwingerState - { - STATE_Initial, - STATE_Wait, - STATE_Return, - }; - - override void Tick() - { - if ( !target ) cstate = -1; - switch ( cstate ) - { - case STATE_Initial: - target.A_SetAngle(target.angle+dir.x*str*flak_swingerstrength,SPF_INTERPOLATE); - target.A_SetPitch(target.pitch+dir.y*str*flak_swingerstrength,SPF_INTERPOLATE); - str += inc; - if ( ++cnt >= steps ) - { - cnt = 0; - str = tstr/steps; - cstate = (mode==SWING_Straight)?(-1):(delay>0)?STATE_Wait:STATE_Return; - } - else tstr += str; - break; - case STATE_Wait: - if ( ++cnt >= delay ) - { - cnt = 0; - cstate = STATE_Return; - } - break; - case STATE_Return: - target.A_SetAngle(target.angle-dir.x*(str/rmul)*flak_swingerstrength,SPF_INTERPOLATE); - target.A_SetPitch(target.pitch-dir.y*(str/rmul)*flak_swingerstrength,SPF_INTERPOLATE); - if ( ++cnt >= steps*rmul ) - { - cnt = 0; - cstate = -1; - } - break; - default: - Destroy(); - return; - } - } -} - Class GenericFlash : HUDMessageBase { Color col; @@ -3628,24 +3566,6 @@ Class UTMainHandler : EventHandler else Victim.vel += HitDirection*(MomentumTransfer/(Thinker.TICRATE*Victim.Mass)); } - static void DoSwing( Actor target, Vector2 dir, double initial, double inc, int steps, int mode = 0, int delay = 0, double rmul = 1.0 ) - { - if ( !flak_swingers ) return; - let s = new("Swinger"); - s.ChangeStatNum(Thinker.STAT_USER); - s.target = target; - s.dir = dir; - s.inc = inc; - s.rmul = rmul; - s.steps = steps; - s.mode = mode; - s.delay = delay; - s.cnt = 0; - s.cstate = 0; - s.str = initial; - s.tstr = initial; - } - override void UiTick() { if ( !ispb && !isbd ) return; diff --git a/zscript/warheadlauncher.zsc b/zscript/warheadlauncher.zsc index bc5697f..eeccc6e 100644 --- a/zscript/warheadlauncher.zsc +++ b/zscript/warheadlauncher.zsc @@ -685,8 +685,6 @@ Class WarheadLauncher : UTWeapon A_StartSound("warhead/fire",CHAN_WEAPON,CHANF_OVERLAP); invoker.FireEffect(); UTMainHandler.DoFlash(self,Color(128,255,128,128),1); - UTMainHandler.DoSwing(self,(FRandom[Warhead](0.6,1.2),FRandom[Warhead](0.2,0.5)),4,-1,3,SWING_Spring,2,5); - UTMainHandler.DoSwing(self,(FRandom[Warhead](0.2,0.5),FRandom[Warhead](-0.9,-1.5)),4,-0.6,5,SWING_Spring,3,3); A_AlertMonsters(); A_QuakeEx(6,6,6,20,0,1,"",QF_RELATIVE|QF_SCALEDOWN,rollIntensity:0.2); Vector3 x, y, z;