From 141962b22fd9ef3cb1856b7f2d29e0b3c7d04b87 Mon Sep 17 00:00:00 2001 From: Datraen Date: Tue, 15 Mar 2016 23:19:24 -0400 Subject: [PATCH] Adds lizard, visitors and intrigue game modes. --- code/__defines/gamemode.dm | 1 + code/game/antagonist/antagonist.dm | 2 ++ code/game/antagonist/antagonist_helpers.dm | 2 ++ code/game/antagonist/station/traitor.dm | 4 ++++ code/game/gamemodes/mixed/intrigue.dm | 12 ++++++++++++ code/game/gamemodes/mixed/lizard.dm | 11 +++++++++++ code/game/gamemodes/mixed/visitors.dm | 11 +++++++++++ code/game/gamemodes/traitor/traitor.dm | 1 + html/changelogs/Datraen-AdditionalModes.yml | 7 +++++++ polaris.dme | 3 +++ 10 files changed, 54 insertions(+) create mode 100644 code/game/gamemodes/mixed/intrigue.dm create mode 100644 code/game/gamemodes/mixed/lizard.dm create mode 100644 code/game/gamemodes/mixed/visitors.dm create mode 100644 html/changelogs/Datraen-AdditionalModes.yml diff --git a/code/__defines/gamemode.dm b/code/__defines/gamemode.dm index 675b01563a..815c55b2ec 100644 --- a/code/__defines/gamemode.dm +++ b/code/__defines/gamemode.dm @@ -81,6 +81,7 @@ var/list/be_special_flags = list( #define MODE_LOYALIST "loyalist" #define MODE_MALFUNCTION "malf" #define MODE_TRAITOR "traitor" +#define MODE_AUTOTRAITOR "autotraitor" #define DEFAULT_TELECRYSTAL_AMOUNT 12 diff --git a/code/game/antagonist/antagonist.dm b/code/game/antagonist/antagonist.dm index 6d3e7d0b28..4b7d2b7db6 100644 --- a/code/game/antagonist/antagonist.dm +++ b/code/game/antagonist/antagonist.dm @@ -63,6 +63,8 @@ var/list/global_objectives = list() // Universal objectives if any. var/list/candidates = list() // Potential candidates. var/list/faction_members = list() // Semi-antags (in-round revs, borer thralls) + + var/allow_latejoin = 0 //Determines whether or not the game mode will allow for the template to spawn try_latespawn // ID card stuff. var/default_access = list() diff --git a/code/game/antagonist/antagonist_helpers.dm b/code/game/antagonist/antagonist_helpers.dm index 056fbd1865..0cc28d5ad2 100644 --- a/code/game/antagonist/antagonist_helpers.dm +++ b/code/game/antagonist/antagonist_helpers.dm @@ -33,6 +33,8 @@ return (flags & ANTAG_VOTABLE) /datum/antagonist/proc/can_late_spawn() + if(!(allow_latejoin)) + return 0 update_current_antag_max() if(get_antag_count() >= cur_max) return 0 diff --git a/code/game/antagonist/station/traitor.dm b/code/game/antagonist/station/traitor.dm index dcc7fa9df9..acc0bd3d8d 100644 --- a/code/game/antagonist/station/traitor.dm +++ b/code/game/antagonist/station/traitor.dm @@ -5,6 +5,10 @@ var/datum/antagonist/traitor/traitors id = MODE_TRAITOR protected_jobs = list("Security Officer", "Warden", "Detective", "Internal Affairs Agent", "Head of Security", "Captain") flags = ANTAG_SUSPICIOUS | ANTAG_RANDSPAWN | ANTAG_VOTABLE + +/datum/antagonist/traitor/auto + id = MODE_AUTOTRAITOR + allow_latejoin = 1 /datum/antagonist/traitor/New() ..() diff --git a/code/game/gamemodes/mixed/intrigue.dm b/code/game/gamemodes/mixed/intrigue.dm new file mode 100644 index 0000000000..d08452e6dd --- /dev/null +++ b/code/game/gamemodes/mixed/intrigue.dm @@ -0,0 +1,12 @@ +/datum/game_mode/intrigue + name = "Intrigue" + round_description = "Crewmembers are contacted by external elements while another infiltrates the colony." + extended_round_description = "Traitors and a ninja spawn during this round." + config_tag = "intrigue" + required_players = 15 + required_players_secret = 15 + required_enemies = 4 + end_on_antag_death = 0 + antag_tags = list(MODE_NINJA, MODE_AUTOTRAITOR) + round_autoantag = 1 + require_all_templates = 1 \ No newline at end of file diff --git a/code/game/gamemodes/mixed/lizard.dm b/code/game/gamemodes/mixed/lizard.dm new file mode 100644 index 0000000000..c61b9e6094 --- /dev/null +++ b/code/game/gamemodes/mixed/lizard.dm @@ -0,0 +1,11 @@ +/datum/game_mode/lizard + name = "lizard" + round_description = "A space wizard and changelings have invaded the station!" + extended_round_description = "Changelings and a wizard spawn during this round." + config_tag = "lizard" + required_players = 15 + required_players_secret = 15 + required_enemies = 4 + end_on_antag_death = 0 + antag_tags = list(MODE_WIZARD, MODE_CHANGELING) + require_all_templates = 1 \ No newline at end of file diff --git a/code/game/gamemodes/mixed/visitors.dm b/code/game/gamemodes/mixed/visitors.dm new file mode 100644 index 0000000000..89099c9878 --- /dev/null +++ b/code/game/gamemodes/mixed/visitors.dm @@ -0,0 +1,11 @@ +/datum/game_mode/visitors + name = "Visitors" + round_description = "A space wizard and a ninja have invaded the station!" + extended_round_description = "A ninja and wizard spawn during this round." + config_tag = "visitors" + required_players = 10 + required_players_secret = 10 + required_enemies = 2 + end_on_antag_death = 0 + antag_tags = list(MODE_WIZARD, MODE_NINJA) + require_all_templates = 1 \ No newline at end of file diff --git a/code/game/gamemodes/traitor/traitor.dm b/code/game/gamemodes/traitor/traitor.dm index ee56b9070a..5a389e68f1 100644 --- a/code/game/gamemodes/traitor/traitor.dm +++ b/code/game/gamemodes/traitor/traitor.dm @@ -21,6 +21,7 @@ /datum/game_mode/traitor/auto name = "autotraitor" config_tag = "autotraitor" + antag_tags = list(MODE_AUTOTRAITOR) round_autoantag = 1 required_players_secret = 3 antag_scaling_coeff = 5 diff --git a/html/changelogs/Datraen-AdditionalModes.yml b/html/changelogs/Datraen-AdditionalModes.yml new file mode 100644 index 0000000000..d9fa39439e --- /dev/null +++ b/html/changelogs/Datraen-AdditionalModes.yml @@ -0,0 +1,7 @@ +author: Datraen + +delete-after: True + +changes: + - rscadd: "Added Three New Mixed Gamemodes: Lizard, Changeling + Wizard; Intrigue, Traitors + Ninja; Visitors, Ninja + Wizard." + - tweak: "Created a variable for latespawning antagonist templates, for customization of autospawning antagonists in mixed game modes." diff --git a/polaris.dme b/polaris.dme index 1e71b20403..8753af7e45 100644 --- a/polaris.dme +++ b/polaris.dme @@ -325,9 +325,12 @@ #include "code\game\gamemodes\meteor\meteors.dm" #include "code\game\gamemodes\mixed\conflux.dm" #include "code\game\gamemodes\mixed\infestation.dm" +#include "code\game\gamemodes\mixed\intrigue.dm" +#include "code\game\gamemodes\mixed\lizard.dm" #include "code\game\gamemodes\mixed\paranoia.dm" #include "code\game\gamemodes\mixed\traitorling.dm" #include "code\game\gamemodes\mixed\uprising.dm" +#include "code\game\gamemodes\mixed\visitors.dm" #include "code\game\gamemodes\ninja\ninja.dm" #include "code\game\gamemodes\nuclear\nuclear.dm" #include "code\game\gamemodes\nuclear\pinpointer.dm"