diff --git a/baystation12.dme b/baystation12.dme
index 601d50dd99..0862d7b604 100644
--- a/baystation12.dme
+++ b/baystation12.dme
@@ -34,6 +34,7 @@
#define FILE_DIR "code/game/events/EventProcs"
#define FILE_DIR "code/game/events/Events"
#define FILE_DIR "code/game/gamemodes"
+#define FILE_DIR "code/game/gamemodes/autotraitor"
#define FILE_DIR "code/game/gamemodes/blob"
#define FILE_DIR "code/game/gamemodes/changeling"
#define FILE_DIR "code/game/gamemodes/cult"
@@ -412,6 +413,7 @@
#include "code\game\gamemodes\intercept_report.dm"
#include "code\game\gamemodes\objective.dm"
#include "code\game\gamemodes\setupgame.dm"
+#include "code\game\gamemodes\autotraitor\autotraitor.dm"
#include "code\game\gamemodes\blob\blob.dm"
#include "code\game\gamemodes\blob\theblob.dm"
#include "code\game\gamemodes\changeling\changeling.dm"
@@ -428,6 +430,7 @@
#include "code\game\gamemodes\nuclear\nuclearbomb.dm"
#include "code\game\gamemodes\nuclear\pinpointer.dm"
#include "code\game\gamemodes\revolution\revolution.dm"
+#include "code\game\gamemodes\revolution\rp-revolution.dm"
#include "code\game\gamemodes\sandbox\h_sandbox.dm"
#include "code\game\gamemodes\sandbox\sandbox.dm"
#include "code\game\gamemodes\traitor\traitor.dm"
diff --git a/code/datums/mind.dm b/code/datums/mind.dm
index 7a85e4b6a5..8d573b3242 100644
--- a/code/datums/mind.dm
+++ b/code/datums/mind.dm
@@ -15,6 +15,7 @@ datum/mind
var/list/datum/objective/special_verbs = list()
var/has_been_rev = 0//Tracks if this mind has been a rev or not
+ var/rev_cooldown = 0
proc/transfer_to(mob/new_character)
if(current)
diff --git a/code/datums/shuttle_controller.dm b/code/datums/shuttle_controller.dm
index 8ea4c2d0cc..c75f262eb7 100644
--- a/code/datums/shuttle_controller.dm
+++ b/code/datums/shuttle_controller.dm
@@ -19,6 +19,7 @@ datum/shuttle_controller
//timeleft = 360 //600
fake_recall = 0 //Used in rounds to prevent "ON NOES, IT MUST [INSERT ROUND] BECAUSE SHUTTLE CAN'T BE CALLED"
deny_shuttle = 0 //for admins not allowing it to be called.
+ departed = 0
// call the shuttle
// if not called before, set the endtime to T+600 seconds
@@ -137,6 +138,7 @@ datum/shuttle_controller
return 0
else
+ departed = 1
location = 2
var/area/start_location = locate(/area/shuttle/escape/station)
var/area/end_location = locate(/area/shuttle/escape/centcom)
diff --git a/code/game/gamemodes/blob/blob.dm b/code/game/gamemodes/blob/blob.dm
index 8b6d29b6b7..99ac2237e7 100644
--- a/code/game/gamemodes/blob/blob.dm
+++ b/code/game/gamemodes/blob/blob.dm
@@ -4,46 +4,6 @@
required_players = 0
uplink_welcome = "Syndicate Uplink Console:"
- uplink_items = {"Highly Visible and Dangerous Weapons;
-/obj/item/weapon/gun/projectile:6:Revolver;
-/obj/item/ammo_magazine/a357:2:Ammo-357;
-/obj/item/weapon/gun/energy/crossbow:5:Energy Crossbow;
-/obj/item/weapon/melee/energy/sword:4:Energy Sword;
-/obj/item/weapon/storage/box/syndicate:10:Syndicate Bundle;
-/obj/item/weapon/storage/emp_kit:4:5 EMP Grenades;
-Whitespace:Seperator;
-Stealthy and Inconspicuous Weapons;
-/obj/item/weapon/pen/sleepypen:3:Sleepy Pen;
-/obj/item/weapon/soap/syndie:1:Syndicate Soap;
-/obj/item/weapon/cartridge/syndicate:3:Detomatix PDA Cartridge;
-Whitespace:Seperator;
-Stealth and Camouflage Items;
-/obj/item/clothing/under/chameleon:3:Chameleon Jumpsuit;
-/obj/item/clothing/shoes/syndigaloshes:2:No-Slip Syndicate Shoes;
-/obj/item/weapon/card/id/syndicate:3:Agent ID card;
-/obj/item/clothing/mask/gas/voice:4:Voice Changer;
-/obj/item/clothing/glasses/thermal:4:Thermal Imaging Glasses;
-/obj/item/device/chameleon:4:Chameleon-Projector;
-/obj/item/weapon/stamperaser:1:Stamp Remover;
-Whitespace:Seperator;
-Devices and Tools;
-/obj/item/weapon/card/emag:3:Cryptographic Sequencer;
-/obj/item/device/hacktool:4:Hacktool;
-/obj/item/weapon/storage/toolbox/syndicate:1:Fully Loaded Toolbox;
-/obj/item/weapon/aiModule/syndicate:7:Hacked AI Upload Module;
-/obj/item/device/radio/headset/traitor:3:Headset with Binary Translator;
-/obj/item/weapon/plastique:2:C-4;
-/obj/item/device/powersink:5:Powersink (DANGER!);
-/obj/machinery/singularity_beacon/syndicate:7:Singularity Beacon (DANGER!);
-Whitespace:Seperator;
-Implants;
-/obj/item/weapon/storage/syndie_kit/imp_freedom:3:Freedom Implant;
-/obj/item/weapon/storage/syndie_kit/imp_compress:5:Compressed Matter Implant;
-/obj/item/weapon/storage/syndie_kit/imp_explosive:6:Explosive Implant;
-/obj/item/weapon/storage/syndie_kit/imp_uplink:10:Uplink Implant (Contains 5 Telecrystals);
-Whitespace:Seperator;
-Badassery;
-/obj/item/toy/syndicateballoon:10:For showing that You Are The BOSS (Useless Balloon);"}
uplink_uses = 10
var/const/waittime_l = 2000 //lower bound on time before intercept arrives (in tenths of seconds)
diff --git a/code/game/gamemodes/changeling/traitor_chan.dm b/code/game/gamemodes/changeling/traitor_chan.dm
index b4b4f3efce..3ed828f6a7 100644
--- a/code/game/gamemodes/changeling/traitor_chan.dm
+++ b/code/game/gamemodes/changeling/traitor_chan.dm
@@ -6,46 +6,6 @@
required_enemies = 2
uplink_welcome = "Syndicate Uplink Console:"
- uplink_items = {"Highly Visible and Dangerous Weapons;
-/obj/item/weapon/gun/projectile:6:Revolver;
-/obj/item/ammo_magazine/a357:2:Ammo-357;
-/obj/item/weapon/gun/energy/crossbow:5:Energy Crossbow;
-/obj/item/weapon/melee/energy/sword:4:Energy Sword;
-/obj/item/weapon/storage/box/syndicate:10:Syndicate Bundle;
-/obj/item/weapon/storage/emp_kit:4:5 EMP Grenades;
-Whitespace:Seperator;
-Stealthy and Inconspicuous Weapons;
-/obj/item/weapon/pen/sleepypen:3:Sleepy Pen;
-/obj/item/weapon/soap/syndie:1:Syndicate Soap;
-/obj/item/weapon/cartridge/syndicate:3:Detomatix PDA Cartridge;
-Whitespace:Seperator;
-Stealth and Camouflage Items;
-/obj/item/clothing/under/chameleon:3:Chameleon Jumpsuit;
-/obj/item/clothing/shoes/syndigaloshes:2:No-Slip Syndicate Shoes;
-/obj/item/weapon/card/id/syndicate:3:Agent ID card;
-/obj/item/clothing/mask/gas/voice:4:Voice Changer;
-/obj/item/clothing/glasses/thermal:4:Thermal Imaging Glasses;
-/obj/item/device/chameleon:4:Chameleon-Projector;
-/obj/item/weapon/stamperaser:1:Stamp Remover;
-Whitespace:Seperator;
-Devices and Tools;
-/obj/item/weapon/card/emag:3:Cryptographic Sequencer;
-/obj/item/device/hacktool:4:Hacktool;
-/obj/item/weapon/storage/toolbox/syndicate:1:Fully Loaded Toolbox;
-/obj/item/weapon/aiModule/syndicate:7:Hacked AI Upload Module;
-/obj/item/device/radio/headset/traitor:3:Headset with Binary Translator;
-/obj/item/weapon/plastique:2:C-4;
-/obj/item/device/powersink:5:Powersink (DANGER!);
-/obj/machinery/singularity_beacon/syndicate:7:Singularity Beacon (DANGER!);
-Whitespace:Seperator;
-Implants;
-/obj/item/weapon/storage/syndie_kit/imp_freedom:3:Freedom Implant;
-/obj/item/weapon/storage/syndie_kit/imp_compress:5:Compressed Matter Implant;
-/obj/item/weapon/storage/syndie_kit/imp_explosive:6:Explosive Implant;
-/obj/item/weapon/storage/syndie_kit/imp_uplink:10:Uplink Implant (Contains 5 Telecrystals);
-Whitespace:Seperator;
-Badassery;
-/obj/item/toy/syndicateballoon:10:For showing that You Are The BOSS (Useless Balloon);"}
uplink_uses = 10
/datum/game_mode/traitor/changeling/announce()
diff --git a/code/game/gamemodes/cult/cult.dm b/code/game/gamemodes/cult/cult.dm
index 2617c957b0..f516247850 100644
--- a/code/game/gamemodes/cult/cult.dm
+++ b/code/game/gamemodes/cult/cult.dm
@@ -40,46 +40,6 @@
var/acolytes_survived = 0
uplink_welcome = "Nar-Sie Uplink Console:"
- uplink_items = {"Highly Visible and Dangerous Weapons;
-/obj/item/weapon/gun/projectile:6:Revolver;
-/obj/item/ammo_magazine/a357:2:Ammo-357;
-/obj/item/weapon/gun/energy/crossbow:5:Energy Crossbow;
-/obj/item/weapon/melee/energy/sword:4:Energy Sword;
-/obj/item/weapon/storage/box/syndicate:10:Syndicate Bundle;
-/obj/item/weapon/storage/emp_kit:4:5 EMP Grenades;
-Whitespace:Seperator;
-Stealthy and Inconspicuous Weapons;
-/obj/item/weapon/pen/sleepypen:3:Sleepy Pen;
-/obj/item/weapon/soap/syndie:1:Syndicate Soap;
-/obj/item/weapon/cartridge/syndicate:3:Detomatix PDA Cartridge;
-Whitespace:Seperator;
-Stealth and Camouflage Items;
-/obj/item/clothing/under/chameleon:3:Chameleon Jumpsuit;
-/obj/item/clothing/shoes/syndigaloshes:2:No-Slip Syndicate Shoes;
-/obj/item/weapon/card/id/syndicate:3:Agent ID card;
-/obj/item/clothing/mask/gas/voice:4:Voice Changer;
-/obj/item/clothing/glasses/thermal:4:Thermal Imaging Glasses;
-/obj/item/device/chameleon:4:Chameleon-Projector;
-/obj/item/weapon/stamperaser:1:Stamp Remover;
-Whitespace:Seperator;
-Devices and Tools;
-/obj/item/weapon/card/emag:3:Cryptographic Sequencer;
-/obj/item/device/hacktool:4:Hacktool;
-/obj/item/weapon/storage/toolbox/syndicate:1:Fully Loaded Toolbox;
-/obj/item/weapon/aiModule/syndicate:7:Hacked AI Upload Module;
-/obj/item/device/radio/headset/traitor:3:Headset with Binary Translator;
-/obj/item/weapon/plastique:2:C-4;
-/obj/item/device/powersink:5:Powersink (DANGER!);
-/obj/machinery/singularity_beacon/syndicate:7:Singularity Beacon (DANGER!);
-Whitespace:Seperator;
-Implants;
-/obj/item/weapon/storage/syndie_kit/imp_freedom:3:Freedom Implant;
-/obj/item/weapon/storage/syndie_kit/imp_compress:5:Compressed Matter Implant;
-/obj/item/weapon/storage/syndie_kit/imp_explosive:6:Explosive Implant;
-/obj/item/weapon/storage/syndie_kit/imp_uplink:10:Uplink Implant (Contains 5 Telecrystals);
-Whitespace:Seperator;
-Badassery;
-/obj/item/toy/syndicateballoon:10:For showing that You Are The BOSS (Useless Balloon);"}
uplink_uses = 10
diff --git a/code/game/gamemodes/extended/extended.dm b/code/game/gamemodes/extended/extended.dm
index e295150c8a..c5a4bed773 100644
--- a/code/game/gamemodes/extended/extended.dm
+++ b/code/game/gamemodes/extended/extended.dm
@@ -4,46 +4,6 @@
required_players = 0
uplink_welcome = "Syndicate Uplink Console:"
- uplink_items = {"Highly Visible and Dangerous Weapons;
-/obj/item/weapon/gun/projectile:6:Revolver;
-/obj/item/ammo_magazine/a357:2:Ammo-357;
-/obj/item/weapon/gun/energy/crossbow:5:Energy Crossbow;
-/obj/item/weapon/melee/energy/sword:4:Energy Sword;
-/obj/item/weapon/storage/box/syndicate:10:Syndicate Bundle;
-/obj/item/weapon/storage/emp_kit:4:5 EMP Grenades;
-Whitespace:Seperator;
-Stealthy and Inconspicuous Weapons;
-/obj/item/weapon/pen/sleepypen:3:Sleepy Pen;
-/obj/item/weapon/soap/syndie:1:Syndicate Soap;
-/obj/item/weapon/cartridge/syndicate:3:Detomatix PDA Cartridge;
-Whitespace:Seperator;
-Stealth and Camouflage Items;
-/obj/item/clothing/under/chameleon:3:Chameleon Jumpsuit;
-/obj/item/clothing/shoes/syndigaloshes:2:No-Slip Syndicate Shoes;
-/obj/item/weapon/card/id/syndicate:3:Agent ID card;
-/obj/item/clothing/mask/gas/voice:4:Voice Changer;
-/obj/item/clothing/glasses/thermal:4:Thermal Imaging Glasses;
-/obj/item/device/chameleon:4:Chameleon-Projector;
-/obj/item/weapon/stamperaser:1:Stamp Remover;
-Whitespace:Seperator;
-Devices and Tools;
-/obj/item/weapon/card/emag:3:Cryptographic Sequencer;
-/obj/item/device/hacktool:4:Hacktool;
-/obj/item/weapon/storage/toolbox/syndicate:1:Fully Loaded Toolbox;
-/obj/item/weapon/aiModule/syndicate:7:Hacked AI Upload Module;
-/obj/item/device/radio/headset/traitor:3:Headset with Binary Translator;
-/obj/item/weapon/plastique:2:C-4;
-/obj/item/device/powersink:5:Powersink (DANGER!);
-/obj/machinery/singularity_beacon/syndicate:7:Singularity Beacon (DANGER!);
-Whitespace:Seperator;
-Implants;
-/obj/item/weapon/storage/syndie_kit/imp_freedom:3:Freedom Implant;
-/obj/item/weapon/storage/syndie_kit/imp_compress:5:Compressed Matter Implant;
-/obj/item/weapon/storage/syndie_kit/imp_explosive:6:Explosive Implant;
-/obj/item/weapon/storage/syndie_kit/imp_uplink:10:Uplink Implant (Contains 5 Telecrystals);
-Whitespace:Seperator;
-Badassery;
-/obj/item/toy/syndicateballoon:10:For showing that You Are The BOSS (Useless Balloon);"}
uplink_uses = 10
/datum/game_mode/announce()
diff --git a/code/game/gamemodes/game_mode.dm b/code/game/gamemodes/game_mode.dm
index 3fb66ef2b7..0b7c655230 100644
--- a/code/game/gamemodes/game_mode.dm
+++ b/code/game/gamemodes/game_mode.dm
@@ -24,8 +24,47 @@
required_players = 0
required_enemies = 0
uplink_welcome
- uplink_items
uplink_uses
+ uplink_items = {"Highly Visible and Dangerous Weapons;
+/obj/item/weapon/gun/projectile:6:Revolver;
+/obj/item/ammo_magazine/a357:2:Ammo-357;
+/obj/item/weapon/gun/energy/crossbow:5:Energy Crossbow;
+/obj/item/weapon/melee/energy/sword:4:Energy Sword;
+/obj/item/weapon/storage/box/syndicate:10:Syndicate Bundle;
+/obj/item/weapon/storage/emp_kit:4:5 EMP Grenades;
+Whitespace:Seperator;
+Stealthy and Inconspicuous Weapons;
+/obj/item/weapon/pen/sleepypen:3:Sleepy Pen;
+/obj/item/weapon/soap/syndie:1:Syndicate Soap;
+/obj/item/weapon/cartridge/syndicate:3:Detomatix PDA Cartridge;
+Whitespace:Seperator;
+Stealth and Camouflage Items;
+/obj/item/clothing/under/chameleon:3:Chameleon Jumpsuit;
+/obj/item/clothing/shoes/syndigaloshes:2:No-Slip Syndicate Shoes;
+/obj/item/weapon/card/id/syndicate:3:Agent ID card;
+/obj/item/clothing/mask/gas/voice:4:Voice Changer;
+/obj/item/clothing/glasses/thermal:4:Thermal Imaging Glasses;
+/obj/item/device/chameleon:4:Chameleon-Projector;
+/obj/item/weapon/stamperaser:1:Stamp Remover;
+Whitespace:Seperator;
+Devices and Tools;
+/obj/item/weapon/card/emag:3:Cryptographic Sequencer;
+/obj/item/device/hacktool:3:Hacktool;
+/obj/item/weapon/storage/toolbox/syndicate:1:Fully Loaded Toolbox;
+/obj/item/weapon/aiModule/syndicate:7:Hacked AI Upload Module;
+/obj/item/device/radio/headset/traitor:3:Headset with Binary Translator;
+/obj/item/weapon/plastique:2:C-4;
+/obj/item/device/powersink:5:Powersink (DANGER!);
+/obj/machinery/singularity_beacon/syndicate:7:Singularity Beacon (DANGER!);
+Whitespace:Seperator;
+Implants;
+/obj/item/weapon/storage/syndie_kit/imp_freedom:3:Freedom Implant;
+/obj/item/weapon/storage/syndie_kit/imp_compress:5:Compressed Matter Implant;
+/obj/item/weapon/storage/syndie_kit/imp_explosive:6:Explosive Implant;
+/obj/item/weapon/storage/syndie_kit/imp_uplink:10:Uplink Implant (Contains 5 Telecrystals);
+Whitespace:Seperator;
+Badassery;
+/obj/item/toy/syndicateballoon:10:For showing that You Are The BOSS (Useless Balloon);"}
/datum/game_mode/proc/announce() //to be calles when round starts
world << "Notice: [src] did not define announce()"
@@ -80,6 +119,7 @@
/datum/game_mode/proc/check_win() //universal trigger to be called at mob death, nuke explosion, etc. To be called from everywhere.
return 0
+/datum/game_mode/proc/latespawn(var/mob)
/datum/game_mode/proc/send_intercept()
var/intercepttext = "Cent. Com. Update Requested staus information:
"
diff --git a/code/game/gamemodes/malfunction/malfunction.dm b/code/game/gamemodes/malfunction/malfunction.dm
index c9112b9537..46f52e6575 100644
--- a/code/game/gamemodes/malfunction/malfunction.dm
+++ b/code/game/gamemodes/malfunction/malfunction.dm
@@ -16,46 +16,6 @@
var/apcs = 0 //Adding dis to track how many APCs the AI hacks. --NeoFite
uplink_welcome = "Crazy AI Uplink Console:"
- uplink_items = {"Highly Visible and Dangerous Weapons;
-/obj/item/weapon/gun/projectile:6:Revolver;
-/obj/item/ammo_magazine/a357:2:Ammo-357;
-/obj/item/weapon/gun/energy/crossbow:5:Energy Crossbow;
-/obj/item/weapon/melee/energy/sword:4:Energy Sword;
-/obj/item/weapon/storage/box/syndicate:10:Syndicate Bundle;
-/obj/item/weapon/storage/emp_kit:4:5 EMP Grenades;
-Whitespace:Seperator;
-Stealthy and Inconspicuous Weapons;
-/obj/item/weapon/pen/sleepypen:3:Sleepy Pen;
-/obj/item/weapon/soap/syndie:1:Syndicate Soap;
-/obj/item/weapon/cartridge/syndicate:3:Detomatix PDA Cartridge;
-Whitespace:Seperator;
-Stealth and Camouflage Items;
-/obj/item/clothing/under/chameleon:3:Chameleon Jumpsuit;
-/obj/item/clothing/shoes/syndigaloshes:2:No-Slip Syndicate Shoes;
-/obj/item/weapon/card/id/syndicate:3:Agent ID card;
-/obj/item/clothing/mask/gas/voice:4:Voice Changer;
-/obj/item/clothing/glasses/thermal:4:Thermal Imaging Glasses;
-/obj/item/device/chameleon:4:Chameleon-Projector;
-/obj/item/weapon/stamperaser:1:Stamp Remover;
-Whitespace:Seperator;
-Devices and Tools;
-/obj/item/weapon/card/emag:3:Cryptographic Sequencer;
-/obj/item/device/hacktool:4:Hacktool;
-/obj/item/weapon/storage/toolbox/syndicate:1:Fully Loaded Toolbox;
-/obj/item/weapon/aiModule/syndicate:7:Hacked AI Upload Module;
-/obj/item/device/radio/headset/traitor:3:Headset with Binary Translator;
-/obj/item/weapon/plastique:2:C-4;
-/obj/item/device/powersink:5:Powersink (DANGER!);
-/obj/machinery/singularity_beacon/syndicate:7:Singularity Beacon (DANGER!);
-Whitespace:Seperator;
-Implants;
-/obj/item/weapon/storage/syndie_kit/imp_freedom:3:Freedom Implant;
-/obj/item/weapon/storage/syndie_kit/imp_compress:5:Compressed Matter Implant;
-/obj/item/weapon/storage/syndie_kit/imp_explosive:6:Explosive Implant;
-/obj/item/weapon/storage/syndie_kit/imp_uplink:10:Uplink Implant (Contains 5 Telecrystals);
-Whitespace:Seperator;
-Badassery;
-/obj/item/toy/syndicateballoon:10:For showing that You Are The BOSS (Useless Balloon);"}
uplink_uses = 10
diff --git a/code/game/gamemodes/meteor/meteor.dm b/code/game/gamemodes/meteor/meteor.dm
index a83c13c834..a91ce6414d 100644
--- a/code/game/gamemodes/meteor/meteor.dm
+++ b/code/game/gamemodes/meteor/meteor.dm
@@ -8,46 +8,6 @@
required_players = 0
uplink_welcome = "EVIL METEOR Uplink Console:"
- uplink_items = {"Highly Visible and Dangerous Weapons;
-/obj/item/weapon/gun/projectile:6:Revolver;
-/obj/item/ammo_magazine/a357:2:Ammo-357;
-/obj/item/weapon/gun/energy/crossbow:5:Energy Crossbow;
-/obj/item/weapon/melee/energy/sword:4:Energy Sword;
-/obj/item/weapon/storage/box/syndicate:10:Syndicate Bundle;
-/obj/item/weapon/storage/emp_kit:4:5 EMP Grenades;
-Whitespace:Seperator;
-Stealthy and Inconspicuous Weapons;
-/obj/item/weapon/pen/sleepypen:3:Sleepy Pen;
-/obj/item/weapon/soap/syndie:1:Syndicate Soap;
-/obj/item/weapon/cartridge/syndicate:3:Detomatix PDA Cartridge;
-Whitespace:Seperator;
-Stealth and Camouflage Items;
-/obj/item/clothing/under/chameleon:3:Chameleon Jumpsuit;
-/obj/item/clothing/shoes/syndigaloshes:2:No-Slip Syndicate Shoes;
-/obj/item/weapon/card/id/syndicate:3:Agent ID card;
-/obj/item/clothing/mask/gas/voice:4:Voice Changer;
-/obj/item/clothing/glasses/thermal:4:Thermal Imaging Glasses;
-/obj/item/device/chameleon:4:Chameleon-Projector;
-/obj/item/weapon/stamperaser:1:Stamp Remover;
-Whitespace:Seperator;
-Devices and Tools;
-/obj/item/weapon/card/emag:3:Cryptographic Sequencer;
-/obj/item/device/hacktool:4:Hacktool;
-/obj/item/weapon/storage/toolbox/syndicate:1:Fully Loaded Toolbox;
-/obj/item/weapon/aiModule/syndicate:7:Hacked AI Upload Module;
-/obj/item/device/radio/headset/traitor:3:Headset with Binary Translator;
-/obj/item/weapon/plastique:2:C-4;
-/obj/item/device/powersink:5:Powersink (DANGER!);
-/obj/machinery/singularity_beacon/syndicate:7:Singularity Beacon (DANGER!);
-Whitespace:Seperator;
-Implants;
-/obj/item/weapon/storage/syndie_kit/imp_freedom:3:Freedom Implant;
-/obj/item/weapon/storage/syndie_kit/imp_compress:5:Compressed Matter Implant;
-/obj/item/weapon/storage/syndie_kit/imp_explosive:6:Explosive Implant;
-/obj/item/weapon/storage/syndie_kit/imp_uplink:10:Uplink Implant (Contains 5 Telecrystals);
-Whitespace:Seperator;
-Badassery;
-/obj/item/toy/syndicateballoon:10:For showing that You Are The BOSS (Useless Balloon);"}
uplink_uses = 10
/datum/game_mode/meteor/announce()
diff --git a/code/game/gamemodes/nuclear/nuclear.dm b/code/game/gamemodes/nuclear/nuclear.dm
index 2629442706..f077dc9b5a 100644
--- a/code/game/gamemodes/nuclear/nuclear.dm
+++ b/code/game/gamemodes/nuclear/nuclear.dm
@@ -9,46 +9,6 @@
required_enemies = 2
uplink_welcome = "Corporate Backed Uplink Console:"
- uplink_items = {"Highly Visible and Dangerous Weapons;
-/obj/item/weapon/gun/projectile:6:Revolver;
-/obj/item/ammo_magazine/a357:2:Ammo-357;
-/obj/item/weapon/gun/energy/crossbow:5:Energy Crossbow;
-/obj/item/weapon/melee/energy/sword:4:Energy Sword;
-/obj/item/weapon/storage/box/syndicate:10:Syndicate Bundle;
-/obj/item/weapon/storage/emp_kit:4:5 EMP Grenades;
-Whitespace:Seperator;
-Stealthy and Inconspicuous Weapons;
-/obj/item/weapon/pen/sleepypen:3:Sleepy Pen;
-/obj/item/weapon/soap/syndie:1:Syndicate Soap;
-/obj/item/weapon/cartridge/syndicate:3:Detomatix PDA Cartridge;
-Whitespace:Seperator;
-Stealth and Camouflage Items;
-/obj/item/clothing/under/chameleon:3:Chameleon Jumpsuit;
-/obj/item/clothing/shoes/syndigaloshes:2:No-Slip Syndicate Shoes;
-/obj/item/weapon/card/id/syndicate:3:Agent ID card;
-/obj/item/clothing/mask/gas/voice:4:Voice Changer;
-/obj/item/clothing/glasses/thermal:4:Thermal Imaging Glasses;
-/obj/item/device/chameleon:4:Chameleon-Projector;
-/obj/item/weapon/stamperaser:1:Stamp Remover;
-Whitespace:Seperator;
-Devices and Tools;
-/obj/item/weapon/card/emag:3:Cryptographic Sequencer;
-/obj/item/device/hacktool:4:Hacktool;
-/obj/item/weapon/storage/toolbox/syndicate:1:Fully Loaded Toolbox;
-/obj/item/weapon/aiModule/syndicate:7:Hacked AI Upload Module;
-/obj/item/device/radio/headset/traitor:3:Headset with Binary Translator;
-/obj/item/weapon/plastique:2:C-4;
-/obj/item/device/powersink:5:Powersink (DANGER!);
-/obj/machinery/singularity_beacon/syndicate:7:Singularity Beacon (DANGER!);
-Whitespace:Seperator;
-Implants;
-/obj/item/weapon/storage/syndie_kit/imp_freedom:3:Freedom Implant;
-/obj/item/weapon/storage/syndie_kit/imp_compress:5:Compressed Matter Implant;
-/obj/item/weapon/storage/syndie_kit/imp_explosive:6:Explosive Implant;
-/obj/item/weapon/storage/syndie_kit/imp_uplink:10:Uplink Implant (Contains 5 Telecrystals);
-Whitespace:Seperator;
-Badassery;
-/obj/item/toy/syndicateballoon:10:For showing that You Are The BOSS (Useless Balloon);"}
uplink_uses = 40
var/const/agents_possible = 5 //If we ever need more syndicate agents.
diff --git a/code/game/gamemodes/revolution/revolution.dm b/code/game/gamemodes/revolution/revolution.dm
index 57f7e3f642..f14d813022 100644
--- a/code/game/gamemodes/revolution/revolution.dm
+++ b/code/game/gamemodes/revolution/revolution.dm
@@ -19,46 +19,6 @@
required_enemies = 3
uplink_welcome = "Revolutionary Uplink Console:"
- uplink_items = {"Highly Visible and Dangerous Weapons;
-/obj/item/weapon/gun/projectile:6:Revolver;
-/obj/item/ammo_magazine/a357:2:Ammo-357;
-/obj/item/weapon/gun/energy/crossbow:5:Energy Crossbow;
-/obj/item/weapon/melee/energy/sword:4:Energy Sword;
-/obj/item/weapon/storage/box/syndicate:10:Syndicate Bundle;
-/obj/item/weapon/storage/emp_kit:4:5 EMP Grenades;
-Whitespace:Seperator;
-Stealthy and Inconspicuous Weapons;
-/obj/item/weapon/pen/sleepypen:3:Sleepy Pen;
-/obj/item/weapon/soap/syndie:1:Syndicate Soap;
-/obj/item/weapon/cartridge/syndicate:3:Detomatix PDA Cartridge;
-Whitespace:Seperator;
-Stealth and Camouflage Items;
-/obj/item/clothing/under/chameleon:3:Chameleon Jumpsuit;
-/obj/item/clothing/shoes/syndigaloshes:2:No-Slip Syndicate Shoes;
-/obj/item/weapon/card/id/syndicate:3:Agent ID card;
-/obj/item/clothing/mask/gas/voice:4:Voice Changer;
-/obj/item/clothing/glasses/thermal:4:Thermal Imaging Glasses;
-/obj/item/device/chameleon:4:Chameleon-Projector;
-/obj/item/weapon/stamperaser:1:Stamp Remover;
-Whitespace:Seperator;
-Devices and Tools;
-/obj/item/weapon/card/emag:3:Cryptographic Sequencer;
-/obj/item/device/hacktool:4:Hacktool;
-/obj/item/weapon/storage/toolbox/syndicate:1:Fully Loaded Toolbox;
-/obj/item/weapon/aiModule/syndicate:7:Hacked AI Upload Module;
-/obj/item/device/radio/headset/traitor:3:Headset with Binary Translator;
-/obj/item/weapon/plastique:2:C-4;
-/obj/item/device/powersink:5:Powersink (DANGER!);
-/obj/machinery/singularity_beacon/syndicate:7:Singularity Beacon (DANGER!);
-Whitespace:Seperator;
-Implants;
-/obj/item/weapon/storage/syndie_kit/imp_freedom:3:Freedom Implant;
-/obj/item/weapon/storage/syndie_kit/imp_compress:5:Compressed Matter Implant;
-/obj/item/weapon/storage/syndie_kit/imp_explosive:6:Explosive Implant;
-/obj/item/weapon/storage/syndie_kit/imp_uplink:10:Uplink Implant (Contains 5 Telecrystals);
-Whitespace:Seperator;
-Badassery;
-/obj/item/toy/syndicateballoon:10:For showing that You Are The BOSS (Useless Balloon);"}
uplink_uses = 10
var/finished = 0
@@ -207,6 +167,8 @@ Badassery;
rev_mind.current << "\red You are now a revolutionary! Help your cause. Do not harm your fellow freedom fighters. You can identify your comrades by the red \"R\" icons, and your leaders by the blue \"R\" icons. Help them kill the heads to win the revolution!"
rev_mind.special_role = "Revolutionary"
update_rev_icons_added(rev_mind)
+ if(ticker.mode.name == "rp-revolution")
+ rev_mind.current.verbs += /mob/living/carbon/human/proc/RevConvert
return 1
//////////////////////////////////////////////////////////////////////////////
//Deals with players being converted from the revolution (Not a rev anymore)// // Modified to handle borged MMIs. Accepts another var if the target is being borged at the time -- Polymorph.
@@ -229,6 +191,8 @@ Badassery;
else
M << "[rev_mind.current] looks like they just remembered their real allegiance!"
+ if(ticker.mode.name == "rp-revolution")
+ rev_mind.current.verbs -= /mob/living/carbon/human/proc/RevConvert
/////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/code/game/gamemodes/traitor/traitor.dm b/code/game/gamemodes/traitor/traitor.dm
index 9dff9159ac..5e69cb55c3 100644
--- a/code/game/gamemodes/traitor/traitor.dm
+++ b/code/game/gamemodes/traitor/traitor.dm
@@ -10,46 +10,6 @@
required_enemies = 1
uplink_welcome = "Syndicate Uplink Console:"
- uplink_items = {"Highly Visible and Dangerous Weapons;
-/obj/item/weapon/gun/projectile:6:Revolver;
-/obj/item/ammo_magazine/a357:2:Ammo-357;
-/obj/item/weapon/gun/energy/crossbow:5:Energy Crossbow;
-/obj/item/weapon/melee/energy/sword:4:Energy Sword;
-/obj/item/weapon/storage/box/syndicate:10:Syndicate Bundle;
-/obj/item/weapon/storage/emp_kit:4:5 EMP Grenades;
-Whitespace:Seperator;
-Stealthy and Inconspicuous Weapons;
-/obj/item/weapon/pen/sleepypen:3:Sleepy Pen;
-/obj/item/weapon/soap/syndie:1:Syndicate Soap;
-/obj/item/weapon/cartridge/syndicate:3:Detomatix PDA Cartridge;
-Whitespace:Seperator;
-Stealth and Camouflage Items;
-/obj/item/clothing/under/chameleon:3:Chameleon Jumpsuit;
-/obj/item/clothing/shoes/syndigaloshes:2:No-Slip Syndicate Shoes;
-/obj/item/weapon/card/id/syndicate:3:Agent ID card;
-/obj/item/clothing/mask/gas/voice:4:Voice Changer;
-/obj/item/clothing/glasses/thermal:4:Thermal Imaging Glasses;
-/obj/item/device/chameleon:4:Chameleon-Projector;
-/obj/item/weapon/stamperaser:1:Stamp Remover;
-Whitespace:Seperator;
-Devices and Tools;
-/obj/item/weapon/card/emag:3:Cryptographic Sequencer;
-/obj/item/device/hacktool:4:Hacktool;
-/obj/item/weapon/storage/toolbox/syndicate:1:Fully Loaded Toolbox;
-/obj/item/weapon/aiModule/syndicate:7:Hacked AI Upload Module;
-/obj/item/device/radio/headset/traitor:3:Headset with Binary Translator;
-/obj/item/weapon/plastique:2:C-4;
-/obj/item/device/powersink:5:Powersink (DANGER!);
-/obj/machinery/singularity_beacon/syndicate:7:Singularity Beacon (DANGER!);
-Whitespace:Seperator;
-Implants;
-/obj/item/weapon/storage/syndie_kit/imp_freedom:3:Freedom Implant;
-/obj/item/weapon/storage/syndie_kit/imp_compress:5:Compressed Matter Implant;
-/obj/item/weapon/storage/syndie_kit/imp_explosive:6:Explosive Implant;
-/obj/item/weapon/storage/syndie_kit/imp_uplink:10:Uplink Implant (Contains 5 Telecrystals);
-Whitespace:Seperator;
-Badassery;
-/obj/item/toy/syndicateballoon:10:For showing that You Are The BOSS (Useless Balloon);"}
uplink_uses = 10
var/const/waittime_l = 600 //lower bound on time before intercept arrives (in tenths of seconds)
@@ -58,6 +18,8 @@ Badassery;
var/traitors_possible = 4 //hard limit on traitors if scaling is turned off
var/const/traitor_scaling_coeff = 10.0 //how much does the amount of players get divided by to determine traitors
+ var/num_players = 0
+
/datum/game_mode/traitor/announce()
world << "The current game mode is - Traitor!"
@@ -300,7 +262,7 @@ Badassery;
if (!R && traitor_mob.w_uniform && istype(traitor_mob.belt, /obj/item/device/radio))
R = traitor_mob.belt
loc = "on your belt"
- if (!R && istype(traitor_mob.l_ear, /obj/item/device/radio))
+ if (!R && istype(traitor_mob.l_ear, /obj/item/device/radio) || prob(10))
R = traitor_mob.l_ear
loc = "on your head"
if (!R && istype(traitor_mob.r_ear, /obj/item/device/radio))
@@ -310,7 +272,7 @@ Badassery;
traitor_mob << "Unfortunately, the Syndicate wasn't able to get you an uplink."
. = 0
else
- if (istype(R, /obj/item/device/radio) || prob(10))
+ if (istype(R, /obj/item/device/radio))
// generate list of radio freqs
var/freq = 1441
var/list/freqlist = list()
diff --git a/code/game/gamemodes/wizard/wizard.dm b/code/game/gamemodes/wizard/wizard.dm
index 04e6726c59..08c6654f2d 100644
--- a/code/game/gamemodes/wizard/wizard.dm
+++ b/code/game/gamemodes/wizard/wizard.dm
@@ -9,46 +9,6 @@
required_enemies = 1
uplink_welcome = "Wizardly Uplink Console:"
- uplink_items = {"Highly Visible and Dangerous Weapons;
-/obj/item/weapon/gun/projectile:6:Revolver;
-/obj/item/ammo_magazine/a357:2:Ammo-357;
-/obj/item/weapon/gun/energy/crossbow:5:Energy Crossbow;
-/obj/item/weapon/melee/energy/sword:4:Energy Sword;
-/obj/item/weapon/storage/box/syndicate:10:Syndicate Bundle;
-/obj/item/weapon/storage/emp_kit:4:5 EMP Grenades;
-Whitespace:Seperator;
-Stealthy and Inconspicuous Weapons;
-/obj/item/weapon/pen/sleepypen:3:Sleepy Pen;
-/obj/item/weapon/soap/syndie:1:Syndicate Soap;
-/obj/item/weapon/cartridge/syndicate:3:Detomatix PDA Cartridge;
-Whitespace:Seperator;
-Stealth and Camouflage Items;
-/obj/item/clothing/under/chameleon:3:Chameleon Jumpsuit;
-/obj/item/clothing/shoes/syndigaloshes:2:No-Slip Syndicate Shoes;
-/obj/item/weapon/card/id/syndicate:3:Agent ID card;
-/obj/item/clothing/mask/gas/voice:4:Voice Changer;
-/obj/item/clothing/glasses/thermal:4:Thermal Imaging Glasses;
-/obj/item/device/chameleon:4:Chameleon-Projector;
-/obj/item/weapon/stamperaser:1:Stamp Remover;
-Whitespace:Seperator;
-Devices and Tools;
-/obj/item/weapon/card/emag:3:Cryptographic Sequencer;
-/obj/item/device/hacktool:4:Hacktool;
-/obj/item/weapon/storage/toolbox/syndicate:1:Fully Loaded Toolbox;
-/obj/item/weapon/aiModule/syndicate:7:Hacked AI Upload Module;
-/obj/item/device/radio/headset/traitor:3:Headset with Binary Translator;
-/obj/item/weapon/plastique:2:C-4;
-/obj/item/device/powersink:5:Powersink (DANGER!);
-/obj/machinery/singularity_beacon/syndicate:7:Singularity Beacon (DANGER!);
-Whitespace:Seperator;
-Implants;
-/obj/item/weapon/storage/syndie_kit/imp_freedom:3:Freedom Implant;
-/obj/item/weapon/storage/syndie_kit/imp_compress:5:Compressed Matter Implant;
-/obj/item/weapon/storage/syndie_kit/imp_explosive:6:Explosive Implant;
-/obj/item/weapon/storage/syndie_kit/imp_uplink:10:Uplink Implant (Contains 5 Telecrystals);
-Whitespace:Seperator;
-Badassery;
-/obj/item/toy/syndicateballoon:10:For showing that You Are The BOSS (Useless Balloon);"}
uplink_uses = 10
var/finished = 0
diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm
index 39f3ce9c66..5389935bd4 100644
--- a/code/game/machinery/doors/airlock.dm
+++ b/code/game/machinery/doors/airlock.dm
@@ -77,15 +77,14 @@ Airlock index -> wire color are { 9, 4, 6, 7, 5, 8, 1, 2, 3 }.
var/aiHacking = 0
var/obj/machinery/door/airlock/closeOther = null
var/closeOtherId = null
- var/list/signalers[9]
+ var/list/signalers[12]
var/lockdownbyai = 0
autoclose = 1
var/doortype = 0
var/justzap = 0
var/safetylight = 1
var/obj/item/weapon/airlock_electronics/electronics = null
-
-/obj/machinery/door/airlock/New()
+ holdopen = 1
/obj/machinery/door/airlock/command
name = "Airlock"
@@ -563,9 +562,9 @@ About the new airlock wires panel:
if(src.isWireCut(AIRLOCK_WIRE_HOLDOPEN))
t1 += "Behavior Control light wire is cut.
\n"
else if(!src.holdopen)
- t1 += text("Door behavior is set to: Automatically close Toggle?
\n")
+ t1 += text("Door behavior is set to: Automatically close Toggle?
\n")
else
- t1 += text("Door behavior is set to: Wait for clearance to close Toggle?
\n")
+ t1 += text("Door behavior is set to: Wait for clearance to close Toggle?
\n")
if (src.welded)
t1 += text("Door appears to have been welded shut.
\n")
@@ -593,7 +592,6 @@ About the new airlock wires panel:
return
//Separate interface for the hacker.
- user.machine = src
var/t1 = text("Airlock Control
\n")
if (src.secondsMainPowerLost > 0)
if ((!src.isWireCut(AIRLOCK_WIRE_MAIN_POWER1)) && (!src.isWireCut(AIRLOCK_WIRE_MAIN_POWER2)))
@@ -671,9 +669,9 @@ About the new airlock wires panel:
if(src.isWireCut(AIRLOCK_WIRE_HOLDOPEN))
t1 += "Behavior Control light wire is cut.
\n"
else if(!src.holdopen)
- t1 += text("Door behavior is set to: Automatically close Toggle?
\n")
+ t1 += text("Door behavior is set to: Automatically close Toggle?
\n")
else
- t1 += text("Door behavior is set to: Wait for clearance to close Toggle?
\n")
+ t1 += text("Door behavior is set to: Wait for clearance to close Toggle?
\n")
if (src.welded)
t1 += text("Door appears to have been welded shut.
\n")
@@ -934,7 +932,7 @@ About the new airlock wires panel:
if(!src.holdopen)
usr << text("Door Behavior already set to: Wait for clearance to close
\n")
else
- src.holdopen = 1
+ src.holdopen = 0
else if (href_list["aiEnable"])
var/code = text2num(href_list["aiEnable"])
@@ -1012,7 +1010,7 @@ About the new airlock wires panel:
if(src.holdopen)
usr << text("Door Behavior already set to: Automatically close
\n")
else
- src.holdopen = 0
+ src.holdopen = 1
src.update_icon()
src.updateUsrDialog()
diff --git a/code/game/machinery/doors/door.dm b/code/game/machinery/doors/door.dm
index bcc10c2a51..ee24359aee 100644
--- a/code/game/machinery/doors/door.dm
+++ b/code/game/machinery/doors/door.dm
@@ -293,18 +293,17 @@
return
src.operating = 1
- var/held = 0
+ var/held = 1
if(src.holdopen)
- while(held == 0)
+ while(held == 1)
+ held = 0
var/list/objects = locate() in get_turf(src)
for(var/obj/T in objects)
- if(T.anchored && T != src)
+ if(T != src)
held = 1
- break
for(var/mob/T in objects)
held = 1
- break
sleep(10)
animate("closing")
src.density = 1
diff --git a/code/game/objects/closets/secure/engineering.dm b/code/game/objects/closets/secure/engineering.dm
index 3945a1e5b6..f5bb2fefd0 100644
--- a/code/game/objects/closets/secure/engineering.dm
+++ b/code/game/objects/closets/secure/engineering.dm
@@ -6,9 +6,9 @@
New()
..()
sleep(2)
+ new /obj/item/wardrobe/chief_engineer(src)
+ new /obj/item/wardrobe/chief_engineer(src)
new /obj/item/blueprints(src)
- new /obj/item/wardrobe/chief_engineer(src)
- new /obj/item/wardrobe/chief_engineer(src)
return
diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm
index 8ecb1cb853..1715b749c7 100644
--- a/code/modules/mob/living/carbon/human/life.dm
+++ b/code/modules/mob/living/carbon/human/life.dm
@@ -229,10 +229,10 @@
var/datum/gas_mixture/environment = loc.return_air()
var/datum/air_group/breath
// HACK NEED CHANGING LATER
- if(health < config.health_threshold_dead)
+ if(health < (config.health_threshold_dead + 50)) //PEOPLE ARE NOT DYING, DAMMIT
losebreath++
- if(losebreath>0) //Suffocating so do not take a breath
+ if(losebreath>0 && prob(90)) //Suffocating so do not take a breath
losebreath--
if (prob(75)) //High chance of gasping for air
spawn emote("gasp")
diff --git a/code/modules/mob/new_player/new_player.dm b/code/modules/mob/new_player/new_player.dm
index 6d3ac0648e..5c8d1cce35 100644
--- a/code/modules/mob/new_player/new_player.dm
+++ b/code/modules/mob/new_player/new_player.dm
@@ -258,6 +258,8 @@
job_master.EquipRank(character, rank, 1)
EquipCustomItems(character)
character.loc = pick(latejoin)
+ character.be_syndicate = src.preferences.be_special & BE_TRAITOR
+ ticker.mode.latespawn(character)
AnnounceArrival(character, rank)
if(character.mind.assigned_role != "Cyborg")
diff --git a/data/mode.txt b/data/mode.txt
index bd81a61cbf..e8ce87d6d4 100644
--- a/data/mode.txt
+++ b/data/mode.txt
@@ -1 +1 @@
-traitor
+Extend-A-Traitormongous