Final XenoArch Fixes (maybe)

This commit is contained in:
ZomgPonies
2013-10-30 03:33:07 -04:00
parent 1fe50a4e13
commit d31e276cf8
4 changed files with 262 additions and 18 deletions
+2 -2
View File
@@ -4,7 +4,7 @@
#define XENOARCH_SPREAD_CHANCE 15
#define ARTIFACT_SPAWN_CHANCE 20
var/list/artifact_spawning_turfs = list()
/datum/controller/game_controller/var/list/artifact_spawning_turfs = list()
/turf/simulated/mineral //wall piece
name = "Rock"
@@ -129,7 +129,7 @@ var/list/artifact_spawning_turfs = list()
//dont create artifact machinery in animal or plant digsites, or if we already have one
if(!artifact_find && digsite != 1 && digsite != 2 && prob(ARTIFACT_SPAWN_CHANCE))
artifact_find = new()
artifact_spawning_turfs.Add(src)
master_controller.artifact_spawning_turfs.Add(src)
if(!src.geological_data)
src.geological_data = new/datum/geosample(src)
@@ -126,14 +126,14 @@
artifact_distance = rand()
artifact_id = container.artifact_find.artifact_id
else
for(var/turf/simulated/mineral/holder in artifact_spawning_turfs)
if(holder.artifact_find)
var/dist = get_dist(container, holder) * 2
if(dist < holder.artifact_find.artifact_detect_range && dist < src.artifact_distance)
src.artifact_distance = dist
src.artifact_id = holder.artifact_find.artifact_id
for(var/turf/simulated/mineral/T in master_controller.artifact_spawning_turfs)
if(T.artifact_find)
var/cur_dist = get_dist(container, T) * 2
if( (artifact_distance < 0 || cur_dist < artifact_distance) && cur_dist <= T.artifact_find.artifact_detect_range )
artifact_distance = cur_dist + rand() * 2 - 1
artifact_id = T.artifact_find.artifact_id
else
artifact_spawning_turfs.Remove(holder)
master_controller.artifact_spawning_turfs.Remove(T)
/*
#undef FIND_PLANT
@@ -11,6 +11,7 @@
var/nearest_artifact_id = "unknown"
var/nearest_artifact_distance = -1
var/last_scan_time = 0
var/scan_delay = 25
/obj/item/device/ano_scanner/New()
..()
@@ -23,9 +24,9 @@
/obj/item/device/ano_scanner/interact(var/mob/user as mob)
var/message = "Background radiation levels detected."
if(nearest_artifact_distance >= 0)
message = "Exotic energy detected on wavelength '[nearest_artifact_id]' in a radius of [nearest_artifact_distance * 2]m"
message = "Exotic energy detected on wavelength '[nearest_artifact_id]' in a radius of [nearest_artifact_distance]m"
user << "<span class='info'>[message]</span>"
if(world.time - last_scan_time > 50)
if(world.time - last_scan_time >= scan_delay)
spawn(0)
scan()
@@ -34,10 +35,14 @@
last_scan_time = world.time
nearest_artifact_distance = -1
for(var/turf/simulated/mineral/T in artifact_spawning_turfs)
if(T.artifact_find && T.z == src.z)
var/cur_dist = get_dist(src.loc, T)
if(nearest_artifact_distance < 0 || cur_dist < nearest_artifact_distance)
nearest_artifact_distance = cur_dist + rand() * 2 - 1
nearest_artifact_id = T.artifact_find.artifact_id
src.visible_message("\icon[src] <span class='info>[src] clicks.</span>")
var/turf/cur_turf = get_turf(src)
for(var/turf/simulated/mineral/T in master_controller.artifact_spawning_turfs)
if(T.artifact_find)
if(T.z == cur_turf.z)
var/cur_dist = get_dist(cur_turf, T) * 2
if( (nearest_artifact_distance < 0 || cur_dist < nearest_artifact_distance) && cur_dist <= T.artifact_find.artifact_detect_range )
nearest_artifact_distance = cur_dist + rand() * 2 - 1
nearest_artifact_id = T.artifact_find.artifact_id
else
master_controller.artifact_spawning_turfs.Remove(T)
cur_turf.visible_message("<span class='info'>[src] clicks.</span>")