From 8ec2c14b381272adbd0cda08713d5190b22fb26b Mon Sep 17 00:00:00 2001 From: Marisa Kirisame Date: Tue, 18 May 2021 17:17:15 +0200 Subject: [PATCH] Sound precaching for player/weapons. Adjust collision sizes of projectiles. Make player self-light toggleable. --- TODO.md | 2 - cvarinfo.txt | 5 +- language.def_menu | 2 + language.es_menu | 2 + language.version | 4 +- menudef.txt | 1 + zmapinfo.txt | 4 +- zscript/handler/swwm_handler_debugrender.zsc | 11 ++- zscript/items/swwm_collectibles_gesture.zsc | 39 ++++++++- zscript/swwm_common_fx.zsc | 28 ++++--- zscript/swwm_player.zsc | 78 +++++++++++++++++ zscript/swwm_player_fx.zsc | 17 ++-- zscript/weapons/swwm_baseweapon_fx.zsc | 2 +- zscript/weapons/swwm_blazeit.zsc | 39 +++++++++ zscript/weapons/swwm_blazeit_fx.zsc | 4 +- zscript/weapons/swwm_cbt.zsc | 27 ++++++ zscript/weapons/swwm_danmaku.zsc | 38 +++++++++ zscript/weapons/swwm_danmaku_fx.zsc | 4 +- zscript/weapons/swwm_deathlydeathcannon.zsc | 35 ++++++++ .../weapons/swwm_deathlydeathcannon_fx.zsc | 14 +++- zscript/weapons/swwm_deepdarkimpact.zsc | 19 +++++ zscript/weapons/swwm_jackhammer.zsc | 31 +++++++ zscript/weapons/swwm_shot.zsc | 83 +++++++++++++++++++ zscript/weapons/swwm_shot_fx.zsc | 6 +- zscript/weapons/swwm_sparkyboi.zsc | 54 ++++++++++++ zscript/weapons/swwm_sparkyboi_fx.zsc | 18 ++-- zscript/weapons/swwm_splode.zsc | 31 +++++++ zscript/weapons/swwm_splode_fx.zsc | 4 +- zscript/weapons/swwm_tastytreat.zsc | 16 ++++ zscript/weapons/swwm_tastytreat_fx.zsc | 18 ++-- zscript/weapons/swwm_thiccboolet.zsc | 39 +++++++++ 31 files changed, 618 insertions(+), 57 deletions(-) diff --git a/TODO.md b/TODO.md index df3dd1507..4a47f1cff 100644 --- a/TODO.md +++ b/TODO.md @@ -7,8 +7,6 @@ - DLC weaponset - Additional collectibles not added due to time constraints - Additional achievements - - Switchable grenade types - - Extra shell/rocket types - "White Lady" rare Lämp spawn - More intermission art (shamefully e-begging on Twitter as usual orz) - Extra localizations (including Japanese) diff --git a/cvarinfo.txt b/cvarinfo.txt index a4534dff1..be4a7c63c 100644 --- a/cvarinfo.txt +++ b/cvarinfo.txt @@ -68,7 +68,7 @@ server bool swwm_resetscore = true; // reset score back to 0 on pistol starts server bool swwm_notrack = false; // disables all combat tracking (useful to speed up slaughterwads) server bool swwm_ynykronalert = false; // caps ynykron alert (so it doesn't wake everyone up) nosave bool swwm_menupause = true; // pause the game when demolitionist menu is open -server noarchive bool swwm_debugblast = false; // debug visual aid for DoExplosion +nosave noarchive bool swwm_debugblast = false; // debug visual aid for DoExplosion nosave bool swwm_funtags = false; // replace vanilla monster names with silly ones server bool swwm_omnibust = false; // TODO add wallbusting effect to all weapons server bool swwm_superfuel = false; // TODO enable unlimited fuel @@ -104,8 +104,9 @@ nosave bool swwm_itemsparkles = false; // visual aid for low visibility items server bool swwm_singlefirst = false; // single weapons are selected before dual ones, has to be a server cvar due to limitations nosave bool swwm_uniqstats = false; // only list stats from the same map once, rather than for each single visit nosave int swwm_filterachievements = 1; // filter for achievements at 0%: 0 - no filter, 1 - obscure text, 2 - don't show -server noarchive bool swwm_debugview = false; // debug visual aid for various things, such as actor collision, trajectories, relationships, etc. +nosave noarchive bool swwm_debugview = false; // debug visual aid for various things, such as actor collision, trajectories, relationships, etc. nosave noarchive bool swwm_oldcheat = false; // set to true if you used a SWWM Platinum cheat, so the easter egg only appears once per session +server bool swwm_selflight = true; // player emits light // minimap settings nosave bool swwm_mm_enable = true; // show a minimap below the score counter diff --git a/language.def_menu b/language.def_menu index d3355a0a4..5be74fed0 100644 --- a/language.def_menu +++ b/language.def_menu @@ -183,6 +183,7 @@ SWWM_TIME_HOURS = "hours"; SWWM_TIME_MINUTES = "minutes"; SWWM_TIME_SECONDS = "seconds"; SWWM_ATITLE = "Achievements"; +SWWM_SELFLIGHT = "Self-Lighting"; SWWM_MMTITLE = "Minimap Settings"; SWWM_MM_ENABLE = "Show Minimap"; SWWM_MM_ROTATE = "Rotate Minimap"; @@ -318,6 +319,7 @@ TOOLTIP_SWWM_SINGLEFIRST = "For weapons that have dual-wield variants, enabling TOOLTIP_SWWM_UNIQSTATS = "Clears duplicate map entries in the mission stats tab, useful to unclutter the list when moving back and forth in hubs."; TOOLTIP_SWWM_FILTERACHIEVEMENTS = "Filters out achievements at 0% in the Demolitionist Menu, if you'd rather avoid spoiling the fun. The 'Obfuscate' option is recommended, as it will at least leave a hint of things to be discovered."; TOOLTIP_SWWM_PLAYTIME = "Your total play time with this mod loaded."; +TOOLTIP_SWWM_SELFLIGHT = "Emit blue light from the player's face. Disable if this causes performance issues."; TOOLTIP_SWWM_MM_ENABLE = "Displays a minimap under the score counter."; TOOLTIP_SWWM_MM_ROTATE = "Rotates the minimap view."; TOOLTIP_SWWM_MM_GRID = "Shows a 128x128 grid on the minimap."; diff --git a/language.es_menu b/language.es_menu index 29e0e1cf2..2e1d37cb5 100644 --- a/language.es_menu +++ b/language.es_menu @@ -182,6 +182,7 @@ SWWM_TIME_HOURS = "horas"; SWWM_TIME_MINUTES = "minutos"; SWWM_TIME_SECONDS = "segundos"; SWWM_ATITLE = "Logros"; +SWWM_SELFLIGHT = "Luz Propia"; SWWM_MMTITLE = "Opciones de Minimapa"; SWWM_MM_ENABLE = "Mostrar Minimapa"; SWWM_MM_ROTATE = "Rotar Minimapa"; @@ -317,6 +318,7 @@ TOOLTIP_SWWM_SINGLEFIRST = "Para armas que tienen variantes duales, activando es TOOLTIP_SWWM_UNIQSTATS = "Elimina entradas duplicadas de mapa en la pestaña de estadísticas de misión, útil para despejar la lista al moverse por hubs."; TOOLTIP_SWWM_FILTERACHIEVEMENTS = "Filtra logros al 0% en el Menú de Demolicionista, si prefieres no estropear la sorpresa. La opción de 'Ofuscar' es la recomendada, ya que al menos dejará pistas de cosas que quedan por descubrir."; TOOLTIP_SWWM_PLAYTIME = "Tu tiempo de juego total con este mod cargado."; +TOOLTIP_SWWM_SELFLIGHT = "Emite luz azul desde la cara del jugador. Desactiva si causa problemas de rendimiento."; TOOLTIP_SWWM_MM_ENABLE = "Muestra un minimapa bajo el contador de puntuación."; TOOLTIP_SWWM_MM_ROTATE = "Gira la vista del minimapa."; TOOLTIP_SWWM_MM_GRID = "Muestra una cuadrícula de 128x128 en el minimapa."; diff --git a/language.version b/language.version index f837a6c23..6f37d14a8 100644 --- a/language.version +++ b/language.version @@ -1,3 +1,3 @@ [default] -SWWM_MODVER="\chSWWM \czGZ\c- \cw0.9.11b-pre r496 \cu(Tue 18 May 15:39:05 CEST 2021)\c-"; -SWWM_SHORTVER="\cw0.9.11b-pre r496 \cu(2021-05-18 15:39:05)\c-"; +SWWM_MODVER="\chSWWM \czGZ\c- \cw0.9.11b-pre r497 \cu(Tue 18 May 17:17:15 CEST 2021)\c-"; +SWWM_SHORTVER="\cw0.9.11b-pre r497 \cu(2021-05-18 17:17:15)\c-"; diff --git a/menudef.txt b/menudef.txt index 48d5b3b97..ae1ba019d 100644 --- a/menudef.txt +++ b/menudef.txt @@ -89,6 +89,7 @@ OptionMenu "SWWMOptionMenu" ScaleSliderFix "$SWWM_REVIVECOOLDOWN", "swwm_revivecooldown", -1, 300, 30, "$SWWM_UNLIMITED", "$SWWM_ONERETRY" Option "$SWWM_MENUPAUSE", "swwm_menupause", "YesNo" Option "$SWWM_PRECISECROSSHAIR", "swwm_precisecrosshair", "YesNo" + Option "$SWWM_SELFLIGHT", "swwm_selflight", "YesNo" Submenu "$SWWM_ATITLE", "SWWMAchievementMenu" StaticText " " StaticText "$SWWM_OTITLE", "Blue" diff --git a/zmapinfo.txt b/zmapinfo.txt index db2e11b2c..95d0f024a 100644 --- a/zmapinfo.txt +++ b/zmapinfo.txt @@ -88,7 +88,9 @@ GameInfo "MilkBreadsGesture", "KirinMangaGesture", "KirinPlushGesture" - + // really damn big textures + PrecacheTextures = "graphics/SWWMGZLogo.png", + "graphics/SWWMGZLogo_Layers.png" } ClearSkills diff --git a/zscript/handler/swwm_handler_debugrender.zsc b/zscript/handler/swwm_handler_debugrender.zsc index 4117a404b..d4c332f48 100644 --- a/zscript/handler/swwm_handler_debugrender.zsc +++ b/zscript/handler/swwm_handler_debugrender.zsc @@ -3,6 +3,7 @@ extend Class SWWMHandler { ui SWWMProjectionData projdata; + transient ui Font dbgfont; private ui void DrawWorldLine( RenderEvent e, Vector3 apos, Vector3 bpos, Color col ) { @@ -89,11 +90,15 @@ extend Class SWWMHandler if ( a.target ) DrawWorldLine(e,pos,a.target.prev*(1.-e.FracTic)+a.target.pos*e.FracTic,"Gold"); if ( a.tracer ) DrawWorldLine(e,pos,a.tracer.prev*(1.-e.FracTic)+a.tracer.pos*e.FracTic,"Orange"); if ( a.master ) DrawWorldLine(e,pos,a.master.prev*(1.-e.FracTic)+a.master.pos*e.FracTic,"Purple"); - Vector3 ndc = SWWMUtility.ProjectPoint(projdata,e.viewpos+level.Vec3Diff(e.viewpos,pos+(0,0,a.Height/2))); + double hdiff = a.Height/2; + if ( a.bFLOATBOB ) hdiff += a.GetBobOffset(); + Vector3 ndc = SWWMUtility.ProjectPoint(projdata,e.viewpos+level.Vec3Diff(e.viewpos,pos+(0,0,hdiff))); if ( ndc.z > 1. ) return; Vector2 vpos = SWWMUtility.NDCToViewport(projdata,ndc); String tag = a.player?a.player.GetUserName():a.GetTag(); - Screen.DrawText(NewSmallFont,Font.CR_UNTRANSLATED,vpos.x-NewSmallFont.StringWidth(tag)/2,vpos.y-NewSmallFont.GetHeight()/2,tag); + if ( tag == a.GetClassName() ) SWWMUtility.BeautifyClassName(tag); + if ( !dbgfont ) dbgfont = Font.GetFont('TewiShadedOutline'); + Screen.DrawText(dbgfont,Font.CR_RED,vpos.x-dbgfont.StringWidth(tag)/2,vpos.y-NewSmallFont.GetHeight()/2,tag); } private ui void DrawDebug( RenderEvent e ) @@ -108,7 +113,7 @@ extend Class SWWMHandler if ( a == players[consoleplayer].Camera ) continue; if ( a.bINVISIBLE && !(a is 'DynamicLight') ) continue; if ( (a is 'Inventory') && Inventory(a).Owner ) continue; - if ( a is 'SWWMShadow' ) continue; + if ( (a is 'SWWMShadow') || (a is 'GhostArtifactX') || (a is 'DemolitionistSelfLight') ) continue; if ( a.Distance3DSquared(e.Camera) > 1000000 ) continue; DrawActor(e,a); } diff --git a/zscript/items/swwm_collectibles_gesture.zsc b/zscript/items/swwm_collectibles_gesture.zsc index e8627e859..c331c0fdd 100644 --- a/zscript/items/swwm_collectibles_gesture.zsc +++ b/zscript/items/swwm_collectibles_gesture.zsc @@ -108,7 +108,25 @@ Class SayaBeanGesture : SWWMItemGesture s.plushuses++; SWWMUtility.AchievementProgress('swwm_progress_plush',s.plushuses,player); } - + override void MarkPrecacheSounds() + { + Super.MarkPrecacheSounds(); + MarkSound("saya/giggle1"); + MarkSound("saya/giggle2"); + MarkSound("saya/giggle3"); + MarkSound("saya/giggle4"); + MarkSound("saya/giggle5"); + MarkSound("saya/giggle6"); + MarkSound("saya/giggle7"); + MarkSound("saya/giggle8"); + MarkSound("saya/giggle9"); + MarkSound("saya/giggle10"); + MarkSound("saya/giggle11"); + MarkSound("saya/giggle12"); + MarkSound("saya/giggle13"); + MarkSound("saya/giggle14"); + MarkSound("saya/pervert"); + } States { Fire: @@ -154,5 +172,22 @@ Class LithiumNovelGesture : SWWMItemGesture {} Class KirinCummiesGesture : SWWMItemGesture {} Class MilkBreadsGesture : SWWMItemGesture {} Class KirinMangaGesture : SWWMItemGesture {} -Class KirinPlushGesture : SWWMItemGesture {} +Class KirinPlushGesture : SWWMItemGesture +{ + override void MarkPrecacheSounds() + { + Super.MarkPrecacheSounds(); + MarkSound("kirin/giggle1"); + MarkSound("kirin/giggle2"); + MarkSound("kirin/giggle3"); + MarkSound("kirin/giggle4"); + MarkSound("kirin/giggle5"); + MarkSound("kirin/giggle6"); + MarkSound("kirin/giggle7"); + MarkSound("kirin/giggle8"); + MarkSound("kirin/giggle9"); + MarkSound("kirin/giggle10"); + MarkSound("kirin/giggle11"); + } +} Class RubberDuckGesture : SWWMItemGesture {} diff --git a/zscript/swwm_common_fx.zsc b/zscript/swwm_common_fx.zsc index a078aa4f4..faa7bf8eb 100644 --- a/zscript/swwm_common_fx.zsc +++ b/zscript/swwm_common_fx.zsc @@ -74,8 +74,8 @@ Class SWWMSmoke : Actor { RenderStyle "Shaded"; StencilColor "FFFFFF"; - Radius 2; - Height 2; + Radius .1; + Height 0; Speed 1; +NOBLOCKMAP; +NOGRAVITY; @@ -193,7 +193,7 @@ Class SWWMHalfSmoke : Actor { RenderStyle "Shaded"; StencilColor "FFFFFF"; - Radius 0.1; + Radius .1; Height 0; Speed 1; +NOBLOCKMAP; @@ -279,8 +279,8 @@ Class SWWMBubble : Actor Default { RenderStyle "Add"; - Radius 2; - Height 2; + Radius .1; + Height 0; +NOBLOCKMAP; +NOGRAVITY; +DONTSPLASH; @@ -414,8 +414,8 @@ Class SWWMSpark : Actor Default { RenderStyle "Add"; - Radius 2; - Height 2; + Radius .1; + Height 0; +NOBLOCKMAP; +FORCEXYBILLBOARD; +THRUACTORS; @@ -579,8 +579,8 @@ Class SWWMChip : Actor Default { - Radius 1; - Height 1; + Radius .1; + Height 0; +NOBLOCKMAP; +THRUACTORS; +NOTELEPORT; @@ -781,6 +781,8 @@ Class SWWMItemFog : Actor Default { RenderStyle "Add"; + Radius .1; + Height 0; +NOGRAVITY; +NOBLOCKMAP; +DONTSPLASH; @@ -836,8 +838,8 @@ Class SWWMTeleportSparkle : Actor { RenderStyle "Add"; Scale 0.3; - Radius 0.1; - Height 0; + Radius .1; + Height 0.; +NOGRAVITY; +NOBLOCKMAP; +DONTSPLASH; @@ -1011,6 +1013,8 @@ Class SWWMPickupFlash : Actor { RenderStyle "Add"; Args 0,3,2,1; + Radius .1; + Height 0; +NOGRAVITY; +NOBLOCKMAP; +DONTSPLASH; @@ -1115,7 +1119,7 @@ Class InvisibleSplasher : Actor { Mass 100; VSpeed -2; - Radius 2; + Radius 1; Height 2; +NOBLOCKMAP; // needed to prevent infinite loops with some 3D floor water (yes, you read that right) FloatBobPhase 0; diff --git a/zscript/swwm_player.zsc b/zscript/swwm_player.zsc index d4194f825..2edb7c134 100644 --- a/zscript/swwm_player.zsc +++ b/zscript/swwm_player.zsc @@ -2616,6 +2616,84 @@ Class Demolitionist : PlayerPawn if ( l && l.thelamp ) CompanionLamp(l.thelamp).justteleport = true; } + override void MarkPrecacheSounds() + { + Super.MarkPrecacheSounds(); + MarkSound("demolitionist/walk1"); + MarkSound("demolitionist/walk2"); + MarkSound("demolitionist/walk3"); + MarkSound("demolitionist/walk4"); + MarkSound("demolitionist/runstart1"); + MarkSound("demolitionist/runstart2"); + MarkSound("demolitionist/runstart3"); + MarkSound("demolitionist/runstart4"); + MarkSound("demolitionist/run1"); + MarkSound("demolitionist/run2"); + MarkSound("demolitionist/run3"); + MarkSound("demolitionist/run4"); + MarkSound("demolitionist/runstop1"); + MarkSound("demolitionist/runstop2"); + MarkSound("demolitionist/runstop3"); + MarkSound("demolitionist/runstop4"); + MarkSound("demolitionist/jet"); + MarkSound("demolitionist/jetstop"); + MarkSound("demolitionist/death1"); + MarkSound("demolitionist/death2"); + MarkSound("demolitionist/death3"); + MarkSound("demolitionist/xdeath1"); + MarkSound("demolitionist/xdeath2"); + MarkSound("demolitionist/xdeath3"); + MarkSound("demolitionist/wdeath1"); + MarkSound("demolitionist/wdeath2"); + MarkSound("demolitionist/wdeath3"); + MarkSound("demolitionist/pain1"); + MarkSound("demolitionist/pain2"); + MarkSound("demolitionist/pain3"); + MarkSound("demolitionist/hipain1"); + MarkSound("demolitionist/hipain2"); + MarkSound("demolitionist/hipain3"); + MarkSound("demolitionist/lopain1"); + MarkSound("demolitionist/lopain2"); + MarkSound("demolitionist/lopain3"); + MarkSound("demolitionist/hardland1"); + MarkSound("demolitionist/hardland2"); + MarkSound("demolitionist/hardland3"); + MarkSound("demolitionist/swing1"); + MarkSound("demolitionist/swing2"); + MarkSound("demolitionist/swing3"); + MarkSound("demolitionist/wswing1"); + MarkSound("demolitionist/wswing2"); + MarkSound("demolitionist/punch1"); + MarkSound("demolitionist/punch2"); + MarkSound("demolitionist/punch3"); + MarkSound("demolitionist/punchf1"); + MarkSound("demolitionist/punchf2"); + MarkSound("demolitionist/punchf3"); + MarkSound("demolitionist/bump1"); + MarkSound("demolitionist/bump2"); + MarkSound("demolitionist/bump3"); + MarkSound("demolitionist/kick1"); + MarkSound("demolitionist/kick2"); + MarkSound("demolitionist/kick3"); + MarkSound("demolitionist/revive"); + MarkSound("demolitionist/youdied"); + MarkSound("demolitionist/parry"); + MarkSound("demolitionist/handsup"); + MarkSound("demolitionist/handsdown"); + MarkSound("demolitionist/whits1"); + MarkSound("demolitionist/whits2"); + MarkSound("demolitionist/whits3"); + MarkSound("demolitionist/whitm1"); + MarkSound("demolitionist/whitm2"); + MarkSound("demolitionist/whitm3"); + MarkSound("demolitionist/whitl1"); + MarkSound("demolitionist/whitl2"); + MarkSound("demolitionist/buttslam"); + MarkSound("demolitionist/smooch"); + MarkSound("demolitionist/blowkiss"); + MarkSound("demolitionist/petting"); + MarkSound("demolitionist/knockout"); + } States { Spawn: diff --git a/zscript/swwm_player_fx.zsc b/zscript/swwm_player_fx.zsc index 78a89a60b..fd7179fbb 100644 --- a/zscript/swwm_player_fx.zsc +++ b/zscript/swwm_player_fx.zsc @@ -5,8 +5,8 @@ Class DashTrail : Actor Default { RenderStyle "Add"; - Radius 2; - Height 2; + Radius .1; + Height 0.; Scale 0.3; +NOGRAVITY; +NOBLOCKMAP; @@ -52,8 +52,8 @@ Class DashTrail2 : Actor Default { RenderStyle "Add"; - Radius 2; - Height 2; + Radius .1; + Height 0.; Scale 0.2; Alpha 0.4; +NOGRAVITY; @@ -199,6 +199,8 @@ Class DemolitionistShockwave : Actor +NODAMAGETHRUST; +FORCERADIUSDMG; +NOINTERACTION; + Radius .1; + Height 0.; } override void PostBeginPlay() { @@ -282,6 +284,8 @@ Class DemolitionistSelfLight : Actor Default { + Radius .1; + Height 0.; +NOGRAVITY; +NOBLOCKMAP; +DONTSPLASH; @@ -320,7 +324,8 @@ Class DemolitionistSelfLight : Actor } else tagcolor = Color(255,32,48,24); } - bool curactive = activelight(); + bool doselflight = swwm_selflight; + bool curactive = doselflight&&activelight(); // setting the pitch to a value outside [-90,90] makes it auto-update to the actor's own pitch // this is undocumented and it's very great and nice and fine that such a thing had to be found out purely by chance // how very wonderful /s @@ -329,7 +334,7 @@ Class DemolitionistSelfLight : Actor else if ( !curactive && oldactive ) target.A_AttachLight('DemoSelfLight',DynamicLight.PointLight,0,0,0); oldactive = curactive; - bool curglow = !(target.bINVISIBLE||(target.alpha <= double.epsilon)); + bool curglow = doselflight&&(!(target.bINVISIBLE||(target.alpha <= double.epsilon))); if ( curglow && !oldglow ) target.A_AttachLight('DemoSelfLight2',DynamicLight.PointLight,tagcolor,80,0,DynamicLight.LF_DONTLIGHTSELF|DynamicLight.LF_ATTENUATE,(0,0,target.height/2)); else if ( !curglow && oldglow ) target.A_AttachLight('DemoSelfLight2',DynamicLight.PointLight,0,0,0); oldglow = curglow; diff --git a/zscript/weapons/swwm_baseweapon_fx.zsc b/zscript/weapons/swwm_baseweapon_fx.zsc index 2ca80aff3..3ead1b245 100644 --- a/zscript/weapons/swwm_baseweapon_fx.zsc +++ b/zscript/weapons/swwm_baseweapon_fx.zsc @@ -10,7 +10,7 @@ Class SWWMCasing : Actor abstract Default { - Radius 2; + Radius 1; Height 2; +NOBLOCKMAP; +MISSILE; diff --git a/zscript/weapons/swwm_blazeit.zsc b/zscript/weapons/swwm_blazeit.zsc index 5095fb2b2..ef8a864a7 100644 --- a/zscript/weapons/swwm_blazeit.zsc +++ b/zscript/weapons/swwm_blazeit.zsc @@ -603,6 +603,45 @@ Class Hellblazer : SWWMWeapon tracer.FloatBobPhase = FloatBobPhase; } + override void MarkPrecacheSounds() + { + Super.MarkPrecacheSounds(); + MarkSound("hellblazer/select"); + MarkSound("hellblazer/deselect"); + MarkSound("hellblazer/fire"); + MarkSound("hellblazer/altfire"); + MarkSound("hellblazer/meleestart"); + MarkSound("hellblazer/meleeend"); + MarkSound("hellblazer/idle"); + MarkSound("hellblazer/dustoff"); + MarkSound("hellblazer/shift"); + MarkSound("hellblazer/spin"); + MarkSound("hellblazer/open"); + MarkSound("hellblazer/magout"); + MarkSound("hellblazer/magin"); + MarkSound("hellblazer/close"); + MarkSound("hellblazer/hitm1"); + MarkSound("hellblazer/hitm2"); + MarkSound("hellblazer/hitm3"); + MarkSound("hellblazer/hitc1"); + MarkSound("hellblazer/hitc2"); + MarkSound("hellblazer/hitc3"); + MarkSound("hellblazer/hitcs1"); + MarkSound("hellblazer/hitcs2"); + MarkSound("hellblazer/hitcs3"); + MarkSound("hellblazer/hitr1"); + MarkSound("hellblazer/hitr2"); + MarkSound("hellblazer/hitr3"); + MarkSound("hellblazer/hitw1"); + MarkSound("hellblazer/hitw2"); + MarkSound("hellblazer/bounce"); + MarkSound("hellblazer/fly"); + MarkSound("hellblazer/preload"); + MarkSound("hellblazer/hold"); + MarkSound("hellblazer/lock"); + MarkSound("hellblazer/clear"); + } + Default { Tag "$T_HELLBLAZER"; diff --git a/zscript/weapons/swwm_blazeit_fx.zsc b/zscript/weapons/swwm_blazeit_fx.zsc index 8f4b3218b..da33f3c32 100644 --- a/zscript/weapons/swwm_blazeit_fx.zsc +++ b/zscript/weapons/swwm_blazeit_fx.zsc @@ -243,8 +243,8 @@ Class HellblazerMissile : Actor { Obituary "$O_HELLBLAZER"; DamageType 'Exploded'; - Radius 4; - Height 8; + Radius 2; + Height 4; Speed 50; PROJECTILE; +EXPLODEONWATER; diff --git a/zscript/weapons/swwm_cbt.zsc b/zscript/weapons/swwm_cbt.zsc index 3ebe8fbd7..7eb66c387 100644 --- a/zscript/weapons/swwm_cbt.zsc +++ b/zscript/weapons/swwm_cbt.zsc @@ -816,6 +816,33 @@ Class Wallbuster : SWWMWeapon return good; } + override void MarkPrecacheSounds() + { + Super.MarkPrecacheSounds(); + MarkSound("wallbuster/select"); + MarkSound("wallbuster/deselect"); + MarkSound("wallbuster/dryfire"); + MarkSound("wallbuster/spin"); + MarkSound("wallbuster/spinbig"); + MarkSound("wallbuster/unlock"); + MarkSound("wallbuster/lock"); + MarkSound("wallbuster/meleestart"); + MarkSound("wallbuster/meleeend"); + MarkSound("wallbuster/detach"); + MarkSound("wallbuster/attach"); + MarkSound("wallbuster/handspin"); + MarkSound("wallbuster/load1"); + MarkSound("wallbuster/load2"); + MarkSound("wallbuster/load3"); + MarkSound("wallbuster/load4"); + MarkSound("wallbuster/smallbust1"); + MarkSound("wallbuster/smallbust2"); + MarkSound("wallbuster/smallbust3"); + MarkSound("wallbuster/bigbust1"); + MarkSound("wallbuster/bigbust2"); + MarkSound("wallbuster/bigbust3"); + } + Default { Tag "$T_WALLBUSTER"; diff --git a/zscript/weapons/swwm_danmaku.zsc b/zscript/weapons/swwm_danmaku.zsc index 35a4f27af..6c325a257 100644 --- a/zscript/weapons/swwm_danmaku.zsc +++ b/zscript/weapons/swwm_danmaku.zsc @@ -238,6 +238,44 @@ Class Eviscerator : SWWMWeapon s.speed *= .1; } + override void MarkPrecacheSounds() + { + Super.MarkPrecacheSounds(); + MarkSound("eviscerator/select"); + MarkSound("eviscerator/deselect"); + MarkSound("eviscerator/load"); + MarkSound("eviscerator/fire1"); + MarkSound("eviscerator/fire2"); + MarkSound("eviscerator/altfire1"); + MarkSound("eviscerator/altfire2"); + MarkSound("eviscerator/eject"); + MarkSound("eviscerator/ejectend"); + MarkSound("eviscerator/switch"); + MarkSound("eviscerator/checkgun"); + MarkSound("eviscerator/meleestart"); + MarkSound("eviscerator/meleeend"); + MarkSound("eviscerator/hit1"); + MarkSound("eviscerator/hit2"); + MarkSound("eviscerator/hit3"); + MarkSound("eviscerator/hit4"); + MarkSound("eviscerator/hit5"); + MarkSound("eviscerator/hit6"); + MarkSound("eviscerator/hith1"); + MarkSound("eviscerator/hith2"); + MarkSound("eviscerator/hith3"); + MarkSound("eviscerator/hith4"); + MarkSound("eviscerator/hith5"); + MarkSound("eviscerator/hith6"); + MarkSound("eviscerator/hith7"); + MarkSound("eviscerator/hith8"); + MarkSound("eviscerator/hitf1"); + MarkSound("eviscerator/hitf2"); + MarkSound("eviscerator/hitf3"); + MarkSound("eviscerator/shell1"); + MarkSound("eviscerator/shell2"); + MarkSound("eviscerator/casing"); + } + Default { Tag "$T_EVISCERATOR"; diff --git a/zscript/weapons/swwm_danmaku_fx.zsc b/zscript/weapons/swwm_danmaku_fx.zsc index 73399be23..20ea4a3dd 100644 --- a/zscript/weapons/swwm_danmaku_fx.zsc +++ b/zscript/weapons/swwm_danmaku_fx.zsc @@ -145,7 +145,7 @@ Class EvisceratorChunk : Actor Default { Obituary "$O_EVISCERATOR"; - Radius 2; + Radius 1; Height 2; Speed 50; DamageFunction int(clamp((vel.length()-8)*.2+max(0,1.-lifetime)*2.,0,15)); @@ -450,7 +450,7 @@ Class EvisceratorProj : Actor { Obituary "$O_EVISCERATOR"; DamageType 'Exploded'; - Radius 4; + Radius 2; Height 4; Gravity 0.35; Speed 50; diff --git a/zscript/weapons/swwm_deathlydeathcannon.zsc b/zscript/weapons/swwm_deathlydeathcannon.zsc index 3b4d502e0..eda9acf77 100644 --- a/zscript/weapons/swwm_deathlydeathcannon.zsc +++ b/zscript/weapons/swwm_deathlydeathcannon.zsc @@ -193,6 +193,41 @@ Class Ynykron : SWWMWeapon return Super.PickupForAmmoSWWM(ownedWeapon); } + override void MarkPrecacheSounds() + { + Super.MarkPrecacheSounds(); + MarkSound("ynykron/select"); + MarkSound("ynykron/deselect"); + MarkSound("ynykron/idle"); + MarkSound("ynykron/ready"); + MarkSound("ynykron/latch"); + MarkSound("ynykron/ventopen"); + MarkSound("ynykron/ventclose"); + MarkSound("ynykron/puff"); + MarkSound("ynykron/puffing"); + MarkSound("ynykron/puffend"); + MarkSound("ynykron/meleestart"); + MarkSound("ynykron/meleeend"); + MarkSound("ynykron/checkout"); + MarkSound("ynykron/fire"); + MarkSound("ynykron/altfire"); + MarkSound("ynykron/magout"); + MarkSound("ynykron/magin"); + MarkSound("ynykron/beam"); + MarkSound("ynykron/hit1"); + MarkSound("ynykron/hit2"); + MarkSound("ynykron/hit3"); + MarkSound("ynykron/altbeam"); + MarkSound("ynykron/vortex"); + MarkSound("ynykron/vortexarc1"); + MarkSound("ynykron/vortexarc2"); + MarkSound("ynykron/vortexarc3"); + MarkSound("ynykron/vortexflash1"); + MarkSound("ynykron/vortexflash2"); + MarkSound("ynykron/vortexend"); + MarkSound("ynykron/wind"); + } + Default { Tag "$T_YNYKRON"; diff --git a/zscript/weapons/swwm_deathlydeathcannon_fx.zsc b/zscript/weapons/swwm_deathlydeathcannon_fx.zsc index 73c48f23f..e9dc07b2d 100644 --- a/zscript/weapons/swwm_deathlydeathcannon_fx.zsc +++ b/zscript/weapons/swwm_deathlydeathcannon_fx.zsc @@ -220,7 +220,7 @@ Class YnykronImpactArm : Actor -NOGRAVITY; Gravity 0.35; BounceFactor 1.0; - Radius 4; + Radius 2; Height 4; } override void PostBeginPlay() @@ -265,6 +265,8 @@ Class YnykronImpactTrail : Actor +NOINTERACTION; Scale 2.; Alpha .2; + Radius .1; + Height 0.; } override void PostBeginPlay() { @@ -302,6 +304,8 @@ Class YnykronDelayedImpact : Actor +NOGRAVITY; +NOTELEPORT; +NOINTERACTION; + Radius .1; + Height 0.; } override void Tick() { @@ -344,6 +348,8 @@ Class YnykronImpact : Actor +NODAMAGETHRUST; +FORCERADIUSDMG; +EXTREMEDEATH; + Radius .1; + Height 0.; } private bool CmpDist( Actor a, Actor b ) @@ -1677,6 +1683,7 @@ Class YnykronLightningArc : Actor r.ReactionTime += Random[Ynykron](-3,3); } } + if ( arcsnd != "" ) A_StartSound(arcsnd,CHAN_WEAPON); if ( ((ReactionTime > 0) && (special1 > ReactionTime)) || bAMBUSH ) return; let b = Spawn(GetClass(),invoker.nextpos); b.angle = atan2(invoker.nextdir.y,invoker.nextdir.x); @@ -1685,7 +1692,6 @@ Class YnykronLightningArc : Actor b.special1 = special1+1; YnykronLightningArc(b).destpos = invoker.destpos; b.SetState(b.FindState("Trailer")); - if ( arcsnd != "" ) A_StartSound(arcsnd,CHAN_WEAPON); } override void PostBeginPlay() { @@ -2071,7 +2077,7 @@ Class YnykronSingularityExplosionArm : Actor -NOGRAVITY; Gravity 0.35; BounceFactor 1.0; - Radius 4; + Radius 2; Height 4; } override void PostBeginPlay() @@ -2117,6 +2123,8 @@ Class YnykronSingularityExplosionTrail : Actor +NOINTERACTION; Scale 3.; Alpha .2; + Radius 0.1; + Height 0; } override void PostBeginPlay() { diff --git a/zscript/weapons/swwm_deepdarkimpact.zsc b/zscript/weapons/swwm_deepdarkimpact.zsc index 67f56c733..97f8a2ce0 100644 --- a/zscript/weapons/swwm_deepdarkimpact.zsc +++ b/zscript/weapons/swwm_deepdarkimpact.zsc @@ -298,6 +298,25 @@ Class DeepImpact : SWWMWeapon A_QuakeEx(1,1,1,2,0,1,"",QF_RELATIVE|QF_SCALEUP,rollIntensity:.05); } + override void MarkPrecacheSounds() + { + Super.MarkPrecacheSounds(); + MarkSound("deepimpact/fire"); + MarkSound("deepimpact/charge"); + MarkSound("deepimpact/altfire"); + MarkSound("deepimpact/dryfire"); + MarkSound("deepimpact/select"); + MarkSound("deepimpact/checkout"); + MarkSound("deepimpact/deselect"); + MarkSound("deepimpact/bullet"); + MarkSound("deepimpact/bullethit1"); + MarkSound("deepimpact/bullethit2"); + MarkSound("deepimpact/reloadbeg"); + MarkSound("deepimpact/reloadend"); + MarkSound("deepimpact/reload"); + MarkSound("deepimpact/noreload"); + } + Default { Tag "$T_DEEPIMPACT"; diff --git a/zscript/weapons/swwm_jackhammer.zsc b/zscript/weapons/swwm_jackhammer.zsc index 944f18580..6a0063a31 100644 --- a/zscript/weapons/swwm_jackhammer.zsc +++ b/zscript/weapons/swwm_jackhammer.zsc @@ -215,6 +215,37 @@ Class PusherWeapon : SWWMWeapon player.SetPSprite(PSP_WEAPON,ResolveState("AltRelease")); } + override void MarkPrecacheSounds() + { + Super.MarkPrecacheSounds(); + MarkSound("pusher/select"); + MarkSound("pusher/deselect"); + MarkSound("pusher/motor"); + MarkSound("pusher/motorend"); + MarkSound("pusher/start"); + MarkSound("pusher/drill"); + MarkSound("pusher/hit1"); + MarkSound("pusher/hit2"); + MarkSound("pusher/hit3"); + MarkSound("pusher/meat1"); + MarkSound("pusher/meat2"); + MarkSound("pusher/meat3"); + MarkSound("pusher/end"); + MarkSound("pusher/checkout"); + MarkSound("pusher/pullback"); + MarkSound("pusher/altfire1"); + MarkSound("pusher/altfire2"); + MarkSound("pusher/miss"); + MarkSound("pusher/althit1"); + MarkSound("pusher/althit2"); + MarkSound("pusher/altmeat1"); + MarkSound("pusher/altmeat2"); + MarkSound("pusher/fly"); + MarkSound("pusher/bounce1"); + MarkSound("pusher/bounce2"); + MarkSound("pusher/bounce3"); + } + Default { Tag "$T_PUSHER"; diff --git a/zscript/weapons/swwm_shot.zsc b/zscript/weapons/swwm_shot.zsc index dc643e957..8f2fdf4ac 100644 --- a/zscript/weapons/swwm_shot.zsc +++ b/zscript/weapons/swwm_shot.zsc @@ -788,6 +788,89 @@ Class Spreadgun : SWWMWeapon A_DropItem(Random[Spreadgun](0,2)?"RedShell":"GreenShell",Random[Spreadgun](1,2)); } + override void MarkPrecacheSounds() + { + Super.MarkPrecacheSounds(); + MarkSound("spreadgun/open"); + MarkSound("spreadgun/hammer"); + MarkSound("spreadgun/close"); + MarkSound("spreadgun/shellin"); + MarkSound("spreadgun/select"); + MarkSound("spreadgun/deselect"); + MarkSound("spreadgun/redfire1"); + MarkSound("spreadgun/redfire2"); + MarkSound("spreadgun/greenfire1"); + MarkSound("spreadgun/greenfire2"); + MarkSound("spreadgun/whitefire1"); + MarkSound("spreadgun/whitefire2"); + MarkSound("spreadgun/bluefire1"); + MarkSound("spreadgun/bluefire2"); + MarkSound("spreadgun/blackfire1"); + MarkSound("spreadgun/blackfire2"); + MarkSound("spreadgun/purplefire1"); + MarkSound("spreadgun/purplefire2"); + MarkSound("spreadgun/goldfire1"); + MarkSound("spreadgun/goldfire2"); + MarkSound("spreadgun/checkgun"); + MarkSound("spreadgun/casing1"); + MarkSound("spreadgun/casing2"); + MarkSound("spreadgun/casing3"); + MarkSound("spreadgun/casing4"); + MarkSound("spreadgun/casing5"); + MarkSound("spreadgun/casing6"); + MarkSound("spreadgun/gcasing1"); + MarkSound("spreadgun/gcasing2"); + MarkSound("spreadgun/gcasing3"); + MarkSound("spreadgun/pellet1"); + MarkSound("spreadgun/pellet2"); + MarkSound("spreadgun/pellet3"); + MarkSound("spreadgun/pellet4"); + MarkSound("spreadgun/pellet5"); + MarkSound("spreadgun/pellet6"); + MarkSound("spreadgun/pellet7"); + MarkSound("spreadgun/pellet8"); + MarkSound("spreadgun/pelletf1"); + MarkSound("spreadgun/pelletf2"); + MarkSound("spreadgun/pelletf3"); + MarkSound("spreadgun/pelletf4"); + MarkSound("spreadgun/pelletf5"); + MarkSound("spreadgun/pelletf6"); + MarkSound("spreadgun/slug1"); + MarkSound("spreadgun/slug2"); + MarkSound("spreadgun/slugf1"); + MarkSound("spreadgun/slugf2"); + MarkSound("spreadgun/corrode"); + MarkSound("spreadgun/corrodepuff1"); + MarkSound("spreadgun/corrodepuff2"); + MarkSound("spreadgun/ball1"); + MarkSound("spreadgun/ball2"); + MarkSound("spreadgun/ball3"); + MarkSound("spreadgun/ballf1"); + MarkSound("spreadgun/ballf2"); + MarkSound("spreadgun/ballf3"); + MarkSound("spreadgun/salt1"); + MarkSound("spreadgun/salt2"); + MarkSound("spreadgun/salt3"); + MarkSound("spreadgun/salt4"); + MarkSound("spreadgun/salttrail1"); + MarkSound("spreadgun/salttrail2"); + MarkSound("spreadgun/salttrail3"); + MarkSound("spreadgun/salttrail4"); + MarkSound("spreadgun/goldexpl1"); + MarkSound("spreadgun/goldexpl2"); + MarkSound("misc/clonk1"); + MarkSound("misc/clonk2"); + MarkSound("misc/clonk3"); + MarkSound("misc/clonk4"); + MarkSound("misc/clonk5"); + MarkSound("misc/clonk6"); + MarkSound("misc/clonk7"); + MarkSound("misc/clonk8"); + MarkSound("misc/clonk9"); + MarkSound("misc/clonk10"); + MarkSound("misc/clonk11"); + } + Default { Tag "$T_SPREADGUN"; diff --git a/zscript/weapons/swwm_shot_fx.zsc b/zscript/weapons/swwm_shot_fx.zsc index 210ca779a..e256dc3dd 100644 --- a/zscript/weapons/swwm_shot_fx.zsc +++ b/zscript/weapons/swwm_shot_fx.zsc @@ -126,6 +126,8 @@ Class DragonBreathPuff : Actor RenderStyle "Add"; Scale 0.5; Alpha 0.35; + Radius .1; + Height 0; +NOGRAVITY; +NOBLOCKMAP; +DONTSPLASH; @@ -177,7 +179,7 @@ Class DragonBreathArm : Actor -NOGRAVITY; Gravity 0.15; BounceFactor 1.0; - Radius 4; + Radius 2; Height 4; } override void PostBeginPlay() @@ -1144,7 +1146,7 @@ Class TheBall : Actor Speed 80; Gravity 0.1; BounceFactor 1.0; - Radius 2; + Radius 1; Height 2; } override String GetObituary( Actor victim, Actor inflictor, Name mod, bool playerattack ) diff --git a/zscript/weapons/swwm_sparkyboi.zsc b/zscript/weapons/swwm_sparkyboi.zsc index 161200b6e..1cd466819 100644 --- a/zscript/weapons/swwm_sparkyboi.zsc +++ b/zscript/weapons/swwm_sparkyboi.zsc @@ -190,6 +190,60 @@ Class Sparkster : SWWMWeapon A_StartSound("biospark/fail",CHAN_WEAPON,CHANF_OVERLAP); } + override void MarkPrecacheSounds() + { + Super.MarkPrecacheSounds(); + MarkSound("biospark/select"); + MarkSound("biospark/deselect"); + MarkSound("biospark/fire1"); + MarkSound("biospark/fire2"); + MarkSound("biospark/fire3"); + MarkSound("biospark/altfire1"); + MarkSound("biospark/altfire2"); + MarkSound("biospark/altfire3"); + MarkSound("biospark/thirdfire"); + MarkSound("biospark/meleestart"); + MarkSound("biospark/meleeend"); + MarkSound("biospark/idle"); + MarkSound("biospark/idle2"); + MarkSound("biospark/magout"); + MarkSound("biospark/magin"); + MarkSound("biospark/spark"); + MarkSound("biospark/hit1"); + MarkSound("biospark/hit2"); + MarkSound("biospark/hit3"); + MarkSound("biospark/beamhit1"); + MarkSound("biospark/beamhit2"); + MarkSound("biospark/deploy1"); + MarkSound("biospark/deploy2"); + MarkSound("biospark/deploy3"); + MarkSound("biospark/bighit1"); + MarkSound("biospark/bighit2"); + MarkSound("biospark/bigspark"); + MarkSound("biospark/arc1"); + MarkSound("biospark/arc2"); + MarkSound("biospark/arc3"); + MarkSound("biospark/arc4"); + MarkSound("biospark/bigarc1"); + MarkSound("biospark/bigarc2"); + MarkSound("biospark/bigarc3"); + MarkSound("biospark/bigarc4"); + MarkSound("biospark/hugearc1"); + MarkSound("biospark/hugearc2"); + MarkSound("biospark/hugearc3"); + MarkSound("biospark/zap1"); + MarkSound("biospark/zap2"); + MarkSound("biospark/zap3"); + MarkSound("biospark/zap4"); + MarkSound("biospark/zap5"); + MarkSound("biospark/zap6"); + MarkSound("biospark/prefire"); + MarkSound("biospark/prethird"); + MarkSound("biospark/hiss"); + MarkSound("biospark/fail"); + MarkSound("biospark/checkout"); + } + Default { Tag "$T_SPARKSTER"; diff --git a/zscript/weapons/swwm_sparkyboi_fx.zsc b/zscript/weapons/swwm_sparkyboi_fx.zsc index df9881aca..fec9acacc 100644 --- a/zscript/weapons/swwm_sparkyboi_fx.zsc +++ b/zscript/weapons/swwm_sparkyboi_fx.zsc @@ -59,8 +59,8 @@ Class BiosparkHitbox : Actor { Default { - Radius 30; - Height 60; + Radius 8; + Height 16; +NOGRAVITY; +NOCLIP; +DONTSPLASH; @@ -85,8 +85,8 @@ Class BigBiosparkHitbox : BiosparkHitbox { Default { - Radius 80; - Height 160; + Radius 40; + Height 80; } } @@ -98,6 +98,8 @@ Class BigOrbiter : Actor { RenderStyle "Add"; Scale 3.; + Radius .1; + Height 0.; +NOINTERACTION; +NOCLIP; +DONTSPLASH; @@ -386,7 +388,7 @@ Class BigBiospark : Actor DamageType "Plasma"; RenderStyle "Add"; Health 1200; - Radius 2; + Radius 1; Height 2; Speed 1; BounceFactor 1.; @@ -430,8 +432,8 @@ Class BiosparkBall : Actor Obituary "$O_SPARKSTER"; DamageType "Plasma"; RenderStyle "Add"; - Radius 3; - Height 6; + Radius 1; + Height 2; Speed 20; PROJECTILE; +FOILINVUL; @@ -1728,7 +1730,7 @@ Class BiosparkCore : Actor Gravity .1; BounceFactor 1.; WallBounceFactor 1.; - Radius 2; + Radius 1; Height 2; ReactionTime 25; } diff --git a/zscript/weapons/swwm_splode.zsc b/zscript/weapons/swwm_splode.zsc index 41056ef1f..6c94c2a9d 100644 --- a/zscript/weapons/swwm_splode.zsc +++ b/zscript/weapons/swwm_splode.zsc @@ -260,6 +260,37 @@ Class ExplodiumGun : SWWMWeapon return copy; } + override void MarkPrecacheSounds() + { + Super.MarkPrecacheSounds(); + MarkSound("explodium/casing1"); + MarkSound("explodium/casing2"); + MarkSound("explodium/casing3"); + MarkSound("explodium/casing4"); + MarkSound("explodium/checkout"); + MarkSound("explodium/fire1"); + MarkSound("explodium/fire2"); + MarkSound("explodium/fire3"); + MarkSound("explodium/hit1"); + MarkSound("explodium/hit2"); + MarkSound("explodium/hit3"); + MarkSound("explodium/jamitin"); + MarkSound("explodium/mag1"); + MarkSound("explodium/mag2"); + MarkSound("explodium/mag3"); + MarkSound("explodium/maghit1"); + MarkSound("explodium/maghit2"); + MarkSound("explodium/magin"); + MarkSound("explodium/magout"); + MarkSound("explodium/magpin"); + MarkSound("explodium/select"); + MarkSound("explodium/deselect"); + MarkSound("explodium/slideback"); + MarkSound("explodium/slideforward"); + MarkSound("explodium/speen"); + MarkSound("explodium/throwmag"); + } + Default { Tag "$T_EXPLODIUM"; diff --git a/zscript/weapons/swwm_splode_fx.zsc b/zscript/weapons/swwm_splode_fx.zsc index def2020f4..273ec28d4 100644 --- a/zscript/weapons/swwm_splode_fx.zsc +++ b/zscript/weapons/swwm_splode_fx.zsc @@ -45,7 +45,7 @@ Class ExplodiumMagArm : Actor -NOGRAVITY; Gravity 0.35; BounceFactor 1.0; - Radius 4; + Radius 2; Height 4; } override void PostBeginPlay() @@ -118,7 +118,7 @@ Class ExplodiumMagProj : Actor { Obituary "$O_EXPLODIUM"; DamageType "Explodium"; - Radius 4; + Radius 2; Height 4; Gravity 0.5; Speed 30; diff --git a/zscript/weapons/swwm_tastytreat.zsc b/zscript/weapons/swwm_tastytreat.zsc index fdef788d4..510628afb 100644 --- a/zscript/weapons/swwm_tastytreat.zsc +++ b/zscript/weapons/swwm_tastytreat.zsc @@ -313,6 +313,22 @@ Class CandyGun : SWWMWeapon } return Super.CreateTossable(amt); } + + override void MarkPrecacheSounds() + { + Super.MarkPrecacheSounds(); + MarkSound("candygun/fire1"); + MarkSound("candygun/fire2"); + MarkSound("candygun/fire3"); + MarkSound("candygun/hit1"); + MarkSound("candygun/hit2"); + MarkSound("candygun/hit3"); + MarkSound("candygun/maghit1"); + MarkSound("candygun/maghit2"); + MarkSound("candygun/gunhit1"); + MarkSound("candygun/gunhit2"); + } + Default { Tag "$T_CANDYGUN"; diff --git a/zscript/weapons/swwm_tastytreat_fx.zsc b/zscript/weapons/swwm_tastytreat_fx.zsc index 45c69460e..6d2ac9345 100644 --- a/zscript/weapons/swwm_tastytreat_fx.zsc +++ b/zscript/weapons/swwm_tastytreat_fx.zsc @@ -2,9 +2,7 @@ Class CandyCasing : SWWMCasing {} -Class CandyMag : ExplodiumMag -{ -} +Class CandyMag : ExplodiumMag {} Class CandyLight : PaletteLight { @@ -217,6 +215,8 @@ Class CandyPop : Actor DamageType "Explodium"; RenderStyle "Add"; Scale 2.; + Radius .1; + Height 0.; +NOGRAVITY; +NOBLOCKMAP; +NODAMAGETHRUST; @@ -358,7 +358,7 @@ Class CandyMagArm : Actor +FOILINVUL; Gravity 0.35; BounceFactor 1.0; - Radius 4; + Radius 2; Height 4; } override void PostBeginPlay() @@ -416,6 +416,8 @@ Class CandyMagTrail : Actor +NOINTERACTION; Scale 2.4; Alpha 0.7; + Radius .1; + Height 0.; } override void Tick() { @@ -516,7 +518,7 @@ Class CandyGunProj : Actor { Obituary "$O_CANDYGUN"; DamageType "Explodium"; - Radius 6; + Radius 3; Height 6; Gravity 0.5; Speed 30; @@ -653,8 +655,8 @@ Class CandyMagProj : Actor { Obituary "$O_CANDYGUN"; DamageType "Explodium"; - Radius 6; - Height 6; + Radius 2; + Height 4; Gravity 0.5; Speed 30; PROJECTILE; @@ -784,6 +786,8 @@ Class CandyBulletImpact : Actor DamageType "Explodium"; RenderStyle "Add"; Scale 2.5; + Radius .1; + Height 0.; +NOGRAVITY; +NOBLOCKMAP; +NODAMAGETHRUST; diff --git a/zscript/weapons/swwm_thiccboolet.zsc b/zscript/weapons/swwm_thiccboolet.zsc index 4f1c600f0..5fd724dc0 100644 --- a/zscript/weapons/swwm_thiccboolet.zsc +++ b/zscript/weapons/swwm_thiccboolet.zsc @@ -887,6 +887,45 @@ Class SilverBullet : SWWMWeapon return good; } + override void MarkPrecacheSounds() + { + Super.MarkPrecacheSounds(); + MarkSound("silverbullet/select"); + MarkSound("silverbullet/deselect"); + MarkSound("silverbullet/meleestart"); + MarkSound("silverbullet/meleeend"); + MarkSound("silverbullet/idle"); + MarkSound("silverbullet/boltopen"); + MarkSound("silverbullet/boltclose"); + MarkSound("silverbullet/magout"); + MarkSound("silverbullet/magin"); + MarkSound("silverbullet/zoomstart"); + MarkSound("silverbullet/zooming"); + MarkSound("silverbullet/zoomend"); + MarkSound("silverbullet/fire1"); + MarkSound("silverbullet/fire2"); + MarkSound("silverbullet/fire3"); + MarkSound("silverbullet/altfire1"); + MarkSound("silverbullet/altfire2"); + MarkSound("silverbullet/altfire3"); + MarkSound("silverbullet/jet"); + MarkSound("silverbullet/casing1"); + MarkSound("silverbullet/casing2"); + MarkSound("silverbullet/casing3"); + MarkSound("silverbullet/casing4"); + MarkSound("silverbullet/mag1"); + MarkSound("silverbullet/mag2"); + MarkSound("silverbullet/mag3"); + MarkSound("silverbullet/hit1"); + MarkSound("silverbullet/hit2"); + MarkSound("silverbullet/flesh1"); + MarkSound("silverbullet/flesh2"); + MarkSound("silverbullet/chode1"); + MarkSound("silverbullet/chode2"); + MarkSound("silverbullet/crouch"); + MarkSound("silverbullet/uncrouch"); + } + Default { Tag "$T_SILVERBULLET";