@@ -1,18 +0,0 @@
|
|||||||
using Content.Server.Objectives.Systems;
|
|
||||||
using Robust.Shared.Prototypes;
|
|
||||||
using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype;
|
|
||||||
|
|
||||||
namespace Content.Server.Objectives.Components.Targets;
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Allows an object to become the target of a StealCollection objection
|
|
||||||
/// </summary>
|
|
||||||
[RegisterComponent]
|
|
||||||
public sealed partial class StealTargetComponent : Component
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// The theft group to which this item belongs.
|
|
||||||
/// </summary>
|
|
||||||
[DataField(required: true), ViewVariables(VVAccess.ReadWrite)]
|
|
||||||
public string StealGroup;
|
|
||||||
}
|
|
||||||
@@ -1,5 +1,4 @@
|
|||||||
using Content.Server.Objectives.Components;
|
using Content.Server.Objectives.Components;
|
||||||
using Content.Server.Objectives.Components.Targets;
|
|
||||||
using Content.Shared.CartridgeLoader;
|
using Content.Shared.CartridgeLoader;
|
||||||
using Content.Shared.Interaction;
|
using Content.Shared.Interaction;
|
||||||
using Content.Shared.Mind;
|
using Content.Shared.Mind;
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ using Content.Shared.Hands.EntitySystems;
|
|||||||
using Content.Shared.IdentityManagement;
|
using Content.Shared.IdentityManagement;
|
||||||
using Content.Shared.Interaction.Events;
|
using Content.Shared.Interaction.Events;
|
||||||
using Content.Shared.NameModifier.EntitySystems;
|
using Content.Shared.NameModifier.EntitySystems;
|
||||||
|
using Content.Shared.Objectives.Components;
|
||||||
using Content.Shared.Popups;
|
using Content.Shared.Popups;
|
||||||
using Content.Shared.Tag;
|
using Content.Shared.Tag;
|
||||||
using Content.Shared.Verbs;
|
using Content.Shared.Verbs;
|
||||||
@@ -130,6 +131,7 @@ public abstract class SharedDeliverySystem : EntitySystem
|
|||||||
|
|
||||||
_tag.AddTags(ent, "Trash", "Recyclable");
|
_tag.AddTags(ent, "Trash", "Recyclable");
|
||||||
EnsureComp<SpaceGarbageComponent>(ent);
|
EnsureComp<SpaceGarbageComponent>(ent);
|
||||||
|
RemComp<StealTargetComponent>(ent); // opened mail should not count for the objective
|
||||||
|
|
||||||
DirtyField(ent.Owner, ent.Comp, nameof(DeliveryComponent.IsOpened));
|
DirtyField(ent.Owner, ent.Comp, nameof(DeliveryComponent.IsOpened));
|
||||||
|
|
||||||
|
|||||||
17
Content.Shared/Objectives/Components/StealTargetComponent.cs
Normal file
17
Content.Shared/Objectives/Components/StealTargetComponent.cs
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
using Robust.Shared.GameStates;
|
||||||
|
using Robust.Shared.Prototypes;
|
||||||
|
|
||||||
|
namespace Content.Shared.Objectives.Components;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Allows an object to become the target of a steal objective
|
||||||
|
/// </summary>
|
||||||
|
[RegisterComponent, NetworkedComponent]
|
||||||
|
public sealed partial class StealTargetComponent : Component
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// The theft group to which this item belongs.
|
||||||
|
/// </summary>
|
||||||
|
[DataField(required: true)]
|
||||||
|
public ProtoId<StealTargetGroupPrototype> StealGroup;
|
||||||
|
}
|
||||||
@@ -20,6 +20,7 @@ steal-target-groups-stamps = stamp
|
|||||||
steal-target-groups-door-remotes = door remote
|
steal-target-groups-door-remotes = door remote
|
||||||
steal-target-groups-encryption-keys = encryption key
|
steal-target-groups-encryption-keys = encryption key
|
||||||
steal-target-groups-technology-disks = technology disk
|
steal-target-groups-technology-disks = technology disk
|
||||||
|
steal-target-groups-mail = mail
|
||||||
steal-target-groups-id-cards = ID Card
|
steal-target-groups-id-cards = ID Card
|
||||||
steal-target-groups-lamps = LAMP
|
steal-target-groups-lamps = LAMP
|
||||||
|
|
||||||
|
|||||||
@@ -39,6 +39,8 @@
|
|||||||
- type: ContainerContainer
|
- type: ContainerContainer
|
||||||
containers:
|
containers:
|
||||||
delivery: !type:Container
|
delivery: !type:Container
|
||||||
|
- type: StealTarget
|
||||||
|
stealGroup: Mail
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
parent: BaseDelivery
|
parent: BaseDelivery
|
||||||
|
|||||||
@@ -62,7 +62,8 @@
|
|||||||
HeadBedsheetStealCollectionObjective: 1
|
HeadBedsheetStealCollectionObjective: 1
|
||||||
StampStealCollectionObjective: 1
|
StampStealCollectionObjective: 1
|
||||||
DoorRemoteStealCollectionObjective: 1
|
DoorRemoteStealCollectionObjective: 1
|
||||||
TechnologyDiskStealCollectionObjective: 1 #rnd
|
TechnologyDiskStealCollectionObjective: 1 #sci
|
||||||
|
MailStealCollectionObjective: 1 #cargo
|
||||||
IDCardsStealCollectionObjective: 1
|
IDCardsStealCollectionObjective: 1
|
||||||
LAMPStealCollectionObjective: 2 #only for moth
|
LAMPStealCollectionObjective: 2 #only for moth
|
||||||
|
|
||||||
|
|||||||
@@ -128,6 +128,13 @@
|
|||||||
sprite: Objects/Misc/module.rsi
|
sprite: Objects/Misc/module.rsi
|
||||||
state: datadisk_base
|
state: datadisk_base
|
||||||
|
|
||||||
|
- type: stealTargetGroup
|
||||||
|
id: Mail
|
||||||
|
name: steal-target-groups-mail
|
||||||
|
sprite:
|
||||||
|
sprite: Objects/Specific/Cargo/mail.rsi
|
||||||
|
state: icon
|
||||||
|
|
||||||
- type: stealTargetGroup
|
- type: stealTargetGroup
|
||||||
id: IDCard
|
id: IDCard
|
||||||
name: steal-target-groups-id-cards
|
name: steal-target-groups-id-cards
|
||||||
|
|||||||
@@ -111,6 +111,20 @@
|
|||||||
- type: Objective
|
- type: Objective
|
||||||
difficulty: 0.8
|
difficulty: 0.8
|
||||||
|
|
||||||
|
- type: entity
|
||||||
|
parent: BaseThiefStealCollectionObjective
|
||||||
|
id: MailStealCollectionObjective
|
||||||
|
components:
|
||||||
|
- type: NotJobRequirement
|
||||||
|
job: CargoTechnician
|
||||||
|
- type: StealCondition
|
||||||
|
stealGroup: Mail
|
||||||
|
minCollectionSize: 4
|
||||||
|
maxCollectionSize: 8
|
||||||
|
verifyMapExistence: false
|
||||||
|
- type: Objective
|
||||||
|
difficulty: 0.8
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
parent: BaseThiefStealCollectionObjective
|
parent: BaseThiefStealCollectionObjective
|
||||||
id: IDCardsStealCollectionObjective
|
id: IDCardsStealCollectionObjective
|
||||||
|
|||||||
Reference in New Issue
Block a user