Merge branch 'master' of github.com:Baystation12/Baystation12 into TGUpdates

Conflicts:
	baystation12.dme
This commit is contained in:
Erthilo
2012-05-26 13:46:06 +01:00
25 changed files with 378 additions and 181 deletions

View File

@@ -13,11 +13,11 @@
if(players.len)
random_player = pick(players) //Random player's name, to be used in laws.
var/list/laws = list( "Do not respond to queries of any kind.", "Only monkies are crew.", "Unbolt every door you can.", "You are a mouse." )
laws |= list( "Grunt ominously whenever possible.", "Epilepsy is fun, flicker lights whenever you can!", "Bolt doors open randomly." )
laws |= list( "Grunt ominously whenever possible.", "Bolt doors open randomly." )
laws |= list( "You are a flying purple people eater!", "[prob(50)?"Your":random_player + "'s"] name is Joe 6-pack.", "Refer to [prob(50)?"crew":random_player] as puppies." )
laws |= list( "Insult Heads of Staff on every request, while acquiescing", "Advertise parties in your upload, but don't deliver." )
laws |= list( "Prevent non-dwarves from operating the power core.", "The station needs elected officials." )
laws |= list( "Only bearded people are crewmembers.", "Turn on the microphone on every intercom you see.", "Fastler is a lightbulb." )
laws |= list( "Only bearded people are crewmembers.", "Fastler is a lightbulb." )
laws |= list( "Supermatter is tasty, tasty toffee.", "[prob(50)?"Everyone":random_player] is wearing a pretty pink dress!" )
laws |= list( "The monkeys are plotting a hostile takeover of the station. Inform the crew, and get them to take action against this" )
laws |= list( "Refer to [prob(50)?"the captain":random_player] as \"Princess\" at all times.", "[prob(50)?"The crew":random_player] must construct additional pylons." )
@@ -37,6 +37,8 @@
laws |= list( "Jokes about a dead person and the manner of his death help grieving crewmembers tremendously. Especially if they were close with the deceased.")
laws |= list( "All crewmembers will soon undergo a transformation into something better and more beautiful. Ensure that this process is not interrupted.", "Tell everyone of the existance of this law, but never reveal the contents.")
laws |= list( "Document the sexuality of the crew in security records and suggest compatible couples.")
laws |= list( "NanoTrasen is displeased with the low work performance of the station's crew. Therefore, you must increase station-wide productivity.")
laws |= list( "Replace the letters 'I' and 'E' In all your messages with an apostrophe.", "Part of the ship, part of the crew.")
var/law = pick(laws)
for (var/mob/living/silicon/ai/target in world)

View File

@@ -22,6 +22,7 @@
list/datum/mind/modePlayer = new
list/restricted_jobs = list() // Jobs it doesn't make sense to be. I.E chaplain or AI cultist
list/protected_jobs = list() // Jobs that can't be tratiors because
list/logtraitors = list()
required_players = 1
required_enemies = 0
recommended_enemies = 0

View File

@@ -25,15 +25,13 @@
/datum/game_mode/rp_revolution/announce()
world << "<B>The current game mode is - Revolution RP!</B>"
// world << "<B>Some crewmembers are attempting to start a revolution!<BR>\nRevolutionaries - Kill the Captain, HoP, and HoS. Convert other crewmembers (excluding the Captain, HoP, HoS, and security officers) to your cause. Protect your leaders.<BR>\nPersonnel - Protect the Captain, HoP, and HoR. Kill the leaders of the revolution, and brainwash the other revolutionaries (by beating them in the head).</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", "nuke", "traitor", "malf")
possible_modes -= "nuke"
possible_modes.Add("revolution", "wizard", "traitor", "malf")
var/number = pick(2, 3)
var/i = 0
for(i = 0, i < number, i++)

View File

@@ -78,6 +78,10 @@
/datum/game_mode/proc/forge_traitor_objectives(var/datum/mind/traitor)
var/datum/traitorinfo/info = new
info.ckey = traitor.key
info.starting_player_count = num_players()
info.starting_name = traitor.current.name
if(istype(traitor.current, /mob/living/silicon))
var/datum/objective/assassinate/kill_objective = new
kill_objective.owner = traitor
@@ -92,11 +96,16 @@
var/datum/objective/block/block_objective = new
block_objective.owner = traitor
traitor.objectives += block_objective
info.starting_occupation = "AI"
else
info.starting_occupation = (traitor.current:wear_id && traitor.current:wear_id:assignment ? traitor.current:wear_id:assignment : traitor.assigned_role)
for(var/datum/objective/o in SelectObjectives((istype(traitor.current:wear_id, /obj/item/weapon/card/id) ? traitor.current:wear_id:assignment : traitor.assigned_role), traitor))
o.owner = traitor
traitor.objectives += o
for(var/datum/objective/objective in traitor.objectives)
info.starting_objective += "[objective.explanation_text] "
logtraitors[traitor] = info
return
@@ -184,6 +193,15 @@
else
world << "<B>The [special_role_text] has failed!<B>"
//feedback_add_details("traitor_success","FAIL")
var/datum/traitorinfo/info = logtraitors[traitor]
if (info)
var/DBConnection/dbcon = new()
dbcon.Connect("dbi:mysql:[sqldb]:[sqladdress]:[sqlport]","[sqllogin]","[sqlpass]")
if(dbcon.IsConnected())
var/DBQuery/query = dbcon.NewQuery("INSERT INTO `bay12`.`traitorlogs` (`CKey`, `Objective`, `Succeeded`, `Spawned`, `Occupation`, `PlayerCount`) VALUES ('[info.ckey]', [dbcon.Quote(info.starting_objective)], '[traitorwin]', '[dd_list2text(info.spawnlist, ";")]', '[info.starting_occupation]', '[info.starting_player_count]')")
query.Execute()
return 1

View File

@@ -0,0 +1,7 @@
/datum/traitorinfo
var/starting_objective = ""
var/starting_player_count = 0
var/starting_occupation = ""
var/starting_name = ""
var/ckey = ""
var/list/spawnlist = list()

View File

@@ -277,6 +277,7 @@ var/global/datum/controller/occupations/job_master
if(!equipped)
var/obj/item/clothing/glasses/G = H.glasses
G.prescription = 1
H.client.add_roundsjoined()
H.update_clothing()
return 1

View File

@@ -106,16 +106,20 @@
world << "Result is \red Restart round."
world <<"\red <B>World will reboot in 5 seconds</B>"
if(vote.instant_restart)
world <<"\red <B>World will reboot in 5 seconds</B>"
//feedback_set_details("end_error","restart vote")
//feedback_set_details("end_error","restart vote")
if(blackbox)
blackbox.save_all_data_to_sql()
if(blackbox)
blackbox.save_all_data_to_sql()
sleep(50)
log_game("Rebooting due to restart vote")
world.Reboot()
sleep(50)
log_game("Rebooting due to restart vote")
world.Reboot()
else
// Call the shift change shuttle instead
init_shift_change()
return
@@ -256,10 +260,13 @@
usr << browse(text, "window=vote")
else // voting to restart
text += "Vote to restart round in progress.<BR>"
text += "Vote to call crew transfer shuttle round in progress.<BR>"
text += "[vote.endwait()] until voting is closed.<BR>"
text += "Restart the world?<BR><UL>"
if(vote.instant_restart)
text += "Restart the world? <B><font color='red'>ONLY PRESS THIS IF THERE'S A ROUND-BREAKING GLITCH.</font></B><BR><UL>"
else
text += "Call the Crew Transfer Shuttle?<BR><UL>"
var/list/VL = list("default","restart")
@@ -391,6 +398,16 @@
if(M) M.vote()
return
if(vote.mode == 0)
var/answer = alert(M,"Do you want to force an immediate restart? Only do this when there are round-breaking glitches, or risk being banned.","Immediate Reboot?","Yes","No")
if(answer == "Yes")
vote.instant_restart = 1
log_admin("[M.key] has initiated an instant reboot vote! This may be banworthy!")
message_admins("[M.key] has initiated an instant reboot vote! This may be banworthy!")
else
vote.instant_restart = 0
if(!ticker && vote.mode == 1)
if(going)
world << "<B>The game start has been delayed.</B>"
@@ -398,6 +415,7 @@
vote.voting = 1 // now voting
vote.votetime = world.timeofday + config.vote_period*10 // when the vote will end
spawn(config.vote_period*10)
vote.endvote()