2024-11-04 13:41:09 +03:00
using Content.Shared.Mind ;
2024-07-24 20:52:05 +03:00
using Content.Shared.Random ;
using Content.Shared.Roles ;
2024-07-09 08:31:24 +03:00
using Robust.Shared.Prototypes ;
namespace Content.Server._CP14.GameTicking.Rules.Components ;
/// <summary>
2024-10-20 21:20:16 +03:00
/// A rule that assigns common goals to different roles. Common objectives are generated once at the beginning of a round and are shared between players.
2024-07-09 08:31:24 +03:00
/// </summary>
2024-11-04 13:41:09 +03:00
[RegisterComponent, Access(typeof(CP14CommonObjectivesRule))]
2024-10-20 21:20:16 +03:00
public sealed partial class CP14CommonObjectivesRuleComponent : Component
2024-07-09 08:31:24 +03:00
{
[DataField]
2024-10-20 21:20:16 +03:00
public Dictionary < ProtoId < JobPrototype > , List < ProtoId < WeightedRandomPrototype > > > JobObjectives = new ( ) ;
2024-07-24 20:52:05 +03:00
[DataField]
public Dictionary < ProtoId < DepartmentPrototype > , List < ProtoId < WeightedRandomPrototype > > > DepartmentObjectives = new ( ) ;
2024-11-04 13:41:09 +03:00
/// <summary>
/// all tasks must have a “mind”. This mind has all the common tasks for compatibility
/// </summary>
[DataField]
public Entity < MindComponent > ? StationMind ;
2024-07-09 08:31:24 +03:00
}