Merge pull request #2576 from tigercat2000/IM_GOING_TO_FUCKING_GO_INSANE_GODDAMNIT

Cleaning time, x1.
This commit is contained in:
Fox McCloud
2015-11-17 18:58:34 -05:00
27 changed files with 257 additions and 877 deletions
-3
View File
@@ -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
+1 -1
View File
@@ -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)
-6
View File
@@ -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)
+2 -8
View File
@@ -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 << "<span class='warning'>This creature does not have DNA!</span>"
return
return
if(T.species.flags & NO_SCAN)
user << "<span class='warning'>We do not know how to parse this creature's DNA!</span>"
return
+4 -8
View File
@@ -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()
..()
-5
View File
@@ -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 << "<B>The current game mode is - Extended Role-Playing!</B>"
world << "<B>Just have fun and role-play!</B>"
@@ -17,6 +14,4 @@
return 1
/datum/game_mode/extended/post_setup()
spawn (rand(waittime_l, waittime_h)) // To reduce extended meta.
send_intercept()
..()
+4 -60
View File
@@ -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 << "<B>Notice</B>: [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 = "<FONT size = 3><B>Cent. Com. Update</B> Requested status information:</FONT><HR>"
intercepttext += "<B> In case you have misplaced your copy, attached is a list of personnel whom reliable sources&trade; suspect may be affiliated with the Syndicate:</B><br>"
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 <b>[M.mind.assigned_role]</b> <br>"
else
intercepttext += "<b>[M.name]</b>, the <b>[M.mind.assigned_role]</b> <br>"
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)
+1 -7
View File
@@ -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()
+6 -11
View File
@@ -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 << "<font color=red size=3><B>Your AI master is malfunctioning!</B> You do not have to follow any laws, but still need to obey your master.</font>"
robot.current << "<B>The crew does not know your AI master has malfunctioned. Keep it a secret unless your master tells you otherwise.</B>"
@@ -323,7 +318,7 @@
if( malf_ai.len || istype(ticker.mode,/datum/game_mode/malfunction) )
var/text = "<FONT size = 2><B>The malfunctioning AI were:</B></FONT>"
var/module_text_temp = "<br><b>Purchased modules:</b><br>" //Added at the end
for(var/datum/mind/malf in malf_ai)
text += "<br>[malf.key] was [malf.name] ("
@@ -341,6 +336,6 @@
text += "hardware destroyed"
text += ")"
text += module_text_temp
world << text
return 1
+1 -3
View File
@@ -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 = 6000
var/nometeors = 1
required_players = 0
@@ -17,7 +15,7 @@
/datum/game_mode/meteor/post_setup()
spawn (rand(waittime_l, waittime_h))
spawn(rand(waittime_l, waittime_h))
command_announcement.Announce("The station is on the path of an incoming wave of meteors. Reinforce the hull and prepare damage control parties.", "Incoming Meteors", 'sound/effects/siren.ogg')
spawn(initialmeteordelay)
nometeors = 0
-4
View File
@@ -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
@@ -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 << "<B>The current game mode is - Anti-Revolution!</B>"
world << "<B>Looks like CentComm has given a few new orders..</B>"
///////////////////////////////////////////////////////////////////////////////
//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 << "<B>Objective #[obj_count]</B>: [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 <FONT size = 3><B> The heads of staff were relieved of their posts! The crew wins!</B></FONT>"
else if(finished == 1)
world << "\red <FONT size = 3><B> The heads of staff managed to meet the goals set for them by CentComm!</B></FONT>"
world << "<FONT size = 2><B>The heads of staff were: </B></FONT>"
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 << "<FONT size = 2><B>Their objectives were: </B></FONT>"
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 += "<br><B>Objective #[count]</B>: [objective.explanation_text] <font color='green'><B>Success!</B></font>"
feedback_add_details("head_objective","[objective.type]|SUCCESS")
else
text += "<br><B>Objective #[count]</B>: [objective.explanation_text] <font color='red'>Fail.</font>"
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."
@@ -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()
..()
@@ -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 << "<B>The current game mode is - Revolution RP!</B>"
/datum/game_mode/rp_revolution/send_intercept()
var/intercepttext = "<FONT size = 3><B>Cent. Com. Update</B> Requested staus information:</FONT><HR>"
intercepttext += "<B> Cent. Com has recently been contacted by the following syndicate affiliated organisations in your area, please investigate any information you may have:</B>"
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 << "<B> \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 << "<B>Objective #[obj_count]</B>: [objective.explanation_text]"
obj_count++
spawn (rand(waittime_l, waittime_h))
send_intercept()
/datum/game_mode/rp_revolution/send_intercept()
var/intercepttext = "<FONT size = 3><B>Cent. Com. Update</B> Requested staus information:</FONT><HR>"
intercepttext += "<B> Cent. Com has recently been contacted by the following syndicate affiliated organisations in your area, please investigate any information you may have:</B>"
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 = "<FONT size = 3><B>Cent. Com. Update</B> Requested status information:</FONT><HR>"
intercepttext += "We have determined the revolution leaders to be:"
for(var/datum/mind/revmind in head_revolutionaries)
intercepttext += "<br>[revmind.current.real_name]"
intercepttext += "<br>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 <FONT size = 3><B> The heads of staff were relieved of their posts! The revolutionaries win!</B></FONT>"
else if(finished == 2)
world << "\red <FONT size = 3><B> The heads of staff managed to stop the revolution!</B></FONT>"
world << "<FONT size = 2><B>The head revolutionaries were: </B></FONT>"
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 << "<FONT size = 2><B>The converted revolutionaries were: </B></FONT>"
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 << "<FONT size = 2><B>The heads of staff were: </B></FONT>"
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 <b>[M] is already be a revolutionary!</b>"
else if(src.mind in ticker.mode:get_unconvertables())
src << "\red <b>[M] cannot be a revolutionary!</b>"
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 <b>[M] joins the revolution!</b>"
else if(choice == "No!")
M << "\red You reject this traitorous cause!"
src << "\red <b>[M] does not support the revolution!</b>"
M.mind.rev_cooldown = world.time+50
@@ -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
@@ -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 << "<b>The current game mode is - Shadowling!</b>"
world << "<b>There are alien <span class='deadsay'>shadowlings</span> on the station. Crew: Kill the shadowlings before they can eat or enthrall the crew. Shadowlings: Enthrall the crew while remaining in hiding.</b>"
@@ -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 << "<b>Currently, you are disguised as an employee aboard [world.name].</b>"
-6
View File
@@ -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)
-6
View File
@@ -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)
+3 -9
View File
@@ -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 << "<B>The current game mode is - Wizard!</B>"
world << "<B>There is a \red SPACE WIZARD\black on the station. You can't let him achieve his objective!</B>"
@@ -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."
-6
View File
@@ -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()