more safepick
This commit is contained in:
xxalpha
2016-01-18 03:13:11 +00:00
parent a2ecfc0fc4
commit 577488e0d8
10 changed files with 24 additions and 16 deletions
@@ -37,8 +37,9 @@
if(!src || qdeleted(src))
return
var/turf/T = pick(get_area_turfs(picked_area))
var/turf/T = safepick(get_area_turfs(picked_area))
if(!T)
return
var/obj/docking_port/stationary/landing_zone = new /obj/docking_port/stationary(T)
landing_zone.id = "assault_pod(\ref[src])"
landing_zone.name = "Landing Zone"
+2 -2
View File
@@ -67,8 +67,8 @@ var/list/teleportlocs = list()
for(var/area/AR in world)
if(istype(AR, /area/shuttle) || istype(AR, /area/wizard_station)) continue
if(teleportlocs.Find(AR.name)) continue
var/turf/picked = pick(get_area_turfs(AR.type))
if (picked.z == ZLEVEL_STATION)
var/turf/picked = safepick(get_area_turfs(AR.type))
if (picked && (picked.z == ZLEVEL_STATION))
teleportlocs += AR.name
teleportlocs[AR.name] = AR
+9 -4
View File
@@ -16,7 +16,7 @@
continue
turfs.Add(T)
var/turf/T = pick_n_take(turfs)
var/turf/T = safepick(turfs)
if(!T)
src << "Nowhere to jump to!"
return
@@ -143,18 +143,23 @@
return
var/area/A = input(usr, "Pick an area.", "Pick an area") in sortedAreas|null
if(A && istype(A))
admin_forcemove(M, pick(get_area_turfs(A)))
feedback_add_details("admin_verb","SMOB") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
log_admin("[key_name(usr)] teleported [key_name(M)] to [A]")
message_admins("[key_name_admin(usr)] teleported [key_name_admin(M)] to [A]")
if(admin_forcemove(M, safepick(get_area_turfs(A))))
log_admin("[key_name(usr)] teleported [key_name(M)] to [A]")
message_admins("[key_name_admin(usr)] teleported [key_name_admin(M)] to [A]")
else
src << "Failed to move mob to a valid location."
/proc/admin_forcemove(mob/mover, atom/newloc)
if(!newloc)
return 0
if(mover.buckled)
mover.buckled.unbuckle_mob()
if(mover.buckled_mob)
mover.unbuckle_mob(force=1)
mover.loc = newloc
mover.on_forcemove(newloc)
return 1
/mob/proc/on_forcemove(atom/newloc)
return
+1 -1
View File
@@ -26,7 +26,7 @@
priority_announce("Localized energetic flux wave detected on long range scanners. Expected location of impact: [impact_area.name].", "Anomaly Alert")
/datum/round_event/anomaly/start()
var/turf/T = pick(get_area_turfs(impact_area))
var/turf/T = safepick(get_area_turfs(impact_area))
if(T)
newAnomaly = new /obj/effect/anomaly/flux(T)
+2 -2
View File
@@ -15,14 +15,14 @@
/datum/round_event/anomaly/anomaly_bluespace/start()
var/turf/T = pick(get_area_turfs(impact_area))
var/turf/T = safepick(get_area_turfs(impact_area))
if(T)
newAnomaly = new /obj/effect/anomaly/bluespace(T)
/datum/round_event/anomaly/anomaly_bluespace/end()
if(newAnomaly.loc)//If it hasn't been neutralized, it's time to warp half the station away jeez
var/turf/T = pick(get_area_turfs(impact_area))
var/turf/T = safepick(get_area_turfs(impact_area))
if(T)
// Calculate new position (searches through beacons in world)
var/obj/item/device/radio/beacon/chosen
+1 -1
View File
@@ -15,7 +15,7 @@
/datum/round_event/anomaly/anomaly_flux/start()
var/turf/T = pick(get_area_turfs(impact_area))
var/turf/T = safepick(get_area_turfs(impact_area))
if(T)
newAnomaly = new /obj/effect/anomaly/flux(T)
+1 -1
View File
@@ -14,6 +14,6 @@
priority_announce("Gravitational anomaly detected on long range scanners. Expected location: [impact_area.name].", "Anomaly Alert")
/datum/round_event/anomaly/anomaly_grav/start()
var/turf/T = pick(get_area_turfs(impact_area))
var/turf/T = safepick(get_area_turfs(impact_area))
if(T)
newAnomaly = new /obj/effect/anomaly/grav(T)
+1 -1
View File
@@ -14,7 +14,7 @@
priority_announce("Pyroclastic anomaly detected on long range scanners. Expected location: [impact_area.name].", "Anomaly Alert")
/datum/round_event/anomaly/anomaly_pyro/start()
var/turf/T = pick(get_area_turfs(impact_area))
var/turf/T = safepick(get_area_turfs(impact_area))
if(T)
newAnomaly = new /obj/effect/anomaly/pyro(T)
+1 -1
View File
@@ -14,6 +14,6 @@
priority_announce("Localized high-intensity vortex anomaly detected on long range scanners. Expected location: [impact_area.name]", "Anomaly Alert")
/datum/round_event/anomaly/anomaly_vortex/start()
var/turf/T = pick(get_area_turfs(impact_area))
var/turf/T = safepick(get_area_turfs(impact_area))
if(T)
newAnomaly = new /obj/effect/anomaly/bhole(T)
+3 -1
View File
@@ -407,7 +407,7 @@
if(prob((FUZZY_CHANCE_LOW+FUZZY_CHANCE_HIGH)/2))
TARGET = pick(target_filter(ultra_range(MIN_RANGE_FIND,src,1)))
else
TARGET = pick(get_area_turfs(job2area(myjob)))
TARGET = safepick(get_area_turfs(job2area(myjob)))
tryWalk(TARGET)
LAST_TARGET = TARGET
@@ -424,6 +424,8 @@
/mob/living/carbon/human/interactive/proc/walk2derpless(target)
set background = 1
if(!target)
return 0
var/turf/T = get_turf(target)
var/turf/D = get_step(src,dir)
if(D)