From eb943360e40dce0b8d78b255e863e7750b0a6823 Mon Sep 17 00:00:00 2001 From: Fenn <162015305+TooSillyFennec@users.noreply.github.com> Date: Thu, 18 Jul 2024 17:39:51 +0000 Subject: [PATCH] Dual Antag Gamemodes, Calm Variants of game rules, and changeling delay matches traitor (#412) * Adds "Calm" Variants of gamerules, for dual antag gamemodes/admin usage * Create presets-dualantag.ftl * Update presets-dualantag.ftl * Update presets-dualantag.ftl * Update presets-dualantag.ftl * Adds Dual Antag Presets * Update secret_weights.yml * Update roundstart.yml * Update roundstart.yml * forgot about that~ - Thieves removed from dual antag * Update presets-dualantag.ftl * Piras weights - These seem to push the no major pretty low at 60%, may have to change later based on player feedback but that requires these weights to be played first. * really, me? --- .../game-presets/presets-dualantag.ftl | 8 + .../Changeling/GameRules/roundstart.yml | 20 --- .../Goobstation/Changeling/game_presets.yml | 31 ---- .../Goobstation/GameRules/roundstart.yml | 149 ++++++++++++++++++ .../Prototypes/Goobstation/game_presets.yml | 92 +++++++++++ Resources/Prototypes/secret_weights.yml | 20 ++- 6 files changed, 262 insertions(+), 58 deletions(-) create mode 100644 Resources/Locale/en-US/Goobstation/game-ticking/game-presets/presets-dualantag.ftl delete mode 100644 Resources/Prototypes/Goobstation/Changeling/GameRules/roundstart.yml delete mode 100644 Resources/Prototypes/Goobstation/Changeling/game_presets.yml create mode 100644 Resources/Prototypes/Goobstation/GameRules/roundstart.yml create mode 100644 Resources/Prototypes/Goobstation/game_presets.yml diff --git a/Resources/Locale/en-US/Goobstation/game-ticking/game-presets/presets-dualantag.ftl b/Resources/Locale/en-US/Goobstation/game-ticking/game-presets/presets-dualantag.ftl new file mode 100644 index 00000000000..dcb51e91982 --- /dev/null +++ b/Resources/Locale/en-US/Goobstation/game-ticking/game-presets/presets-dualantag.ftl @@ -0,0 +1,8 @@ +traitorling-title = Traitorling +traitorling-description = Attention. Known enemy signals and strange biosigns detected. Confirmed Syndicate Agents and Changelings on board. + +revtraitor-title = Revolutionary Traitors +revtraitor-description = A revolution has been provoked by a member of the Syndicate, but not every agent got the hint... + +revling-title = Revolutionary Changelings +revling-description = A revolution has been provoked by the Syndicate, and opportunistic changelings have come to feast on the carnage. diff --git a/Resources/Prototypes/Goobstation/Changeling/GameRules/roundstart.yml b/Resources/Prototypes/Goobstation/Changeling/GameRules/roundstart.yml deleted file mode 100644 index 50fee01eae6..00000000000 --- a/Resources/Prototypes/Goobstation/Changeling/GameRules/roundstart.yml +++ /dev/null @@ -1,20 +0,0 @@ -- type: entity - parent: BaseGameRule - id: Changeling - components: - - type: ChangelingRule - - type: GameRule - minPlayers: 15 - delay: - min: 10 - max: 20 - - type: AntagSelection - agentName: changeling-roundend-name - definitions: - - prefRoles: [ Changeling ] - max: 6 - playerRatio: 15 - lateJoinAdditional: true - mindComponents: - - type: ChangelingRole - prototype: Changeling \ No newline at end of file diff --git a/Resources/Prototypes/Goobstation/Changeling/game_presets.yml b/Resources/Prototypes/Goobstation/Changeling/game_presets.yml deleted file mode 100644 index ff7ffd00bf1..00000000000 --- a/Resources/Prototypes/Goobstation/Changeling/game_presets.yml +++ /dev/null @@ -1,31 +0,0 @@ -- type: gamePreset - id: Changeling - alias: - - ling - - lings - - changeling - name: changeling-gamemode-title - description: changeling-gamemode-description - showInVote: false - rules: - - Changeling - - SubGamemodesRule - - BasicStationEventScheduler - - GameRuleMeteorScheduler - - BasicRoundstartVariation - -- type: gamePreset - id: Traitorling - alias: - - lingtraitor - - traitorling - name: secret-title - description: secret-description - showInVote: false - rules: - - Changeling - - Traitor - - SubGamemodesRule - - BasicStationEventScheduler - - GameRuleMeteorScheduler - - BasicRoundstartVariation \ No newline at end of file diff --git a/Resources/Prototypes/Goobstation/GameRules/roundstart.yml b/Resources/Prototypes/Goobstation/GameRules/roundstart.yml new file mode 100644 index 00000000000..eb9cdda8f43 --- /dev/null +++ b/Resources/Prototypes/Goobstation/GameRules/roundstart.yml @@ -0,0 +1,149 @@ +- type: entity + parent: BaseGameRule + id: Changeling + components: + - type: ChangelingRule + - type: GameRule + minPlayers: 15 + delay: + min: 240 + max: 420 + - type: AntagSelection + agentName: changeling-roundend-name + definitions: + - prefRoles: [ Changeling ] + max: 5 + playerRatio: 15 + lateJoinAdditional: true + mindComponents: + - type: ChangelingRole + prototype: Changeling + +- type: entity + parent: BaseTraitorRule + id: CalmTraitor # For Dual Antag Gamemodes + components: + - type: GameRule + minPlayers: 30 + delay: + min: 240 + max: 420 + - type: AntagSelection + definitions: + - prefRoles: [ Traitor ] + max: 5 + playerRatio: 15 + blacklist: + components: + - AntagImmune + - Changeling + lateJoinAdditional: true + mindComponents: + - type: TraitorRole + prototype: Traitor + +- type: entity + parent: Changeling + id: CalmLing # For Dual Antag Gamemodes + components: + - type: GameRule + minPlayers: 30 + delay: + min: 240 + max: 420 + - type: AntagSelection + agentName: changeling-roundend-name + definitions: + - prefRoles: [ Changeling ] + max: 2 + playerRatio: 20 + lateJoinAdditional: true + mindComponents: + - type: ChangelingRole + prototype: Changeling + +- type: entity + parent: BaseNukeopsRule + id: Calmops # For Dual Antag Gamemodes + components: + - type: GameRule + minPlayers: 30 + - type: LoadMapRule + gameMap: NukieOutpost + - type: AntagSelection + selectionTime: PrePlayerSpawn + definitions: + - prefRoles: [ NukeopsCommander ] + fallbackRoles: [ Nukeops, NukeopsMedic ] + spawnerPrototype: SpawnPointNukeopsCommander + startingGear: SyndicateCommanderGearFull + components: + - type: NukeOperative + - type: RandomMetadata + nameSegments: + - nukeops-role-commander + - SyndicateNamesElite + - type: NpcFactionMember + factions: + - Syndicate + mindComponents: + - type: NukeopsRole + prototype: NukeopsCommander + - prefRoles: [ NukeopsMedic ] + fallbackRoles: [ Nukeops, NukeopsCommander ] + spawnerPrototype: SpawnPointNukeopsMedic + startingGear: SyndicateOperativeMedicFull + components: + - type: NukeOperative + - type: RandomMetadata + nameSegments: + - nukeops-role-agent + - SyndicateNamesNormal + - type: NpcFactionMember + factions: + - Syndicate + mindComponents: + - type: NukeopsRole + prototype: NukeopsMedic + - prefRoles: [ Nukeops ] + fallbackRoles: [ NukeopsCommander, NukeopsMedic ] + spawnerPrototype: SpawnPointNukeopsOperative + max: 1 + playerRatio: 15 + startingGear: SyndicateOperativeGearFull + components: + - type: NukeOperative + - type: RandomMetadata + nameSegments: + - nukeops-role-operator + - SyndicateNamesNormal + - type: NpcFactionMember + factions: + - Syndicate + mindComponents: + - type: NukeopsRole + prototype: Nukeops + +- type: entity + id: CalmRevs # For Dual Antag Gamemodes + parent: BaseGameRule + components: + - type: GameRule + minPlayers: 30 + - type: RevolutionaryRule + - type: AntagSelection + definitions: + - prefRoles: [ HeadRev ] + max: 1 + playerRatio: 25 + briefing: + text: head-rev-role-greeting + color: CornflowerBlue + sound: "/Audio/Ambience/Antag/headrev_start.ogg" + startingGear: HeadRevGear + components: + - type: Revolutionary + - type: HeadRevolutionary + mindComponents: + - type: RevolutionaryRole + prototype: HeadRev diff --git a/Resources/Prototypes/Goobstation/game_presets.yml b/Resources/Prototypes/Goobstation/game_presets.yml new file mode 100644 index 00000000000..771b0d6ceee --- /dev/null +++ b/Resources/Prototypes/Goobstation/game_presets.yml @@ -0,0 +1,92 @@ +- type: gamePreset + id: Changeling + alias: + - ling + - lings + - changeling + name: changeling-gamemode-title + description: changeling-gamemode-description + showInVote: false + rules: + - Changeling + - SubGamemodesRule + - BasicStationEventScheduler + - GameRuleMeteorScheduler + - BasicRoundstartVariation + +- type: gamePreset + id: Traitorling + alias: + - lingtraitor + - traitorling + name: traitorling-title + description: traitorling-description + showInVote: false + rules: + - CalmLing + - CalmTraitor + - BasicStationEventScheduler + - GameRuleMeteorScheduler + - BasicRoundstartVariation + +- type: gamePreset + id: NukeTraitor + alias: + - nuketot + - optraitor + - optot + name: nukeops-title + description: nukeops-description + showInVote: false + rules: + - Calmops + - CalmTraitor + - BasicStationEventScheduler + - GameRuleMeteorScheduler + - BasicRoundstartVariation + +- type: gamePreset + id: NukeLing + alias: + - nukeling + - opling + name: nukeops-title + description: nukeops-description + showInVote: false + rules: + - Calmops + - CalmLing + - BasicStationEventScheduler + - GameRuleMeteorScheduler + - BasicRoundstartVariation + +- type: gamePreset + id: RevTraitor + alias: + - revtraitor + - revtot + - totrevs + name: revtraitor-title + description: revtraitor-description + showInVote: false + rules: + - CalmRevs + - CalmTraitor + - BasicStationEventScheduler + - GameRuleMeteorScheduler + +- type: gamePreset + id: RevLing + alias: + - revling + - lingrevs + name: revling-title + description: revling-description + showInVote: false + rules: + - CalmRevs + - CalmLing + - BasicStationEventScheduler + - GameRuleMeteorScheduler + - BasicRoundstartVariation + - BasicRoundstartVariation diff --git a/Resources/Prototypes/secret_weights.yml b/Resources/Prototypes/secret_weights.yml index e9f4b8424a1..8a9f9a766a4 100644 --- a/Resources/Prototypes/secret_weights.yml +++ b/Resources/Prototypes/secret_weights.yml @@ -1,10 +1,16 @@ - type: weightedRandom id: Secret weights: - Survival: 0.44 - Nukeops: 0.14 - Zombie: 0.03 - Traitor: 0.39 - Changeling: 0.20 - #Pirates: 0.15 #ahoy me bucko - + Traitor: 0.40 + Changeling: 0.10 + Traitorling: 0.05 + Nukeops: 0.20 + NukeTraitor: 0.01 + NukeLing: 0.01 + Revolutionary: 0.10 + RevTraitor: 0.02 + RevLing: 0.01 + Zombie: 0.05 + Survival: 0.05 + # Wizard: 0.05 + # Cult: 0.05