Merge remote-tracking branch 'upstream/stable' into ed-15-10-2024-upstream

# Conflicts:
#	Content.Server/Station/Systems/StationSpawningSystem.cs
This commit is contained in:
Ed
2024-10-15 15:25:44 +03:00
146 changed files with 11990 additions and 20002 deletions

View File

@@ -887,7 +887,7 @@
discountDownTo:
Telecrystal: 2
cost:
Telecrystal: 4
Telecrystal: 3
categories:
- UplinkDisruption

View File

@@ -48,6 +48,11 @@
name: signal-port-name-trigger
description: signal-port-description-trigger
- type: sinkPort
id: Timer
name: signal-port-name-timer
description: signal-port-description-timer
- type: sinkPort
id: OrderReceiver
name: signal-port-name-order-receiver

View File

@@ -2,13 +2,13 @@
id: Pressed
name: signal-port-name-pressed
description: signal-port-description-pressed
defaultLinks: [ Toggle, Trigger ]
defaultLinks: [ Toggle, Trigger, Timer ]
- type: sourcePort
id: On
name: signal-port-name-on-transmitter
description: signal-port-description-on-transmitter
defaultLinks: [ On, Open, Forward, Trigger ]
defaultLinks: [ On, Open, Forward, Trigger, Timer ]
- type: sourcePort
id: Off
@@ -25,13 +25,13 @@
id: Left
name: signal-port-name-left
description: signal-port-description-left
defaultLinks: [ On, Open, Forward, Trigger ]
defaultLinks: [ On, Open, Forward, Trigger, Timer ]
- type: sourcePort
id: Right
name: signal-port-name-right
description: signal-port-description-right
defaultLinks: [ On, Open, Reverse, Trigger ]
defaultLinks: [ On, Open, Reverse, Trigger, Timer ]
- type: sourcePort
id: Middle
@@ -76,7 +76,7 @@
id: Timer
name: signal-port-name-timer-trigger
description: signal-port-description-timer-trigger
defaultLinks: [ AutoClose, On, Open, Forward, Trigger ]
defaultLinks: [ AutoClose, On, Open, Forward, Trigger, Timer ]
- type: sourcePort
id: Start
@@ -94,7 +94,7 @@
id: OutputHigh
name: signal-port-name-logic-output-high
description: signal-port-description-logic-output-high
defaultLinks: [ On, Open, Forward, Trigger ]
defaultLinks: [ On, Open, Forward, Trigger, Timer ]
- type: sourcePort
id: OutputLow

View File

@@ -312,3 +312,14 @@
- WhitelistChameleon
- type: StaticPrice
price: 1
- type: entity
parent: ClothingHeadBase
id: ClothingHeadHatHairflower
name: hairflower
description: A beautiful hairflower that can be inserted between locks of hair.
components:
- type: Sprite
sprite: Clothing/Head/Misc/hairflower.rsi
- type: Clothing
sprite: Clothing/Head/Misc/hairflower.rsi

View File

@@ -47,8 +47,6 @@
collection: FootstepDuck
params:
variation: 0.07
- type: WaddleWhenWorn
tumbleIntensity: 10 # smaller than clown shoes
- type: Construction
graph: ClothingShoeSlippersDuck
node: shoes

View File

@@ -15,7 +15,6 @@
parent: [ClothingShoesBaseButcherable, ClothingSlotBase]
id: ClothingShoesClownBase
components:
- type: WaddleWhenWorn
- type: ItemSlots
slots:
item:

View File

@@ -96,7 +96,7 @@
- type: entity
id: ActionAGhostShowSolar
name: Solar Control Interface
description: View a solar control interface.
description: View a Solar Control Interface.
components:
- type: InstantAction
icon: { sprite: Structures/Machines/parts.rsi, state: box_0 }
@@ -108,7 +108,7 @@
- type: entity
id: ActionAGhostShowCommunications
name: Communications Interface
description: View a communications interface.
description: View a Communications Interface.
components:
- type: InstantAction
icon: { sprite: Interface/Actions/actions_ai.rsi, state: comms_console }
@@ -120,7 +120,7 @@
- type: entity
id: ActionAGhostShowRadar
name: Mass Scanner Interface
description: View a mass scanner interface.
description: View a Mass Scanner Interface.
components:
- type: InstantAction
icon: { sprite: Interface/Actions/actions_ai.rsi, state: mass_scanner }
@@ -132,7 +132,7 @@
- type: entity
id: ActionAGhostShowCargo
name: Cargo Ordering Interface
description: View a cargo ordering interface.
description: View a Cargo Ordering Interface.
components:
- type: InstantAction
icon: { sprite: Structures/Machines/parts.rsi, state: box_0 }
@@ -144,7 +144,7 @@
- type: entity
id: ActionAGhostShowCrewMonitoring
name: Crew Monitoring Interface
description: View a crew monitoring interface.
description: View a Crew Monitoring Interface.
components:
- type: InstantAction
icon: { sprite: Interface/Actions/actions_ai.rsi, state: crew_monitor }
@@ -156,7 +156,7 @@
- type: entity
id: ActionAGhostShowStationRecords
name: Station Records Interface
description: View a station records Interface.
description: View a Station Records Interface.
components:
- type: InstantAction
icon: { sprite: Interface/Actions/actions_ai.rsi, state: station_records }

