From 11cc1371832f0377c123683a0920355f0592d6a6 Mon Sep 17 00:00:00 2001 From: Marisa the Magician Date: Wed, 20 Aug 2025 18:09:53 +0200 Subject: [PATCH] Implement self obituaries (4.15 feature). --- language.def_base | 27 +++++++++++++++++++ language.es_base | 27 +++++++++++++++++++ language.version | 4 +-- zscript/dlc/swwm_mister_fx.zsc | 6 +++++ zscript/dlc/swwm_notashotgun.zsc | 1 + zscript/dlc/swwm_notashotgun_fx.zsc | 11 ++++++++ zscript/items/swwm_miscitems.zsc | 3 +++ zscript/player/swwm_player.zsc | 11 ++++++++ zscript/swwm_common_fx.zsc | 5 ++++ zscript/weapons/swwm_blazeit_fx.zsc | 2 ++ zscript/weapons/swwm_danmaku_fx.zsc | 2 ++ .../weapons/swwm_deathlydeathcannon_altfx.zsc | 12 +++++++++ .../weapons/swwm_deathlydeathcannon_fx.zsc | 2 ++ zscript/weapons/swwm_shot_fx.zsc | 6 +++++ zscript/weapons/swwm_sparkyboi_fx.zsc | 8 ++++++ zscript/weapons/swwm_splode_fx.zsc | 3 +++ zscript/weapons/swwm_tastytreat_fx.zsc | 10 +++++++ zscript/weapons/swwm_thiccboolet.zsc | 1 + zscript/weapons/swwm_thiccboolet_fx.zsc | 1 + 19 files changed, 140 insertions(+), 2 deletions(-) diff --git a/language.def_base b/language.def_base index 1f3a84848..1c3dedc5c 100644 --- a/language.def_base +++ b/language.def_base @@ -633,6 +633,33 @@ O_ENDLEVEL = "%o had a peculiar teleportation-related mishap."; O_MYKRADVO = "%o couldn't hide from %k's vengeful wrath."; O_LEADBALL = "%o was conked by %k's lead ball."; O_SALTSHOT = "%k made %o very salty."; +// self obituaries +SO_EXPLODIUM = "%o forgot that %p gun deals splash damage."; +SO_EXPLODIUMALT = "%o tried to catch %p own grenade."; +SO_SPREADGUN_GOLD = "%o ate up %p own golden blast."; +SO_EVISCERATOR = "%o bounced some shrapnel right into %p own face."; +SO_EVISCERATORALT = "%o ain't no flak monkey."; +SO_HELLBLAZER = "%o is most definitely good at Doom."; +SO_SPARKSTER = "%o sparked %hself."; +SO_SILVERBULLET = "%o fired a 35mm round at point blank and now regrets it."; +SO_SILVERBULLET2 = "%o forgot that the Silver Bullet's exhaust is very hot."; +SO_CANDYGUN = "%o tried to taste %p own candy (and died)."; +SO_CANDYGUNALT = "%o tried to catch %p own candy grenade."; +SO_CANDYGUNCOMBO = "%o tried to catch %p own Candy Gun."; +SO_YNYKRON = "%o instantly removed %hself."; +SO_YNYKRONALT = "%o didn't keep %p distance from %p own singularity."; +SO_PLASMABLAST = "%o ate %p own plasma."; +SO_QUADRAVOL = "%o certainly is good at Doom."; +SO_QUADRAVOL2 = "%o failed the rocket jump."; +SO_QUADRAVOLF = "%o forgot to stop, drop and roll."; +SO_NEWSPARKSTER = "%o really shouldn't use plasma artillery at close range."; +SO_RAYKHOM = "%o forgot that the Ray-Khom is a long range weapon."; +SO_RAYKHOM2 = "%o can feel John Romero laughing at %h."; +SO_MORTALRIFLE = "%o made a very deadly mistake."; +SO_MORTALRIFLEALT = "%o should have kept %p distance from those very deadly grenades."; +SO_RAFANKOS = "%o shouldn't be using superweapons at point blank."; +SO_LEADBALL = "%o shouldn't be playing with %p own balls."; +SO_SALTSHOT = "%o got caught in the crossfire of %p own sentry."; // edited vanilla obituaries OB_SUICIDE = "%o committed suikoden."; OB_FALLING = "%o sprained everything."; diff --git a/language.es_base b/language.es_base index 30a3df951..78716419d 100644 --- a/language.es_base +++ b/language.es_base @@ -496,6 +496,33 @@ O_ENDLEVEL = "%o tuvo un peculiar contratiempo relacionado con el teletransporte O_MYKRADVO = "%o no pudo esconderse de la ira vengativa de %k."; O_LEADBALL = "A %o le salió un chichón con la bola de plomo de %k."; O_SALTSHOT = "%k puso a %o muy salad@[ao_esp]."; +// self obituaries +SO_EXPLODIUM = "%o olvidó que su pistola causa daño por área."; +SO_EXPLODIUMALT = "%o intentó atrapar su propia granada."; +SO_SPREADGUN_GOLD = "%o se tragó su propia explosión dorada."; +SO_EVISCERATOR = "%o hizo rebotar metralla en su propia cara."; +SO_EVISCERATORALT = "%o no es un@[a_esp] máquina del antiaéreo."; +SO_HELLBLAZER = "%o es definitivamente buen@[ao_esp] al Doom."; +SO_SPARKSTER = "%o se chispeó a sí mism@[ao_esp]."; +SO_SILVERBULLET = "%o disparó un proyectil de 35mm a bocajarro y ahora lo lamenta."; +SO_SILVERBULLET2 = "%o olvidó que los gases de escape del Silver Bullet están muy calientes."; +SO_CANDYGUN = "%o intentó probar su propio caramelo (y murió)."; +SO_CANDYGUNALT = "%o intentó atrapar su propia granada de caramelo."; +SO_CANDYGUNCOMBO = "%o intentó atrapar su propia Pistola de Caramelo."; +SO_YNYKRON = "%o se borró instantáneamente."; +SO_YNYKRONALT = "%o no mantuvo la distancia suficiente de su propia singularidad."; +SO_PLASMABLAST = "%o se tragó su propio plasma."; +SO_QUADRAVOL = "%o ciertamente es buen@[ao_esp] al Doom."; +SO_QUADRAVOL2 = "%o falló el salto con cohete.."; +SO_QUADRAVOLF = "%o olvidó tirarse al suelo y rodar."; +SO_NEWSPARKSTER = "%o realmente no debería usar artillería de plasma a una distancia tan corta."; +SO_RAYKHOM = "%o olvidó que la Ray-Khom es un arma de largo alcance."; +SO_RAYKHOM2 = "%o puede sentir como John Romero se ríe de %h."; +SO_MORTALRIFLE = "%o cometió un error muy mortal."; +SO_MORTALRIFLEALT = "%o debería haber mantenido la distancia de esas granadas tan mortales."; +SO_RAFANKOS = "%o no debería usar superarmas a bocajarro."; +SO_LEADBALL = "%o no debería jugar con sus propias bolas."; +SO_SALTSHOT = "%o se vio envuelt@[ao_esp] en el fuego cruzado de su propia torreta."; // edited vanilla obituaries OB_SUICIDE = "%o se hizo un sudoku."; OB_FALLING = "%o se partió las patas."; diff --git a/language.version b/language.version index af78d359e..6f0675526 100644 --- a/language.version +++ b/language.version @@ -1,3 +1,3 @@ [default] -SWWM_MODVER="\cyDEMOLITIONIST \cw1.3pre r1236 \cu(mié 20 ago 2025 16:54:45 CEST)\c-"; -SWWM_SHORTVER="\cw1.3pre r1236 \cu(2025-08-20 16:54:45)\c-"; +SWWM_MODVER="\cyDEMOLITIONIST \cw1.3pre r1237 \cu(mié 20 ago 2025 18:09:53 CEST)\c-"; +SWWM_SHORTVER="\cw1.3pre r1237 \cu(2025-08-20 18:09:53)\c-"; diff --git a/zscript/dlc/swwm_mister_fx.zsc b/zscript/dlc/swwm_mister_fx.zsc index 70ec9e313..5703abf23 100644 --- a/zscript/dlc/swwm_mister_fx.zsc +++ b/zscript/dlc/swwm_mister_fx.zsc @@ -177,6 +177,7 @@ Class MisterFuzzy : SWWMNonInteractiveActor Default { Obituary "$O_MORTALRIFLE"; + SelfObituary "$SO_MORTALRIFLE"; DamageType 'CoAb44'; RenderStyle 'Add'; +NODAMAGETHRUST; @@ -305,6 +306,7 @@ Class MisterPop : SWWMNonInteractiveActor Default { Obituary "$O_MORTALRIFLE"; + SelfObituary "$SO_MORTALRIFLE"; DamageType 'CoAb44'; RenderStyle 'Add'; Scale .2; @@ -347,6 +349,7 @@ Class MisterBulletImpact : SWWMNonInteractiveActor Default { Obituary "$O_MORTALRIFLE"; + SelfObituary "$SO_MORTALRIFLE"; DamageType 'CoAb44'; RenderStyle 'Add'; Scale 1.5; @@ -797,6 +800,7 @@ Class MisterRailHit : SWWMNonInteractiveActor Default { Obituary "$O_MORTALRIFLE"; + SelfObituary "$SO_MORTALRIFLE"; DamageType 'CoAb44'; +FORCERADIUSDMG; +FOILINVUL; @@ -823,6 +827,7 @@ Class MisterRailBeam : SWWMNonInteractiveActor Default { Obituary "$O_MORTALRIFLE"; + SelfObituary "$SO_MORTALRIFLE"; RenderStyle 'Add'; RenderRadius 10000.; +FORCEXYBILLBOARD; @@ -948,6 +953,7 @@ Class MisterGrenade : Actor Default { Obituary "$O_MORTALRIFLEALT"; + SelfObituary "$SO_MORTALRIFLEALT"; DamageType 'CoAb44'; Radius 3; Height 6; diff --git a/zscript/dlc/swwm_notashotgun.zsc b/zscript/dlc/swwm_notashotgun.zsc index da5cb1404..4e95e0c11 100644 --- a/zscript/dlc/swwm_notashotgun.zsc +++ b/zscript/dlc/swwm_notashotgun.zsc @@ -426,6 +426,7 @@ Class Quadravol : SWWMWeapon Inventory.Icon "graphics/HUD/Icons/W_Quadravol.png"; Inventory.PickupMessage "$I_QUADRAVOL"; Obituary "$O_QUADRAVOL"; + SelfObituary "$SO_QUADRAVOL2"; SWWMWeapon.Tooltip "$TT_QUADRAVOL"; SWWMWeapon.GetLine "getquadravol"; Weapon.SlotNumber 6; diff --git a/zscript/dlc/swwm_notashotgun_fx.zsc b/zscript/dlc/swwm_notashotgun_fx.zsc index bf1537eb1..54a340919 100644 --- a/zscript/dlc/swwm_notashotgun_fx.zsc +++ b/zscript/dlc/swwm_notashotgun_fx.zsc @@ -296,9 +296,17 @@ Class QuadProj : Actor return Super.GetObituary(victim,inflictor,mod,playerattack); } + override String GetSelfObituary( Actor inflictor, Name mod ) + { + // from melee combo + if ( bAMBUSH ) return StringTable.Localize("$SO_QUADRAVOL2"); + return Super.GetSelfObituary(inflictor,mod); + } + Default { Obituary "$O_QUADRAVOL"; + SelfObituary "$SO_QUADRAVOL"; DamageType 'Fire'; Scale .5; Radius 6; @@ -334,6 +342,8 @@ Class QuadExplArm : Actor { Default { + Obituary "$O_QUADRAVOL"; + SelfObituary "$SO_QUADRAVOL"; PROJECTILE; +THRUACTORS; +BOUNCEONWALLS; @@ -881,6 +891,7 @@ Class OnFire : Inventory Default { Obituary "$O_QUADRAVOL"; + SelfObituary "$SO_QUADRAVOLF"; Inventory.Amount 1; Inventory.MaxAmount 500; +INVENTORY.KEEPDEPLETED; // since our amount can go below 0, we need special cleanup diff --git a/zscript/items/swwm_miscitems.zsc b/zscript/items/swwm_miscitems.zsc index 0f10b925e..cb7d24cec 100644 --- a/zscript/items/swwm_miscitems.zsc +++ b/zscript/items/swwm_miscitems.zsc @@ -246,6 +246,7 @@ Class TheBall : Actor Default { Obituary "$O_LEADBALL"; + SelfObituary "$SO_LEADBALL"; PROJECTILE; +BOUNCEONWALLS; +BOUNCEONFLOORS; @@ -503,6 +504,7 @@ Class SaltImpact : SWWMNonInteractiveActor Default { Obituary "$O_SALTSHOT"; + SelfObituary "$SO_SALTSHOT"; DamageType 'Salt'; RenderStyle 'Add'; Scale 1.8; @@ -569,6 +571,7 @@ Class SaltBeam : SWWMNonInteractiveActor Default { Obituary "$O_SALTSHOT"; + SelfObituary "$SO_SALTSHOT"; DamageType 'Salt'; RenderStyle 'Add'; Stamina 9; diff --git a/zscript/player/swwm_player.zsc b/zscript/player/swwm_player.zsc index 46796f3d1..0a83284e2 100644 --- a/zscript/player/swwm_player.zsc +++ b/zscript/player/swwm_player.zsc @@ -179,6 +179,17 @@ Class Demolitionist : PlayerPawn return Super.GetObituary(victim,inflictor,mod,playerattack); } + override String GetSelfObituary( Actor inflictor, Name mod ) + { + if ( inflictor && (inflictor != self) ) + { + String msg = inflictor.GetSelfObituary(inflictor,mod); + if ( msg != "" ) return msg; + } + if ( mod == 'Massacre' ) return StringTable.Localize("$OB_KILLEDSELF"); + return SelfObituary; + } + override double GetDeathHeight() { double basedeathheight = Super.GetDeathHeight(); diff --git a/zscript/swwm_common_fx.zsc b/zscript/swwm_common_fx.zsc index 4df271360..d893f0ac8 100644 --- a/zscript/swwm_common_fx.zsc +++ b/zscript/swwm_common_fx.zsc @@ -1469,6 +1469,11 @@ Class SWWMPuff : SWWMNonInteractiveActor if ( master ) return master.GetObituary(victim,master,mod,playerattack); return Super.GetObituary(victim,inflictor,mod,playerattack); } + override String GetSelfObituary( Actor inflictor, Name mod ) + { + if ( master ) return master.GetSelfObituary(master,mod); + return Super.GetSelfObituary(inflictor,mod); + } default { diff --git a/zscript/weapons/swwm_blazeit_fx.zsc b/zscript/weapons/swwm_blazeit_fx.zsc index 1a02dad50..eb5588e35 100644 --- a/zscript/weapons/swwm_blazeit_fx.zsc +++ b/zscript/weapons/swwm_blazeit_fx.zsc @@ -72,6 +72,7 @@ Class HellblazerArm : Actor Default { Obituary "$O_HELLBLAZER"; + SelfObituary "$SO_HELLBLAZER"; DamageType 'Fire'; PROJECTILE; +THRUACTORS; @@ -189,6 +190,7 @@ Class HellblazerMissile : Actor Default { Obituary "$O_HELLBLAZER"; + SelfObituary "$SO_HELLBLAZER"; DamageType 'Sydon'; Radius 2; Height 4; diff --git a/zscript/weapons/swwm_danmaku_fx.zsc b/zscript/weapons/swwm_danmaku_fx.zsc index 27a6a4855..5863ee759 100644 --- a/zscript/weapons/swwm_danmaku_fx.zsc +++ b/zscript/weapons/swwm_danmaku_fx.zsc @@ -133,6 +133,7 @@ Class EvisceratorChunk : Actor Default { Obituary "$O_EVISCERATOR"; + SelfObituary "$SO_EVISCERATOR"; Radius 2; Height 4; Speed 50; @@ -391,6 +392,7 @@ Class EvisceratorProj : Actor Default { Obituary "$O_EVISCERATOR"; + SelfObituary "$SO_EVISCERATORALT"; DamageType 'Explosive'; Radius 2; Height 4; diff --git a/zscript/weapons/swwm_deathlydeathcannon_altfx.zsc b/zscript/weapons/swwm_deathlydeathcannon_altfx.zsc index c54780911..1d4ec3ccb 100644 --- a/zscript/weapons/swwm_deathlydeathcannon_altfx.zsc +++ b/zscript/weapons/swwm_deathlydeathcannon_altfx.zsc @@ -188,6 +188,7 @@ Class YnykronVoidBeam : SWWMNonInteractiveActor { DamageType 'YnykronAlt'; Obituary "$O_YNYKRONALT"; + SelfObituary "$SO_YNYKRONALT"; RenderStyle 'Add'; Alpha 0.; Stamina 3; @@ -326,6 +327,7 @@ Class YnykronLightningImpact : SWWMNonInteractiveActor Default { Obituary "$O_YNYKRONALT"; + SelfObituary "$SO_YNYKRONALT"; DamageType 'Electric'; +FOILINVUL; +FORCERADIUSDMG; @@ -474,6 +476,7 @@ Class YnykronLightningArc : SWWMNonInteractiveActor Default { Obituary "$O_YNYKRONALT"; + SelfObituary "$SO_YNYKRONALT"; RenderStyle 'Add'; DamageFunction 1000; Speed 128; @@ -858,6 +861,7 @@ Class YnykronSingularityExplosion : SWWMNonInteractiveActor Default { Obituary "$O_YNYKRONALT"; + SelfObituary "$SO_YNYKRONALT"; DamageType 'YnykronAlt'; RenderStyle 'Add'; Scale 5.; @@ -1007,6 +1011,13 @@ Class YnykronSingularity : SWWMNonInteractiveActor return Super.GetObituary(victim,inflictor,mod,playerattack); } + override String GetSelfObituary( Actor inflictor, Name mod ) + { + if ( mod == 'Ynykron' ) + return StringTable.Localize("$SO_YNYKRON"); + return Super.GetSelfObituary(inflictor,mod); + } + void A_SingularityTick() { // gather dust particles (minor "background" mass gain) @@ -1320,6 +1331,7 @@ Class YnykronSingularity : SWWMNonInteractiveActor { DamageType 'YnykronAlt'; Obituary "$O_YNYKRONALT"; + SelfObituary "$SO_YNYKRONALT"; +MISSILE; Scale .4; } diff --git a/zscript/weapons/swwm_deathlydeathcannon_fx.zsc b/zscript/weapons/swwm_deathlydeathcannon_fx.zsc index 09b980cee..f541a1fe7 100644 --- a/zscript/weapons/swwm_deathlydeathcannon_fx.zsc +++ b/zscript/weapons/swwm_deathlydeathcannon_fx.zsc @@ -318,6 +318,7 @@ Class YnykronImpact : SWWMNonInteractiveActor Default { Obituary "$O_YNYKRON"; + SelfObituary "$SO_YNYKRON"; DamageType 'Ynykron'; RenderStyle 'Add'; Scale 5.; @@ -831,6 +832,7 @@ Class YnykronBeam : SWWMNonInteractiveActor Default { Obituary "$O_YNYKRON"; + SelfObituary "$SO_YNYKRON"; DamageType 'Ynykron'; RenderStyle 'Add'; Alpha .4; diff --git a/zscript/weapons/swwm_shot_fx.zsc b/zscript/weapons/swwm_shot_fx.zsc index a88b8ae41..cafaf1fd6 100644 --- a/zscript/weapons/swwm_shot_fx.zsc +++ b/zscript/weapons/swwm_shot_fx.zsc @@ -85,6 +85,8 @@ Class GoldenImpact : SWWMNonInteractiveActor { Default { + Obituary "$O_SPREADGUN_GOLD"; + SelfObituary "$SO_SPREADGUN_GOLD"; DamageType 'Explodium'; RenderStyle 'Add'; Scale 8.; @@ -187,6 +189,8 @@ Class GoldenSubImpact : SWWMNonInteractiveActor { Default { + Obituary "$O_SPREADGUN_GOLD"; + SelfObituary "$SO_SPREADGUN_GOLD"; DamageType 'Explodium'; RenderStyle 'Add'; Scale 6.; @@ -285,6 +289,8 @@ Class GoldenSubSubImpact : SWWMNonInteractiveActor { Default { + Obituary "$O_SPREADGUN_GOLD"; + SelfObituary "$SO_SPREADGUN_GOLD"; DamageType 'Explodium'; RenderStyle 'Add'; Scale 3.; diff --git a/zscript/weapons/swwm_sparkyboi_fx.zsc b/zscript/weapons/swwm_sparkyboi_fx.zsc index 155b19977..dacc1e86f 100644 --- a/zscript/weapons/swwm_sparkyboi_fx.zsc +++ b/zscript/weapons/swwm_sparkyboi_fx.zsc @@ -363,6 +363,7 @@ Class BigBiospark : Actor Default { Obituary "$O_SPARKSTER"; + SelfObituary "$SO_SPARKSTER"; DamageType 'Biospark'; RenderStyle 'Add'; Health 1200; @@ -409,6 +410,7 @@ Class BiosparkBall : Actor Default { Obituary "$O_SPARKSTER"; + SelfObituary "$SO_SPARKSTER"; DamageType 'Biospark'; RenderStyle 'Add'; Radius 2; @@ -674,6 +676,7 @@ Class BiosparkBeamImpact : SWWMNonInteractiveActor Default { Obituary "$O_SPARKSTER"; + SelfObituary "$SO_SPARKSTER"; DamageType 'Biospark'; RenderStyle 'Add'; +FOILINVUL; @@ -798,6 +801,7 @@ Class BiosparkComboImpactSub : SWWMNonInteractiveActor Default { Obituary "$O_SPARKSTER"; + SelfObituary "$SO_SPARKSTER"; DamageType 'Biospark'; RenderStyle 'Add'; Scale 1.4; @@ -826,6 +830,7 @@ Class BiosparkComboImpact : SWWMNonInteractiveActor Default { Obituary "$O_SPARKSTER"; + SelfObituary "$SO_SPARKSTER"; DamageType 'Biospark'; RenderStyle 'Add'; Scale 2.; @@ -1183,6 +1188,7 @@ Class BiosparkBeam : SWWMNonInteractiveActor Default { Obituary "$O_SPARKSTER"; + SelfObituary "$SO_SPARKSTER"; RenderStyle 'Add'; DamageFunction 15; Speed 256; @@ -1419,6 +1425,7 @@ Class BiosparkArc : SWWMNonInteractiveActor Default { Obituary "$O_SPARKSTER"; + SelfObituary "$SO_SPARKSTER"; RenderStyle 'Add'; DamageFunction 6; ReactionTime 15; @@ -1507,6 +1514,7 @@ Class BiosparkCore : Actor Default { Obituary "$O_SPARKSTER"; + SelfObituary "$SO_SPARKSTER"; DamageType 'Biospark'; PROJECTILE; BounceType 'Hexen'; diff --git a/zscript/weapons/swwm_splode_fx.zsc b/zscript/weapons/swwm_splode_fx.zsc index bfdfb2cad..5cdec5d60 100644 --- a/zscript/weapons/swwm_splode_fx.zsc +++ b/zscript/weapons/swwm_splode_fx.zsc @@ -35,6 +35,7 @@ Class ExplodiumMagArm : Actor Default { Obituary "$O_EXPLODIUM"; + SelfObituary "$SO_EXPLODIUMALT"; DamageType 'Explodium'; PROJECTILE; +THRUACTORS; @@ -110,6 +111,7 @@ Class ExplodiumMagProj : Actor Default { Obituary "$O_EXPLODIUM"; + SelfObituary "$SO_EXPLODIUMALT"; DamageType 'Explodium'; Radius 2; Height 4; @@ -487,6 +489,7 @@ Class ExplodiumBulletImpact : SWWMNonInteractiveActor Default { Obituary "$O_EXPLODIUM"; + SelfObituary "$SO_EXPLODIUM"; DamageType 'Explodium'; RenderStyle 'Add'; Scale 1.2; diff --git a/zscript/weapons/swwm_tastytreat_fx.zsc b/zscript/weapons/swwm_tastytreat_fx.zsc index fd1c33f08..17db8f41f 100644 --- a/zscript/weapons/swwm_tastytreat_fx.zsc +++ b/zscript/weapons/swwm_tastytreat_fx.zsc @@ -152,6 +152,7 @@ Class CandyBeam : SWWMNonInteractiveActor Default { Obituary "$O_CANDYGUN"; + SelfObituary "$SO_CANDYGUN"; RenderStyle 'Add'; Alpha 0.4; DamageFunction 40; @@ -176,6 +177,7 @@ Class CandyPop : SWWMNonInteractiveActor Default { Obituary "$O_CANDYGUN"; + SelfObituary "$SO_CANDYGUN"; DamageType 'Candy'; RenderStyle 'Add'; Scale 2.; @@ -293,6 +295,7 @@ Class CandyMagArm : Actor Default { Obituary "$O_CANDYGUN"; + SelfObituary "$SO_CANDYGUNALT"; DamageType 'Candy'; PROJECTILE; +THRUACTORS; @@ -386,6 +389,10 @@ Class CandyMagTrailBig : CandyMagTrail Class CandyMagArmBig : CandyMagArm { + Default + { + SelfObituary "$SO_CANDYGUNCOMBO"; + } override void PostBeginPlay() { Super.PostBeginPlay(); @@ -451,6 +458,7 @@ Class CandyGunProj : Actor Default { Obituary "$O_CANDYGUN"; + SelfObituary "$SO_CANDYGUNCOMBO"; DamageType 'Candy'; Radius 3; Height 6; @@ -591,6 +599,7 @@ Class CandyMagProj : Actor Default { Obituary "$O_CANDYGUN"; + SelfObituary "$SO_CANDYGUNALT"; DamageType 'Candy'; Radius 2; Height 4; @@ -725,6 +734,7 @@ Class CandyBulletImpact : SWWMNonInteractiveActor Default { Obituary "$O_CANDYGUN"; + SelfObituary "$SO_CANDYGUN"; DamageType 'Candy'; RenderStyle 'Add'; Scale 2.5; diff --git a/zscript/weapons/swwm_thiccboolet.zsc b/zscript/weapons/swwm_thiccboolet.zsc index a297b988c..3e1da0c43 100644 --- a/zscript/weapons/swwm_thiccboolet.zsc +++ b/zscript/weapons/swwm_thiccboolet.zsc @@ -720,6 +720,7 @@ Class SilverBullet : SWWMWeapon Inventory.Icon "graphics/HUD/Icons/W_SilverBullet.png"; Inventory.PickupMessage "$T_SILVERBULLET"; Obituary "$O_SILVERBULLET"; + SelfObituary "$SO_SILVERBULLET2"; SWWMWeapon.Tooltip "$TT_SILVERBULLET"; SWWMWeapon.GetLine "getsilverbullet"; Weapon.SlotNumber 8; diff --git a/zscript/weapons/swwm_thiccboolet_fx.zsc b/zscript/weapons/swwm_thiccboolet_fx.zsc index f25187db5..2b46ce122 100644 --- a/zscript/weapons/swwm_thiccboolet_fx.zsc +++ b/zscript/weapons/swwm_thiccboolet_fx.zsc @@ -69,6 +69,7 @@ Class SilverImpact : SWWMNonInteractiveActor Default { Obituary "$O_SILVERBULLET"; + SelfObituary "$SO_SILVERBULLET"; DamageType 'Sniped'; +FORCERADIUSDMG; +NODAMAGETHRUST;