diff --git a/code/game/machinery/turrets.dm b/code/game/machinery/turrets.dm
index 0a4ec6453cd..bc1c8ffe9c2 100644
--- a/code/game/machinery/turrets.dm
+++ b/code/game/machinery/turrets.dm
@@ -3,44 +3,35 @@
var/list/turretTargets = list()
/area/turret_protected/proc/subjectDied(target)
- if (istype(target, /mob))
- if (!istype(target, /mob/living/silicon))
- if (target:stat)
- if (target in turretTargets)
+ if( ismob(target) )
+ if( !issilicon(target) )
+ if( target:stat )
+ if( target in turretTargets )
src.Exited(target)
+//TODO: make teleporting to places trigger Entered() ~Carn
/area/turret_protected/Entered(O)
..()
- if(master && master != src)
+ if( master && master != src )
return master.Entered(O)
-// world << "[O] entered[src.x],[src.y],[src.z]"
- if (istype(O, /mob/living/carbon))
- if (!(O in turretTargets))
- turretTargets += O
- else if (istype(O, /obj/mecha))
- var/obj/mecha/M = O
- if (M.occupant)
- if (!(M in turretTargets))
- turretTargets += M
+ if( iscarbon(O) )
+ turretTargets |= O
+ else if( istype(O, /obj/mecha) )
+ var/obj/mecha/Mech = O
+ if( Mech.occupant )
+ turretTargets |= Mech
return 1
/area/turret_protected/Exited(O)
- if(master && master != src)
+ if( master && master != src )
return master.Exited(O)
-// world << "[O] exited [src.x],[src.y],[src.z]"
- if (istype(O, /mob))
- if (!istype(O, /mob/living/silicon))
- if (O in turretTargets)
- //O << "removing you from target list"
- turretTargets -= O
- //else
- //O << "You aren't in our target list!"
- else if (istype(O, /obj/mecha))
- if (O in turretTargets)
- turretTargets -= O
+ if( ismob(O) && !issilicon(O) )
+ turretTargets -= O
+ else if( istype(O, /obj/mecha) )
+ turretTargets -= O
..()
return 1
@@ -130,18 +121,19 @@
return
/obj/machinery/turret/proc/check_target(var/atom/movable/T as mob|obj)
- if(T && T in protected_area.turretTargets)
- if(!T in protected_area)
+ if( T && T in protected_area.turretTargets )
+ var/area/area_T = get_area(T)
+ if( !area_T || (area_T.type != protected_area.type) )
protected_area.Exited(T)
return 0 //If the guy is somehow not in the turret's area (teleportation), get them out the damn list. --NEO
- if(istype(T, /mob/living/carbon))
+ if( iscarbon(T) )
var/mob/living/carbon/MC = T
- if(!MC.stat)
- if(!MC.lying || lasers)
+ if( !MC.stat )
+ if( !MC.lying || lasers )
return 1
- else if(istype(T, /obj/mecha))
+ else if( istype(T, /obj/mecha) )
var/obj/mecha/ME = T
- if(ME.occupant)
+ if( ME.occupant )
return 1
return 0
@@ -338,10 +330,10 @@
if(stat & BROKEN) return
if (istype(user, /mob/living/silicon))
return src.attack_hand(user)
- else // trying to unlock the interface
+ else if( get_dist(src, user) == 0 ) // trying to unlock the interface
if (src.allowed(usr))
locked = !locked
- user << "You [ locked ? "lock" : "unlock"] the panel."
+ user << "You [ locked ? "lock" : "unlock"] the panel."
if (locked)
if (user.machine==src)
user.machine = null
@@ -350,7 +342,7 @@
if (user.machine==src)
src.attack_hand(usr)
else
- user << "\red Access denied."
+ user << "Access denied."
/obj/machinery/turretid/attack_ai(mob/user as mob)
if(!ailock)
@@ -359,9 +351,9 @@
user << "There seems to be a firewall preventing you from accessing this device."
/obj/machinery/turretid/attack_hand(mob/user as mob)
- if ( (get_dist(src, user) > 1 ))
- if (!istype(user, /mob/living/silicon))
- user << text("Too far away.")
+ if ( get_dist(src, user) > 0 )
+ if ( !issilicon(user) )
+ user << "You are too far away."
user.machine = null
user << browse(null, "window=turretid")
return
@@ -405,12 +397,13 @@
if (!istype(usr, /mob/living/silicon))
usr << "Control panel is locked!"
return
- if (href_list["toggleOn"])
- src.enabled = !src.enabled
- src.updateTurrets()
- else if (href_list["toggleLethal"])
- src.lethal = !src.lethal
- src.updateTurrets()
+ if ( get_dist(src, usr) == 0 || issilicon(usr))
+ if (href_list["toggleOn"])
+ src.enabled = !src.enabled
+ src.updateTurrets()
+ else if (href_list["toggleLethal"])
+ src.lethal = !src.lethal
+ src.updateTurrets()
src.attack_hand(usr)
/obj/machinery/turretid/proc/updateTurrets()
@@ -434,6 +427,15 @@
for(var/obj/machinery/turretid/TC in src.similar_controls)
TC.icon_state = "motion0"
+// if(control_area) //USE: updates other controls in the area
+// for (var/obj/machinery/turretid/Turret_Control in world) //I'm not sure if this is what it was
+// if( Turret_Control.control_area != src.control_area ) continue //supposed to do. Or whether the person
+// Turret_Control.icon_state = icon_state //who coded it originally was just tired
+// Turret_Control.enabled = enabled //or something. I don't see any situation
+// Turret_Control.lethal = lethal //in which this would be used on the current map.
+ //If he wants it back he can uncomment it
+
+
for (var/obj/machinery/turret/aTurret in turrets)
aTurret.setState(enabled, lethal)
diff --git a/code/modules/admin/verbs/randomverbs.dm b/code/modules/admin/verbs/randomverbs.dm
index 501a211db18..8eab8fbf6fd 100644
--- a/code/modules/admin/verbs/randomverbs.dm
+++ b/code/modules/admin/verbs/randomverbs.dm
@@ -9,6 +9,7 @@
log_admin("[key_name(usr)] made [key_name(M)] drop everything!")
message_admins("[key_name_admin(usr)] made [key_name_admin(M)] drop everything!", 1)
+ //feedback_add_details("admin_verb","DEVR") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
/client/proc/cmd_admin_prison(mob/M as mob in world)
set category = "Admin"
@@ -35,6 +36,7 @@
M << "\red You have been sent to the prison station!"
log_admin("[key_name(usr)] sent [key_name(M)] to the prison station.")
message_admins("\blue [key_name_admin(usr)] sent [key_name_admin(M)] to the prison station.", 1)
+ //feedback_add_details("admin_verb","PRISON") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
/client/proc/cmd_admin_subtle_message(mob/M as mob in world)
set category = "Special Verbs"
@@ -56,6 +58,7 @@
log_admin("SubtlePM: [key_name(usr)] -> [key_name(M)] : [msg]")
message_admins("\blue \bold SubtleMessage: [key_name_admin(usr)] -> [key_name_admin(M)] : [msg]", 1)
+ //feedback_add_details("admin_verb","SMS") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
/client/proc/cmd_admin_world_narrate() // Allows administrators to fluff events a little easier -- TLE
set category = "Special Verbs"
@@ -72,6 +75,7 @@
world << "[msg]"
log_admin("GlobalNarrate: [key_name(usr)] : [msg]")
message_admins("\blue \bold GlobalNarrate: [key_name_admin(usr)] : [msg]
", 1)
+ //feedback_add_details("admin_verb","GLN") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
/client/proc/cmd_admin_direct_narrate(mob/M as mob in world) // Targetted narrate -- TLE
set category = "Special Verbs"
@@ -84,6 +88,7 @@
M << msg
log_admin("DirectNarrate: [key_name(usr)] to ([M.name]/[M.key]): [msg]")
message_admins("\blue \bold DirectNarrate: [key_name(usr)] to ([M.name]/[M.key]): [msg]
", 1)
+ //feedback_add_details("admin_verb","DIRN") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
/client/proc/cmd_admin_mute(mob/M as mob in world)
set category = "Special Verbs"
@@ -103,6 +108,7 @@
message_admins("[key_name_admin(src)] has [(M.client.muted ? "muted" : "voiced")] [key_name_admin(M)].", 1)
M << "You have been [(M.client.muted ? "muted" : "voiced")]."
+ //feedback_add_details("admin_verb","MUTE") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
/client/proc/cmd_admin_add_random_ai_law()
@@ -120,6 +126,7 @@
world << sound('ionstorm.ogg')
//IonStorm(0)
+ //feedback_add_details("admin_verb","ION") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
/*
Stealth spawns xenos
@@ -136,6 +143,7 @@
return
create_xeno()
+ //feedback_add_details("admin_verb","X") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
return
//I use this proc for respawn character too. /N
@@ -406,6 +414,7 @@ Traitors and the like can also be revived with the previous role mostly intact.
new_character << "You have been fully respawned. Enjoy the game."
del(G_found)//Don't want to leave ghosts around.
+ //feedback_add_details("admin_verb","RSPCH") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
return new_character
/client/proc/cmd_admin_add_freeform_ai_law()
@@ -434,11 +443,11 @@ Traitors and the like can also be revived with the previous role mostly intact.
if(show_log == "Yes")
command_alert("Ion storm detected near the station. Please check all AI-controlled equipment for errors.", "Anomaly Alert")
world << sound('ionstorm.ogg')
+ //feedback_add_details("admin_verb","IONC") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
/client/proc/cmd_admin_rejuvenate(mob/living/M as mob in world)
set category = "Special Verbs"
set name = "Rejuvenate"
- // All admins should be authenticated, but... what if?
if(!holder)
src << "Only administrators may use this command."
return
@@ -498,6 +507,7 @@ Traitors and the like can also be revived with the previous role mostly intact.
message_admins("\red Admin [key_name_admin(usr)] healed / revived [key_name_admin(M)]!", 1)
else
alert("Admin revive disabled")
+ //feedback_add_details("admin_verb","REJU") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
/client/proc/cmd_admin_create_centcom_report()
set category = "Special Verbs"
@@ -529,6 +539,7 @@ Traitors and the like can also be revived with the previous role mostly intact.
world << sound('commandreport.ogg')
log_admin("[key_name(src)] has created a command report: [input]")
message_admins("[key_name_admin(src)] has created a command report", 1)
+ //feedback_add_details("admin_verb","CCR") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
/client/proc/cmd_admin_delete(atom/O as obj|mob|turf in world)
set category = "Admin"
@@ -541,6 +552,7 @@ Traitors and the like can also be revived with the previous role mostly intact.
if (alert(src, "Are you sure you want to delete:\n[O]\nat ([O.x], [O.y], [O.z])?", "Confirmation", "Yes", "No") == "Yes")
log_admin("[key_name(usr)] deleted [O] at ([O.x],[O.y],[O.z])")
message_admins("[key_name_admin(usr)] deleted [O] at ([O.x],[O.y],[O.z])", 1)
+ //feedback_add_details("admin_verb","DEL") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
del(O)
/client/proc/cmd_admin_list_open_jobs()
@@ -553,6 +565,7 @@ Traitors and the like can also be revived with the previous role mostly intact.
if(job_master)
for(var/datum/job/job in job_master.occupations)
src << "[job.title]: [job.total_positions]"
+ //feedback_add_details("admin_verb","LFS") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
/client/proc/cmd_admin_explosion(atom/O as obj|mob|turf in world)
set category = "Special Verbs"
@@ -579,7 +592,7 @@ Traitors and the like can also be revived with the previous role mostly intact.
explosion (O, devastation, heavy, light, flash)
log_admin("[key_name(usr)] created an explosion ([devastation],[heavy],[light],[flash]) at ([O.x],[O.y],[O.z])")
message_admins("[key_name_admin(usr)] created an explosion ([devastation],[heavy],[light],[flash]) at ([O.x],[O.y],[O.z])", 1)
-
+ //feedback_add_details("admin_verb","EXPL") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
return
else
return
@@ -602,6 +615,7 @@ Traitors and the like can also be revived with the previous role mostly intact.
empulse(O, heavy, light)
log_admin("[key_name(usr)] created an EM Pulse ([heavy],[light]) at ([O.x],[O.y],[O.z])")
message_admins("[key_name_admin(usr)] created an EM PUlse ([heavy],[light]) at ([O.x],[O.y],[O.z])", 1)
+ //feedback_add_details("admin_verb","EMP") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
return
else
@@ -629,6 +643,7 @@ Traitors and the like can also be revived with the previous role mostly intact.
return
M.gib()
+ //feedback_add_details("admin_verb","GIB") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
/client/proc/cmd_admin_gib_self()
set name = "Gibself"
@@ -637,6 +652,7 @@ Traitors and the like can also be revived with the previous role mostly intact.
return
else
mob.gib()
+ //feedback_add_details("admin_verb","GIBS") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
/*
/client/proc/cmd_manual_ban()
set name = "Manual Ban"
@@ -708,6 +724,7 @@ Traitors and the like can also be revived with the previous role mostly intact.
var/list/L = M.get_contents()
for(var/t in L)
usr << "[t]"
+ //feedback_add_details("admin_verb","CC") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
/client/proc/cmd_admin_remove_plasma(area/A as area)
set category = "Debug"
@@ -716,7 +733,7 @@ Traitors and the like can also be revived with the previous role mostly intact.
if(!holder)
src << "Only administrators may use this command."
return
-
+ //feedback_add_details("admin_verb","STATM") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
spawn(1)
for(var/turf/simulated/T in A)
if(T.air)
@@ -738,6 +755,7 @@ Traitors and the like can also be revived with the previous role mostly intact.
view = input("Select view range:", "FUCK YE", 7) in list(1,2,3,4,5,6,7,8,9,10,11,12,13,14,128)
else
view = world.view
+ //feedback_add_details("admin_verb","CVRA") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
/client/proc/admin_call_shuttle()
@@ -764,6 +782,7 @@ Traitors and the like can also be revived with the previous role mostly intact.
emergency_shuttle.incall()
world << "\blue Alert: The emergency shuttle has been called. It will arrive in [round(emergency_shuttle.timeleft()/60)] minutes."
world << sound('shuttlecalled.ogg')
+ //feedback_add_details("admin_verb","CSHUT") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
return
/client/proc/admin_cancel_shuttle()
@@ -782,6 +801,7 @@ Traitors and the like can also be revived with the previous role mostly intact.
if(confirm != "Yes") return
emergency_shuttle.recall()
+ //feedback_add_details("admin_verb","CCSHUT") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
return
@@ -808,6 +828,7 @@ Traitors and the like can also be revived with the previous role mostly intact.
usr << text("\red Attack Log for []", mob)
for(var/t in M.attack_log)
usr << t
+ //feedback_add_details("admin_verb","ATTL") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
/client/proc/everyone_random()
@@ -839,6 +860,7 @@ Traitors and the like can also be revived with the previous role mostly intact.
usr << "Remember: you can always disable the randomness by using the verb again, assuming the round hasn't started yet."
ticker.random_players = 1
+ //feedback_add_details("admin_verb","MER") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
/client/proc/toggle_gravity_on()
set category = "Debug"
@@ -854,6 +876,7 @@ Traitors and the like can also be revived with the previous role mostly intact.
A.gravitychange(1,A)
command_alert("CentComm is now beaming gravitons to your station. We appoligize for any inconvience.")
+ //feedback_add_details("admin_verb","TSGON") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
/client/proc/toggle_gravity_off()
set category = "Debug"
@@ -869,7 +892,9 @@ Traitors and the like can also be revived with the previous role mostly intact.
A.gravitychange(0,A)
command_alert("For budget reasons, Centcomm is no longer beaming gravitons to your station. We appoligize for any inconvience.")
-//CARN
+ //feedback_add_details("admin_verb","TSGOFF") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
+
+
/client/proc/toggle_random_events()
set category = "Server"
set name = "Toggle random events on/off"