View File

@@ -150,7 +150,9 @@
tags:
- CannotSuicide
- DoorBumpOpener
- type: Puller
needsHands: false
- type: entity
parent: BaseMobDragon
id: MobDragon

View File

@@ -23,7 +23,7 @@
- ReagentId: Vitamin
Quantity: 5
- type: Food #All pies here made with a pie tin; unless you're some kind of savage, you're probably not destroying this when you eat or slice the pie!
trash:
trash:
- FoodPlateTin
- type: SliceableFood
count: 4
@@ -317,6 +317,43 @@
- Slice
# Tastes like pie, meat.
- type: entity
name: pumpkin pie
parent: FoodPieBase
id: FoodPiePumpkin
description: Someone should turn this into a latte!
components:
- type: FlavorProfile
flavors:
- sweet
- pumpkin
- type: Sprite
layers:
- state: tin
- state: pumpkin
- type: SliceableFood
slice: FoodPiePumpkinSlice
- type: Tag
tags:
- Pie
- type: entity
name: slice of pumpkin pie
parent: FoodPieSliceBase
id: FoodPiePumpkinSlice
components:
- type: FlavorProfile
flavors:
- sweet
- pumpkin
- type: Sprite
layers:
- state: pumpkin-slice
- type: Tag
tags:
- Pie
- Slice
- type: entity
name: xeno pie
parent: FoodPieBase

View File

@@ -69,6 +69,10 @@
Searching: { state: pai-searching-overlay }
On: { state: pai-on-overlay }
- type: StationMap
- type: ChangeVoiceInContainer
whitelist:
components:
- SecretStash
- type: entity
parent: [ PersonalAI, BaseSyndicateContraband]

View File

@@ -52,6 +52,24 @@
reagents:
- ReagentId: Fiber
Quantity: 10
- type: ContainerContainer
containers:
stash: !type:ContainerSlot {}
- type: Speech
speechVerb: Default # for pais (In the secret stash)
- type: SecretStash
secretStashName: secret-stash-plushie
blacklist:
components:
- SecretStash # Prevents being able to insert plushies inside each other (infinite plush)!
- NukeDisk # Could confuse the nukies if they don't know that plushies have a stash.
tags:
- QuantumSpinInverter # It will cause issues with the grinder...
- FakeNukeDisk # So you can't tell if the nuke disk is real or fake depending on if it can be inserted or not.
- type: ToolOpenable
openToolQualityNeeded: Slicing
closeToolQualityNeeded: Slicing # Should probably be stitching or something if that gets added
name: secret-stash-plushie
- type: entity
parent: BasePlushie
@@ -323,6 +341,8 @@
equippedPrefix: lizard
slots:
- HEAD
- type: Speech
speechVerb: Reptilian # for pais (In the secret stash)
- type: entity
parent: PlushieLizard

View File

@@ -35,3 +35,6 @@
state: icon
- type: StaticPrice
price: 1 # it's worth even less than normal items. Perfection.
- type: Tag
tags:
- FakeNukeDisk

View File

@@ -97,7 +97,7 @@
name: pocket fire extinguisher
parent: FireExtinguisher
id: FireExtinguisherMini
description: A light and compact fibreglass-framed model fire extinguisher. It holds less water then its bigger brother.
description: A light and compact fibreglass-framed model fire extinguisher. It holds less water than its bigger brother.
components:
- type: Sprite
sprite: Objects/Misc/fire_extinguisher_mini.rsi

View File

@@ -443,7 +443,7 @@
- state: default
- state: idvisitor
- type: IdCard
jobTitle: Visitor
jobTitle: job-title-visitor
jobIcon: JobIconVisitor
- type: PresetIdCard
job: Visitor
@@ -741,7 +741,7 @@
- state: default
- state: idcluwne
- type: IdCard
jobTitle: Cluwne
jobTitle: job-title-cluwne
- type: Unremoveable
- type: entity
@@ -801,7 +801,7 @@
- type: Item
heldPrefix: green
- type: IdCard
jobTitle: Universal
jobTitle: job-title-universal
jobIcon: JobIconAdmin
- type: Access
groups:

