From e1da7ec9c59101c579774c5dc056199e920d8b18 Mon Sep 17 00:00:00 2001 From: 2DSiggy Date: Thu, 18 Sep 2025 16:09:44 -0400 Subject: [PATCH] Better thief objectives (#39867) * finally some good objectives * oopsie * guh fuck * more steal objectives that are actually good * i want to die * fucking upload to github please * adding it to the objectiveGroups.yml * higher weights for testing * upload * just need to do text shit. coding done waow * OBJECTIVES WORK AND HAVE TEXT. FIX VIS * I THINK ITS DONE AAAAAAAAAAAAAAA * grammatical fix * more formatting fixes * i might be stupid * forgot to fix a weight issue * more grammar grrrrrrrrrrrrr * made the double barrel obj have higher difficulty since it's cared about more than beer goggles * Requested Changes * forgot a thing oopsie --- .../conditions/steal-target-groups.ftl | 3 + .../Entities/Clothing/Belt/belts.yml | 2 + .../Objects/Weapons/Guns/Pistols/pistols.yml | 2 + .../Weapons/Guns/Revolvers/revolvers.yml | 2 + .../Entities/Objects/Weapons/Melee/sword.yml | 2 + .../Prototypes/Objectives/objectiveGroups.yml | 9 ++- .../Objectives/stealTargetGroups.yml | 21 +++++++ Resources/Prototypes/Objectives/thief.yml | 59 +++++++++++++++---- 8 files changed, 87 insertions(+), 13 deletions(-) diff --git a/Resources/Locale/en-US/objectives/conditions/steal-target-groups.ftl b/Resources/Locale/en-US/objectives/conditions/steal-target-groups.ftl index a84549ec95..f800aa2c8d 100644 --- a/Resources/Locale/en-US/objectives/conditions/steal-target-groups.ftl +++ b/Resources/Locale/en-US/objectives/conditions/steal-target-groups.ftl @@ -23,6 +23,7 @@ steal-target-groups-encryption-keys = encryption key steal-target-groups-technology-disks = technology disk steal-target-groups-mail = mail steal-target-groups-id-cards = ID Card +steal-target-groups-officer-handguns = security officer's handgun steal-target-groups-lamps = LAMP # Thief single item @@ -43,6 +44,8 @@ steal-target-groups-bible = bible steal-target-groups-clothing-neck-goldmedal = gold medal of crewmanship steal-target-groups-clothing-neck-clownmedal = clown medal steal-target-groups-wanted-list-cartridge = wanted list cartridge +steal-target-groups-belt-ce = chief engineer's toolbelt +steal-target-groups-captain-sword = captain's sabre # Thief structures steal-target-groups-teg = teg generator part diff --git a/Resources/Prototypes/Entities/Clothing/Belt/belts.yml b/Resources/Prototypes/Entities/Clothing/Belt/belts.yml index ffb403534f..06c38cc694 100644 --- a/Resources/Prototypes/Entities/Clothing/Belt/belts.yml +++ b/Resources/Prototypes/Entities/Clothing/Belt/belts.yml @@ -170,6 +170,8 @@ - Wrench sprite: Clothing/Belt/belt_overlay.rsi - type: Appearance + - type: StealTarget + stealGroup: ChiefEngineerToolBelt - type: entity parent: ClothingBeltStorageBase diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Pistols/pistols.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Pistols/pistols.yml index eaa58562f1..ec3fa31297 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Pistols/pistols.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Pistols/pistols.yml @@ -213,6 +213,8 @@ - SemiAuto soundGunshot: path: /Audio/Weapons/Guns/Gunshots/mk58.ogg + - type: StealTarget + stealGroup: OfficerHandgun - type: entity name: N1984 diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Revolvers/revolvers.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Revolvers/revolvers.yml index f860830dc7..1f24828428 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Revolvers/revolvers.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Revolvers/revolvers.yml @@ -95,6 +95,8 @@ capacity: 6 chambers: [ True, True, True, True, True, True ] ammoSlots: [ null, null, null, null, null, null ] + - type: StealTarget + stealGroup: OfficerHandgun - type: entity name: Mateba diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Melee/sword.yml b/Resources/Prototypes/Entities/Objects/Weapons/Melee/sword.yml index a1fea197ab..a468760035 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Melee/sword.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Melee/sword.yml @@ -107,6 +107,8 @@ weight: 0.0002 # 5,000 times less likely than 1 regular animal - type: PirateAccent # not putting a BlockMovement component here cause that's funny. + - type: StealTarget + stealGroup: CaptainSword - type: entity name: katana diff --git a/Resources/Prototypes/Objectives/objectiveGroups.yml b/Resources/Prototypes/Objectives/objectiveGroups.yml index b3f4587ffa..e53310b132 100644 --- a/Resources/Prototypes/Objectives/objectiveGroups.yml +++ b/Resources/Prototypes/Objectives/objectiveGroups.yml @@ -63,26 +63,29 @@ HeadBedsheetStealCollectionObjective: 1 StampStealCollectionObjective: 1 DoorRemoteStealCollectionObjective: 1 + OfficerHandgunsStealCollectionObjective: 1 #sec TechnologyDiskStealCollectionObjective: 1 #sci MailStealCollectionObjective: 1 #cargo IDCardsStealCollectionObjective: 1 - LAMPStealCollectionObjective: 2 #only for moth + LAMPStealCollectionObjective: 0.1 #only for moth, weight decreased cause boring and insanely easy - type: weightedRandom id: ThiefObjectiveGroupItem weights: + ChiefEngineerToolbeltStealObjective: .5 #command + CaptainSwordStealObjective: .5 + ClothingHeadsetAltMedicalStealObjective: 1 ForensicScannerStealObjective: 1 #sec FlippoEngravedLighterStealObjective: 0.5 ClothingHeadHatWardenStealObjective: 1 WantedListCartridgeStealObjective: 1 ClothingOuterHardsuitVoidParamedStealObjective: 1 #med MedicalTechFabCircuitboardStealObjective: 1 - ClothingHeadsetAltMedicalStealObjective: 1 FireAxeStealObjective: 1 #eng AmePartFlatpackStealObjective: 1 ExpeditionsCircuitboardStealObjective: 1 #sup CargoShuttleCircuitboardStealObjective: 1 - ClothingEyesHudBeerStealObjective: 1 #srv + ClothingEyesHudBeerStealObjective: 0.5 #srv, beer goggles less common cause its so easy BibleStealObjective: 1 ClothingNeckGoldmedalStealObjective: 1 #other ClothingNeckClownmedalStealObjective: 0.5 diff --git a/Resources/Prototypes/Objectives/stealTargetGroups.yml b/Resources/Prototypes/Objectives/stealTargetGroups.yml index c687c52a46..d25908d154 100644 --- a/Resources/Prototypes/Objectives/stealTargetGroups.yml +++ b/Resources/Prototypes/Objectives/stealTargetGroups.yml @@ -121,6 +121,13 @@ sprite: Objects/Devices/door_remote.rsi state: door_remotebase +- type: stealTargetGroup + id: OfficerHandgun + name: steal-target-groups-officer-handguns + sprite: + sprite: Objects/Weapons/Guns/Pistols/mk58.rsi + state: base + - type: stealTargetGroup id: EncryptionKey name: steal-target-groups-encryption-keys @@ -228,6 +235,13 @@ sprite: Objects/Devices/flatpack.rsi state: ame-part +- type: stealTargetGroup + id: ChiefEngineerToolBelt + name: steal-target-groups-belt-ce + sprite: + sprite: Clothing/Belt/ce.rsi + state: icon + - type: stealTargetGroup id: SalvageExpeditionsComputerCircuitboard name: steal-target-groups-salvage-expeditions-computer-circuitboard @@ -277,6 +291,13 @@ sprite: Objects/Devices/cartridge.rsi state: cart-sec +- type: stealTargetGroup + id: CaptainSword + name: steal-target-groups-captain-sword + sprite: + sprite: Objects/Weapons/Melee/captain_sabre.rsi + state: icon + #Thief structures - type: stealTargetGroup diff --git a/Resources/Prototypes/Objectives/thief.yml b/Resources/Prototypes/Objectives/thief.yml index 9f2caf5220..80879aae99 100644 --- a/Resources/Prototypes/Objectives/thief.yml +++ b/Resources/Prototypes/Objectives/thief.yml @@ -128,6 +128,8 @@ parent: BaseThiefStealCollectionObjective id: IDCardsStealCollectionObjective components: + - type: NotJobRequirement #Here cause you can buy a personnel crate from cargo which is 8 ID cards. Meaning the ID you start with is number nine and you only need to steal one. + job: CargoTechnician #TODO: add salvage specialist - type: StealCondition stealGroup: IDCard minCollectionSize: 5 @@ -136,6 +138,21 @@ - type: Objective difficulty: 0.7 +- type: entity + parent: BaseThiefStealCollectionObjective + id: OfficerHandgunsStealCollectionObjective + components: + - type: NotJobRequirement + job: SecurityOfficer #TODO: Add HoS, Detective, and Warden + - type: StealCondition + stealGroup: OfficerHandgun + minCollectionSize: 2 + maxCollectionSize: 5 + verifyMapExistence: false + checkStealAreas: false + - type: Objective + difficulty: 1.2 + - type: entity parent: BaseThiefStealCollectionObjective id: LAMPStealCollectionObjective @@ -149,7 +166,7 @@ maxCollectionSize: 10 verifyMapExistence: true - type: Objective - difficulty: 0.5 # just for fun, collectings LAMP on Moth + difficulty: 0.1 # just for fun, collecting LAMP on Moth # steal item @@ -198,7 +215,7 @@ id: ClothingOuterHardsuitVoidParamedStealObjective components: - type: NotJobRequirement - job: Paramedic + job: Paramedic #TODO: make it so this also includes Medical Doctor, Chemist and Psychologist - type: StealCondition stealGroup: ClothingOuterHardsuitVoidParamed - type: Objective @@ -209,7 +226,7 @@ id: MedicalTechFabCircuitboardStealObjective components: - type: NotJobRequirement - job: MedicalDoctor + job: MedicalDoctor #TODO: make it so this also includes Chemist, Paramedic and Psychologist - type: StealCondition stealGroup: MedicalTechFabCircuitboard - type: Objective @@ -242,12 +259,23 @@ id: AmePartFlatpackStealObjective components: - type: NotJobRequirement - job: StationEngineer + job: StationEngineer #TODO: make it so this also includes Atmos technician - type: StealCondition stealGroup: AmePartFlatpack - type: Objective difficulty: 1 +- type: entity + parent: BaseThiefStealObjective + id: ChiefEngineerToolbeltStealObjective + components: + #- type: NotJobRequirement Is this really necessary? it's a pickpocket objective. Only thing is that it would be easier to get to CE + # Job: StationEngineer, AtmosphericTechnician + - type: StealCondition + stealGroup: ChiefEngineerToolBelt + - type: Objective + difficulty: .7 + - type: entity #Cargo subgroup parent: BaseThiefStealObjective id: ExpeditionsCircuitboardStealObjective @@ -264,7 +292,7 @@ id: CargoShuttleCircuitboardStealObjective components: - type: NotJobRequirement - job: CargoTechnician + job: CargoTechnician #TODO: make it so this also includes Salvage Specialist - type: StealCondition stealGroup: CargoShuttleConsoleCircuitboard - type: Objective @@ -275,7 +303,7 @@ id: ClothingEyesHudBeerStealObjective components: - type: NotJobRequirement - job: Bartender + job: Bartender #TODO: make it so this also includes Service worker - type: StealCondition stealGroup: ClothingEyesHudBeer - type: Objective @@ -314,6 +342,17 @@ - type: Objective difficulty: 1 +- type: entity + parent: BaseThiefStealObjective + id: CaptainSwordStealObjective + components: + - type: NotJobRequirement + job: Captain + - type: StealCondition + stealGroup: CaptainSword + - type: Objective + difficulty: 1.5 + # Structures - type: entity @@ -343,7 +382,7 @@ id: ChemDispenserStealObjective components: - type: NotJobRequirement - job: Chemist + job: Chemist #TODO: make it so this also includes Scientist. It's a roundstart circuit they can construct. - type: StealCondition stealGroup: ChemDispenser - type: Objective @@ -365,7 +404,7 @@ id: FreezerHeaterStealObjective components: - type: NotJobRequirement - job: AtmosphericTechnician + job: AtmosphericTechnician #TODO: make it so this also includes Engineer, Medical doctor, chemist and maybe also scientist. Medical doc and chemist cause cryogenics, scientist cause it can be built and is sometimes mapped in artisci - type: StealCondition stealGroup: FreezerHeater - type: Objective @@ -376,7 +415,7 @@ id: TegStealObjective components: - type: NotJobRequirement - job: AtmosphericTechnician + job: AtmosphericTechnician #TODO: make it so this also includes Engineer, Several TEG only maps have TEG accessible by standard Engineers - type: StealCondition stealGroup: Teg - type: Objective @@ -387,7 +426,7 @@ id: BoozeDispenserStealObjective components: - type: NotJobRequirement - job: Bartender + job: Bartender #TODO: make it so this also includes Service worker - type: StealCondition stealGroup: BoozeDispenser - type: Objective -- 2.51.2