From 84c9f16ee2266054c9d2441c4b8a13e25631ef03 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sun, 26 Jan 2025 16:08:55 -0400 Subject: [PATCH 01/60] Update Credits (#1659) This is an automated Pull Request. This PR updates the GitHub contributors in the credits section. Co-authored-by: SimpleStation Changelogs Co-authored-by: stellar-novas --- 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 d8a18cf9ad..3f03faddc1 100644 --- a/Resources/Credits/GitHub.txt +++ b/Resources/Credits/GitHub.txt @@ -1 +1 @@ -0x6273, 13spacemen, 2013HORSEMEATSCANDAL, 20kdc, 21Melkuu, 2digitman, 4310v343k, 4dplanner, 612git, 778b, Ablankmann, abregado, Absolute-Potato, Acruid, actioninja, actually-reb, ada-please, adamsong, Adeinitas, Admiral-Obvious-001, adrian, Adrian16199, Aerocrux, Aexolott, Aexxie, africalimedrop, afrokada, Agoichi, Ahion, Aidenkrz, Aikakakah, aitorlogedo, ajcm, AJCM-git, AjexRose, Alekshhh, alexkar598, AlexMorgan3817, alexumandxgabriel08x, Alithsko, AlmondFlour, ALMv1, AlphaQwerty, Altoids1, amylizzle, ancientpower, Andre19926, AndrewEyeke, angelofallars, Anzarot121, Appiah, ar4ill, ArchPigeon, ArchRBX, areitpog, Arendian, arimah, Arkanic, armoks, Arteben, ArthurMousatov, artur, AruMoon, as334, AsikKEsel, asperger-sind, aspiringLich, aspiringlich, astriloqua, avghdev, AzzyIsNotHere, BananaFlambe, BasedPugilist, BasedUser, beck-thompson, benev0, BGare, bhespiritu, bingojohnson, BismarckShuffle, Bixkitts, Blackern5000, Blazeror, bloodrizer, Bloody2372, blueDev2, BlueHNT, Boaz1111, BobdaBiscuit, BobTheSleder, boiled-water-tsar, BombasterDS, botanySupremist, brainfood1183, BramvanZijp, Brandon-Huu, Bribrooo, Bright0, brndd, bryce0110, BubblegumBlue, buletsponge, byondfuckery, c0rigin, c4llv07e, CaasGit, capnsockless, CaptainSqrBeard, Carbonhell, Carolyn3114, Carou02, carteblanche4me, CatTheSystem, Centronias, CerberusWolfie, chairbender, Charlese2, chavonadelal, Cheackraze, cheesePizza2, Chief-Engineer, christhirtle, chromiumboy, Chronophylos, Chubbygummibear, CilliePaint, civilCornball, Clement-O, clyf, Clyybber, CMDR-Piboy314, CodedCrow, Cohnway, cojoke-dot, ColdAutumnRain, Colin-Tel, collinlunn, ComicIronic, coolmankid12345, corentt, CormosLemming, CrafterKolyan, crazybrain23, creadth, CrigCrag, croilbird, Crotalus, CrudeWax, CrzyPotato, Cyberboss, d34d10cc, DadeKuma, Daemon, daerSeebaer, dahnte, dakamakat, DamianX, DangerRevolution, daniel-cr, DanSAussieITS, Daracke, DarkenedSynergy, Darkenson, DawBla, Daxxi3, dch-GH, Deahaka, dean, DEATHB4DEFEAT, DeathCamel58, deathride58, DebugOk, Decappi, Deeeeja, deepdarkdepths, degradka, Delete69, deltanedas, DeltaV-Bot, DerbyX, derek, dersheppard, dexlerxd, dffdff2423, dge21, digitalic, DinoWattz, DJB1gYAPPA, DjfjdfofdjfjD, DocNITE, DoctorBeard, DogZeroX, dolgovmi, dontbetank, Doomsdrayk, dootythefrooty, Dorragon, Doru991, DoubleRiceEddiedd, DoutorWhite, drakewill-CRL, Drayff, dribblydrone, DrMelon, drongood12, DrSingh, DrSmugleaf, drteaspoon420, DTanxxx, DubiousDoggo, Duddino, dukevanity, Dutch-VanDerLinde, dvir001, dylanstrategie, Dynexust, Easypoller, eclips_e, eden077, EEASAS, Efruit, efzapa, ElectroSR, elsie, elthundercloud, Emisse, emmafornash, EmoGarbage404, Endecc, enumerate0, eoineoineoin, eris, ERORR404V1, Errant-4, esguard, estacaoespacialpirata, eugene, Evgencheg, ewokswagger, exincore, exp111, f0x-n3rd, FacePluslll, Fahasor, FairlySadPanda, Fansana, Feluk6174, fenndragon, ficcialfaint, Fiftyllama, Fildrance, FillerVK, FinnishPaladin, FirinMaLazors, Fishfish458, fl-oz, Flareguy, FluffiestFloof, FluffMe, FluidRock, flybik, flyingkarii, FoLoKe, fooberticus, ForestNoises, forgotmyotheraccount, forkeyboards, forthbridge, Fortune117, Fouin, foxhorn, FoxxoTrystan, freeman2651, freeze2222, Froffy025, Fromoriss, froozigiusz, FrostMando, FungiFellow, GalacticChimp, gamer3107, Gaxeer, gbasood, gcoremans, Geekyhobo, genderGeometries, GeneralGaws, Genkail, geraeumig, Ghagliiarghii, ghost581x, Git-Nivrak, gituhabu, GlassEclipse, gluesniffler, GNF54, Golinth, GoodWheatley, gradientvera, graevy, GraniteSidewalk, GreaseMonk, greenrock64, greggthefather, GreyMario, GTRsound, Guess-My-Name, gusxyz, h3half, Haltell, Hanzdegloker, Hardly3D, harikattar, Hebi, Henry, HerCoyote23, hiucko, Hmeister-fake, Hmeister-real, hobnob, HoidC, Holinka4ever, holyssss, HoofedEar, Hoolny, hord-brayden, hubismal, Hugal31, Huxellberger, Hyenh, i-justuser-i, iacore, IamVelcroboy, icekot8, icesickleone, Ichaie, iczero, iglov, igorsaux, ike709, illersaver, Illiux, Ilushkins33, Ilya246, IlyaElDunaev, indeano, Injazz, Insineer, IntegerTempest, Interrobang01, Intoxicating-Innocence, IProduceWidgets, ItsMeThom, Itzbenz, Jackal298, Jackrost, jacksonzck, Jackw2As, jamessimo, janekvap, Jark255, Jaskanbe, JasperJRoth, jerryimmouse, JerryImMouse, Jessetriesagain, jessicamaybe, Jezithyr, jicksaw, JiimBob, JimGamemaster, JIPDawg, jjtParadox, JoeHammad1844, JohnGinnane, johnku1, joshepvodka, Jrpl, juliangiebel, juniwoofs, JustArt1m, JustCone14, justin, justintether, JustinTrotter, justtne, K-Dynamic, k3yw, Kadeo64, KaiShibaa, kalane15, kalanosh, Kanashi-Panda, Keelin, Keer-Sar, KEEYNy, keikiru, Kelrak, kerisargit, keronshb, KIBORG04, Killerqu00, Kimpes, KingFroozy, kira-er, Kirillcas, Kistras, Kit0vras, KittenColony, klaypexx, Kmc2000, Ko4ergaPunk, kognise, komunre, KonstantinAngelov, koteq, Krunklehorn, Kukutis96513, Kupie, kxvvv, Kyoth25f, kzhanik, lajolico, Lamrr, LankLTE, laok233, lapatison, larryrussian, lawdog4817, Lazzi0706, Leander-0, leonardo-dabepis, leonsfriedrich, lettern, LetterN, Level10Cybermancer, LEVELcat, lever1209, Lgibb18, LightVillet, liltenhead, LinkUyx, LittleBuilderJane, lizelive, lleftTheDragon, localcc, Lomcastar, lonoferars, LordCarve, LordEclipse, LovelyLophi, luckyshotpictures, LudwigVonChesterfield, Lukasz825700516, Lumminal, lunarcomets, luringens, lvvova1, lzimann, lzk228, M3739, mac6na6na, MACMAN2003, Macoron, magicalus, magmodius, MagnusCrowe, malchanceux, MaloTV, ManelNavola, Mangohydra, marboww, Markek1, Matz05, max, MaxNox7, MehimoNemo, MeltedPixel, MemeProof, MendaxxDev, Menshin, Mephisto72, Mervill, metalgearsloth, mhamsterr, michaelcu, micheel665, Mike32oz, MilenVolf, milon, MilonPL, Minty642, Mirino97, mirrorcult, misandrie, MishaUnity, MisterMecky, Mith-randalf, MjrLandWhale, MLGTASTICa, Mnemotechnician, moderatelyaware, mokiros, Moneyl, Moomoobeef, moony, Morb0, mr-bo-jangles, Mr0maks, MrFippik, musicmanvr, MWKane, Myakot, Myctai, N3X15, nails-n-tape, Nairodian, Naive817, namespace-Memory, Nannek, NeLepus, neuPanda, NickPowers43, nikthechampiongr, Nimfar11, Nirnael, NIXC, NkoKirkto, nmajask, noctyrnal, nok-ko, NonchalantNoob, NoobyLegion, not-gavnaed, notafet, notquitehadouken, noudoit, noverd, NuclearWinter, nukashimika, nuke-haus, NULL882, nullarmo, nyeogmi, Nylux, Nyranu, och-och, OCOtheOmega, OctoRocket, OldDanceJacket, osjarw, Ostaf, othymer, OttoMaticode, Owai-Seek, paigemaeforrest, pali6, Pangogie, panzer-iv1, paolordls, partyaddict, patrikturi, PaulRitter, Peptide90, peptron1, PeterFuto, PetMudstone, pewter-wiz, Phantom-Lily, PHCodes, Phill101, phunnyguy, pigeonpeas, PilgrimViis, Pill-U, Piras314, Pireax, pissdemon, PixelTheKermit, PJB3005, Plasmaguy, PlasmaRaptor, plinyvic, Plykiya, pofitlo, pointer-to-null, poklj, PolterTzi, PoorMansDreams, potato1234x, PotentiallyTom, ProfanedBane, ProPandaBear, PrPleGoo, ps3moira, Pspritechologist, Psychpsyo, psykzz, PuceTint, PuroSlavKing, PursuitInAshes, Putnam3145, qrtDaniil, quatre, QuietlyWhisper, qwerltaz, Radezolid, RadioMull, Radosvik, Radrark, RadsammyT, Rainbeon, Rainfey, Raitononai, randy10122, Rane, Ranger6012, Rapidgame7, ravage123321, rbertoche, Redfire1331, RedFoxIV, Redict, RedlineTriad, RednoWCirabrab, RemberBM, RemieRichards, RemTim, Remuchi, rene-descartes2021, Renlou, retequizzle, rich-dunne, RieBi, riggleprime, RIKELOLDABOSS, Rinkashikachi, RobbyTheFish, Rockdtben, Rohesie, rok-povsic, rolfero, RomanNovo, rosieposieeee, router, RumiTiger, S1ss3l, Saakra, saga3152, Salex08, sam, Samsterious, SaphireLattice, SapphicOverload, sapphirescript, SaveliyM360, sBasalto, ScalyChimp, scrato, Scribbles0, scuffedjays, ScumbagDog, Segonist, sephtasm, Serkket, sewerpig, ShadowCommander, shadowtheprotogen546, shadowwailker, shaeone, shampunj, shariathotpatrol, ShatteredSwords, SignalWalker, siigiil, SimpleStation14, Simyon264, sirdragooon, Sirionaut, Sk1tch, SkaldetSkaeg, Skarletto, Skrauz, Skyedra, SlamBamActionman, slarticodefast, Slava0135, SleepyScarecrow, sleepyyapril, Slyfox333, snebl, sniperchance, Snowni, snowsignal, SonicHDC, SoulFN, SoulSloth, Soundwavesghost, southbridge-fur, SpaceManiac, SpaceRox1244, SpaceyLady, spartak, SpartanKadence, Spatison, SpeltIncorrectyl, spess-empyrean, SphiraI, SplinterGP, spoogemonster, sporekto, Squishy77, ssdaniel24, stalengd, stanberytrask, Stanislav4ix, StanTheCarpenter, Stealthbomber16, stellar-novas, stopbreaking, stopka-html, StrawberryMoses, Stray-Pyramid, Strol20, StStevens, Subversionary, sunbear-dev, superjj18, Supernorn, suraru, SweptWasTaken, Sybil, SYNCHRONIC, Szunti, TadJohnson00, takemysoult, TaralGit, Taran, Tayrtahn, tday93, TekuNut, telyonok, TemporalOroboros, tentekal, terezi4real, Terraspark4941, texcruize, TGRCdev, tgrkzus, thatrandomcanadianguy, TheArturZh, theashtronaut, TheCze, TheDarkElites, thedraccx, TheEmber, TheIntoxicatedCat, thekilk, themias, theomund, TherapyGoth, TheShuEd, thevinter, ThunderBear2006, Timemaster99, timothyteakettle, TimrodDX, tin-man-tim, Tirochora, Titian3, tk-a369, tkdrg, Tmanzxd, tmtmtl30, toasterpm87, TokenStyle, Tollhouse, tom-leys, tomasalves8, Tomeno, Tonydatguy, topy, Tornado-Technology, tornado-technology, tosatur, TotallyLemon, truepaintgit, Tryded, TsjipTsjip, Tunguso4ka, TurboTrackerss14, twoducksonnaplane, Tyler-IN, Tyzemol, UbaserB, ubis1, UBlueberry, UKNOWH, UltimateJester, Unbelievable-Salmon, underscorex5, UnicornOnLSD, unusualcrow, Uriende, UristMcDorf, user424242420, v0idRift, Vaaankas, valentfingerov, Varen, VasilisThePikachu, veliebm, VelonacepsCalyxEggs, veprolet, Veritius, Vermidia, vero5123, Verslebas, VigersRay, violet754, Visne, vlados1408, VMSolidus, volotomite, volundr-, Voomra, Vordenburg, vulppine, wafehling, Warentan, WarMechanic, Watermelon914, waylon531, weaversam8, wertanchik, whateverusername0, Willhelm53, WilliamECrew, willicassi, Winkarst-cpu, wirdal, wixoaGit, WlarusFromDaSpace, wrexbe, WTCWR68, xkreksx, xqzpop7, xRiriq, YanehCheck, yathxyz, Ygg01, YotaXP, youarereadingthis, Yousifb26, yunii, yuriykiss, YuriyKiss, zach-hill, Zadeon, zamp, Zandario, Zap527, Zealith-Gamer, zelezniciar1, ZelteHonor, ZeroDiamond, zerorulez, ZeWaka, zionnBE, ZNixian, ZoldorfTheWizard, Zymem, zzylex +0x6273, 13spacemen, 2013HORSEMEATSCANDAL, 20kdc, 21Melkuu, 2digitman, 4310v343k, 4dplanner, 612git, 778b, Ablankmann, abregado, Absolute-Potato, Acruid, actioninja, actually-reb, ada-please, adamsong, Adeinitas, Admiral-Obvious-001, adrian, Adrian16199, Aerocrux, Aexolott, Aexxie, africalimedrop, afrokada, Agoichi, Ahion, Aidenkrz, Aikakakah, aitorlogedo, ajcm, AJCM-git, AjexRose, Alekshhh, alexkar598, AlexMorgan3817, alexumandxgabriel08x, Alithsko, AlmondFlour, ALMv1, AlphaQwerty, Altoids1, amylizzle, ancientpower, Andre19926, AndrewEyeke, angelofallars, Anzarot121, Appiah, ar4ill, ArchPigeon, ArchRBX, areitpog, Arendian, arimah, Arkanic, armoks, Arteben, ArthurMousatov, artur, AruMoon, as334, AsikKEsel, asperger-sind, aspiringLich, aspiringlich, astriloqua, avghdev, AzzyIsNotHere, BananaFlambe, BasedPugilist, BasedUser, beck-thompson, benev0, BGare, bhespiritu, bingojohnson, BismarckShuffle, Bixkitts, Blackern5000, Blazeror, bloodrizer, Bloody2372, blueDev2, BlueHNT, Boaz1111, BobdaBiscuit, BobTheSleder, boiled-water-tsar, BombasterDS, botanySupremist, brainfood1183, BramvanZijp, Brandon-Huu, Bribrooo, Bright0, brndd, bryce0110, BubblegumBlue, buletsponge, byondfuckery, c0rigin, c4llv07e, CaasGit, capnsockless, CaptainSqrBeard, Carbonhell, Carolyn3114, Carou02, carteblanche4me, CatTheSystem, Centronias, CerberusWolfie, chairbender, Charlese2, chavonadelal, Cheackraze, cheesePizza2, Chief-Engineer, christhirtle, chromiumboy, Chronophylos, Chubbygummibear, CilliePaint, civilCornball, Clement-O, clyf, Clyybber, CMDR-Piboy314, CodedCrow, Cohnway, cojoke-dot, ColdAutumnRain, Colin-Tel, collinlunn, ComicIronic, coolmankid12345, corentt, CormosLemming, CrafterKolyan, crazybrain23, creadth, CrigCrag, croilbird, Crotalus, CrudeWax, CrzyPotato, Cyberboss, d34d10cc, DadeKuma, Daemon, daerSeebaer, dahnte, dakamakat, DamianX, DangerRevolution, daniel-cr, DanSAussieITS, Daracke, DarkenedSynergy, Darkenson, DawBla, Daxxi3, dch-GH, Deahaka, dean, DEATHB4DEFEAT, DeathCamel58, deathride58, DebugOk, Decappi, Deeeeja, deepdarkdepths, degradka, Delete69, deltanedas, DeltaV-Bot, DerbyX, derek, dersheppard, dexlerxd, dffdff2423, dge21, digitalic, DinoWattz, DJB1gYAPPA, DjfjdfofdjfjD, DocNITE, DoctorBeard, DogZeroX, dolgovmi, dontbetank, Doomsdrayk, dootythefrooty, Dorragon, Doru991, DoubleRiceEddiedd, DoutorWhite, drakewill-CRL, Drayff, dribblydrone, DrMelon, drongood12, DrSingh, DrSmugleaf, drteaspoon420, DTanxxx, DubiousDoggo, Duddino, dukevanity, Dutch-VanDerLinde, dvir001, dylanstrategie, Dynexust, Easypoller, eclips_e, eden077, EEASAS, Efruit, efzapa, ElectroSR, elsie, elthundercloud, Emisse, emmafornash, EmoGarbage404, Endecc, enumerate0, eoineoineoin, Erisfiregamer1, ERORR404V1, Errant-4, esguard, estacaoespacialpirata, eugene, Evgencheg, ewokswagger, exincore, exp111, f0x-n3rd, FacePluslll, Fahasor, FairlySadPanda, Fansana, Feluk6174, fenndragon, ficcialfaint, Fiftyllama, Fildrance, FillerVK, FinnishPaladin, FirinMaLazors, Fishfish458, fl-oz, Flareguy, FluffiestFloof, FluffMe, FluidRock, flybik, flyingkarii, FoLoKe, fooberticus, ForestNoises, forgotmyotheraccount, forkeyboards, forthbridge, Fortune117, Fouin, foxhorn, FoxxoTrystan, freeman2651, freeze2222, Froffy025, Fromoriss, froozigiusz, FrostMando, FungiFellow, GalacticChimp, gamer3107, Gaxeer, gbasood, gcoremans, Geekyhobo, genderGeometries, GeneralGaws, Genkail, geraeumig, Ghagliiarghii, ghost581x, Git-Nivrak, gituhabu, GlassEclipse, gluesniffler, GNF54, Golinth, GoodWheatley, gradientvera, graevy, GraniteSidewalk, GreaseMonk, greenrock64, greggthefather, GreyMario, GTRsound, Guess-My-Name, gusxyz, h3half, Haltell, Hanzdegloker, Hardly3D, harikattar, Hebi, Henry, HerCoyote23, hiucko, Hmeister-fake, Hmeister-real, hobnob, HoidC, Holinka4ever, holyssss, HoofedEar, Hoolny, hord-brayden, hubismal, Hugal31, Huxellberger, Hyenh, i-justuser-i, iacore, IamVelcroboy, icekot8, icesickleone, Ichaie, iczero, iglov, igorsaux, ike709, illersaver, Illiux, Ilushkins33, Ilya246, IlyaElDunaev, indeano, Injazz, Insineer, IntegerTempest, Interrobang01, Intoxicating-Innocence, IProduceWidgets, ItsMeThom, Itzbenz, Jackal298, Jackrost, jacksonzck, Jackw2As, jamessimo, janekvap, Jark255, Jaskanbe, JasperJRoth, JerryImMouse, jerryimmouse, Jessetriesagain, jessicamaybe, Jezithyr, jicksaw, JiimBob, JimGamemaster, JIPDawg, jjtParadox, JoeHammad1844, JohnGinnane, johnku1, joshepvodka, Jrpl, juliangiebel, juniwoofs, JustArt1m, JustCone14, justin, justintether, JustinTrotter, justtne, K-Dynamic, k3yw, Kadeo64, KaiShibaa, kalane15, kalanosh, Kanashi-Panda, Keelin, Keer-Sar, KEEYNy, keikiru, Kelrak, kerisargit, keronshb, KIBORG04, Killerqu00, Kimpes, KingFroozy, kira-er, Kirillcas, Kistras, Kit0vras, KittenColony, klaypexx, Kmc2000, Ko4ergaPunk, kognise, komunre, KonstantinAngelov, koteq, Krunklehorn, Kukutis96513, Kupie, kxvvv, Kyoth25f, kzhanik, lajolico, Lamrr, LankLTE, laok233, lapatison, larryrussian, lawdog4817, Lazzi0706, leander-0, leonardo-dabepis, leonsfriedrich, lettern, LetterN, Level10Cybermancer, LEVELcat, lever1209, Lgibb18, LightVillet, liltenhead, LinkUyx, LittleBuilderJane, lizelive, lleftTheDragon, localcc, Lomcastar, lonoferars, LordCarve, LordEclipse, LovelyLophi, luckyshotpictures, LudwigVonChesterfield, Lukasz825700516, Lumminal, lunarcomets, luringens, lvvova1, lzimann, lzk228, M3739, mac6na6na, MACMAN2003, Macoron, magicalus, magmodius, MagnusCrowe, malchanceux, MaloTV, ManelNavola, Mangohydra, marboww, Markek1, Matz05, max, MaxNox7, MehimoNemo, MeltedPixel, MemeProof, MendaxxDev, Menshin, Mephisto72, Mervill, metalgearsloth, mhamsterr, michaelcu, micheel665, Mike32oz, MilenVolf, milon, MilonPL, Minty642, Mirino97, mirrorcult, misandrie, MishaUnity, MisterMecky, Mith-randalf, MjrLandWhale, MLGTASTICa, Mnemotechnician, moderatelyaware, mokiros, Moneyl, Moomoobeef, moony, Morb0, mr-bo-jangles, Mr0maks, MrFippik, musicmanvr, MWKane, Myakot, Myctai, N3X15, nails-n-tape, Nairodian, Naive817, namespace-Memory, Nannek, NeLepus, neuPanda, NickPowers43, nikthechampiongr, Nimfar11, Nirnael, NIXC, NkoKirkto, nmajask, noctyrnal, nok-ko, NonchalantNoob, NoobyLegion, not-gavnaed, notafet, notquitehadouken, noudoit, noverd, NuclearWinter, nukashimika, nuke-haus, NULL882, nullarmo, nyeogmi, Nylux, Nyranu, och-och, OCOtheOmega, OctoRocket, OldDanceJacket, osjarw, Ostaf, othymer, OttoMaticode, Owai-Seek, paigemaeforrest, pali6, Pangogie, panzer-iv1, paolordls, partyaddict, patrikturi, PaulRitter, Peptide90, peptron1, PeterFuto, PetMudstone, pewter-wiz, Phantom-Lily, PHCodes, Phill101, phunnyguy, pigeonpeas, PilgrimViis, Pill-U, Piras314, Pireax, pissdemon, PixelTheKermit, PJB3005, Plasmaguy, PlasmaRaptor, plinyvic, Plykiya, pofitlo, pointer-to-null, poklj, PolterTzi, PoorMansDreams, potato1234x, PotentiallyTom, ProfanedBane, ProPandaBear, PrPleGoo, ps3moira, Pspritechologist, Psychpsyo, psykzz, PuceTint, PuroSlavKing, PursuitInAshes, Putnam3145, qrtDaniil, quatre, QuietlyWhisper, qwerltaz, Radezolid, RadioMull, Radosvik, Radrark, RadsammyT, Rainbeon, Rainfey, Raitononai, randy10122, Rane, Ranger6012, Rapidgame7, ravage123321, rbertoche, Redfire1331, RedFoxIV, Redict, RedlineTriad, RednoWCirabrab, RemberBM, RemieRichards, RemTim, Remuchi, rene-descartes2021, Renlou, retequizzle, rich-dunne, RieBi, riggleprime, RIKELOLDABOSS, Rinkashikachi, RobbyTheFish, Rockdtben, Rohesie, rok-povsic, rolfero, RomanNovo, rosieposieeee, router, RumiTiger, S1ss3l, Saakra, saga3152, Salex08, sam, Samsterious, SaphireLattice, SapphicOverload, sapphirescript, SaveliyM360, sBasalto, ScalyChimp, scrato, Scribbles0, scuffedjays, ScumbagDog, Segonist, sephtasm, Serkket, sewerpig, ShadowCommander, shadowtheprotogen546, shadowwailker, shaeone, shampunj, shariathotpatrol, ShatteredSwords, SignalWalker, siigiil, SimpleStation14, Simyon264, sirdragooon, Sirionaut, Sk1tch, SkaldetSkaeg, Skarletto, Skrauz, Skyedra, SlamBamActionman, slarticodefast, Slava0135, SleepyScarecrow, sleepyyapril, Slyfox333, snebl, sniperchance, Snowni, snowsignal, SonicHDC, SoulFN, SoulSloth, Soundwavesghost, southbridge-fur, SpaceManiac, SpaceRox1244, SpaceyLady, spartak, SpartanKadence, Spatison, SpeltIncorrectyl, spess-empyrean, SphiraI, SplinterGP, spoogemonster, sporekto, Squishy77, ssdaniel24, stalengd, stanberytrask, Stanislav4ix, StanTheCarpenter, Stealthbomber16, stellar-novas, stopbreaking, stopka-html, StrawberryMoses, Stray-Pyramid, Strol20, StStevens, Subversionary, sunbear-dev, superjj18, Supernorn, suraru, SweptWasTaken, Sybil, SYNCHRONIC, Szunti, TadJohnson00, takemysoult, TaralGit, Taran, Tayrtahn, tday93, TekuNut, telyonok, TemporalOroboros, tentekal, terezi4real, Terraspark4941, texcruize, TGRCdev, tgrkzus, thatrandomcanadianguy, TheArturZh, theashtronaut, TheCze, TheDarkElites, thedraccx, TheEmber, TheIntoxicatedCat, thekilk, themias, theomund, TherapyGoth, TheShuEd, thevinter, ThunderBear2006, Timemaster99, timothyteakettle, TimrodDX, tin-man-tim, Tirochora, Titian3, tk-a369, tkdrg, Tmanzxd, tmtmtl30, toasterpm87, TokenStyle, Tollhouse, tom-leys, tomasalves8, Tomeno, Tonydatguy, topy, tornado-technology, Tornado-Technology, tosatur, TotallyLemon, truepaintgit, Tryded, TsjipTsjip, Tunguso4ka, TurboTrackerss14, twoducksonnaplane, Tyler-IN, Tyzemol, UbaserB, ubis1, UBlueberry, UKNOWH, UltimateJester, Unbelievable-Salmon, underscorex5, UnicornOnLSD, unusualcrow, Uriende, UristMcDorf, user424242420, v0idRift, Vaaankas, valentfingerov, Varen, VasilisThePikachu, veliebm, VelonacepsCalyxEggs, veprolet, Veritius, Vermidia, vero5123, Verslebas, VigersRay, violet754, Visne, vlados1408, VMSolidus, volotomite, volundr-, Voomra, Vordenburg, vulppine, wafehling, Warentan, WarMechanic, Watermelon914, waylon531, weaversam8, wertanchik, whateverusername0, Willhelm53, WilliamECrew, willicassi, Winkarst-cpu, wirdal, wixoaGit, WlarusFromDaSpace, wrexbe, WTCWR68, xkreksx, xqzpop7, xRiriq, YanehCheck, yathxyz, Ygg01, YotaXP, youarereadingthis, Yousifb26, yunii, yuriykiss, YuriyKiss, zach-hill, Zadeon, zamp, Zandario, Zap527, Zealith-Gamer, zelezniciar1, ZelteHonor, ZeroDiamond, zerorulez, ZeWaka, zionnBE, ZNixian, ZoldorfTheWizard, Zymem, zzylex From fd8c854964e1b59c9abbc4c8eef04c87a576c8a0 Mon Sep 17 00:00:00 2001 From: SixplyDev Date: Sun, 26 Jan 2025 22:36:31 -0600 Subject: [PATCH 02/60] Mantis Violence Update (#1669) I Hate Pacifist Mantises # Description This PR literally just removes the ability of the Mantis to be a pacifist. He's given a gun and a knife for a reason, his job is a violent one, makes no sense that he should be able to be a pacifist. --- # TODO - [x] Disable pacifism for the Mantis --- # Changelog :cl: ShirouAjisai - tweak: Mantis can no longer be a pacifist Co-authored-by: ShirouAjisai --- .../Nyanotrasen/Roles/Jobs/Epistemics/forensicmantis.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Resources/Prototypes/Nyanotrasen/Roles/Jobs/Epistemics/forensicmantis.yml b/Resources/Prototypes/Nyanotrasen/Roles/Jobs/Epistemics/forensicmantis.yml index 4d0538d31c..929406a325 100644 --- a/Resources/Prototypes/Nyanotrasen/Roles/Jobs/Epistemics/forensicmantis.yml +++ b/Resources/Prototypes/Nyanotrasen/Roles/Jobs/Epistemics/forensicmantis.yml @@ -18,6 +18,10 @@ - !type:CharacterTraitRequirement traits: - AnomalousPositronics + - !type:CharacterTraitRequirement + inverted: true + traits: + - Pacifist - !type:CharacterLogicOrRequirement requirements: - !type:CharacterSpeciesRequirement From dc72bc18a499a748f42c9613242b66024bb344ff Mon Sep 17 00:00:00 2001 From: SimpleStation Changelogs Date: Mon, 27 Jan 2025 04:37:05 +0000 Subject: [PATCH 03/60] Automatic Changelog Update (#1669) --- Resources/Changelog/Changelog.yml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/Resources/Changelog/Changelog.yml b/Resources/Changelog/Changelog.yml index 9512749f6d..aa45354904 100644 --- a/Resources/Changelog/Changelog.yml +++ b/Resources/Changelog/Changelog.yml @@ -10821,3 +10821,10 @@ Entries: id: 6770 time: '2025-01-26T15:44:04.0000000+00:00' url: https://github.com/Simple-Station/Einstein-Engines/pull/1663 +- author: ShirouAjisai + changes: + - type: Tweak + message: Mantis can no longer be a pacifist + id: 6771 + time: '2025-01-27T04:36:31.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/1669 From dac0f4d4067d754722a9cb181d8a605c58c48e70 Mon Sep 17 00:00:00 2001 From: SixplyDev Date: Sun, 26 Jan 2025 23:41:32 -0600 Subject: [PATCH 04/60] Blueshield CPR Update (#1672) # Description Blueshield gets the same CPR trait that doctors and the Corpsman get. SOP says he's responsible for first aid on command so this reflects that. Plus, wouldn't it make sense for a highly-trained bodyguard to know basic CPR??? --- # TODO - [x] Give BSO the CPR trait # Changelog :cl: ShirouAjisai - add: Blueshield Officer now has CPR as a roundstart trait. --------- Signed-off-by: SixplyDev Co-authored-by: ShirouAjisai Co-authored-by: sleepyyapril <123355664+sleepyyapril@users.noreply.github.com> --- .../_Goobstation/Roles/Jobs/Command/blueshield_officer.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/Resources/Prototypes/_Goobstation/Roles/Jobs/Command/blueshield_officer.yml b/Resources/Prototypes/_Goobstation/Roles/Jobs/Command/blueshield_officer.yml index 9c1a50f9e4..506d28550b 100644 --- a/Resources/Prototypes/_Goobstation/Roles/Jobs/Command/blueshield_officer.yml +++ b/Resources/Prototypes/_Goobstation/Roles/Jobs/Command/blueshield_officer.yml @@ -39,6 +39,7 @@ - !type:AddComponentSpecial components: - type: CommandStaff + - type: CPRTraining afterLoadoutSpecial: - !type:ModifyEnvirosuitSpecial charges: 8 From e6dae9047f8b1dcf4467cac968e0c9a1ddb52ddb Mon Sep 17 00:00:00 2001 From: sleepyyapril <123355664+sleepyyapril@users.noreply.github.com> Date: Mon, 27 Jan 2025 01:41:56 -0400 Subject: [PATCH 05/60] Fix Jobs only Allowing Shadowkin by Accident (#1673) :cl: - fix: Other species can pick Cataloguer, Psionic Mantis, and Mystagogue again. --- .../Roles/Jobs/Epistemics/forensicmantis.yml | 5 ----- .../Prototypes/Roles/Jobs/Civilian/librarian.yml | 13 ++++--------- .../Roles/Jobs/Science/research_director.yml | 13 ++++--------- 3 files changed, 8 insertions(+), 23 deletions(-) diff --git a/Resources/Prototypes/Nyanotrasen/Roles/Jobs/Epistemics/forensicmantis.yml b/Resources/Prototypes/Nyanotrasen/Roles/Jobs/Epistemics/forensicmantis.yml index 929406a325..3769017469 100644 --- a/Resources/Prototypes/Nyanotrasen/Roles/Jobs/Epistemics/forensicmantis.yml +++ b/Resources/Prototypes/Nyanotrasen/Roles/Jobs/Epistemics/forensicmantis.yml @@ -22,11 +22,6 @@ inverted: true traits: - Pacifist - - !type:CharacterLogicOrRequirement - requirements: - - !type:CharacterSpeciesRequirement - species: - - Shadowkin - !type:CharacterTraitRequirement inverted: true traits: diff --git a/Resources/Prototypes/Roles/Jobs/Civilian/librarian.yml b/Resources/Prototypes/Roles/Jobs/Civilian/librarian.yml index 7214c31cb5..4bf60c578d 100644 --- a/Resources/Prototypes/Roles/Jobs/Civilian/librarian.yml +++ b/Resources/Prototypes/Roles/Jobs/Civilian/librarian.yml @@ -16,15 +16,10 @@ - !type:CharacterTraitRequirement traits: - AnomalousPositronics - - !type:CharacterLogicOrRequirement - requirements: - - !type:CharacterSpeciesRequirement - species: - - Shadowkin - - !type:CharacterTraitRequirement - inverted: true - traits: - - ShadowkinBlackeye + - !type:CharacterTraitRequirement + inverted: true + traits: + - ShadowkinBlackeye startingGear: LibrarianGear icon: "JobIconLibrarian" supervisors: job-supervisors-rd diff --git a/Resources/Prototypes/Roles/Jobs/Science/research_director.yml b/Resources/Prototypes/Roles/Jobs/Science/research_director.yml index 6271388af1..3fd89948b2 100644 --- a/Resources/Prototypes/Roles/Jobs/Science/research_director.yml +++ b/Resources/Prototypes/Roles/Jobs/Science/research_director.yml @@ -14,15 +14,10 @@ - !type:CharacterTraitRequirement traits: - AnomalousPositronics - - !type:CharacterLogicOrRequirement - requirements: - - !type:CharacterSpeciesRequirement - species: - - Shadowkin - - !type:CharacterTraitRequirement - inverted: true - traits: - - ShadowkinBlackeye + - !type:CharacterTraitRequirement + inverted: true + traits: + - ShadowkinBlackeye weight: 10 startingGear: ResearchDirectorGear icon: "JobIconResearchDirector" From 7b0f200553a7b29a55dd8f1debf1bff71799b1e8 Mon Sep 17 00:00:00 2001 From: SimpleStation Changelogs Date: Mon, 27 Jan 2025 05:42:00 +0000 Subject: [PATCH 06/60] Automatic Changelog Update (#1672) --- Resources/Changelog/Changelog.yml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/Resources/Changelog/Changelog.yml b/Resources/Changelog/Changelog.yml index aa45354904..5389f42d67 100644 --- a/Resources/Changelog/Changelog.yml +++ b/Resources/Changelog/Changelog.yml @@ -10828,3 +10828,10 @@ Entries: id: 6771 time: '2025-01-27T04:36:31.0000000+00:00' url: https://github.com/Simple-Station/Einstein-Engines/pull/1669 +- author: ShirouAjisai + changes: + - type: Add + message: Blueshield Officer now has CPR as a roundstart trait. + id: 6772 + time: '2025-01-27T05:41:33.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/1672 From c57f3a05abf22120f7669be03136b772230ff55b Mon Sep 17 00:00:00 2001 From: SimpleStation Changelogs Date: Mon, 27 Jan 2025 05:42:25 +0000 Subject: [PATCH 07/60] Automatic Changelog Update (#1673) --- Resources/Changelog/Changelog.yml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/Resources/Changelog/Changelog.yml b/Resources/Changelog/Changelog.yml index 5389f42d67..471fa27c46 100644 --- a/Resources/Changelog/Changelog.yml +++ b/Resources/Changelog/Changelog.yml @@ -10835,3 +10835,10 @@ Entries: id: 6772 time: '2025-01-27T05:41:33.0000000+00:00' url: https://github.com/Simple-Station/Einstein-Engines/pull/1672 +- author: sleepyyapril + changes: + - type: Fix + message: Other species can pick Cataloguer, Psionic Mantis, and Mystagogue again. + id: 6773 + time: '2025-01-27T05:41:56.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/1673 From a2c2fc021345e0f544af05fb4909a2a3ce09fee9 Mon Sep 17 00:00:00 2001 From: SixplyDev Date: Mon, 27 Jan 2025 11:45:36 -0600 Subject: [PATCH 08/60] Erm.... No More Foreigner Trait Head Roles !!!!!!!!! (#1670) # Description This PR prevents heads of staff and security members from having foreigner traits, muted trait, blindness trait, and pacifist trait (only HoS & Cap cannot be pacifist). These traits are major disabilities and actively detrimental to their departments & the rest of command staff if they have them. These traits make them unable to clearly and effectively communicate or render them unable to do a critical part of their jobs in the case of pacifist and muted. --- # TODO - [x] Security Department can no longer have pacifist, muted, blind, brittle bone disease, or foreigner traits. - [x] Head of Security can no longer have pacifist, muted, blind, brittle bone disease, or foreigner traits. - [x] Heads of staff can no longer have muted, blind, or foreigner traits. - [x] The Captain can no longer have pacifist, muted, blind, brittle bone disease, or foreigner traits. - [x] Head of Personnel can no longer have muted, blind, or foreigner traits. --- # Changelog :cl: ShirouAjisai - tweak: Security Department can no longer have pacifist, muted, blind, brittle bone disease, or foreigner traits. - tweak: Head of Security can no longer have pacifist, muted, blind, brittle bone disease, or foreigner traits. - tweak: Heads of staff can no longer have muted, blind, or foreigner traits. - tweak: The Captain can no longer have pacifist, muted, blind, brittle bone disease, or foreigner traits. - tweak: The Head of Personnel can no longer have muted, blind, or foreigner traits. --------- Signed-off-by: SixplyDev Co-authored-by: ShirouAjisai Co-authored-by: sleepyyapril <123355664+sleepyyapril@users.noreply.github.com> --- .../Jobs/Command/administrative_assistant.yml | 5 + .../DeltaV/Roles/Jobs/Security/brigmedic.yml | 9 ++ .../Roles/Jobs/Cargo/quartermaster.yml | 6 + .../Prototypes/Roles/Jobs/Command/captain.yml | 7 ++ .../Roles/Jobs/Command/head_of_personnel.yml | 6 + .../Roles/Jobs/Engineering/chief_engineer.yml | 6 + .../Jobs/Medical/chief_medical_officer.yml | 6 + .../Roles/Jobs/Science/research_director.yml | 7 +- .../Roles/Jobs/Security/detective.yml | 116 ++++++++++-------- .../Roles/Jobs/Security/head_of_security.yml | 10 ++ .../Roles/Jobs/Security/security_cadet.yml | 10 ++ .../Roles/Jobs/Security/security_officer.yml | 9 ++ .../Roles/Jobs/Security/senior_officer.yml | 9 ++ .../Prototypes/Roles/Jobs/Security/warden.yml | 9 ++ .../Roles/Jobs/Command/blueshield_officer.yml | 9 ++ .../Roles/Jobs/Command/magistrate.yml | 5 + .../Command/nanotrasen_representative.yml | 5 + 17 files changed, 180 insertions(+), 54 deletions(-) diff --git a/Resources/Prototypes/DeltaV/Roles/Jobs/Command/administrative_assistant.yml b/Resources/Prototypes/DeltaV/Roles/Jobs/Command/administrative_assistant.yml index 03efbd1755..0ea72dfa35 100644 --- a/Resources/Prototypes/DeltaV/Roles/Jobs/Command/administrative_assistant.yml +++ b/Resources/Prototypes/DeltaV/Roles/Jobs/Command/administrative_assistant.yml @@ -22,6 +22,11 @@ - !type:CharacterDepartmentTimeRequirement department: Epistemics min: 10800 # 3 hours + - !type:CharacterTraitRequirement + inverted: true + traits: + - Foreigner + - ForeignerLight startingGear: AdminAssistantGear icon: "JobIconAdminAssitant" supervisors: job-supervisors-command diff --git a/Resources/Prototypes/DeltaV/Roles/Jobs/Security/brigmedic.yml b/Resources/Prototypes/DeltaV/Roles/Jobs/Security/brigmedic.yml index ea2bbe305a..18d7a47935 100644 --- a/Resources/Prototypes/DeltaV/Roles/Jobs/Security/brigmedic.yml +++ b/Resources/Prototypes/DeltaV/Roles/Jobs/Security/brigmedic.yml @@ -10,6 +10,15 @@ - !type:CharacterDepartmentTimeRequirement department: Security min: 18000 # 4 hrs + - !type:CharacterTraitRequirement + inverted: true + traits: + - Foreigner + - ForeignerLight + - Muted + - Blindness + - Pacifist + - BrittleBoneDisease startingGear: CorpsmanGear icon: "JobIconBrigmedic" supervisors: job-supervisors-hos diff --git a/Resources/Prototypes/Roles/Jobs/Cargo/quartermaster.yml b/Resources/Prototypes/Roles/Jobs/Cargo/quartermaster.yml index 90a7702717..3643a255b3 100644 --- a/Resources/Prototypes/Roles/Jobs/Cargo/quartermaster.yml +++ b/Resources/Prototypes/Roles/Jobs/Cargo/quartermaster.yml @@ -4,6 +4,12 @@ description: job-description-qm playTimeTracker: JobQuartermaster antagAdvantage: 6 # DeltaV - Reduced TC: Head of Staff + requirements: + - !type:CharacterTraitRequirement + inverted: true + traits: + - Foreigner + - ForeignerLight weight: 10 startingGear: QuartermasterGear icon: "JobIconQuarterMaster" diff --git a/Resources/Prototypes/Roles/Jobs/Command/captain.yml b/Resources/Prototypes/Roles/Jobs/Command/captain.yml index c5fda4e354..5609aa4554 100644 --- a/Resources/Prototypes/Roles/Jobs/Command/captain.yml +++ b/Resources/Prototypes/Roles/Jobs/Command/captain.yml @@ -3,6 +3,13 @@ name: job-name-captain description: job-description-captain playTimeTracker: JobCaptain + requirements: + - !type:CharacterTraitRequirement + inverted: true + traits: + - Foreigner + - ForeignerLight + - Pacifist weight: 20 startingGear: CaptainGear icon: "JobIconCaptain" diff --git a/Resources/Prototypes/Roles/Jobs/Command/head_of_personnel.yml b/Resources/Prototypes/Roles/Jobs/Command/head_of_personnel.yml index e560dea0ab..d21d6b3d42 100644 --- a/Resources/Prototypes/Roles/Jobs/Command/head_of_personnel.yml +++ b/Resources/Prototypes/Roles/Jobs/Command/head_of_personnel.yml @@ -3,6 +3,12 @@ name: job-name-hop description: job-description-hop playTimeTracker: JobHeadOfPersonnel + requirements: + - !type:CharacterTraitRequirement + inverted: true + traits: + - Foreigner + - ForeignerLight antagAdvantage: 6 # DeltaV - Reduced TC: Head of Staff weight: 10 # DeltaV - Changed HoP weight from 20 to 10 due to them not being more important than other Heads startingGear: HoPGear diff --git a/Resources/Prototypes/Roles/Jobs/Engineering/chief_engineer.yml b/Resources/Prototypes/Roles/Jobs/Engineering/chief_engineer.yml index 524458c51d..9ed53a1d15 100644 --- a/Resources/Prototypes/Roles/Jobs/Engineering/chief_engineer.yml +++ b/Resources/Prototypes/Roles/Jobs/Engineering/chief_engineer.yml @@ -3,6 +3,12 @@ name: job-name-ce description: job-description-ce playTimeTracker: JobChiefEngineer + requirements: + - !type:CharacterTraitRequirement + inverted: true + traits: + - Foreigner + - ForeignerLight weight: 10 startingGear: ChiefEngineerGear icon: "JobIconChiefEngineer" diff --git a/Resources/Prototypes/Roles/Jobs/Medical/chief_medical_officer.yml b/Resources/Prototypes/Roles/Jobs/Medical/chief_medical_officer.yml index 47cc21d0fb..ad1c5f8dfd 100644 --- a/Resources/Prototypes/Roles/Jobs/Medical/chief_medical_officer.yml +++ b/Resources/Prototypes/Roles/Jobs/Medical/chief_medical_officer.yml @@ -6,6 +6,12 @@ description: job-description-cmo playTimeTracker: JobChiefMedicalOfficer antagAdvantage: 6 # DeltaV - Reduced TC: Head of Staff + requirements: + - !type:CharacterTraitRequirement + inverted: true + traits: + - Foreigner + - ForeignerLight weight: 10 startingGear: CMOGear icon: "JobIconChiefMedicalOfficer" diff --git a/Resources/Prototypes/Roles/Jobs/Science/research_director.yml b/Resources/Prototypes/Roles/Jobs/Science/research_director.yml index 3fd89948b2..ae807edde7 100644 --- a/Resources/Prototypes/Roles/Jobs/Science/research_director.yml +++ b/Resources/Prototypes/Roles/Jobs/Science/research_director.yml @@ -14,10 +14,15 @@ - !type:CharacterTraitRequirement traits: - AnomalousPositronics + - !type:CharacterTraitRequirement + inverted: true + traits: + - ShadowkinBlackeye - !type:CharacterTraitRequirement inverted: true traits: - - ShadowkinBlackeye + - Foreigner + - ForeignerLight weight: 10 startingGear: ResearchDirectorGear icon: "JobIconResearchDirector" diff --git a/Resources/Prototypes/Roles/Jobs/Security/detective.yml b/Resources/Prototypes/Roles/Jobs/Security/detective.yml index 5a4b24b60b..99136f415a 100644 --- a/Resources/Prototypes/Roles/Jobs/Security/detective.yml +++ b/Resources/Prototypes/Roles/Jobs/Security/detective.yml @@ -1,55 +1,65 @@ -- type: job - id: Detective - name: job-name-detective - description: job-description-detective - playTimeTracker: JobDetective - requirements: - - !type:CharacterDepartmentTimeRequirement - department: Security - min: 36000 # DeltaV - 10 hours - startingGear: DetectiveGear - icon: "JobIconDetective" - supervisors: job-supervisors-hos - canBeAntag: false - access: - - Security - #- Brig # Delta V: Removed - - Maintenance - - Service - - Detective - - External - - Cryogenics - special: - - !type:AddImplantSpecial - implants: [ MindShieldImplant ] - afterLoadoutSpecial: - - !type:ModifyEnvirosuitSpecial - charges: 6 - - !type:ModifyEnvirohelmSpecial - powerCell: PowerCellHigh - -- type: startingGear +- type: job + id: Detective + name: job-name-detective + description: job-description-detective + playTimeTracker: JobDetective + requirements: + - !type:CharacterDepartmentTimeRequirement + department: Security + min: 36000 # DeltaV - 10 hours + - !type:CharacterTraitRequirement + inverted: true + traits: + - Foreigner + - ForeignerLight + - Muted + - Blindness + - Pacifist + - BrittleBoneDisease + startingGear: DetectiveGear + icon: "JobIconDetective" + supervisors: job-supervisors-hos + canBeAntag: false + access: + - Security + #- Brig # Delta V: Removed + - Maintenance + - Service + - Detective + - External + - Cryogenics + special: + - !type:AddImplantSpecial + implants: [ MindShieldImplant ] + afterLoadoutSpecial: + - !type:ModifyEnvirosuitSpecial + charges: 6 + - !type:ModifyEnvirohelmSpecial + powerCell: PowerCellHigh + +- type: startingGear id: DetectiveGear subGear: - - DetectivePlasmamanGear - equipment: - jumpsuit: ClothingUniformJumpsuitDetective - back: ClothingBackpackSecurity - shoes: ClothingShoesBootsCombatFilled - eyes: ClothingEyesGlassesSunglasses - head: ClothingHeadHatFedoraBrown - outerClothing: ClothingOuterVestDetective - id: DetectivePDA - ears: ClothingHeadsetSecurity - belt: ClothingBeltHolsterFilled - innerClothingSkirt: ClothingUniformJumpskirtDetective - satchel: ClothingBackpackSatchelSecurity - duffelbag: ClothingBackpackDuffelSecurity - -- type: startingGear - id: DetectivePlasmamanGear - parent: BasePlasmamanSecurityGear - equipment: - jumpsuit: ClothingUniformEnvirosuitDetective - head: ClothingHeadEnvirohelmDetective - gloves: ClothingHandsGlovesEnviroglovesWhite + - DetectivePlasmamanGear + + equipment: + jumpsuit: ClothingUniformJumpsuitDetective + back: ClothingBackpackSecurity + shoes: ClothingShoesBootsCombatFilled + eyes: ClothingEyesGlassesSunglasses + head: ClothingHeadHatFedoraBrown + outerClothing: ClothingOuterVestDetective + id: DetectivePDA + ears: ClothingHeadsetSecurity + belt: ClothingBeltHolsterFilled + innerClothingSkirt: ClothingUniformJumpskirtDetective + satchel: ClothingBackpackSatchelSecurity + duffelbag: ClothingBackpackDuffelSecurity + +- type: startingGear + id: DetectivePlasmamanGear + parent: BasePlasmamanSecurityGear + equipment: + jumpsuit: ClothingUniformEnvirosuitDetective + head: ClothingHeadEnvirohelmDetective + gloves: ClothingHandsGlovesEnviroglovesWhite diff --git a/Resources/Prototypes/Roles/Jobs/Security/head_of_security.yml b/Resources/Prototypes/Roles/Jobs/Security/head_of_security.yml index eb8ef7e410..fbe531435f 100644 --- a/Resources/Prototypes/Roles/Jobs/Security/head_of_security.yml +++ b/Resources/Prototypes/Roles/Jobs/Security/head_of_security.yml @@ -3,6 +3,16 @@ name: job-name-hos description: job-description-hos playTimeTracker: JobHeadOfSecurity + requirements: + - !type:CharacterTraitRequirement + inverted: true + traits: + - Foreigner + - ForeignerLight + - Muted + - Blindness + - Pacifist + - BrittleBoneDisease weight: 10 startingGear: HoSGear icon: "JobIconHeadOfSecurity" diff --git a/Resources/Prototypes/Roles/Jobs/Security/security_cadet.yml b/Resources/Prototypes/Roles/Jobs/Security/security_cadet.yml index 636540a6b2..87e02ede93 100644 --- a/Resources/Prototypes/Roles/Jobs/Security/security_cadet.yml +++ b/Resources/Prototypes/Roles/Jobs/Security/security_cadet.yml @@ -3,6 +3,16 @@ name: job-name-cadet description: job-description-cadet playTimeTracker: JobSecurityCadet + requirements: + - !type:CharacterTraitRequirement + inverted: true + traits: + - Foreigner + - ForeignerLight + - Muted + - Blindness + - Pacifist + - BrittleBoneDisease startingGear: SecurityCadetGear icon: "JobIconSecurityCadet" supervisors: job-supervisors-security diff --git a/Resources/Prototypes/Roles/Jobs/Security/security_officer.yml b/Resources/Prototypes/Roles/Jobs/Security/security_officer.yml index 066a592845..5c94b67d2b 100644 --- a/Resources/Prototypes/Roles/Jobs/Security/security_officer.yml +++ b/Resources/Prototypes/Roles/Jobs/Security/security_officer.yml @@ -7,6 +7,15 @@ - !type:CharacterDepartmentTimeRequirement department: Security min: 36000 # 10 hours + - !type:CharacterTraitRequirement + inverted: true + traits: + - Foreigner + - ForeignerLight + - Muted + - Blindness + - Pacifist + - BrittleBoneDisease startingGear: SecurityOfficerGear icon: "JobIconSecurityOfficer" supervisors: job-supervisors-hos diff --git a/Resources/Prototypes/Roles/Jobs/Security/senior_officer.yml b/Resources/Prototypes/Roles/Jobs/Security/senior_officer.yml index 584132d0bc..e4757db10e 100644 --- a/Resources/Prototypes/Roles/Jobs/Security/senior_officer.yml +++ b/Resources/Prototypes/Roles/Jobs/Security/senior_officer.yml @@ -17,6 +17,15 @@ - !type:CharacterDepartmentTimeRequirement department: Security min: 216000 # 60 hrs + - !type:CharacterTraitRequirement + inverted: true + traits: + - Foreigner + - ForeignerLight + - Muted + - Blindness + - Pacifist + - BrittleBoneDisease startingGear: SeniorOfficerGear icon: "JobIconSeniorOfficer" supervisors: job-supervisors-hos diff --git a/Resources/Prototypes/Roles/Jobs/Security/warden.yml b/Resources/Prototypes/Roles/Jobs/Security/warden.yml index 8533f9cc34..5cd302b61b 100644 --- a/Resources/Prototypes/Roles/Jobs/Security/warden.yml +++ b/Resources/Prototypes/Roles/Jobs/Security/warden.yml @@ -11,6 +11,15 @@ tracker: JobDetective min: 14400 # DeltaV - 4 hours - !type:CharacterWhitelistRequirement + - !type:CharacterTraitRequirement + inverted: true + traits: + - Foreigner + - ForeignerLight + - Muted + - Blindness + - Pacifist + - BrittleBoneDisease startingGear: WardenGear icon: "JobIconWarden" supervisors: job-supervisors-hos diff --git a/Resources/Prototypes/_Goobstation/Roles/Jobs/Command/blueshield_officer.yml b/Resources/Prototypes/_Goobstation/Roles/Jobs/Command/blueshield_officer.yml index 506d28550b..b800701404 100644 --- a/Resources/Prototypes/_Goobstation/Roles/Jobs/Command/blueshield_officer.yml +++ b/Resources/Prototypes/_Goobstation/Roles/Jobs/Command/blueshield_officer.yml @@ -13,6 +13,15 @@ - !type:CharacterDepartmentTimeRequirement department: Security min: 54000 # 15 hours + - !type:CharacterTraitRequirement + inverted: true + traits: + - Foreigner + - ForeignerLight + - Muted + - Blindness + - Pacifist + - BrittleBoneDisease weight: 20 startingGear: BlueshieldOfficerGear icon: "JobIconBlueshield" diff --git a/Resources/Prototypes/_Goobstation/Roles/Jobs/Command/magistrate.yml b/Resources/Prototypes/_Goobstation/Roles/Jobs/Command/magistrate.yml index 13f74d3dfd..340c635b9c 100644 --- a/Resources/Prototypes/_Goobstation/Roles/Jobs/Command/magistrate.yml +++ b/Resources/Prototypes/_Goobstation/Roles/Jobs/Command/magistrate.yml @@ -10,6 +10,11 @@ - !type:CharacterDepartmentTimeRequirement department: Security min: 54000 # 15 hours + - !type:CharacterTraitRequirement + inverted: true + traits: + - Foreigner + - ForeignerLight weight: 20 startingGear: MagistrateGear icon: "JobIconMagistrate" diff --git a/Resources/Prototypes/_Goobstation/Roles/Jobs/Command/nanotrasen_representative.yml b/Resources/Prototypes/_Goobstation/Roles/Jobs/Command/nanotrasen_representative.yml index 5158285608..4ee7f41b81 100644 --- a/Resources/Prototypes/_Goobstation/Roles/Jobs/Command/nanotrasen_representative.yml +++ b/Resources/Prototypes/_Goobstation/Roles/Jobs/Command/nanotrasen_representative.yml @@ -7,6 +7,11 @@ - !type:CharacterDepartmentTimeRequirement department: Command min: 54000 # 15 hours + - !type:CharacterTraitRequirement + inverted: true + traits: + - Foreigner + - ForeignerLight weight: 20 startingGear: NanotrasenRepresentativeGear icon: "JobIconNanotrasenRepresentative" From 3607de2695d763bd7f7ce143f47f04e6a4680ed3 Mon Sep 17 00:00:00 2001 From: SimpleStation Changelogs Date: Mon, 27 Jan 2025 17:46:11 +0000 Subject: [PATCH 09/60] Automatic Changelog Update (#1670) --- Resources/Changelog/Changelog.yml | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/Resources/Changelog/Changelog.yml b/Resources/Changelog/Changelog.yml index 471fa27c46..138071236a 100644 --- a/Resources/Changelog/Changelog.yml +++ b/Resources/Changelog/Changelog.yml @@ -10842,3 +10842,24 @@ Entries: id: 6773 time: '2025-01-27T05:41:56.0000000+00:00' url: https://github.com/Simple-Station/Einstein-Engines/pull/1673 +- author: ShirouAjisai + changes: + - type: Tweak + message: >- + Security Department can no longer have pacifist, muted, blind, brittle + bone disease, or foreigner traits. + - type: Tweak + message: >- + Head of Security can no longer have pacifist, muted, blind, brittle bone + disease, or foreigner traits. + - type: Tweak + message: Heads of staff can no longer have foreigner traits. + - type: Tweak + message: The Captain can no longer have pacifist or foreigner traits. + - type: Tweak + message: The Head of Personnel can no longer have foreigner traits. + - type: Tweak + message: The Administrative Assistant can no longer have foreigner traits. + id: 6774 + time: '2025-01-27T17:45:36.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/1670 From e9036ff47b6b98a3ccc13602c6042427442c2982 Mon Sep 17 00:00:00 2001 From: Skubman Date: Tue, 28 Jan 2025 03:34:53 +0800 Subject: [PATCH 10/60] Plasmaman Hotfix + Other Fixes (#1676) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit # Description - Added the `SkeletonAccent` trait to the `TraitsAccents` item group prototype (was mistakenly not included) - Set all plasma tank's output pressure to 5.325 (was 21.3), same as the smaller plasma internals tank - Apparently the Output Pressure is not really meaningful for engineering on plasma tanks so this is just a QoL feature for plasmamen - Prevent plasmamen from taking the Temperature Tolerance trait that is useless due to their cold immunity. - Fix price of uplink mechs due to lack of https://github.com/Goob-Station/Goob-Station/pull/332 - We absolutely want to bring the Telecrystal Rework here, but for now reduce the price Pending Rework™. - https://github.com/space-wizards/space-station-14/pull/30393 (cherry-picked from Wizden) - Disable the Raise Glimmer objective due to the glimmer rework. ## Media **Plasma Tank Output Pressure** **Uplink Mechs** # Changelog :cl: Skubman - tweak: All plasma tanks of all kinds now have the correct output pressure for use as Plasmamen internals. - tweak: Plasmamen can no longer select the Temperature Tolerance trait which has no effect since they are already immune to Cold damage. - fix: Reduced the price of mechs on the uplink. - fix: Thief game rule now properly selects more than one thief. - remove: Remove the Raise Glimmer To 500 traitor objective. --------- Co-authored-by: Plykiya <58439124+Plykiya@users.noreply.github.com> Co-authored-by: plykiya --- .../Catalog/Fills/Items/gas_tanks.yml | 18 ++++-------------- .../Generic/languageGroups.yml | 2 ++ Resources/Prototypes/GameRules/midround.yml | 6 ++---- .../Prototypes/Objectives/objectiveGroups.yml | 2 +- .../Roles/Jobs/Fun/plasmaman_startinggear.yml | 6 +++--- Resources/Prototypes/Traits/physical.yml | 1 + .../_Goobstation/Catalog/uplink_catalog.yml | 5 +++-- 7 files changed, 16 insertions(+), 24 deletions(-) diff --git a/Resources/Prototypes/Catalog/Fills/Items/gas_tanks.yml b/Resources/Prototypes/Catalog/Fills/Items/gas_tanks.yml index 379de235fc..66d2ceb37c 100644 --- a/Resources/Prototypes/Catalog/Fills/Items/gas_tanks.yml +++ b/Resources/Prototypes/Catalog/Fills/Items/gas_tanks.yml @@ -117,7 +117,7 @@ - type: GasTank outputPressure: 5.325 air: - # 36 minutes with Plasmaman lungs + # 37 minutes with Plasmaman lungs volume: 1.5 moles: - 0 # oxygen @@ -163,7 +163,7 @@ - type: GasTank outputPressure: 5.325 air: - # 60 minutes with Plasmaman lungs + # 62 minutes with Plasmaman lungs volume: 1.5 moles: - 0 # oxygen @@ -260,9 +260,9 @@ suffix: Filled components: - type: GasTank - outputPressure: 21.3 + outputPressure: 5.325 air: - # 6 minutes of agony + # 125.2 minutes with Plasmaman lungs volume: 5 moles: - 0 # oxygen @@ -270,13 +270,3 @@ - 0 # CO2 - 2.051379050 # plasma temperature: 293.15 - -- type: entity - id: PlasmaTankFilledInternals - parent: PlasmaTankFilled - name: plasma tank - suffix: Filled, Plasmaman Internals - components: - - type: GasTank - # 120 minutes with Plasmaman lungs - outputPressure: 5.325 diff --git a/Resources/Prototypes/CharacterItemGroups/Generic/languageGroups.yml b/Resources/Prototypes/CharacterItemGroups/Generic/languageGroups.yml index e81b6b950c..cf729ef7a4 100644 --- a/Resources/Prototypes/CharacterItemGroups/Generic/languageGroups.yml +++ b/Resources/Prototypes/CharacterItemGroups/Generic/languageGroups.yml @@ -43,3 +43,5 @@ id: Southern - type: trait id: ScottishAccent + - type: trait + id: SkeletonAccent diff --git a/Resources/Prototypes/GameRules/midround.yml b/Resources/Prototypes/GameRules/midround.yml index 50864930b0..39fbab580f 100644 --- a/Resources/Prototypes/GameRules/midround.yml +++ b/Resources/Prototypes/GameRules/midround.yml @@ -19,10 +19,8 @@ agentName: thief-round-end-agent-name definitions: - prefRoles: [ Thief ] - maxRange: - min: 1 - max: 3 - playerRatio: 1 + max: 3 + playerRatio: 15 lateJoinAdditional: true allowNonHumans: true multiAntagSetting: All diff --git a/Resources/Prototypes/Objectives/objectiveGroups.yml b/Resources/Prototypes/Objectives/objectiveGroups.yml index 68deacd784..459861b8d6 100644 --- a/Resources/Prototypes/Objectives/objectiveGroups.yml +++ b/Resources/Prototypes/Objectives/objectiveGroups.yml @@ -47,7 +47,7 @@ weights: RandomTraitorAliveObjective: 1 RandomTraitorProgressObjective: 1 - RaiseGlimmerObjective: 0.5 # Nyanotrasen - Raise glimmer to a target amount, see Resources/Prototypes/Nyanotrasen/Objectives/traitor.yml + # RaiseGlimmerObjective: 0.5 # Nyanotrasen - Raise glimmer to a target amount, see Resources/Prototypes/Nyanotrasen/Objectives/traitor.yml #Thief groups - type: weightedRandom diff --git a/Resources/Prototypes/Roles/Jobs/Fun/plasmaman_startinggear.yml b/Resources/Prototypes/Roles/Jobs/Fun/plasmaman_startinggear.yml index bec0c1eb45..0b3f8870e2 100644 --- a/Resources/Prototypes/Roles/Jobs/Fun/plasmaman_startinggear.yml +++ b/Resources/Prototypes/Roles/Jobs/Fun/plasmaman_startinggear.yml @@ -48,7 +48,7 @@ species: [ Plasmaman ] equipment: jumpsuit: ClothingUniformEnvirosuitColorBlack # TODO: actual ninja envirosuit - suitstorage: PlasmaTankFilledInternals + suitstorage: PlasmaTankFilled # ERT starting gear - type: startingGear @@ -65,7 +65,7 @@ id: ERTPlasmamanGear parent: ERTPlasmamanGearNoTank equipment: - suitstorage: PlasmaTankFilledInternals + suitstorage: PlasmaTankFilled - type: startingGear id: CBURNPlasmamanGear @@ -98,7 +98,7 @@ - !type:CharacterSpeciesRequirement species: [ Plasmaman ] inhand: - - PlasmaTankFilledInternals + - PlasmaTankFilled - type: startingGear id: DeathMatchPlasmamanGear diff --git a/Resources/Prototypes/Traits/physical.yml b/Resources/Prototypes/Traits/physical.yml index 91e855829b..5739220526 100644 --- a/Resources/Prototypes/Traits/physical.yml +++ b/Resources/Prototypes/Traits/physical.yml @@ -350,6 +350,7 @@ inverted: true species: - Vulpkanin # This trait functions exactly as-is for the Vulpkanin trait. + - Plasmaman # Plasmamen have cold immunity so this trait is unnecessary functions: - !type:TraitReplaceComponent components: diff --git a/Resources/Prototypes/_Goobstation/Catalog/uplink_catalog.yml b/Resources/Prototypes/_Goobstation/Catalog/uplink_catalog.yml index 4706350a44..6e4c723dc5 100644 --- a/Resources/Prototypes/_Goobstation/Catalog/uplink_catalog.yml +++ b/Resources/Prototypes/_Goobstation/Catalog/uplink_catalog.yml @@ -7,7 +7,7 @@ icon: { sprite: /Textures/Objects/Specific/Mech/mecha.rsi, state: darkgygax } productEntity: CrateCybersunDarkGygaxBundle cost: - Telecrystal: 400 + Telecrystal: 80 # Einstein Engines - 1/5th the price due to no telecrystal rework categories: - UplinkAllies @@ -18,7 +18,8 @@ icon: { sprite: /Textures/Objects/Specific/Mech/mecha.rsi, state: mauler } productEntity: CrateCybersunMaulerBundle cost: - Telecrystal: 650 + Telecrystal: 105 # Einstein Engines - lower the price due to no telecrystal rework + # cost reduced such that nukies can still only buy one with all pooled nukies' TC categories: - UplinkAllies conditions: From 29024181641f8a6bc90566dc2dfdb31029695a3c Mon Sep 17 00:00:00 2001 From: SimpleStation Changelogs Date: Mon, 27 Jan 2025 19:35:22 +0000 Subject: [PATCH 11/60] Automatic Changelog Update (#1676) --- Resources/Changelog/Changelog.yml | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/Resources/Changelog/Changelog.yml b/Resources/Changelog/Changelog.yml index 138071236a..91af9af4e7 100644 --- a/Resources/Changelog/Changelog.yml +++ b/Resources/Changelog/Changelog.yml @@ -10863,3 +10863,22 @@ Entries: id: 6774 time: '2025-01-27T17:45:36.0000000+00:00' url: https://github.com/Simple-Station/Einstein-Engines/pull/1670 +- author: Skubman + changes: + - type: Tweak + message: >- + All plasma tanks of all kinds now have the correct output pressure for + use as Plasmamen internals. + - type: Tweak + message: >- + Plasmamen can no longer select the Temperature Tolerance trait which has + no effect since they are already immune to Cold damage. + - type: Fix + message: Reduced the price of mechs on the uplink. + - type: Fix + message: Thief game rule now properly selects more than one thief. + - type: Remove + message: Remove the Raise Glimmer To 500 traitor objective. + id: 6775 + time: '2025-01-27T19:34:53.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/1676 From e690a3eff1af6f5af2d0e2ace294a93faf998e9d Mon Sep 17 00:00:00 2001 From: portfiend <109661617+portfiend@users.noreply.github.com> Date: Mon, 12 Aug 2024 11:15:33 -0400 Subject: [PATCH 12/60] AAC tablet for speech-impaired characters (#1491) * basic AAC tablet prototype using station map as a base * set up aac component/system * quick phrase prototype will probably touch this up later * basic example phrases just so i have data to work with * get AACWindow to iterate over quick phrases * add the rest of the job phrases * fix this one job name * actually fix prison guard name * buttons for aac window * fix phrase inheritance * add tabs to aac contaner * fix column spacing and add button padding * aac tablet button colors * AAC tablet sends messages now * add aac tablet voice sound yay * add a 1 second cooldown between phrases * subjects for most departments * location phrases * more phrases * cleanup + sort buttons alphabetically * fix these phrases * even more departmental subject phrases * common phrases * cleanup imports * show name of player that pressed button * aac tablet can be used by multipel people after all it does not rely on state changes and also multiple people can press buttons on a tablet at once * capitalize aac its an acronym * you know what it is its more phrases!!!! * SAFETY PHRASES * last second phrases * redundant phrase * and one more hazard phrase for the road * change voice of aac tablet from borg to alto just sounds nicer * localize ALL Phrases i love utility scripting to automate tedious tasks * add AAC tablet to loadout * add AAC tablet to medfab * tweak: use multiple parents instead of whatever this is * add: justice department phrases * add: time quantity phrases * add: ores and kitchen appliance phrases * fix: resolve duplicate phrases * add: aac tablet sprites * add: justice button style * fix: misplaced this line oops * add: justice dept locations * remove: redundant phrase * re-run tests * fix: move aac tablet loadout format * fix: use Identity instead of Name for aac tablet sender * fix: return on send phrase if id is invalid * fix: remove redundant line * fix: use LocId instead of String for phrase text type * add: new phrases bc upstream updates * fix: newlines * tweak: add end comments to these style comments * fix: this phrase was broken lol --------- Co-authored-by: deltanedas <39013340+deltanedas@users.noreply.github.com> --- .../AACTablet/UI/AACBoundUserInterface.cs | 38 ++ .../DeltaV/AACTablet/UI/AACWindow.xaml | 9 + .../DeltaV/AACTablet/UI/AACWindow.xaml.cs | 147 ++++++ Content.Client/Stylesheets/StyleNano.cs | 111 +++++ .../DeltaV/AACTablet/AACTabletComponent.cs | 13 + .../DeltaV/AACTablet/AACTabletSystem.cs | 47 ++ .../DeltaV/AACTablet/SharedAACTabletSystem.cs | 19 + .../QuickPhrase/QuickPhrasePrototype.cs | 51 ++ .../Locale/en-US/deltav/phrases/common.ftl | 92 ++++ .../Locale/en-US/deltav/phrases/species.ftl | 42 ++ .../Locale/en-US/deltav/phrases/subjects.ftl | 195 ++++++++ .../Locale/en-US/deltav/phrases/threats.ftl | 52 +++ .../en-US/deltav/phrases/uncategorized.ftl | 7 + .../Entities/Objects/Devices/aac_tablet.yml | 43 ++ .../Loadouts/Miscellaneous/trinkets.yml | 5 + .../DeltaV/QuickPhrases/Common/commands.yml | 125 +++++ .../DeltaV/QuickPhrases/Common/manners.yml | 75 +++ .../DeltaV/QuickPhrases/Common/numbers.yml | 100 ++++ .../DeltaV/QuickPhrases/Common/pronouns.yml | 65 +++ .../QuickPhrases/Common/qualitative.yml | 70 +++ .../DeltaV/QuickPhrases/Common/questions.yml | 55 +++ .../DeltaV/QuickPhrases/Species/animals.yml | 165 +++++++ .../DeltaV/QuickPhrases/Species/crew.yml | 65 +++ .../QuickPhrases/Species/generic_species.yml | 55 +++ .../DeltaV/QuickPhrases/Subjects/command.yml | 34 ++ .../QuickPhrases/Subjects/engineering.yml | 119 +++++ .../QuickPhrases/Subjects/epistemics.yml | 89 ++++ .../DeltaV/QuickPhrases/Subjects/generic.yml | 230 ++++++++++ .../DeltaV/QuickPhrases/Subjects/justice.yml | 104 +++++ .../QuickPhrases/Subjects/logistics.yml | 156 +++++++ .../DeltaV/QuickPhrases/Subjects/medical.yml | 179 ++++++++ .../DeltaV/QuickPhrases/Subjects/security.yml | 74 +++ .../DeltaV/QuickPhrases/Subjects/service.yml | 144 ++++++ .../DeltaV/QuickPhrases/Threats/hazards.yml | 106 +++++ .../DeltaV/QuickPhrases/Threats/hostiles.yml | 66 +++ .../DeltaV/QuickPhrases/Threats/status.yml | 108 +++++ .../Prototypes/DeltaV/QuickPhrases/base.yml | 86 ++++ .../Prototypes/DeltaV/QuickPhrases/jobs.yml | 309 +++++++++++++ .../DeltaV/QuickPhrases/locations.yml | 434 ++++++++++++++++++ .../DeltaV/Recipes/Lathes/medical.yml | 7 + .../Entities/Structures/Machines/lathe.yml | 1 + .../Devices/tablets.rsi/aac-inhand-left.png | Bin 0 -> 352 bytes .../Devices/tablets.rsi/aac-inhand-right.png | Bin 0 -> 345 bytes .../tablets.rsi/aac_screen-inhand-left.png | Bin 0 -> 238 bytes .../tablets.rsi/aac_screen-inhand-right.png | Bin 0 -> 238 bytes .../Devices/tablets.rsi/aac_screen.png | Bin 0 -> 268 bytes .../Devices/tablets.rsi/aac_tablet.png | Bin 0 -> 320 bytes .../Objects/Devices/tablets.rsi/meta.json | 33 ++ 48 files changed, 3925 insertions(+) create mode 100644 Content.Client/DeltaV/AACTablet/UI/AACBoundUserInterface.cs create mode 100644 Content.Client/DeltaV/AACTablet/UI/AACWindow.xaml create mode 100644 Content.Client/DeltaV/AACTablet/UI/AACWindow.xaml.cs create mode 100644 Content.Server/DeltaV/AACTablet/AACTabletComponent.cs create mode 100644 Content.Server/DeltaV/AACTablet/AACTabletSystem.cs create mode 100644 Content.Shared/DeltaV/AACTablet/SharedAACTabletSystem.cs create mode 100644 Content.Shared/DeltaV/QuickPhrase/QuickPhrasePrototype.cs create mode 100644 Resources/Locale/en-US/deltav/phrases/common.ftl create mode 100644 Resources/Locale/en-US/deltav/phrases/species.ftl create mode 100644 Resources/Locale/en-US/deltav/phrases/subjects.ftl create mode 100644 Resources/Locale/en-US/deltav/phrases/threats.ftl create mode 100644 Resources/Locale/en-US/deltav/phrases/uncategorized.ftl create mode 100644 Resources/Prototypes/DeltaV/Entities/Objects/Devices/aac_tablet.yml create mode 100644 Resources/Prototypes/DeltaV/Loadouts/Miscellaneous/trinkets.yml create mode 100644 Resources/Prototypes/DeltaV/QuickPhrases/Common/commands.yml create mode 100644 Resources/Prototypes/DeltaV/QuickPhrases/Common/manners.yml create mode 100644 Resources/Prototypes/DeltaV/QuickPhrases/Common/numbers.yml create mode 100644 Resources/Prototypes/DeltaV/QuickPhrases/Common/pronouns.yml create mode 100644 Resources/Prototypes/DeltaV/QuickPhrases/Common/qualitative.yml create mode 100644 Resources/Prototypes/DeltaV/QuickPhrases/Common/questions.yml create mode 100644 Resources/Prototypes/DeltaV/QuickPhrases/Species/animals.yml create mode 100644 Resources/Prototypes/DeltaV/QuickPhrases/Species/crew.yml create mode 100644 Resources/Prototypes/DeltaV/QuickPhrases/Species/generic_species.yml create mode 100644 Resources/Prototypes/DeltaV/QuickPhrases/Subjects/command.yml create mode 100644 Resources/Prototypes/DeltaV/QuickPhrases/Subjects/engineering.yml create mode 100644 Resources/Prototypes/DeltaV/QuickPhrases/Subjects/epistemics.yml create mode 100644 Resources/Prototypes/DeltaV/QuickPhrases/Subjects/generic.yml create mode 100644 Resources/Prototypes/DeltaV/QuickPhrases/Subjects/justice.yml create mode 100644 Resources/Prototypes/DeltaV/QuickPhrases/Subjects/logistics.yml create mode 100644 Resources/Prototypes/DeltaV/QuickPhrases/Subjects/medical.yml create mode 100644 Resources/Prototypes/DeltaV/QuickPhrases/Subjects/security.yml create mode 100644 Resources/Prototypes/DeltaV/QuickPhrases/Subjects/service.yml create mode 100644 Resources/Prototypes/DeltaV/QuickPhrases/Threats/hazards.yml create mode 100644 Resources/Prototypes/DeltaV/QuickPhrases/Threats/hostiles.yml create mode 100644 Resources/Prototypes/DeltaV/QuickPhrases/Threats/status.yml create mode 100644 Resources/Prototypes/DeltaV/QuickPhrases/base.yml create mode 100644 Resources/Prototypes/DeltaV/QuickPhrases/jobs.yml create mode 100644 Resources/Prototypes/DeltaV/QuickPhrases/locations.yml create mode 100644 Resources/Prototypes/DeltaV/Recipes/Lathes/medical.yml create mode 100644 Resources/Textures/DeltaV/Objects/Devices/tablets.rsi/aac-inhand-left.png create mode 100644 Resources/Textures/DeltaV/Objects/Devices/tablets.rsi/aac-inhand-right.png create mode 100644 Resources/Textures/DeltaV/Objects/Devices/tablets.rsi/aac_screen-inhand-left.png create mode 100644 Resources/Textures/DeltaV/Objects/Devices/tablets.rsi/aac_screen-inhand-right.png create mode 100644 Resources/Textures/DeltaV/Objects/Devices/tablets.rsi/aac_screen.png create mode 100644 Resources/Textures/DeltaV/Objects/Devices/tablets.rsi/aac_tablet.png create mode 100644 Resources/Textures/DeltaV/Objects/Devices/tablets.rsi/meta.json diff --git a/Content.Client/DeltaV/AACTablet/UI/AACBoundUserInterface.cs b/Content.Client/DeltaV/AACTablet/UI/AACBoundUserInterface.cs new file mode 100644 index 0000000000..6a9330598f --- /dev/null +++ b/Content.Client/DeltaV/AACTablet/UI/AACBoundUserInterface.cs @@ -0,0 +1,38 @@ +using Content.Shared.DeltaV.AACTablet; +using Robust.Shared.Prototypes; + +namespace Content.Client.DeltaV.AACTablet.UI; + +public sealed class AACBoundUserInterface : BoundUserInterface +{ + [Dependency] private readonly IPrototypeManager _prototypeManager = default!; + + [ViewVariables] + private AACWindow? _window; + + public AACBoundUserInterface(EntityUid owner, Enum uiKey) : base(owner, uiKey) + { + } + + protected override void Open() + { + base.Open(); + _window?.Close(); + _window = new AACWindow(this, _prototypeManager); + _window.OpenCentered(); + + _window.PhraseButtonPressed += OnPhraseButtonPressed; + _window.OnClose += Close; + } + + private void OnPhraseButtonPressed(string phraseId) + { + SendMessage(new AACTabletSendPhraseMessage(phraseId)); + } + + protected override void Dispose(bool disposing) + { + base.Dispose(disposing); + _window?.Dispose(); + } +} diff --git a/Content.Client/DeltaV/AACTablet/UI/AACWindow.xaml b/Content.Client/DeltaV/AACTablet/UI/AACWindow.xaml new file mode 100644 index 0000000000..e418393420 --- /dev/null +++ b/Content.Client/DeltaV/AACTablet/UI/AACWindow.xaml @@ -0,0 +1,9 @@ + + + + \ No newline at end of file diff --git a/Content.Client/DeltaV/AACTablet/UI/AACWindow.xaml.cs b/Content.Client/DeltaV/AACTablet/UI/AACWindow.xaml.cs new file mode 100644 index 0000000000..97767affac --- /dev/null +++ b/Content.Client/DeltaV/AACTablet/UI/AACWindow.xaml.cs @@ -0,0 +1,147 @@ +using System.Linq; +using System.Numerics; +using Content.Client.UserInterface.Controls; +using Content.Shared.DeltaV.QuickPhrase; +using Robust.Client.AutoGenerated; +using Robust.Client.UserInterface; +using Robust.Client.UserInterface.Controls; +using Robust.Client.UserInterface.XAML; +using Robust.Shared.Prototypes; + +namespace Content.Client.DeltaV.AACTablet.UI; + +[GenerateTypedNameReferences] +public sealed partial class AACWindow : FancyWindow +{ + private IPrototypeManager _prototypeManager; + public event Action? PhraseButtonPressed; + + public AACWindow(AACBoundUserInterface ui, IPrototypeManager prototypeManager) + { + RobustXamlLoader.Load(this); + _prototypeManager = prototypeManager; + PopulateGui(ui); + } + + private void PopulateGui(AACBoundUserInterface ui) + { + var loc = IoCManager.Resolve(); + var phrases = _prototypeManager.EnumeratePrototypes().ToList(); + + // take ALL phrases and turn them into tabs and groups, so the buttons are sorted and tabbed + var sortedTabs = phrases + .GroupBy(p => p.Tab) + .OrderBy(g => g.Key) + .ToDictionary( + g => g.Key, + g => g.GroupBy(p => p.Group) + .OrderBy(gg => gg.Key) + .ToDictionary( + gg => gg.Key, + gg => gg.OrderBy(p => loc.GetString(p.Text)).ToList() + ) + ); + + var tabContainer = CreateTabContainer(sortedTabs); + WindowBody.AddChild(tabContainer); + } + + private TabContainer CreateTabContainer(Dictionary>> sortedTabs) + { + var tabContainer = new TabContainer(); + var loc = IoCManager.Resolve(); + + foreach (var tab in sortedTabs) + { + var tabName = loc.GetString(tab.Key); + var boxContainer = CreateBoxContainerForTab(tab.Value); + tabContainer.AddChild(boxContainer); + tabContainer.SetTabTitle(tabContainer.ChildCount - 1, tabName); + } + + return tabContainer; + } + + private BoxContainer CreateBoxContainerForTab(Dictionary> groups) + { + var boxContainer = new BoxContainer() + { + HorizontalExpand = true, + Orientation = BoxContainer.LayoutOrientation.Vertical + }; + + foreach (var group in groups) + { + var buttonContainer = CreateButtonContainerForGroup(group.Value); + boxContainer.AddChild(buttonContainer); + } + + return boxContainer; + } + + private GridContainer CreateButtonContainerForGroup(List phrases) + { + var loc = IoCManager.Resolve(); + var buttonContainer = CreateButtonContainer(); + foreach (var phrase in phrases) + { + var text = loc.GetString(phrase.Text); + var button = CreatePhraseButton(text, phrase.StyleClass); + button.OnPressed += _ => OnPhraseButtonPressed(phrase.ID); + buttonContainer.AddChild(button); + } + return buttonContainer; + } + + private static GridContainer CreateButtonContainer() + { + var buttonContainer = new GridContainer + { + Margin = new Thickness(10), + Columns = 4 + }; + + return buttonContainer; + } + + private static Button CreatePhraseButton(string text, string styleClass) + { + var buttonWidth = GetButtonWidth(); + var phraseButton = new Button + { + Access = AccessLevel.Public, + MaxSize = new Vector2(buttonWidth, buttonWidth), + ClipText = false, + HorizontalExpand = true, + StyleClasses = { styleClass } + }; + + var buttonLabel = new RichTextLabel + { + Margin = new Thickness(0, 5), + StyleClasses = { "WhiteText" } + }; + + buttonLabel.SetMessage(text); + phraseButton.AddChild(buttonLabel); + return phraseButton; + } + + private static int GetButtonWidth() + { + var spaceWidth = 10; + var parentWidth = 540; + var columnCount = 4; + + var paddingSize = spaceWidth * 2; + var gutterScale = (columnCount - 1) / columnCount; + var columnWidth = (parentWidth - paddingSize) / columnCount; + var buttonWidth = columnWidth - spaceWidth * gutterScale; + return buttonWidth; + } + + private void OnPhraseButtonPressed(string phraseId) + { + PhraseButtonPressed?.Invoke(phraseId); + } +} diff --git a/Content.Client/Stylesheets/StyleNano.cs b/Content.Client/Stylesheets/StyleNano.cs index 2b4e3657d6..6e99dd7e0c 100644 --- a/Content.Client/Stylesheets/StyleNano.cs +++ b/Content.Client/Stylesheets/StyleNano.cs @@ -156,6 +156,35 @@ public sealed class StyleNano : StyleBase public static readonly Color ChatBackgroundColor = Color.FromHex("#25252ADD"); + // DeltaV - AAC button variables + public static readonly string CommandButtonClass = "CommandButton"; + public static readonly string EngineeringButtonClass = "EngineeringButton"; + public static readonly string EpistemicsButtonClass = "EpistemicsButton"; + public static readonly string JusticeButtonClass = "JusticeButton"; + public static readonly string LogisticsButtonClass = "LogisticsButton"; + public static readonly string MedicalButtonClass = "MedicalButton"; + public static readonly string SecurityButtonClass = "SecurityButton"; + public static readonly string ServiceButtonClass = "ServiceButton"; + + // DeltaV - AAC button colors + public static readonly Color CommandButtonColorDefault = Color.FromHex("#404A58"); + public static readonly Color CommandColorHovered = Color.FromHex("#4F587B"); + public static readonly Color EngineeringButtonColorDefault = Color.FromHex("#77684B"); + public static readonly Color EngineeringColorHovered = Color.FromHex("#776D71"); + public static readonly Color EpistemicsButtonColorDefault = Color.FromHex("#6F5973"); + public static readonly Color EpistemicsColorHovered = Color.FromHex("#71638E"); + public static readonly Color LogisticsButtonColorDefault = Color.FromHex("#61503A"); + public static readonly Color LogisticsColorHovered = Color.FromHex("#675C64"); + public static readonly Color JusticeButtonColorDefault = Color.FromHex("#4F3D4C"); + public static readonly Color JusticeColorHovered = Color.FromHex("#5C4B5A"); + public static readonly Color MedicalButtonColorDefault = Color.FromHex("#49687D"); + public static readonly Color MedicalColorHovered = Color.FromHex("#556E95"); + public static readonly Color SecurityButtonColorDefault = Color.FromHex("#724449"); + public static readonly Color SecurityColorHovered = Color.FromHex("#745370"); + public static readonly Color ServiceButtonColorDefault = Color.FromHex("#607952"); + public static readonly Color ServiceColorHovered = Color.FromHex("#667A76"); + // End DeltaV + //Bwoink public const string StyleClassPinButtonPinned = "pinButtonPinned"; public const string StyleClassPinButtonUnpinned = "pinButtonUnpinned"; @@ -1643,6 +1672,88 @@ public StyleNano(IResourceCache resCache) : base(resCache) BackgroundColor = FancyTreeSelectedRowColor, }), + // DeltaV - AAC button styles + Element() + .Class(CommandButtonClass) + .Pseudo(ContainerButton.StylePseudoClassNormal) + .Prop(Control.StylePropertyModulateSelf, CommandButtonColorDefault), + + Element() + .Class(CommandButtonClass) + .Pseudo(ContainerButton.StylePseudoClassHover) + .Prop(Control.StylePropertyModulateSelf, CommandColorHovered), + + Element() + .Class(EngineeringButtonClass) + .Pseudo(ContainerButton.StylePseudoClassNormal) + .Prop(Control.StylePropertyModulateSelf, EngineeringButtonColorDefault), + + Element() + .Class(EngineeringButtonClass) + .Pseudo(ContainerButton.StylePseudoClassHover) + .Prop(Control.StylePropertyModulateSelf, EngineeringColorHovered), + + Element() + .Class(EpistemicsButtonClass) + .Pseudo(ContainerButton.StylePseudoClassNormal) + .Prop(Control.StylePropertyModulateSelf, EpistemicsButtonColorDefault), + + Element() + .Class(EpistemicsButtonClass) + .Pseudo(ContainerButton.StylePseudoClassHover) + .Prop(Control.StylePropertyModulateSelf, EpistemicsColorHovered), + + Element() + .Class(LogisticsButtonClass) + .Pseudo(ContainerButton.StylePseudoClassNormal) + .Prop(Control.StylePropertyModulateSelf, LogisticsButtonColorDefault), + + Element() + .Class(LogisticsButtonClass) + .Pseudo(ContainerButton.StylePseudoClassHover) + .Prop(Control.StylePropertyModulateSelf, LogisticsColorHovered), + + Element() + .Class(MedicalButtonClass) + .Pseudo(ContainerButton.StylePseudoClassNormal) + .Prop(Control.StylePropertyModulateSelf, MedicalButtonColorDefault), + + Element() + .Class(MedicalButtonClass) + .Pseudo(ContainerButton.StylePseudoClassHover) + .Prop(Control.StylePropertyModulateSelf, MedicalColorHovered), + + Element() + .Class(SecurityButtonClass) + .Pseudo(ContainerButton.StylePseudoClassNormal) + .Prop(Control.StylePropertyModulateSelf, SecurityButtonColorDefault), + + Element() + .Class(SecurityButtonClass) + .Pseudo(ContainerButton.StylePseudoClassHover) + .Prop(Control.StylePropertyModulateSelf, SecurityColorHovered), + + Element() + .Class(ServiceButtonClass) + .Pseudo(ContainerButton.StylePseudoClassNormal) + .Prop(Control.StylePropertyModulateSelf, ServiceButtonColorDefault), + + Element() + .Class(ServiceButtonClass) + .Pseudo(ContainerButton.StylePseudoClassHover) + .Prop(Control.StylePropertyModulateSelf, ServiceColorHovered), + + Element() + .Class(JusticeButtonClass) + .Pseudo(ContainerButton.StylePseudoClassNormal) + .Prop(Control.StylePropertyModulateSelf, JusticeButtonColorDefault), + + Element() + .Class(JusticeButtonClass) + .Pseudo(ContainerButton.StylePseudoClassHover) + .Prop(Control.StylePropertyModulateSelf, JusticeColorHovered), + // End DeltaV + // Silicon law edit ui Element