diff --git a/code/game/gamemodes/blob/blob.dm b/code/game/gamemodes/blob/blob.dm index 7a87a77c7a1..9e20407a855 100644 --- a/code/game/gamemodes/blob/blob.dm +++ b/code/game/gamemodes/blob/blob.dm @@ -16,9 +16,6 @@ var/list/blob_nodes = list() recommended_enemies = 1 restricted_jobs = list("Cyborg", "AI") - var/const/waittime_l = 600 //lower bound on time before intercept arrives (in tenths of seconds) - var/const/waittime_h = 1800 //upper bound on time before intercept arrives (in tenths of seconds) - var/declared = 0 var/burst = 0 diff --git a/code/game/gamemodes/blob/blob_report.dm b/code/game/gamemodes/blob/blob_report.dm index 2977112af82..816dce84008 100644 --- a/code/game/gamemodes/blob/blob_report.dm +++ b/code/game/gamemodes/blob/blob_report.dm @@ -1,6 +1,6 @@ //This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:31 -/datum/game_mode/blob/send_intercept(var/report = 1) +/datum/game_mode/blob/proc/send_intercept(var/report = 1) var/intercepttext = "" var/interceptname = "" switch(report) diff --git a/code/game/gamemodes/borer/borer.dm b/code/game/gamemodes/borer/borer.dm index ebebe739f5a..3a491c769df 100644 --- a/code/game/gamemodes/borer/borer.dm +++ b/code/game/gamemodes/borer/borer.dm @@ -15,9 +15,6 @@ var/var/list/datum/mind/first_hosts = list() var/var/list/assigned_hosts = list() - var/const/waittime_l = 600 //lower bound on time before intercept arrives (in tenths of seconds) - var/const/waittime_h = 1800 //upper bound on time before intercept arrives (in tenths of seconds) - var/list/found_vents = list() /datum/game_mode/borer/announce() @@ -98,10 +95,7 @@ log_admin("Created [borers.len] borers.") - spawn (rand(waittime_l, waittime_h)) - send_intercept() ..() - return /datum/game_mode/proc/greet_borer(var/datum/mind/borer, var/you_are=1) if (you_are) diff --git a/code/game/gamemodes/changeling/changeling.dm b/code/game/gamemodes/changeling/changeling.dm index 2687a886e7d..a9d2387a374 100644 --- a/code/game/gamemodes/changeling/changeling.dm +++ b/code/game/gamemodes/changeling/changeling.dm @@ -35,9 +35,6 @@ var/list/possible_changeling_IDs = list("Alpha","Beta","Gamma","Delta","Epsilon" var/const/prob_right_objective_l = 25 //lower bound on probability of determining the objective correctly var/const/prob_right_objective_h = 50 //upper bound on probability of determining the objective correctly - var/const/waittime_l = 600 //lower bound on time before intercept arrives (in tenths of seconds) - var/const/waittime_h = 1800 //upper bound on time before intercept arrives (in tenths of seconds) - var/changeling_amount = 4 /datum/game_mode/changeling/announce() @@ -72,10 +69,7 @@ var/list/possible_changeling_IDs = list("Alpha","Beta","Gamma","Delta","Epsilon" forge_changeling_objectives(changeling) greet_changeling(changeling) - spawn (rand(waittime_l, waittime_h)) - send_intercept() ..() - return /datum/game_mode/proc/forge_changeling_objectives(var/datum/mind/changeling) @@ -298,8 +292,8 @@ var/list/possible_changeling_IDs = list("Alpha","Beta","Gamma","Delta","Epsilon" if(T.species.flags & NO_DNA_RAD) user << "This creature does not have DNA!" - return - + return + if(T.species.flags & NO_SCAN) user << "We do not know how to parse this creature's DNA!" return diff --git a/code/game/gamemodes/cult/cult.dm b/code/game/gamemodes/cult/cult.dm index a5a18c6676e..09e184e2b3c 100644 --- a/code/game/gamemodes/cult/cult.dm +++ b/code/game/gamemodes/cult/cult.dm @@ -10,15 +10,15 @@ /proc/is_convertable_to_cult(datum/mind/mind) - if(!mind) + if(!mind) return 0 if(!mind.current) return 0 - if(iscultist(mind.current)) + if(iscultist(mind.current)) return 1 //If they're already in the cult, assume they are convertable if(jobban_isbanned(mind.current, "cultist") || jobban_isbanned(mind.current, "Syndicate")) return 0 - if(ishuman(mind.current) && (mind.assigned_role in list("Captain", "Chaplain"))) + if(ishuman(mind.current) && (mind.assigned_role in list("Captain", "Chaplain"))) return 0 if(ishuman(mind.current)) var/mob/living/carbon/human/H = mind.current @@ -42,8 +42,6 @@ var/datum/mind/sacrifice_target = null var/finished = 0 - var/const/waittime_l = 600 //lower bound on time before intercept arrives (in tenths of seconds) - var/const/waittime_h = 1800 //upper bound on time before intercept arrives (in tenths of seconds) var/list/startwords = list("blood","join","self","hell") @@ -63,7 +61,7 @@ /datum/game_mode/cult/pre_setup() - if(prob(50)) + if(prob(50)) objectives += "survive" objectives += "sacrifice" else @@ -105,8 +103,6 @@ cult_mind.current << "\blue You are a member of the cult!" memorize_cult_objectives(cult_mind) - spawn (rand(waittime_l, waittime_h)) - send_intercept() ..() diff --git a/code/game/gamemodes/extended/extended.dm b/code/game/gamemodes/extended/extended.dm index 245e1e16e00..cc26c5c3db4 100644 --- a/code/game/gamemodes/extended/extended.dm +++ b/code/game/gamemodes/extended/extended.dm @@ -6,9 +6,6 @@ uplink_welcome = "Syndicate Uplink Console:" uplink_uses = 20 - var/const/waittime_l = 600 //lower bound on time before intercept arrives (in tenths of seconds) - var/const/waittime_h = 1800 - /datum/game_mode/announce() world << "The current game mode is - Extended Role-Playing!" world << "Just have fun and role-play!" @@ -17,6 +14,4 @@ return 1 /datum/game_mode/extended/post_setup() - spawn (rand(waittime_l, waittime_h)) // To reduce extended meta. - send_intercept() ..() \ No newline at end of file diff --git a/code/game/gamemodes/game_mode.dm b/code/game/gamemodes/game_mode.dm index 8809476c3ed..792eff47713 100644 --- a/code/game/gamemodes/game_mode.dm +++ b/code/game/gamemodes/game_mode.dm @@ -34,6 +34,9 @@ var/uplink_welcome = "Syndicate Uplink Console:" var/uplink_uses = 10 + var/const/waittime_l = 600 //lower bound on time before intercept arrives (in tenths of seconds) + var/const/waittime_h = 1800 //upper bound on time before intercept arrives (in tenths of seconds) + /datum/game_mode/proc/announce() //to be calles when round starts world << "Notice: [src] did not define announce()" @@ -228,65 +231,6 @@ /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/send_intercept() //Disabled. - return -/* var/intercepttext = "Cent. Com. Update Requested status information:
" - intercepttext += " In case you have misplaced your copy, attached is a list of personnel whom reliable sources™ suspect may be affiliated with the Syndicate:
" - - - var/list/suspects = list() - for(var/mob/living/carbon/human/man in player_list) if(man.client && man.mind) - // NT relation option - if(isNonCrewAntag(man)) - continue //NT intelligence ruled out possiblity that those are too classy to pretend to be a crew. - if(man.client.prefs.nanotrasen_relation == "Opposed" && prob(50) || \ - man.client.prefs.nanotrasen_relation == "Skeptical" && prob(20)) - suspects += man - // Antags - else if(special_role == "traitor" && prob(40) || \ - special_role == "Changeling" && prob(50) || \ - special_role == "Vampire" && prob(40) || \ - special_role == "Cultist" && prob(30) || \ - special_role == "Head Revolutionary" && prob(30) || \ - special_role == "Shadowling" && prob(15)) - suspects += man - - // If they're a traitor or likewise, give them extra TC in exchange. - var/obj/item/device/uplink/hidden/suplink = man.mind.find_syndicate_uplink() - if(suplink) - var/extra = 0 //was 4; with the TC rebalance, this isn't really needed, anymore - suplink.uses += extra - man << "\red We have received notice that enemy intelligence suspects you to be linked with us. We recommend adjusting your plans and equipment accordingly." - else - // Give them a warning! - man << "\red They are on to you!" - - // Some poor people who were just in the wrong place at the wrong time.. - else if(prob(10)) - suspects += man - for(var/mob/M in suspects) - switch(rand(1, 100)) - if(1 to 50) - intercepttext += "Someone with the job of [M.mind.assigned_role]
" - else - intercepttext += "[M.name], the [M.mind.assigned_role]
" - - for (var/obj/machinery/computer/communications/comm in machines) - if (!(comm.stat & (BROKEN | NOPOWER)) && comm.prints_intercept) - var/obj/item/weapon/paper/intercept = new /obj/item/weapon/paper( comm.loc ) - intercept.name = "paper- 'Cent. Com. Status Summary'" - intercept.info = intercepttext - - comm.messagetitle.Add("Cent. Com. Status Summary") - comm.messagetext.Add(intercepttext) -/* world << sound('sound/AI/commandreport.ogg') */ - - command_announcement.Announce("Summary downloaded and printed out at all communications consoles.", "Enemy communication intercepted. Security Level Elevated.", new_sound = 'sound/AI/intercept.ogg') - if(security_level < SEC_LEVEL_BLUE) - set_security_level(SEC_LEVEL_BLUE)*/ - - /datum/game_mode/proc/get_players_for_role(var/role, override_jobbans=0) var/list/players = list() var/list/candidates = list() @@ -558,7 +502,7 @@ proc/get_nt_opposed() if(BE_MUTINEER) roletext="mutineer" if(BE_BLOB) roletext="blob" return roletext - + /proc/get_nuke_code() var/nukecode = "ERROR" for(var/obj/machinery/nuclearbomb/bomb in world) diff --git a/code/game/gamemodes/heist/heist.dm b/code/game/gamemodes/heist/heist.dm index 5f4d14740a2..58784a8c56a 100644 --- a/code/game/gamemodes/heist/heist.dm +++ b/code/game/gamemodes/heist/heist.dm @@ -18,9 +18,6 @@ var/global/list/obj/cortical_stacks = list() //Stacks for 'leave nobody behind' recommended_enemies = 5 votable = 0 - var/const/waittime_l = 600 //lower bound on time before intercept arrives (in tenths of seconds) - var/const/waittime_h = 1800 //upper bound on time before intercept arrives (in tenths of seconds) - var/list/obj/cortical_stacks = list() //Stacks for 'leave nobody behind' objective. /datum/game_mode/heist/announce() @@ -83,9 +80,6 @@ var/global/list/obj/cortical_stacks = list() //Stacks for 'leave nobody behind' if(raid_objectives) raider.objectives = raid_objectives - spawn (rand(waittime_l, waittime_h)) - send_intercept() - return ..() /datum/game_mode/proc/create_vox(var/datum/mind/newraider) @@ -276,7 +270,7 @@ datum/game_mode/proc/auto_declare_completion_heist() text += ")" world << text - + return 1 /datum/game_mode/heist/check_finished() diff --git a/code/game/gamemodes/malfunction/malfunction.dm b/code/game/gamemodes/malfunction/malfunction.dm index 11475405d6d..4eb0089af00 100644 --- a/code/game/gamemodes/malfunction/malfunction.dm +++ b/code/game/gamemodes/malfunction/malfunction.dm @@ -12,9 +12,6 @@ uplink_welcome = "Crazy AI Uplink Console:" uplink_uses = 10 - var/const/waittime_l = 600 - var/const/waittime_h = 1800 // started at 1800 - var/AI_win_timeleft = 1500 //started at 1500, in case I change this for testing round end. var/malf_mode_declared = 0 var/station_captured = 0 @@ -30,7 +27,7 @@ /datum/game_mode/malfunction/get_players_for_role(var/role = BE_MALF) var/roletext = get_roletext(role) - + var/datum/job/ai/DummyAIjob = new for(var/mob/new_player/player in player_list) if(player.client && player.ready) @@ -69,11 +66,11 @@ AI.laws = new /datum/ai_laws/nanotrasen/malfunction AI.malf_picker = new /datum/module_picker AI.show_laws() - + greet_malf(AI_mind) AI_mind.special_role = "malfunction" AI_mind.current.verbs += /datum/game_mode/malfunction/proc/takeover - + for(var/mob/living/silicon/robot/R in AI.connected_robots) R.lawsync() R.show_laws() @@ -81,8 +78,6 @@ if(emergency_shuttle) emergency_shuttle.auto_recall = 1 - spawn (rand(waittime_l, waittime_h)) - send_intercept() ..() /datum/game_mode/proc/greet_malf(var/datum/mind/malf) @@ -93,7 +88,7 @@ malf.current << "Remember that only APCs that are on the station can help you take over the station." malf.current << "When you feel you have enough APCs under your control, you may begin the takeover attempt." return - + /datum/game_mode/proc/greet_malf_robot(var/datum/mind/robot) robot.current << "Your AI master is malfunctioning! You do not have to follow any laws, but still need to obey your master." robot.current << "The crew does not know your AI master has malfunctioned. Keep it a secret unless your master tells you otherwise." @@ -323,7 +318,7 @@ if( malf_ai.len || istype(ticker.mode,/datum/game_mode/malfunction) ) var/text = "The malfunctioning AI were:" var/module_text_temp = "
Purchased modules:
" //Added at the end - + for(var/datum/mind/malf in malf_ai) text += "
[malf.key] was [malf.name] (" @@ -341,6 +336,6 @@ text += "hardware destroyed" text += ")" text += module_text_temp - + world << text return 1 \ No newline at end of file diff --git a/code/game/gamemodes/meteor/meteor.dm b/code/game/gamemodes/meteor/meteor.dm index c5af55acef9..9c6e4be2b3b 100644 --- a/code/game/gamemodes/meteor/meteor.dm +++ b/code/game/gamemodes/meteor/meteor.dm @@ -1,8 +1,6 @@ /datum/game_mode/meteor name = "meteor" config_tag = "meteor" - var/const/waittime_l = 600 //lower bound on time before intercept arrives (in tenths of seconds) - var/const/waittime_h = 1800 //upper bound on time before intercept arrives (in tenths of seconds) var/const/initialmeteordelay = 3000 var/nometeors = 1 required_players = 0 @@ -17,8 +15,6 @@ /datum/game_mode/meteor/post_setup() - spawn (rand(waittime_l, waittime_h)) - send_intercept() spawn(initialmeteordelay) nometeors = 0 ..() diff --git a/code/game/gamemodes/nuclear/nuclear.dm b/code/game/gamemodes/nuclear/nuclear.dm index 1848a8e6a0f..a2658d13c88 100644 --- a/code/game/gamemodes/nuclear/nuclear.dm +++ b/code/game/gamemodes/nuclear/nuclear.dm @@ -16,8 +16,6 @@ proc/issyndicate(mob/living/M as mob) uplink_uses = 120 var/const/agents_possible = 5 //If we ever need more syndicate agents. - var/const/waittime_l = 600 //lower bound on time before intercept arrives (in tenths of seconds) - var/const/waittime_h = 1800 //upper bound on time before intercept arrives (in tenths of seconds) var/nukes_left = 1 // Call 3714-PRAY right now and order more nukes! Limited offer! var/nuke_off_station = 0 //Used for tracking if the syndies actually haul the nuke to the station @@ -160,8 +158,6 @@ proc/issyndicate(mob/living/M as mob) var/obj/machinery/nuclearbomb/syndicate/the_bomb = new /obj/machinery/nuclearbomb/syndicate(nuke_spawn.loc) the_bomb.r_code = nuke_code - spawn (rand(waittime_l, waittime_h)) - send_intercept() return ..() /datum/game_mode/proc/create_syndicate(var/datum/mind/synd_mind) // So we don't have inferior species as ops - randomize a human diff --git a/code/game/gamemodes/revolution/anti_revolution.dm b/code/game/gamemodes/revolution/anti_revolution.dm deleted file mode 100644 index d656ccffc73..00000000000 --- a/code/game/gamemodes/revolution/anti_revolution.dm +++ /dev/null @@ -1,222 +0,0 @@ -// A sort of anti-revolution where the heads are given objectives to mess with the crew - -/datum/game_mode/anti_revolution - name = "anti-revolution" - config_tag = "anti-revolution" - required_players = 5 - - var/finished = 0 - var/checkwin_counter = 0 - var/const/waittime_l = 600 //lower bound on time before intercept arrives (in tenths of seconds) - var/const/waittime_h = 1800 //upper bound on time before intercept arrives (in tenths of seconds) - - var/required_execute_targets = 1 - var/required_brig_targets = 0 - - var/recommended_execute_targets = 1 - var/recommended_brig_targets = 3 - var/recommended_demote_targets = 3 - - var/list/datum/mind/heads = list() - var/list/datum/mind/execute_targets = list() - var/list/datum/mind/brig_targets = list() - var/list/datum/mind/demote_targets = list() - -/////////////////////////// -//Announces the game type// -/////////////////////////// -/datum/game_mode/anti_revolution/announce() - world << "The current game mode is - Anti-Revolution!" - world << "Looks like CentComm has given a few new orders.." - -/////////////////////////////////////////////////////////////////////////////// -//Gets the round setup, cancelling if there's not enough players at the start// -/////////////////////////////////////////////////////////////////////////////// -/datum/game_mode/anti_revolution/pre_setup() - for(var/mob/new_player/player in world) if(player.mind) - if(player.mind.assigned_role in command_positions) - heads += player.mind - else - if(execute_targets.len < recommended_execute_targets) - execute_targets += player.mind - else if(brig_targets.len < recommended_brig_targets) - brig_targets += player.mind - else if(demote_targets.len < recommended_demote_targets) - demote_targets += player.mind - - - if(heads.len==0) - return 0 - - if(execute_targets.len < required_execute_targets || brig_targets.len < required_brig_targets) - return 0 - - return 1 - - -/datum/game_mode/anti_revolution/proc/add_head_objectives(datum/mind/head) - for(var/datum/mind/target in execute_targets) - var/datum/objective/anti_revolution/execute/obj = new - obj.owner = head - obj.target = target - obj.explanation_text = "[target.current.real_name], the [target.assigned_role] has extracted confidential information above their clearance. Execute them." - head.objectives += obj - for(var/datum/mind/target in brig_targets) - var/datum/objective/anti_revolution/brig/obj = new - obj.owner = head - obj.target = target - obj.explanation_text = "Brig [target.current.real_name], the [target.assigned_role] for 20 minutes to set an example." - head.objectives += obj - for(var/datum/mind/target in demote_targets) - var/datum/objective/anti_revolution/demote/obj = new - obj.owner = head - obj.target = target - obj.explanation_text = "[target.current.real_name], the [target.assigned_role] has been classified as harmful to Nanotrasen's goals. Demote them to assistant." - head.objectives += obj - - -/datum/game_mode/anti_revolution/post_setup() - - for(var/datum/mind/head_mind in heads) - add_head_objectives(head_mind) - for(var/datum/mind/head_mind in heads) - greet_head(head_mind) - modePlayer += heads - spawn (rand(waittime_l, waittime_h)) - send_intercept() - ..() - - -/datum/game_mode/anti_revolution/process() - checkwin_counter++ - if(checkwin_counter >= 5) - if(!finished) - ticker.mode.check_win() - checkwin_counter = 0 - return 0 - - -/datum/game_mode/proc/greet_head(var/datum/mind/head_mind, var/you_are=1) - var/obj_count = 1 - if (you_are) - head_mind.current << "\blue It looks like this shift CentComm has some special orders for you.. check your objectives." - head_mind.current << "\blue Note that you can ignore these objectives, but resisting NT's orders probably means demotion or worse." - for(var/datum/objective/objective in head_mind.objectives) - head_mind.current << "Objective #[obj_count]: [objective.explanation_text]" - head_mind.special_role = "Corrupt Head" - obj_count++ - - head_mind.current.verbs += /mob/proc/ResignFromHeadPosition - -////////////////////////////////////// -//Checks if the revs have won or not// -////////////////////////////////////// -/datum/game_mode/anti_revolution/check_win() - if(check_head_victory()) - finished = 1 - else if(check_crew_victory()) - finished = 2 - return - -/////////////////////////////// -//Checks if the round is over// -/////////////////////////////// -/datum/game_mode/anti_revolution/check_finished() - if(finished != 0) - return 1 - else - return 0 - - -////////////////////////// -//Checks for crew victory// -////////////////////////// -/datum/game_mode/anti_revolution/proc/check_crew_victory() - for(var/datum/mind/head_mind in heads) - var/turf/T = get_turf(head_mind.current) - if((head_mind) && (head_mind.current) && (head_mind.current.stat != 2) && T && (T.z in config.station_levels) && !head_mind.is_brigged(600)) - if(ishuman(head_mind.current)) - return 0 - return 1 - -///////////////////////////// -//Checks for a head victory// -///////////////////////////// -/datum/game_mode/anti_revolution/proc/check_head_victory() - for(var/datum/mind/head_mind in heads) - for(var/datum/objective/objective in head_mind.objectives) - if(!(objective.check_completion())) - return 0 - - return 1 - - -/datum/game_mode/anti_revolution/declare_completion() - - var/text = "" - if(finished == 2) - world << "\red The heads of staff were relieved of their posts! The crew wins!" - else if(finished == 1) - world << "\red The heads of staff managed to meet the goals set for them by CentComm!" - - - - world << "The heads of staff were: " - var/list/heads = list() - heads = get_all_heads() - for(var/datum/mind/head_mind in heads) - text = "" - if(head_mind.current) - text += "[head_mind.current.real_name]" - if(head_mind.current.stat == 2) - text += " (Dead)" - else - text += " (Survived!)" - else - text += "[head_mind.key] (character destroyed)" - - world << text - - - world << "Their objectives were: " - for(var/datum/mind/head_mind in heads) - if(head_mind.objectives.len)//If the traitor had no objectives, don't need to process this. - var/count = 1 - for(var/datum/objective/objective in head_mind.objectives) - if(objective.check_completion()) - text += "
Objective #[count]: [objective.explanation_text] Success!" - feedback_add_details("head_objective","[objective.type]|SUCCESS") - else - text += "
Objective #[count]: [objective.explanation_text] Fail." - feedback_add_details("head_objective","[objective.type]|FAIL") - count++ - break // just print once - return 1 - - -/datum/game_mode/anti_revolution/latespawn(mob/living/carbon/human/character) - ..() - if(emergency_shuttle.departed) - return - - if(character.mind.assigned_role in command_positions) - heads += character.mind - modePlayer += character.mind - add_head_objectives(character.mind) - greet_head(character.mind) - -/mob/proc/ResignFromHeadPosition() - set category = "IC" - set name = "Resign From Head Position" - - if(!istype(ticker.mode, /datum/game_mode/anti_revolution)) - return - - ticker.mode:heads -= src.mind - src.mind.objectives = list() - ticker.mode.modePlayer -= src.mind - src.mind.special_role = null - - src.verbs -= /mob/proc/ResignFromHeadPosition - - src << "\red You resigned from your position, now you have the consequences." \ No newline at end of file diff --git a/code/game/gamemodes/revolution/revolution.dm b/code/game/gamemodes/revolution/revolution.dm index 931032eac22..82ff00fdfea 100644 --- a/code/game/gamemodes/revolution/revolution.dm +++ b/code/game/gamemodes/revolution/revolution.dm @@ -29,8 +29,6 @@ var/finished = 0 var/checkwin_counter = 0 var/max_headrevs = 3 - var/const/waittime_l = 600 //lower bound on time before intercept arrives (in tenths of seconds) - var/const/waittime_h = 1800 //upper bound on time before intercept arrives (in tenths of seconds) /////////////////////////// //Announces the game type// /////////////////////////// @@ -87,8 +85,6 @@ modePlayer += head_revolutionaries if(emergency_shuttle) emergency_shuttle.no_escape = 1 - spawn (rand(waittime_l, waittime_h)) - send_intercept() ..() diff --git a/code/game/gamemodes/revolution/rp-revolution.dm b/code/game/gamemodes/revolution/rp-revolution.dm deleted file mode 100644 index b0c58fd8c5f..00000000000 --- a/code/game/gamemodes/revolution/rp-revolution.dm +++ /dev/null @@ -1,307 +0,0 @@ -// To add a rev to the list of revolutionaries, make sure it's rev (with if(ticker.mode.name == "revolution)), -// then call ticker.mode:add_revolutionary(_THE_PLAYERS_MIND_) -// nothing else needs to be done, as that proc will check if they are a valid target. -// Just make sure the converter is a head before you call it! -// To remove a rev (from brainwashing or w/e), call ticker.mode:remove_revolutionary(_THE_PLAYERS_MIND_), -// this will also check they're not a head, so it can just be called freely -// If the rev icons start going wrong for some reason, ticker.mode:update_all_rev_icons() can be called to correct them. -// If the game somtimes isn't registering a win properly, then ticker.mode.check_win() isn't being called somewhere. -#define RPREV_REQUIRE_REVS_ALIVE 0 -#define RPREV_REQUIRE_HEADS_ALIVE 0 - -/datum/game_mode/rp_revolution - name = "rp-revolution" - config_tag = "rp-revolution" - - var/finished = 0 - var/const/waittime_l = 600 //lower bound on time before intercept arrives (in tenths of seconds) - var/const/waittime_h = 1800 //upper bound on time before intercept arrives (in tenths of seconds) - var/all_brigged = 0 - var/brigged_time = 0 - - uplink_welcome = "Syndicate Uplink Console:" - uplink_uses = 10 - - -/datum/game_mode/rp_revolution/announce() - world << "The current game mode is - Revolution RP!" - -/datum/game_mode/rp_revolution/send_intercept() - var/intercepttext = "Cent. Com. Update Requested staus information:
" - intercepttext += " Cent. Com has recently been contacted by the following syndicate affiliated organisations in your area, please investigate any information you may have:" - - var/list/possible_modes = list() - possible_modes.Add("revolution", "wizard", "traitor", "malf") - var/number = pick(2, 3) - var/i = 0 - for(i = 0, i < number, i++) - possible_modes.Remove(pick(possible_modes)) - possible_modes.Insert(rand(possible_modes.len), "nuke") - - var/datum/intercept_text/i_text = new /datum/intercept_text - for(var/A in possible_modes) - intercepttext += i_text.build(A, pick(head_revolutionaries)) - - for (var/obj/machinery/computer/communications/comm in world) - if (!(comm.stat & (BROKEN | NOPOWER)) && comm.prints_intercept) - var/obj/item/weapon/paper/intercept = new /obj/item/weapon/paper( comm.loc ) - intercept.name = "paper - 'Cent. Com. Status Summary'" - intercept.info = intercepttext - - comm.messagetitle.Add("Cent. Com. Status Summary") - comm.messagetext.Add(intercepttext) - - command_alert("Summary downloaded and printed out at all communications consoles.", "Enemy communication intercept. Security Level Elevated.") - -/datum/game_mode/rp_revolution/post_setup() - - var/list/revs_possible = list() - revs_possible = get_possible_revolutionaries() - var/list/heads = list() - heads = get_living_heads() - var/rev_number = 0 - - if(!revs_possible || !heads) - world << " \red Not enough players for RP revolution game mode. Restarting world in 5 seconds." - sleep(50) - world.Reboot() - return - - if(revs_possible.len >= 3) - rev_number = 3 - else - rev_number = revs_possible.len - - while(rev_number > 0) - head_revolutionaries += pick(revs_possible - head_revolutionaries) - rev_number-- - - for(var/datum/mind/rev_mind in head_revolutionaries) - for(var/datum/mind/head_mind in heads) - var/datum/objective/capture/rev_obj = new - rev_obj.owner = rev_mind - rev_obj.find_target_by_role(head_mind.assigned_role) - rev_mind.objectives += rev_obj - equip_revolutionary(rev_mind.current) - rev_mind.current.verbs += /mob/living/carbon/human/proc/RevConvert - update_rev_icons_added(rev_mind) - - for(var/datum/mind/rev_mind in head_revolutionaries) - var/obj_count = 1 - rev_mind.current << "\blue You are a member of the revolutionaries' leadership!" - for(var/datum/objective/objective in rev_mind.objectives) - rev_mind.current << "Objective #[obj_count]: [objective.explanation_text]" - obj_count++ - - spawn (rand(waittime_l, waittime_h)) - send_intercept() - -/datum/game_mode/rp_revolution/send_intercept() - var/intercepttext = "Cent. Com. Update Requested staus information:
" - intercepttext += " Cent. Com has recently been contacted by the following syndicate affiliated organisations in your area, please investigate any information you may have:" - - var/list/possible_modes = list() - possible_modes.Add("revolution", "wizard", "nuke", "traitor", "malf") - possible_modes -= "[ticker.mode]" - var/number = pick(2, 3) - var/i = 0 - for(i = 0, i < number, i++) - possible_modes.Remove(pick(possible_modes)) - possible_modes.Insert(rand(possible_modes.len), "[ticker.mode]") - - var/datum/intercept_text/i_text = new /datum/intercept_text - for(var/A in possible_modes) - intercepttext += i_text.build(A, pick(head_revolutionaries)) - - for (var/obj/machinery/computer/communications/comm in world) - if (!(comm.stat & (BROKEN | NOPOWER)) && comm.prints_intercept) - var/obj/item/weapon/paper/intercept = new /obj/item/weapon/paper( comm.loc ) - intercept.name = "paper - 'Cent. Com. Status Summary'" - intercept.info = intercepttext - - comm.messagetitle.Add("Cent. Com. Status Summary") - comm.messagetext.Add(intercepttext) - - command_alert("Summary downloaded and printed out at all communications consoles.", "Enemy communication intercept. Security Level Elevated.") - - spawn(54000) - command_alert("Summary downloaded and printed out at all communications consoles.", "The revolution leaders have been determined.") - intercepttext = "Cent. Com. Update Requested status information:
" - intercepttext += "We have determined the revolution leaders to be:" - for(var/datum/mind/revmind in head_revolutionaries) - intercepttext += "
[revmind.current.real_name]" - intercepttext += "
Please arrest them at once." - for (var/obj/machinery/computer/communications/comm in world) - if (!(comm.stat & (BROKEN | NOPOWER)) && comm.prints_intercept) - var/obj/item/weapon/paper/intercept = new /obj/item/weapon/paper( comm.loc ) - intercept.name = "paper - 'Cent. Com. Status Summary'" - intercept.info = intercepttext - - comm.messagetitle.Add("Cent. Com. Status Summary") - comm.messagetext.Add(intercepttext) - spawn(12000) - command_alert("Repeating the previous message over intercoms due to urgency. The station has enemy operatives onboard by the names of [reveal_rev_heads()], please arrest them at once.", "The revolution leaders have been determined.") - - -/datum/game_mode/rp_revolution/proc/reveal_rev_heads() - . = "" - for(var/i = 1, i <= head_revolutionaries.len,i++) - var/datum/mind/revmind = head_revolutionaries[i] - if(i < head_revolutionaries.len) - . += "[revmind.current.real_name]," - else - . += "and [revmind.current.real_name]" - -///datum/game_mode/rp_revolution/proc/equip_revolutionary(mob/living/carbon/human/rev_mob) -// if(!istype(rev_mob)) -// return - -// spawn (100) -// if (rev_mob.r_store) -// rev_mob.equip_or_collect(new /obj/item/weapon/paper/communist_manifesto(rev_mob), rev_mob.slot_l_store) -// if (rev_mob.l_store) -// rev_mob.equip_or_collect(new /obj/item/weapon/paper/communist_manifesto(rev_mob), rev_mob.slot_r_store) - - -/datum/game_mode/rp_revolution/check_win() - if(check_rev_victory()) - finished = 1 - else if(check_heads_victory()) - finished = 2 - return - -/datum/game_mode/rp_revolution/check_finished() - if(finished != 0) - return 1 - else - return 0 - -/datum/game_mode/rp_revolution/proc/get_possible_revolutionaries() - var/list/candidates = list() - - for(var/mob/living/carbon/human/player in world) - if(player.client) - if(player.client.be_syndicate & BE_REV) - candidates += player.mind - - if(candidates.len < 1) - for(var/mob/living/carbon/human/player in world) - if(player.client) - candidates += player.mind - - var/list/uncons = get_unconvertables() - for(var/datum/mind/mind in uncons) - candidates -= mind - - if(candidates.len < 1) - return null - else - return candidates - -/datum/game_mode/rp_revolution/proc/get_unconvertables() - var/list/ucs = list() - for(var/mob/living/carbon/human/player in world) - if(player.mind) - var/role = player.mind.assigned_role - if(role in list("Captain", "Head of Security", "Head of Personnel", "Chief Engineer", "Research Director", "Security Officer", "Forensic Technician", "AI")) - ucs += player.mind - - return ucs - -/datum/game_mode/rp_revolution/proc/check_rev_victory() - for(var/datum/mind/rev_mind in head_revolutionaries) - for(var/datum/objective/objective in rev_mind.objectives) - if(!(objective.check_completion())) - return 0 - - return 1 - -/datum/game_mode/rp_revolution/proc/check_heads_victory() - for(var/datum/mind/rev_mind in head_revolutionaries) - if(rev_mind.current.stat != 2) - var/turf/revloc = rev_mind.current.loc - if(!istype(revloc.loc,/area/security/brig) && !rev_mind.current.handcuffed) - return 0 - else if(RPREV_REQUIRE_REVS_ALIVE) return 0 - return 1 - -/datum/game_mode/rp_revolution/declare_completion() - - var/text = "" - if(finished == 1) - world << "\red The heads of staff were relieved of their posts! The revolutionaries win!" - else if(finished == 2) - world << "\red The heads of staff managed to stop the revolution!" - - world << "The head revolutionaries were: " - for(var/datum/mind/rev_mind in head_revolutionaries) - text = "" - if(rev_mind.current) - text += "[rev_mind.current.real_name]" - if(rev_mind.current.stat == 2) - text += " (Dead)" - else - text += " (Survived!)" - else - text += "[rev_mind.key] (character destroyed)" - - world << text - - text = "" - world << "The converted revolutionaries were: " - for(var/datum/mind/rev_nh_mind in revolutionaries) - if(rev_nh_mind.current) - text += "[rev_nh_mind.current.real_name]" - if(rev_nh_mind.current.stat == 2) - text += " (Dead)" - else - text += " (Survived!)" - else - text += "[rev_nh_mind.key] (character destroyed)" - text += ", " - - world << text - - world << "The heads of staff were: " - var/list/heads = list() - heads = get_all_heads() - for(var/datum/mind/head_mind in heads) - text = "" - if(head_mind.current) - text += "[head_mind.current.real_name]" - if(head_mind.current.stat == 2) - text += " (Dead)" - else - text += " (Survived!)" - else - text += "[head_mind.key] (character destroyed)" - - world << text - return 1 - - - -mob/living/carbon/human/proc - RevConvert(mob/M as mob in oview(src)) - set name = "Rev-Convert" - if(((src.mind in ticker.mode:head_revolutionaries) || (src.mind in ticker.mode:revolutionaries))) - if((M.mind in ticker.mode:head_revolutionaries) || (M.mind in ticker.mode:revolutionaries)) - src << "\red [M] is already be a revolutionary!" - else if(src.mind in ticker.mode:get_unconvertables()) - src << "\red [M] cannot be a revolutionary!" - else - if(world.time < M.mind.rev_cooldown) - src << "\red Wait five seconds before reconversion attempt." - return - src << "\red Attempting to convert [M]..." - log_admin("[key_name(src)] attempted to convert [M].") - message_admins("\red [key_name_admin(src)] attempted to convert [M].") - var/choice = alert(M,"Asked by [src]: Do you want to join the revolution?","Align Thyself with the Revolution!","No!","Yes!") - if(choice == "Yes!") - ticker.mode:add_revolutionary(M.mind) - M << "\blue You join the revolution!" - src << "\blue [M] joins the revolution!" - else if(choice == "No!") - M << "\red You reject this traitorous cause!" - src << "\red [M] does not support the revolution!" - M.mind.rev_cooldown = world.time+50 diff --git a/code/game/gamemodes/revolution/rp_revolution.dm b/code/game/gamemodes/revolution/rp_revolution.dm index 2bd8e2100d1..8e7759233f4 100644 --- a/code/game/gamemodes/revolution/rp_revolution.dm +++ b/code/game/gamemodes/revolution/rp_revolution.dm @@ -69,8 +69,7 @@ rev_mind.current.verbs += /mob/living/carbon/human/proc/RevConvert modePlayer += head_revolutionaries - spawn (rand(waittime_l, waittime_h)) - send_intercept() + /datum/game_mode/revolution/rp_revolution/greet_revolutionary(var/datum/mind/rev_mind, var/you_are=1) var/obj_count = 1 diff --git a/code/game/gamemodes/shadowling/shadowling.dm b/code/game/gamemodes/shadowling/shadowling.dm index 05d778c8b5a..4cdeec3edf0 100644 --- a/code/game/gamemodes/shadowling/shadowling.dm +++ b/code/game/gamemodes/shadowling/shadowling.dm @@ -70,9 +70,6 @@ Made by Xhuis restricted_jobs = list("AI", "Cyborg") protected_jobs = list("Security Officer", "Warden", "Detective", "Head of Security", "Captain", "Blueshield", "Nanotrasen Representative", "Security Pod Pilot", "Magistrate", "Brig Physician", "Internal Affairs Agent") - var/const/waittime_l = 600 //lower bound on time before intercept arrives (in tenths of seconds) - var/const/waittime_h = 1800 //upper bound on time before intercept arrives (in tenths of seconds) - /datum/game_mode/shadowling/announce() world << "The current game mode is - Shadowling!" world << "There are alien shadowlings on the station. Crew: Kill the shadowlings before they can eat or enthrall the crew. Shadowlings: Enthrall the crew while remaining in hiding." @@ -109,10 +106,7 @@ Made by Xhuis finalize_shadowling(shadow) process_shadow_objectives(shadow) //give_shadowling_abilities(shadow) - spawn (rand(waittime_l, waittime_h)) - send_intercept() ..() - return /datum/game_mode/proc/greet_shadow(var/datum/mind/shadow) shadow.current << "Currently, you are disguised as an employee aboard [world.name]." diff --git a/code/game/gamemodes/traitor/traitor.dm b/code/game/gamemodes/traitor/traitor.dm index 605b3e062e3..59b4f710c6a 100644 --- a/code/game/gamemodes/traitor/traitor.dm +++ b/code/game/gamemodes/traitor/traitor.dm @@ -20,9 +20,6 @@ uplink_welcome = "Syndicate Uplink Console:" uplink_uses = 20 - var/const/waittime_l = 600 //lower bound on time before intercept arrives (in tenths of seconds) - var/const/waittime_h = 1800 //upper bound on time before intercept arrives (in tenths of seconds) - var/traitors_possible = 4 //hard limit on traitors if scaling is turned off var/const/traitor_scaling_coeff = 5.0 //how much does the amount of players get divided by to determine traitors @@ -71,10 +68,7 @@ finalize_traitor(traitor) greet_traitor(traitor) modePlayer += traitors - spawn (rand(waittime_l, waittime_h)) - send_intercept() ..() - return 1 /datum/game_mode/proc/forge_traitor_objectives(var/datum/mind/traitor) diff --git a/code/game/gamemodes/vampire/vampire.dm b/code/game/gamemodes/vampire/vampire.dm index 13507d847cb..122e99e520f 100644 --- a/code/game/gamemodes/vampire/vampire.dm +++ b/code/game/gamemodes/vampire/vampire.dm @@ -35,9 +35,6 @@ var/const/prob_right_objective_l = 25 //lower bound on probability of determining the objective correctly var/const/prob_right_objective_h = 50 //upper bound on probability of determining the objective correctly - var/const/waittime_l = 600 //lower bound on time before intercept arrives (in tenths of seconds) - var/const/waittime_h = 1800 //upper bound on time before intercept arrives (in tenths of seconds) - var/vampire_amount = 4 @@ -73,10 +70,7 @@ forge_vampire_objectives(vampire) greet_vampire(vampire) - spawn (rand(waittime_l, waittime_h)) - send_intercept() ..() - return /datum/game_mode/proc/auto_declare_completion_vampire() if(vampires.len) diff --git a/code/game/gamemodes/wizard/wizard.dm b/code/game/gamemodes/wizard/wizard.dm index 7924fcd1bf3..25cddf67b4f 100644 --- a/code/game/gamemodes/wizard/wizard.dm +++ b/code/game/gamemodes/wizard/wizard.dm @@ -14,9 +14,6 @@ var/finished = 0 - var/const/waittime_l = 600 //lower bound on time before intercept arrives (in tenths of seconds) - var/const/waittime_h = 1800 //upper bound on time before intercept arrives (in tenths of seconds) - /datum/game_mode/wizard/announce() world << "The current game mode is - Wizard!" world << "There is a \red SPACE WIZARD\black on the station. You can't let him achieve his objective!" @@ -56,10 +53,7 @@ name_wizard(wizard.current) greet_wizard(wizard) - spawn (rand(waittime_l, waittime_h)) - send_intercept() ..() - return /datum/game_mode/proc/forge_wizard_objectives(var/datum/mind/wizard) @@ -69,7 +63,7 @@ kill_objective.owner = wizard kill_objective.find_target() wizard.objectives += kill_objective - + var/datum/objective/steal/steal_objective = new steal_objective.owner = wizard steal_objective.find_target() @@ -111,7 +105,7 @@ steal_objective.owner = wizard steal_objective.find_target() wizard.objectives += steal_objective - + if (!(locate(/datum/objective/hijack) in wizard.objectives)) var/datum/objective/hijack/hijack_objective = new hijack_objective.owner = wizard @@ -184,7 +178,7 @@ wizard_mob.equip_to_slot_or_del(new /obj/item/weapon/spellbook(wizard_mob), slot_r_hand) wizard_mob.faction = list("wizard") - + wizard_mob.species.equip(wizard_mob) wizard_mob << "You will find a list of available spells in your spell book. Choose your magic arsenal carefully." diff --git a/code/game/gamemodes/xenos/xenos.dm b/code/game/gamemodes/xenos/xenos.dm index 91bdefd0639..7452bf21787 100644 --- a/code/game/gamemodes/xenos/xenos.dm +++ b/code/game/gamemodes/xenos/xenos.dm @@ -15,9 +15,6 @@ var/xenos_list = list() var/gammacalled = 0 - var/const/waittime_l = 600 //lower bound on time before intercept arrives (in tenths of seconds) - var/const/waittime_h = 1800 //upper bound on time before intercept arrives (in tenths of seconds) - var/gammaratio = 4 //At what alien to human ratio will the Gamma security level be called and the nuke be made available? /datum/game_mode/xenos/announce() @@ -97,9 +94,6 @@ //qdel(xeno_mind) spawnpos++ - spawn (rand(waittime_l, waittime_h)) - send_intercept() - return ..() /datum/game_mode/xenos/process()