Syndicate Synthesis Specialist Midround Antag (#1530)

* new file:   Content.Shared/DeltaV/Roles/SynthesisRole.cs
	modified:   Resources/Locale/en-US/deltav/ghost/roles/ghost-role-component.ftl
	new file:   Resources/Locale/en-US/deltav/synthesis/recruiter.ftl
	new file:   Resources/Maps/Shuttles/DeltaV/synthesis_ship.yml
	modified:   Resources/Prototypes/DeltaV/Entities/Markers/Spawners/ghost_roles.yml
	modified:   Resources/Prototypes/DeltaV/GameRules/events.yml
	new file:   Resources/Prototypes/DeltaV/Objectives/synthesis_specialist.yml
	new file:   Resources/Prototypes/DeltaV/Roles/Antags/synthesis_specialist.yml
	new file:   Resources/Prototypes/DeltaV/Shuttles/synthesis.yml

* Update recruiter.ftl

Signed-off-by: Lyndomen <49795619+Lyndomen@users.noreply.github.com>

* Update ghost-role-component.ftl

Signed-off-by: Lyndomen <49795619+Lyndomen@users.noreply.github.com>

* Update ghost-role-component.ftl

Signed-off-by: Lyndomen <49795619+Lyndomen@users.noreply.github.com>

* Update ghost-role-component.ftl

Signed-off-by: Lyndomen <49795619+Lyndomen@users.noreply.github.com>

* Update Resources/Prototypes/DeltaV/GameRules/events.yml

Co-authored-by: Danger Revolution! <142105406+DangerRevolution@users.noreply.github.com>
Signed-off-by: Lyndomen <49795619+Lyndomen@users.noreply.github.com>

* Rename recruiter.ftl to synthesis.ftl

Signed-off-by: Lyndomen <49795619+Lyndomen@users.noreply.github.com>

* Update synthesis_specialist.yml

Signed-off-by: Lyndomen <49795619+Lyndomen@users.noreply.github.com>

* Update synthesis_specialist.yml

Signed-off-by: Lyndomen <49795619+Lyndomen@users.noreply.github.com>

* Update synthesis_specialist.yml

Signed-off-by: Lyndomen <49795619+Lyndomen@users.noreply.github.com>

* Update events.yml

Signed-off-by: Lyndomen <49795619+Lyndomen@users.noreply.github.com>

* Update synthesis_ship.yml

Signed-off-by: Lyndomen <49795619+Lyndomen@users.noreply.github.com>

---------

Signed-off-by: Lyndomen <49795619+Lyndomen@users.noreply.github.com>
Co-authored-by: Danger Revolution! <142105406+DangerRevolution@users.noreply.github.com>
This commit is contained in:
Lyndomen
2024-08-04 02:19:24 +02:00
committed by GitHub
co-authored by Danger Revolution!
parent 5c23642b39
commit 0cc2c013eb
9 changed files with 2291 additions and 0 deletions
@@ -0,0 +1,6 @@
using Content.Shared.Roles;
namespace Content.Shared.DeltaV.Roles;
[RegisterComponent, ExclusiveAntagonist]
public sealed partial class SynthesisRoleComponent : AntagonistRoleComponent;
@@ -26,3 +26,12 @@ ghost-role-information-recruiter-rules =
ghost-role-information-silvia-name = Silvia
ghost-role-information-silvia-description = You are Silvia the space snake and the CMO's charming companion.
ghost-role-information-silvia-rules = Keep the medical team company and help out in emergencies with your omnizine venom. Stick close to the CMO in case they need emergency healing.
ghost-role-information-synthesis-name = Synthesis Specialist
ghost-role-information-synthesis-description = You are a member of Interdyne Pharmaceutics! You are provided all the tools to manufacture a variety of medical cocktails. Establish your craft, peddle your poisons, and make profit.
ghost-role-information-synthesis-rules =
Brew deadly poisons, marvelous medicines, and anything in between.
Sell your concoctions to local agents, crew, and anyone with supplies.
Stay on your ship, it is your lifeblood!
You are just a chemist so do not act like a full-on antagonist, i.e. no killing people yourself unless your ship is in danger.
@@ -0,0 +1 @@
synthesis-round-end-agent-name = Synthesis Specialist
File diff suppressed because it is too large Load Diff
@@ -88,3 +88,19 @@
- state: green
- sprite: DeltaV/Objects/Misc/recruiter_pen.rsi
state: empty
- type: entity
noSpawn: true
parent: BaseAntagSpawner
id: SpawnPointGhostSynthesis
components:
- type: GhostRole
name: ghost-role-information-synthesis-name
description: ghost-role-information-synthesis-description
rules: ghost-role-information-synthesis-rules
requirements: # keep in sync with the antag prototype
- !type:OverallPlaytimeRequirement
time: 86400 # 24h so you probably know some general lore or something
- !type:RoleTimeRequirement
role: JobChemist
time: 7200 # 2h chemist so you know how to make CH
@@ -207,3 +207,45 @@
prototype: Recruiter
- type: RoleBriefing
briefing: Find candidates, conduct interviews and seal the deal by having them sign with your special recruiter's pen.
- type: entity
parent: BaseGameRule
id: SynthesisSpecialist
components:
- type: StationEvent
weight: 4
minimumPlayers: 20
maxOccurrences: 1
duration: 1
- type: RuleGrids
- type: LoadMapRule
preloadedGrid: SyndieSynthesisShip
- type: AntagSpawner
prototype: MobHuman
- type: AntagObjectives
objectives:
- SynthesisSurviveObjective
- SynthesisPrescribeObjective
- type: AntagSelection
agentName: synthesis-round-end-agent-name
definitions:
- spawnerPrototype: SpawnPointGhostSynthesis
min: 2
max: 2
pickPlayer: false
startingGear: SyndicateSynthesisGear
components:
- type: RandomMetadata
nameSegments:
- fake_human_first
- fake_human_last
- type: RandomHumanoidAppearance
randomizeName: false
- type: NpcFactionMember
factions:
- Syndicate
mindComponents:
- type: SynthesisRole
prototype: SynthesisSpecialist
- type: RoleBriefing
briefing: You are Interdyne's Synthesis Specialist! Prescribe deadly medications, barter your goods, and make a killing.
@@ -0,0 +1,33 @@
- type: entity
abstract: true
parent: BaseTraitorObjective
id: BaseSynthesisObjective
components:
- type: Objective
difficulty: 0 # difficulty is unused
- type: RoleRequirement
roles:
components:
- SynthesisRole
- type: entity
parent: [BaseSynthesisObjective, BaseSurviveObjective]
id: SynthesisSurviveObjective
description: Survive to sell off your goods another day!
name: Survive and Prosper
components:
- type: Objective
icon:
sprite: Objects/Storage/Briefcases/briefcase_brown.rsi
state: icon
- type: entity
parent: [BaseSynthesisObjective, BaseSurviveObjective]
id: SynthesisPrescribeObjective
description: Sell your finest potions, craft nefarious concoctions, and peddle them to the highest bidder.
name: Profit and Synthesis
components:
- type: Objective
icon:
sprite: Objects/Specific/Chemistry/chem_bag.rsi
state: icon
@@ -0,0 +1,29 @@
- type: antag
id: SynthesisSpecialist
name: roles-antag-syndicate-sythesis-name
objective: roles-antag-syndicate-synthesis-objective
antagonist: true # making poisions and shit on demand is evil
requirements:
- !type:OverallPlaytimeRequirement
time: 86400 # 24h so you probably know some general lore or something
- !type:RoleTimeRequirement
role: JobChemist
time: 7200 # 2h chemist so you know how to make CH
- type: startingGear
id: SyndicateSynthesisGear
equipment:
jumpsuit: ClothingUniformJumpsuitSyndieFormal
jumpskirt: ClothingUniformJumpskirtSyndieFormalDress
back: ClothingBackpackChemistryFilled
belt: ChemBag
eyes: ClothingEyesGlassesChemical
gloves: ClothingHandsGlovesChemist
outerClothing: ClothingOuterCoatLabChem
shoes: ClothingShoesEnclosedChem
id: SyndiPDA
ears: ClothingHeadsetAltSyndicate
pocket1: HandLabeler
pocket2: RubberStampSyndicate
mask: ClothingMaskNeckGaiter
head: ClothingHeadHatSyndie
@@ -0,0 +1,4 @@
- type: preloadedGrid
id: SyndieSynthesisShip
path: /Maps/Shuttles/DeltaV/synthesis_ship.yml
copies: 1