Skip to content
This repository has been archived by the owner on Nov 1, 2024. It is now read-only.

Пу-пу-пу #7

Merged
merged 25 commits into from
Apr 4, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 3 additions & 2 deletions Content.Server/GameTicking/GameTicker.Spawning.cs
Original file line number Diff line number Diff line change
Expand Up @@ -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<OwOAccentComponent>(mob);
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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 _))
{
Expand Down
2 changes: 1 addition & 1 deletion Content.Shared/Humanoid/NamingSystem.cs
Original file line number Diff line number Diff line change
Expand Up @@ -76,4 +76,4 @@ public string GetLastName(SpeciesPrototype speciesProto, Gender? gender = null)
}
// Corvax-LastnameGender-End
}
}
}
41 changes: 23 additions & 18 deletions Content.Shared/Humanoid/Prototypes/SpeciesPrototype.cs
Original file line number Diff line number Diff line change
Expand Up @@ -15,23 +15,23 @@ public sealed partial class SpeciesPrototype : IPrototype
/// <summary>
/// User visible name of the species.
/// </summary>
[DataField("name", required: true)]
[DataField(required: true)]
public string Name { get; private set; } = default!;

/// <summary>
/// Descriptor. Unused...? This is intended
/// for an eventual integration into IdentitySystem
/// (i.e., young human person, young lizard person, etc.)
/// </summary>
[DataField("descriptor")]
[DataField]
public string Descriptor { get; private set; } = "humanoid";

/// <summary>
/// Whether the species is available "at round start" (In the character editor)
/// </summary>
[DataField("roundStart", required: true)]
[DataField(required: true)]
public bool RoundStart { get; private set; } = false;

// Corvax-Sponsors-Start
/// <summary>
/// Whether the species is available only for sponsors
Expand All @@ -55,14 +55,14 @@ public sealed partial class SpeciesPrototype : IPrototype
/// <summary>
/// Default skin tone for this species. This applies for non-human skin tones.
/// </summary>
[DataField("defaultSkinTone")]
[DataField]
public Color DefaultSkinTone { get; private set; } = Color.White;

/// <summary>
/// Default human skin tone for this species. This applies for human skin tones.
/// See <see cref="SkinColor.HumanSkinTone"/> for the valid range of skin tones.
/// </summary>
[DataField("defaultHumanSkinTone")]
[DataField]
public int DefaultHumanSkinTone { get; private set; } = 20;

/// <summary>
Expand All @@ -74,25 +74,25 @@ public sealed partial class SpeciesPrototype : IPrototype
/// <summary>
/// Humanoid species variant used by this entity.
/// </summary>
[DataField("prototype", required: true, customTypeSerializer:typeof(PrototypeIdSerializer<EntityPrototype>))]
[DataField(required: true, customTypeSerializer:typeof(PrototypeIdSerializer<EntityPrototype>))]
public string Prototype { get; private set; } = default!;

/// <summary>
/// Prototype used by the species for the dress-up doll in various menus.
/// </summary>
[DataField("dollPrototype", required: true, customTypeSerializer:typeof(PrototypeIdSerializer<EntityPrototype>))]
[DataField(required: true, customTypeSerializer:typeof(PrototypeIdSerializer<EntityPrototype>))]
public string DollPrototype { get; private set; } = default!;

/// <summary>
/// Method of skin coloration used by the species.
/// </summary>
[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
Expand All @@ -103,43 +103,48 @@ 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<Sex> Sexes { get; private set; } = new() { Sex.Male, Sex.Female };

/// <summary>
/// Characters younger than this are too young to be hired by Nanotrasen.
/// </summary>
[DataField("minAge")]
[DataField]
public int MinAge = 18;

/// <summary>
/// Characters younger than this appear young.
/// </summary>
[DataField("youngAge")]
[DataField]
public int YoungAge = 30;

/// <summary>
/// Characters older than this appear old. Characters in between young and old age appear middle aged.
/// </summary>
[DataField("oldAge")]
[DataField]
public int OldAge = 60;

/// <summary>
/// Characters cannot be older than this. Only used for restrictions...
/// although imagine if ghosts could age people WYCI...
/// </summary>
[DataField("maxAge")]
[DataField]
public int MaxAge = 120;

/// <summary>
/// The Style used for the guidebook info link in the character profile editor
/// </summary>
[DataField]
public string GuideBookIcon = "SpeciesInfoDefault";
}

public enum SpeciesNaming : byte
{
First,
FirstLast,
FirstDashFirst,
XnoY,
TheFirstofLast,
}
12 changes: 6 additions & 6 deletions Resources/Locale/ru-RU/chat/managers/chat-manager.ftl
Original file line number Diff line number Diff line change
Expand Up @@ -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 }
Expand Down
Loading
Loading