Merge branch 'development' into map-development

# Conflicts:
#	baystation12.dme
#	code/game/objects/random/random.dm
#	code/game/turfs/turf_changing.dm
#	code/modules/mining/ore.dm
#	code/modules/mob/living/silicon/robot/robot_modules.dm
This commit is contained in:
skull132
2017-05-01 01:07:56 +03:00
336 changed files with 4668 additions and 3389 deletions

View File

@@ -6,8 +6,13 @@
var/datum/admins/deadmin_holder = null
var/buildmode = 0
///////////////////
//SPAM PROTECTION//
///////////////////
var/last_message = "" //Contains the last message sent by this client - used to protect against copy-paste spamming.
var/last_message_count = 0 //contins a number of how many times a message identical to last_message was sent.
var/last_message_time
var/spam_alert = 0
/////////
//OTHER//
@@ -31,6 +36,7 @@
//SECURITY//
////////////
var/next_allowed_topic_time = 10
var/info_sent = 0
// comment out the line below when debugging locally to enable the options & messages menu
//control_freak = 1
@@ -59,4 +65,4 @@
var/turf/previous_turf = null
var/obj/screen/plane_master/parallax_master/parallax_master = null
var/obj/screen/plane_master/parallax_dustmaster/parallax_dustmaster = null
var/obj/screen/plane_master/parallax_spacemaster/parallax_spacemaster = null
var/obj/screen/plane_master/parallax_spacemaster/parallax_spacemaster = null

View File

@@ -25,7 +25,12 @@
return
if (href_list["EMERG"] && href_list["EMERG"] == "action")
handle_connection_info(src, href_list["data"])
if (!info_sent)
handle_connection_info(src, href_list["data"])
info_sent = 1
else
server_greeting.close_window(src, "Your greeting window has malfunctioned and has been shut down.")
return
//Reduces spamming of links by dropping calls that happen during the delay period
@@ -197,19 +202,35 @@
..() //redirect to hsrc.()
/client/proc/handle_spam_prevention(var/message, var/mute_type)
if(config.automute_on && !holder && src.last_message == message)
src.last_message_count++
if(src.last_message_count >= SPAM_TRIGGER_AUTOMUTE)
src << "\red You have exceeded the spam filter limit for identical messages. An auto-mute was applied."
cmd_admin_mute(src.mob, mute_type, 1)
return 1
if(src.last_message_count >= SPAM_TRIGGER_WARNING)
src << "\red You are nearing the spam filter limit for identical messages."
return 0
else
last_message = message
src.last_message_count = 0
return 0
if (config.automute_on && !holder)
if (last_message_time)
if (world.time - last_message_time < 5)
spam_alert++
if (spam_alert > 3)
if (!(prefs.muted & mute_type))
cmd_admin_mute(src.mob, mute_type, 1)
src << "<span class='danger'>You have tripped the macro filter. An auto-mute was applied.</span>"
last_message_time = world.time
return 1
else
spam_alert = max(0, spam_alert--)
last_message_time = world.time
if(!isnull(message) && last_message == message)
last_message_count++
if(last_message_count >= SPAM_TRIGGER_AUTOMUTE)
src << "\red You have exceeded the spam filter limit for identical messages. An auto-mute was applied."
cmd_admin_mute(src.mob, mute_type, 1)
return 1
if(last_message_count >= SPAM_TRIGGER_WARNING)
src << "\red You are nearing the spam filter limit for identical messages."
return 0
last_message = message
last_message_count = 0
return 0
//This stops files larger than UPLOAD_LIMIT being sent from client to server via input(), client.Import() etc.
/client/AllowUpload(filename, filelength)
@@ -273,7 +294,7 @@
prefs.last_id = computer_id //these are gonna be used for banning
. = ..() //calls mob.Login()
prefs.sanitize_preferences()
if (byond_version < config.client_error_version)
@@ -434,46 +455,8 @@
'html/bootstrap/css/bootstrap.min.css',
'html/bootstrap/js/bootstrap.min.js',
'html/jquery/jquery-2.0.0.min.js',
'html/iestats/ie-truth.min.js',
'icons/pda_icons/pda_atmos.png',
'icons/pda_icons/pda_back.png',
'icons/pda_icons/pda_bell.png',
'icons/pda_icons/pda_blank.png',
'icons/pda_icons/pda_boom.png',
'icons/pda_icons/pda_bucket.png',
'icons/pda_icons/pda_crate.png',
'icons/pda_icons/pda_cuffs.png',
'icons/pda_icons/pda_eject.png',
'icons/pda_icons/pda_exit.png',
'icons/pda_icons/pda_flashlight.png',
'icons/pda_icons/pda_honk.png',
'icons/pda_icons/pda_mail.png',
'icons/pda_icons/pda_medical.png',
'icons/pda_icons/pda_menu.png',
'icons/pda_icons/pda_mule.png',
'icons/pda_icons/pda_notes.png',
'icons/pda_icons/pda_power.png',
'icons/pda_icons/pda_rdoor.png',
'icons/pda_icons/pda_reagent.png',
'icons/pda_icons/pda_refresh.png',
'icons/pda_icons/pda_scanner.png',
'icons/pda_icons/pda_signaler.png',
'icons/pda_icons/pda_status.png',
'icons/spideros_icons/sos_1.png',
'icons/spideros_icons/sos_2.png',
'icons/spideros_icons/sos_3.png',
'icons/spideros_icons/sos_4.png',
'icons/spideros_icons/sos_5.png',
'icons/spideros_icons/sos_6.png',
'icons/spideros_icons/sos_7.png',
'icons/spideros_icons/sos_8.png',
'icons/spideros_icons/sos_9.png',
'icons/spideros_icons/sos_10.png',
'icons/spideros_icons/sos_11.png',
'icons/spideros_icons/sos_12.png',
'icons/spideros_icons/sos_13.png',
'icons/spideros_icons/sos_14.png'
)
'html/iestats/ie-truth.min.js'
)
/mob/proc/MayRespawn()
return 0