View File

@@ -129,6 +129,7 @@
- type: Tag
tags:
- LightBulb
- Trash
- type: entity
parent: BaseLightbulb
@@ -147,6 +148,7 @@
- type: Tag
tags:
- LightBulb
- Trash
- type: entity
parent: LightBulb
@@ -160,9 +162,6 @@
lightEnergy: 0.3 # old incandescents just arent as bright
lightRadius: 6
lightSoftness: 1.1
- type: Tag
tags:
- LightBulb
- type: entity
suffix: Broken
@@ -190,6 +189,7 @@
- type: Tag
tags:
- LightBulb
- Trash
- type: entity
parent: BaseLightTube

View File

@@ -54,10 +54,10 @@
beepSound: /Audio/Machines/Nuke/general_beep.ogg
startOnStick: true
canToggleStartOnStick: true
- type: TriggerOnSignal
- type: TimerStartOnSignal
- type: DeviceLinkSink
ports:
- Trigger
- Timer
- type: Explosive # Powerful explosion in a very small radius. Doesn't break underplating.
explosionType: DemolitionCharge
totalIntensity: 60

View File

@@ -647,7 +647,7 @@
- type: Clothing
sprite: Objects/Weapons/Guns/Revolvers/chimp.rsi
- type: Gun
projectileSpeed: 4
projectileSpeed: 10
fireRate: 1.5
soundGunshot:
path: /Audio/Weapons/Guns/Gunshots/taser2.ogg

View File

@@ -106,6 +106,22 @@
components:
- type: Sprite
sprite: Objects/Weapons/Grenades/syndgrenade.rsi
- type: ExplosionResistance
damageCoefficient: 0.1
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 10
behaviors:
- !type:TimerStartBehavior
- trigger:
!type:DamageTrigger
damage: 45
behaviors:
- !type:TriggerBehavior
- !type:DoActsBehavior
acts: ["Destruction"]
- type: OnUseTimerTrigger
delay: 5
- type: ExplodeOnTrigger

View File

@@ -49,7 +49,7 @@
spawn:
MaterialCloth1:
min: 1
max: 2
max: 1
- type: WallMount
arc: 360

View File

@@ -25,6 +25,8 @@
offset: "0.0,0.3"
sprite: Structures/Furniture/potted_plants.rsi
noRot: true
- type: Speech
speechVerb: Plant # for pais (In the secret stash)
- type: SecretStash
tryInsertItemSound: /Audio/Effects/plant_rustle.ogg
tryRemoveItemSound: /Audio/Effects/plant_rustle.ogg

View File

@@ -184,7 +184,7 @@
guides:
- APE
- type: Gun
projectileSpeed: 4
projectileSpeed: 10
fireRate: 10 #just has to be fast enough to keep up with upgrades
showExamineText: false
selectedMode: SemiAuto

View File

@@ -176,9 +176,8 @@
min: 1
max: 1
pickPlayer: false
mindComponents:
- type: DragonRole
prototype: Dragon
mindRoles:
- MindRoleDragon
- type: entity
parent: BaseGameRule
@@ -226,9 +225,8 @@
nameSegments:
- names_ninja_title
- names_ninja
mindComponents:
- type: NinjaRole
prototype: SpaceNinja
mindRoles:
- MindRoleNinja
- type: entity
parent: BaseGameRule
@@ -439,9 +437,8 @@
- type: ZombifyOnDeath
- type: IncurableZombie
- type: InitialInfected
mindComponents:
- type: InitialInfectedRole
prototype: InitialInfected
mindRoles:
- MindRoleInitialInfected
- type: entity
parent: BaseNukeopsRule
@@ -466,7 +463,6 @@
startingGear: SyndicateLoneOperativeGearFull
roleLoadout:
- RoleSurvivalNukie
components:
- type: NukeOperative
- type: RandomMetadata
@@ -476,9 +472,8 @@
- type: NpcFactionMember
factions:
- Syndicate
mindComponents:
- type: NukeopsRole
prototype: Nukeops
mindRoles:
- MindRoleNukeops
- type: entity
parent: BaseTraitorRule
@@ -505,9 +500,8 @@
blacklist:
components:
- AntagImmune
mindComponents:
- type: TraitorRole
prototype: TraitorSleeper
mindRoles:
- MindRoleTraitorSleeper
- type: entity
id: MassHallucinations

