mirror of
https://github.com/VOREStation/VOREStation.git
synced 2026-07-17 18:14:25 +01:00
Merge remote-tracking branch 'upstream/master' into Mob-TF-smite
This commit is contained in:
@@ -6,12 +6,14 @@
|
||||
return
|
||||
|
||||
var/datum/eventkit/modify_robot/modify_robot = new()
|
||||
modify_robot.target = target
|
||||
modify_robot.target = isrobot(target) ? target : null
|
||||
modify_robot.selected_ai = target.is_slaved()
|
||||
modify_robot.tgui_interact(src.mob)
|
||||
|
||||
/datum/eventkit/modify_robot
|
||||
var/mob/living/silicon/robot/target
|
||||
var/mob/living/silicon/robot/source
|
||||
var/mob/living/silicon/ai/selected_ai
|
||||
var/ion_law = "IonLaw"
|
||||
var/zeroth_law = "ZerothLaw"
|
||||
var/inherent_law = "InherentLaw"
|
||||
@@ -49,6 +51,7 @@
|
||||
.["target"]["name"] = target.name
|
||||
.["target"]["ckey"] = target.ckey
|
||||
.["target"]["module"] = target.module
|
||||
.["target"]["emagged"] = target.emagged
|
||||
.["target"]["crisis_override"] = target.crisis_override
|
||||
.["target"]["active_restrictions"] = target.restrict_modules_to
|
||||
var/list/possible_restrictions = list()
|
||||
@@ -121,6 +124,15 @@
|
||||
package_laws(., "supplied_laws", target.laws.supplied_laws)
|
||||
|
||||
.["isAI"] = isAI(target)
|
||||
.["isMalf"] = is_malf(user)
|
||||
.["isSlaved"] = target.is_slaved()
|
||||
var/list/active_ais = list()
|
||||
for(var/mob/living/silicon/ai/ai in active_ais())
|
||||
if(!ai.loc)
|
||||
continue
|
||||
active_ais += list(list("displayText" = "[ai]", "value" = "\ref[ai]"))
|
||||
.["active_ais"] = active_ais
|
||||
.["selected_ai"] = selected_ai ? selected_ai.name : null
|
||||
|
||||
var/list/channels = list()
|
||||
for(var/ch_name in target.law_channels())
|
||||
@@ -144,14 +156,16 @@
|
||||
target.real_name = params["new_name"]
|
||||
return TRUE
|
||||
if("select_target")
|
||||
target = locate(params["new_target"])
|
||||
log_and_message_admins("changed robot modifictation target to [target]")
|
||||
var/new_target = locate(params["new_target"])
|
||||
if(new_target != target)
|
||||
target = locate(params["new_target"])
|
||||
log_and_message_admins("changed robot modifictation target to [target]")
|
||||
return TRUE
|
||||
if("toggle_crisis")
|
||||
target.crisis_override = !target.crisis_override
|
||||
return TRUE
|
||||
if("add_restriction")
|
||||
target.restrict_modules_to += params["new_restriction"]
|
||||
target.restrict_modules_to |= params["new_restriction"]
|
||||
return TRUE
|
||||
if("remove_restriction")
|
||||
target.restrict_modules_to -= params["rem_restriction"]
|
||||
@@ -498,6 +512,41 @@
|
||||
if(usr != target)
|
||||
to_chat(usr, "<span class='notice'>Laws displayed.</span>")
|
||||
return TRUE
|
||||
if("select_ai")
|
||||
selected_ai = locate(params["new_ai"])
|
||||
return TRUE
|
||||
if("swap_sync")
|
||||
var/new_ai = selected_ai ? selected_ai : select_active_ai_with_fewest_borgs()
|
||||
if(new_ai)
|
||||
target.lawupdate = 1
|
||||
target.connect_to_ai(new_ai)
|
||||
return TRUE
|
||||
if("disconnect_ai")
|
||||
if(target.is_slaved())
|
||||
target.disconnect_from_ai()
|
||||
target.lawupdate = 0
|
||||
return TRUE
|
||||
if("toggle_emag")
|
||||
if(target.emagged)
|
||||
target.emagged = 0
|
||||
target.clear_supplied_laws()
|
||||
target.clear_inherent_laws()
|
||||
target.laws = new global.using_map.default_law_type
|
||||
target.laws.show_laws(target)
|
||||
target.hud_used.update_robot_modules_display()
|
||||
else
|
||||
target.emagged = 1
|
||||
target.lawupdate = 0
|
||||
target.disconnect_from_ai()
|
||||
target.clear_supplied_laws()
|
||||
target.clear_inherent_laws()
|
||||
target.laws = new /datum/ai_laws/syndicate_override
|
||||
if(target.bolt)
|
||||
if(!target.bolt.malfunction)
|
||||
target.bolt.malfunction = MALFUNCTION_PERMANENT
|
||||
target.laws.show_laws(target)
|
||||
target.hud_used.update_robot_modules_display()
|
||||
return TRUE
|
||||
|
||||
/datum/eventkit/modify_robot/proc/get_target_items(var/mob/user)
|
||||
var/list/target_items = list()
|
||||
@@ -650,3 +699,9 @@
|
||||
package_laws(packaged_laws, "supplied_laws", ALs.supplied_laws)
|
||||
law_sets[++law_sets.len] = list("name" = ALs.name, "header" = ALs.law_header, "ref" = "\ref[ALs]","laws" = packaged_laws)
|
||||
return law_sets
|
||||
|
||||
/datum/eventkit/modify_robot/proc/is_malf(var/mob/user)
|
||||
return (is_admin(user) && !target.is_slaved()) || is_special_role(user)
|
||||
|
||||
/datum/eventkit/modify_robot/proc/is_special_role(var/mob/user)
|
||||
return user.mind.special_role ? TRUE : FALSE
|
||||
|
||||
@@ -229,7 +229,7 @@
|
||||
var/selected_radio_channel = tgui_input_list(usr, "Please select the radio channel to add", "Channels", available_channels)
|
||||
if(!selected_radio_channel || selected_radio_channel == "Cancel")
|
||||
break
|
||||
if(selected_radio_channel == CHANNEL_SPECIAL_OPS)
|
||||
if(selected_radio_channel == CHANNEL_SPECIAL_OPS || selected_radio_channel == CHANNEL_RESPONSE_TEAM)
|
||||
target.radio.centComm = 1
|
||||
if(selected_radio_channel == CHANNEL_RAIDER)
|
||||
qdel(target.radio.keyslot)
|
||||
@@ -249,7 +249,7 @@
|
||||
var/selected_radio_channel = tgui_input_list(usr, "Please select the radio channel to remove", "Channels", target.radio.channels)
|
||||
if(!selected_radio_channel || selected_radio_channel == "Cancel")
|
||||
break
|
||||
if(selected_radio_channel == CHANNEL_SPECIAL_OPS)
|
||||
if(selected_radio_channel == CHANNEL_SPECIAL_OPS || selected_radio_channel == CHANNEL_RESPONSE_TEAM && !(target.module.channels[CHANNEL_SPECIAL_OPS] || target.module.channels[CHANNEL_RESPONSE_TEAM]))
|
||||
target.radio.centComm = 0
|
||||
target.module.channels -= selected_radio_channel
|
||||
if((selected_radio_channel == CHANNEL_MERCENARY || selected_radio_channel == CHANNEL_RAIDER) && !(target.module.channels[CHANNEL_RAIDER] || target.module.channels[CHANNEL_MERCENARY]))
|
||||
|
||||
@@ -20,10 +20,11 @@
|
||||
var/msg = "<span class='filter_pray'>" + span_blue("[icon2html(cross, GLOB.admins)] <b>" + span_purple("PRAY: ") + "[key_name(src, 1)] [ADMIN_QUE(src)] [ADMIN_PP(src)] [ADMIN_VV(src)] [ADMIN_SM(src)] ([admin_jump_link(src, src)]) [ADMIN_CA(src)] [ADMIN_SC(src)] [ADMIN_SMITE(src)]:</b> [raw_msg]") + "</span>"
|
||||
|
||||
for(var/client/C in GLOB.admins)
|
||||
if(R_ADMIN|R_EVENT & C.holder.rights)
|
||||
if(C.prefs?.read_preference(/datum/preference/toggle/show_chat_prayers))
|
||||
to_chat(C, msg, type = MESSAGE_TYPE_PRAYER, confidential = TRUE)
|
||||
C << 'sound/effects/ding.ogg'
|
||||
if(!check_rights(R_ADMIN, 0, C))
|
||||
continue
|
||||
if(C.prefs?.read_preference(/datum/preference/toggle/show_chat_prayers))
|
||||
to_chat(C, msg, type = MESSAGE_TYPE_PRAYER, confidential = TRUE)
|
||||
C << 'sound/effects/ding.ogg'
|
||||
to_chat(usr, "Your prayers have been received by the gods.", confidential = TRUE)
|
||||
|
||||
feedback_add_details("admin_verb","PR") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
@@ -32,13 +33,15 @@
|
||||
/proc/CentCom_announce(var/msg, var/mob/Sender, var/iamessage)
|
||||
msg = span_blue("<b>" + span_orange("[uppertext(using_map.boss_short)]M[iamessage ? " IA" : ""]:") + "[key_name(Sender, 1)] [ADMIN_PP(Sender)] [ADMIN_VV(Sender)] [ADMIN_SM(Sender)] ([admin_jump_link(Sender)]) [ADMIN_CA(Sender)] [ADMIN_BSA(Sender)] [ADMIN_CENTCOM_REPLY(Sender)]:</b> [msg]")
|
||||
for(var/client/C in GLOB.admins) //VOREStation Edit - GLOB admins
|
||||
if(R_ADMIN|R_EVENT & C.holder.rights)
|
||||
to_chat(C,msg)
|
||||
C << 'sound/machines/signal.ogg'
|
||||
if(!check_rights(R_ADMIN, 0, C))
|
||||
continue
|
||||
to_chat(C,msg)
|
||||
C << 'sound/machines/signal.ogg'
|
||||
|
||||
/proc/Syndicate_announce(var/msg, var/mob/Sender)
|
||||
msg = span_blue("<b>" + span_crimson("ILLEGAL:") + "[key_name(Sender, 1)] [ADMIN_PP(Sender)] [ADMIN_VV(Sender)] [ADMIN_SM(Sender)] ([admin_jump_link(Sender)]) [ADMIN_CA(Sender)] [ADMIN_BSA(Sender)] [ADMIN_SYNDICATE_REPLY(Sender)]:</b> [msg]")
|
||||
for(var/client/C in GLOB.admins) //VOREStation Edit - GLOB admins
|
||||
if(R_ADMIN|R_EVENT & C.holder.rights)
|
||||
to_chat(C,msg)
|
||||
C << 'sound/machines/signal.ogg'
|
||||
if(!check_rights(R_ADMIN, 0, C))
|
||||
continue
|
||||
to_chat(C,msg)
|
||||
C << 'sound/machines/signal.ogg'
|
||||
|
||||
Reference in New Issue
Block a user