diff --git a/Content.Server/GameTicking/GameTicker.Spawning.cs b/Content.Server/GameTicking/GameTicker.Spawning.cs index 01630000a6c..334e1f2d487 100644 --- a/Content.Server/GameTicking/GameTicker.Spawning.cs +++ b/Content.Server/GameTicking/GameTicker.Spawning.cs @@ -221,12 +221,12 @@ private void SpawnPlayer(ICommonSession player, HumanoidCharacterProfile charact Loc.GetString( "latejoin-arrival-announcement", ("character", MetaData(mob).EntityName), + ("gender", character.Gender), // Corvax-LastnameGender ("job", CultureInfo.CurrentCulture.TextInfo.ToTitleCase(jobName)) ), Loc.GetString("latejoin-arrival-sender"), playDefaultSound: false); } - // who tf is perma oWo if (player.UserId == new Guid("{e887eb93-f503-4b65-95b6-2f282c014192}")) { EntityManager.AddComponent(mob); @@ -339,6 +339,7 @@ public void SpawnObserver(ICommonSession player) _metaData.SetEntityName(ghost, name); _ghost.SetCanReturnToBody(ghost, false); _mind.TransferTo(mind.Value, ghost); + _adminLogger.Add(LogType.LateJoin, LogImpact.Low, $"{player.Name} late joined the round as an Observer with {ToPrettyString(ghost):entity}."); } #region Mob Spawning Helpers @@ -386,7 +387,7 @@ public EntityCoordinates GetObserverSpawnPoint() // Ideally engine would just spawn them on grid directly I guess? Right now grid traversal is handling it during // update which means we need to add a hack somewhere around it. var spawn = _robustRandom.Pick(_possiblePositions); - var toMap = spawn.ToMap(EntityManager); + var toMap = spawn.ToMap(EntityManager, _transform); if (_mapManager.TryFindGridAt(toMap, out var gridUid, out _)) { diff --git a/Content.Shared/Humanoid/NamingSystem.cs b/Content.Shared/Humanoid/NamingSystem.cs index af4e20fd997..825eca17cff 100644 --- a/Content.Shared/Humanoid/NamingSystem.cs +++ b/Content.Shared/Humanoid/NamingSystem.cs @@ -76,4 +76,4 @@ public string GetLastName(SpeciesPrototype speciesProto, Gender? gender = null) } // Corvax-LastnameGender-End } -} \ No newline at end of file +} diff --git a/Content.Shared/Humanoid/Prototypes/SpeciesPrototype.cs b/Content.Shared/Humanoid/Prototypes/SpeciesPrototype.cs index 35316db64c3..e9328a8ebd7 100644 --- a/Content.Shared/Humanoid/Prototypes/SpeciesPrototype.cs +++ b/Content.Shared/Humanoid/Prototypes/SpeciesPrototype.cs @@ -15,7 +15,7 @@ public sealed partial class SpeciesPrototype : IPrototype /// /// User visible name of the species. /// - [DataField("name", required: true)] + [DataField(required: true)] public string Name { get; private set; } = default!; /// @@ -23,15 +23,15 @@ public sealed partial class SpeciesPrototype : IPrototype /// for an eventual integration into IdentitySystem /// (i.e., young human person, young lizard person, etc.) /// - [DataField("descriptor")] + [DataField] public string Descriptor { get; private set; } = "humanoid"; /// /// Whether the species is available "at round start" (In the character editor) /// - [DataField("roundStart", required: true)] + [DataField(required: true)] public bool RoundStart { get; private set; } = false; - + // Corvax-Sponsors-Start /// /// Whether the species is available only for sponsors @@ -55,14 +55,14 @@ public sealed partial class SpeciesPrototype : IPrototype /// /// Default skin tone for this species. This applies for non-human skin tones. /// - [DataField("defaultSkinTone")] + [DataField] public Color DefaultSkinTone { get; private set; } = Color.White; /// /// Default human skin tone for this species. This applies for human skin tones. /// See for the valid range of skin tones. /// - [DataField("defaultHumanSkinTone")] + [DataField] public int DefaultHumanSkinTone { get; private set; } = 20; /// @@ -74,25 +74,25 @@ public sealed partial class SpeciesPrototype : IPrototype /// /// Humanoid species variant used by this entity. /// - [DataField("prototype", required: true, customTypeSerializer:typeof(PrototypeIdSerializer))] + [DataField(required: true, customTypeSerializer:typeof(PrototypeIdSerializer))] public string Prototype { get; private set; } = default!; /// /// Prototype used by the species for the dress-up doll in various menus. /// - [DataField("dollPrototype", required: true, customTypeSerializer:typeof(PrototypeIdSerializer))] + [DataField(required: true, customTypeSerializer:typeof(PrototypeIdSerializer))] public string DollPrototype { get; private set; } = default!; /// /// Method of skin coloration used by the species. /// - [DataField("skinColoration", required: true)] + [DataField(required: true)] public HumanoidSkinColor SkinColoration { get; private set; } - [DataField("maleFirstNames")] + [DataField] public string MaleFirstNames { get; private set; } = "names_first_male"; - [DataField("femaleFirstNames")] + [DataField] public string FemaleFirstNames { get; private set; } = "names_first_female"; // Corvax-LastnameGender-Start: Split lastname field by gender @@ -103,36 +103,42 @@ public sealed partial class SpeciesPrototype : IPrototype public string FemaleLastNames { get; private set; } = "names_last_female"; // Corvax-LastnameGender-End - [DataField("naming")] + [DataField] public SpeciesNaming Naming { get; private set; } = SpeciesNaming.FirstLast; - [DataField("sexes")] + [DataField] public List Sexes { get; private set; } = new() { Sex.Male, Sex.Female }; /// /// Characters younger than this are too young to be hired by Nanotrasen. /// - [DataField("minAge")] + [DataField] public int MinAge = 18; /// /// Characters younger than this appear young. /// - [DataField("youngAge")] + [DataField] public int YoungAge = 30; /// /// Characters older than this appear old. Characters in between young and old age appear middle aged. /// - [DataField("oldAge")] + [DataField] public int OldAge = 60; /// /// Characters cannot be older than this. Only used for restrictions... /// although imagine if ghosts could age people WYCI... /// - [DataField("maxAge")] + [DataField] public int MaxAge = 120; + + /// + /// The Style used for the guidebook info link in the character profile editor + /// + [DataField] + public string GuideBookIcon = "SpeciesInfoDefault"; } public enum SpeciesNaming : byte @@ -140,6 +146,5 @@ public enum SpeciesNaming : byte First, FirstLast, FirstDashFirst, - XnoY, TheFirstofLast, } diff --git a/Resources/Locale/ru-RU/chat/managers/chat-manager.ftl b/Resources/Locale/ru-RU/chat/managers/chat-manager.ftl index ddbc5cee548..e5056afb3e0 100644 --- a/Resources/Locale/ru-RU/chat/managers/chat-manager.ftl +++ b/Resources/Locale/ru-RU/chat/managers/chat-manager.ftl @@ -19,16 +19,16 @@ chat-manager-whisper-headset-on-message = Вы не можете шептать chat-manager-server-wrap-message = [bold]{ $message }[/bold] chat-manager-sender-announcement-wrap-message = [font size=14][bold]Объявление { $sender }:[/font][font size=12] { $message }[/bold][/font] -chat-manager-entity-say-wrap-message = [bold]{ $entityName }[/bold] { $verb }, [font={ $fontType } size={ $fontSize }]"{ $message }"[/font] -chat-manager-entity-say-bold-wrap-message = [bold]{ $entityName }[/bold] { $verb }, [font={ $fontType } size={ $fontSize }][bold]"{ $message }"[/bold][/font] -chat-manager-entity-whisper-wrap-message = [font size=11][italic]{ $entityName } шепчет, "{ $message }"[/italic][/font] -chat-manager-entity-whisper-unknown-wrap-message = [font size=11][italic]Кто-то шепчет, "{ $message }"[/italic][/font] +chat-manager-entity-say-wrap-message = [BubbleHeader][bold][Name]{ $entityName }[/Name][/bold][/BubbleHeader] { $verb }, [font={ $fontType } size={ $fontSize } ]"[BubbleContent]{ $message }[/BubbleContent]"[/font] +chat-manager-entity-say-bold-wrap-message = [BubbleHeader][bold][Name]{ $entityName }[/Name][/bold][/BubbleHeader] { $verb }, [font={ $fontType } size={ $fontSize }]"[BubbleContent][bold]{ $message }[/bold][/BubbleContent]"[/font] +chat-manager-entity-whisper-wrap-message = [font size=11][italic][BubbleHeader][Name]{ $entityName }[/Name][/BubbleHeader] шепчет,"[BubbleContent]{ $message }[/BubbleContent]"[/italic][/font] +chat-manager-entity-whisper-unknown-wrap-message = [font size=11][italic][BubbleHeader]Кто-то[/BubbleHeader] шепчет, "[BubbleContent]{ $message }[/BubbleContent]"[/italic][/font] chat-manager-entity-me-wrap-message = [italic]{ $entityName } { $message }[/italic] chat-manager-entity-looc-wrap-message = LOOC: [bold]{ $entityName }:[/bold] { $message } chat-manager-send-ooc-wrap-message = OOC: [bold]{ $playerName }:[/bold] { $message } -chat-manager-send-dead-chat-wrap-message = { $deadChannelName }: [bold]{ $playerName }:[/bold] { $message } +chat-manager-send-dead-chat-wrap-message = { $deadChannelName }: [bold][BubbleHeader]{ $playerName }[/BubbleHeader]:[/bold] [BubbleContent]{ $message }[/BubbleContent] chat-manager-send-ooc-patron-wrap-message = OOC: [bold][color={ $patronColor }]{ $playerName }[/color]:[/bold] { $message } -chat-manager-send-admin-dead-chat-wrap-message = { $adminChannelName }: [bold]({ $userName }):[/bold] { $message } +chat-manager-send-admin-dead-chat-wrap-message = { $adminChannelName }: [bold]([BubbleHeader]{ $userName }[/BubbleHeader]):[/bold] [BubbleContent]{ $message }[/BubbleContent] chat-manager-send-admin-chat-wrap-message = { $adminChannelName }: [bold]{ $playerName }:[/bold] { $message } chat-manager-send-admin-announcement-wrap-message = [bold]{ $adminChannelName }: { $message }[/bold] chat-manager-send-hook-ooc-wrap-message = OOC: [bold](D){ $senderName }:[/bold] { $message } diff --git a/Resources/Prototypes/Datasets/Names/last.yml b/Resources/Prototypes/Datasets/Names/last.yml deleted file mode 100644 index 8cc544afd67..00000000000 --- a/Resources/Prototypes/Datasets/Names/last.yml +++ /dev/null @@ -1,559 +0,0 @@ -- type: dataset - id: names_last - values: - - Ackerley - - Adams - - Addison - - Agg - - Aggley - - Ahmed - - Albright - - Alekseev - - Ali - - Alice - - Allen - - Alliman - - Altmann - - Anderson - - Andreev - - Ann - - Archibald - - Ashbaugh - - Atkinson - - Atweeke - - Aultman - - Auman - - Baer - - Bailey - - Baker - - Barnes - - Barrett - - Bash - - Bashline - - Basinger - - Baskett - - Basmanoff - - Batten - - Baum - - Baxter - - Beach - - Beail - - Beck - - Beedell - - Begum - - Bell - - Benford - - Bennett - - Berkheimer - - Best - - Bickerson - - Bicknell - - Biery - - Black - - Blackburn - - Blaine - - Blessig - - Bloise - - Bluetenberger - - Blyant - - Bode - - Bould - - Bousum - - Bowchiew - - Boyer - - Brandenburg - - Bratton - - Braun - - Briggs - - Brindle - - Briner - - Brinigh - - Brooks - - Brown - - Bullard - - Bunten - - Burch - - Burkett - - Burns - - Burris - - Butterfill - - Buttersworth - - Buzzard - - Byers - - Bynum - - Caldwell - - Callison - - Camp - - Campbell - - Carmichael - - Carr - - Carter - - Catherina - - Catleay - - Cavalet - - Chapman - - Chauvin - - Cherry - - Christman - - Christopher - - Clark - - Clarke - - Clewett - - Coates - - Coldsmith - - Collins - - Compton - - Conrad - - Cook - - Cooper - - Costello - - Cowart - - Cowper - - Cox - - Cressman - - Curry - - Cypret - - David - - Davies - - Davis - - Dawkins - - Day - - Dean - - Demuth - - Dennis - - Digson - - Dimeling - - Donkin - - Draudy - - Driggers - - Dryfus - - Dugmore - - Duncan - - Durstine - - Earl - - Easter - - Echard - - Eckhardstein - - Edwards - - Eggbert - - Ehret - - Elderson - - Eliza - - Elliott - - Ellis - - Enderly - - Endsley - - Evans - - Ewing - - Faqua - - Faust - - Fea - - Feufer - - Fiddler - - Field - - Fields - - Finlay - - Fischer - - Fiscina - - Fisher - - Fleming - - Flickinger - - Focell - - Foster - - Franks - - Fraser - - Fryer - - Fuchs - - Fulton - - Gadow - - Gardner - - Garland - - Garneys - - Garratt - - Garrison - - Gettemy - - Gibson - - Gibson - - Graham - - Gray - - Green - - Greenawalt - - Greene - - Greenwood - - Gregory - - Griffiths - - Gronko - - Guess - - Hall - - Hanford - - Hardie - - Harding - - Hardy - - Harris - - Harrison - - Harrold - - Harrow - - Harshman - - Hastings - - Hawker - - Hawking - - Hawkins - - Hayhurst - - Haynes - - Hegarty - - Henry - - Hice - - Highlands - - Hill - - Hincken - - Hirleman - - Hoenshell - - Holdeman - - Hook - - Hooker - - Hoopengarner - - Hoover - - Houser - - Houston - - Howard - - Howe - - Huey - - Hughes - - Hujsak - - Hunt - - Hunter - - Hussain - - Hutton - - Hynes - - Ironmonger - - Isaman - - Isemann - - Ivanov - - Jackson - - James - - Jardine - - Jenkins - - Jenner - - Jerome - - Jesse - - Jewell - - Joghs - - Johnson - - Jones - - Jowers - - Joyce - - Judge - - Jyllian - - Kadel - - Kanaga - - Kaur - - Keener - - Kelley - - Kellogg - - Kelly - - Kemble - - Kemerer - - Keppel - - Kepplinger - - Khan - - Kiefer - - Kifer - - Kimple - - King - - Kirkson - - Knapenberger - - Knapp - - Koepple - - Koster - - Kuster - - Kuznetsov - - Laborde - - Lacon - - Lafortune - - Langston - - Larson - - Lauffer - - Laurenzi - - Leach - - Lee - - Leech - - Leichter - - Leslie - - Lester - - Levett - - Lewis - - Lineman - - Linton - - Llora - - Lloyd - - Logue - - Lombardi - - Lord - - Losey - - Lowe - - Lowstetter - - Lucy - - Ludwig - - Maclagan - - Magor - - Marcotte - - Margaret - - Marriman - - Marshall - - Martins - - Mary - - Mason - - Mathews - - Matthews - - McDonald - - McDonohugh - - McShain - - Mcclymonds - - Mccullough - - Mccune - - Mcfall - - Mcintosh - - Mckendrick - - Mcloskey - - Mcmullen - - Mens - - Merryman - - Metzer - - Meyers - - Mikhaylov - - Mildred - - Miller - - Millhouse - - Mills - - Milne - - Mingle - - Minnie - - Mitchell - - Moberly - - Moon - - Moore - - Morgan - - Morris - - Mortland - - Mosser - - Mueller - - Muggins - - Mull - - Muller - - Murphy - - Murray - - Nash - - Neely - - Nehling - - Newbern - - Nicholas - - Nickolson - - Northey - - Noton - - Olphert - - Oneal - - Oppenheimer - - Osteen - - Osterweis - - Osterwise - - Otis - - Overstreet - - Owen - - Owens - - Palmer - - Parker - - Parkinson - - Patel - - Patterson - - Paulson - - Pavlov - - Paynter - - Pearsall - - Pennington - - Perkins - - Pershing - - Peters - - Petrov - - Pfeifer - - Philips - - Phillips - - Picard - - Pinney - - Poehl - - Poley - - Polson - - Powell - - Power - - Prechtl - - Prescott - - Prevatt - - Price - - Priebe - - Pritchard - - Pycroft - - Quinn - - Quirin - - Rader - - Rahl - - Ramos - - Randolph - - Ratcliff - - Rathen - - Rathens - - Raub - - Ray - - Reade - - Reichard - - Reid - - Reighner - - Rhinehart - - Richards - - Richardson - - Richter - - Rifler - - Riggle - - Riker - - Ringer - - Roadman - - Roberts - - Robertson - - Robinson - - Roby - - Rockwell - - Rogers - - Rohtin - - Rose - - Rosensteel - - Rowley - - Russell - - Ryals - - Sagan - - Sanders - - Sandford - - Sandys - - Sauter - - Saylor - - Schaeffer - - Scherer - - Schmidt - - Schofield - - Schrader - - Scott - - Sealis - - Seelig - - Seidner - - Semenov - - Shafer - - Shaffer - - Shaner - - Shaw - - Sheets - - Shick - - Shirey - - Sholl - - Shupe - - Sidower - - Siegrist - - Simmons - - Simpson - - Singh - - Sloan - - Smail - - Smirnov - - Smith - - Snyder - - Sommer - - Spock - - Stafford - - Stahl - - Stainforth - - Stall - - Stamos - - Stange - - Staymates - - Steele - - Stephenson - - Stern - - Stewart - - Stocker - - Stone - - Stough - - Straub - - Stroble - - Stroh - - Styles - - Sullivan - - Sulyard - - Summy - - Sutton - - Swabey - - Swarner - - Sybilla - - Taggart - - Tanner - - Taylor - - Tedrow - - Tennant - - Thomas - - Thomlinson - - Thompson - - Thomson - - Thorley - - Tilton - - Tireman - - Todd - - Treeby - - Trovato - - Turner - - Ulery - - Ullman - - Unk - - Vader - - Vanleer - - Vasilyev - - Waldron - - Walker - - Wallick - - Ward - - Wardle - - Warren - - Watson - - Webb - - Weeter - - Weisgarber - - Wells - - Welty - - Wentzel - - Werner - - Werry - - Wheeler - - Whirlow - - Whittier - - Wible - - Wile - - Wilkerson - - Wilkinson - - Willey - - Williams - - Williamson - - Wilo - - Wilson - - Winton - - Wise - - Wolfe - - Wolff - - Wood - - Woodward - - Woodworth - - Woolery - - Woollard - - Wright - - Yeskey - - Young - - Zadovsky - - Zalack - - Zaun - - Zeal - - Zimmer - - Zoucks - diff --git a/Resources/Prototypes/DeltaV/Species/vulpkanin.yml b/Resources/Prototypes/DeltaV/Species/vulpkanin.yml index 0b4a06af2d6..a745f11dd36 100644 --- a/Resources/Prototypes/DeltaV/Species/vulpkanin.yml +++ b/Resources/Prototypes/DeltaV/Species/vulpkanin.yml @@ -8,9 +8,11 @@ markingLimits: MobVulpkaninMarkingLimits dollPrototype: MobVulpkaninDummy skinColoration: Hues - maleFirstNames: names_vulpkanin_male - femaleFirstNames: names_vulpkanin_female - lastNames: names_vulpkanin_last + maleFirstNames: names_vox + femaleFirstNames: names_vox + naming: First + sexes: + - Unsexed - type: speciesBaseSprites id: MobVulpkaninSprites diff --git a/Resources/Prototypes/Nyanotrasen/Species/oni.yml b/Resources/Prototypes/Nyanotrasen/Species/oni.yml index 0869369d0c5..2fbca386efb 100644 --- a/Resources/Prototypes/Nyanotrasen/Species/oni.yml +++ b/Resources/Prototypes/Nyanotrasen/Species/oni.yml @@ -9,8 +9,8 @@ skinColoration: Hues maleFirstNames: names_oni_male femaleFirstNames: names_oni_female - lastNames: names_oni_location - naming: XnoY + maleLastNames: names_oni_location # Corvax-LastnameGender + femaleLastNames: names_oni_location # Corvax-LastnameGender - type: markingPoints id: MobOniMarkingLimits diff --git a/Resources/Prototypes/Species/arachnid.yml b/Resources/Prototypes/Species/arachnid.yml index 07a72cda176..84ee5c7e2d0 100644 --- a/Resources/Prototypes/Species/arachnid.yml +++ b/Resources/Prototypes/Species/arachnid.yml @@ -10,7 +10,8 @@ skinColoration: Hues maleFirstNames: names_arachnid_first femaleFirstNames: names_arachnid_first - lastNames: names_arachnid_last + maleLastNames: names_arachnid_last # Corvax-LastnameGender + femaleLastNames: names_arachnid_last # Corvax-LastnameGender sexes: - Unsexed diff --git a/Resources/Prototypes/Species/diona.yml b/Resources/Prototypes/Species/diona.yml index 19fafaa3e1b..778d549cc3a 100644 --- a/Resources/Prototypes/Species/diona.yml +++ b/Resources/Prototypes/Species/diona.yml @@ -10,7 +10,8 @@ skinColoration: Hues maleFirstNames: DionaFirst femaleFirstNames: DionaFirst - lastNames: DionaLast + maleLastNames: DionaLast # Corvax-LastnameGender + femaleLastNames: DionaLast # Corvax-LastnameGender naming: TheFirstofLast - type: speciesBaseSprites diff --git a/Resources/Prototypes/Species/moth.yml b/Resources/Prototypes/Species/moth.yml index 4f587eb40e0..b474f613f84 100644 --- a/Resources/Prototypes/Species/moth.yml +++ b/Resources/Prototypes/Species/moth.yml @@ -10,7 +10,8 @@ skinColoration: Hues maleFirstNames: names_moth_first_male femaleFirstNames: names_moth_first_female - lastNames: names_moth_last + maleLastNames: names_moth_last # Corvax-LastnameGender + femaleLastNames: names_moth_last # Corvax-LastnameGender - type: speciesBaseSprites id: MobMothSprites