View File

@@ -26,8 +26,7 @@
startingGear: ThiefGear
components:
- type: Pacified
mindComponents:
- type: ThiefRole
prototype: Thief
mindRoles:
- MindRoleThief
briefing:
sound: "/Audio/Misc/thief_greeting.ogg"

View File

@@ -114,9 +114,8 @@
- type: NpcFactionMember
factions:
- Syndicate
mindComponents:
- type: NukeopsRole
prototype: NukeopsCommander
mindRoles:
- MindRoleNukeopsCommander
- prefRoles: [ NukeopsMedic ]
fallbackRoles: [ Nukeops, NukeopsCommander ]
spawnerPrototype: SpawnPointNukeopsMedic
@@ -132,9 +131,8 @@
- type: NpcFactionMember
factions:
- Syndicate
mindComponents:
- type: NukeopsRole
prototype: NukeopsMedic
mindRoles:
- MindRoleNukeopsMedic
- prefRoles: [ Nukeops ]
fallbackRoles: [ NukeopsCommander, NukeopsMedic ]
spawnerPrototype: SpawnPointNukeopsOperative
@@ -152,9 +150,8 @@
- type: NpcFactionMember
factions:
- Syndicate
mindComponents:
- type: NukeopsRole
prototype: Nukeops
mindRoles:
- MindRoleNukeops
- type: entity
abstract: true
@@ -189,9 +186,8 @@
components:
- AntagImmune
lateJoinAdditional: true
mindComponents:
- type: TraitorRole
prototype: Traitor
mindRoles:
- MindRoleTraitor
- type: entity
id: Revolutionary
@@ -213,9 +209,8 @@
components:
- type: Revolutionary
- type: HeadRevolutionary
mindComponents:
- type: RevolutionaryRole
prototype: HeadRev
mindRoles:
- MindRoleHeadRevolutionary
- type: entity
id: Sandbox
@@ -257,9 +252,8 @@
- type: ZombifyOnDeath
- type: IncurableZombie
- type: InitialInfected
mindComponents:
- type: InitialInfectedRole
prototype: InitialInfected
mindRoles:
- MindRoleInitialInfected
# event schedulers

View File

@@ -8,6 +8,19 @@
department: Command
time: 3600 # 1 hour
# Flowers
- type: loadout
id: FlowerWreath
storage:
back:
- ClothingHeadHatFlowerWreath
- type: loadout
id: Hairflower
storage:
back:
- ClothingHeadHatHairflower
# Plushies
- type: loadout
id: PlushieLizard

View File

@@ -5,6 +5,8 @@
minLimit: 0
maxLimit: 3
loadouts:
- FlowerWreath
- Hairflower
- PlushieLizard
- PlushieSpaceLizard
- Lighter

View File

@@ -9,7 +9,7 @@
issuer: objective-issuer-dragon
- type: RoleRequirement
roles:
components:
mindRoles:
- DragonRole
- type: entity

View File

@@ -9,7 +9,7 @@
issuer: objective-issuer-spiderclan
- type: RoleRequirement
roles:
components:
mindRoles:
- NinjaRole
- type: entity

View File

@@ -7,7 +7,7 @@
issuer: objective-issuer-thief
- type: RoleRequirement
roles:
components:
mindRoles:
- ThiefRole
- type: entity

View File

@@ -7,7 +7,7 @@
issuer: objective-issuer-syndicate
- type: RoleRequirement
roles:
components:
mindRoles:
- TraitorRole
- type: entity

View File

@@ -1062,6 +1062,16 @@
FoodMeat: 3
FoodPlateTin: 1
- type: microwaveMealRecipe
id: RecipePumpkinPie
name: pumpkin pie recipe
result: FoodPiePumpkin
time: 15
solids:
FoodDoughPie: 1
FoodPumpkin: 1
FoodPlateTin: 1
#- type: microwaveMealRecipe
# id: RecipePlumpPie
# name: plump pie recipe
@@ -1978,4 +1988,4 @@
solids:
FoodCroissantRaw: 1
FoodButterSlice: 1
ShardGlass: 1
ShardGlass: 1

View File

@@ -17,7 +17,7 @@
shoes: ClothingShoesBootsLaceup
id: LibrarianPDA
ears: ClothingHeadsetService
pocket1: d10Dice
pocket1: d20Dice
pocket2: HandLabeler # for making named bestsellers
storage:
back:

View File

