Adds more mixed gamemodes and make them votable (#2420)

-allow voting for most mixed gamemodes, with exception of bughunt and infection
-adds crossfire(merc and heister), also adds a raider frequency to don't mix them with mercs
-adds siege(rev and merc)
-adds visitors(ninja and wizard)
This commit is contained in:
Alberyk
2017-05-26 22:15:32 +03:00
committed by skull132
parent 3dbfa61b65
commit e71299699e
20 changed files with 105 additions and 24 deletions
+3 -1
View File
@@ -9,6 +9,7 @@ var/const/ERT_FREQ = 1345
var/const/AI_FREQ = 1343
var/const/DTH_FREQ = 1341
var/const/SYND_FREQ = 1213
var/const/RAID_FREQ = 1277
var/const/ENT_FREQ = 1461 //entertainment frequency. This is not a diona exclusive frequency.
// department channels
@@ -34,6 +35,7 @@ var/list/radiochannels = list(
"Response Team" = ERT_FREQ,
"Special Ops" = DTH_FREQ,
"Mercenary" = SYND_FREQ,
"Raider" = RAID_FREQ,
"Supply" = SUP_FREQ,
"Service" = SRV_FREQ,
"AI Private" = AI_FREQ,
@@ -46,7 +48,7 @@ var/list/radiochannels = list(
var/list/CENT_FREQS = list(ERT_FREQ, DTH_FREQ)
// Antag channels, i.e. Syndicate
var/list/ANTAG_FREQS = list(SYND_FREQ)
var/list/ANTAG_FREQS = list(SYND_FREQ, RAID_FREQ)
//Department channels, arranged lexically
var/list/DEPT_FREQS = list(AI_FREQ, COMM_FREQ, ENG_FREQ, MED_FREQ, SEC_FREQ, SCI_FREQ, SRV_FREQ, SUP_FREQ, ENT_FREQ)
@@ -17,6 +17,7 @@
var/list/msg_security = list()
var/list/msg_deathsquad = list()
var/list/msg_syndicate = list()
var/list/msg_raider = list()
var/list/msg_cargo = list()
var/list/msg_service = list()
+8 -4
View File
@@ -44,10 +44,14 @@
/datum/antagonist/proc/create_radio(var/freq, var/mob/living/carbon/human/player)
var/obj/item/device/radio/R
if(freq == SYND_FREQ)
R = new/obj/item/device/radio/headset/syndicate(player)
else
R = new/obj/item/device/radio/headset(player)
switch(freq)
if(SYND_FREQ)
R = new/obj/item/device/radio/headset/syndicate(player)
if(RAID_FREQ)
R = new/obj/item/device/radio/headset/raider(player)
else
R = new/obj/item/device/radio/headset(player)
R.set_frequency(freq)
R.set_frequency(freq)
player.equip_to_slot_or_del(R, slot_l_ear)
+1 -1
View File
@@ -243,7 +243,7 @@ var/datum/antagonist/raider/raiders
W.handle_item_insertion(id)
player.equip_to_slot_or_del(W, slot_wear_id)
spawn_money(rand(50,150)*10,W)
create_radio(SYND_FREQ, player)
create_radio(RAID_FREQ, player)
return 1
+2 -3
View File
@@ -1,11 +1,10 @@
/datum/game_mode/conflux
name = "conflux"
name = "Conflux"
round_description = "A space wizard and a cult have invaded the station!"
extended_round_description = "Cultists and wizards spawn during this round."
config_tag = "conflux"
required_players = 15
required_enemies = 5
end_on_antag_death = 1
end_on_antag_death = 0
antag_tags = list(MODE_WIZARD, MODE_CULTIST)
require_all_templates = 1
votable = 0
+12
View File
@@ -0,0 +1,12 @@
/datum/game_mode/crossfire
name = "Crossfire"
round_description = "Mercenaries and raiders are approaching the station."
extended_round_description = "NanoTrasen's wealth and success created several enemies over the years \
and many seek to undermine them using illegal ways. Their crown jewel research stations are not safe from those \
malicious activities."
config_tag = "crossfire"
required_players = 25
required_enemies = 8
end_on_antag_death = 0
antag_tags = list(MODE_RAIDER, MODE_MERCENARY)
require_all_templates = 1
+2 -2
View File
@@ -1,5 +1,5 @@
/datum/game_mode/infestation
name = "infestation"
name = "Infestation"
round_description = "There's something in the walls!"
extended_round_description = "Two alien antagonists (Xenomorphs, Cortical Borers or Changelings) may spawn during this round."
config_tag = "infestation"
@@ -13,4 +13,4 @@
/datum/game_mode/infestation/create_antagonists()
// Two of the three.
antag_tags -= pick(antag_tags)
..()
..()
+10
View File
@@ -0,0 +1,10 @@
/datum/game_mode/intrigue
name = "Intrigue"
round_description = "Crewmembers are contacted by external elements while an outsider infiltrates the station."
extended_round_description = "Traitors and a ninja spawn during this round."
config_tag = "intrigue"
required_players = 15
required_enemies = 4
end_on_antag_death = 0
antag_tags = list(MODE_NINJA, MODE_TRAITOR)
require_all_templates = 1
+7 -7
View File
@@ -1,11 +1,11 @@
/datum/game_mode/paranoia
name = "paranoia"
round_description = "The AI has malfunctioned, and subversive elements infest the crew..."
extended_round_description = "Rampant AIs, renegades and changelings spawn in this mode."
name = "Paranoia"
round_description = "The AI has malfunctioned, and subversive elements infest the crew."
extended_round_description = "Rampant AIs, traitors and changelings spawn in this mode."
config_tag = "paranoia"
required_players = 2
required_enemies = 1
required_players = 15
required_enemies = 5
end_on_antag_death = 1
require_all_templates = 1
votable = 0
antag_tags = list(MODE_MALFUNCTION, MODE_RENEGADE, MODE_CHANGELING)
votable = 1
antag_tags = list(MODE_MALFUNCTION, MODE_TRAITOR, MODE_CHANGELING)
+10
View File
@@ -0,0 +1,10 @@
/datum/game_mode/siege
name = "Siege"
config_tag = "siege"
round_description = "Some crewmembers are attempting to start a revolution while a mercenary strike force is approaching the station!"
extended_round_description = "Getting stuck between a rock and a hard place, maybe the nice visitors can help with your internal security problem?"
required_players = 20
required_enemies = 7
end_on_antag_death = 0
antag_tags = list(MODE_REVOLUTIONARY, MODE_LOYALIST, MODE_MERCENARY)
require_all_templates = 1
+1 -1
View File
@@ -1,5 +1,5 @@
/datum/game_mode/traitorling
name = "traitorling"
name = "Traitorling"
round_description = "There are traitors and alien changelings on the station. Do not let the changelings succeed!"
extended_round_description = "Traitors and changelings both spawn during this mode."
config_tag = "traitorling"
+2 -2
View File
@@ -1,5 +1,5 @@
/datum/game_mode/uprising
name = "uprising"
name = "Uprising"
config_tag = "uprising"
round_description = "Some crewmembers are attempting to start a revolution while a cult plots in the shadows!"
extended_round_description = "Cultists and revolutionaries spawn in this round."
@@ -8,4 +8,4 @@
end_on_antag_death = 1
antag_tags = list(MODE_REVOLUTIONARY, MODE_LOYALIST, MODE_CULTIST)
require_all_templates = 1
votable = 0
votable = 1
+10
View File
@@ -0,0 +1,10 @@
/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 = 15
required_enemies = 2
end_on_antag_death = 0
antag_tags = list(MODE_WIZARD, MODE_NINJA)
require_all_templates = 1
+5 -3
View File
@@ -1,11 +1,13 @@
/datum/game_mode/vampire
name = "Vampire"
round_description = "There are Vampires from Space Transylvania on the station, keep your blood close and neck safe!"
extended_round_description = "Life always finds a way. However, life can sometimes take a more disturbing route. Humanity's extensive knowledge of xeno-biological specimens has made them confident and arrogant. Yet something slipped past their eyes. Something dangerous. Something alive. Most frightening of all, however, is that this something is someone. An unknown alien specimen has incorporated itself into the crew of the NSS Exodus. No one knows where it came from. No one knows who it is or what it wants. One thing is for certain though... there is never just one of them. Good luck."
round_description = "There are vampires on the station, keep your blood close and neck safe!"
extended_round_description = "And He said, \"What have you done? Hark! Your brother's blood cries out to Me from the earth. \
And now, you are cursed even more than the ground, which opened its mouth to take your brother's blood from your hand. \
When you till the soil, it will not continue to give its strength to you; you shall be a wanderer and an exile in the land.\""
config_tag = "vampire"
required_players = 2
required_enemies = 1
end_on_antag_death = 1
end_on_antag_death = 0
antag_scaling_coeff = 8
antag_tags = list(MODE_VAMPIRE)
@@ -378,6 +378,8 @@ var/message_delay = 0 // To make sure restarting the recentmessages list is kept
SSfeedback.msg_deathsquad += blackbox_msg
if(SYND_FREQ)
SSfeedback.msg_syndicate += blackbox_msg
if(RAID_FREQ)
SSfeedback.msg_raider += blackbox_msg
if(SUP_FREQ)
SSfeedback.msg_cargo += blackbox_msg
if(SRV_FREQ)
@@ -562,6 +564,8 @@ var/message_delay = 0 // To make sure restarting the recentmessages list is kept
SSfeedback.msg_deathsquad += blackbox_msg
if(SYND_FREQ)
SSfeedback.msg_syndicate += blackbox_msg
if(RAID_FREQ)
SSfeedback.msg_raider += blackbox_msg
if(SUP_FREQ)
SSfeedback.msg_cargo += blackbox_msg
if(SRV_FREQ)
@@ -21,6 +21,12 @@
origin_tech = list(TECH_ILLEGAL = 3)
syndie = 1//Signifies that it de-crypts Syndicate transmissions
/obj/item/device/encryptionkey/raider
icon_state = "cypherkey"
channels = list("Raider" = 1)
origin_tech = list(TECH_ILLEGAL = 2)
syndie = 1
/obj/item/device/encryptionkey/binary
icon_state = "cypherkey"
translate_binary = 1
@@ -79,6 +79,11 @@
syndie = 1
ks1type = /obj/item/device/encryptionkey/syndicate
/obj/item/device/radio/headset/raider
origin_tech = list(TECH_ILLEGAL = 2)
syndie = 1
ks1type = /obj/item/device/encryptionkey/raider
/obj/item/device/radio/headset/binary
origin_tech = list(TECH_ILLEGAL = 3)
ks1type = /obj/item/device/encryptionkey/binary
@@ -77,6 +77,17 @@
. = ..()
internal_channels[num2text(SYND_FREQ)] = list(access_syndicate)
/obj/item/device/radio/intercom/raider
name = "illicit intercom"
desc = "Pirate radio, but not in the usual sense of the word."
frequency = RAID_FREQ
subspace_transmission = 1
syndie = 1
/obj/item/device/radio/intercom/syndicate/Initialize()
. = ..()
internal_channels[num2text(RAID_FREQ)] = list(access_syndicate)
/obj/item/device/radio/intercom/Destroy()
QDEL_NULL(power_interface)
return ..()
+2
View File
@@ -11,6 +11,7 @@ var/list/department_radio_keys = list(
":s" = "Security", ".s" = "Security",
":w" = "whisper", ".w" = "whisper",
":t" = "Mercenary", ".t" = "Mercenary",
":x" = "Raider", ".x" = "Raider",
":u" = "Supply", ".u" = "Supply",
":v" = "Service", ".v" = "Service",
":p" = "AI Private", ".p" = "AI Private",
@@ -27,6 +28,7 @@ var/list/department_radio_keys = list(
":S" = "Security", ".S" = "Security",
":W" = "whisper", ".W" = "whisper",
":T" = "Mercenary", ".T" = "Mercenary",
":X" = "Raider", ".X" = "Raider",
":U" = "Supply", ".U" = "Supply",
":V" = "Service", ".V" = "Service",
":P" = "AI Private", ".P" = "AI Private",