Refactor minds to be entities with components, make roles components (#19591)
Co-authored-by: ShadowCommander <10494922+ShadowCommander@users.noreply.github.com> Co-authored-by: DrSmugleaf <DrSmugleaf@users.noreply.github.com>
This commit is contained in:
@@ -1,10 +1,11 @@
|
||||
using Content.Shared.Roles;
|
||||
using Content.Server.Mind;
|
||||
using Content.Server.Objectives.Interfaces;
|
||||
using Content.Server.Roles.Jobs;
|
||||
using Content.Shared.Roles;
|
||||
using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype;
|
||||
|
||||
namespace Content.Server.Objectives.Requirements
|
||||
{
|
||||
|
||||
[DataDefinition]
|
||||
public sealed partial class NotRoleRequirement : IObjectiveRequirement
|
||||
{
|
||||
@@ -14,12 +15,14 @@ namespace Content.Server.Objectives.Requirements
|
||||
/// <summary>
|
||||
/// This requirement is met if the traitor is NOT the roleId, and fails if they are.
|
||||
/// </summary>
|
||||
public bool CanBeAssigned(Mind.Mind mind)
|
||||
public bool CanBeAssigned(EntityUid mindId, MindComponent mind)
|
||||
{
|
||||
if (mind.CurrentJob == null) // no job no problems
|
||||
// TODO ECS this shit i keep seeing shitcode everywhere
|
||||
var entities = IoCManager.Resolve<IEntityManager>();
|
||||
if (!entities.TryGetComponent(mindId, out JobComponent? job))
|
||||
return true;
|
||||
|
||||
return (mind.CurrentJob.Prototype.ID != _roleId);
|
||||
return job.PrototypeId != _roleId;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user