@@ -0,0 +1,182 @@
- type: entity
id: BaseMindRole
name: Mind Role
description: Mind Role entity
abstract: true
components:
- type: MindRole
- type: entity
parent: BaseMindRole
id: BaseMindRoleAntag
abstract: true
components:
- type: MindRole
antag: true
#Observer
- type: entity
parent: BaseMindRole
id: MindRoleObserver
name: Observer Role
components:
- type: ObserverRole
#Ghostrole Marker
- type: entity
parent: BaseMindRole
id: MindRoleGhostMarker
name: Ghost Role
components:
- type: GhostRoleMarkerRole
# The Job MindRole holds the mob's Job prototype
- type: entity
parent: BaseMindRole
id: MindRoleJob
name: Job Role
# description:
# MindRoleComponent.JobPrototype is filled by SharedJobSystem
# Subverted Silicon
- type: entity
parent: BaseMindRoleAntag
id: MindRoleSubvertedSilicon
name: Subverted Silicon Role
description:
components:
- type: SubvertedSiliconRole
- type: MindRole
antagPrototype: SubvertedSilicon
# Dragon
- type: entity
parent: BaseMindRoleAntag
id: MindRoleDragon
name: Dragon Role
# description:
components:
- type: MindRole
antagPrototype: Dragon
exclusiveAntag: true
- type: DragonRole
- type: RoleBriefing
briefing: dragon-role-briefing
# Ninja
- type: entity
parent: BaseMindRoleAntag
id: MindRoleNinja
name: Space Ninja Role
# description: mind-role-ninja-description
components:
- type: MindRole
antagPrototype: SpaceNinja
exclusiveAntag: true
- type: NinjaRole
# Nukies
- type: entity
parent: BaseMindRoleAntag
id: MindRoleNukeops
name: Nukeops Operative Role
# description: mind-role-nukeops-description
components:
- type: MindRole
exclusiveAntag: true
antagPrototype: Nukeops
- type: NukeopsRole
- type: entity
parent: MindRoleNukeops
id: MindRoleNukeopsMedic
name: Nukeops Medic Role
# description: mind-role-nukeops-medic-description
components:
- type: MindRole
antagPrototype: NukeopsMedic
- type: entity
parent: MindRoleNukeops
id: MindRoleNukeopsCommander
name: Nukeops Commander Role
# description: mind-role-nukeops-commander-description
components:
- type: MindRole
antagPrototype: NukeopsCommander
# Revolutionaries
- type: entity
parent: BaseMindRoleAntag
id: MindRoleHeadRevolutionary
name: Head Revolutionary Role
# description: mind-role-head-revolutionary-description
components:
- type: MindRole
antagPrototype: HeadRev
exclusiveAntag: true
- type: RevolutionaryRole
- type: entity
parent: MindRoleHeadRevolutionary
id: MindRoleRevolutionary
name: Revolutionary Role
# description: mind-role-revolutionary-description
components:
- type: MindRole
antagPrototype: Rev
# Thief
- type: entity
parent: BaseMindRoleAntag
id: MindRoleThief
name: Thief Role
# description: mind-role-thief-description
components:
- type: MindRole
antagPrototype: Thief
- type: ThiefRole
# Traitors
- type: entity
parent: BaseMindRoleAntag
id: MindRoleTraitor
name: Traitor Role
# description: mind-role-traitor-description
components:
- type: MindRole
antagPrototype: Traitor
exclusiveAntag: true
- type: TraitorRole
- type: entity
parent: MindRoleTraitor
id: MindRoleTraitorSleeper
name: Sleeper Agent Role
# description: mind-role-traitor-sleeper-description
components:
- type: MindRole
antagPrototype: TraitorSleeper
# Zombie Squad
- type: entity
parent: BaseMindRoleAntag
id: MindRoleInitialInfected
name: Initial Infected Role
# description: mind-role-initial-infected-description
components:
- type: MindRole
antagPrototype: InitialInfected
exclusiveAntag: true
- type: InitialInfectedRole
- type: entity
parent: BaseMindRoleAntag
id: MindRoleZombie
name: Zombie Role
# description: mind-role-zombie-description
components:
- type: MindRole
antagPrototype: Zombie
exclusiveAntag: true
- type: ZombieRole

View File

@@ -993,6 +993,9 @@
- type: Tag
id: Nugget # for chicken nuggets
- type: Tag
id: FakeNukeDisk
- type: Tag
id: NukeOpsUplink
@@ -1177,7 +1180,7 @@
- type: Tag
id: SecureWindoor
- type: Tag
- type: Tag
id: SecurityHelmet
- type: Tag