View File

@@ -35,10 +35,11 @@
/datum/category_item/player_setup_item/antagonism/candidacy/content(var/mob/user)
. += "<b>Special Role Availability:</b><br>"
. += "<table>"
var/is_global_banned = jobban_isbanned(preference_mob(), "Antagonist")
for(var/antag_type in all_antag_types)
var/datum/antagonist/antag = all_antag_types[antag_type]
. += "<tr><td>[antag.role_text]: </td><td>"
if(jobban_isbanned(preference_mob(), antag.bantype))
if(is_global_banned || jobban_isbanned(preference_mob(), antag.bantype))
. += "<span class='danger'>\[BANNED\]</span><br>"
else if(antag.role_type in pref.be_special_role)
. += "<b>Yes</b> / <a href='?src=\ref[src];del_special=[antag.role_type]'>No</a></br>"

View File

@@ -42,11 +42,6 @@
..()
gear_tweaks += new/datum/gear_tweak/reagents(lunchables_drink_reagents())
/datum/gear/boot_knife
display_name = "boot knife"
path = /obj/item/weapon/material/kitchen/utensil/knife/boot
cost = 3
/datum/gear/lunchbox
display_name = "lunchbox"
description = "A little lunchbox."

View File

@@ -110,7 +110,7 @@
gear_tweaks += new/datum/gear_tweak/path(dress)
/datum/gear/uniform/uniform_captain
display_name = "uniform, captain's dress"
display_name = "uniform, captain dress"
path = /obj/item/clothing/under/dress/dress_cap
allowed_roles = list("Captain")
@@ -120,7 +120,7 @@
allowed_roles = list("Security Officer","Head of Security","Warden","Security Cadet")
/datum/gear/uniform/uniform_hop
display_name = "uniform, HoP's dress"
display_name = "uniform, HoP dress"
path = /obj/item/clothing/under/dress/dress_hop
allowed_roles = list("Head of Personnel")

View File

@@ -50,7 +50,7 @@
/datum/gear/ears/m_skrell/New()
..()
var/m_chains = list()
m_chains["headtail bands"] = /obj/item/clothing/ears/skrell/chain
m_chains["headtail bands"] = /obj/item/clothing/ears/skrell/band
m_chains["headtail cloth"] = /obj/item/clothing/ears/skrell/cloth_male
m_chains["red-jeweled bands"] = /obj/item/clothing/ears/skrell/redjeweled_band
m_chains["ebony bands"] = /obj/item/clothing/ears/skrell/ebony_band

View File

@@ -60,7 +60,6 @@
infraction.fine = text2num(char_infraction_query.item[10])
infraction.felony = text2num(char_infraction_query.item[11])
pref.incidents.Add(infraction)
log_debug("Added infraction with [infraction.UID]")
/datum/category_item/player_setup_item/other/incidents/content(var/mob/user)
pref.incidents = list()