Attempted wilderness performance increase (#1841)

* Attempted wilderness performance increase

* might as well

* Edit comments

* Moves alien change out of polaris file
This commit is contained in:
Cyantime
2017-07-19 15:30:22 -04:00
committed by Arokha Sieyes
parent 97e851f2e4
commit 3f48e8ae07
8 changed files with 137 additions and 6 deletions

View File

@@ -5,6 +5,8 @@
icon_state = "rup"
var/spawn_nothing_percentage = 0 // this variable determines the likelyhood that this random object will not spawn anything
var/spawned_thing //VOREStation Edit
// creates a new object and deletes itself
/obj/random/New()
@@ -28,6 +30,13 @@
A.pixel_x = pixel_x
A.pixel_y = pixel_y
//VOREStation Edit
spawned_thing = A
/obj/random/Destroy()
spawned_thing = null
return ..()
//VOREStation Edit End
/obj/random/single
name = "randomly spawned object"

View File

@@ -193,4 +193,21 @@
this_mob.minbodytemp = 200
return this_mob
else
return mob
return mob
/obj/random/outside_mob/spawn_item()
..()
var/datum/map_z_level/z_level = get_z_level_datum(spawned_thing)
if(!istype(z_level, /datum/map_z_level/tether/wilderness))
return
if(!istype(spawned_thing, /mob/living/simple_animal))
return
var/datum/map_z_level/tether/wilderness/wilderness = z_level
if(wilderness.activated)
return
var/mob/living/simple_animal/M = spawned_thing
wilderness.frozen_mobs += M
M.life_disabled = 1
for(var/i = 1 to 20) //wander the mobs around so they aren't always in the same spots
step_rand(M)
sleep(2)

View File

@@ -0,0 +1,32 @@
/mob/living/simple_animal/hostile/alien/proc/disable_for_wilderness()
var/datum/map_z_level/z_level = get_z_level_datum(src)
if(!istype(z_level, /datum/map_z_level/tether/wilderness))
return
var/datum/map_z_level/tether/wilderness/wilderness = z_level
if(wilderness.activated)
return
life_disabled = 1
wilderness.frozen_mobs += src
for(var/i = 1 to 20)
step_rand(src)
sleep(2)
/mob/living/simple_animal/hostile/alien/wilderness_spawn/New()
..()
disable_for_wilderness()
/mob/living/simple_animal/hostile/alien/drone/wilderness_spawn/New()
..()
disable_for_wilderness()
/mob/living/simple_animal/hostile/alien/sentinel/wilderness_spawn/New()
..()
disable_for_wilderness()
/mob/living/simple_animal/hostile/alien/queen/wilderness_spawn/New()
..()
disable_for_wilderness()
/mob/living/simple_animal/hostile/alien/queen/large/wilderness_spawn/New()
..()
disable_for_wilderness()

View File

@@ -154,6 +154,7 @@
var/follow_until_time = 0 // Give up following when we reach this time (0 = never)
var/annoyed = 0 // Do people keep distract-kiting us?
////// ////// //////
var/life_disabled = 0 //VOREStation Edit -- For performance reasons
/mob/living/simple_animal/New()
..()
@@ -256,6 +257,12 @@
icon_state = initial(icon_state)
/mob/living/simple_animal/Life()
//VOREStation Edit
if(life_disabled)
return 0
//VOREStation Edit End
..()
//Health

View File

@@ -155,12 +155,12 @@
"cY" = (/obj/structure/shuttle/engine/heater{icon_state = "heater"; dir = 4},/turf/simulated/floor/virgo3b_indoors{desc = "Quite dirty!"; icon = 'icons/turf/outdoors.dmi'; icon_state = "dirt-dark"; name = "dirt"},/area/tether/surfacebase/outside/wilderness)
"cZ" = (/turf/simulated/wall/sandstonediamond,/area/tether/surfacebase/temple)
"da" = (/turf/simulated/floor/virgo3b_indoors{desc = "Quite dirty!"; icon = 'icons/turf/outdoors.dmi'; icon_state = "dirt-dark"; name = "dirt"},/area/tether/surfacebase/temple)
"db" = (/mob/living/simple_animal/hostile/alien/drone,/turf/simulated/floor/virgo3b_indoors{desc = "Quite dirty!"; icon = 'icons/turf/outdoors.dmi'; icon_state = "dirt-dark"; name = "dirt"},/area/tether/surfacebase/temple)
"dc" = (/mob/living/simple_animal/hostile/alien,/turf/simulated/floor/virgo3b_indoors{desc = "Quite dirty!"; icon = 'icons/turf/outdoors.dmi'; icon_state = "dirt-dark"; name = "dirt"},/area/tether/surfacebase/temple)
"dd" = (/mob/living/simple_animal/hostile/alien/sentinel,/turf/simulated/floor/virgo3b_indoors{desc = "Quite dirty!"; icon = 'icons/turf/outdoors.dmi'; icon_state = "dirt-dark"; name = "dirt"},/area/tether/surfacebase/temple)
"db" = (/mob/living/simple_animal/hostile/alien/drone/wilderness_spawn,/turf/simulated/floor/virgo3b_indoors{desc = "Quite dirty!"; icon = 'icons/turf/outdoors.dmi'; icon_state = "dirt-dark"; name = "dirt"},/area/tether/surfacebase/temple)
"dc" = (/mob/living/simple_animal/hostile/alien/wilderness_spawn,/turf/simulated/floor/virgo3b_indoors{desc = "Quite dirty!"; icon = 'icons/turf/outdoors.dmi'; icon_state = "dirt-dark"; name = "dirt"},/area/tether/surfacebase/temple)
"dd" = (/mob/living/simple_animal/hostile/alien/sentinel/wilderness_spawn,/turf/simulated/floor/virgo3b_indoors{desc = "Quite dirty!"; icon = 'icons/turf/outdoors.dmi'; icon_state = "dirt-dark"; name = "dirt"},/area/tether/surfacebase/temple)
"de" = (/obj/item/weapon/material/star,/turf/simulated/floor/virgo3b_indoors{desc = "Quite dirty!"; icon = 'icons/turf/outdoors.dmi'; icon_state = "dirt-dark"; name = "dirt"},/area/tether/surfacebase/temple)
"df" = (/mob/living/simple_animal/hostile/alien/queen,/turf/simulated/floor/virgo3b_indoors{desc = "Quite dirty!"; icon = 'icons/turf/outdoors.dmi'; icon_state = "dirt-dark"; name = "dirt"},/area/tether/surfacebase/temple)
"dg" = (/obj/effect/decal/mecha_wreckage/phazon{anchored = 1; name = "rusted Phazon wreckage"},/mob/living/simple_animal/hostile/alien/queen/large,/turf/simulated/floor/virgo3b_indoors{desc = "Quite dirty!"; icon = 'icons/turf/outdoors.dmi'; icon_state = "dirt-dark"; name = "dirt"},/area/tether/surfacebase/temple)
"df" = (/mob/living/simple_animal/hostile/alien/queen/wilderness_spawn,/turf/simulated/floor/virgo3b_indoors{desc = "Quite dirty!"; icon = 'icons/turf/outdoors.dmi'; icon_state = "dirt-dark"; name = "dirt"},/area/tether/surfacebase/temple)
"dg" = (/obj/effect/decal/mecha_wreckage/phazon{anchored = 1; name = "rusted Phazon wreckage"},/mob/living/simple_animal/hostile/alien/queen/large/wilderness_spawn,/turf/simulated/floor/virgo3b_indoors{desc = "Quite dirty!"; icon = 'icons/turf/outdoors.dmi'; icon_state = "dirt-dark"; name = "dirt"},/area/tether/surfacebase/temple)
"dh" = (/obj/item/weapon/cell/infinite,/obj/effect/gibspawner/human,/turf/simulated/floor/virgo3b_indoors{desc = "Quite dirty!"; icon = 'icons/turf/outdoors.dmi'; icon_state = "dirt-dark"; name = "dirt"},/area/tether/surfacebase/temple)
"di" = (/obj/item/weapon/material/sword/katana,/turf/simulated/floor/virgo3b_indoors{desc = "Quite dirty!"; icon = 'icons/turf/outdoors.dmi'; icon_state = "dirt-dark"; name = "dirt"},/area/tether/surfacebase/temple)

View File

@@ -231,3 +231,48 @@
name = "Empty"
flags = MAP_LEVEL_PLAYER
transit_chance = 82
/datum/map_z_level/tether/wilderness
name = "Wilderness"
flags = MAP_LEVEL_PLAYER
var/activated = 0
var/list/frozen_mobs = list()
/datum/map_z_level/tether/wilderness/proc/activate_mobs()
if(activated && isemptylist(frozen_mobs))
return
activated = 1
for(var/mob/living/simple_animal/M in frozen_mobs)
M.life_disabled = 0
frozen_mobs -= M
frozen_mobs.Cut()
/datum/map_z_level/tether/wilderness/wild_1
z = Z_LEVEL_SURFACE_WILDERNESS_1
/datum/map_z_level/tether/wilderness/wild_2
z = Z_LEVEL_SURFACE_WILDERNESS_2
/datum/map_z_level/tether/wilderness/wild_3
z = Z_LEVEL_SURFACE_WILDERNESS_3
/datum/map_z_level/tether/wilderness/wild_4
z = Z_LEVEL_SURFACE_WILDERNESS_4
/datum/map_z_level/tether/wilderness/wild_5
z = Z_LEVEL_SURFACE_WILDERNESS_5
/datum/map_z_level/tether/wilderness/wild_6
z = Z_LEVEL_SURFACE_WILDERNESS_6
/datum/map_z_level/tether/wilderness/wild_crash
z = Z_LEVEL_SURFACE_WILDERNESS_CRASH
/datum/map_z_level/tether/wilderness/wild_ruins
z = Z_LEVEL_SURFACE_WILDERNESS_RUINS
/proc/get_z_level_datum(atom/A)
var/turf/T = get_turf(A)
var/datum/map_z_level/z_level = using_map.zlevels["[T.z]"]
if(z_level)
return z_level

View File

@@ -81,6 +81,26 @@
else
teleport_y = src.y
/obj/effect/step_trigger/teleporter/wild/Trigger(var/atom/movable/A)
..()
var/datum/map_z_level/z_level = get_z_level_datum(A)
if(!istype(z_level, /datum/map_z_level/tether/wilderness))
return
var/datum/map_z_level/tether/wilderness/wilderness = z_level
if(wilderness.activated)
return
if(isliving(A))
var/mob/living/M = A
if(!M.is_dead() && M.client)
wilderness.activate_mobs()
return
for(var/mob/living/M in A)
if(!istype(M))
continue
if(!M.is_dead() && M.client)
wilderness.activate_mobs()
return
/obj/effect/step_trigger/teleporter/wild/from_wild
..()
teleport_z = Z_LEVEL_SURFACE_LOW

View File

@@ -1883,6 +1883,7 @@
#include "code\modules\mob\living\simple_animal\simple_animal.dm"
#include "code\modules\mob\living\simple_animal\simple_animal_vr.dm"
#include "code\modules\mob\living\simple_animal\aliens\alien.dm"
#include "code\modules\mob\living\simple_animal\aliens\alien_vr.dm"
#include "code\modules\mob\living\simple_animal\aliens\creature.dm"
#include "code\modules\mob\living\simple_animal\aliens\drone.dm"
#include "code\modules\mob\living\simple_animal\aliens\faithless.dm"