Event refactor (#9589)
* Station event refactor * Remove clientside `IStationEventManager` we can just use prototypes * Basic API idea * Cruft * first attempt at epicness * okay yeah this shit is really clean * sort out minor stuff * Convert `BreakerFlip` * `BureaucraticError` + general cleanup * `DiseaseOutbreak` * `FalseAlarm` * `GasLeak` * `KudzuGrowth` * `MeteorSwarm` * `MouseMigration` * misc errors * `PowerGridCheck` * `RandomSentience` * `VentClog` * `VentCritters` * `ZombieOutbreak` * Rewrite basic event scheduler * Minor fixes and logging * ooooops * errors + fix * linter * completions, `RuleStarted` property, update loop fixes * Tweaks * Fix #9462 * Basic scheduler update fix, and fixes #8174 * Add test * UI cleanup * really this was just for testing
This commit is contained in:
149
Resources/Prototypes/GameRules/events.yml
Normal file
149
Resources/Prototypes/GameRules/events.yml
Normal file
@@ -0,0 +1,149 @@
|
||||
- type: gameRule
|
||||
id: BreakerFlip
|
||||
config:
|
||||
!type:StationEventRuleConfiguration
|
||||
id: BreakerFlip
|
||||
weight: 10
|
||||
endAfter: 1
|
||||
maxOccurrences: 5
|
||||
minimumPlayers: 15
|
||||
|
||||
- type: gameRule
|
||||
id: BureaucraticError
|
||||
config:
|
||||
!type:StationEventRuleConfiguration
|
||||
id: BureaucraticError
|
||||
startAnnouncement: station-event-bureaucratic-error-announcement
|
||||
minimumPlayers: 25
|
||||
weight: 5
|
||||
maxOccurrences: 2
|
||||
endAfter: 1
|
||||
|
||||
- type: gameRule
|
||||
id: DiseaseOutbreak
|
||||
config:
|
||||
!type:StationEventRuleConfiguration
|
||||
id: DiseaseOutbreak
|
||||
weight: 10
|
||||
endAfter: 1
|
||||
|
||||
- type: gameRule
|
||||
id: FalseAlarm
|
||||
config:
|
||||
!type:StationEventRuleConfiguration
|
||||
id: FalseAlarm
|
||||
weight: 15
|
||||
endAfter: 1
|
||||
maxOccurrences: 5
|
||||
|
||||
- type: gameRule
|
||||
id: GasLeak
|
||||
config:
|
||||
!type:StationEventRuleConfiguration
|
||||
id: GasLeak
|
||||
startAnnouncement: station-event-gas-leak-start-announcement
|
||||
startAudio:
|
||||
path: /Audio/Announcements/attention.ogg
|
||||
endAnnouncement: station-event-gas-leak-end-announcement
|
||||
earliestStart: 10
|
||||
minimumPlayers: 5
|
||||
weight: 5
|
||||
maxOccurrences: 1
|
||||
startAfter: 20
|
||||
|
||||
- type: gameRule
|
||||
id: KudzuGrowth
|
||||
config:
|
||||
!type:StationEventRuleConfiguration
|
||||
id: KudzuGrowth
|
||||
earliestStart: 15
|
||||
minimumPlayers: 15
|
||||
weight: 5
|
||||
maxOccurrences: 2
|
||||
startAfter: 50
|
||||
endAfter: 240
|
||||
|
||||
- type: gameRule
|
||||
id: MeteorSwarm
|
||||
config:
|
||||
!type:StationEventRuleConfiguration
|
||||
id: MeteorSwarm
|
||||
earliestStart: 30
|
||||
weight: 5
|
||||
maxOccurrences: 2
|
||||
minimumPlayers: 20
|
||||
startAnnouncement: station-event-meteor-swarm-start-announcement
|
||||
endAnnouncement: station-event-meteor-swarm-end-announcement
|
||||
startAudio:
|
||||
path: /Audio/Announcements/meteors.ogg
|
||||
startAfter: 30
|
||||
|
||||
- type: gameRule
|
||||
id: MouseMigration
|
||||
config:
|
||||
!type:StationEventRuleConfiguration
|
||||
id: MouseMigration
|
||||
earliestStart: 30
|
||||
minimumPlayers: 35
|
||||
weightLow: 5
|
||||
maxOccurrences: 1
|
||||
endAfter: 50
|
||||
|
||||
- type: gameRule
|
||||
id: PowerGridCheck
|
||||
config:
|
||||
!type:StationEventRuleConfiguration
|
||||
id: PowerGridCheck
|
||||
weight: 10
|
||||
maxOccurrences: 3
|
||||
startAnnouncement: station-event-power-grid-check-start-announcement
|
||||
endAnnouncement: station-event-power-grid-check-end-announcement
|
||||
startAudio:
|
||||
path: /Audio/Announcements/power_off.ogg
|
||||
startAfter: 12
|
||||
|
||||
- type: gameRule
|
||||
id: RandomSentience
|
||||
config:
|
||||
!type:StationEventRuleConfiguration
|
||||
id: RandomSentience
|
||||
weight: 10
|
||||
endAfter: 1
|
||||
startAudio:
|
||||
path: /Audio/Announcements/attention.ogg
|
||||
|
||||
- type: gameRule
|
||||
id: VentClog
|
||||
config:
|
||||
!type:StationEventRuleConfiguration
|
||||
id: VentClog
|
||||
startAnnouncement: station-event-vent-clog-start-announcement
|
||||
startAudio:
|
||||
path: /Audio/Announcements/attention.ogg
|
||||
earliestStart: 15
|
||||
minimumPlayers: 15
|
||||
weight: 5
|
||||
maxOccurrences: 2
|
||||
startAfter: 50
|
||||
endAfter: 60
|
||||
|
||||
- type: gameRule
|
||||
id: VentCritters
|
||||
config:
|
||||
!type:StationEventRuleConfiguration
|
||||
id: VentCritters
|
||||
earliestStart: 15
|
||||
minimumPlayers: 15
|
||||
weight: 5
|
||||
maxOccurrences: 2
|
||||
endAfter: 60
|
||||
|
||||
- type: gameRule
|
||||
id: ZombieOutbreak
|
||||
config:
|
||||
!type:StationEventRuleConfiguration
|
||||
id: ZombieOutbreak
|
||||
earliestStart: 50
|
||||
weight: 2.5
|
||||
endAfter: 1
|
||||
maxOccurrences: 1
|
||||
@@ -65,3 +65,10 @@
|
||||
config:
|
||||
!type:GenericGameRuleConfiguration
|
||||
id: Zombie
|
||||
|
||||
# event schedulers
|
||||
- type: gameRule
|
||||
id: BasicStationEventScheduler
|
||||
config:
|
||||
!type:GenericGameRuleConfiguration
|
||||
id: BasicStationEventScheduler
|
||||
@@ -6,6 +6,8 @@
|
||||
name: extended-title
|
||||
showInVote: false #2boring2vote
|
||||
description: extended-description
|
||||
rules:
|
||||
- BasicStationEventScheduler
|
||||
|
||||
- type: gamePreset
|
||||
id: Secret
|
||||
@@ -38,6 +40,7 @@
|
||||
showInVote: false
|
||||
rules:
|
||||
- Traitor
|
||||
- BasicStationEventScheduler
|
||||
|
||||
- type: gamePreset
|
||||
id: Suspicion
|
||||
@@ -79,6 +82,7 @@
|
||||
showInVote: false
|
||||
rules:
|
||||
- Nukeops
|
||||
- BasicStationEventScheduler
|
||||
|
||||
- type: gamePreset
|
||||
id: Zombie
|
||||
@@ -93,6 +97,7 @@
|
||||
showInVote: false
|
||||
rules:
|
||||
- Zombie
|
||||
- BasicStationEventScheduler
|
||||
|
||||
- type: gamePreset
|
||||
id: Pirates
|
||||
@@ -103,3 +108,4 @@
|
||||
showInVote: false
|
||||
rules:
|
||||
- Pirates
|
||||
- BasicStationEventScheduler
|
||||
|
||||
Reference in New Issue
Block a user