| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417 |
- - type: entity
- id: BaseGameRule
- abstract: true
- components:
- - type: GameRule
- - type: entity
- parent: BaseGameRule
- id: RespawnDeadRule
- components:
- - type: RespawnDeadRule
- alwaysRespawnDead: true
- - type: RespawnTracker
- respawnDelay: 10
- deleteBody: false
- - type: entity
- parent: BaseGameRule
- id: SubGamemodesRule
- components:
- - type: SubGamemodes
- rules:
- - id: Thief
- prob: 0.5
- - id: SubWizard
- prob: 0.05
- - type: entity
- parent: BaseGameRule
- id: SubGamemodesRuleNoWizard
- components:
- - type: SubGamemodes
- rules:
- - id: Thief
- prob: 0.5
- - type: entity
- id: DeathMatch31
- parent: BaseGameRule
- components:
- - type: DeathMatchRule
- rewardSpawns:
- - id: HealingToolbox
- - id: ClothingOuterArmorBasicSlim
- orGroup: loot
- - id: ClothingHeadHelmetBasic
- orGroup: loot
- - id: SoapNT
- orGroup: loot
- - id: Bola
- orGroup: loot
- - id: Spear
- orGroup: loot
- - id: ClothingShoesGaloshes
- orGroup: loot
- - id: FoodPieBananaCream
- orGroup: loot
- - id: Stimpack
- orGroup: loot
- - type: KillCalloutRule
- - type: PointManager
- - type: RespawnDeadRule
- - type: RespawnTracker
- respawnDelay: 5
- - type: entity
- id: InactivityTimeRestart
- parent: BaseGameRule
- components:
- - type: InactivityRule
- inactivityMaxTime: 600
- roundEndDelay: 10
- - type: entity
- id: MaxTimeRestart
- parent: BaseGameRule
- components:
- - type: MaxTimeRestartRule
- roundMaxTime: 300
- roundEndDelay: 10
- - type: entity
- abstract: true
- parent: BaseGameRule
- id: BaseNukeopsRule
- components:
- - type: RandomMetadata #this generates the random operation name cuz it's cool.
- nameSegments:
- - NamesOperationPrefix
- - NamesOperationSuffix
- - type: NukeopsRule
- - type: RuleGrids
- - type: AntagSelection
- - type: AntagLoadProfileRule
- speciesOverride: Human
- speciesOverrideBlacklist:
- #Species that do not work with nukies should be included in this list.
- #Once the issues are fixed the species should be removed from this list to be enabled.
- #Balance concerns are not a valid reason to disable a species, except for high-impact Nukie-specific exploits.
- #- Vox
- - type: entity
- parent: BaseNukeopsRule
- id: Nukeops
- components:
- - type: GameRule
- minPlayers: 20
- - type: LoadMapRule
- mapPath: /Maps/Nonstations/nukieplanet.yml
- - type: AntagSelection
- selectionTime: PrePlayerSpawn
- definitions:
- - prefRoles: [ NukeopsCommander ]
- fallbackRoles: [ Nukeops, NukeopsMedic ]
- spawnerPrototype: SpawnPointNukeopsCommander
- startingGear: SyndicateCommanderGearFull
- roleLoadout:
- - RoleSurvivalNukie
- components:
- - type: NukeOperative
- - type: RandomMetadata
- nameSegments:
- - nukeops-role-commander
- - NamesSyndicateElite
- - type: NpcFactionMember
- factions:
- - Syndicate
- mindRoles:
- - MindRoleNukeopsCommander
- - prefRoles: [ NukeopsMedic ]
- fallbackRoles: [ Nukeops, NukeopsCommander ]
- spawnerPrototype: SpawnPointNukeopsMedic
- startingGear: SyndicateOperativeMedicFull
- roleLoadout:
- - RoleSurvivalNukie
- components:
- - type: NukeOperative
- - type: RandomMetadata
- nameSegments:
- - nukeops-role-agent
- - NamesSyndicateNormal
- - type: NpcFactionMember
- factions:
- - Syndicate
- mindRoles:
- - MindRoleNukeopsMedic
- - prefRoles: [ Nukeops ]
- fallbackRoles: [ NukeopsCommander, NukeopsMedic ]
- spawnerPrototype: SpawnPointNukeopsOperative
- max: 3
- playerRatio: 10
- startingGear: SyndicateOperativeGearFull
- roleLoadout:
- - RoleSurvivalNukie
- components:
- - type: NukeOperative
- - type: RandomMetadata
- nameSegments:
- - nukeops-role-operator
- - NamesSyndicateNormal
- - type: NpcFactionMember
- factions:
- - Syndicate
- mindRoles:
- - MindRoleNukeops
- - type: entity
- abstract: true
- parent: BaseGameRule
- id: BaseTraitorRule
- components:
- - type: TraitorRule
- # TODO: codewords in yml
- # TODO: uplink in yml
- - type: AntagRandomObjectives
- sets:
- - groups: TraitorObjectiveGroups
- maxDifficulty: 5
- - type: AntagSelection
- agentName: traitor-round-end-agent-name
- - type: entity
- parent: BaseTraitorRule
- id: Traitor
- components:
- - type: GameRule
- minPlayers: 5
- delay:
- min: 240
- max: 420
- - type: AntagSelection
- definitions:
- - prefRoles: [ Traitor ]
- max: 8
- playerRatio: 10
- blacklist:
- components:
- - AntagImmune
- lateJoinAdditional: true
- mindRoles:
- - MindRoleTraitor
- - type: entity
- id: TraitorReinforcement
- parent: BaseTraitorRule
- components:
- - type: TraitorRule
- giveUplink: false
- giveCodewords: false # It would actually give them a different set of codewords than the regular traitors, anyway
- giveBriefing: false
- - type: AntagSelection
- definitions:
- - prefRoles: [ Traitor ]
- mindRoles:
- - MindRoleTraitorReinforcement
- - type: entity
- id: Revolutionary
- parent: BaseGameRule
- components:
- - type: GameRule
- minPlayers: 15
- - type: RevolutionaryRule
- - type: AntagSelection
- definitions:
- - prefRoles: [ HeadRev ]
- max: 3
- playerRatio: 15
- briefing:
- text: head-rev-role-greeting
- color: CornflowerBlue
- sound: "/Audio/Ambience/Antag/headrev_start.ogg"
- startingGear: HeadRevGear
- components:
- - type: Revolutionary
- - type: HeadRevolutionary
- mindRoles:
- - MindRoleHeadRevolutionary
- - type: entity
- id: Sandbox
- parent: BaseGameRule
- components:
- - type: SandboxRule
- - type: entity
- id: Secret
- parent: BaseGameRule
- components:
- - type: SecretRule
- - type: entity
- abstract: true
- parent: BaseGameRule
- id: BaseWizardRule
- components:
- - type: AntagObjectives
- objectives:
- - WizardSurviveObjective
- - WizardDemonstrateObjective
- - type: LoadMapRule
- gridPath: /Maps/Shuttles/wizard.yml
- - type: RuleGrids
- - type: AntagSelection
- - type: AntagLoadProfileRule
- speciesOverride: Human
- - type: entity
- parent: BaseWizardRule
- id: Wizard
- components:
- - type: GameRule
- minPlayers: 10
- - type: AntagSelection
- agentName: wizard-round-end-name
- selectionTime: PrePlayerSpawn
- definitions:
- - prefRoles: [ Wizard ]
- max: 1
- playerRatio: 1
- spawnerPrototype: SpawnPointGhostWizard
- roleLoadout:
- - RoleSurvivalExtended
- briefing:
- text: wizard-role-greeting
- color: Turquoise
- # TODO: Need Wizard Start sound
- #sound: "/Audio/Ambience/Antag/wizard_start.ogg"
- startingGear: WizardBlueGear
- # TODO: WizardComp as needed
- components:
- - type: NpcFactionMember
- factions:
- - Wizard
- - type: RandomMetadata
- nameSegments:
- - NamesWizardFirst
- - NamesWizardLast
- mindRoles:
- - MindRoleWizard
- - type: entity
- id: Zombie
- parent: BaseGameRule
- components:
- - type: GameRule
- minPlayers: 20
- delay:
- min: 600
- max: 900
- - type: ZombieRule
- - type: AntagSelection
- definitions:
- - prefRoles: [ InitialInfected ]
- max: 6
- playerRatio: 10
- blacklist:
- components:
- - ZombieImmune
- - AntagImmune
- briefing:
- text: zombie-patientzero-role-greeting
- color: Plum
- sound: "/Audio/Ambience/Antag/zombie_start.ogg"
- components:
- - type: PendingZombie
- - type: ZombifyOnDeath
- - type: IncurableZombie
- - type: InitialInfected
- mindRoles:
- - MindRoleInitialInfected
- # event schedulers
- - type: entityTable
- id: BasicGameRulesTable
- table: !type:AllSelector # we need to pass a list of rules, since rules have further restrictions to consider via StationEventComp
- children:
- - !type:NestedSelector
- tableId: BasicCalmEventsTable
- - !type:NestedSelector
- tableId: BasicAntagEventsTable
- - !type:NestedSelector
- tableId: CargoGiftsTable
- - !type:NestedSelector
- tableId: CalmPestEventsTable
- - !type:NestedSelector
- tableId: SpicyPestEventsTable
- - type: entityTable
- id: SpaceTrafficControlTable
- table: !type:AllSelector # we need to pass a list of rules, since rules have further restrictions to consider via StationEventComp
- children:
- - !type:NestedSelector
- tableId: UnknownShuttlesFriendlyTable
- - !type:NestedSelector
- tableId: UnknownShuttlesFreelanceTable
- - !type:NestedSelector
- tableId: UnknownShuttlesHostileTable
- - type: entity
- id: BasicStationEventScheduler
- parent: BaseGameRule
- components:
- - type: BasicStationEventScheduler
- scheduledGameRules: !type:NestedSelector
- tableId: BasicGameRulesTable
- - type: entity
- id: RampingStationEventScheduler
- parent: BaseGameRule
- components:
- - type: RampingStationEventScheduler
- scheduledGameRules: !type:NestedSelector
- tableId: BasicGameRulesTable
- - type: entity
- id: SpaceTrafficControlEventScheduler # iff we make a selector for EntityTables that can respect StationEventComp restrictions, or somehow impliment them otherwise in said tables,
- 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: 2700 # 45 mins #shows up like half way through shift.
- minMaxEventTiming:
- 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
- - type: entity
- id: SpaceTrafficControlFriendlyEventScheduler
- parent: BaseGameRule
- components:
- - type: BasicStationEventScheduler
- minimumTimeUntilFirstEvent: 1200 # 20 mins
- minMaxEventTiming:
- min: 600 # 10 mins
- max: 1800 # 30 mins
- scheduledGameRules: !type:NestedSelector
- tableId: UnknownShuttlesFriendlyTable
- # variation passes
- - type: entity
- id: BasicRoundstartVariation
- parent: BaseGameRule
- components:
- - type: RoundstartStationVariationRule
- rules:
- - id: BasicPoweredLightVariationPass
- - id: BasicTrashVariationPass
- - id: SolidWallRustingVariationPass
- - id: ReinforcedWallRustingVariationPass
- - id: BasicPuddleMessVariationPass
- prob: 0.99
- orGroup: puddleMess
- - id: BloodbathPuddleMessVariationPass
- prob: 0.01
- orGroup: puddleMess
|