make objectives use entityCategory (#28269)
This commit is contained in:
@@ -2,6 +2,7 @@ using Content.Shared.Mind;
|
||||
using Content.Shared.Objectives;
|
||||
using Content.Shared.Objectives.Systems;
|
||||
using Robust.Shared.Utility;
|
||||
using Robust.Shared.Prototypes;
|
||||
|
||||
namespace Content.Shared.Objectives.Components;
|
||||
|
||||
@@ -9,32 +10,33 @@ namespace Content.Shared.Objectives.Components;
|
||||
/// Required component for an objective entity prototype.
|
||||
/// </summary>
|
||||
[RegisterComponent, Access(typeof(SharedObjectivesSystem))]
|
||||
[EntityCategory("Objectives")]
|
||||
public sealed partial class ObjectiveComponent : Component
|
||||
{
|
||||
/// <summary>
|
||||
/// Difficulty rating used to avoid assigning too many difficult objectives.
|
||||
/// </summary>
|
||||
[DataField(required: true), ViewVariables(VVAccess.ReadWrite)]
|
||||
[DataField(required: true)]
|
||||
public float Difficulty;
|
||||
|
||||
/// <summary>
|
||||
/// Organisation that issued this objective, used for grouping and as a header above common objectives.
|
||||
/// </summary>
|
||||
[DataField(required: true), ViewVariables(VVAccess.ReadWrite)]
|
||||
[DataField(required: true)]
|
||||
public string Issuer = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// Unique objectives can only have 1 per prototype id.
|
||||
/// Set this to false if you want multiple objectives of the same prototype.
|
||||
/// </summary>
|
||||
[DataField, ViewVariables(VVAccess.ReadWrite)]
|
||||
[DataField]
|
||||
public bool Unique = true;
|
||||
|
||||
/// <summary>
|
||||
/// Icon of this objective to display in the character menu.
|
||||
/// Can be specified by an <see cref="ObjectiveGetInfoEvent"/> handler but is usually done in the prototype.
|
||||
/// </summary>
|
||||
[DataField, ViewVariables(VVAccess.ReadWrite)]
|
||||
[DataField]
|
||||
public SpriteSpecifier? Icon;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,2 +1,3 @@
|
||||
entity-category-name-actions = Actions
|
||||
entity-category-name-game-rules = Game Rules
|
||||
entity-category-name-objectives = Objectives
|
||||
@@ -7,3 +7,8 @@
|
||||
id: GameRules
|
||||
name: entity-category-name-game-rules
|
||||
hideSpawnMenu: true
|
||||
|
||||
- type: entityCategory
|
||||
id: Objectives
|
||||
name: entity-category-name-objectives
|
||||
hideSpawnMenu: true
|
||||
@@ -1,6 +1,6 @@
|
||||
# OBJECTIVE STYLE
|
||||
# in comments anything that says final prototype means the objective that isnt abstract
|
||||
# the final prototype must be noSpawn to avoid showing in f5
|
||||
# in comments anything that says final prototype means the objective that isnt abstract.
|
||||
# you dont need noSpawn because Objectives category is automatically added, which has hideSpawnmenu
|
||||
# components are listed in this order:
|
||||
# 1. Objective
|
||||
# 2. requirement components
|
||||
@@ -8,7 +8,7 @@
|
||||
# 4. the condition component
|
||||
|
||||
# all objectives should inherit this at some point
|
||||
# then have its difficulty etc fields set in the final objective prototypes
|
||||
# then have its icon etc fields set in the final objective prototypes
|
||||
- type: entity
|
||||
abstract: true
|
||||
id: BaseObjective
|
||||
|
||||
@@ -13,7 +13,6 @@
|
||||
- DragonRole
|
||||
|
||||
- type: entity
|
||||
noSpawn: true
|
||||
parent: BaseDragonObjective
|
||||
id: CarpRiftsObjective
|
||||
components:
|
||||
@@ -30,7 +29,6 @@
|
||||
- type: CarpRiftsCondition
|
||||
|
||||
- type: entity
|
||||
noSpawn: true
|
||||
parent: [BaseDragonObjective, BaseSurviveObjective]
|
||||
id: DragonSurviveObjective
|
||||
name: Survive
|
||||
|
||||
@@ -13,7 +13,6 @@
|
||||
- NinjaRole
|
||||
|
||||
- type: entity
|
||||
noSpawn: true
|
||||
parent: BaseNinjaObjective
|
||||
id: DoorjackObjective
|
||||
components:
|
||||
@@ -29,7 +28,6 @@
|
||||
- type: DoorjackCondition
|
||||
|
||||
- type: entity
|
||||
noSpawn: true
|
||||
parent: BaseNinjaObjective
|
||||
id: StealResearchObjective
|
||||
description: Your gloves can be used to hack a research server and steal its precious data. If science has been slacking you'll have to get to work.
|
||||
@@ -45,7 +43,6 @@
|
||||
- type: StealResearchCondition
|
||||
|
||||
- type: entity
|
||||
noSpawn: true
|
||||
parent: [BaseNinjaObjective, BaseCodeObjective]
|
||||
id: SpiderChargeObjective
|
||||
description: This bomb can be detonated in a specific location. Note that the bomb will not work anywhere else!
|
||||
@@ -56,7 +53,6 @@
|
||||
state: icon
|
||||
|
||||
- type: entity
|
||||
noSpawn: true
|
||||
parent: [BaseNinjaObjective, BaseSurviveObjective]
|
||||
id: NinjaSurviveObjective
|
||||
name: Survive
|
||||
@@ -68,7 +64,6 @@
|
||||
state: icon
|
||||
|
||||
- type: entity
|
||||
noSpawn: true
|
||||
parent: [BaseNinjaObjective, BaseCodeObjective]
|
||||
id: TerrorObjective
|
||||
name: Call in a threat
|
||||
@@ -80,7 +75,6 @@
|
||||
state: red_phone
|
||||
|
||||
- type: entity
|
||||
noSpawn: true
|
||||
parent: [BaseNinjaObjective, BaseCodeObjective]
|
||||
id: MassArrestObjective
|
||||
name: Set everyone to wanted
|
||||
|
||||
@@ -55,7 +55,6 @@
|
||||
# Collections
|
||||
|
||||
- type: entity
|
||||
noSpawn: true
|
||||
parent: BaseThiefStealCollectionObjective
|
||||
id: FigurineStealCollectionObjective
|
||||
components:
|
||||
@@ -67,7 +66,6 @@
|
||||
difficulty: 0.25
|
||||
|
||||
- type: entity
|
||||
noSpawn: true
|
||||
parent: BaseThiefStealCollectionObjective
|
||||
id: HeadCloakStealCollectionObjective
|
||||
components:
|
||||
@@ -79,7 +77,6 @@
|
||||
difficulty: 1.5
|
||||
|
||||
- type: entity
|
||||
noSpawn: true
|
||||
parent: BaseThiefStealCollectionObjective
|
||||
id: HeadBedsheetStealCollectionObjective
|
||||
components:
|
||||
@@ -91,7 +88,6 @@
|
||||
difficulty: 1.0
|
||||
|
||||
- type: entity
|
||||
noSpawn: true
|
||||
parent: BaseThiefStealCollectionObjective
|
||||
id: StampStealCollectionObjective
|
||||
components:
|
||||
@@ -103,7 +99,6 @@
|
||||
difficulty: 1.0
|
||||
|
||||
- type: entity
|
||||
noSpawn: true
|
||||
parent: BaseThiefStealCollectionObjective
|
||||
id: DoorRemoteStealCollectionObjective
|
||||
components:
|
||||
@@ -115,7 +110,6 @@
|
||||
difficulty: 1.5
|
||||
|
||||
- type: entity
|
||||
noSpawn: true
|
||||
parent: BaseThiefStealCollectionObjective
|
||||
id: TechnologyDiskStealCollectionObjective
|
||||
components:
|
||||
@@ -130,7 +124,6 @@
|
||||
difficulty: 0.8
|
||||
|
||||
- type: entity
|
||||
noSpawn: true
|
||||
parent: BaseThiefStealCollectionObjective
|
||||
id: IDCardsStealCollectionObjective
|
||||
components:
|
||||
@@ -145,7 +138,6 @@
|
||||
|
||||
|
||||
- type: entity
|
||||
noSpawn: true
|
||||
parent: BaseThiefStealCollectionObjective
|
||||
id: LAMPStealCollectionObjective
|
||||
components:
|
||||
@@ -163,7 +155,6 @@
|
||||
# steal item
|
||||
|
||||
- type: entity #Security subgroup
|
||||
noSpawn: true
|
||||
parent: BaseThiefStealObjective
|
||||
id: ForensicScannerStealObjective
|
||||
components:
|
||||
@@ -175,7 +166,6 @@
|
||||
difficulty: 1
|
||||
|
||||
- type: entity
|
||||
noSpawn: true
|
||||
parent: BaseThiefStealObjective
|
||||
id: FlippoEngravedLighterStealObjective
|
||||
components:
|
||||
@@ -187,7 +177,6 @@
|
||||
difficulty: 0.8
|
||||
|
||||
- type: entity
|
||||
noSpawn: true
|
||||
parent: BaseThiefStealObjective
|
||||
id: ClothingHeadHatWardenStealObjective
|
||||
components:
|
||||
@@ -197,7 +186,6 @@
|
||||
difficulty: 1.2
|
||||
|
||||
- type: entity #Medical subgroup
|
||||
noSpawn: true
|
||||
parent: BaseThiefStealObjective
|
||||
id: ClothingOuterHardsuitVoidParamedStealObjective
|
||||
components:
|
||||
@@ -209,7 +197,6 @@
|
||||
difficulty: 1
|
||||
|
||||
- type: entity
|
||||
noSpawn: true
|
||||
parent: BaseThiefStealObjective
|
||||
id: MedicalTechFabCircuitboardStealObjective
|
||||
components:
|
||||
@@ -221,7 +208,6 @@
|
||||
difficulty: 1
|
||||
|
||||
- type: entity
|
||||
noSpawn: true
|
||||
parent: BaseThiefStealObjective
|
||||
id: ClothingHeadsetAltMedicalStealObjective
|
||||
components:
|
||||
@@ -233,7 +219,6 @@
|
||||
difficulty: 1
|
||||
|
||||
- type: entity #Engineering subgroup
|
||||
noSpawn: true
|
||||
parent: BaseThiefStealObjective
|
||||
id: FireAxeStealObjective
|
||||
components:
|
||||
@@ -245,7 +230,6 @@
|
||||
difficulty: 0.8
|
||||
|
||||
- type: entity
|
||||
noSpawn: true
|
||||
parent: BaseThiefStealObjective
|
||||
id: AmePartFlatpackStealObjective
|
||||
components:
|
||||
@@ -257,7 +241,6 @@
|
||||
difficulty: 1
|
||||
|
||||
- type: entity #Cargo subgroup
|
||||
noSpawn: true
|
||||
parent: BaseThiefStealObjective
|
||||
id: ExpeditionsCircuitboardStealObjective
|
||||
components:
|
||||
@@ -269,7 +252,6 @@
|
||||
difficulty: 0.7
|
||||
|
||||
- type: entity
|
||||
noSpawn: true
|
||||
parent: BaseThiefStealObjective
|
||||
id: CargoShuttleCircuitboardStealObjective
|
||||
components:
|
||||
@@ -281,7 +263,6 @@
|
||||
difficulty: 0.7
|
||||
|
||||
- type: entity
|
||||
noSpawn: true
|
||||
parent: BaseThiefStealObjective
|
||||
id: SalvageShuttleCircuitboardStealObjective
|
||||
components:
|
||||
@@ -293,7 +274,6 @@
|
||||
difficulty: 0.7
|
||||
|
||||
- type: entity #Service subgroup
|
||||
noSpawn: true
|
||||
parent: BaseThiefStealObjective
|
||||
id: ClothingEyesHudBeerStealObjective
|
||||
components:
|
||||
@@ -305,7 +285,6 @@
|
||||
difficulty: 0.3
|
||||
|
||||
- type: entity
|
||||
noSpawn: true
|
||||
parent: BaseThiefStealObjective
|
||||
id: BibleStealObjective
|
||||
components:
|
||||
@@ -317,7 +296,6 @@
|
||||
difficulty: 0.4
|
||||
|
||||
- type: entity #Other subgroup
|
||||
noSpawn: true
|
||||
parent: BaseThiefStealObjective
|
||||
id: ClothingNeckGoldmedalStealObjective
|
||||
components:
|
||||
@@ -329,7 +307,6 @@
|
||||
difficulty: 1
|
||||
|
||||
- type: entity
|
||||
noSpawn: true
|
||||
parent: BaseThiefStealObjective
|
||||
id: ClothingNeckClownmedalStealObjective
|
||||
components:
|
||||
@@ -343,7 +320,6 @@
|
||||
# Structures
|
||||
|
||||
- type: entity
|
||||
noSpawn: true
|
||||
parent: BaseThiefStealStructureObjective
|
||||
id: NuclearBombStealObjective
|
||||
components:
|
||||
@@ -355,7 +331,6 @@
|
||||
difficulty: 2.5 #Good luck
|
||||
|
||||
- type: entity
|
||||
noSpawn: true
|
||||
parent: BaseThiefStealStructureObjective
|
||||
id: FaxMachineCaptainStealObjective
|
||||
components:
|
||||
@@ -367,7 +342,6 @@
|
||||
difficulty: 2
|
||||
|
||||
- type: entity
|
||||
noSpawn: true
|
||||
parent: BaseThiefStealStructureObjective
|
||||
id: ChemDispenserStealObjective
|
||||
components:
|
||||
@@ -379,7 +353,6 @@
|
||||
difficulty: 1
|
||||
|
||||
- type: entity
|
||||
noSpawn: true
|
||||
parent: BaseThiefStealStructureObjective
|
||||
id: XenoArtifactStealObjective
|
||||
components:
|
||||
@@ -391,7 +364,6 @@
|
||||
difficulty: 0.5
|
||||
|
||||
- type: entity
|
||||
noSpawn: true
|
||||
parent: BaseThiefStealStructureObjective
|
||||
id: FreezerHeaterStealObjective
|
||||
components:
|
||||
@@ -403,7 +375,6 @@
|
||||
difficulty: 0.5
|
||||
|
||||
- type: entity
|
||||
noSpawn: true
|
||||
parent: BaseThiefStealStructureObjective
|
||||
id: TegStealObjective
|
||||
components:
|
||||
@@ -415,7 +386,6 @@
|
||||
difficulty: 1
|
||||
|
||||
- type: entity
|
||||
noSpawn: true
|
||||
parent: BaseThiefStealStructureObjective
|
||||
id: BoozeDispenserStealObjective
|
||||
components:
|
||||
@@ -427,7 +397,6 @@
|
||||
difficulty: 0.5
|
||||
|
||||
- type: entity
|
||||
noSpawn: true
|
||||
parent: BaseThiefStealStructureObjective
|
||||
id: AltarNanotrasenStealObjective
|
||||
components:
|
||||
@@ -439,7 +408,6 @@
|
||||
difficulty: 0.5
|
||||
|
||||
- type: entity
|
||||
noSpawn: true
|
||||
parent: BaseThiefStealStructureObjective
|
||||
id: PlantRDStealObjective
|
||||
components:
|
||||
@@ -453,7 +421,6 @@
|
||||
# Animal
|
||||
|
||||
- type: entity
|
||||
noSpawn: true
|
||||
parent: BaseThiefStealAnimalObjective
|
||||
id: IanStealObjective
|
||||
components:
|
||||
@@ -465,7 +432,6 @@
|
||||
difficulty: 2.5
|
||||
|
||||
- type: entity
|
||||
noSpawn: true
|
||||
parent: BaseThiefStealAnimalObjective
|
||||
id: BingusStealObjective
|
||||
components:
|
||||
@@ -475,7 +441,6 @@
|
||||
difficulty: 1
|
||||
|
||||
- type: entity
|
||||
noSpawn: true
|
||||
parent: BaseThiefStealAnimalObjective
|
||||
id: McGriffStealObjective
|
||||
components:
|
||||
@@ -487,7 +452,6 @@
|
||||
difficulty: 1
|
||||
|
||||
- type: entity
|
||||
noSpawn: true
|
||||
parent: BaseThiefStealAnimalObjective
|
||||
id: WalterStealObjective
|
||||
components:
|
||||
@@ -499,7 +463,6 @@
|
||||
difficulty: 1
|
||||
|
||||
- type: entity
|
||||
noSpawn: true
|
||||
parent: BaseThiefStealAnimalObjective
|
||||
id: MortyStealObjective
|
||||
components:
|
||||
@@ -509,7 +472,6 @@
|
||||
difficulty: 0.5
|
||||
|
||||
- type: entity
|
||||
noSpawn: true
|
||||
parent: BaseThiefStealAnimalObjective
|
||||
id: RenaultStealObjective
|
||||
components:
|
||||
@@ -521,7 +483,6 @@
|
||||
difficulty: 2
|
||||
|
||||
- type: entity
|
||||
noSpawn: true
|
||||
parent: BaseThiefStealAnimalObjective
|
||||
id: ShivaStealObjective
|
||||
components:
|
||||
@@ -533,7 +494,6 @@
|
||||
difficulty: 2
|
||||
|
||||
- type: entity
|
||||
noSpawn: true
|
||||
parent: BaseThiefStealAnimalObjective
|
||||
id: TropicoStealObjective
|
||||
components:
|
||||
@@ -547,7 +507,6 @@
|
||||
# Escape
|
||||
|
||||
- type: entity
|
||||
noSpawn: true
|
||||
parent: [BaseThiefObjective, BaseLivingObjective]
|
||||
id: EscapeThiefShuttleObjective
|
||||
name: Escape to centcom alive and unrestrained.
|
||||
|
||||
@@ -36,7 +36,6 @@
|
||||
# state
|
||||
|
||||
- type: entity
|
||||
noSpawn: true
|
||||
parent: [BaseTraitorObjective, BaseLivingObjective]
|
||||
id: EscapeShuttleObjective
|
||||
name: Escape to centcom alive and unrestrained.
|
||||
@@ -50,7 +49,6 @@
|
||||
- type: EscapeShuttleCondition
|
||||
|
||||
- type: entity
|
||||
noSpawn: true
|
||||
parent: BaseTraitorObjective
|
||||
id: DieObjective
|
||||
name: Die a glorious death
|
||||
@@ -69,7 +67,6 @@
|
||||
- type: DieCondition
|
||||
|
||||
#- type: entity
|
||||
# noSpawn: true
|
||||
# parent: [BaseTraitorObjective, BaseLivingObjective]
|
||||
# id: HijackShuttleObjective
|
||||
# name: Hijack emergency shuttle
|
||||
@@ -85,7 +82,6 @@
|
||||
# kill
|
||||
|
||||
- type: entity
|
||||
noSpawn: true
|
||||
parent: [BaseTraitorObjective, BaseKillObjective]
|
||||
id: KillRandomPersonObjective
|
||||
description: Do it however you like, just make sure they don't make it to centcom.
|
||||
@@ -98,7 +94,6 @@
|
||||
- type: PickRandomPerson
|
||||
|
||||
- type: entity
|
||||
noSpawn: true
|
||||
parent: [BaseTraitorObjective, BaseKillObjective]
|
||||
id: KillRandomHeadObjective
|
||||
description: We need this head gone and you probably know why. Good luck, agent.
|
||||
@@ -119,7 +114,6 @@
|
||||
# social
|
||||
|
||||
- type: entity
|
||||
noSpawn: true
|
||||
parent: [BaseTraitorSocialObjective, BaseKeepAliveObjective]
|
||||
id: RandomTraitorAliveObjective
|
||||
description: Identify yourself at your own risk. We just need them alive.
|
||||
@@ -131,7 +125,6 @@
|
||||
- type: RandomTraitorAlive
|
||||
|
||||
- type: entity
|
||||
noSpawn: true
|
||||
parent: [BaseTraitorSocialObjective, BaseHelpProgressObjective]
|
||||
id: RandomTraitorProgressObjective
|
||||
description: Identify yourself at your own risk. We just need them to succeed.
|
||||
@@ -157,7 +150,6 @@
|
||||
owner: job-name-cmo
|
||||
|
||||
- type: entity
|
||||
noSpawn: true
|
||||
parent: BaseCMOStealObjective
|
||||
id: CMOHyposprayStealObjective
|
||||
components:
|
||||
@@ -165,7 +157,6 @@
|
||||
stealGroup: Hypospray
|
||||
|
||||
- type: entity
|
||||
noSpawn: true
|
||||
parent: BaseCMOStealObjective
|
||||
id: CMOCrewMonitorStealObjective
|
||||
components:
|
||||
@@ -185,7 +176,6 @@
|
||||
owner: job-name-rd
|
||||
|
||||
- type: entity
|
||||
noSpawn: true
|
||||
parent: BaseRDStealObjective
|
||||
id: RDHardsuitStealObjective
|
||||
components:
|
||||
@@ -196,7 +186,6 @@
|
||||
difficulty: 3
|
||||
|
||||
- type: entity
|
||||
noSpawn: true
|
||||
parent: BaseRDStealObjective
|
||||
id: HandTeleporterStealObjective
|
||||
components:
|
||||
@@ -206,7 +195,6 @@
|
||||
## hos
|
||||
|
||||
- type: entity
|
||||
noSpawn: true
|
||||
parent: BaseTraitorStealObjective
|
||||
id: SecretDocumentsStealObjective
|
||||
components:
|
||||
@@ -222,7 +210,6 @@
|
||||
## ce
|
||||
|
||||
- type: entity
|
||||
noSpawn: true
|
||||
parent: BaseTraitorStealObjective
|
||||
id: MagbootsStealObjective
|
||||
components:
|
||||
@@ -235,7 +222,6 @@
|
||||
## qm
|
||||
|
||||
- type: entity
|
||||
noSpawn: true
|
||||
parent: BaseTraitorStealObjective
|
||||
id: ClipboardStealObjective
|
||||
components:
|
||||
@@ -248,7 +234,6 @@
|
||||
## hop
|
||||
|
||||
- type: entity
|
||||
noSpawn: true
|
||||
parent: BaseTraitorStealObjective
|
||||
id: CorgiMeatStealObjective
|
||||
components:
|
||||
@@ -274,7 +259,6 @@
|
||||
job: Captain
|
||||
|
||||
- type: entity
|
||||
noSpawn: true
|
||||
parent: BaseCaptainObjective
|
||||
id: CaptainIDStealObjective
|
||||
components:
|
||||
@@ -282,7 +266,6 @@
|
||||
stealGroup: CaptainIDCard
|
||||
|
||||
- type: entity
|
||||
noSpawn: true
|
||||
parent: BaseCaptainObjective
|
||||
id: CaptainJetpackStealObjective
|
||||
components:
|
||||
@@ -290,7 +273,6 @@
|
||||
stealGroup: JetpackCaptainFilled
|
||||
|
||||
- type: entity
|
||||
noSpawn: true
|
||||
parent: BaseCaptainObjective
|
||||
id: CaptainGunStealObjective
|
||||
components:
|
||||
@@ -299,7 +281,6 @@
|
||||
owner: job-name-captain
|
||||
|
||||
- type: entity
|
||||
noSpawn: true
|
||||
parent: BaseCaptainObjective
|
||||
id: NukeDiskStealObjective
|
||||
components:
|
||||
|
||||
Reference in New Issue
Block a user