Impliment visitor ID, reorganize shuttle event and ghost role yml, standardize many visitor roles, add more unknown shuttles. (#28098)

* Add Protagonists

* Give visitors the right PDA at least, we need that RP value.

* tidy up

* spell check my beloved

* Everything about jobs have the same id names ahhhh!

* s

* rarity scarity.

* Update Resources/Locale/en-US/ghost/roles/ghost-role-component.ftl

Co-authored-by: Tayrtahn <tayrtahn@gmail.com>

* cargo event now no has cargo access doors.

* break everything.

* still WIP, please excuse.

* finish all role loadouts

* extra roles, fix up grids, special pdas.

* Ghost role descriptions and mime powers

* rest of the fucking owl

* I tripped.

* I also fell.

* Fix the broken entity storage?

* hide mess under rug

* Stuff the rest of the mess into a closet.

* I forgor a spinny majig.

* a small lighting tweak.

* 1984 shuttles to new pr.

* 1984 shuttles to new pr 2 electric boogaloo

* poke the tests

* Revert "1984 shuttles to new pr 2 electric boogaloo"

This reverts commit b2ea7053b73cb17b59f8a80b23978a04a6a45a56.

* cowboy boot cleanup

* tableify

* antagimmunities

* Should be functional.

* vox safing

* un1984 clowns I guess

* oops forgor one

* misplaced file

* misplaced file v2

* weird test fail but okay

* Shuttles rarer

* Shuttle testing, fans, and power sanity. Also return of the syndie evac.

* le balance

* no write over fancy paper

* rerun tests

---------

Co-authored-by: Tayrtahn <tayrtahn@gmail.com>
This commit is contained in:
IProduceWidgets
2024-09-10 02:40:00 -04:00
committed by GitHub
parent 2f5264bf37
commit 62f268cbb0
47 changed files with 56115 additions and 2645 deletions

View File

@@ -23,6 +23,24 @@
- ClothingShoesBootsCowboyBlack
- ClothingShoesBootsSecFilled
- type: entity
id: ClothingShoesBootsCowboyBrownFilled
parent:
- ClothingShoesBootsCowboyBrown
- ClothingShoesBootsSecFilled
- type: entity
id: ClothingShoesBootsCowboyWhiteFilled
parent:
- ClothingShoesBootsCowboyWhite
- ClothingShoesBootsSecFilled
- type: entity
id: ClothingShoesBootsCowboyFancyFilled
parent:
- ClothingShoesBootsCowboyFancy
- ClothingShoesBootsSecFilled
- type: entity
id: ClothingShoesHighheelBootsFilled
parent:
@@ -48,3 +66,4 @@
containers:
item:
- ThrowingKnife

View File

@@ -80,7 +80,7 @@
parent: MarkerBase
components:
- type: GhostRole
rules: ghost-role-information-nukeop-rules
rules: ghost-role-information-rules-default-team-antagonist
raffle:
settings: default
- type: GhostRoleMobSpawner
@@ -100,7 +100,7 @@
- type: GhostRole
name: ghost-role-information-loneop-name
description: ghost-role-information-loneop-description
rules: ghost-role-information-loneop-rules
rules: ghost-role-information-rules-default-solo-antagonist
- type: Sprite
sprite: Markers/jobs.rsi
layers:
@@ -116,6 +116,7 @@
- type: GhostRole
name: roles-antag-nuclear-operative-commander-name
description: roles-antag-nuclear-operative-commander-objective
rules: ghost-role-information-rules-default-team-antagonist
- type: entity
categories: [ HideSpawnMenu, Spawner ]
@@ -125,6 +126,7 @@
- type: GhostRole
name: roles-antag-nuclear-operative-agent-name
description: roles-antag-nuclear-operative-agent-objective
rules: ghost-role-information-rules-default-team-antagonist
- type: entity
categories: [ HideSpawnMenu, Spawner ]
@@ -134,6 +136,7 @@
- type: GhostRole
name: roles-antag-nuclear-operative-name
description: roles-antag-nuclear-operative-objective
rules: ghost-role-information-rules-default-team-antagonist
- type: entity
categories: [ HideSpawnMenu, Spawner ]

View File

@@ -99,7 +99,7 @@
makeSentient: true
name: ghost-role-information-xeno-name
description: ghost-role-information-xeno-description
rules: ghost-role-information-xeno-rules
rules: ghost-role-information-rules-default-team-antagonist
raffle:
settings: default
- type: GhostTakeoverAvailable

View File

@@ -0,0 +1,688 @@
## See also ../settings.yml and ../spawners.yml
### Visitors with Visitor ID
# Command
- type: entity
id: RandomHumanoidVisitorCaptain
name: visiting Captain ghost role
components:
- type: Sprite
sprite: Markers/jobs.rsi
state: captain
- type: RandomHumanoidSpawner
settings: VisitorCaptain
- type: AutoImplant
implants:
- MindShieldImplant
- type: entity
id: RandomHumanoidVisitorCE
name: visiting CE ghost role
components:
- type: Sprite
sprite: Markers/jobs.rsi
state: ce
- type: RandomHumanoidSpawner
settings: VisitorCE
- type: AutoImplant
implants:
- MindShieldImplant
- type: entity
id: RandomHumanoidVisitorCMO
name: visiting CMO ghost role
components:
- type: Sprite
sprite: Markers/jobs.rsi
state: cmo
- type: RandomHumanoidSpawner
settings: VisitorCMO
- type: AutoImplant
implants:
- MindShieldImplant
- type: entity
id: RandomHumanoidVisitorHOP
name: visiting HOP ghost role
components:
- type: Sprite
sprite: Markers/jobs.rsi
state: hop
- type: RandomHumanoidSpawner
settings: VisitorHOP
- type: AutoImplant
implants:
- MindShieldImplant
- type: entity
id: RandomHumanoidVisitorHOS
name: visiting HOS ghost role
components:
- type: Sprite
sprite: Markers/jobs.rsi
state: hos
- type: RandomHumanoidSpawner
settings: VisitorHOS
- type: AutoImplant
implants:
- MindShieldImplant
- type: entity
id: RandomHumanoidVisitorRD
name: visiting RD ghost role
components:
- type: Sprite
sprite: Markers/jobs.rsi
state: rd
- type: RandomHumanoidSpawner
settings: VisitorResearchDirector
- type: AutoImplant
implants:
- MindShieldImplant
- type: entity
id: RandomHumanoidVisitorQM
name: visiting QM ghost role
components:
- type: Sprite
sprite: Markers/jobs.rsi
state: qm
- type: RandomHumanoidSpawner
settings: VisitorQM
- type: AutoImplant
implants:
- MindShieldImplant
# Security
- type: entity
id: RandomHumanoidVisitorSecurityCadet
name: visiting security cadet role
components:
- type: Sprite
sprite: Markers/jobs.rsi
state: security_cadet
- type: RandomHumanoidSpawner
settings: VisitorSecurityCadet
- type: AutoImplant
implants:
- MindShieldImplant
- type: entity
id: RandomHumanoidVisitorSecurityOfficer
name: visiting security officer ghost role
components:
- type: Sprite
sprite: Markers/jobs.rsi
state: security_officer
- type: RandomHumanoidSpawner
settings: VisitorSecurityOfficer
- type: AutoImplant
implants:
- MindShieldImplant
- type: entity
id: RandomHumanoidVisitorDetective
name: visiting detective role
components:
- type: Sprite
sprite: Markers/jobs.rsi
state: detective
- type: RandomHumanoidSpawner
settings: VisitorDetective
- type: AutoImplant
implants:
- MindShieldImplant
- type: entity
id: RandomHumanoidVisitorWarden
name: visiting warden ghost role
components:
- type: Sprite
sprite: Markers/jobs.rsi
state: warden
- type: RandomHumanoidSpawner
settings: VisitorWarden
- type: AutoImplant
implants:
- MindShieldImplant
# Cargo
- type: entity
id: RandomHumanoidVisitorCargoTechnician
name: visiting cargo technician ghost role
components:
- type: Sprite
sprite: Markers/jobs.rsi
state: cargo_tech
- type: RandomHumanoidSpawner
settings: VisitorCargoTechnician
- type: entity
id: RandomHumanoidVisitorSalvageSpecialist
name: visiting salvage specialist ghost role
components:
- type: Sprite
sprite: Markers/jobs.rsi
state: salvagespecialist
- type: RandomHumanoidSpawner
settings: VisitorSalvageSpecialist
# Engineering
- type: entity
id: RandomHumanoidVisitorAtmosTech
name: visiting atmospheric technician ghost role
components:
- type: Sprite
sprite: Markers/jobs.rsi
state: atmospherics
- type: RandomHumanoidSpawner
settings: VisitorAtmosTech
- type: entity
id: RandomHumanoidVisitorTechnicalAssistant
name: visiting technical assistant ghost role
components:
- type: Sprite
sprite: Markers/jobs.rsi
state: technicalassistant
- type: RandomHumanoidSpawner
settings: VisitorTechnicalAssistant
- type: entity
id: RandomHumanoidVisitorEngineer
name: visiting engineer ghost role
components:
- type: Sprite
sprite: Markers/jobs.rsi
state: engineer
- type: RandomHumanoidSpawner
settings: VisitorEngineer
# Medical
- type: entity
id: RandomHumanoidVisitorMedicalIntern
name: visiting medical intern ghost role
components:
- type: Sprite
sprite: Markers/jobs.rsi
state: medicalintern
- type: RandomHumanoidSpawner
settings: VisitorMedicalIntern
- type: entity
id: RandomHumanoidVisitorMedicalDoctor
name: visiting medical doctor ghost role
components:
- type: Sprite
sprite: Markers/jobs.rsi
state: doctor
- type: RandomHumanoidSpawner
settings: VisitorMedicalDoctor
- type: entity
id: RandomHumanoidVisitorParamedic
name: visiting paramedic ghost role
components:
- type: Sprite
sprite: Markers/jobs.rsi
state: paramedic
- type: RandomHumanoidSpawner
settings: VisitorParamedic
- type: entity
id: RandomHumanoidVisitorPsychologist
name: visiting psychologist ghost role
components:
- type: Sprite
sprite: Markers/jobs.rsi
state: psychologist
- type: RandomHumanoidSpawner
settings: VisitorPsychologist
- type: entity
id: RandomHumanoidVisitorChemist
name: visiting chemist ghost role
components:
- type: Sprite
sprite: Markers/jobs.rsi
state: chemist
- type: RandomHumanoidSpawner
settings: VisitorChemist
- type: entity
id: RandomHumanoidVisitorVirologist
name: visiting virologist ghost role
components:
- type: Sprite
sprite: Markers/jobs.rsi
state: virologist
- type: RandomHumanoidSpawner
settings: VisitorVirologist
- type: entity
id: RandomHumanoidVisitorGeneticist
name: visiting geneticist ghost role
components:
- type: Sprite
sprite: Markers/jobs.rsi
state: geneticist
- type: RandomHumanoidSpawner
settings: VisitorGeneticist
- type: entity
id: RandomHumanoidVisitorDentist
name: visiting dentist ghost role
components:
- type: Sprite
sprite: Markers/jobs.rsi
state: seniorphysician
- type: RandomHumanoidSpawner
settings: VisitorDentist
# Science
- type: entity
id: RandomHumanoidVisitorResearchAssistant
name: visiting research assistant ghost role
components:
- type: Sprite
sprite: Markers/jobs.rsi
state: researchassistant
- type: RandomHumanoidSpawner
settings: VisitorResearchAssistant
- type: entity
id: RandomHumanoidVisitorScientist
name: visiting scientist ghost role
components:
- type: Sprite
sprite: Markers/jobs.rsi
state: scientist
- type: RandomHumanoidSpawner
settings: VisitorScientist
# Civilian
- type: entity
id: RandomHumanoidVisitorBartender
name: visiting bartender ghost role
components:
- type: Sprite
sprite: Markers/jobs.rsi
state: bartender
- type: RandomHumanoidSpawner
settings: VisitorBartender
- type: entity
id: RandomHumanoidVisitorBotanist
name: visiting botanist ghost role
components:
- type: Sprite
sprite: Markers/jobs.rsi
state: botanist
- type: RandomHumanoidSpawner
settings: VisitorBotanist
- type: entity
id: RandomHumanoidVisitorBoxer
name: visiting boxer ghost role
components:
- type: Sprite
sprite: Markers/jobs.rsi
state: boxer
- type: RandomHumanoidSpawner
settings: VisitorBoxer
- type: entity
id: RandomHumanoidVisitorChaplain
name: visiting chaplain ghost role
components:
- type: Sprite
sprite: Markers/jobs.rsi
state: chaplain
- type: RandomHumanoidSpawner
settings: VisitorChaplain
- type: entity
id: RandomHumanoidVisitorChef
name: visiting chef ghost role
components:
- type: Sprite
sprite: Markers/jobs.rsi
state: chef
- type: RandomHumanoidSpawner
settings: VisitorChef
- type: entity
id: RandomHumanoidVisitorClown
name: visiting clown ghost role
components:
- type: Sprite
sprite: Markers/jobs.rsi
state: clown
- type: RandomHumanoidSpawner
settings: VisitorClown
- type: entity
id: RandomHumanoidVisitorJanitor
name: visiting janitor ghost role
components:
- type: Sprite
sprite: Markers/jobs.rsi
state: janitor
- type: RandomHumanoidSpawner
settings: VisitorJanitor
- type: entity
id: RandomHumanoidVisitorLawyer
name: visiting lawyer ghost role
components:
- type: Sprite
sprite: Markers/jobs.rsi
state: lawyer
- type: RandomHumanoidSpawner
settings: VisitorLawyer
- type: entity
id: RandomHumanoidVisitorLawyerCentcom
name: visiting centcom lawyer ghost role
components:
- type: Sprite
sprite: Markers/jobs.rsi
state: lawyer
- type: RandomHumanoidSpawner
settings: VisitorLawyerCentcom
- type: entity
id: RandomHumanoidVisitorLibrarian
name: visiting librarian ghost role
components:
- type: Sprite
sprite: Markers/jobs.rsi
state: librarian
- type: RandomHumanoidSpawner
settings: VisitorLibrarian
- type: entity
id: RandomHumanoidVisitorMusician
name: visiting musician ghost role
components:
- type: Sprite
sprite: Markers/jobs.rsi
state: musician
- type: RandomHumanoidSpawner
settings: VisitorMusician
- type: entity
id: RandomHumanoidVisitorMusicianFancy
name: visiting fancy musician ghost role
components:
- type: Sprite
sprite: Markers/jobs.rsi
state: musician
- type: RandomHumanoidSpawner
settings: VisitorMusicianFancy
- type: entity
id: RandomHumanoidVisitorMusicianRelaxed
name: visiting relaxed musician ghost role
components:
- type: Sprite
sprite: Markers/jobs.rsi
state: musician
- type: RandomHumanoidSpawner
settings: VisitorMusicianRelaxed
- type: entity
id: RandomHumanoidVisitorMime
name: visiting mime ghost role
components:
- type: Sprite
sprite: Markers/jobs.rsi
state: mime
- type: RandomHumanoidSpawner
settings: VisitorMime
- type: entity
id: RandomHumanoidVisitorReporter
name: visiting reporter ghost role
components:
- type: Sprite
sprite: Markers/jobs.rsi
state: reporter
- type: RandomHumanoidSpawner
settings: VisitorReporter
- type: entity
id: RandomHumanoidVisitorServiceWorker
name: visiting service worker ghost role
components:
- type: Sprite
sprite: Markers/jobs.rsi
state: serviceworker
- type: RandomHumanoidSpawner
settings: VisitorServiceWorker
- type: entity
id: RandomHumanoidVisitorZookeeper
name: visiting zookeeper ghost role
components:
- type: Sprite
sprite: Markers/jobs.rsi
state: zookeeper
- type: RandomHumanoidSpawner
settings: VisitorZookeeper
# Misc
- type: entity
id: RandomHumanoidClownTroupeBanana
name: banana clown troupe
parent: RandomHumanoidVisitorClown
components:
- type: RandomHumanoidSpawner
settings: ClownTroupeBanana
### Visitors missing equipment for challenges
# Command
- type: entity
id: RandomHumanoidChallengeVictimCaptain
name: disaster victim Captain ghost role
suffix: CHALLENGE
# This is supposed to be for challenge events. Its intentionally missing QOL gear to make interesting scenarios.
components:
- type: Sprite
sprite: Mobs/Species/Skeleton/parts.rsi
state: skull_icon
- type: RandomHumanoidSpawner
settings: ChallengeVictimCaptain
- type: AutoImplant
implants:
- MindShieldImplant
- type: entity
id: RandomHumanoidChallengeVictimCE
parent: RandomHumanoidChallengeVictimCaptain
name: disaster victim CE ghost role
suffix: CHALLENGE
# This is supposed to be for challenge events. Its intentionally missing QOL gear to make interesting scenarios.
components:
- type: RandomHumanoidSpawner
settings: ChallengeVictimChiefEngineer
- type: AutoImplant
implants:
- MindShieldImplant
- type: entity
id: RandomHumanoidChallengeVictimCMO
parent: RandomHumanoidChallengeVictimCaptain
name: disaster victim CMO ghost role
suffix: CHALLENGE
# This is supposed to be for challenge events. Its intentionally missing QOL gear to make interesting scenarios.
components:
- type: RandomHumanoidSpawner
settings: ChallengeVictimCMO
- type: AutoImplant
implants:
- MindShieldImplant
- type: entity
id: RandomHumanoidChallengeVictimHOP
parent: RandomHumanoidChallengeVictimCaptain
name: disaster victim HOP ghost role
suffix: CHALLENGE
# This is supposed to be for challenge events. Its intentionally missing QOL gear to make interesting scenarios.
components:
- type: RandomHumanoidSpawner
settings: ChallengeVictimHeadOfPersonnel
- type: AutoImplant
implants:
- MindShieldImplant
- type: entity
id: RandomHumanoidChallengeVictimHOS
parent: RandomHumanoidChallengeVictimCaptain
name: disaster victim HOS ghost role
suffix: CHALLENGE
# This is supposed to be for challenge events. Its intentionally missing QOL gear to make interesting scenarios.
components:
- type: RandomHumanoidSpawner
settings: ChallengeVictimHeadOfSecurity
- type: AutoImplant
implants:
- MindShieldImplant
- type: entity
id: RandomHumanoidChallengeVictimRD
parent: RandomHumanoidChallengeVictimCaptain
name: disaster victim RD ghost role
suffix: CHALLENGE
# This is supposed to be for challenge events. Its intentionally missing QOL gear to make interesting scenarios.
components:
- type: RandomHumanoidSpawner
settings: ChallengeVictimResearchDirector
- type: AutoImplant
implants:
- MindShieldImplant
- type: entity
id: RandomHumanoidChallengeVictimQM
parent: RandomHumanoidChallengeVictimCaptain
name: disaster victim QM ghost role
suffix: CHALLENGE
# This is supposed to be for challenge events. Its intentionally missing QOL gear to make interesting scenarios.
components:
- type: RandomHumanoidSpawner
settings: ChallengeVictimQuartermaster
- type: AutoImplant
implants:
- MindShieldImplant
# Security
# Cargo
- type: entity
id: RandomHumanoidChallengeCargoTechnician
parent: RandomHumanoidChallengeVictimCaptain
name: disaster cargo technician ghost role
suffix: CHALLENGE
# This is supposed to be for challenge events. Its intentionally missing QOL gear to make interesting scenarios.
components:
- type: RandomHumanoidSpawner
settings: ChallengeCargoTechnician
# Engineering
# Medical
# Science
# Civilian
# Misc
### Syndicate & Hostiles
- type: entity
id: RandomHumanoidSyndieSoldierTeamLeader
name: syndicate team leader ghost role
components:
- type: Sprite
sprite: Structures/Decoration/banner.rsi
state: banner_syndicate
- type: RandomHumanoidSpawner
settings: SyndieSoldierTeamLeader
- type: entity
id: RandomHumanoidSyndieSoldier
name: syndicate soldier ghost role
components:
- type: Sprite
sprite: Structures/Decoration/banner.rsi
state: banner_syndicate
- type: RandomHumanoidSpawner
settings: SyndieSoldier
- type: entity
id: RandomHumanoidSyndieVisitor
name: syndie disaster victim ghost role
components:
- type: Sprite
sprite: Structures/Decoration/banner.rsi
state: banner_syndicate
- type: RandomHumanoidSpawner
settings: SyndieVisitor
- type: entity
id: RandomHumanoidPirateScooner
name: pirate crewman ghost role
suffix: scooner
components:
- type: Sprite
sprite: Structures/Decoration/banner.rsi
state: banner-red
- type: RandomHumanoidSpawner
settings: PirateScooner
- type: entity
id: RandomHumanoidPirateCaptainScooner
name: pirate captain ghost role
suffix: scooner
components:
- type: Sprite
sprite: Structures/Decoration/banner.rsi
state: banner-red
- type: RandomHumanoidSpawner
settings: PirateCaptainScooner
### Other
- type: entity
id: RandomHumanoidVisitorBlackmarketeer
name: visiting blackmarketeer ghost role
components:
- type: Sprite
sprite: Structures/Decoration/banner.rsi
state: banner-yellow
- type: RandomHumanoidSpawner
settings: VisitorBlackmarketeer
- type: entity
id: RandomHumanoidCossack
name: cossack ghost role
components:
- type: Sprite
sprite: Structures/Decoration/banner.rsi
state: banner-yellow
- type: RandomHumanoidSpawner
settings: Cossack

View File

@@ -0,0 +1,850 @@
## See also ../roles.yml and ../spawners.yml
### Visitors with Visitor ID
# Command
# Following use EventHumanoidMindShielded since they are heads and probably should have mindshields
- type: randomHumanoidSettings
id: VisitorHead
parent: EventHumanoidMindShielded
components:
- type: GhostRole
name: ghost-role-information-command-name
description: ghost-role-information-command-description
rules: ghost-role-information-nonantagonist-rules
raffle:
settings: default
- type: randomHumanoidSettings
id: VisitorCaptain
parent: VisitorHead
components:
- type: GhostRole
name: job-name-captain
description: ghost-role-information-command-description
- type: Loadout
prototypes: [ VisitorCaptain, VisitorCaptainAlt ]
roleLoadout: [ RoleSurvivalStandard ]
- type: randomHumanoidSettings
id: VisitorCE
parent: VisitorHead
components:
- type: GhostRole
name: job-name-ce
description: ghost-role-information-command-description
- type: Loadout
prototypes: [ VisitorCE, VisitorCEAlt ]
roleLoadout: [ RoleSurvivalExtended ]
- type: randomHumanoidSettings
id: VisitorCMO
parent: VisitorHead
components:
- type: GhostRole
name: job-name-cmo
description: ghost-role-information-command-description
- type: Loadout
prototypes: [ VisitorCMO, VisitorCMOAlt ]
roleLoadout: [ RoleSurvivalMedical ]
- type: randomHumanoidSettings
id: VisitorHOP
parent: VisitorHead
components:
- type: GhostRole
name: job-name-hop
description: ghost-role-information-command-description
- type: Loadout
prototypes: [ VisitorHOP, VisitorHOPAlt ]
roleLoadout: [ RoleSurvivalStandard ]
- type: randomHumanoidSettings
id: VisitorHOS
parent: VisitorHead
components:
- type: GhostRole
name: job-name-hos
description: ghost-role-information-command-description
- type: Loadout
prototypes: [ VisitorHOS, VisitorHOSAlt ]
roleLoadout: [ RoleSurvivalSecurity ]
- type: randomHumanoidSettings
id: VisitorResearchDirector
parent: VisitorHead
components:
- type: GhostRole
name: job-name-rd
description: ghost-role-information-command-description
- type: Loadout
prototypes: [ VisitorRD, VisitorRDAlt ]
roleLoadout: [ RoleSurvivalStandard ]
- type: randomHumanoidSettings
id: VisitorQM
parent: VisitorHead
components:
- type: GhostRole
name: job-name-qm
description: ghost-role-information-command-description
- type: Loadout
prototypes: [ VisitorQM, VisitorQMAlt ]
roleLoadout: [ RoleSurvivalStandard ]
# Security
# Following use EventHumanoidMindShielded since they are heads and probably should have mindshields
- type: randomHumanoidSettings
id: VisitorSecurity
parent: EventHumanoidMindShielded
components:
- type: GhostRole
name: ghost-role-information-security-name
description: ghost-role-information-security-description
rules: ghost-role-information-nonantagonist-rules
raffle:
settings: default
- type: randomHumanoidSettings
id: VisitorSecurityCadet
parent: VisitorSecurity
components:
- type: GhostRole
name: job-name-cadet
- type: Loadout
prototypes: [ VisitorSecurityCadet, VisitorSecurityCadetAlt ]
roleLoadout: [ RoleSurvivalSecurity ]
- type: randomHumanoidSettings
id: VisitorSecurityOfficer
parent: VisitorSecurity
components:
- type: GhostRole
name: job-name-security
- type: Loadout
prototypes: [ VisitorSecurityOfficer, VisitorSecurityOfficerAlt ]
roleLoadout: [ RoleSurvivalSecurity ]
- type: randomHumanoidSettings
id: VisitorDetective
parent: VisitorSecurity
components:
- type: GhostRole
name: job-name-detective
- type: Loadout
prototypes: [ VisitorDetective, VisitorDetectiveAlt ]
roleLoadout: [ RoleSurvivalSecurity ]
- type: randomHumanoidSettings
id: VisitorWarden
parent: VisitorSecurity
components:
- type: GhostRole
name: job-name-warden
- type: Loadout
prototypes: [ VisitorWarden, VisitorWardenAlt ]
roleLoadout: [ RoleSurvivalSecurity ]
# Cargo
- type: randomHumanoidSettings
id: VisitorCargonian
parent: EventHumanoid
components:
- type: GhostRole
name: ghost-role-information-cargo-name
description: ghost-role-information-cargo-description
rules: ghost-role-information-nonantagonist-rules
raffle:
settings: short
- type: randomHumanoidSettings
id: VisitorCargoTechnician
parent: VisitorCargonian
components:
- type: GhostRole
name: job-name-cargotech
- type: Loadout
prototypes: [ VisitorCargoTech, VisitorCargoTechAlt ]
roleLoadout: [ RoleSurvivalStandard ]
- type: randomHumanoidSettings
id: VisitorSalvageSpecialist
parent: VisitorCargonian
components:
- type: GhostRole
name: job-name-salvagespec
- type: Loadout
prototypes: [ VisitorSalvageSpecialist, VisitorSalvageSpecialistAlt ]
roleLoadout: [ RoleSurvivalStandard ]
# Engineering
- type: randomHumanoidSettings
id: VisitorEngineering
parent: EventHumanoid
components:
- type: GhostRole
name: ghost-role-information-engineering-name
description: ghost-role-information-engineering-description
rules: ghost-role-information-nonantagonist-rules
raffle:
settings: short
- type: randomHumanoidSettings
id: VisitorAtmosTech
parent: VisitorEngineering
components:
- type: GhostRole
name: job-name-atmostech
- type: Loadout
prototypes: [ VisitorAtmosTech, VisitorAtmosTechAlt ]
roleLoadout: [ RoleSurvivalExtended ]
- type: randomHumanoidSettings
id: VisitorTechnicalAssistant
parent: VisitorEngineering
components:
- type: GhostRole
name: job-name-technical-assistant
- type: Loadout
prototypes: [ VisitorTechnicalAssistant, VisitorTechnicalAssistantAlt ]
roleLoadout: [ RoleSurvivalExtended ]
- type: randomHumanoidSettings
id: VisitorEngineer
parent: VisitorEngineering
components:
- type: GhostRole
name: job-name-engineer
- type: Loadout
prototypes: [ VisitorEngineer, VisitorEngineerAlt ]
roleLoadout: [ RoleSurvivalExtended ]
# Medical
- type: randomHumanoidSettings
id: VisitorMedical
parent: EventHumanoid
components:
- type: GhostRole
name: ghost-role-information-medical-name
description: ghost-role-information-medical-description
rules: ghost-role-information-nonantagonist-rules
raffle:
settings: short
- type: randomHumanoidSettings
id: VisitorMedicalIntern
parent: VisitorMedical
components:
- type: GhostRole
name: job-name-intern
- type: Loadout
prototypes: [ VisitorMedicalIntern, VisitorMedicalInternAlt ]
roleLoadout: [ RoleSurvivalMedical ]
- type: randomHumanoidSettings
id: VisitorMedicalDoctor
parent: VisitorMedical
components:
- type: GhostRole
name: job-name-doctor
- type: Loadout
prototypes: [ VisitorMedicalDoctor, VisitorMedicalDoctorAlt , VisitorScrubsPurple, VisitorScrubsGreen, VisitorScrubsBlue]
roleLoadout: [ RoleSurvivalMedical ]
- type: randomHumanoidSettings
id: VisitorParamedic
parent: VisitorMedical
components:
- type: GhostRole
name: job-name-paramedic
- type: Loadout
prototypes: [ VisitorParamedic, VisitorParamedicAlt ]
roleLoadout: [ RoleSurvivalMedical ]
- type: randomHumanoidSettings
id: VisitorVirologist
parent: VisitorMedical
components:
- type: GhostRole
name: ghost-role-information-medical-virologist-name
- type: Loadout
prototypes: [ VisitorVirologist, VisitorVirologistAlt ]
roleLoadout: [ RoleSurvivalMedical ]
- type: randomHumanoidSettings
id: VisitorGeneticist
parent: VisitorMedical
components:
- type: GhostRole
name: ghost-role-information-medical-geneticist-name
- type: Loadout
prototypes: [ VisitorGeneticist, VisitorGeneticistAlt ]
roleLoadout: [ RoleSurvivalMedical ]
- type: randomHumanoidSettings
id: VisitorPsychologist
parent: VisitorMedical
components:
- type: GhostRole
name: job-name-psychologist
- type: Loadout
prototypes: [ VisitorPsychologist, VisitorPsychologistAlt ]
roleLoadout: [ RoleSurvivalMedical ]
- type: randomHumanoidSettings
id: VisitorChemist
parent: VisitorMedical
components:
- type: GhostRole
name: job-name-chemist
- type: Loadout
prototypes: [ VisitorChemist, VisitorChemistAlt ]
roleLoadout: [ RoleSurvivalMedical ]
- type: randomHumanoidSettings
id: VisitorDentist
parent: VisitorMedical
components:
- type: GhostRole
name: ghost-role-information-medical-dentist-name
- type: Loadout
prototypes: [ VisitorDentist ]
roleLoadout: [ RoleSurvivalMedical ]
# Science
- type: randomHumanoidSettings
id: VisitorScience
parent: EventHumanoid
components:
- type: GhostRole
name: ghost-role-information-science-name
description: ghost-role-information-science-description
rules: ghost-role-information-nonantagonist-rules
raffle:
settings: short
- type: randomHumanoidSettings
id: VisitorResearchAssistant
parent: VisitorScience
components:
- type: GhostRole
name: job-name-research-assistant
- type: Loadout
prototypes: [ VisitorResearchAssistant, VisitorResearchAssistantAlt ]
roleLoadout: [ RoleSurvivalStandard ]
- type: randomHumanoidSettings
id: VisitorScientist
parent: VisitorScience
components:
- type: GhostRole
name: job-name-scientist
- type: Loadout
prototypes: [ VisitorScientist, VisitorScientistAlt ]
roleLoadout: [ RoleSurvivalStandard ]
# Civilian
- type: randomHumanoidSettings
id: VisitorCivilian
parent: EventHumanoid
components:
- type: GhostRole
name: ghost-role-information-civilian-name
description: ghost-role-information-civilian-description
rules: ghost-role-information-nonantagonist-rules
raffle:
settings: short
- type: randomHumanoidSettings
id: VisitorBartender
parent: VisitorCivilian
components:
- type: GhostRole
name: job-name-bartender
- type: Loadout
prototypes: [ VisitorBartender, VisitorBartenderAlt ]
roleLoadout: [ RoleSurvivalStandard ]
- type: randomHumanoidSettings
id: VisitorBotanist
parent: VisitorCivilian
components:
- type: GhostRole
name: job-name-botanist
- type: Loadout
prototypes: [ VisitorBotanist, VisitorBotanistAlt ]
roleLoadout: [ RoleSurvivalStandard ]
- type: randomHumanoidSettings
id: VisitorBoxer
parent: VisitorCivilian
components:
- type: GhostRole
name: job-name-boxer
- type: Loadout
prototypes: [ VisitorBoxer, VisitorBoxerAlt ]
roleLoadout: [ RoleSurvivalStandard ]
- type: randomHumanoidSettings
id: VisitorChaplain
parent: VisitorCivilian
components:
- type: BibleUser
- type: GhostRole
name: job-name-chaplain
- type: Loadout
prototypes: [ VisitorChaplain, VisitorChaplainAlt ]
roleLoadout: [ RoleSurvivalStandard ]
- type: randomHumanoidSettings
id: VisitorChef
parent: VisitorCivilian
components:
- type: GhostRole
name: job-name-chef
- type: Loadout
prototypes: [ VisitorChef, VisitorChefAlt ]
roleLoadout: [ RoleSurvivalStandard ]
- type: randomHumanoidSettings
id: VisitorClown
parent: VisitorCivilian
randomizeName: false
components:
- type: GhostRole
name: job-name-clown
- type: Loadout
prototypes: [ VisitorClown ]
roleLoadout: [ RoleSurvivalClown ]
- type: RandomMetadata
nameSegments:
- names_clown
- type: randomHumanoidSettings
id: VisitorJanitor
parent: VisitorCivilian
components:
- type: GhostRole
name: job-name-janitor
- type: Loadout
prototypes: [ VisitorJanitor, VisitorJanitorAlt ]
roleLoadout: [ RoleSurvivalStandard ]
- type: randomHumanoidSettings
id: VisitorLawyer
parent: VisitorCivilian
components:
- type: GhostRole
name: job-name-lawyer
- type: Loadout
prototypes: [ VisitorLawyerAltA, VisitorLawyerAltB, VisitorLawyerAltC, VisitorLawyerAltD, VisitorLawyerAltE ]
roleLoadout: [ RoleSurvivalStandard ]
- type: randomHumanoidSettings
id: VisitorLawyerCentcom
parent: VisitorCivilian
components:
- type: GhostRole
name: ghost-role-information-civilian-centcom-lawyer-name
description: ghost-role-information-civilian-centcom-lawyer-description
- type: Loadout
prototypes: [ VisitorLawyerCentcom ]
roleLoadout: [ RoleSurvivalStandard ]
- type: randomHumanoidSettings
id: VisitorLibrarian
parent: VisitorCivilian
components:
- type: GhostRole
name: job-name-librarian
- type: Loadout
prototypes: [ VisitorLibrarian, VisitorLibrarianAlt ]
roleLoadout: [ RoleSurvivalStandard ]
- type: randomHumanoidSettings
id: VisitorMusician
parent: VisitorCivilian
components:
- type: GhostRole
name: job-name-musician
- type: Loadout
prototypes: [ VisitorMusicianFancyAltA, VisitorMusicianFancyAltB, VisitorMusicianFancyAltC, VisitorMusicianFancyAltD, VisitorMusicianFancyAltE, VisitorMusicianFancyAltF, VisitorMusicianFancyAltG, VisitorMusicianFancyAltH, VisitorMusicianFancyAltI, VisitorMusicianRelaxedAltA, VisitorMusicianRelaxedAltB, VisitorMusicianRelaxedAltC, VisitorMusicianRelaxedAltD, VisitorMusicianRelaxedAltE, VisitorMusicianRelaxedAltF, VisitorMusicianMariachi ]
roleLoadout: [ RoleSurvivalStandard ]
- type: randomHumanoidSettings
id: VisitorMusicianFancy
parent: VisitorCivilian
components:
- type: GhostRole
name: job-name-musician
- type: Loadout
prototypes: [ VisitorMusicianFancyAltA, VisitorMusicianFancyAltB, VisitorMusicianFancyAltC, VisitorMusicianFancyAltD, VisitorMusicianFancyAltE, VisitorMusicianFancyAltF, VisitorMusicianFancyAltG, VisitorMusicianFancyAltH, VisitorMusicianFancyAltI ]
roleLoadout: [ RoleSurvivalStandard ]
- type: randomHumanoidSettings
id: VisitorMusicianRelaxed
parent: VisitorCivilian
components:
- type: GhostRole
name: job-name-musician
- type: Loadout
prototypes: [ VisitorMusicianRelaxedAltA, VisitorMusicianRelaxedAltB, VisitorMusicianRelaxedAltC, VisitorMusicianRelaxedAltD, VisitorMusicianRelaxedAltE, VisitorMusicianRelaxedAltF, VisitorMusicianMariachi ]
roleLoadout: [ RoleSurvivalStandard ]
- type: randomHumanoidSettings
id: VisitorMime
parent: VisitorCivilian
components:
- type: MimePowers
- type: GhostRole
name: job-name-mime
- type: Loadout
prototypes: [ VisitorMime, VisitorMimeAlt ]
roleLoadout: [ RoleSurvivalStandard ]
- type: randomHumanoidSettings
id: VisitorReporter
parent: VisitorCivilian
components:
- type: GhostRole
name: job-name-reporter
- type: Loadout
prototypes: [ VisitorReporter, VisitorReporterAlt ]
roleLoadout: [ RoleSurvivalStandard ]
- type: randomHumanoidSettings
id: VisitorServiceWorker
parent: VisitorCivilian
components:
- type: GhostRole
name: job-name-serviceworker
- type: Loadout
prototypes: [ VisitorServiceWorker, VisitorServiceWorkerAlt ]
roleLoadout: [ RoleSurvivalStandard ]
- type: randomHumanoidSettings
id: VisitorZookeeper
parent: VisitorCivilian
components:
- type: GhostRole
name: job-name-zookeeper
- type: Loadout
prototypes: [ VisitorZookeeper, VisitorZookeeperAlt ]
roleLoadout: [ RoleSurvivalStandard ]
- type: randomHumanoidSettings
id: ClownTroupeBanana
parent: VisitorClown
randomizeName: false
components:
- type: Loadout
prototypes: [ BananaClown ]
roleLoadout: [ RoleSurvivalClown ]
# Misc
### Visitors missing equipment for challenges
# CHALLENGE #
# these are specifically missing QOL equipment and have settings to make them harder.
# making changes to these should be done with care to avoid unbalancing challenging scenarios.
# Command
# Following use EventHumanoidMindShielded since they are heads and probably should have mindshields
- type: randomHumanoidSettings
id: ChallengeVictimCaptain
parent: EventHumanoidMindShielded
randomizeName: false
components:
- type: GhostRole
name: ghost-role-information-lost-challenge-commander-name
description: ghost-role-information-lost-challenge-commander-description
rules: ghost-role-information-lost-challenge-commander-rules
raffle:
settings: default
- type: GhostTakeoverAvailable
- type: Loadout
prototypes: [ ChallengeVictimCaptain, ChallengeVictimCaptainAlt ] #!! This is supposed to be for challenge events. Its intentionally missing QOL gear to make interesting scenarios.
roleLoadout: [ RoleSurvivalVoxSupport ]
- type: RandomMetadata
nameSegments:
- names_first
- names_last
- type: randomHumanoidSettings
id: ChallengeVictimChiefEngineer
randomizeName: false
components:
- type: GhostRole
name: ghost-role-information-lost-challenge-commander-name
description: ghost-role-information-lost-challenge-commander-description
rules: ghost-role-information-lost-challenge-commander-rules
raffle:
settings: default
- type: GhostTakeoverAvailable
- type: Loadout
prototypes: [ ChallengeVictimCE, ChallengeVictimCEAlt ] #!! This is supposed to be for challenge events. Its intentionally missing QOL gear to make interesting scenarios.
roleLoadout: [ RoleSurvivalVoxSupport ]
- type: RandomMetadata
nameSegments:
- names_first
- names_last
- type: randomHumanoidSettings
id: ChallengeVictimCMO
randomizeName: false
components:
- type: GhostRole
name: ghost-role-information-lost-challenge-commander-name
description: ghost-role-information-lost-challenge-commander-description
rules: ghost-role-information-lost-challenge-commander-rules
raffle:
settings: default
- type: GhostTakeoverAvailable
- type: Loadout
prototypes: [ ChallengeVictimCMO, ChallengeVictimCMOAlt ] #!! This is supposed to be for challenge events. Its intentionally missing QOL gear to make interesting scenarios.
roleLoadout: [ RoleSurvivalVoxSupport ]
- type: RandomMetadata
nameSegments:
- names_first
- names_last
- type: randomHumanoidSettings
id: ChallengeVictimHeadOfPersonnel
randomizeName: false
components:
- type: GhostRole
name: ghost-role-information-lost-challenge-commander-name
description: ghost-role-information-lost-challenge-commander-description
rules: ghost-role-information-lost-challenge-commander-rules
raffle:
settings: default
- type: GhostTakeoverAvailable
- type: Loadout
prototypes: [ ChallengeVictimHOP, ChallengeVictimHOPAlt ] #!! This is supposed to be for challenge events. Its intentionally missing QOL gear to make interesting scenarios.
roleLoadout: [ RoleSurvivalVoxSupport ]
- type: RandomMetadata
nameSegments:
- names_first
- names_last
- type: randomHumanoidSettings
id: ChallengeVictimHeadOfSecurity
randomizeName: false
components:
- type: GhostRole
name: ghost-role-information-lost-challenge-commander-name
description: ghost-role-information-lost-challenge-commander-description
rules: ghost-role-information-lost-challenge-commander-rules
raffle:
settings: default
- type: GhostTakeoverAvailable
- type: Loadout
prototypes: [ ChallengeVictimHOS, ChallengeVictimHOSAlt ] #!! This is supposed to be for challenge events. Its intentionally missing QOL gear to make interesting scenarios.
roleLoadout: [ RoleSurvivalVoxSupport ]
- type: RandomMetadata
nameSegments:
- names_first
- names_last
- type: randomHumanoidSettings
id: ChallengeVictimResearchDirector
randomizeName: false
components:
- type: GhostRole
name: ghost-role-information-lost-challenge-commander-name
description: ghost-role-information-lost-challenge-commander-description
rules: ghost-role-information-lost-challenge-commander-rules
raffle:
settings: default
- type: GhostTakeoverAvailable
- type: Loadout
prototypes: [ ChallengeVictimRD, ChallengeVictimRDAlt ] #!! This is supposed to be for challenge events. Its intentionally missing QOL gear to make interesting scenarios.
roleLoadout: [ RoleSurvivalVoxSupport ]
- type: RandomMetadata
nameSegments:
- names_first
- names_last
- type: randomHumanoidSettings
id: ChallengeVictimQuartermaster
randomizeName: false
components:
- type: GhostRole
name: ghost-role-information-lost-challenge-commander-name
description: ghost-role-information-lost-challenge-commander-description
rules: ghost-role-information-lost-challenge-commander-rules
raffle:
settings: default
- type: GhostTakeoverAvailable
- type: Loadout
prototypes: [ ChallengeVictimQM, ChallengeVictimQMAlt ] #!! This is supposed to be for challenge events. Its intentionally missing QOL gear to make interesting scenarios.
roleLoadout: [ RoleSurvivalVoxSupport ]
- type: RandomMetadata
nameSegments:
- names_first
- names_last
# Security
# Following use EventHumanoidMindShielded since they are heads and probably should have mindshields
# Cargo
- type: randomHumanoidSettings
id: ChallengeCargoTechnician
randomizeName: false
components:
- type: GhostRole
name: ghost-role-information-lost-challenge-cargo-technican-name
description: ghost-role-information-lost-challenge-cargo-technican-description
rules: ghost-role-information-lost-disaster-challenge-cargo-technican-rules
raffle:
settings: short
- type: GhostTakeoverAvailable
- type: Loadout
prototypes: [ ChallengeCargoTechGearSuit, ChallengeCargoTechGearCoat ] #!! This is supposed to be for challenge events. Its intentionally missing QOL gear to make interesting scenarios.
roleLoadout: [ RoleSurvivalVoxSupport ]
- type: RandomMetadata
nameSegments:
- names_first
- names_last
# Engineering
# Medical
# Science
# Civilian
# Misc
### Syndicate & Hostiles
- type: randomHumanoidSettings
id: SyndieSoldierTeamLeader
parent: EventHumanoid
components:
- type: NpcFactionMember
factions:
- Syndicate
- type: NukeOperative
- type: GhostRole
name: ghost-role-information-syndie-soldier-teamlead-name
description: ghost-role-information-syndie-soldier-teamlead-description
rules: ghost-role-information-rules-team-antagonist
raffle:
settings: default
- type: Loadout
prototypes: [ SyndicateFootsoldierTeamLeaderGear ]
roleLoadout: [ RoleSurvivalSyndicate ]
- type: randomHumanoidSettings
id: SyndieSoldier
parent: EventHumanoid
components:
- type: NpcFactionMember
factions:
- Syndicate
- type: NukeOperative
- type: GhostRole
name: ghost-role-information-syndie-soldier-name
description: ghost-role-information-syndie-soldier-description
rules: ghost-role-information-rules-team-antagonist
raffle:
settings: default
- type: Loadout
prototypes: [ SyndicateFootsoldierGear ]
roleLoadout: [ RoleSurvivalSyndicate ]
- type: randomHumanoidSettings
id: SyndieVisitor
parent: EventHumanoid
components:
- type: NpcFactionMember
factions:
- Syndicate
- type: GhostRole
name: ghost-role-information-syndie-disaster-victim-name
description: ghost-role-information-syndie-disaster-victim-description
rules: ghost-role-information-freeagent-rules
raffle:
settings: short
- type: Loadout
prototypes: [ SyndicateOperativeGearCivilian ]
roleLoadout: [ RoleSurvivalSyndicate ]
- type: randomHumanoidSettings
id: PirateScooner
parent: EventHumanoid
components:
- type: NpcFactionMember
factions:
- Syndicate
- type: GhostRole
name: ghost-role-information-pirate-name
description: ghost-role-information-pirate-description
rules: ghost-role-information-rules-team-antagonist
raffle:
settings: default
- type: Loadout
prototypes: [ PirateScoonerAltA, PirateScoonerAltB, PirateScoonerAltC, PirateScoonerAltD ]
roleLoadout: [ RoleSurvivalEVA ]
- type: randomHumanoidSettings
id: PirateCaptainScooner
parent: EventHumanoid
components:
- type: NpcFactionMember
factions:
- Syndicate
- type: GhostRole
name: ghost-role-information-pirate-captain-name
description: ghost-role-information-pirate-captain-description
rules: ghost-role-information-rules-team-antagonist
raffle:
settings: default
- type: Loadout
prototypes: [ PirateCaptainScooner ]
roleLoadout: [ RoleSurvivalEVA ]
### Other
- type: randomHumanoidSettings
id: VisitorBlackmarketeer
parent: EventHumanoid
components:
- type: GhostRole
name: ghost-role-information-blackmarketeer-name
description: ghost-role-information-blackmarketeer-description
rules: ghost-role-information-freeagent-rules
raffle:
settings: default
- type: Loadout
prototypes: [ VisitorBlackmarketeer, VisitorBlackmarketeer ]
roleLoadout: [ RoleSurvivalStandard ]
- type: randomHumanoidSettings
id: Cossack
parent: EventHumanoid
components:
- type: RussianAccent
- type: ScrambledAccent
- type: SlurredAccent
- type: SouthernAccent
- type: GhostRole
name: ghost-role-information-cossack-name
description: ghost-role-information-cossack-description
rules: ghost-role-information-freeagent-rules
raffle:
settings: default
- type: Loadout
prototypes: [ CossackGear ]
roleLoadout: [ RoleSurvivalEVA ]

File diff suppressed because it is too large Load Diff

View File

@@ -160,6 +160,7 @@
id: ERTChaplain
parent: ERTLeader
components:
- type: BibleUser
- type: GhostRole
name: ghost-role-information-ert-chaplain-name
description: ghost-role-information-ert-chaplain-description
@@ -174,7 +175,6 @@
- type: Loadout
prototypes: [ ERTChaplainGear ]
roleLoadout: [ RoleSurvivalExtended ]
- type: BibleUser
- type: entity
id: RandomHumanoidSpawnerERTChaplainEVA
@@ -607,277 +607,3 @@
raffle:
settings: default
- type: Cluwne
## Shuttle roles
## Lost Cargo technician
- type: entity
name: lost cargo technician spawner
id: LostCargoTechnicianSpawner
parent: MarkerBase
components:
- type: Sprite
layers:
- state: red
- sprite: Objects/Tools/appraisal-tool.rsi
state: icon
- type: RandomSpawner
prototypes:
- RandomHumanoidLostCargoTechnician
chance: 1
- type: entity
id: RandomHumanoidLostCargoTechnician
name: lost cargo technician ghost role
components:
- type: Sprite
sprite: Objects/Tools/appraisal-tool.rsi
state: icon
- type: RandomHumanoidSpawner
settings: LostCargoTechnician
- type: randomHumanoidSettings
id: LostCargoTechnician
parent: EventHumanoid
components:
- type: GhostRole
name: ghost-role-information-lost-cargo-technical-name
description: ghost-role-information-lost-cargo-technical-description
rules: ghost-role-information-nonantagonist-rules
raffle:
settings: short
- type: Loadout
prototypes: [ LostCargoTechGearSuit, LostCargoTechGearCoat ]
roleLoadout: [ RoleSurvivalStandard ]
# Clown troupe
- type: entity
name: clown troupe spawner
id: ClownTroupeSpawner
parent: MarkerBase
components:
- type: Sprite
layers:
- state: red
- sprite: Objects/Fun/bikehorn.rsi
state: icon
- type: RandomSpawner
prototypes:
- RandomHumanoidClownTroupe
rarePrototypes:
- RandomHumanoidClownTroupeBanana
rareChance: 0.3
- type: entity
id: RandomHumanoidClownTroupe
name: clown troupe ghost role
components:
- type: Sprite
sprite: Objects/Tools/appraisal-tool.rsi
state: icon
- type: RandomHumanoidSpawner
settings: ClownTroupe
- type: entity
id: RandomHumanoidClownTroupeBanana
name: banana clown troupe
parent: RandomHumanoidClownTroupe
components:
- type: RandomHumanoidSpawner
settings: ClownTroupeBanana
- type: randomHumanoidSettings
id: ClownTroupe
parent: EventHumanoid
randomizeName: false
components:
- type: GhostRole
name: ghost-role-information-clown-troupe-name
description: ghost-role-information-clown-troupe-description
rules: ghost-role-information-nonantagonist-rules
raffle:
settings: short
- type: Loadout
prototypes: [ ClownTroupe ]
roleLoadout: [ RoleSurvivalStandard ]
- type: RandomMetadata
nameSegments:
- names_clown
- type: randomHumanoidSettings
id: ClownTroupeBanana
parent: ClownTroupe
randomizeName: false
components:
- type: Loadout
prototypes: [ BananaClown ]
roleLoadout: [ RoleSurvivalStandard ]
# Traveling exotic chef
- type: entity
name: traveling chef spawner
id: TravelingChefSpawner
parent: MarkerBase
components:
- type: Sprite
layers:
- state: red
- sprite: Objects/Weapons/Melee/kitchen_knife.rsi
state: icon
- type: RandomSpawner
prototypes:
- RandomHumanoidTravelingChef
- type: entity
id: RandomHumanoidTravelingChef
name: traveling chef ghost role
components:
- type: Sprite
sprite: Objects/Tools/appraisal-tool.rsi
state: icon
- type: RandomHumanoidSpawner
settings: TravelingChef
- type: randomHumanoidSettings
id: TravelingChef
parent: EventHumanoid
components:
- type: GhostRole
name: ghost-role-information-traveling-chef-name
description: ghost-role-information-traveling-chef-description
rules: ghost-role-information-nonantagonist-rules
raffle:
settings: short
- type: Loadout
prototypes: [ TravelingChef ]
roleLoadout: [ RoleSurvivalStandard ]
# Disaster victim
- type: entity
name: disaster victim spawner
id: DisasterVictimSpawner
parent: MarkerBase
components:
- type: Sprite
layers:
- state: red
- sprite: Clothing/OuterClothing/Hardsuits/basic.rsi
state: icon
- type: RandomSpawner
prototypes:
- RandomHumanoidDisasterVictimRD
- RandomHumanoidDisasterVictimCMO
- RandomHumanoidDisasterVictimCaptain
- MobSkeletonCloset
- type: entity
id: RandomHumanoidDisasterVictimRD
name: disaster victim RD ghost role
components:
- type: Sprite
sprite: Clothing/OuterClothing/Hardsuits/basic.rsi
state: icon
- type: RandomHumanoidSpawner
settings: DisasterVictimResearchDirector
- type: entity
id: RandomHumanoidDisasterVictimCMO
parent: RandomHumanoidDisasterVictimRD
name: disaster victim CMO ghost role
components:
- type: RandomHumanoidSpawner
settings: DisasterVictimCMO
- type: entity
id: RandomHumanoidDisasterVictimCaptain
parent: RandomHumanoidDisasterVictimRD
name: disaster victim Captain ghost role
components:
- type: RandomHumanoidSpawner
settings: DisasterVictimCaptain
## Following use EventHumanoidMindShielded since they are heads and probably should have mindshields
- type: randomHumanoidSettings
id: DisasterVictimHead
parent: EventHumanoidMindShielded
components:
- type: GhostRole
name: ghost-role-information-disaster-victim-name
description: ghost-role-information-disaster-victim-description
rules: ghost-role-information-nonantagonist-rules
raffle:
settings: default
- type: randomHumanoidSettings
id: DisasterVictimResearchDirector
parent: DisasterVictimHead
components:
- type: Loadout
prototypes: [ DisasterVictimRD, DisasterVictimRDAlt ]
roleLoadout: [ RoleSurvivalStandard ]
- type: randomHumanoidSettings
id: DisasterVictimCMO
parent: DisasterVictimHead
components:
- type: Loadout
prototypes: [ DisasterVictimCMO, DisasterVictimCMOAlt ]
roleLoadout: [ RoleSurvivalMedical ]
- type: randomHumanoidSettings
id: DisasterVictimCaptain
parent: DisasterVictimHead
components:
- type: Loadout
prototypes: [ DisasterVictimCaptain, DisasterVictimCaptainAlt ]
roleLoadout: [ RoleSurvivalStandard ]
# Syndie Disaster Victim
- type: entity
name: syndie disaster victim spawner
id: SyndieDisasterVictimSpawner
parent: MarkerBase
components:
- type: Sprite
layers:
- state: red
- sprite: Structures/Decoration/banner.rsi
state: banner_syndicate
- type: RandomSpawner
prototypes:
- RandomHumanoidSyndieDisasterVictim
- type: entity
id: RandomHumanoidSyndieDisasterVictim
name: syndie disaster victim ghost role
components:
- type: Sprite
sprite: Structures/Decoration/banner.rsi
state: banner_syndicate
- type: RandomHumanoidSpawner
settings: SyndieDisasterVictim
- type: randomHumanoidSettings
id: SyndieDisasterVictim
parent: EventHumanoid
components:
- type: NpcFactionMember
factions:
- Syndicate
- type: GhostRole
name: ghost-role-information-syndie-disaster-victim-name
description: ghost-role-information-syndie-disaster-victim-description
rules: ghost-role-information-nonantagonist-rules
raffle:
settings: short
- type: Loadout
prototypes: [ SyndicateOperativeGearCivilian ]
roleLoadout: [ RoleSurvivalStandard ]

View File

@@ -443,3 +443,65 @@
cell_slot:
name: power-cell-slot-component-slot-name-default
startingItem: PowerCellHyper
- type: entity
id: PlayerBorgSyndicateAssaultGhostRole
parent: PlayerBorgSyndicateAssaultBattery
suffix: Ghost role
components:
- type: GhostRole
name: ghost-role-information-syndicate-cyborg-assault-name
description: ghost-role-information-syndicate-cyborg-description
rules: ghost-role-information-rules-default-silicon
raffle:
settings: default
- type: GhostTakeoverAvailable
- type: entity
id: PlayerBorgSyndicateSaboteurBattery
parent: BorgChassisSyndicateSaboteur
suffix: Battery, Module, Operative
components:
- type: NukeOperative
- type: ContainerFill
containers:
borg_brain:
- PositronicBrain
borg_module:
- BorgModuleTool
- BorgModuleOperative
- BorgModuleSyndicateWeapon
- type: ItemSlots
slots:
cell_slot:
name: power-cell-slot-component-slot-name-default
startingItem: PowerCellHyper
- type: entity
id: PlayerBorgSyndicateSaboteurGhostRole
parent: PlayerBorgSyndicateSaboteurBattery
suffix: Ghost role
components:
- type: GhostRole
name: ghost-role-information-syndicate-cyborg-saboteur-name
description: ghost-role-information-syndicate-cyborg-description
rules: ghost-role-information-rules-default-silicon
raffle:
settings: default
- type: GhostTakeoverAvailable
- type: entity
name: syndicate invasion borg spawner
id: PlayerBorgSyndicateInvasionGhostRoleSpawner
parent: MarkerBase
components:
- type: Sprite
layers:
- state: red
- sprite: Structures/Decoration/banner.rsi
state: banner_syndicate
- type: RandomSpawner
prototypes:
- PlayerBorgSyndicateAssaultGhostRole
- PlayerBorgSyndicateAssaultGhostRole # Saboteurs are kinda like cyborg medics, we want less.
- PlayerBorgSyndicateSaboteurGhostRole

View File

@@ -25,7 +25,7 @@
- type: GhostRole
name: ghost-role-information-syndicate-reinforcement-spy-name
description: ghost-role-information-syndicate-reinforcement-description
rules: ghost-role-information-syndicate-reinforcement-rules
rules: ghost-role-information-rules-default-solo-antagonist
raffle:
settings: default
- type: GhostRoleMobSpawner
@@ -57,7 +57,7 @@
- type: GhostRole
name: ghost-role-information-syndicate-monkey-reinforcement-name
description: ghost-role-information-syndicate-monkey-reinforcement-description
rules: ghost-role-information-syndicate-monkey-reinforcement-rules
rules: ghost-role-information-rules-default-familiar
raffle:
settings: default
- type: GhostRoleMobSpawner
@@ -82,7 +82,7 @@
- type: GhostRole
name: ghost-role-information-SyndiCat-name
description: ghost-role-information-SyndiCat-description
rules: ghost-role-information-SyndiCat-rules
rules: ghost-role-information-rules-default-familiar
raffle:
settings: default
- type: GhostRoleMobSpawner
@@ -98,9 +98,9 @@
suffix: NukeOps
components:
- type: GhostRole
name: ghost-role-information-syndie-assaultborg-name
description: ghost-role-information-syndie-assaultborg-description
rules: ghost-role-information-silicon-rules
name: ghost-role-information-syndicate-cyborg-assault-name
description: ghost-role-information-syndicate-cyborg-description
rules: ghost-role-information-rules-default-silicon
raffle:
settings: default
- type: GhostRoleMobSpawner

View File

@@ -260,6 +260,7 @@
penSlot:
startingItem: CrayonOrange # no pink crayon?!?
# ^ Still unacceptable.
# ^ I would have to concur.
ejectSound: /Audio/Items/bikehorn.ogg
priority: -1
whitelist:
@@ -292,6 +293,15 @@
mask:
- ItemMask
- type: entity
parent: ClownPDA
id: VisitorClownPDA
suffix: Visitor
components:
- type: Pda
id: VisitorIDCard
state: pda-clown
- type: entity
parent: BasePDA
id: MimePDA
@@ -327,6 +337,15 @@
- type: Icon
state: pda-chaplain
- type: entity
parent: ChaplainPDA
id: VisitorChaplainPDA
suffix: Visitor
components:
- type: Pda
id: VisitorIDCard
state: pda-chaplain
- type: entity
name: quartermaster PDA
parent: BasePDA
@@ -405,6 +424,15 @@
- type: Icon
state: pda-library
- type: entity
parent: LibrarianPDA
id: VisitorLibrarianPDA
suffix: Visitor
components:
- type: Pda
id: VisitorIDCard
state: pda-library
- type: entity
parent: BasePDA
id: LawyerPDA
@@ -425,6 +453,15 @@
- type: Icon
state: pda-lawyer
- type: entity
parent: LawyerPDA
id: VisitorLawyerPDA
suffix: Visitor
components:
- type: Pda
id: VisitorIDCard
state: pda-lawyer
- type: entity
parent: BasePDA
id: JanitorPDA
@@ -544,6 +581,15 @@
guides:
- Medical Doctor
- type: entity
parent: MedicalPDA
id: VisitorMedicalPDA
suffix: Visitor
components:
- type: Pda
id: VisitorIDCard
state: pda-medical
- type: entity
parent: BaseMedicalPDA
id: ParamedicPDA
@@ -716,6 +762,15 @@
bank: 1
program: 2
- type: entity
parent: MusicianPDA
id: VisitorMusicianPDA
suffix: Visitor
components:
- type: Pda
id: VisitorIDCard
state: pda-musician
- type: entity
parent: BasePDA
id: AtmosPDA
@@ -745,6 +800,14 @@
- type: Icon
state: pda-clear
- type: entity
parent: ClearPDA
id: VisitorPDA
components:
- type: Pda
id: VisitorIDCard
state: pda
- type: entity
parent: BasePDA
id: SyndiPDA

View File

@@ -433,6 +433,21 @@
- type: PresetIdCard
job: HeadOfSecurity
- type: entity
parent: IDCardStandard
id: VisitorIDCard
name: visitor ID card
components:
- type: Sprite
layers:
- state: default
- state: idvisitor
- type: IdCard
jobTitle: Visitor
jobIcon: JobIconVisitor
- type: PresetIdCard
job: Visitor
- type: entity
parent: IDCardStandard
id: BrigmedicIDCard

View File

@@ -479,3 +479,113 @@
- type: ContainerFill
containers:
board: [ DoorElectronicsHeadOfPersonnel ]
# Syndicate
- type: entity
parent: Windoor
id: WindoorSyndicateLocked
suffix: Syndicate, Locked
components:
- type: ContainerFill
containers:
board: [ DoorElectronicsSyndicateAgent ]
- type: entity
parent: WindoorSecure
id: WindoorSecureSyndicateLocked
suffix: Syndicate, Locked
components:
- type: ContainerFill
containers:
board: [ DoorElectronicsSyndicateAgent ]
- type: entity
parent: WindoorPlasma
id: PlasmaWindoorSyndicateLocked
suffix: Syndicate, Locked, Plasma
components:
- type: ContainerFill
containers:
board: [ DoorElectronicsSyndicateAgent ]
- type: entity
parent: WindoorSecurePlasma
id: PlasmaWindoorSecureSyndicateLocked
suffix: Syndicate, Locked, Plasma
components:
- type: ContainerFill
containers:
board: [ DoorElectronicsSyndicateAgent ]
- type: entity
parent: WindoorUranium
id: UraniumWindoorSyndicateLocked
suffix: Syndicate, Locked, Uranium
components:
- type: ContainerFill
containers:
board: [ DoorElectronicsSyndicateAgent ]
- type: entity
parent: WindoorSecureUranium
id: UraniumWindoorSecureSyndicateLocked
suffix: Syndicate, Locked, Uranium
components:
- type: ContainerFill
containers:
board: [ DoorElectronicsSyndicateAgent ]
- type: entity
parent: Windoor
id: WindoorNukeopLocked
suffix: Nukeop, Locked
components:
- type: ContainerFill
containers:
board: [ DoorElectronicsNukeop ]
- type: entity
parent: WindoorSecure
id: WindoorSecureNukeopLocked
suffix: Nukeop, Locked
components:
- type: ContainerFill
containers:
board: [ DoorElectronicsNukeop ]
- type: entity
parent: WindoorPlasma
id: PlasmaWindoorNukeopLocked
suffix: Nukeop, Locked, Plasma
components:
- type: ContainerFill
containers:
board: [ DoorElectronicsNukeop ]
- type: entity
parent: WindoorSecurePlasma
id: PlasmaWindoorSecureNukeopLocked
suffix: Nukeop, Locked, Plasma
components:
- type: ContainerFill
containers:
board: [ DoorElectronicsNukeop ]
- type: entity
parent: WindoorUranium
id: UraniumWindoorNukeopLocked
suffix: Nukeop, Locked, Uranium
components:
- type: ContainerFill
containers:
board: [ DoorElectronicsNukeop ]
- type: entity
parent: WindoorSecureUranium
id: UraniumWindoorSecureNukeopLocked
suffix: Nukeop, Locked, Uranium
components:
- type: ContainerFill
containers:
board: [ DoorElectronicsNukeop ]

View File

@@ -311,10 +311,10 @@
parent: BaseGameRule # we can remerge this with the other schedulers, but it will silently fail due to that limitation without a separate scheduler to balance atm.
components:
- type: BasicStationEventScheduler
minimumTimeUntilFirstEvent: 1200 # 20 mins
minimumTimeUntilFirstEvent: 2700 # 45 mins #shows up like half way through shift.
minMaxEventTiming:
min: 600 # 10 mins
max: 1800 # 30 mins
min: 1200 # 20 mins
max: 7200 # 120 mins # you probably arent getting a second visitor shuttle in one round, but it is possible.
scheduledGameRules: !type:NestedSelector
tableId: SpaceTrafficControlTable

View File

@@ -8,20 +8,39 @@
- id: UnknownShuttleTravelingCuisine
- id: UnknownShuttleDisasterEvacPod
- id: UnknownShuttleHonki
- id: UnknownShuttleNTQuark
- id: UnknownShuttleCruiser
- id: UnknownShuttleCryptid
- id: UnknownShuttleEternal
- id: UnknownShuttleFlatline
- id: UnknownShuttleGym
- id: UnknownShuttleNTIncorporation
- id: UnknownShuttleJoe
- id: UnknownShuttleLambordeere
- id: UnknownShuttleMeatZone
- id: UnknownShuttleMicroshuttle
- id: UnknownShuttleSpacebus
- type: entityTable
id: UnknownShuttlesFreelanceTable
table: !type:AllSelector # we need to pass a list of rules, since rules have further restrictions to consider via StationEventComp
children:
- id: UnknownShuttleSyndieEvacPod
- id: UnknownShuttleBang
- id: UnknownShuttleHook
- type: entityTable
id: UnknownShuttlesHostileTable
table: !type:AllSelector # we need to pass a list of rules, since rules have further restrictions to consider via StationEventComp
children:
- id: LoneOpsSpawn
- id: UnknownShuttleDrone
- id: UnknownShuttleInstigator
- id: UnknownShuttleManOWar
- id: UnknownShuttleRaider
- id: UnknownShuttleScooner
# Shuttle Game Rules
# Shuttle Game Rules
- type: entity
abstract: true
@@ -32,9 +51,10 @@
startAnnouncement: station-event-unknown-shuttle-incoming
startAudio:
path: /Audio/Announcements/attention.ogg
weight: 5
weight: 10 # 10 default
reoccurrenceDelay: 30
duration: 1
maxOccurrences: 1 # should be the same as [copies] in shuttle_incoming_event.yml
- type: RuleGrids
- type: LoadMapRule
@@ -42,6 +62,8 @@
parent: BaseUnknownShuttleRule
id: UnknownShuttleCargoLost
components:
- type: StationEvent
maxOccurrences: 2 # should be the same as [copies] in shuttle_incoming_event.yml
- type: LoadMapRule
preloadedGrid: ShuttleCargoLost
@@ -49,6 +71,9 @@
parent: BaseUnknownShuttleRule
id: UnknownShuttleTravelingCuisine
components:
- type: StationEvent
startAnnouncement: station-event-unknown-shuttle-incoming
maxOccurrences: 2 # should be the same as [copies] in shuttle_incoming_event.yml
- type: LoadMapRule
preloadedGrid: TravelingCuisine
@@ -56,14 +81,19 @@
parent: BaseUnknownShuttleRule
id: UnknownShuttleDisasterEvacPod
components:
- type: StationEvent
startAnnouncement: station-event-unknown-shuttle-incoming
maxOccurrences: 3 # should be the same as [copies] in shuttle_incoming_event.yml
- type: LoadMapRule
preloadedGrid: DisasterEvacPod
# The power of 3 clowns proved too strong for the players and may need to be 1984'ed. Replace this with a more engaging clown shuttle.
- type: entity
parent: BaseUnknownShuttleRule
id: UnknownShuttleHonki
components:
- type: StationEvent
startAnnouncement: station-event-unknown-shuttle-incoming #!!
weight: 2
- type: LoadMapRule
preloadedGrid: Honki
@@ -73,6 +103,200 @@
id: UnknownShuttleSyndieEvacPod
components:
- type: StationEvent
weight: 2
startAnnouncement: null # It should be silent.
weight: 5 # lower because weird freelance roles
maxOccurrences: 2 # should be the same as [copies] in shuttle_incoming_event.yml
- type: LoadMapRule
preloadedGrid: SyndieEvacPod
- type: entity
id: UnknownShuttleNTQuark
parent: BaseUnknownShuttleRule
components:
- type: StationEvent
startAnnouncement: null # It should be silent.
weight: .5 # Hopefully this is uncommon enough, it needs to be uncommon enough that people wont waste time metaknowledging it.
earliestStart: 45 # late to hopefully have enough ghosts to fill all roles quickly.
minimumPlayers: 25
- type: LoadMapRule
preloadedGrid: NTQuark
- type: entity
id: UnknownShuttleBang
parent: BaseUnknownShuttleRule
components:
- type: StationEvent
startAnnouncement: station-event-unknown-shuttle-incoming #!!
weight: 7 # lower because freelance, but plays well with other antags so lil higher
- type: LoadMapRule
preloadedGrid: Bang
- type: entity
id: UnknownShuttleCruiser
parent: BaseUnknownShuttleRule
components:
- type: StationEvent
startAnnouncement: station-event-unknown-shuttle-incoming #!!
weight: 2 # Its just a big ship, so it needs to be rarer to be interesting.
- type: LoadMapRule
preloadedGrid: Cruiser
- type: entity
id: UnknownShuttleCryptid
parent: BaseUnknownShuttleRule
components:
- type: StationEvent
startAnnouncement: station-event-unknown-shuttle-incoming #!!
- type: LoadMapRule
preloadedGrid: Cryptid
- type: entity
id: UnknownShuttleDrone
parent: BaseUnknownShuttleRule
components:
- type: StationEvent
startAnnouncement: null #dont nark on antags
weight: 2 # lower because antags
- type: LoadMapRule
preloadedGrid: Drone
- type: entity
id: UnknownShuttleEternal
parent: BaseUnknownShuttleRule
components:
- type: StationEvent
startAnnouncement: station-event-unknown-shuttle-incoming #!!
- type: LoadMapRule
preloadedGrid: Eternal
- type: entity
id: UnknownShuttleFlatline
parent: BaseUnknownShuttleRule
components:
- type: StationEvent
startAnnouncement: station-event-unknown-shuttle-incoming #!!
- type: LoadMapRule
preloadedGrid: Flatline
- type: entity
id: UnknownShuttleGym
parent: BaseUnknownShuttleRule
components:
- type: StationEvent
startAnnouncement: station-event-unknown-shuttle-incoming #!!
weight: 5 # Its just a big ship, so it needs to be rarer to be interesting.
- type: LoadMapRule
preloadedGrid: Gym
- type: entity
id: UnknownShuttleHook
parent: BaseUnknownShuttleRule
components:
- type: StationEvent
startAnnouncement: station-event-unknown-shuttle-incoming #!!
weight: 7 # lower because freelance, but plays well with other antags so lil higher
- type: LoadMapRule
preloadedGrid: Hook
- type: entity
id: UnknownShuttleNTIncorporation
parent: BaseUnknownShuttleRule
components:
- type: StationEvent
startAnnouncement: station-event-unknown-shuttle-incoming #!!
weight: 2 # Its just a big ship, so it needs to be rarer to be interesting.
earliestStart: 45 # late to hopefully have enough ghosts to fill all roles quickly. (5-6)
- type: LoadMapRule
preloadedGrid: NTIncorporation
- type: entity
id: UnknownShuttleInstigator
parent: BaseUnknownShuttleRule
components:
- type: StationEvent
startAnnouncement: null #dont nark on antags
weight: 1 # lower because antags.
earliestStart: 50 # late to hopefully have enough ghosts to fill all roles quickly (3) and because antags
- type: LoadMapRule
preloadedGrid: Instigator
- type: entity
id: UnknownShuttleJoe
parent: BaseUnknownShuttleRule
components:
- type: StationEvent
startAnnouncement: station-event-unknown-shuttle-incoming #!!
- type: LoadMapRule
preloadedGrid: Joe
- type: entity
id: UnknownShuttleLambordeere
parent: BaseUnknownShuttleRule
components:
- type: StationEvent
startAnnouncement: station-event-unknown-shuttle-incoming #!!
- type: LoadMapRule
preloadedGrid: Lambordeere
- type: entity
id: UnknownShuttleManOWar
parent: BaseUnknownShuttleRule
components:
- type: StationEvent
startAnnouncement: station-event-unknown-shuttle-incoming #Leaving this one because theyre like primitives and its funnier
weight: 1 # lower because antags
earliestStart: 50 # late to hopefully have enough ghosts to fill all roles quickly. (4) & antags
- type: LoadMapRule
preloadedGrid: ManOWar
- type: entity
id: UnknownShuttleMeatZone
parent: BaseUnknownShuttleRule
components:
- type: StationEvent
startAnnouncement: station-event-unknown-shuttle-incoming #!!
- type: LoadMapRule
preloadedGrid: Meatzone
- type: entity
id: UnknownShuttleMicroshuttle
parent: BaseUnknownShuttleRule
components:
- type: StationEvent
startAnnouncement: station-event-unknown-shuttle-incoming #!!
weight: 11 # this is higher because its just a little generic personal shuttle
maxOccurrences: 4
- type: LoadMapRule
preloadedGrid: Microshuttle
- type: entity
id: UnknownShuttleRaider
parent: BaseUnknownShuttleRule
components:
- type: StationEvent
startAnnouncement: null #dont nark on antags
weight: 1 # lower because antags & because its the Drone but better
earliestStart: 45 # late to hopefully have enough ghosts to fill all roles quickly.
- type: LoadMapRule
preloadedGrid: Raider
- type: entity
id: UnknownShuttleScooner
parent: BaseUnknownShuttleRule
components:
- type: StationEvent
startAnnouncement: null #dont nark on antags, it might be worth giving this one some generic "There be pirates" announement. idk.
weight: 2 # lower because antags
earliestStart: 35 # late to hopefully have enough ghosts to fill all roles quickly. (3)
- type: LoadMapRule
preloadedGrid: Scooner
- type: entity
id: UnknownShuttleSpacebus
parent: BaseUnknownShuttleRule
components:
- type: StationEvent
startAnnouncement: station-event-unknown-shuttle-incoming #!!
- type: LoadMapRule
preloadedGrid: Spacebus

View File

@@ -522,6 +522,12 @@
# These loadouts are used for non-crew spawns, like off-station antags and event mobs
# They will be used without player configuration, thus they will only ever apply what is forced by MinLimit
- type: roleLoadout
id: RoleSurvivalVoxSupport
groups:
- GroupSpeciesBreathTool
- GroupTankHarness
- type: roleLoadout
id: RoleSurvivalStandard
groups:

View File

@@ -2,21 +2,21 @@
id: SyndicateKobold
name: ghost-role-information-syndicate-kobold-reinforcement-name
description: ghost-role-information-syndicate-kobold-reinforcement-description
rules: ghost-role-information-syndicate-kobold-reinforcement-rules
rules: ghost-role-information-rules-default-familiar
entityPrototype: MobKoboldSyndicateAgent
- type: ghostRole
id: SyndicateKoboldNukeops
name: ghost-role-information-syndicate-kobold-reinforcement-name
description: ghost-role-information-syndicate-kobold-reinforcement-description
rules: ghost-role-information-syndicate-kobold-reinforcement-rules
rules: ghost-role-information-rules-default-familiar
entityPrototype: MobKoboldSyndicateAgentNukeops
- type: ghostRole
id: SyndicateMonkey
name: ghost-role-information-syndicate-monkey-reinforcement-name
description: ghost-role-information-syndicate-monkey-reinforcement-description
rules: ghost-role-information-syndicate-monkey-reinforcement-name
rules: ghost-role-information-rules-default-familiar
entityPrototype: MobMonkeySyndicateAgent
- type: ghostRole

View File

@@ -9,3 +9,5 @@
overrideConsoleVisibility: true
access:
- Maintenance
extendedAccess:
- External

View File

@@ -34,7 +34,7 @@
equipment:
jumpsuit: ClothingUniformJumpsuitOperative
head: ClothingHeadHelmetSwatSyndicate
mask: ClothingMaskGas
mask: ClothingMaskGasSyndicate
outerClothing: ClothingOuterArmorBasic
gloves: ClothingHandsGlovesCombat
back: ClothingBackpack
@@ -47,9 +47,29 @@
# Syndicate Footsoldier Gear
- type: startingGear
id: SyndicateFootsoldierGear
parent: SyndicateFootsoldierGearRuin
parent: SyndicateOperativeGearCivilian
equipment:
ears: ClothingHeadsetAltSyndicate
jumpsuit: ClothingUniformJumpsuitOperative
head: ClothingHeadHelmetSwatSyndicate
eyes: ClothingEyesHudSyndicate
outerClothing: ClothingOuterArmorBasic
gloves: ClothingHandsGlovesCombat
back: ClothingBackpack
shoes: ClothingShoesBootsCombatFilled
storage:
back:
- BoxSurvivalSyndicate
- type: startingGear
id: SyndicateFootsoldierTeamLeaderGear
parent: SyndicateFootsoldierGear
equipment:
jumpsuit: ClothingUniformJumpsuitSyndieFormal
head: ClothingHeadHatOutlawHat
outerClothing: ClothingOuterArmorBasicSlim
back: ClothingBackpackSatchel
pocket1: BaseUplinkRadio25TC
pocket2: EnergySword
# Nanotrasen Paramilitary Unit Gear
- type: startingGear
@@ -148,7 +168,7 @@
- type: startingGear
id: BananaClown
equipment:
id: ClownPDA
id: VisitorPDA
back: ClothingBackpackClown
shoes: ClothingShoesClownBanana
jumpsuit: ClothingUniformJumpsuitClownBanana
@@ -162,132 +182,3 @@
equipment:
jumpsuit: ClothingUniformJumpsuitColorGrey
shoes: ClothingShoesColorBlack
#Clown Troupe
- type: startingGear
id: ClownTroupe
equipment:
jumpsuit: ClothingUniformJumpsuitClown
shoes: ClothingShoesClown
id: ClownPDA
back: ClothingBackpackClown
ears: ClothingHeadsetService
mask: ClothingMaskClown
pocket1: BikeHorn
pocket2: ClownRecorder
#Lost Cargo Tech
- type: startingGear
id: LostCargoTechGearSuit
equipment:
jumpsuit: ClothingUniformJumpsuitCargo
shoes: ClothingShoesColorBlack
head: ClothingHeadHatCargosoft
id: CargoPDA
back: ClothingBackpackCargo
ears: ClothingHeadsetCargo
pocket1: AppraisalTool
- type: startingGear
id: LostCargoTechGearCoat
equipment:
jumpsuit: ClothingUniformJumpsuitCargo
shoes: ClothingShoesBootsWinterCargo
head: ClothingHeadHatCargosoft
id: CargoPDA
back: ClothingBackpackDuffelCargo
ears: ClothingHeadsetCargo
pocket1: AppraisalTool
outerClothing: ClothingOuterWinterCargo
#Traveling Chef
- type: startingGear
id: TravelingChef
equipment:
jumpsuit: ClothingUniformJumpsuitChef
shoes: ClothingShoesColorWhite
id: ChefPDA
back: ClothingBackpackSatchel
ears: ClothingHeadsetService
belt: ClothingBeltChef
#CMO Disaster Victim
- type: startingGear
id: DisasterVictimCMO
equipment:
jumpsuit: ClothingUniformJumpsuitCMO
shoes: ClothingShoesColorBrown
head: ClothingHeadMirror
neck: ClothingCloakCmo
id: CMOPDA
back: ClothingBackpackMedical
ears: ClothingHeadsetCMO
belt: ClothingBeltMedical
outerClothing: ClothingOuterCoatLabCmo
- type: startingGear
id: DisasterVictimCMOAlt
equipment:
jumpsuit: ClothingUniformJumpsuitCMOTurtle
shoes: ClothingShoesColorBrown
head: ClothingHeadHatBeretCmo
neck: ClothingNeckMantleCMO
id: CMOPDA
back: ClothingBackpackSatchelMedical
ears: ClothingHeadsetCMO
belt: ClothingBeltMedical
outerClothing: ClothingOuterCoatLabCmo
#Captain Disaster Victim
- type: startingGear
id: DisasterVictimCaptain
equipment:
jumpsuit: ClothingUniformJumpsuitCaptain
shoes: ClothingShoesBootsLaceup
eyes: ClothingEyesGlassesSunglasses
gloves: ClothingHandsGlovesCaptain
head: ClothingHeadHatCaptain
neck: ClothingNeckCloakCap
id: CaptainPDA
back: ClothingBackpackCaptain
ears: ClothingHeadsetAltCommand
outerClothing: ClothingOuterArmorCaptainCarapace
- type: startingGear
id: DisasterVictimCaptainAlt
equipment:
jumpsuit: ClothingUniformJumpsuitCapFormal
shoes: ClothingShoesBootsLaceup
eyes: ClothingEyesGlassesSunglasses
gloves: ClothingHandsGlovesCaptain
head: ClothingHeadHatCapcap
neck: ClothingNeckMantleCap
id: CaptainPDA
back: ClothingBackpackSatchelCaptain
ears: ClothingHeadsetAltCommand
outerClothing: ClothingOuterArmorCaptainCarapace
#RD Disaster Victim
- type: startingGear
id: DisasterVictimRD
equipment:
jumpsuit: ClothingUniformJumpsuitResearchDirector
shoes: ClothingShoesColorBrown
head: ClothingHeadHatBeretRND
neck: ClothingNeckCloakRd
id: RnDPDA
back: ClothingBackpackScience
ears: ClothingHeadsetRD
outerClothing: ClothingOuterCoatRD
- type: startingGear
id: DisasterVictimRDAlt
equipment:
jumpsuit: ClothingUniformJumpsuitResearchDirector
shoes: ClothingShoesColorBrown
head: ClothingHeadHatBeretRND
neck: ClothingNeckMantleRD
id: RnDPDA
back: ClothingBackpackSatchelScience
ears: ClothingHeadsetRD
outerClothing: ClothingOuterCoatRD

File diff suppressed because it is too large Load Diff

View File

@@ -18,6 +18,7 @@
path: /Maps/Shuttles/ShuttleEvent/disaster_evacpod.yml
copies: 3
# The power of 3 clowns has proved too strong for the players and may need to be 1984ed.
- type: preloadedGrid
id: Honki
path: /Maps/Shuttles/ShuttleEvent/honki.yml
@@ -27,3 +28,103 @@
id: SyndieEvacPod
path: /Maps/Shuttles/ShuttleEvent/syndie_evacpod.yml
copies: 2
- type: preloadedGrid
id: NTQuark
path: /Maps/Shuttles/ShuttleEvent/quark.yml
copies: 1
- type: preloadedGrid
id: Bang
path: /Maps/Shuttles/ShuttleEvent/bang.yml
copies: 1
- type: preloadedGrid
id: MeatZone
path: /Maps/Shuttles/ShuttleEvent/meatzone.yml
copies: 1
- type: preloadedGrid
id: Cruiser
path: /Maps/Shuttles/ShuttleEvent/cruiser.yml
copies: 1
- type: preloadedGrid
id: Cryptid
path: /Maps/Shuttles/ShuttleEvent/cryptid.yml
copies: 1
- type: preloadedGrid
id: Drone
path: /Maps/Shuttles/ShuttleEvent/drone.yml
copies: 1
- type: preloadedGrid
id: Raider
path: /Maps/Shuttles/ShuttleEvent/raider.yml
copies: 1
- type: preloadedGrid
id: Eternal
path: /Maps/Shuttles/ShuttleEvent/eternal.yml
copies: 1
- type: preloadedGrid
id: Flatline
path: /Maps/Shuttles/ShuttleEvent/flatline.yml
copies: 1
- type: preloadedGrid
id: Gym
path: /Maps/Shuttles/ShuttleEvent/gym.yml
copies: 1
- type: preloadedGrid
id: Hook
path: /Maps/Shuttles/ShuttleEvent/hook.yml
copies: 1
- type: preloadedGrid
id: NTIncorporation
path: /Maps/Shuttles/ShuttleEvent/incorporation.yml
copies: 1
- type: preloadedGrid
id: Instigator
path: /Maps/Shuttles/ShuttleEvent/instigator.yml
copies: 1
- type: preloadedGrid
id: Joe
path: /Maps/Shuttles/ShuttleEvent/joe.yml
copies: 1
- type: preloadedGrid
id: Lambordeere
path: /Maps/Shuttles/ShuttleEvent/lambordeere.yml
copies: 1
- type: preloadedGrid
id: ManOWar
path: /Maps/Shuttles/ShuttleEvent/manowar.yml
copies: 1
- type: preloadedGrid
id: Meatzone
path: /Maps/Shuttles/ShuttleEvent/meatzone.yml
copies: 1
- type: preloadedGrid
id: Microshuttle
path: /Maps/Shuttles/ShuttleEvent/microshuttle.yml
copies: 4
- type: preloadedGrid
id: Scooner
path: /Maps/Shuttles/ShuttleEvent/scooner.yml
copies: 1
- type: preloadedGrid
id: Spacebus
path: /Maps/Shuttles/ShuttleEvent/spacebus.yml
copies: 1