New event: Approaching unknown shuttle (#24490)
* setup codebase * Add first shuttle * tak * sync striker * sync 2 * pipipi * Preloaded roundstart shuttles! * Make it abstract "PreloaderGrid" not "PreloaderShuttle" * to do * added china cuisin shuttle * fixes * add disaster evacpod * remove enemy * final shuttles * weight 5 -> 10 * move data to component * remove autotrailer touching * doc, respath * fix frozen positioning * fixes + cvar * finally * fix evacpod * remove blacklistrules * remove `UnknownShuttleSpawnRule`, refactor `LoadMapRule` to support preloaded grids * use tryload * cleanup * fixes * use preloadedgrid for loneops * weight unknown shuttles differently (preliminal) * leftover * cleanup and raffling * partial review * singleton gridpreloader no station coupling * fix grid atmoses * `roleLoadout` support for `LoadoutComponent`, fix missing gear * weighting changes * init logic fix --------- Co-authored-by: Kara <lunarautomaton6@gmail.com>
This commit is contained in:
@@ -838,3 +838,17 @@
|
||||
- type: ConditionalSpawner
|
||||
prototypes:
|
||||
- MobLuminousEntity
|
||||
|
||||
- type: entity
|
||||
name: clown spider spawner
|
||||
id: SpawnClownSpider
|
||||
parent: MarkerBase
|
||||
components:
|
||||
- type: Sprite
|
||||
layers:
|
||||
- state: green
|
||||
- state: clown
|
||||
sprite: Mobs/Animals/clownspider.rsi
|
||||
- type: ConditionalSpawner
|
||||
prototypes:
|
||||
- MobClownSpider
|
||||
@@ -589,3 +589,307 @@
|
||||
settings: default
|
||||
- type: GhostTakeoverAvailable
|
||||
- type: Cluwne
|
||||
|
||||
## 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
|
||||
randomizeName: false
|
||||
components:
|
||||
- type: GhostRole
|
||||
name: ghost-role-information-lost-cargo-technical-name
|
||||
description: ghost-role-information-lost-cargo-technical-description
|
||||
rules: ghost-role-information-lost-cargo-technical-rules
|
||||
raffle:
|
||||
settings: short
|
||||
- type: GhostTakeoverAvailable
|
||||
- type: Loadout
|
||||
roleLoadout: [ JobCargoTechnician ]
|
||||
- type: RandomMetadata
|
||||
nameSegments:
|
||||
- names_first
|
||||
- names_last
|
||||
|
||||
# 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
|
||||
randomizeName: false
|
||||
components:
|
||||
- type: GhostRole
|
||||
name: ghost-role-information-clown-troupe-name
|
||||
description: ghost-role-information-clown-troupe-description
|
||||
rules: ghost-role-information-clown-troupe-rules
|
||||
raffle:
|
||||
settings: short
|
||||
- type: GhostTakeoverAvailable
|
||||
- type: Loadout
|
||||
roleLoadout: [ JobClown ]
|
||||
- type: RandomMetadata
|
||||
nameSegments:
|
||||
- names_clown
|
||||
|
||||
- type: randomHumanoidSettings
|
||||
id: ClownTroupeBanana
|
||||
randomizeName: false
|
||||
components:
|
||||
- type: GhostRole
|
||||
name: ghost-role-information-clown-troupe-name
|
||||
description: ghost-role-information-clown-troupe-description
|
||||
rules: ghost-role-information-clown-troupe-rules
|
||||
- type: GhostTakeoverAvailable
|
||||
- type: Loadout
|
||||
prototypes: [ BananaClown ]
|
||||
- type: RandomMetadata
|
||||
nameSegments:
|
||||
- names_clown
|
||||
|
||||
# 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
|
||||
randomizeName: false
|
||||
components:
|
||||
- type: GhostRole
|
||||
name: ghost-role-information-traveling-chef-name
|
||||
description: ghost-role-information-traveling-chef-description
|
||||
rules: ghost-role-information-traveling-chef-rules
|
||||
raffle:
|
||||
settings: short
|
||||
- type: GhostTakeoverAvailable
|
||||
- type: Loadout
|
||||
roleLoadout: [ JobChef ]
|
||||
- type: RandomMetadata
|
||||
nameSegments:
|
||||
- names_first
|
||||
- names_last
|
||||
|
||||
# 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
|
||||
|
||||
- type: randomHumanoidSettings
|
||||
id: DisasterVictimResearchDirector
|
||||
randomizeName: false
|
||||
components:
|
||||
- type: GhostRole
|
||||
name: ghost-role-information-disaster-victim-name
|
||||
description: ghost-role-information-disaster-victim-description
|
||||
rules: ghost-role-information-disaster-victim-rules
|
||||
raffle:
|
||||
settings: default
|
||||
- type: GhostTakeoverAvailable
|
||||
- type: Loadout
|
||||
roleLoadout: [ JobResearchDirector ]
|
||||
- type: RandomMetadata
|
||||
nameSegments:
|
||||
- names_first
|
||||
- names_last
|
||||
|
||||
- type: randomHumanoidSettings
|
||||
id: DisasterVictimCMO
|
||||
randomizeName: false
|
||||
components:
|
||||
- type: GhostRole
|
||||
name: ghost-role-information-disaster-victim-name
|
||||
description: ghost-role-information-disaster-victim-description
|
||||
rules: ghost-role-information-disaster-victim-rules
|
||||
raffle:
|
||||
settings: default
|
||||
- type: GhostTakeoverAvailable
|
||||
- type: Loadout
|
||||
roleLoadout: [ JobChiefMedicalOfficer ]
|
||||
- type: RandomMetadata
|
||||
nameSegments:
|
||||
- names_first
|
||||
- names_last
|
||||
|
||||
- type: randomHumanoidSettings
|
||||
id: DisasterVictimCaptain
|
||||
randomizeName: false
|
||||
components:
|
||||
- type: GhostRole
|
||||
name: ghost-role-information-disaster-victim-name
|
||||
description: ghost-role-information-disaster-victim-description
|
||||
rules: ghost-role-information-disaster-victim-rules
|
||||
raffle:
|
||||
settings: default
|
||||
- type: GhostTakeoverAvailable
|
||||
- type: Loadout
|
||||
roleLoadout: [ JobCaptain ]
|
||||
- type: RandomMetadata
|
||||
nameSegments:
|
||||
- names_first
|
||||
- names_last
|
||||
|
||||
# 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
|
||||
randomizeName: false
|
||||
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-syndie-disaster-victim-rules
|
||||
raffle:
|
||||
settings: short
|
||||
- type: GhostTakeoverAvailable
|
||||
- type: Loadout
|
||||
prototypes: [ SyndicateOperativeGearCivilian ]
|
||||
- type: RandomMetadata
|
||||
nameSegments:
|
||||
- names_first
|
||||
- names_last
|
||||
|
||||
@@ -126,4 +126,4 @@
|
||||
id: BaseStationAllEventsEligible
|
||||
abstract: true
|
||||
components:
|
||||
- type: StationEventEligible # For when someone makes this more granular in the future.
|
||||
- type: StationEventEligible # For when someone makes this more granular in the future.
|
||||
|
||||
@@ -404,7 +404,7 @@
|
||||
minimumPlayers: 20
|
||||
duration: 1
|
||||
- type: LoadMapRule
|
||||
mapPath: /Maps/Shuttles/striker.yml
|
||||
preloadedGrid: ShuttleStriker
|
||||
- type: NukeopsRule
|
||||
roundEndBehavior: Nothing
|
||||
- type: AntagSelection
|
||||
|
||||
74
Resources/Prototypes/GameRules/unknown_shuttles.yml
Normal file
74
Resources/Prototypes/GameRules/unknown_shuttles.yml
Normal file
@@ -0,0 +1,74 @@
|
||||
- type: entity
|
||||
id: UnknownShuttleCargoLost
|
||||
parent: BaseGameRule
|
||||
noSpawn: true
|
||||
components:
|
||||
- type: StationEvent
|
||||
startAnnouncement: station-event-unknown-shuttle-incoming
|
||||
startAudio:
|
||||
path: /Audio/Announcements/attention.ogg
|
||||
weight: 5
|
||||
reoccurrenceDelay: 30
|
||||
duration: 1
|
||||
- type: LoadMapRule
|
||||
preloadedGrid: ShuttleCargoLost
|
||||
|
||||
- type: entity
|
||||
id: UnknownShuttleTravelingCuisine
|
||||
parent: BaseGameRule
|
||||
noSpawn: true
|
||||
components:
|
||||
- type: StationEvent
|
||||
startAnnouncement: station-event-unknown-shuttle-incoming
|
||||
startAudio:
|
||||
path: /Audio/Announcements/attention.ogg
|
||||
weight: 5
|
||||
reoccurrenceDelay: 30
|
||||
duration: 1
|
||||
- type: LoadMapRule
|
||||
preloadedGrid: TravelingCuisine
|
||||
|
||||
- type: entity
|
||||
id: UnknownShuttleDisasterEvacPod
|
||||
parent: BaseGameRule
|
||||
noSpawn: true
|
||||
components:
|
||||
- type: StationEvent
|
||||
startAnnouncement: station-event-unknown-shuttle-incoming
|
||||
startAudio:
|
||||
path: /Audio/Announcements/attention.ogg
|
||||
weight: 5
|
||||
reoccurrenceDelay: 30
|
||||
duration: 1
|
||||
- type: LoadMapRule
|
||||
preloadedGrid: DisasterEvacPod
|
||||
|
||||
- type: entity
|
||||
id: UnknownShuttleHonki
|
||||
parent: BaseGameRule
|
||||
noSpawn: true
|
||||
components:
|
||||
- type: StationEvent
|
||||
startAnnouncement: station-event-unknown-shuttle-incoming
|
||||
startAudio:
|
||||
path: /Audio/Announcements/attention.ogg
|
||||
weight: 2
|
||||
reoccurrenceDelay: 30
|
||||
duration: 1
|
||||
- type: LoadMapRule
|
||||
preloadedGrid: Honki
|
||||
|
||||
- type: entity
|
||||
id: UnknownShuttleSyndieEvacPod
|
||||
parent: BaseGameRule
|
||||
noSpawn: true
|
||||
components:
|
||||
- type: StationEvent
|
||||
startAnnouncement: station-event-unknown-shuttle-incoming
|
||||
startAudio:
|
||||
path: /Audio/Announcements/attention.ogg
|
||||
weight: 2
|
||||
reoccurrenceDelay: 30
|
||||
duration: 1
|
||||
- type: LoadMapRule
|
||||
preloadedGrid: SyndieEvacPod
|
||||
@@ -71,6 +71,15 @@
|
||||
shoes: ClothingShoesBootsCombatFilled
|
||||
gloves: ClothingHandsGlovesColorBlack
|
||||
|
||||
# Syndicate Operative Outfit - Civilian
|
||||
- type: startingGear
|
||||
id: SyndicateOperativeGearCivilian
|
||||
equipment:
|
||||
jumpsuit: ClothingUniformJumpsuitSyndieFormal
|
||||
back: ClothingBackpackDuffelSyndicate
|
||||
shoes: ClothingShoesBootsCombat
|
||||
gloves: ClothingHandsGlovesColorBlack
|
||||
|
||||
#Syndicate Operative Outfit - Basic
|
||||
- type: startingGear
|
||||
id: SyndicateOperativeGearBasic
|
||||
|
||||
29
Resources/Prototypes/Shuttles/shuttle_incoming_event.yml
Normal file
29
Resources/Prototypes/Shuttles/shuttle_incoming_event.yml
Normal file
@@ -0,0 +1,29 @@
|
||||
- type: preloadedGrid
|
||||
id: ShuttleStriker
|
||||
path: /Maps/Shuttles/ShuttleEvent/striker.yml
|
||||
copies: 2
|
||||
|
||||
- type: preloadedGrid
|
||||
id: ShuttleCargoLost
|
||||
path: /Maps/Shuttles/ShuttleEvent/lost_cargo.yml
|
||||
copies: 2
|
||||
|
||||
- type: preloadedGrid
|
||||
id: TravelingCuisine
|
||||
path: /Maps/Shuttles/ShuttleEvent/traveling_china_cuisine.yml
|
||||
copies: 2
|
||||
|
||||
- type: preloadedGrid
|
||||
id: DisasterEvacPod
|
||||
path: /Maps/Shuttles/ShuttleEvent/disaster_evacpod.yml
|
||||
copies: 3
|
||||
|
||||
- type: preloadedGrid
|
||||
id: Honki
|
||||
path: /Maps/Shuttles/ShuttleEvent/honki.yml
|
||||
copies: 1
|
||||
|
||||
- type: preloadedGrid
|
||||
id: SyndieEvacPod
|
||||
path: /Maps/Shuttles/ShuttleEvent/syndie_evacpod.yml
|
||||
copies: 2
|
||||
Reference in New Issue
Block a user