diff --git a/Content.Client/_CP14/WorldSprite/CP14WorldSpriteComponent.cs b/Content.Client/_CP14/WorldSprite/CP14WorldSpriteComponent.cs
deleted file mode 100644
index 135f27591b..0000000000
--- a/Content.Client/_CP14/WorldSprite/CP14WorldSpriteComponent.cs
+++ /dev/null
@@ -1,10 +0,0 @@
-namespace Content.Client._CP14.WorldSprite;
-
-///
-/// RUN, IF YOU SEE THE CODE TO THIS FUCKING THING, YOU'LL DIE ON THE SPOT.
-///
-[RegisterComponent]
-public sealed partial class CP14WorldSpriteComponent : Component
-{
- public bool Inited;
-}
diff --git a/Content.Client/_CP14/WorldSprite/CP14WorldSpriteSystem.cs b/Content.Client/_CP14/WorldSprite/CP14WorldSpriteSystem.cs
deleted file mode 100644
index e995ab7a93..0000000000
--- a/Content.Client/_CP14/WorldSprite/CP14WorldSpriteSystem.cs
+++ /dev/null
@@ -1,65 +0,0 @@
-using Content.Shared._CP14.WorldSprite;
-using Content.Shared.Throwing;
-using Robust.Client.GameObjects;
-using Robust.Shared.Map.Components;
-
-namespace Content.Client._CP14.WorldSprite;
-
-public sealed class CP14WorldSpriteSystem : EntitySystem
-{
- [Dependency] private readonly AppearanceSystem _appearance = default!;
-
- public override void Initialize()
- {
- base.Initialize();
-
-#if DEBUG
- SubscribeLocalEvent(OnComponentInit);
-#endif
-
- SubscribeLocalEvent(OnParentChanged);
- SubscribeLocalEvent(OnThrown);
- }
-
- public override void Update(float frameTime)
- {
- base.Update(frameTime);
-
- var query = EntityQueryEnumerator();
- while (query.MoveNext(out var uid, out var worldSpriteComponent))
- {
- if (worldSpriteComponent.Inited)
- continue;
-
- Update(uid);
- }
- }
-
-#if DEBUG
- private void OnComponentInit(Entity entity, ref ComponentInit args)
- {
- if (!HasComp(entity))
- Log.Error($"Requires an {nameof(AppearanceComponent)} for {entity}");
- }
-#endif
-
- private void OnParentChanged(Entity entity, ref EntParentChangedMessage args)
- {
- Update(entity);
- }
-
- private void OnThrown(Entity entity, ref ThrownEvent args)
- {
- // Idk, but throw don't call reparent
- Update(entity, args.User);
- }
-
- private void Update(EntityUid entity, EntityUid? parent = null)
- {
- parent ??= Transform(entity).ParentUid;
-
- var inWorld = HasComp(parent) || HasComp(parent);
-
- _appearance.SetData(entity, WorldSpriteVisualLayers.Layer, inWorld);
- }
-}
diff --git a/Content.Server/Entry/IgnoredComponents.cs b/Content.Server/Entry/IgnoredComponents.cs
index 5f18c5472a..c3cde76370 100644
--- a/Content.Server/Entry/IgnoredComponents.cs
+++ b/Content.Server/Entry/IgnoredComponents.cs
@@ -5,7 +5,6 @@ namespace Content.Server.Entry
{
public static string[] List => new[] {
"CP14WaveShader", // CP14 Wave shader
- "CP14WorldSprite", // CP14 World Sprite
"ConstructionGhost",
"IconSmooth",
"InteractionOutline",
diff --git a/Content.Server/Objectives/Components/StealAreaComponent.cs b/Content.Server/Objectives/Components/StealAreaComponent.cs
index 6139171753..4d7798f150 100644
--- a/Content.Server/Objectives/Components/StealAreaComponent.cs
+++ b/Content.Server/Objectives/Components/StealAreaComponent.cs
@@ -1,5 +1,4 @@
using Content.Server._CP14.Objectives.Systems;
-using Content.Server._CP14.StealArea;
using Content.Server.Objectives.Systems;
using Content.Server.Thief.Systems;
@@ -8,7 +7,7 @@ namespace Content.Server.Objectives.Components;
///
/// An abstract component that allows other systems to count adjacent objects as "stolen" when controlling other systems
///
-[RegisterComponent, Access(typeof(StealConditionSystem), typeof(ThiefBeaconSystem), typeof(CP14CurrencyCollectConditionSystem), typeof(CP14StealAreaAutoJobConnectSystem))] //CP14 add currency condition access
+[RegisterComponent, Access(typeof(StealConditionSystem), typeof(ThiefBeaconSystem), typeof(CP14CurrencyCollectConditionSystem))]
public sealed partial class StealAreaComponent : Component
{
[DataField]
diff --git a/Content.Server/_CP14/Demiplane/CP14DemiplaneSystem.Generation.cs b/Content.Server/_CP14/Demiplane/CP14DemiplaneSystem.Generation.cs
index de76e12a94..06958afa6c 100644
--- a/Content.Server/_CP14/Demiplane/CP14DemiplaneSystem.Generation.cs
+++ b/Content.Server/_CP14/Demiplane/CP14DemiplaneSystem.Generation.cs
@@ -115,8 +115,6 @@ public sealed partial class CP14DemiplaneSystem
demiplane = ev.Demiplane;
}
- _statistic.TrackAdd(generator.Comp.Statistic, 1);
-
if (demiplane is null)
return;
diff --git a/Content.Server/_CP14/Demiplane/CP14DemiplaneSystem.cs b/Content.Server/_CP14/Demiplane/CP14DemiplaneSystem.cs
index 1b3a15a004..6da24aa80b 100644
--- a/Content.Server/_CP14/Demiplane/CP14DemiplaneSystem.cs
+++ b/Content.Server/_CP14/Demiplane/CP14DemiplaneSystem.cs
@@ -1,5 +1,4 @@
using Content.Server._CP14.Demiplane.Components;
-using Content.Server._CP14.RoundStatistic;
using Content.Server.Chat.Managers;
using Content.Server.Chat.Systems;
using Content.Server.Flash;
@@ -33,7 +32,6 @@ public sealed partial class CP14DemiplaneSystem : CP14SharedDemiplaneSystem
[Dependency] private readonly FlashSystem _flash = default!;
[Dependency] private readonly IGameTiming _timing = default!;
[Dependency] private readonly SharedPopupSystem _popup = default!;
- [Dependency] private readonly CP14RoundStatTrackerSystem _statistic = default!;
[Dependency] private readonly ChatSystem _chat = default!;
[Dependency] private readonly IChatManager _chatManager = default!;
diff --git a/Content.Server/_CP14/Demiplane/Components/CP14DemiplaneDataComponent.cs b/Content.Server/_CP14/Demiplane/Components/CP14DemiplaneDataComponent.cs
index 504677d012..53b0a8a010 100644
--- a/Content.Server/_CP14/Demiplane/Components/CP14DemiplaneDataComponent.cs
+++ b/Content.Server/_CP14/Demiplane/Components/CP14DemiplaneDataComponent.cs
@@ -1,6 +1,5 @@
using Content.Server._CP14.DemiplaneTraveling;
using Content.Shared._CP14.Demiplane.Prototypes;
-using Content.Shared._CP14.RoundStatistic;
using Robust.Shared.Prototypes;
namespace Content.Server._CP14.Demiplane.Components;
@@ -17,9 +16,6 @@ public sealed partial class CP14DemiplaneDataComponent : Component
[DataField]
public List> SelectedModifiers = new();
- [DataField]
- public ProtoId Statistic = "DemiplaneOpen";
-
[DataField]
public List AutoRifts = new() { "CP14DemiplaneTimedRadiusPassway", "CP14DemiplanRiftCore" };
}
diff --git a/Content.Server/_CP14/Objectives/Components/CP14RichestJobConditionComponent.cs b/Content.Server/_CP14/Objectives/Components/CP14RichestJobConditionComponent.cs
deleted file mode 100644
index 6c8b81296f..0000000000
--- a/Content.Server/_CP14/Objectives/Components/CP14RichestJobConditionComponent.cs
+++ /dev/null
@@ -1,25 +0,0 @@
-using Content.Server._CP14.Objectives.Systems;
-using Content.Shared.Roles;
-using Robust.Shared.Prototypes;
-using Robust.Shared.Utility;
-
-namespace Content.Server._CP14.Objectives.Components;
-
-///
-/// The player must be the richest among the players among the specified list of roles
-///
-[RegisterComponent, Access(typeof(CP14RichestJobConditionSystem))]
-public sealed partial class CP14RichestJobConditionComponent : Component
-{
- [DataField(required: true)]
- public ProtoId Job;
-
- [DataField(required: true)]
- public LocId ObjectiveText;
-
- [DataField(required: true)]
- public LocId ObjectiveDescription;
-
- [DataField(required: true)]
- public SpriteSpecifier ObjectiveSprite;
-}
diff --git a/Content.Server/_CP14/Objectives/Components/CP14StatisticRangeConditionComponent.cs b/Content.Server/_CP14/Objectives/Components/CP14StatisticRangeConditionComponent.cs
deleted file mode 100644
index d5d372b683..0000000000
--- a/Content.Server/_CP14/Objectives/Components/CP14StatisticRangeConditionComponent.cs
+++ /dev/null
@@ -1,26 +0,0 @@
-using Content.Server._CP14.Objectives.Systems;
-using Content.Shared._CP14.RoundStatistic;
-using Content.Shared.Destructible.Thresholds;
-using Robust.Shared.Prototypes;
-using Robust.Shared.Utility;
-
-namespace Content.Server._CP14.Objectives.Components;
-
-[RegisterComponent, Access(typeof(CP14StatisticRangeConditionSystem))]
-public sealed partial class CP14StatisticRangeConditionComponent : Component
-{
- [DataField(required: true)]
- public ProtoId Statistic;
-
- [DataField(required: true)]
- public MinMax Range;
-
- [DataField(required: true)]
- public LocId ObjectiveText;
-
- [DataField(required: true)]
- public LocId ObjectiveDescription;
-
- [DataField(required: true)]
- public SpriteSpecifier? ObjectiveSprite;
-}
diff --git a/Content.Server/_CP14/Objectives/Systems/CP14RichestJobCondtionSystem.cs b/Content.Server/_CP14/Objectives/Systems/CP14RichestJobCondtionSystem.cs
deleted file mode 100644
index 3a62d4293a..0000000000
--- a/Content.Server/_CP14/Objectives/Systems/CP14RichestJobCondtionSystem.cs
+++ /dev/null
@@ -1,74 +0,0 @@
-using Content.Server._CP14.Objectives.Components;
-using Content.Shared._CP14.Currency;
-using Content.Shared.Mind;
-using Content.Shared.Objectives.Components;
-using Content.Shared.Objectives.Systems;
-using Content.Shared.Roles.Jobs;
-using Robust.Shared.Prototypes;
-
-namespace Content.Server._CP14.Objectives.Systems;
-
-public sealed class CP14RichestJobConditionSystem : EntitySystem
-{
- [Dependency] private readonly MetaDataSystem _metaData = default!;
- [Dependency] private readonly SharedObjectivesSystem _objectives = default!;
- [Dependency] private readonly CP14SharedCurrencySystem _currency = default!;
- [Dependency] private readonly IPrototypeManager _proto = default!;
- [Dependency] private readonly SharedMindSystem _mind = default!;
- [Dependency] private readonly SharedJobSystem _job = default!;
-
- public override void Initialize()
- {
- base.Initialize();
-
- SubscribeLocalEvent(OnCollectAfterAssign);
- SubscribeLocalEvent(OnCollectGetProgress);
- }
-
- private void OnCollectAfterAssign(Entity condition, ref ObjectiveAfterAssignEvent args)
- {
- if (!_proto.TryIndex(condition.Comp.Job, out var indexedJob))
- return;
-
- _metaData.SetEntityName(condition.Owner, Loc.GetString(condition.Comp.ObjectiveText), args.Meta);
- _metaData.SetEntityDescription(condition.Owner, Loc.GetString(condition.Comp.ObjectiveDescription), args.Meta);
- _objectives.SetIcon(condition.Owner, condition.Comp.ObjectiveSprite);
- }
-
- private void OnCollectGetProgress(Entity condition, ref ObjectiveGetProgressEvent args)
- {
- args.Progress = GetProgress(args.MindId, args.Mind, condition);
- }
-
- private float GetProgress(EntityUid mindId, MindComponent mind, CP14RichestJobConditionComponent condition)
- {
- if (mind.OwnedEntity is null)
- return 0;
-
- var ourValue = _currency.GetTotalCurrencyRecursive(mind.OwnedEntity.Value);
- var otherMaxValue = 0;
-
- var allHumans = _mind.GetAliveHumans(mindId);
- if (allHumans.Count == 0)
- return 1; // No one to compare to, so we're the richest.
-
- foreach (var otherHuman in allHumans)
- {
- if (!_job.MindTryGetJob(otherHuman, out var otherJob))
- continue;
-
- if (otherJob != condition.Job)
- continue;
-
- if (otherHuman.Comp.OwnedEntity is null)
- continue;
-
- var otherValue = _currency.GetTotalCurrencyRecursive(otherHuman.Comp.OwnedEntity.Value);
- if (otherValue > otherMaxValue)
- otherMaxValue = otherValue;
- }
-
- // if several players have the same amount of money, no one wins.
- return ourValue == otherMaxValue ? 0.99f : Math.Clamp(ourValue / (float)otherMaxValue, 0, 1);
- }
-}
diff --git a/Content.Server/_CP14/Objectives/Systems/CP14StatisticRangeConditionStstem.cs b/Content.Server/_CP14/Objectives/Systems/CP14StatisticRangeConditionStstem.cs
deleted file mode 100644
index ceac079e2f..0000000000
--- a/Content.Server/_CP14/Objectives/Systems/CP14StatisticRangeConditionStstem.cs
+++ /dev/null
@@ -1,54 +0,0 @@
-using Content.Server._CP14.Objectives.Components;
-using Content.Server._CP14.RoundStatistic;
-using Content.Shared.Objectives.Components;
-using Content.Shared.Objectives.Systems;
-using Robust.Shared.Prototypes;
-using Robust.Shared.Random;
-
-namespace Content.Server._CP14.Objectives.Systems;
-
-public sealed class CP14StatisticRangeConditionSystem : EntitySystem
-{
- [Dependency] private readonly IRobustRandom _random = default!;
- [Dependency] private readonly IPrototypeManager _proto = default!;
- [Dependency] private readonly MetaDataSystem _metaData = default!;
- [Dependency] private readonly SharedObjectivesSystem _objectives = default!;
- [Dependency] private readonly CP14RoundStatTrackerSystem _statistic = default!;
-
- public override void Initialize()
- {
- base.Initialize();
-
- SubscribeLocalEvent(OnAfterAssign);
- SubscribeLocalEvent(OnGetProgress);
- }
-
- private void OnAfterAssign(Entity condition, ref ObjectiveAfterAssignEvent args)
- {
- var title = Loc.GetString(condition.Comp.ObjectiveText,
- ("min", condition.Comp.Range.Min),
- ("max", condition.Comp.Range.Max));
-
- var description = Loc.GetString(condition.Comp.ObjectiveDescription,
- ("min", condition.Comp.Range.Min),
- ("max", condition.Comp.Range.Max));
-
- _metaData.SetEntityName(condition.Owner, title, args.Meta);
- _metaData.SetEntityDescription(condition.Owner, description, args.Meta);
- if (condition.Comp.ObjectiveSprite is not null)
- _objectives.SetIcon(condition.Owner, condition.Comp.ObjectiveSprite, args.Objective);
- }
-
- private void OnGetProgress(Entity ent, ref ObjectiveGetProgressEvent args)
- {
- var statValue = _statistic.GetTrack(ent.Comp.Statistic);
-
- if (statValue is null || statValue > ent.Comp.Range.Max || statValue < ent.Comp.Range.Min)
- {
- args.Progress = 0;
- return;
- }
-
- args.Progress = 1;
- }
-}
diff --git a/Content.Server/_CP14/RoleSalary/CP14SalarySpawnerComponent.cs b/Content.Server/_CP14/RoleSalary/CP14SalarySpawnerComponent.cs
deleted file mode 100644
index 525a51f6d1..0000000000
--- a/Content.Server/_CP14/RoleSalary/CP14SalarySpawnerComponent.cs
+++ /dev/null
@@ -1,6 +0,0 @@
-namespace Content.Server._CP14.RoleSalary;
-
-[RegisterComponent, Access(typeof(CP14SalarySystem))]
-public sealed partial class CP14SalarySpawnerComponent : Component
-{
-}
diff --git a/Content.Server/_CP14/RoleSalary/CP14SalarySystem.cs b/Content.Server/_CP14/RoleSalary/CP14SalarySystem.cs
deleted file mode 100644
index f5eb7e2938..0000000000
--- a/Content.Server/_CP14/RoleSalary/CP14SalarySystem.cs
+++ /dev/null
@@ -1,118 +0,0 @@
-using System.Text;
-using Content.Server._CP14.Cargo;
-using Content.Server._CP14.Currency;
-using Content.Server.Station.Events;
-using Content.Shared.Paper;
-using Content.Shared.Station.Components;
-using Content.Shared.Storage.EntitySystems;
-using Robust.Server.GameObjects;
-using Robust.Shared.Prototypes;
-using Robust.Shared.Timing;
-
-namespace Content.Server._CP14.RoleSalary;
-
-///
-/// A system that periodically sends paychecks to certain roles through the cargo ship system
-///
-public sealed partial class CP14SalarySystem : EntitySystem
-{
- [Dependency] private readonly IGameTiming _timing = default!;
- [Dependency] private readonly CP14CargoSystem _cargo = default!;
- [Dependency] private readonly TransformSystem _transform = default!;
- [Dependency] private readonly PaperSystem _paper = default!;
- [Dependency] private readonly IPrototypeManager _proto = default!;
- [Dependency] private readonly CP14CurrencySystem _currency = default!;
- [Dependency] private readonly SharedStorageSystem _storage = default!;
-
- public override void Initialize()
- {
- base.Initialize();
-
- SubscribeLocalEvent(OnStationPostInit);
- SubscribeLocalEvent(OnSalaryInit);
- }
-
- public override void Update(float frameTime)
- {
- base.Update(frameTime);
-
- //var query = EntityQueryEnumerator();
- //while (query.MoveNext(out var uid, out var salary, out var store))
- //{
- // if (_timing.CurTime < salary.NextSalaryTime)
- // continue;
-//
- // salary.NextSalaryTime = _timing.CurTime + salary.SalaryFrequency;
- // _cargo.AddBuyQueue((uid, store), new List {salary.SalaryProto});
- //}
- }
-
- private void OnSalaryInit(Entity ent, ref MapInitEvent args)
- {
- GenerateSalary(ent);
- QueueDel(ent);
- }
-
- private void GenerateSalary(Entity ent)
- {
- //Hardcode warning! ^-^
- var xform = Transform(ent);
-
- //First we need found a station
- if (!TryComp(xform.GridUid, out var member))
- return;
-
- if (!TryComp(member.Station, out var stationSalaryComponent))
- return;
-
- var paper = Spawn("CP14Paper"); //TODO Special named paper
- _transform.PlaceNextTo(paper, (ent, xform));
- if (TryComp(paper, out var paperComp))
- {
- paperComp.Content = GenerateSalaryText((member.Station, stationSalaryComponent)) ?? "";
- _paper.TryStamp((paper, paperComp),
- new StampDisplayInfo
- {
- StampedColor = Color.Red,
- StampedName = Loc.GetString("cp14-stamp-salary"),
- },
- "red_on_paper");
- }
-
- var wallet = Spawn("CP14Wallet");
- _transform.PlaceNextTo(wallet, (ent, xform));
-
- foreach (var salary in stationSalaryComponent.Salary)
- {
- var coins = _currency.GenerateMoney(salary.Value, xform.Coordinates);
- foreach (var coin in coins)
- {
- _storage.Insert(wallet, coin, out _);
- }
- }
- }
-
- private string? GenerateSalaryText(Entity station)
- {
- var sb = new StringBuilder();
-
- sb.Append(Loc.GetString("cp14-salary-title") + "\n");
- foreach (var salary in station.Comp.Salary)
- {
- sb.Append("\n");
- if (!_proto.TryIndex(salary.Key, out var indexedDep))
- continue;
-
- var name = Loc.GetString(indexedDep.Name);
- sb.Append(Loc.GetString("cp14-salary-entry",
- ("dep", name),
- ("total", _currency.GetCurrencyPrettyString(salary.Value))));
- }
- return sb.ToString();
- }
-
- private void OnStationPostInit(Entity ent, ref StationPostInitEvent args)
- {
- ent.Comp.NextSalaryTime = _timing.CurTime + ent.Comp.SalaryFrequency;
- }
-}
diff --git a/Content.Server/_CP14/RoleSalary/CP14StationSalaryComponent.cs b/Content.Server/_CP14/RoleSalary/CP14StationSalaryComponent.cs
deleted file mode 100644
index 8ae05d0fe1..0000000000
--- a/Content.Server/_CP14/RoleSalary/CP14StationSalaryComponent.cs
+++ /dev/null
@@ -1,23 +0,0 @@
-using Content.Shared.Roles;
-using Robust.Shared.Prototypes;
-
-namespace Content.Server._CP14.RoleSalary;
-
-[RegisterComponent, Access(typeof(CP14SalarySystem)), AutoGenerateComponentPause]
-public sealed partial class CP14StationSalaryComponent : Component
-{
- ///
- /// listing all the departments and their salaries
- ///
- [DataField]
- public Dictionary, int> Salary = new();
-
- [DataField, AutoPausedField]
- public TimeSpan NextSalaryTime = TimeSpan.Zero;
-
- [DataField]
- public TimeSpan SalaryFrequency = TimeSpan.FromMinutes(18);
-
- [DataField]
- public EntProtoId SalaryProto = "CP14SalarySpawner";
-}
diff --git a/Content.Server/_CP14/RoundRemoveShuttle/CP14RoundRemoveShuttleComponent.cs b/Content.Server/_CP14/RoundRemoveShuttle/CP14RoundRemoveShuttleComponent.cs
deleted file mode 100644
index ce3199097a..0000000000
--- a/Content.Server/_CP14/RoundRemoveShuttle/CP14RoundRemoveShuttleComponent.cs
+++ /dev/null
@@ -1,8 +0,0 @@
-namespace Content.Server._CP14.RoundRemoveShuttle;
-
-[RegisterComponent]
-public sealed partial class CP14RoundRemoveShuttleComponent : Component
-{
- [DataField]
- public EntityUid Station;
-}
diff --git a/Content.Server/_CP14/RoundRemoveShuttle/CP14RoundRemoveShuttleSystem.cs b/Content.Server/_CP14/RoundRemoveShuttle/CP14RoundRemoveShuttleSystem.cs
deleted file mode 100644
index 6b7e32a949..0000000000
--- a/Content.Server/_CP14/RoundRemoveShuttle/CP14RoundRemoveShuttleSystem.cs
+++ /dev/null
@@ -1,101 +0,0 @@
-using System.Globalization;
-using System.Linq;
-using Content.Server.Chat.Systems;
-using Content.Server.Mind;
-using Content.Server.Shuttles.Events;
-using Content.Server.Station.Systems;
-using Content.Server.StationRecords;
-using Content.Server.StationRecords.Systems;
-using Content.Shared.Administration.Logs;
-using Content.Shared.Database;
-using Content.Shared.Mind.Components;
-using Content.Shared.Mobs.Systems;
-using Content.Shared.StationRecords;
-using Robust.Shared.Prototypes;
-
-namespace Content.Server._CP14.RoundRemoveShuttle;
-
-public sealed partial class CP14RoundRemoveShuttleSystem : EntitySystem
-{
- [Dependency] private readonly ISharedAdminLogManager _adminLog = default!;
- [Dependency] private readonly ChatSystem _chatSystem = default!;
- [Dependency] private readonly MindSystem _mind = default!;
- [Dependency] private readonly StationJobsSystem _stationJobs = default!;
- [Dependency] private readonly MobStateSystem _mobState = default!;
- [Dependency] private readonly IPrototypeManager _proto = default!;
- [Dependency] private readonly StationRecordsSystem _stationRecords = default!;
- [Dependency] private readonly EntityLookupSystem _lookup = default!;
-
- private readonly HashSet> _mindSet = new();
- public override void Initialize()
- {
- base.Initialize();
-
- SubscribeLocalEvent(OnFTL);
- }
-
- private void OnFTL(Entity ent, ref FTLStartedEvent args)
- {
- _mindSet.Clear();
- _lookup.GetChildEntities(ent, _mindSet);
-
- if (!TryComp(ent.Comp.Station, out var stationRecords))
- return;
-
- HashSet toDelete = new();
- var query = EntityQueryEnumerator();
- while (query.MoveNext(out var uid, out var mindContainer))
- {
- if (Transform(uid).GridUid != ent)
- continue;
-
- if (!_mind.TryGetMind(uid, out _, out var mindComp, container: mindContainer))
- continue;
-
- var name = Name(uid);
- var recordId = _stationRecords.GetRecordByName(ent.Comp.Station, name);
-
- if (recordId is null)
- return;
-
- var key = new StationRecordKey(recordId.Value, ent.Comp.Station);
- if (!_stationRecords.TryGetRecord(key, out var entry, stationRecords))
- return;
-
- _stationRecords.RemoveRecord(key, stationRecords);
- //Trying return all jobs roles
- var userId = mindComp.UserId;
- string? jobName = entry.JobTitle;
- if (userId is not null)
- {
- _stationJobs.TryAdjustJobSlot(ent.Comp.Station, entry.JobPrototype, 1, clamp: true);
- if (_proto.TryIndex(entry.JobPrototype, out var indexedJob))
- {
- jobName = Loc.GetString(indexedJob.Name);
- }
- }
-
- _adminLog.Add(LogType.Action,
- LogImpact.High,
- $"{ToPrettyString(uid):player} was leave the round on traveling merchant ship");
-
- _chatSystem.DispatchStationAnnouncement(ent.Comp.Station,
- Loc.GetString(
- _mobState.IsDead(uid) ? "cp14-earlyleave-ship-announcement-dead" : "cp14-earlyleave-ship-announcement",
- ("character", mindComp.CharacterName ?? "Unknown"),
- ("job", CultureInfo.CurrentCulture.TextInfo.ToTitleCase(jobName ?? "Unknown"))
- ),
- Loc.GetString("cp14-ship-sender"),
- playDefaultSound: false
- );
- toDelete.Add(uid);
- }
-
- while (toDelete.Count > 0)
- {
- var r = toDelete.First();
- toDelete.Remove(r);
- QueueDel(r);
- }
- }
-}
diff --git a/Content.Server/_CP14/RoundStatistic/CP14RoundStatTrackerSystem.cs b/Content.Server/_CP14/RoundStatistic/CP14RoundStatTrackerSystem.cs
deleted file mode 100644
index ced62e5461..0000000000
--- a/Content.Server/_CP14/RoundStatistic/CP14RoundStatTrackerSystem.cs
+++ /dev/null
@@ -1,71 +0,0 @@
-using System.Text;
-using Content.Server.GameTicking;
-using Content.Shared._CP14.RoundStatistic;
-using Content.Shared.GameTicking;
-using Robust.Shared.Prototypes;
-
-namespace Content.Server._CP14.RoundStatistic;
-
-public sealed partial class CP14RoundStatTrackerSystem : EntitySystem
-{
- [Dependency] private readonly IPrototypeManager _proto = default!;
-
- private readonly Dictionary, int> _tracking = new();
-
- public override void Initialize()
- {
- base.Initialize();
- InitializeDemiplaneDeath();
-
- SubscribeLocalEvent(OnRoundReset);
- SubscribeLocalEvent(OnRoundEndTextAppend);
- ClearStatistic();
- }
-
- private void OnRoundReset(RoundRestartCleanupEvent ev)
- {
- ClearStatistic();
- }
-
- private void OnRoundEndTextAppend(RoundEndTextAppendEvent ev)
- {
- //TODO: Move to separate UI Text block
- var sb = new StringBuilder();
-
- sb.Append($"[head=3]{Loc.GetString("cp14-tracker-header")}[/head] \n");
- foreach (var pair in _tracking)
- {
- if (!_proto.TryIndex(pair.Key, out var indexedTracker))
- continue;
-
- sb.Append($"- {Loc.GetString(indexedTracker.Text)}: {pair.Value}\n");
- }
- ev.AddLine(sb.ToString());
- }
-
- private void ClearStatistic()
- {
- _tracking.Clear();
-
- foreach (var statTracker in _proto.EnumeratePrototypes())
- {
- _tracking.Add(statTracker.ID, 0);
- }
- }
-
- public void TrackAdd(ProtoId proto, int dif)
- {
- _tracking[proto] += Math.Max(dif, 0);
- }
-
- public int? GetTrack(ProtoId proto)
- {
- if (!_tracking.TryGetValue(proto, out var stat))
- {
- Log.Error($"Failed to get round statistic: {proto}");
- return null;
- }
-
- return stat;
- }
-}
diff --git a/Content.Server/_CP14/RoundStatistic/DemiplaneDeath/CP14DeathDemiplaneStatisticComponent.cs b/Content.Server/_CP14/RoundStatistic/DemiplaneDeath/CP14DeathDemiplaneStatisticComponent.cs
deleted file mode 100644
index df155ac9b1..0000000000
--- a/Content.Server/_CP14/RoundStatistic/DemiplaneDeath/CP14DeathDemiplaneStatisticComponent.cs
+++ /dev/null
@@ -1,14 +0,0 @@
-using Content.Shared._CP14.RoundStatistic;
-using Robust.Shared.Prototypes;
-
-namespace Content.Server._CP14.RoundStatistic.DemiplaneDeath;
-
-///
-/// Tracks the destruction or full-blown death of this entity.
-///
-[RegisterComponent]
-public sealed partial class CP14DeathDemiplaneStatisticComponent : Component
-{
- [DataField]
- public ProtoId Statistic = "DemiplaneDeaths";
-}
diff --git a/Content.Server/_CP14/RoundStatistic/DemiplaneDeath/CP14RoundStatTrackerSystem.DemiplaneDeath.cs b/Content.Server/_CP14/RoundStatistic/DemiplaneDeath/CP14RoundStatTrackerSystem.DemiplaneDeath.cs
deleted file mode 100644
index 744b0e1276..0000000000
--- a/Content.Server/_CP14/RoundStatistic/DemiplaneDeath/CP14RoundStatTrackerSystem.DemiplaneDeath.cs
+++ /dev/null
@@ -1,35 +0,0 @@
-using Content.Server._CP14.Demiplane;
-using Content.Server._CP14.RoundStatistic.DemiplaneDeath;
-using Content.Shared._CP14.Demiplane.Components;
-using Content.Shared.GameTicking;
-
-namespace Content.Server._CP14.RoundStatistic;
-
-public sealed partial class CP14RoundStatTrackerSystem
-{
- private void InitializeDemiplaneDeath()
- {
- SubscribeLocalEvent(OnSpawnComplete);
- SubscribeLocalEvent(OnEntityTerminated);
- SubscribeLocalEvent(OnDemiplaneUnsafeExit);
- }
-
- private void OnSpawnComplete(PlayerSpawnCompleteEvent ev)
- {
- EnsureComp(ev.Mob);
- }
-
- private void OnDemiplaneUnsafeExit(Entity ent, ref CP14DemiplaneUnsafeExit args)
- {
- TrackAdd(ent.Comp.Statistic, 1);
- }
-
- //For round remove variants, like gibs or chasm falls
- private void OnEntityTerminated(Entity ent, ref EntityTerminatingEvent args)
- {
- if (!HasComp(Transform(ent).MapUid))
- return;
-
- TrackAdd(ent.Comp.Statistic, 1);
- }
-}
diff --git a/Content.Server/_CP14/StealArea/CP14StealAreaAutoJobConnectComponent.cs b/Content.Server/_CP14/StealArea/CP14StealAreaAutoJobConnectComponent.cs
deleted file mode 100644
index b79e7f97b0..0000000000
--- a/Content.Server/_CP14/StealArea/CP14StealAreaAutoJobConnectComponent.cs
+++ /dev/null
@@ -1,20 +0,0 @@
-using Content.Shared.Roles;
-using Robust.Shared.Prototypes;
-
-namespace Content.Server._CP14.StealArea;
-
-///
-///
-///
-[RegisterComponent, AutoGenerateComponentPause]
-public sealed partial class CP14StealAreaAutoJobConnectComponent : Component
-{
- [DataField]
- public HashSet> Jobs = new();
-
- [DataField]
- public HashSet> Departments = new();
-
- [DataField]
- public bool Stations = true;
-}
diff --git a/Content.Server/_CP14/StealArea/CP14StealAreaAutoJobConnectSystem.cs b/Content.Server/_CP14/StealArea/CP14StealAreaAutoJobConnectSystem.cs
deleted file mode 100644
index 4ef4c277d6..0000000000
--- a/Content.Server/_CP14/StealArea/CP14StealAreaAutoJobConnectSystem.cs
+++ /dev/null
@@ -1,104 +0,0 @@
-using Content.Server._CP14.StationCommonObjectives;
-using Content.Server.Mind;
-using Content.Server.Objectives.Components;
-using Content.Shared.GameTicking;
-using Content.Shared.Roles.Jobs;
-using Robust.Server.Player;
-using Robust.Shared.Prototypes;
-
-namespace Content.Server._CP14.StealArea;
-
-public sealed class CP14StealAreaAutoJobConnectSystem : EntitySystem
-{
-
- [Dependency] private readonly MindSystem _mind = default!;
- [Dependency] private readonly IPrototypeManager _proto = default!;
- [Dependency] private readonly IPlayerManager _playerManager = default!;
- [Dependency] private readonly SharedJobSystem _job = default!;
- public override void Initialize()
- {
- base.Initialize();
-
- SubscribeLocalEvent(OnMapInit);
- SubscribeLocalEvent(OnPlayerSpawning);
- }
-
- private void OnMapInit(Entity autoConnect, ref MapInitEvent args)
- {
- if (!TryComp(autoConnect, out var stealArea))
- return;
-
- if (autoConnect.Comp.Stations)
- {
- var query = EntityQueryEnumerator();
- while (query.MoveNext(out var uid, out _))
- {
- stealArea.Owners.Add(uid);
- }
- }
-
- foreach (var player in _playerManager.Sessions)
- {
- if (!_mind.TryGetMind(player.UserId, out var playerMind))
- continue;
-
- if (!_job.MindTryGetJob(playerMind, out var playerJob))
- continue;
-
- if (stealArea.Owners.Contains(playerMind.Value))
- continue;
-
- if (autoConnect.Comp.Jobs.Contains(playerJob))
- {
- stealArea.Owners.Add(playerMind.Value);
- break;
- }
-
- foreach (var depObj in autoConnect.Comp.Departments)
- {
- if (!_proto.TryIndex(depObj, out var indexedDepart))
- continue;
-
- if (!indexedDepart.Roles.Contains(playerJob))
- continue;
-
- stealArea.Owners.Add(playerMind.Value);
- break;
- }
- }
- }
-
- private void OnPlayerSpawning(PlayerSpawnCompleteEvent ev)
- {
- if (!_mind.TryGetMind(ev.Player.UserId, out var mind))
- return;
-
- var query = EntityQueryEnumerator();
- while (query.MoveNext(out var uid, out var stealArea, out var autoConnect))
- {
- if (stealArea.Owners.Contains(mind.Value))
- continue;
-
- if (ev.JobId is null)
- continue;
-
- if (autoConnect.Jobs.Contains(ev.JobId))
- {
- stealArea.Owners.Add(mind.Value);
- break;
- }
-
- foreach (var depObj in autoConnect.Departments)
- {
- if (!_proto.TryIndex(depObj, out var indexedDepart))
- continue;
-
- if (!indexedDepart.Roles.Contains(ev.JobId))
- continue;
-
- stealArea.Owners.Add(mind.Value);
- break;
- }
- }
- }
-}
diff --git a/Content.Shared/_CP14/Decals/CP14DecalCleanerEvents.cs b/Content.Shared/_CP14/Decals/CP14DecalCleanerEvents.cs
deleted file mode 100644
index b2d038fc80..0000000000
--- a/Content.Shared/_CP14/Decals/CP14DecalCleanerEvents.cs
+++ /dev/null
@@ -1,18 +0,0 @@
-using Content.Shared.DoAfter;
-using Robust.Shared.Map;
-using Robust.Shared.Serialization;
-
-namespace Content.Shared._CP14.Decals;
-
-[Serializable, NetSerializable]
-public sealed partial class CP14DecalCleanerDoAfterEvent : DoAfterEvent
-{
- public NetCoordinates ClickLocation;
-
- public CP14DecalCleanerDoAfterEvent(NetCoordinates click)
- {
- ClickLocation = click;
- }
-
- public override DoAfterEvent Clone() => this;
-}
diff --git a/Content.Shared/_CP14/MagicAttuning/CP14MagicAttuningItemComponent.cs b/Content.Shared/_CP14/MagicAttuning/CP14MagicAttuningItemComponent.cs
deleted file mode 100644
index 918062e73e..0000000000
--- a/Content.Shared/_CP14/MagicAttuning/CP14MagicAttuningItemComponent.cs
+++ /dev/null
@@ -1,16 +0,0 @@
-namespace Content.Shared._CP14.MagicAttuning;
-
-///
-/// Reflects the fact that this subject can be focused on (Magical attune as a mechanic from DnD.)
-///
-[RegisterComponent, Access(typeof(CP14SharedMagicAttuningSystem))]
-public sealed partial class CP14MagicAttuningItemComponent : Component
-{
- ///
- /// how long it takes to focus on that object
- ///
- [DataField]
- public TimeSpan FocusTime = TimeSpan.FromSeconds(5f);
-
- public Entity? Link = null;
-}
diff --git a/Content.Shared/_CP14/MagicAttuning/CP14MagicAttuningMindComponent.cs b/Content.Shared/_CP14/MagicAttuning/CP14MagicAttuningMindComponent.cs
deleted file mode 100644
index a6e04797f0..0000000000
--- a/Content.Shared/_CP14/MagicAttuning/CP14MagicAttuningMindComponent.cs
+++ /dev/null
@@ -1,25 +0,0 @@
-using Robust.Shared.GameStates;
-
-namespace Content.Shared._CP14.MagicAttuning;
-
-///
-/// A mind that can focus on objects
-///
-[RegisterComponent, NetworkedComponent]
-[Access(typeof(CP14SharedMagicAttuningSystem))]
-public sealed partial class CP14MagicAttuningMindComponent : Component
-{
- [DataField]
- public int MaxAttuning = 3;
- ///
- /// The entities that this being is focused on
- ///
- [DataField]
- public List AttunedTo = new();
-
- ///
- /// cheat: if added to an entity with MindContainer, automatically copied to the mind, removing it from the body. This is to make it easy to add the component to prototype creatures.
- ///
- [DataField]
- public bool AutoCopyToMind = false;
-}
diff --git a/Content.Shared/_CP14/MagicAttuning/CP14SharedMagicAttuningSystem.cs b/Content.Shared/_CP14/MagicAttuning/CP14SharedMagicAttuningSystem.cs
deleted file mode 100644
index 51e630a3e4..0000000000
--- a/Content.Shared/_CP14/MagicAttuning/CP14SharedMagicAttuningSystem.cs
+++ /dev/null
@@ -1,238 +0,0 @@
-using Content.Shared.DoAfter;
-using Content.Shared.Mind;
-using Content.Shared.Mind.Components;
-using Content.Shared.Popups;
-using Content.Shared.Verbs;
-using Robust.Shared.Serialization;
-
-namespace Content.Shared._CP14.MagicAttuning;
-
-///
-/// This system controls the customization to magic items by the players.
-///
-public sealed partial class CP14SharedMagicAttuningSystem : EntitySystem
-{
- [Dependency] private readonly SharedMindSystem _mind = default!;
- [Dependency] private readonly SharedDoAfterSystem _doAfter = default!;
- [Dependency] private readonly SharedPopupSystem _popup = default!;
-
- public override void Initialize()
- {
- base.Initialize();
-
- SubscribeLocalEvent>(OnInteractionVerb);
- SubscribeLocalEvent(OnAttuneDoAfter);
- SubscribeLocalEvent(OnMindAdded);
- }
-
- private void OnMindAdded(Entity ent, ref MindAddedMessage args)
- {
- if (!ent.Comp.AutoCopyToMind)
- return;
-
- if (HasComp(ent))
- return;
-
- if (!_mind.TryGetMind(ent, out var mindId, out var mind))
- return;
-
- if (!HasComp(mindId))
- {
- var attuneMind = AddComp(mindId);
- attuneMind.MaxAttuning = ent.Comp.MaxAttuning;
- }
- }
-
- public bool IsAttunedTo(EntityUid mind, EntityUid item)
- {
- if (!TryComp(item, out var attuningItem))
- return false;
-
- if (!TryComp(mind, out var attuningMind))
- return false;
-
- return attuningMind.AttunedTo.Contains(item);
- }
-
- private void OnInteractionVerb(Entity attuningItem, ref GetVerbsEvent args)
- {
- if (!args.CanAccess || !args.CanInteract)
- return;
-
- if (!_mind.TryGetMind(args.User, out var mindId, out var mind))
- return;
-
- if (!TryComp(mindId, out var attumingMind))
- return;
-
- var user = args.User;
- if (attumingMind.AttunedTo.Contains(args.Target))
- {
- args.Verbs.Add(new()
- {
- Act = () =>
- {
- RemoveAttune((mindId, attumingMind), attuningItem);
- },
- Text = Loc.GetString("cp14-magic-deattuning-verb-text"),
- Message = Loc.GetString("cp14-magic-attuning-verb-message"),
- });
- }
- else
- {
- args.Verbs.Add(new()
- {
- Act = () =>
- {
- TryStartAttune(user, attuningItem);
- },
- Text = Loc.GetString("cp14-magic-attuning-verb-text"),
- Message = Loc.GetString("cp14-magic-attuning-verb-message"),
- });
- }
- }
-
- public bool TryStartAttune(EntityUid user, Entity item)
- {
- if (!_mind.TryGetMind(user, out var mindId, out var mind))
- return false;
-
- if (!TryComp(mindId, out var attuningMind))
- return false;
-
- if (attuningMind.MaxAttuning <= 0)
- return false;
-
- //if there's an overabundance of ties, we report that the oldest one is torn.
- if (attuningMind.AttunedTo.Count >= attuningMind.MaxAttuning)
- {
- var oldestAttune = attuningMind.AttunedTo[0];
- _popup.PopupEntity(Loc.GetString("cp14-magic-attune-oldest-forgot", ("item", MetaData(oldestAttune).EntityName)), user, user);
- }
-
- //we notify the current owner of the item that someone is cutting ties.
- if (item.Comp.Link is not null &&
- item.Comp.Link.Value.Owner != mindId &&
- TryComp(item.Comp.Link.Value.Owner, out var ownerMind) &&
- ownerMind.OwnedEntity is not null)
- {
- _popup.PopupEntity(Loc.GetString("cp14-magic-attune-oldest-forgot", ("item", MetaData(item).EntityName)), ownerMind.OwnedEntity.Value, ownerMind.OwnedEntity.Value);
- }
-
- var doAfterArgs = new DoAfterArgs(EntityManager,
- user,
- item.Comp.FocusTime,
- new CP14MagicAttuneDoAfterEvent(),
- mindId,
- item)
- {
- BreakOnDamage = true,
- BreakOnMove = true,
- DistanceThreshold = 2f,
- BlockDuplicate = true,
- };
-
- _doAfter.TryStartDoAfter(doAfterArgs);
- return true;
- }
-
- private void OnAttuneDoAfter(Entity ent, ref CP14MagicAttuneDoAfterEvent args)
- {
- if (args.Cancelled || args.Handled || args.Target is null)
- return;
-
- if (ent.Comp.AttunedTo.Count >= ent.Comp.MaxAttuning)
- {
- var oldestAttune = ent.Comp.AttunedTo[0];
- RemoveAttune(ent, oldestAttune);
- }
-
- AddAttune(ent, args.Target.Value);
- }
-
- private void RemoveAttune(Entity attuningMind, EntityUid item)
- {
- if (!attuningMind.Comp.AttunedTo.Contains(item))
- return;
-
- attuningMind.Comp.AttunedTo.Remove(item);
-
- if (!TryComp(item, out var attuningItem))
- return;
-
- if (!TryComp(attuningMind, out var mind))
- return;
-
- attuningItem.Link = null;
-
- var ev = new RemovedAttuneFromMindEvent(attuningMind, mind.OwnedEntity, item);
- RaiseLocalEvent(attuningMind, ev);
- RaiseLocalEvent(item, ev);
-
- if (mind.OwnedEntity is not null)
- {
- _popup.PopupEntity(Loc.GetString("cp14-magic-attune-oldest-forgot-end", ("item", MetaData(item).EntityName)), mind.OwnedEntity.Value, mind.OwnedEntity.Value);
- }
- }
-
- private void AddAttune(Entity attuningMind, EntityUid item)
- {
- if (attuningMind.Comp.AttunedTo.Contains(item))
- return;
-
- if (!TryComp(item, out var attuningItem))
- return;
-
- if (!TryComp(attuningMind, out var mind))
- return;
-
- if (attuningItem.Link is not null)
- RemoveAttune(attuningItem.Link.Value, item);
-
- attuningMind.Comp.AttunedTo.Add(item);
- attuningItem.Link = attuningMind;
-
-
- var ev = new AddedAttuneToMindEvent(attuningMind, mind.OwnedEntity, item);
- RaiseLocalEvent(attuningMind, ev);
- RaiseLocalEvent(item, ev);
- }
-}
-
-[Serializable, NetSerializable]
-public sealed partial class CP14MagicAttuneDoAfterEvent : SimpleDoAfterEvent
-{
-}
-
-///
-/// is evoked on both the item and the mind when a new connection between them appears.
-///
-public sealed class AddedAttuneToMindEvent : EntityEventArgs
-{
- public readonly EntityUid Mind;
- public readonly EntityUid? User;
- public readonly EntityUid Item;
-
- public AddedAttuneToMindEvent(EntityUid mind, EntityUid? user, EntityUid item)
- {
- Mind = mind;
- User = user;
- Item = item;
- }
-}
-///
-/// is evoked on both the item and the mind when the connection is broken
-///
-public sealed class RemovedAttuneFromMindEvent : EntityEventArgs
-{
- public readonly EntityUid Mind;
- public readonly EntityUid? User;
- public readonly EntityUid Item;
-
- public RemovedAttuneFromMindEvent(EntityUid mind, EntityUid? user, EntityUid item)
- {
- Mind = mind;
- User = user;
- Item = item;
- }
-}
diff --git a/Content.Shared/_CP14/MagicSpellStorage/CP14SpellStorageSystem.Access.cs b/Content.Shared/_CP14/MagicSpellStorage/CP14SpellStorageSystem.Access.cs
index 062811a248..85c859cfc2 100644
--- a/Content.Shared/_CP14/MagicSpellStorage/CP14SpellStorageSystem.Access.cs
+++ b/Content.Shared/_CP14/MagicSpellStorage/CP14SpellStorageSystem.Access.cs
@@ -1,7 +1,5 @@
-using Content.Shared._CP14.MagicAttuning;
using Content.Shared._CP14.MagicSpellStorage.Components;
using Content.Shared.Clothing;
-using Content.Shared.Clothing.Components;
using Content.Shared.Hands;
namespace Content.Shared._CP14.MagicSpellStorage;
@@ -11,9 +9,7 @@ public sealed partial class CP14SpellStorageSystem
private void InitializeAccess()
{
SubscribeLocalEvent(OnEquippedHand);
- SubscribeLocalEvent(OnHandAddedAttune);
- SubscribeLocalEvent(OnClothingAddedAttune);
SubscribeLocalEvent(OnClothingEquipped);
SubscribeLocalEvent(OnClothingUnequipped);
}
@@ -26,40 +22,6 @@ public sealed partial class CP14SpellStorageSystem
TryGrantAccess((ent, spellStorage), args.User);
}
- private void OnHandAddedAttune(Entity ent, ref AddedAttuneToMindEvent args)
- {
- if (!TryComp(ent, out var spellStorage))
- return;
-
- if (args.User is null)
- return;
-
- if (!_hands.IsHolding(args.User.Value, ent))
- return;
-
- TryGrantAccess((ent, spellStorage), args.User.Value);
- }
-
- private void OnClothingAddedAttune(Entity ent, ref AddedAttuneToMindEvent args)
- {
- if (!ent.Comp.Wearing)
- return;
-
- if (!TryComp(ent, out var spellStorage))
- return;
-
- if (args.User is null)
- return;
-
- if (!TryComp(ent, out var clothing))
- return;
-
- if (Transform(ent).ParentUid != args.User)
- return;
-
- TryGrantAccess((ent, spellStorage), args.User.Value);
- }
-
private void OnClothingEquipped(Entity ent, ref ClothingGotEquippedEvent args)
{
ent.Comp.Wearing = true;
diff --git a/Content.Shared/_CP14/MagicSpellStorage/CP14SpellStorageSystem.cs b/Content.Shared/_CP14/MagicSpellStorage/CP14SpellStorageSystem.cs
index 2aa2ae3b1f..0ec0595de2 100644
--- a/Content.Shared/_CP14/MagicSpellStorage/CP14SpellStorageSystem.cs
+++ b/Content.Shared/_CP14/MagicSpellStorage/CP14SpellStorageSystem.cs
@@ -1,4 +1,3 @@
-using Content.Shared._CP14.MagicAttuning;
using Content.Shared._CP14.MagicSpell.Components;
using Content.Shared._CP14.MagicSpell.Events;
using Content.Shared._CP14.MagicSpellStorage.Components;
@@ -18,7 +17,6 @@ public sealed partial class CP14SpellStorageSystem : EntitySystem
[Dependency] private readonly ActionContainerSystem _actionContainer = default!;
[Dependency] private readonly SharedActionsSystem _actions = default!;
[Dependency] private readonly SharedMindSystem _mind = default!;
- [Dependency] private readonly CP14SharedMagicAttuningSystem _attuning = default!;
[Dependency] private readonly SharedHandsSystem _hands = default!;
[Dependency] private readonly INetManager _net = default!;
[Dependency] private readonly DamageableSystem _damageable = default!;
@@ -31,7 +29,6 @@ public sealed partial class CP14SpellStorageSystem : EntitySystem
SubscribeLocalEvent(OnMagicStorageShutdown);
SubscribeLocalEvent(OnSpellUsed);
- SubscribeLocalEvent(OnRemovedAttune);
}
private void OnSpellUsed(Entity ent, ref CP14SpellFromSpellStorageUsedEvent args)
@@ -81,21 +78,7 @@ public sealed partial class CP14SpellStorageSystem : EntitySystem
if (mind.OwnedEntity is null)
return false;
- if (TryComp(storage, out var reqAttune))
- {
- if (!_attuning.IsAttunedTo(mindId, storage))
- return false;
- }
-
_actions.GrantActions(user, storage.Comp.SpellEntities, storage);
return true;
}
-
- private void OnRemovedAttune(Entity ent, ref RemovedAttuneFromMindEvent args)
- {
- if (args.User is null)
- return;
-
- _actions.RemoveProvidedActions(args.User.Value, ent);
- }
}
diff --git a/Content.Shared/_CP14/MagicSpellStorage/Components/CP14SpellStorageRequireAttuneComponent.cs b/Content.Shared/_CP14/MagicSpellStorage/Components/CP14SpellStorageRequireAttuneComponent.cs
deleted file mode 100644
index b3af633fae..0000000000
--- a/Content.Shared/_CP14/MagicSpellStorage/Components/CP14SpellStorageRequireAttuneComponent.cs
+++ /dev/null
@@ -1,9 +0,0 @@
-namespace Content.Shared._CP14.MagicSpellStorage.Components;
-
-///
-/// The ability to access spellcasting is limited by the attuning requirement
-///
-[RegisterComponent, Access(typeof(CP14SpellStorageSystem))]
-public sealed partial class CP14SpellStorageRequireAttuneComponent : Component
-{
-}
diff --git a/Content.Shared/_CP14/RoundStatistic/CP14RoundStatTrackerPrototype.cs b/Content.Shared/_CP14/RoundStatistic/CP14RoundStatTrackerPrototype.cs
deleted file mode 100644
index 9da3be1582..0000000000
--- a/Content.Shared/_CP14/RoundStatistic/CP14RoundStatTrackerPrototype.cs
+++ /dev/null
@@ -1,12 +0,0 @@
-using Robust.Shared.Prototypes;
-
-namespace Content.Shared._CP14.RoundStatistic;
-
-[Prototype("statisticTracker")]
-public sealed partial class CP14RoundStatTrackerPrototype : IPrototype
-{
- [IdDataField] public string ID { get; } = default!;
-
- [DataField(required: true)]
- public LocId Text;
-}
diff --git a/Content.Shared/_CP14/WorldSprite/WorldSpriteVisualLayer.cs b/Content.Shared/_CP14/WorldSprite/WorldSpriteVisualLayer.cs
deleted file mode 100644
index 058adaf133..0000000000
--- a/Content.Shared/_CP14/WorldSprite/WorldSpriteVisualLayer.cs
+++ /dev/null
@@ -1,6 +0,0 @@
-namespace Content.Shared._CP14.WorldSprite;
-
-public enum WorldSpriteVisualLayers : byte
-{
- Layer,
-}
diff --git a/Resources/Locale/ru-RU/_CP14/_PROTO/entities/entities.ftl b/Resources/Locale/ru-RU/_CP14/_PROTO/entities/entities.ftl
index b7cb004060..d7c6212adb 100644
--- a/Resources/Locale/ru-RU/_CP14/_PROTO/entities/entities.ftl
+++ b/Resources/Locale/ru-RU/_CP14/_PROTO/entities/entities.ftl
@@ -1165,7 +1165,7 @@ ent-CP14ClothingShoesArtifactFrogs = жаботапы
ent-CP14Mist = облако
-ent-CP14SkyLightning = освещение неба
+ent-CP14SkyLightning = молния с небес
ent-CP14DemiplaneEntryPointMarker = точка входа в демиплан
diff --git a/Resources/Prototypes/_CP14/Entities/Markers/salary.yml b/Resources/Prototypes/_CP14/Entities/Markers/salary.yml
deleted file mode 100644
index 56a299d717..0000000000
--- a/Resources/Prototypes/_CP14/Entities/Markers/salary.yml
+++ /dev/null
@@ -1,11 +0,0 @@
-- type: entity
- id: CP14SalarySpawner
- categories: [ ForkFiltered ]
- parent: BaseItem
- name: station salary spawner
- components:
- - type: CP14SalarySpawner
- - type: Sprite
- layers:
- - sprite: /Textures/_CP14/Objects/Economy/jewelry.rsi
- state: ruby1
\ No newline at end of file
diff --git a/Resources/Prototypes/_CP14/Entities/Mobs/base.yml b/Resources/Prototypes/_CP14/Entities/Mobs/base.yml
index 56192108ad..74bb29c248 100644
--- a/Resources/Prototypes/_CP14/Entities/Mobs/base.yml
+++ b/Resources/Prototypes/_CP14/Entities/Mobs/base.yml
@@ -57,8 +57,6 @@
delay: 3 # 5m to full restore
- type: CP14MagicUnsafeDamage
- type: CP14MagicUnsafeSleep
- - type: CP14MagicAttuningMind
- autoCopyToMind: true
- type: entity
diff --git a/Resources/Prototypes/_CP14/Entities/Objects/Weapons/Magic/twoHandedStaffs.yml b/Resources/Prototypes/_CP14/Entities/Objects/Weapons/Magic/twoHandedStaffs.yml
index 545d98ea09..c4646d7353 100644
--- a/Resources/Prototypes/_CP14/Entities/Objects/Weapons/Magic/twoHandedStaffs.yml
+++ b/Resources/Prototypes/_CP14/Entities/Objects/Weapons/Magic/twoHandedStaffs.yml
@@ -55,8 +55,6 @@
collection: MetalThud
cPAnimationLength: 0.3
cPAnimationOffset: -1.3
- - type: CP14SpellStorageRequireAttune
- - type: CP14MagicAttuningItem
- type: CP14SpellStorageAccessHolding
- type: CP14SpellStorage
spells:
diff --git a/Resources/Prototypes/_CP14/Entities/Stations/base.yml b/Resources/Prototypes/_CP14/Entities/Stations/base.yml
index b86b5883f2..15e7d2749c 100644
--- a/Resources/Prototypes/_CP14/Entities/Stations/base.yml
+++ b/Resources/Prototypes/_CP14/Entities/Stations/base.yml
@@ -8,7 +8,6 @@
- CP14BaseTownAlerts
- BaseStationRecords # Required for lobby manifest + cryo leave
- CP14BaseStationCommonObjectives
- - CP14BaseStationSalary
- CP14BaseStationDemiplaneMap
- type: entity
@@ -17,15 +16,6 @@
components:
- type: CP14StationCommonObjectives
-- type: entity
- id: CP14BaseStationSalary
- abstract: true
- components:
- - type: CP14StationSalary
- #frequency: every 20 minutes
- salary:
- CP14Guard: 550
-
- type: entity
id: CP14BaseTownAlerts
abstract: true
diff --git a/Resources/Prototypes/_CP14/GameRules/roundstart.yml b/Resources/Prototypes/_CP14/GameRules/roundstart.yml
index 2e78fe80fe..e2e8dbc112 100644
--- a/Resources/Prototypes/_CP14/GameRules/roundstart.yml
+++ b/Resources/Prototypes/_CP14/GameRules/roundstart.yml
@@ -19,14 +19,8 @@
id: CP14RoundObjectivesRule
parent: CP14BaseGameRule
components:
- #- type: CP14CommonObjectivesRule
- # departmentObjectives:
- # CP14Command:
- # - CP14TownSendObjectiveGroup
- type: CP14PersonalObjectivesRule
roleObjectives:
- CP14Guildmaster:
- - CP14GuildmasterNoDemiplaneObjectiveGroup
CP14Adventurer:
- CP14PersonalCurrencyCollectObjectiveGroup
CP14Alchemist:
@@ -37,8 +31,6 @@
- CP14PersonalCurrencyCollectObjectiveGroup
CP14Innkeeper:
- CP14PersonalCurrencyCollectObjectiveGroup
- CP14Merchant:
- - CP14PersonalObjectiveRichestMerchantGroup
# event schedulers
diff --git a/Resources/Prototypes/_CP14/Objectives/empire_orders.yml b/Resources/Prototypes/_CP14/Objectives/empire_orders.yml
index bd34ec5ec9..debc0c0d88 100644
--- a/Resources/Prototypes/_CP14/Objectives/empire_orders.yml
+++ b/Resources/Prototypes/_CP14/Objectives/empire_orders.yml
@@ -53,25 +53,4 @@
weights:
CP14TownSendDinoObjective: 1
CP14TownSendMoleObjective: 1
- CP14TownSendBoarObjective: 1
-
-# No Demiplane death objective
-- type: entity
- parent: CP14BaseTownObjective
- id: CP14GuildmasterNoDemiplaneDeathObjective
- components:
- - type: CP14StatisticRangeCondition
- statistic: DemiplaneDeaths
- range:
- min: 0
- max: 3 #TODO Adaptive to player count
- objectiveText: cp14-objective-no-demiplane-death-title
- objectiveDescription: cp14-objective-no-demiplane-death-desc
- objectiveSprite:
- sprite: /Textures/_CP14/Objects/ModularTools/Blade/Shovel/metall_shovel.rsi
- state: tool
-
-- type: weightedRandom
- id: CP14GuildmasterNoDemiplaneObjectiveGroup
- weights:
- CP14GuildmasterNoDemiplaneDeathObjective: 1
\ No newline at end of file
+ CP14TownSendBoarObjective: 1
\ No newline at end of file
diff --git a/Resources/Prototypes/_CP14/Objectives/personal_objectives.yml b/Resources/Prototypes/_CP14/Objectives/personal_objectives.yml
index 325c5504b8..f8ae92d123 100644
--- a/Resources/Prototypes/_CP14/Objectives/personal_objectives.yml
+++ b/Resources/Prototypes/_CP14/Objectives/personal_objectives.yml
@@ -36,22 +36,4 @@
- type: weightedRandom
id: CP14PersonalCurrencyCollectObjectiveGroup
weights:
- CP14PersonalCurrencyCollectObjective: 1
-
-#Richest merchant objective
-- type: entity
- parent: CP14BasePersonalObjective
- id: CP14PersonalObjectiveRichestMerchant
- components:
- - type: CP14RichestJobCondition
- job: CP14Merchant
- objectiveText: cp14-objective-personal-richest-merchant-title
- objectiveDescription: cp14-objective-personal-richest-merchant-desc
- objectiveSprite:
- sprite: /Textures/_CP14/Objects/Economy/pp_coin.rsi
- state: coin10
-
-- type: weightedRandom
- id: CP14PersonalObjectiveRichestMerchantGroup
- weights:
- CP14PersonalObjectiveRichestMerchant: 1
\ No newline at end of file
+ CP14PersonalCurrencyCollectObjective: 1
\ No newline at end of file
diff --git a/Resources/Prototypes/_CP14/Traits/physical.yml b/Resources/Prototypes/_CP14/Traits/physical.yml
index 0fb1430710..825161e0b4 100644
--- a/Resources/Prototypes/_CP14/Traits/physical.yml
+++ b/Resources/Prototypes/_CP14/Traits/physical.yml
@@ -29,7 +29,6 @@
- type: CP14MagicEnergyDraw
- type: CP14MagicUnsafeDamage
- type: CP14MagicUnsafeSleep
- - type: CP14MagicAttuningMind
# -1
diff --git a/Resources/Prototypes/_CP14/debug.yml b/Resources/Prototypes/_CP14/debug.yml
deleted file mode 100644
index ae9888bd37..0000000000
--- a/Resources/Prototypes/_CP14/debug.yml
+++ /dev/null
@@ -1,33 +0,0 @@
-#- type: entity
-# parent: BaseItem
-# id: CP14DebugWorldSprite
-# name: strange copper bar
-# suffix: CP, DEBUG
-# categories: [ ForkFiltered ]
-# components:
-# # Just copy me, I am block with name Bob
-# - type: Appearance
-# - type: CP14WorldSprite
-# - type: GenericVisualizer
-# visuals:
-# enum.WorldSpriteVisualLayers.Layer:
-# world:
-# True:
-# visible: true
-# False:
-# visible: false
-# content:
-# True:
-# visible: false
-# False:
-# visible: true
-# # Just copy me, I am block with name Bob
-#
-# - type: Sprite
-# sprite: /Textures/_CP14/Objects/Materials/copper_bar.rsi
-# layers:
-# - map: ["world"]
-# state: bar
-# - map: ["content"]
-# state: bar_2
-#
\ No newline at end of file
diff --git a/Resources/Prototypes/_CP14/stat_trackers.yml b/Resources/Prototypes/_CP14/stat_trackers.yml
deleted file mode 100644
index 10204af15c..0000000000
--- a/Resources/Prototypes/_CP14/stat_trackers.yml
+++ /dev/null
@@ -1,7 +0,0 @@
-- type: statisticTracker
- id: DemiplaneOpen
- text: cp14-tracker-demiplane-open
-
-- type: statisticTracker
- id: DemiplaneDeaths
- text: cp14-tracker-demiplane-deaths
\ No newline at end of file