From 9260f459afe81bdb3f7c026c81c56c9e30defc61 Mon Sep 17 00:00:00 2001 From: VMSolidus Date: Sat, 20 Jul 2024 02:38:57 -0400 Subject: [PATCH 1/9] Harpy Hotfix (Cherry-Pick Broke Things) (#570) # Description Captain's Carapace inherited HidesHarpyWings because wizden made it parent off Large outerwear for reasons. I've moved HidesHarpyWings to only LargeOuterwear that actually have harpy sprites so that this won't happen again. ![image](https://github.com/user-attachments/assets/84ee06e3-eeeb-4193-8cb0-492bd1d3d82e) ![image](https://github.com/user-attachments/assets/ac9493b3-75e7-4696-b531-18b00d1332a5) --- .../Clothing/OuterClothing/base_clothingouter.yml | 1 - .../Entities/Clothing/OuterClothing/suits.yml | 15 ++++++++++++++- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/Resources/Prototypes/Entities/Clothing/OuterClothing/base_clothingouter.yml b/Resources/Prototypes/Entities/Clothing/OuterClothing/base_clothingouter.yml index f940f3ff79a..8f4312e7711 100644 --- a/Resources/Prototypes/Entities/Clothing/OuterClothing/base_clothingouter.yml +++ b/Resources/Prototypes/Entities/Clothing/OuterClothing/base_clothingouter.yml @@ -26,7 +26,6 @@ - type: Tag tags: - WhitelistChameleon - - HidesHarpyWings - type: entity abstract: true diff --git a/Resources/Prototypes/Entities/Clothing/OuterClothing/suits.yml b/Resources/Prototypes/Entities/Clothing/OuterClothing/suits.yml index 5e82959c4e2..d6cd5295731 100644 --- a/Resources/Prototypes/Entities/Clothing/OuterClothing/suits.yml +++ b/Resources/Prototypes/Entities/Clothing/OuterClothing/suits.yml @@ -25,6 +25,7 @@ tags: - Hardsuit - WhitelistChameleon + - HidesHarpyWings - type: entity parent: ClothingOuterSuitBomb @@ -63,6 +64,10 @@ sprintModifier: 0.7 - type: HeldSpeedModifier - type: GroupExamine + - type: Tag + tags: + - WhitelistChameleon + - HidesHarpyWings - type: entity parent: ClothingOuterBaseLarge @@ -90,6 +95,10 @@ sprintModifier: 0.8 - type: HeldSpeedModifier - type: GroupExamine + - type: Tag + tags: + - WhitelistChameleon + - HidesHarpyWings - type: entity parent: [ClothingOuterBaseLarge, GeigerCounterClothing] @@ -113,7 +122,11 @@ - type: ContainerContainer containers: toggleable-clothing: !type:ContainerSlot {} - + - type: Tag + tags: + - WhitelistChameleon + - HidesHarpyWings + - type: entity parent: ClothingOuterBaseLarge id: ClothingOuterSuitSpaceNinja From da20e7ff607a2d881461c361ac52472ca36b4ee3 Mon Sep 17 00:00:00 2001 From: DEATHB4DEFEAT <77995199+DEATHB4DEFEAT@users.noreply.github.com> Date: Sat, 20 Jul 2024 00:09:59 -0700 Subject: [PATCH 2/9] CVar Food/Drink AutoEating (#571)

Media

https://github.com/user-attachments/assets/1276c50a-b50b-45a9-a69f-17bca32c736c

--- # Changelog :cl: - tweak: You no longer eat food like a starving wolf or something --- .../Nutrition/EntitySystems/DrinkSystem.cs | 5 ++++- .../Nutrition/EntitySystems/FoodSystem.cs | 5 ++++- Content.Shared/CCVar/CCVars.cs | 13 +++++++++++++ 3 files changed, 21 insertions(+), 2 deletions(-) diff --git a/Content.Server/Nutrition/EntitySystems/DrinkSystem.cs b/Content.Server/Nutrition/EntitySystems/DrinkSystem.cs index 4cc583b867c..47e7fa6802c 100644 --- a/Content.Server/Nutrition/EntitySystems/DrinkSystem.cs +++ b/Content.Server/Nutrition/EntitySystems/DrinkSystem.cs @@ -9,6 +9,7 @@ using Content.Server.Popups; using Content.Shared.Administration.Logs; using Content.Shared.Body.Components; +using Content.Shared.CCVar; using Content.Shared.Chemistry; using Content.Shared.Chemistry.Components; using Content.Shared.Chemistry.Components.SolutionManager; @@ -29,6 +30,7 @@ using Content.Shared.Verbs; using Robust.Shared.Audio; using Robust.Shared.Audio.Systems; +using Robust.Shared.Configuration; using Robust.Shared.Player; using Robust.Shared.Prototypes; using Robust.Shared.Random; @@ -56,6 +58,7 @@ public sealed class DrinkSystem : EntitySystem [Dependency] private readonly SolutionContainerSystem _solutionContainer = default!; [Dependency] private readonly StomachSystem _stomach = default!; [Dependency] private readonly ForensicsSystem _forensics = default!; + [Dependency] private readonly IConfigurationManager _config = default!; public override void Initialize() { @@ -399,7 +402,7 @@ private void OnDoAfter(Entity entity, ref ConsumeDoAfterEvent ar _forensics.TransferDna(entity, args.Target.Value); - if (!forceDrink && solution.Volume > 0) + if (_config.GetCVar(CCVars.GameAutoEatDrinks) && !forceDrink && solution.Volume > 0) args.Repeat = true; } diff --git a/Content.Server/Nutrition/EntitySystems/FoodSystem.cs b/Content.Server/Nutrition/EntitySystems/FoodSystem.cs index e6c6085fc64..06d1c4b42d3 100644 --- a/Content.Server/Nutrition/EntitySystems/FoodSystem.cs +++ b/Content.Server/Nutrition/EntitySystems/FoodSystem.cs @@ -31,6 +31,8 @@ using Robust.Shared.Audio.Systems; using Robust.Shared.Utility; using System.Linq; +using Content.Shared.CCVar; +using Robust.Shared.Configuration; namespace Content.Server.Nutrition.EntitySystems; @@ -55,6 +57,7 @@ public sealed class FoodSystem : EntitySystem [Dependency] private readonly StackSystem _stack = default!; [Dependency] private readonly StomachSystem _stomach = default!; [Dependency] private readonly UtensilSystem _utensil = default!; + [Dependency] private readonly IConfigurationManager _config = default!; public const float MaxFeedDistance = 1.0f; @@ -287,7 +290,7 @@ private void OnDoAfter(Entity entity, ref ConsumeDoAfterEvent arg _utensil.TryBreak(utensil, args.User); } - args.Repeat = !forceFeed; + args.Repeat = _config.GetCVar(CCVars.GameAutoEatFood) && !forceFeed; if (TryComp(entity, out var stack)) { diff --git a/Content.Shared/CCVar/CCVars.cs b/Content.Shared/CCVar/CCVars.cs index 4f9c6960056..3f603c61949 100644 --- a/Content.Shared/CCVar/CCVars.cs +++ b/Content.Shared/CCVar/CCVars.cs @@ -381,6 +381,19 @@ public static readonly CVarDef public static readonly CVarDef GameLoadoutsPoints = CVarDef.Create("game.loadouts_points", 14, CVar.REPLICATED); + + /// + /// Whether to repeat eating doafters after completion + /// + public static readonly CVarDef GameAutoEatFood = + CVarDef.Create("game.auto_eat_food", false, CVar.REPLICATED); + + /// + /// Whether to repeat drinking doafters after completion + /// + public static readonly CVarDef GameAutoEatDrinks = + CVarDef.Create("game.auto_eat_drinks", false, CVar.REPLICATED); + #if EXCEPTION_TOLERANCE /// /// Amount of times round start must fail before the server is shut down. From 165aac437f192f8cf1c54b0e77280fc58cdbf40e Mon Sep 17 00:00:00 2001 From: VMSolidus Date: Sat, 20 Jul 2024 03:10:17 -0400 Subject: [PATCH 3/9] Disable height.modifies_zoom (#564) # Description Height Sliders modifying zoom was always going to be temporary, and long term we had planned on phasing it out in favor of allowing Physics to be the balancing factor against players making their characters small. Now that we have features such as Space Wind, Mass Contests, Frictionless Space, and so on, this has come to fruition, and we no longer necessarily need zoom-adjusting to be a balancing factor. Zoom is cited as one of the most common complaints about our codebase, players absolutely seem to not like this, especially since it's not communicated to them in character creation that their viewmodel is going to be adjusted. This PR does not permanently remove the Modifies_Zoom feature, merely setting it to false by default. Server hosts are still able to re-enable it in their TOML configs if desired, but by default it should be disabled. --- Content.Shared/CCVar/CCVars.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Content.Shared/CCVar/CCVars.cs b/Content.Shared/CCVar/CCVars.cs index 3f603c61949..628fb797d0b 100644 --- a/Content.Shared/CCVar/CCVars.cs +++ b/Content.Shared/CCVar/CCVars.cs @@ -2272,7 +2272,7 @@ public static readonly CVarDef /// Whether height & width sliders adjust a player's max view distance /// public static readonly CVarDef HeightAdjustModifiesZoom = - CVarDef.Create("heightadjust.modifies_zoom", true, CVar.SERVERONLY); + CVarDef.Create("heightadjust.modifies_zoom", false, CVar.SERVERONLY); /// /// Enables station goals From f35f7f1fb1303a699eb1d6d5ba777111bc4465db Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sat, 20 Jul 2024 18:42:15 -0700 Subject: [PATCH 4/9] Update Credits (#573) This is an automated Pull Request. This PR updates the GitHub contributors in the credits section. Co-authored-by: SimpleStation Changelogs --- Resources/Credits/GitHub.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Resources/Credits/GitHub.txt b/Resources/Credits/GitHub.txt index 0cf9c113634..276f44a01f0 100644 --- a/Resources/Credits/GitHub.txt +++ b/Resources/Credits/GitHub.txt @@ -1 +1 @@ -0x6273, 2013HORSEMEATSCANDAL, 20kdc, 21Melkuu, 4dplanner, 612git, 778b, Ablankmann, Acruid, actioninja, adamsong, Admiral-Obvious-001, Adrian16199, Aerocrux, Aexxie, africalimedrop, Agoichi, Ahion, AJCM-git, AjexRose, Alekshhh, AlexMorgan3817, AlmondFlour, AlphaQwerty, Altoids1, amylizzle, ancientpower, ArchPigeon, Arendian, arimah, Arteben, AruMoon, as334, AsikKEsel, asperger-sind, aspiringLich, avghdev, AzzyIsNotHere, BananaFlambe, BasedUser, BGare, BingoJohnson-zz, BismarckShuffle, Bixkitts, Blackern5000, Blazeror, Boaz1111, BobdaBiscuit, brainfood1183, Brandon-Huu, Bribrooo, Bright0, brndd, BubblegumBlue, BYONDFuckery, c4llv07e, CaasGit, CakeQ, CaptainSqrBeard, Carbonhell, Carolyn3114, casperr04, CatTheSystem, Centronias, chairbender, Charlese2, Cheackraze, cheesePizza2, Chief-Engineer, chromiumboy, Chronophylos, clement-or, Clyybber, CodedCrow, ColdAutumnRain, Colin-Tel, collinlunn, ComicIronic, coolmankid12345, corentt, crazybrain23, creadth, CrigCrag, Crotalus, CrudeWax, CrzyPotato, Cyberboss, d34d10cc, Daemon, daerSeebaer, dahnte, dakamakat, dakimasu, DamianX, DangerRevolution, daniel-cr, Darkenson, DawBla, dch-GH, Deahaka, DEATHB4DEFEAT, DeathCamel58, deathride58, DebugOk, Decappi, deepdarkdepths, Delete69, deltanedas, DeltaV-Bot, DerbyX, DoctorBeard, DogZeroX, dontbetank, Doru991, DoubleRiceEddiedd, DrMelon, DrSmugleaf, drteaspoon420, DTanxxx, DubiousDoggo, Duddino, Dutch-VanDerLinde, Easypoller, eclips_e, EdenTheLiznerd, EEASAS, Efruit, ElectroSR, elthundercloud, Emisse, EmoGarbage404, Endecc, enumerate0, eoineoineoin, ERORR404V1, Errant-4, estacaoespacialpirata, exincore, exp111, Fahasor, FairlySadPanda, ficcialfaint, Fildrance, FillerVK, Fishfish458, Flareguy, FluffiestFloof, FluidRock, FoLoKe, fooberticus, Fortune117, FoxxoTrystan, freeman2651, Fromoriss, FungiFellow, GalacticChimp, gbasood, Geekyhobo, Genkail, geraeumig, Git-Nivrak, github-actions[bot], gituhabu, GNF54, Golinth, GoodWheatley, Gotimanga, graevy, GreyMario, Guess-My-Name, gusxyz, h3half, Hanzdegloker, Hardly3D, harikattar, Hebiman, Henry12116, HerCoyote23, Hmeister-real, HoofedEar, hord-brayden, hubismal, Hugal31, Hyenh, iacore, IamVelcroboy, icekot8, igorsaux, ike709, Illiux, Ilya246, IlyaElDunaev, Injazz, Insineer, IntegerTempest, Interrobang01, IProduceWidgets, ItsMeThom, j-giebel, Jackal298, Jackrost, jamessimo, janekvap, JerryImMouse, Jessetriesagain, jessicamaybe, Jezithyr, jicksaw, JiimBob, JoeHammad1844, joelhed, JohnGinnane, johnku1, joshepvodka, jproads, Jrpl, juliangiebel, JustArt1m, JustCone14, JustinTether, JustinTrotter, KaiShibaa, kalane15, kalanosh, KEEYNy, Keikiru, Kelrak, kerisargit, keronshb, KIBORG04, Killerqu00, KingFroozy, kira-er, Kit0vras, KittenColony, Kmc2000, Ko4ergaPunk, komunre, koteq, Krunklehorn, Kukutis96513, kxvvv, Lamrr, LankLTE, lapatison, Leander-0, leonardo-dabepis, LetterN, Level10Cybermancer, lever1209, LightVillet, liltenhead, LittleBuilderJane, Lomcastar, LordCarve, LordEclipse, LovelyLophi, LudwigVonChesterfield, Lukasz825700516, lunarcomets, luringens, lvvova1, lzimann, lzk228, MACMAN2003, Macoron, MagnusCrowe, ManelNavola, Matz05, MehimoNemo, MeltedPixel, MemeProof, Menshin, Mervill, metalgearsloth, mhamsterr, MilenVolf, Minty642, Mirino97, mirrorcult, misandrie, MishaUnity, MisterMecky, Mith-randalf, Mnemotechnician, Moneyl, Moomoobeef, moony, Morb0, Mr0maks, musicmanvr, Myakot, Myctai, N3X15, Nairodian, Naive817, namespace-Memory, NickPowers43, nikthechampiongr, Nimfar11, Nirnael, nmajask, nok-ko, notafet, notquitehadouken, noudoit, noverd, nuke-haus, NULL882, OCOtheOmega, OctoRocket, OldDanceJacket, onoira, Owai-Seek, pali6, Pangogie, patrikturi, PaulRitter, Peptide90, peptron1, Phantom-Lily, PHCodes, PixelTheKermit, PJB3005, Plykiya, pofitlo, pointer-to-null, PolterTzi, PoorMansDreams, potato1234x, ProfanedBane, PrPleGoo, ps3moira, Psychpsyo, psykzz, PuroSlavKing, quatre, QuietlyWhisper, qwerltaz, Radosvik, Radrark, Rainbeon, Rainfey, Rane, ravage123321, rbertoche, Redict, RedlineTriad, RednoWCirabrab, RemberBM, RemieRichards, RemTim, rene-descartes2021, RiceMar1244, RieBi, Rinkashikachi, Rockdtben, rolfero, rosieposieeee, Saakra, Samsterious, SaphireLattice, ScalyChimp, scrato, Scribbles0, Serkket, SethLafuente, ShadowCommander, Shadowtheprotogen546, SignalWalker, SimpleStation14, Simyon264, SirDragooon, Sirionaut, siyengar04, Skarletto, Skrauz, Skyedra, SlamBamActionman, slarticodefast, Slava0135, Snowni, snowsignal, SonicHDC, SoulSloth, SpaceManiac, SpeltIncorrectyl, spoogemonster, ssdaniel24, Stealthbomber16, stellar-novas, StrawberryMoses, SweptWasTaken, Szunti, TadJohnson00, takemysoult, TaralGit, Tayrtahn, tday93, TekuNut, TemporalOroboros, tentekal, tgrkzus, thatrandomcanadianguy, TheArturZh, theashtronaut, thedraccx, themias, Theomund, theOperand, TheShuEd, TimrodDX, Titian3, tkdrg, tmtmtl30, tom-leys, tomasalves8, Tomeno, Tornado-Technology, tosatur, Tryded, TsjipTsjip, Tunguso4ka, TurboTrackerss14, Tyler-IN, Tyzemol, UbaserB, UKNOWH, UnicornOnLSD, Uriende, UristMcDorf, Vaaankas, Varen, VasilisThePikachu, veliebm, Veritius, Verslebas, VigersRay, Visne, VMSolidus, volundr-, Voomra, Vordenburg, vulppine, WarMechanic, waylon531, weaversam8, Willhelm53, wixoaGit, WlarusFromDaSpace, wrexbe, xRiriq, yathxyz, Ygg01, YotaXP, YuriyKiss, zach-hill, Zandario, Zap527, ZelteHonor, zerorulez, zionnBE, zlodo, ZNixian, ZoldorfTheWizard, Zumorica, Zymem +0x6273, 2013HORSEMEATSCANDAL, 20kdc, 21Melkuu, 4dplanner, 612git, 778b, Ablankmann, Acruid, actioninja, adamsong, Admiral-Obvious-001, Adrian16199, Aerocrux, Aexxie, africalimedrop, Agoichi, Ahion, AJCM-git, AjexRose, Alekshhh, AlexMorgan3817, AlmondFlour, AlphaQwerty, Altoids1, amylizzle, ancientpower, ArchPigeon, Arendian, arimah, Arteben, AruMoon, as334, AsikKEsel, asperger-sind, aspiringLich, avghdev, AzzyIsNotHere, BananaFlambe, BasedUser, beck-thompson, BGare, BingoJohnson-zz, BismarckShuffle, Bixkitts, Blackern5000, Blazeror, Boaz1111, BobdaBiscuit, brainfood1183, BramvanZijp, Brandon-Huu, Bribrooo, Bright0, brndd, BubblegumBlue, BYONDFuckery, c4llv07e, CaasGit, CakeQ, CaptainSqrBeard, Carbonhell, Carolyn3114, CatTheSystem, Centronias, chairbender, Charlese2, Cheackraze, cheesePizza2, Chief-Engineer, chromiumboy, Chronophylos, clement-or, Clyybber, CodedCrow, ColdAutumnRain, Colin-Tel, collinlunn, ComicIronic, coolmankid12345, corentt, crazybrain23, creadth, CrigCrag, Crotalus, CrudeWax, CrzyPotato, Cyberboss, d34d10cc, Daemon, daerSeebaer, dahnte, dakamakat, dakimasu, DamianX, DangerRevolution, daniel-cr, Darkenson, DawBla, dch-GH, Deahaka, DEATHB4DEFEAT, DeathCamel58, deathride58, DebugOk, Decappi, deepdarkdepths, Delete69, deltanedas, DeltaV-Bot, DerbyX, DoctorBeard, DogZeroX, dontbetank, Doru991, DoubleRiceEddiedd, DrMelon, DrSmugleaf, drteaspoon420, DTanxxx, DubiousDoggo, Duddino, Dutch-VanDerLinde, Easypoller, eclips_e, EdenTheLiznerd, EEASAS, Efruit, ElectroSR, elthundercloud, Emisse, EmoGarbage404, Endecc, enumerate0, eoineoineoin, ERORR404V1, Errant-4, estacaoespacialpirata, exincore, exp111, Fahasor, FairlySadPanda, ficcialfaint, Fildrance, FillerVK, Fishfish458, Flareguy, FluffiestFloof, FluidRock, FoLoKe, fooberticus, Fortune117, FoxxoTrystan, freeman2651, Froffy025, Fromoriss, FungiFellow, GalacticChimp, gbasood, Geekyhobo, Genkail, geraeumig, Ghagliiarghii, Git-Nivrak, github-actions[bot], gituhabu, GNF54, Golinth, GoodWheatley, Gotimanga, graevy, GreyMario, Guess-My-Name, gusxyz, h3half, Hanzdegloker, Hardly3D, harikattar, Hebiman, Henry12116, HerCoyote23, Hmeister-real, HoofedEar, hord-brayden, hubismal, Hugal31, Huxellberger, Hyenh, iacore, IamVelcroboy, icekot8, igorsaux, ike709, Illiux, Ilya246, IlyaElDunaev, Injazz, Insineer, IntegerTempest, Interrobang01, IProduceWidgets, ItsMeThom, Jackal298, Jackrost, jamessimo, janekvap, JerryImMouse, Jessetriesagain, jessicamaybe, Jezithyr, jicksaw, JiimBob, JoeHammad1844, JohnGinnane, johnku1, joshepvodka, jproads, Jrpl, juliangiebel, JustArt1m, JustCone14, JustinTrotter, KaiShibaa, kalane15, kalanosh, Kelrak, kerisargit, keronshb, KIBORG04, Killerqu00, KingFroozy, kira-er, Kit0vras, KittenColony, Ko4ergaPunk, komunre, koteq, Krunklehorn, kxvvv, Lamrr, LankLTE, lapatison, Leander-0, leonardo-dabepis, LetterN, Level10Cybermancer, lever1209, liltenhead, LittleBuilderJane, Lomcastar, LordCarve, LordEclipse, LovelyLophi, Lukasz825700516, lunarcomets, luringens, lvvova1, lzimann, lzk228, MACMAN2003, Macoron, MagnusCrowe, ManelNavola, Matz05, MehimoNemo, MeltedPixel, MemeProof, Menshin, Mervill, metalgearsloth, mhamsterr, MilenVolf, Minty642, Mirino97, mirrorcult, misandrie, MishaUnity, MisterMecky, Mith-randalf, Mnemotechnician, Moneyl, Moomoobeef, moony, Morb0, Mr0maks, musicmanvr, Myakot, Myctai, N3X15, Nairodian, Naive817, namespace-Memory, NickPowers43, nikthechampiongr, Nimfar11, Nirnael, nmajask, nok-ko, notafet, notquitehadouken, noudoit, noverd, nuke-haus, NULL882, OCOtheOmega, OctoRocket, OldDanceJacket, onoira, osjarw, Owai-Seek, pali6, Pangogie, patrikturi, PaulRitter, Peptide90, peptron1, Phantom-Lily, PHCodes, PixelTheKermit, PJB3005, Plykiya, pofitlo, pointer-to-null, PolterTzi, PoorMansDreams, potato1234x, ProfanedBane, PrPleGoo, ps3moira, Pspritechologist, Psychpsyo, psykzz, PuroSlavKing, quatre, QuietlyWhisper, qwerltaz, Radosvik, Radrark, Rainbeon, Rainfey, Rane, ravage123321, rbertoche, Redict, RedlineTriad, RednoWCirabrab, RemberBM, RemieRichards, RemTim, rene-descartes2021, RiceMar1244, RieBi, Rinkashikachi, Rockdtben, rolfero, rosieposieeee, Saakra, Samsterious, SaphireLattice, ScalyChimp, scrato, Scribbles0, Serkket, SethLafuente, ShadowCommander, Shadowtheprotogen546, SignalWalker, SimpleStation14, Simyon264, Sirionaut, siyengar04, Skarletto, Skrauz, Skyedra, SlamBamActionman, slarticodefast, Slava0135, Snowni, snowsignal, SonicHDC, SoulSloth, SpaceManiac, SpeltIncorrectyl, spoogemonster, ssdaniel24, Stealthbomber16, stellar-novas, StrawberryMoses, superjj18, SweptWasTaken, Szunti, TadJohnson00, takemysoult, TaralGit, Tayrtahn, tday93, TekuNut, TemporalOroboros, tentekal, tgrkzus, thatrandomcanadianguy, TheArturZh, theashtronaut, thedraccx, themias, Theomund, theOperand, TheShuEd, TimrodDX, Titian3, tkdrg, tmtmtl30, TokenStyle, tom-leys, tomasalves8, Tomeno, Tornado-Technology, tosatur, Tryded, TsjipTsjip, Tunguso4ka, TurboTrackerss14, Tyler-IN, Tyzemol, UbaserB, UKNOWH, UnicornOnLSD, Uriende, UristMcDorf, Vaaankas, Varen, VasilisThePikachu, veliebm, Veritius, Vermidia, Verslebas, VigersRay, Visne, VMSolidus, volundr-, Voomra, Vordenburg, vulppine, wafehling, WarMechanic, waylon531, weaversam8, Willhelm53, wixoaGit, WlarusFromDaSpace, wrexbe, xRiriq, yathxyz, Ygg01, YotaXP, YuriyKiss, zach-hill, Zandario, Zap527, Zealith-Gamer, ZelteHonor, zerorulez, zionnBE, zlodo, ZNixian, ZoldorfTheWizard, Zumorica, Zymem From cb4b8f642794adbfac1ffcae5f84e62b952bd5ae Mon Sep 17 00:00:00 2001 From: VMSolidus Date: Sun, 21 Jul 2024 02:47:40 -0400 Subject: [PATCH 5/9] People Can't Talk In Space (#574) # Description This fixes a bug that has been present in the game for ages, that people can talk to each other in the cold vacuum of space without the aid of a radio. I figured out that this doesn't actually need me to make my "SpaceAudioSystem" just yet, and can be handled with an extremely easy check of the voice source's Transform. Simply put, if they're not touching any grid, their voice can't be heard. Additionally, if a speaker is standing on a different grid from a potential receiver, their voice cannot be heard since the two are on different grids. Effectively, all verbal communication MUST be done through a radio if anyone involved is in space, or on a different grid. Voice can no longer travel between grids. Sound should not travel through the vacuum of space. Use a radio to communicate, or physically grab them, and hug them to within 3/10th of a tile. This extremely small distance allotment is there to simulate characters "Grabbing" each other in space to enable direct speaking communication. This also means that in space, you can have a completely private conversation with someone by hugging them. Nukies would be able to discuss their attack plans while in the shadow of a station, without fear of being overheard by crew in defiance of really basic physics. **I am coming for general audio next. We will restore the rule of physics and sanity to this game** # Media https://github.com/user-attachments/assets/16f107f5-86ab-480b-85df-92b79632e3c1 # Changelog :cl: - add: Voice will no longer travel through space. If you are in space, you must either have a radio to communicate with others, or get within hugging distance of someone to talk. --- Content.Server/Chat/Systems/ChatSystem.cs | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/Content.Server/Chat/Systems/ChatSystem.cs b/Content.Server/Chat/Systems/ChatSystem.cs index bfb38457e92..978fd206210 100644 --- a/Content.Server/Chat/Systems/ChatSystem.cs +++ b/Content.Server/Chat/Systems/ChatSystem.cs @@ -505,11 +505,14 @@ private void SendEntityWhisper( var language = languageOverride ?? _language.GetLanguage(source); var languageObfuscatedMessage = SanitizeInGameICMessage(source, _language.ObfuscateSpeech(message, language), out var emoteStr, true, _configurationManager.GetCVar(CCVars.ChatPunctuation), (!CultureInfo.CurrentCulture.IsNeutralCulture && CultureInfo.CurrentCulture.Parent.Name == "en") || (CultureInfo.CurrentCulture.IsNeutralCulture && CultureInfo.CurrentCulture.Name == "en")); - foreach (var (session, data) in GetRecipients(source, WhisperMuffledRange)) + foreach (var (session, data) in GetRecipients(source, Transform(source).GridUid == null ? 0.3f : WhisperMuffledRange)) { if (session.AttachedEntity is not { Valid: true } listener) continue; + if (Transform(session.AttachedEntity.Value).GridUid != Transform(source).GridUid) + continue; + if (MessageRangeCheck(session, data, range) != MessageRangeCheckResult.Full) continue; // Won't get logged to chat, and ghosts are too far away to see the pop-up, so we just won't send it to them. @@ -738,8 +741,11 @@ private MessageRangeCheckResult MessageRangeCheck(ICommonSession session, ICChat private void SendInVoiceRange(ChatChannel channel, string name, string message, string wrappedMessage, string obfuscated, string obfuscatedWrappedMessage, EntityUid source, ChatTransmitRange range, NetUserId? author = null, LanguagePrototype? languageOverride = null, bool? signLanguage = false) { var language = languageOverride ?? _language.GetLanguage(source); - foreach (var (session, data) in GetRecipients(source, VoiceRange)) + foreach (var (session, data) in GetRecipients(source, Transform(source).GridUid == null ? 0.3f : VoiceRange)) { + if (session.AttachedEntity != null && Transform(session.AttachedEntity.Value).GridUid != Transform(source).GridUid) + continue; + var entRange = MessageRangeCheck(session, data, range); if (entRange == MessageRangeCheckResult.Disallowed) continue; From c211c6642a0ecd5f4194528949025e87b8f01381 Mon Sep 17 00:00:00 2001 From: SimpleStation Changelogs Date: Sun, 21 Jul 2024 06:48:04 +0000 Subject: [PATCH 6/9] Automatic Changelog Update (#574) --- Resources/Changelog/Changelog.yml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/Resources/Changelog/Changelog.yml b/Resources/Changelog/Changelog.yml index 5067ef1c246..92dd12d7964 100644 --- a/Resources/Changelog/Changelog.yml +++ b/Resources/Changelog/Changelog.yml @@ -4571,3 +4571,12 @@ Entries: message: Merged ~250-500 WizDen PRs id: 6174 time: '2024-07-20T05:24:50.0000000+00:00' +- author: VMSolidus + changes: + - type: Add + message: >- + Voice will no longer travel through space. If you are in space, you must + either have a radio to communicate with others, or get within hugging + distance of someone to talk. + id: 6175 + time: '2024-07-21T06:47:41.0000000+00:00' From f25fc1eb54409a0fc2e623df1cdd93d14dd0475e Mon Sep 17 00:00:00 2001 From: DEATHB4DEFEAT <77995199+DEATHB4DEFEAT@users.noreply.github.com> Date: Sat, 20 Jul 2024 23:50:05 -0700 Subject: [PATCH 7/9] Remove Ending Punctuation From Emote Detection (#561) # Description Replaces the tons of super inconsistent emote defs with consistent and more dynamic ones. ---

Media

https://github.com/user-attachments/assets/eed4a1c9-7fe7-45a9-acb9-cbd64dd319e0

--- # Changelog :cl: - fix: Emotes now consistently work with any or no punctuation --------- Signed-off-by: DEATHB4DEFEAT <77995199+DEATHB4DEFEAT@users.noreply.github.com> --- .../Chat/Systems/ChatSystem.Emote.cs | 6 + .../Prototypes/DeltaV/Voice/speech_emotes.yml | 154 +--------- .../Nyanotrasen/Voice/speech_emotes.yml | 61 +--- Resources/Prototypes/Voice/disease_emotes.yml | 20 +- Resources/Prototypes/Voice/speech_emotes.yml | 273 ++---------------- Resources/Prototypes/Voice/tail_emotes.yml | 14 +- 6 files changed, 67 insertions(+), 461 deletions(-) diff --git a/Content.Server/Chat/Systems/ChatSystem.Emote.cs b/Content.Server/Chat/Systems/ChatSystem.Emote.cs index 8bba76dadda..bd1b944db30 100644 --- a/Content.Server/Chat/Systems/ChatSystem.Emote.cs +++ b/Content.Server/Chat/Systems/ChatSystem.Emote.cs @@ -1,4 +1,5 @@ using System.Collections.Frozen; +using System.Linq; using Content.Shared.Chat.Prototypes; using Robust.Shared.Prototypes; using Robust.Shared.Random; @@ -9,6 +10,7 @@ namespace Content.Server.Chat.Systems; public partial class ChatSystem { private FrozenDictionary _wordEmoteDict = FrozenDictionary.Empty; + private IReadOnlyList Punctuation { get; } = new List { ",", ".", "!", "?", "-", "~", "'", "\"", }; protected override void OnPrototypeReload(PrototypesReloadedEventArgs obj) { @@ -150,6 +152,10 @@ public bool TryPlayEmoteSound(EntityUid uid, EmoteSoundsPrototype? proto, string private void TryEmoteChatInput(EntityUid uid, string textInput) { var actionLower = textInput.ToLower(); + // Replace ending punctuation with nothing + if (Punctuation.Any(punctuation => actionLower.EndsWith(punctuation))) + actionLower = actionLower.Remove(actionLower.Length - 1); + if (!_wordEmoteDict.TryGetValue(actionLower, out var emote)) return; diff --git a/Resources/Prototypes/DeltaV/Voice/speech_emotes.yml b/Resources/Prototypes/DeltaV/Voice/speech_emotes.yml index 270470e702d..29f75d0d509 100644 --- a/Resources/Prototypes/DeltaV/Voice/speech_emotes.yml +++ b/Resources/Prototypes/DeltaV/Voice/speech_emotes.yml @@ -1,198 +1,64 @@ - type: emote id: HarpyRing category: Vocal - chatMessages: [rings.] + chatMessages: [ rings ] chatTriggers: - - ring - - ring. - - ring! - - ring? - rings - - rings. - - rings! - - rings? - - ringing - - ringing. - - ringing! - - ringing? - - ringed - - ringed. - - ringed! - - ringed? - - rang - - rang. - - rang! - - rang? - type: emote id: HarpyPew category: Vocal - chatMessages: [pews.] + chatMessages: [ pews ] chatTriggers: - - pew - - pew. - - pew! - - pew? - pews - - pews. - - pews! - - pews? - - pewpew - - pewpew. - - pewpew! - - pewpew? + - pewpews - type: emote id: HarpyBang category: Vocal - chatMessages: [bangs.] + chatMessages: [ bangs ] chatTriggers: - - bang - - bang. - - bang! - - bang? - bangs - - bangs. - - bangs! - - bangs? - - banging - - banging. - - banging! - - banging? - - banged - - banged. - - banged! - - banged? - type: emote id: HarpyRev category: Vocal - chatMessages: [revs.] + chatMessages: [ revs ] chatTriggers: - - rev - - rev. - - rev! - - rev? - revs - - revs. - - revs! - - revs? - - revving - - revving. - - revving! - - revving? - - revved - - revved. - - revved! - - revved? - type: emote id: HarpyCaw category: Vocal - chatMessages: [caws.] + chatMessages: [ caws ] chatTriggers: - - caw - - caw. - - caw! - - caw? - caws - - caws. - - caws! - - caws? - - cawing - - cawing. - - cawing! - - cawing? - - cawed - - cawed. - - cawed! - - cawed? #Vulpkanin - type: emote id: Bark category: Vocal - chatMessages: [barks.] + chatMessages: [ barks ] chatTriggers: - - bark - - bark. - - bark! - - bark? - barks - - barks. - - barks! - - barks? - - barked - - barked. - - barked! - - barked? - - barking - - barking. - - barking! - - barking? - type: emote id: Snarl category: Vocal - chatMessages: [snarls.] + chatMessages: [ snarls ] chatTriggers: - - snarl - - snarl. - - snarl! - - snarl? - snarls - - snarls. - - snarls! - - snarls? - - snarled - - snarled. - - snarled! - - snarled? - - snarling - - snarling. - - snarling! - - snarling? - type: emote id: Whine category: Vocal - chatMessages: [whines.] + chatMessages: [ whines ] chatTriggers: - - whine - - whine. - - whine! - - whine? - whines - - whines. - - whines! - - whines? - - whined - - whined. - - whined! - - whined? - - whining - - whining. - - whining! - - whining? - type: emote id: Howl category: Vocal - chatMessages: [howls.] + chatMessages: [ howls ] chatTriggers: - - howl - - howl. - - howl! - - howl? - howls - - howls. - - howls! - - howls? - - howling - - howling. - - howling! - - howling? - - howled - - howled. - - howling! - - howling? diff --git a/Resources/Prototypes/Nyanotrasen/Voice/speech_emotes.yml b/Resources/Prototypes/Nyanotrasen/Voice/speech_emotes.yml index 697a925d896..fa471f3d705 100644 --- a/Resources/Prototypes/Nyanotrasen/Voice/speech_emotes.yml +++ b/Resources/Prototypes/Nyanotrasen/Voice/speech_emotes.yml @@ -2,72 +2,37 @@ - type: emote id: Hiss category: Vocal - chatMessages: [hisses.] + chatMessages: [ hisses ] chatTriggers: - - hiss. - - hisses. - - hisses! - - hissing. - - hissed. + - hisses - type: emote id: Meow category: Vocal - chatMessages: [meows.] + chatMessages: [ meows ] chatTriggers: - - meow. - - meow! - - meows. - - meows~ - - meows! - - meowing. - - meowed. - - miau. - - miaus. - - miaus! - - nya. - - nyas. - - nyas! - - mraow. - - mraow! - - mraow~ - - mraows. - - mraows! - - mraows~ + - meows + - miaus + - nyas + - mraows - type: emote id: Mew category: Vocal - chatMessages: [mews.] + chatMessages: [ mews ] chatTriggers: - - mew. - - mew! - - mew~ - - mews. - - mews! - - mews~ - - mewing. - - mewed. + - mews - type: emote id: Growl category: Vocal - chatMessages: [growls.] + chatMessages: [ growls ] chatTriggers: - - growl. - - growls. - - growls! - - growling. - - growled. + - growls - type: emote id: Purr category: Vocal - chatMessages: [purrs.] + chatMessages: [ purrs ] chatTriggers: - - purr. - - purrs. - - purrs~ - - purrs! - - purring. - - purred. + - purrs diff --git a/Resources/Prototypes/Voice/disease_emotes.yml b/Resources/Prototypes/Voice/disease_emotes.yml index af93025cae0..7845fd3e6d2 100644 --- a/Resources/Prototypes/Voice/disease_emotes.yml +++ b/Resources/Prototypes/Voice/disease_emotes.yml @@ -1,45 +1,43 @@ - type: emote id: Sneeze category: Vocal - chatMessages: [sneezes] - + chatMessages: [ sneezes ] + - type: emote id: Cough category: Vocal - chatMessages: [coughs] + chatMessages: [ coughs ] chatTriggers: - - cough - coughs - type: emote id: CatMeow category: Vocal - chatMessages: [meows] + chatMessages: [ meows ] - type: emote id: CatHisses category: Vocal - chatMessages: [hisses] + chatMessages: [ hisses ] - type: emote id: MonkeyScreeches category: Vocal - chatMessages: [screeches] + chatMessages: [ screeches ] - type: emote id: RobotBeep category: Vocal - chatMessages: [beeps] + chatMessages: [ beeps ] - type: emote id: Yawn category: Vocal - chatMessages: [yawns] + chatMessages: [ yawns ] chatTriggers: - - yawn - yawns - type: emote id: Snore category: Vocal - chatMessages: [snores] + chatMessages: [ snores ] diff --git a/Resources/Prototypes/Voice/speech_emotes.yml b/Resources/Prototypes/Voice/speech_emotes.yml index 0003780099a..6c94294e2be 100644 --- a/Resources/Prototypes/Voice/speech_emotes.yml +++ b/Resources/Prototypes/Voice/speech_emotes.yml @@ -2,244 +2,107 @@ - type: emote id: Scream category: Vocal - chatMessages: [screams!] + chatMessages: [ screams ] chatTriggers: - - scream - screams - - screams. - - screams! - - screaming - - screamed - - shriek - shrieks - - shrieks. - - shrieks! - - shrieking - - shrieked - - screech - screeches - - screeches. - - screeches! - - screeching - - screeched - - yell - yells - - yells. - - yells! - - yelled - - yelling - type: emote id: Laugh category: Vocal - chatMessages: [laughs] + chatMessages: [ laughs ] chatTriggers: - - laugh - laughs - - laughs. - - laughs! - - laughing - - laughed - - chuckle - chuckles - - chuckles. - - chuckles! - - chuckled - - chuckling - - giggle - giggles - - giggles. - - giggles! - - giggling - - giggled - - chortle - - chortle. - - chortle! - chortles - - chortles. - - chortles! - - chortling - - chortling. - - chortling! - type: emote id: Honk category: Vocal - chatMessages: [honks] + chatMessages: [ honks ] chatTriggers: - - honk - - honk. - - honk! - honks - - honks. - - honks! - - honked - - honked. - - honked! - - honking - - honking. - - honking! - type: emote id: Sigh category: Vocal - chatMessages: [sighs] + chatMessages: [ sighs ] chatTriggers: - - sigh - sighs - - sighed - - sigh. - - sighs. - - sighed. - type: emote id: Whistle category: Vocal - chatMessages: [whistle] + chatMessages: [ whistles ] chatTriggers: - - whistle - - whistle. - - whistle! - whistles - - whistles. - - whistles! - - whistleblowing - - whistleblowing. - - whistleblowing! - type: emote id: Crying category: Vocal - chatMessages: [crying] + chatMessages: [ cries ] chatTriggers: - - cry - - cry. - - cry! - - crying - - crying. - - crying! - cries - - cries. - - cries! - - sob - - sob. - sobs - - sobs. - - sobs! - - sobbing - - sobbing. - - sobbing! - type: emote id: Squish category: Vocal - chatMessages: [squishing] + chatMessages: [ squishes ] chatTriggers: - - squish - - squish. - - squish! - - squishing - - squishing. - - squishing! - squishes - - squishes. - - squishes! - type: emote id: Chitter category: Vocal - chatMessages: [chitters.] + chatMessages: [ chitters ] chatTriggers: - - chitter - - chitter. - - chitter! - chitters - - chitters. - - chitters! - - chittered - - chittered. - - chittered! - type: emote id: Squeak category: Vocal - chatMessages: [squeaks.] + chatMessages: [ squeaks ] chatTriggers: - - squeak - - squeak. - - squeak! - squeaks - - squeaks. - - squeaks! - - squeaked - - squeaked. - - squeaked! - type: emote id: Click category: Vocal - chatMessages: [click.] + chatMessages: [ clicks ] chatTriggers: - - click - - click. - - click! - - click? - clicks - - clicks. - - clicks! - - clicks? - - clicked - - clicked. - - clicked! - - clicked? - - clicking - - clicking. - - clicking! - - clicking? # hand emotes - type: emote id: Clap category: Hands - chatMessages: [claps!] + chatMessages: [ claps ] chatTriggers: - - clap - claps - - claps. - - claps! - - clapping - - clapped - type: emote id: Snap category: Hands - chatMessages: [snaps fingers] # snaps <{THEIR($ent)}> fingers? + chatMessages: [ snaps ] # snaps <{THEIR($ent)}> fingers? chatTriggers: - - snap - snaps - - snapping - - snapped - - snap fingers - snaps fingers - - snaps fingers. - - snaps fingers! + - snaps his fingers + - snaps her fingers - snaps their fingers - - snaps their fingers. - - snaps their fingers! - - snapping fingers - - snapped fingers + - snaps its fingers + - snaps its' fingers - type: emote id: Salute category: Hands - chatMessages: [Salute] + chatMessages: [ salutes ] chatTriggers: - - salute - - salute. - - salute! - salutes - - salutes. - - salutes! - type: emote id: DefaultDeathgasp @@ -250,135 +113,47 @@ - type: emote id: Buzz category: Vocal - chatMessages: [buzz!] + chatMessages: [ buzzes ] chatTriggers: - - buzzing - - buzzing! - - buzzing. - - buzz - - buzz. - - buzz! - - buzzed - - buzzed. - - buzzed! - buzzes - - buzzes. - - buzzes! - type: emote id: Weh category: Vocal - chatMessages: [Wehs!] + chatMessages: [ wehs ] - type: emote id: Chirp category: Vocal - chatMessages: [chirps!] + chatMessages: [ chirps ] chatTriggers: - - chirp - - chirp. - - chirp! - - chirp? - chirps - - chirps. - - chirps! - - chirps? - - chirped - - chirped. - - chirped! - - chirped? - - chirping - - chirping. - - chirping! - - chirping? # Machine Emotes - type: emote id: Beep category: Vocal - chatMessages: [beeps.] + chatMessages: [ beeps ] chatTriggers: - - beep - - beep! - - beep. - beeps - - beeps. - - beeps! - - beeped - - beeped. - - beeped! - - beeping - - beeping. - - beeping! - type: emote id: Chime category: Vocal - chatMessages: [chimes.] + chatMessages: [ chimes ] chatTriggers: - - chime - - chime. - - chime! - chimes - - chimes. - - chimes! - - chimed - - chimed. - - chimed! - - chiming - - chiming, - - chiming! - type: emote id: Buzz-Two category: Vocal - chatMessages: [buzzesTwice.] + chatMessages: [ "buzzes twice" ] chatTriggers: - - buzztwice - - buzztwice. - - buzztwice! - - buzzstwice - - buzzstwice. - - buzzstwice! - - buzzestwice - - buzzestwice. - - buzzestwice! - - buzzingtwice - - buzzingtwice. - - buzzingtwice! - - buzzedtwice - - buzzedtwice. - - buzzedtwice! - - buzz twice - - buzz twice. - - buzz twice! - - buzzs twice - - buzzs twice. - - buzzs twice! - buzzes twice - - buzzes twice. - - buzzes twice! - - buzzing twice - - buzzing twice. - - buzzing twice! - - buzzed twice - - buzzed twice. - - buzzed twice! - type: emote id: Ping category: Vocal - chatMessages: [pings.] + chatMessages: [ pings ] chatTriggers: - - ping - - ping. - - ping! - pings - - pings. - - pings! - - pinged - - pinged. - - pinged! - - pinging - - pinging. - - pinging! diff --git a/Resources/Prototypes/Voice/tail_emotes.yml b/Resources/Prototypes/Voice/tail_emotes.yml index 610a2ea8015..be6064b652a 100644 --- a/Resources/Prototypes/Voice/tail_emotes.yml +++ b/Resources/Prototypes/Voice/tail_emotes.yml @@ -2,13 +2,9 @@ id: WagTail chatMessages: [wags tail] chatTriggers: - - wag - - wag. - - wags - - wags. - - wagging - - wagging. - - wag tail - - wag tail. - wags tail - - wags tail. + - wags his tail + - wags her tail + - wags their tail + - wags its tail + - wags its' tail From 25056a913cc9e9bf0b400683808a0ebc1aa2834c Mon Sep 17 00:00:00 2001 From: VMSolidus Date: Sun, 21 Jul 2024 02:50:25 -0400 Subject: [PATCH 8/9] Mass Contests Affect Camera Shake (#560) # Description I made this entirely on a whim to prove a point in the middle of a conversation. I have not tested this code, but I'm confident that it will work as advertised. This refactors the public KickCamera function so that it no longer: Divides by 1, divides by 1 again, multiplies by 1, normalizes a vector(turning its A value to 1), and then divides said vector by 1 again for good measure. Instead 1 has been replaced by MassContest, wooh! I also got rid of redundant steps. The effect of this is that characters with greater than human-standard mass are slightly more resistant to all sources of camera shake(Explosions, gravity generator turning off, gunfire, being hit by flying objects, etc), while characters with less than standard human mass experience a greater amount of camera shake. You're welcome. Now go find a Felinid to shake vigorously. # Changelog :cl: - add: Camera Shake is now affected by character mass. Small characters experience more camera shake. Large characters experience less. --- Content.Client/Camera/CameraRecoilSystem.cs | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/Content.Client/Camera/CameraRecoilSystem.cs b/Content.Client/Camera/CameraRecoilSystem.cs index 3e04cd5bf19..2a0b6258cc0 100644 --- a/Content.Client/Camera/CameraRecoilSystem.cs +++ b/Content.Client/Camera/CameraRecoilSystem.cs @@ -1,6 +1,7 @@ using System.Numerics; using Content.Shared.Camera; using Content.Shared.CCVar; +using Content.Shared.Contests; using Robust.Shared.Configuration; namespace Content.Client.Camera; @@ -8,6 +9,7 @@ namespace Content.Client.Camera; public sealed class CameraRecoilSystem : SharedCameraRecoilSystem { [Dependency] private readonly IConfigurationManager _configManager = default!; + [Dependency] private readonly ContestsSystem _contests = default!; private float _intensity; @@ -37,15 +39,15 @@ public override void KickCamera(EntityUid uid, Vector2 recoil, CameraRecoilCompo if (!Resolve(uid, ref component, false)) return; - recoil *= _intensity; + var massRatio = _contests.MassContest(uid); + var maxRecoil = KickMagnitudeMax / massRatio; + recoil *= _intensity / massRatio; - // Use really bad math to "dampen" kicks when we're already kicked. var existing = component.CurrentKick.Length(); - var dampen = existing / KickMagnitudeMax; - component.CurrentKick += recoil * (1 - dampen); + component.CurrentKick += recoil * (1 - existing); - if (component.CurrentKick.Length() > KickMagnitudeMax) - component.CurrentKick = component.CurrentKick.Normalized() * KickMagnitudeMax; + if (component.CurrentKick.Length() > maxRecoil) + component.CurrentKick = component.CurrentKick.Normalized() * maxRecoil; component.LastKickTime = 0; } From a31015dffd63ddab7bd9de44368dcacba9fe6363 Mon Sep 17 00:00:00 2001 From: SimpleStation Changelogs Date: Sun, 21 Jul 2024 06:51:10 +0000 Subject: [PATCH 9/9] Automatic Changelog Update (#560) --- Resources/Changelog/Changelog.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/Resources/Changelog/Changelog.yml b/Resources/Changelog/Changelog.yml index 92dd12d7964..a1c9f444aeb 100644 --- a/Resources/Changelog/Changelog.yml +++ b/Resources/Changelog/Changelog.yml @@ -4580,3 +4580,11 @@ Entries: distance of someone to talk. id: 6175 time: '2024-07-21T06:47:41.0000000+00:00' +- author: VMSolidus + changes: + - type: Add + message: >- + Camera Shake is now affected by character mass. Small characters + experience more camera shake. Large characters experience less. + id: 6176 + time: '2024-07-21T06:50:25.0000000+00:00'