make objectives use entityCategory (#28269)

This commit is contained in:
deltanedas
2024-06-03 13:23:52 +00:00
committed by GitHub
parent 33d963a149
commit 8d78b7442a
8 changed files with 15 additions and 75 deletions

View File

@@ -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;
}

View File

@@ -1,2 +1,3 @@
entity-category-name-actions = Actions
entity-category-name-game-rules = Game Rules
entity-category-name-objectives = Objectives

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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.

View File

@@ -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: