Skip to content

Commit

Permalink
don't apply traits for borg and ai (space-wizards#31990)
Browse files Browse the repository at this point in the history
* doesn't apply traits for borg or ai

* add some comment and summaries

* weh

weh

* well ok

Co-authored-by: Ed <96445749+TheShuEd@users.noreply.github.com>

---------

Co-authored-by: Ed <96445749+TheShuEd@users.noreply.github.com>
  • Loading branch information
lzk228 and TheShuEd authored Sep 12, 2024
1 parent 3201353 commit 8b2ea59
Show file tree
Hide file tree
Showing 3 changed files with 32 additions and 0 deletions.
9 changes: 9 additions & 0 deletions Content.Server/Traits/TraitSystem.cs
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
using Content.Server.GameTicking;
using Content.Shared.Hands.Components;
using Content.Shared.Hands.EntitySystems;
using Content.Shared.Roles;
using Content.Shared.Traits;
using Content.Shared.Whitelist;
using Robust.Shared.Prototypes;
Expand All @@ -24,6 +25,14 @@ public override void Initialize()
// When the player is spawned in, add all trait components selected during character creation
private void OnPlayerSpawnComplete(PlayerSpawnCompleteEvent args)
{
// Check if player's job allows to apply traits
if (args.JobId == null ||
!_prototypeManager.TryIndex<JobPrototype>(args.JobId ?? string.Empty, out var protoJob) ||
!protoJob.ApplyTraits)
{
return;
}

foreach (var traitId in args.Profile.TraitPreferences)
{
if (!_prototypeManager.TryIndex<TraitPrototype>(traitId, out var traitPrototype))
Expand Down
21 changes: 21 additions & 0 deletions Content.Shared/Roles/JobPrototype.cs
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,9 @@ public sealed partial class JobPrototype : IPrototype
[DataField("playTimeTracker", required: true, customTypeSerializer: typeof(PrototypeIdSerializer<PlayTimeTrackerPrototype>))]
public string PlayTimeTracker { get; private set; } = string.Empty;

/// <summary>
/// Who is the supervisor for this job.
/// </summary>
[DataField("supervisors")]
public string Supervisors { get; private set; } = "nobody";

Expand All @@ -41,18 +44,36 @@ public sealed partial class JobPrototype : IPrototype
[ViewVariables(VVAccess.ReadOnly)]
public string? LocalizedDescription => Description is null ? null : Loc.GetString(Description);

/// <summary>
/// Requirements for the job.
/// </summary>
[DataField, Access(typeof(SharedRoleSystem), Other = AccessPermissions.None)]
public HashSet<JobRequirement>? Requirements;

/// <summary>
/// When true - the station will have anouncement about arrival of this player.
/// </summary>
[DataField("joinNotifyCrew")]
public bool JoinNotifyCrew { get; private set; } = false;

/// <summary>
/// When true - the player will recieve a message about importancy of their job.
/// </summary>
[DataField("requireAdminNotify")]
public bool RequireAdminNotify { get; private set; } = false;

/// <summary>
/// Should this job appear in preferences menu?
/// </summary>
[DataField("setPreference")]
public bool SetPreference { get; private set; } = true;

/// <summary>
/// Should the selected traits be applied for this job?
/// </summary>
[DataField]
public bool ApplyTraits { get; private set; } = true;

/// <summary>
/// Whether this job should show in the ID Card Console.
/// If set to null, it will default to SetPreference's value.
Expand Down
2 changes: 2 additions & 0 deletions Resources/Prototypes/Roles/Jobs/Science/borg.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
icon: JobIconStationAi
supervisors: job-supervisors-rd
jobEntity: StationAiBrain
applyTraits: false

- type: job
id: Borg
Expand All @@ -25,3 +26,4 @@
icon: JobIconBorg
supervisors: job-supervisors-rd
jobEntity: PlayerBorgGeneric
applyTraits: false

0 comments on commit 8b2ea59

Please sign in to comment.