Adds admin_spawned atom var that is set when something is spawned by admin means or is var edited.

This can be bypassed by using debug-game if needed.
Stats will not be tracked for admin spawned atoms
This commit is contained in:
Shadowlight213
2016-07-20 15:26:24 -07:00
parent a117772f95
commit ed55cefcc2
12 changed files with 27 additions and 9 deletions
+5
View File
@@ -6,6 +6,7 @@
var/list/fingerprintshidden
var/fingerprintslast = null
var/list/blood_DNA
var/admin_spawned = 0 //was this spawned by an admin? used for stat tracking stuff.
///Chemistry.
var/datum/reagents/reagents = null
@@ -440,3 +441,7 @@ var/list/blood_splatter_icons = list()
//Hook for running code when a dir change occurs
/atom/proc/setDir(newdir)
dir = newdir
/atom/on_varedit(modified_var)
if(!Debug2)
admin_spawned = TRUE
+2 -1
View File
@@ -206,7 +206,8 @@
if(power_used)
use_power(power_used)
new dispense_type(loc)
var/atom/A = new dispense_type(loc)
A.admin_spawned = admin_spawned
if(create_sound)
playsound(src, create_sound, 50, 1)
+1
View File
@@ -339,6 +339,7 @@
var/obj/machinery/syndicatebomb/B = src.loc
for(var/i = 0; i < amt_summon; i++)
var/atom/movable/X = new summon_path
X.admin_spawned = TRUE
X.loc = get_turf(src)
if(prob(50))
for(var/j = 1, j <= rand(1, 3), j++)
@@ -19,6 +19,7 @@
for(var/i=1, i<=deliveryamt, i++)
var/atom/movable/x = new spawner_type
x.admin_spawned = admin_spawned
x.loc = T
if(prob(50))
for(var/j = 1, j <= rand(1, 3), j++)
+2 -1
View File
@@ -633,7 +633,8 @@ var/global/BSACooldown = 0
var/turf/T = get_turf(usr.loc)
T.ChangeTurf(chosen)
else
new chosen(usr.loc)
var/atom/A = new chosen(usr.loc)
A.admin_spawned = TRUE
log_admin("[key_name(usr)] spawned [chosen] at ([usr.x],[usr.y],[usr.z])")
feedback_add_details("admin_verb","SA") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
+1
View File
@@ -1953,6 +1953,7 @@
else
var/atom/O = new path(target)
if(O)
O.admin_spawned = TRUE
O.setDir(obj_dir)
if(obj_name)
O.name = obj_name
@@ -38,6 +38,7 @@
if(be_drone == "No" || qdeleted(src))
return
var/mob/living/simple_animal/drone/D = new drone_type(get_turf(loc))
D.admin_spawned = admin_spawned
D.key = user.key
qdel(src)
@@ -25,9 +25,10 @@
if(health > 0)
return
else
feedback_set_details("megafauna_kills","[initial(name)]")
if(!elimination) //used so the achievment only occurs for the last legion to die.
grant_achievement(medal_type,score_type)
if(!admin_spawned)
feedback_set_details("megafauna_kills","[initial(name)]")
if(!elimination) //used so the achievment only occurs for the last legion to die.
grant_achievement(medal_type,score_type)
..()
/mob/living/simple_animal/hostile/megafauna/gib()
@@ -79,6 +80,9 @@
if(medal_type == "Boss") //Don't award medals if the medal type isn't set
return
if(admin_spawned)
return
if(global.medal_hub && global.medal_pass && global.medals_enabled)
for(var/mob/living/L in view(7,src))
if(L.stat)
@@ -219,6 +219,7 @@
/mob/living/simple_animal/hostile/asteroid/hivelord/OpenFire(the_target)
if(world.time >= ranged_cooldown)
var/mob/living/simple_animal/hostile/asteroid/hivelordbrood/A = new brood_type(src.loc)
A.admin_spawned = admin_spawned
A.GiveTarget(target)
A.friends = friends
A.faction = faction
@@ -1018,7 +1019,7 @@
if(other != src)
last_tendril = FALSE
break
if(last_tendril)
if(last_tendril && !admin_spawned)
if(global.medal_hub && global.medal_pass && global.medals_enabled)
for(var/mob/living/L in view(7,src))
if(L.stat)
@@ -41,6 +41,7 @@
return 0
spawn_delay = world.time + spawn_time
var/mob/living/simple_animal/L = new mob_type(src.loc)
L.admin_spawned = admin_spawned //If we were admin spawned, lets have our children count as that as well.
spawned_mobs += L
L.nest = src
L.faction = src.faction
+1 -1
View File
@@ -38,7 +38,7 @@
for(var/varName in newVars)
if(varName in summoned_object.vars)
summoned_object.vars[varName] = newVars[varName]
summoned_object.admin_spawned = TRUE
if(summon_lifespan)
QDEL_IN(summoned_object, summon_lifespan)
+3 -2
View File
@@ -188,10 +188,11 @@ TICKLAG 0.5
#CROSS_COMMS_NAME
## Hub address for tracking stats
MEDAL_HUB_ADDRESS
## example: Hubmakerckey.Hubname
#MEDAL_HUB_ADDRESS
## Password for the hub page
MEDAL_HUB_PASSWORD
#MEDAL_HUB_PASSWORD
## Uncomment this to let players see their own notes (they can still be set by admins only)
#SEE_OWN_NOTES