mirror of
https://github.com/SPLURT-Station/S.P.L.U.R.T-Station-13.git
synced 2025-12-10 09:54:52 +00:00
Merge branch 'master' into mechs-are-vehicles
This commit is contained in:
@@ -113,6 +113,10 @@
|
|||||||
if (CONFIG_GET(flag/log_attack))
|
if (CONFIG_GET(flag/log_attack))
|
||||||
WRITE_LOG(GLOB.world_attack_log, "ATTACK: [text]")
|
WRITE_LOG(GLOB.world_attack_log, "ATTACK: [text]")
|
||||||
|
|
||||||
|
/proc/log_victim(text)
|
||||||
|
if (CONFIG_GET(flag/log_victim))
|
||||||
|
WRITE_LOG(GLOB.world_victim_log, "VICTIM: [text]")
|
||||||
|
|
||||||
/proc/log_manifest(ckey, datum/mind/mind,mob/body, latejoin = FALSE)
|
/proc/log_manifest(ckey, datum/mind/mind,mob/body, latejoin = FALSE)
|
||||||
if (CONFIG_GET(flag/log_manifest))
|
if (CONFIG_GET(flag/log_manifest))
|
||||||
WRITE_LOG(GLOB.world_manifest_log, "[ckey] \\ [body.real_name] \\ [mind.assigned_role] \\ [mind.special_role ? mind.special_role : "NONE"] \\ [latejoin ? "LATEJOIN":"ROUNDSTART"]")
|
WRITE_LOG(GLOB.world_manifest_log, "[ckey] \\ [body.real_name] \\ [mind.assigned_role] \\ [mind.special_role ? mind.special_role : "NONE"] \\ [latejoin ? "LATEJOIN":"ROUNDSTART"]")
|
||||||
|
|||||||
@@ -11,6 +11,8 @@ GLOBAL_VAR(world_qdel_log)
|
|||||||
GLOBAL_PROTECT(world_qdel_log)
|
GLOBAL_PROTECT(world_qdel_log)
|
||||||
GLOBAL_VAR(world_attack_log)
|
GLOBAL_VAR(world_attack_log)
|
||||||
GLOBAL_PROTECT(world_attack_log)
|
GLOBAL_PROTECT(world_attack_log)
|
||||||
|
GLOBAL_VAR(world_victim_log)
|
||||||
|
GLOBAL_PROTECT(world_victim_log)
|
||||||
// GLOBAL_VAR(world_econ_log)
|
// GLOBAL_VAR(world_econ_log)
|
||||||
// GLOBAL_PROTECT(world_econ_log)
|
// GLOBAL_PROTECT(world_econ_log)
|
||||||
GLOBAL_VAR(world_href_log)
|
GLOBAL_VAR(world_href_log)
|
||||||
|
|||||||
@@ -17,7 +17,7 @@
|
|||||||
P.pixel_x = planet_offset_x
|
P.pixel_x = planet_offset_x
|
||||||
P.pixel_y = planet_offset_y
|
P.pixel_y = planet_offset_y
|
||||||
. += P
|
. += P
|
||||||
if(random_layer)
|
if(ispath(random_layer, /atom/movable/screen/parallax_layer))
|
||||||
. += new random_layer
|
. += new random_layer
|
||||||
if(ispath(random_layer, /atom/movable/screen/parallax_layer/space/random/space_gas))
|
if(ispath(random_layer, /atom/movable/screen/parallax_layer/space/random/space_gas))
|
||||||
var/atom/movable/screen/parallax_layer/space/random/space_gas/SG = locate(random_layer) in objects
|
var/atom/movable/screen/parallax_layer/space/random/space_gas/SG = locate(random_layer) in objects
|
||||||
|
|||||||
@@ -1,92 +1,123 @@
|
|||||||
/datum/config_entry/flag/log_ooc // log OOC channel
|
/// log OOC channel
|
||||||
|
/datum/config_entry/flag/log_ooc
|
||||||
config_entry_value = TRUE
|
config_entry_value = TRUE
|
||||||
|
|
||||||
/datum/config_entry/flag/log_access // log login/logout
|
/// log login/logout
|
||||||
|
/datum/config_entry/flag/log_access
|
||||||
config_entry_value = TRUE
|
config_entry_value = TRUE
|
||||||
|
|
||||||
/// Config entry which special logging of failed logins under suspicious circumstances.
|
/// Config entry which special logging of failed logins under suspicious circumstances.
|
||||||
/datum/config_entry/flag/log_suspicious_login
|
/datum/config_entry/flag/log_suspicious_login
|
||||||
config_entry_value = TRUE
|
config_entry_value = TRUE
|
||||||
|
|
||||||
/datum/config_entry/flag/log_say // log client say
|
/// log client say
|
||||||
|
/datum/config_entry/flag/log_say
|
||||||
config_entry_value = TRUE
|
config_entry_value = TRUE
|
||||||
|
|
||||||
/datum/config_entry/flag/log_admin // log admin actions
|
/// log admin actions
|
||||||
|
/datum/config_entry/flag/log_admin
|
||||||
protection = CONFIG_ENTRY_LOCKED
|
protection = CONFIG_ENTRY_LOCKED
|
||||||
config_entry_value = TRUE
|
config_entry_value = TRUE
|
||||||
|
|
||||||
/datum/config_entry/flag/log_prayer // log prayers
|
/// log prayers
|
||||||
|
/datum/config_entry/flag/log_prayer
|
||||||
config_entry_value = TRUE
|
config_entry_value = TRUE
|
||||||
|
|
||||||
/datum/config_entry/flag/log_law // log lawchanges
|
/// log lawchanges
|
||||||
|
/datum/config_entry/flag/log_law
|
||||||
config_entry_value = TRUE
|
config_entry_value = TRUE
|
||||||
|
|
||||||
/datum/config_entry/flag/log_game // log game events
|
/// log game events
|
||||||
|
/datum/config_entry/flag/log_game
|
||||||
config_entry_value = TRUE
|
config_entry_value = TRUE
|
||||||
|
|
||||||
/// log mech data
|
/// log mech data
|
||||||
/datum/config_entry/flag/log_mecha
|
/datum/config_entry/flag/log_mecha
|
||||||
config_entry_value = TRUE
|
config_entry_value = TRUE
|
||||||
|
|
||||||
/datum/config_entry/flag/log_virus // log virology data
|
/// log virology data
|
||||||
|
/datum/config_entry/flag/log_virus
|
||||||
config_entry_value = TRUE
|
config_entry_value = TRUE
|
||||||
|
|
||||||
/datum/config_entry/flag/log_vote // log voting
|
/// log voting
|
||||||
|
/datum/config_entry/flag/log_vote
|
||||||
config_entry_value = TRUE
|
config_entry_value = TRUE
|
||||||
|
|
||||||
/datum/config_entry/flag/log_craft // log crafting
|
/// log crafting
|
||||||
|
/datum/config_entry/flag/log_craft
|
||||||
config_entry_value = TRUE
|
config_entry_value = TRUE
|
||||||
|
|
||||||
/datum/config_entry/flag/log_whisper // log client whisper
|
/// log client whisper
|
||||||
|
/datum/config_entry/flag/log_whisper
|
||||||
config_entry_value = TRUE
|
config_entry_value = TRUE
|
||||||
|
|
||||||
/datum/config_entry/flag/log_attack // log attack messages
|
/// log attack messages
|
||||||
|
/datum/config_entry/flag/log_attack
|
||||||
config_entry_value = TRUE
|
config_entry_value = TRUE
|
||||||
|
|
||||||
/datum/config_entry/flag/log_emote // log emotes
|
/// log attack messages
|
||||||
|
/datum/config_entry/flag/log_victim
|
||||||
config_entry_value = TRUE
|
config_entry_value = TRUE
|
||||||
|
|
||||||
/datum/config_entry/flag/log_adminchat // log admin chat messages
|
/// log emotes
|
||||||
|
/datum/config_entry/flag/log_emote
|
||||||
|
config_entry_value = TRUE
|
||||||
|
|
||||||
|
/// log admin chat messages
|
||||||
|
/datum/config_entry/flag/log_adminchat
|
||||||
protection = CONFIG_ENTRY_LOCKED
|
protection = CONFIG_ENTRY_LOCKED
|
||||||
|
|
||||||
/datum/config_entry/flag/log_shuttle // log shuttle related actions, ie shuttle computers, shuttle manipulator, emergency console
|
/// log shuttle related actions, ie shuttle computers, shuttle manipulator, emergency console
|
||||||
|
/datum/config_entry/flag/log_shuttle
|
||||||
config_entry_value = TRUE
|
config_entry_value = TRUE
|
||||||
|
|
||||||
/datum/config_entry/flag/log_pda // log pda messages
|
/// log pda messages
|
||||||
|
/datum/config_entry/flag/log_pda
|
||||||
config_entry_value = TRUE
|
config_entry_value = TRUE
|
||||||
|
|
||||||
/datum/config_entry/flag/log_telecomms // log telecomms messages
|
/// log telecomms messages
|
||||||
|
/datum/config_entry/flag/log_telecomms
|
||||||
config_entry_value = TRUE
|
config_entry_value = TRUE
|
||||||
|
|
||||||
/datum/config_entry/flag/log_twitter // log certain expliotable parrots and other such fun things in a JSON file of twitter valid phrases.
|
/// log certain expliotable parrots and other such fun things in a JSON file of twitter valid phrases.
|
||||||
|
/datum/config_entry/flag/log_twitter
|
||||||
config_entry_value = TRUE
|
config_entry_value = TRUE
|
||||||
|
|
||||||
/datum/config_entry/flag/log_world_topic // log all world.Topic() calls
|
/// log all world.Topic() calls
|
||||||
|
/datum/config_entry/flag/log_world_topic
|
||||||
config_entry_value = TRUE
|
config_entry_value = TRUE
|
||||||
|
|
||||||
/datum/config_entry/flag/log_manifest // log crew manifest to seperate file
|
/// log crew manifest to seperate file
|
||||||
|
/datum/config_entry/flag/log_manifest
|
||||||
config_entry_value = TRUE
|
config_entry_value = TRUE
|
||||||
|
|
||||||
/datum/config_entry/flag/log_job_debug // log roundstart divide occupations debug information to a file
|
/// log roundstart divide occupations debug information to a file
|
||||||
|
/datum/config_entry/flag/log_job_debug
|
||||||
config_entry_value = TRUE
|
config_entry_value = TRUE
|
||||||
|
|
||||||
|
/// log photos taken by players with a camera
|
||||||
/datum/config_entry/flag/log_pictures
|
/datum/config_entry/flag/log_pictures
|
||||||
|
|
||||||
|
/// This is... shitcode, literally same as above, if one of them is inactive, won't log at all, PLEASE FUCKING REMOVE THIS.
|
||||||
/datum/config_entry/flag/picture_logging_camera
|
/datum/config_entry/flag/picture_logging_camera
|
||||||
|
|
||||||
/// forces log_href for tgui
|
/// forces log_href for tgui
|
||||||
/datum/config_entry/flag/emergency_tgui_logging
|
/datum/config_entry/flag/emergency_tgui_logging
|
||||||
config_entry_value = FALSE
|
config_entry_value = FALSE
|
||||||
|
|
||||||
/datum/config_entry/number/error_cooldown // The "cooldown" time for each occurrence of a unique error
|
/// The "cooldown" time for each occurrence of a unique error
|
||||||
|
/datum/config_entry/number/error_cooldown
|
||||||
config_entry_value = 600
|
config_entry_value = 600
|
||||||
min_val = 0
|
min_val = 0
|
||||||
|
|
||||||
/datum/config_entry/number/error_limit // How many occurrences before the next will silence them
|
/// How many occurrences before the next will silence them
|
||||||
|
/datum/config_entry/number/error_limit
|
||||||
config_entry_value = 50
|
config_entry_value = 50
|
||||||
|
|
||||||
/datum/config_entry/number/error_silence_time // How long a unique error will be silenced for
|
/// How long a unique error will be silenced for
|
||||||
|
/datum/config_entry/number/error_silence_time
|
||||||
config_entry_value = 6000
|
config_entry_value = 6000
|
||||||
|
|
||||||
/datum/config_entry/number/error_msg_delay // How long to wait between messaging admins about occurrences of a unique error
|
/// How long to wait between messaging admins about occurrences of a unique error
|
||||||
|
/datum/config_entry/number/error_msg_delay
|
||||||
config_entry_value = 50
|
config_entry_value = 50
|
||||||
|
|||||||
@@ -1005,11 +1005,15 @@
|
|||||||
/datum/status_effect/trance/proc/hypnotize(datum/source, list/hearing_args)
|
/datum/status_effect/trance/proc/hypnotize(datum/source, list/hearing_args)
|
||||||
if(!owner.can_hear())
|
if(!owner.can_hear())
|
||||||
return
|
return
|
||||||
if(hearing_args[HEARING_SPEAKER] == owner)
|
var/mob/hearing_speaker = hearing_args[HEARING_SPEAKER]
|
||||||
|
if(hearing_speaker == owner)
|
||||||
return
|
return
|
||||||
var/mob/living/carbon/C = owner
|
var/mob/living/carbon/C = owner
|
||||||
var/hypnomsg = uncostumize_say(hearing_args[HEARING_RAW_MESSAGE], hearing_args[HEARING_MESSAGE_MODE])
|
var/hypnomsg = uncostumize_say(hearing_args[HEARING_RAW_MESSAGE], hearing_args[HEARING_MESSAGE_MODE])
|
||||||
C.cure_trauma_type(/datum/brain_trauma/hypnosis, TRAUMA_RESILIENCE_SURGERY) //clear previous hypnosis
|
C.cure_trauma_type(/datum/brain_trauma/hypnosis, TRAUMA_RESILIENCE_SURGERY) //clear previous hypnosis
|
||||||
|
// The brain trauma itself does its own set of logging, but this is the only place the source of the hypnosis phrase can be found.
|
||||||
|
hearing_speaker.log_message("has hypnotised [key_name(C)] with the phrase '[hypnomsg]'", LOG_ATTACK)
|
||||||
|
C.log_message("has been hypnotised by the phrase '[hypnomsg]' spoken by [key_name(hearing_speaker)]", LOG_VICTIM, log_globally = FALSE)
|
||||||
addtimer(CALLBACK(C, /mob/living/carbon.proc/gain_trauma, /datum/brain_trauma/hypnosis, TRAUMA_RESILIENCE_SURGERY, hypnomsg), 10)
|
addtimer(CALLBACK(C, /mob/living/carbon.proc/gain_trauma, /datum/brain_trauma/hypnosis, TRAUMA_RESILIENCE_SURGERY, hypnomsg), 10)
|
||||||
addtimer(CALLBACK(C, /mob/living.proc/Stun, 60, TRUE, TRUE), 15) //Take some time to think about it
|
addtimer(CALLBACK(C, /mob/living.proc/Stun, 60, TRUE, TRUE), 15) //Take some time to think about it
|
||||||
qdel(src)
|
qdel(src)
|
||||||
|
|||||||
@@ -1214,7 +1214,7 @@
|
|||||||
|
|
||||||
if(user != target)
|
if(user != target)
|
||||||
var/reverse_message = "has been [what_done] by [ssource][postfix]"
|
var/reverse_message = "has been [what_done] by [ssource][postfix]"
|
||||||
target.log_message(reverse_message, LOG_ATTACK, color="orange", log_globally=FALSE)
|
target.log_message(reverse_message, LOG_VICTIM, color="orange", log_globally=FALSE)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* log_wound() is for when someone is *attacked* and suffers a wound. Note that this only captures wounds from damage, so smites/forced wounds aren't logged, as well as demotions like cuts scabbing over
|
* log_wound() is for when someone is *attacked* and suffers a wound. Note that this only captures wounds from damage, so smites/forced wounds aren't logged, as well as demotions like cuts scabbing over
|
||||||
|
|||||||
@@ -189,5 +189,7 @@
|
|||||||
return FALSE
|
return FALSE
|
||||||
brainwash(C, objective)
|
brainwash(C, objective)
|
||||||
message_admins("[ADMIN_LOOKUPFLW(user)] brainwashed [key_name_admin(C)] with objective '[objective]'.")
|
message_admins("[ADMIN_LOOKUPFLW(user)] brainwashed [key_name_admin(C)] with objective '[objective]'.")
|
||||||
|
user.log_message("has brainwashed [key_name(C)] with the objective '[objective]' using \the [src]", LOG_ATTACK)
|
||||||
|
C.log_message("has been brainwashed with the objective '[objective]' by [key_name(user)] using \the [src]", LOG_VICTIM, log_globally = FALSE)
|
||||||
log_game("[key_name(user)] brainwashed [key_name(C)] with objective '[objective]'.")
|
log_game("[key_name(user)] brainwashed [key_name(C)] with objective '[objective]'.")
|
||||||
return TRUE
|
return TRUE
|
||||||
|
|||||||
@@ -116,6 +116,7 @@ GLOBAL_LIST(topic_status_cache)
|
|||||||
GLOB.world_virus_log = "[GLOB.log_directory]/virus.log"
|
GLOB.world_virus_log = "[GLOB.log_directory]/virus.log"
|
||||||
GLOB.world_asset_log = "[GLOB.log_directory]/asset.log"
|
GLOB.world_asset_log = "[GLOB.log_directory]/asset.log"
|
||||||
GLOB.world_attack_log = "[GLOB.log_directory]/attack.log"
|
GLOB.world_attack_log = "[GLOB.log_directory]/attack.log"
|
||||||
|
GLOB.world_victim_log = "[GLOB.log_directory]/victim.log"
|
||||||
GLOB.world_pda_log = "[GLOB.log_directory]/pda.log"
|
GLOB.world_pda_log = "[GLOB.log_directory]/pda.log"
|
||||||
GLOB.world_telecomms_log = "[GLOB.log_directory]/telecomms.log"
|
GLOB.world_telecomms_log = "[GLOB.log_directory]/telecomms.log"
|
||||||
GLOB.world_manifest_log = "[GLOB.log_directory]/manifest.log"
|
GLOB.world_manifest_log = "[GLOB.log_directory]/manifest.log"
|
||||||
|
|||||||
@@ -73,7 +73,7 @@
|
|||||||
brainwash(C, objectives)
|
brainwash(C, objectives)
|
||||||
var/obj_list = english_list(objectives)
|
var/obj_list = english_list(objectives)
|
||||||
message_admins("[key_name_admin(admin)] has brainwashed [key_name_admin(C)] with the following objectives: [obj_list].")
|
message_admins("[key_name_admin(admin)] has brainwashed [key_name_admin(C)] with the following objectives: [obj_list].")
|
||||||
C.log_message("has been force-brainwashed with the objective '[obj_list]' by admin [key_name(admin)]", LOG_ATTACK, log_globally = FALSE)
|
C.log_message("has been force-brainwashed with the objective '[obj_list]' by admin [key_name(admin)]", LOG_VICTIM)
|
||||||
log_admin("[key_name(admin)] has brainwashed [key_name(C)] with the following objectives: [obj_list].")
|
log_admin("[key_name(admin)] has brainwashed [key_name(C)] with the following objectives: [obj_list].")
|
||||||
|
|
||||||
/datum/objective/brainwashing
|
/datum/objective/brainwashing
|
||||||
|
|||||||
@@ -49,6 +49,8 @@
|
|||||||
to_chat(target, "<span class='userdanger'>A new compulsion fills your mind... you feel forced to obey it!</span>")
|
to_chat(target, "<span class='userdanger'>A new compulsion fills your mind... you feel forced to obey it!</span>")
|
||||||
brainwash(target, objective)
|
brainwash(target, objective)
|
||||||
message_admins("[ADMIN_LOOKUPFLW(user)] surgically brainwashed [ADMIN_LOOKUPFLW(target)] with the objective '[objective]'.")
|
message_admins("[ADMIN_LOOKUPFLW(user)] surgically brainwashed [ADMIN_LOOKUPFLW(target)] with the objective '[objective]'.")
|
||||||
|
user.log_message("has brainwashed [key_name(target)] with the objective '[objective]' using brainwashing surgery.", LOG_ATTACK)
|
||||||
|
target.log_message("has been brainwashed with the objective '[objective]' by [key_name(user)] using brainwashing surgery.", LOG_VICTIM, log_globally=FALSE)
|
||||||
log_game("[key_name(user)] surgically brainwashed [key_name(target)] with the objective '[objective]'.")
|
log_game("[key_name(user)] surgically brainwashed [key_name(target)] with the objective '[objective]'.")
|
||||||
return TRUE
|
return TRUE
|
||||||
|
|
||||||
|
|||||||
@@ -37,6 +37,9 @@ LOG_EMOTE
|
|||||||
## log attack messages
|
## log attack messages
|
||||||
LOG_ATTACK
|
LOG_ATTACK
|
||||||
|
|
||||||
|
## log victim messages
|
||||||
|
LOG_VICTIM
|
||||||
|
|
||||||
## log pda messages
|
## log pda messages
|
||||||
LOG_PDA
|
LOG_PDA
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user