mirror of
https://github.com/VOREStation/VOREStation.git
synced 2026-01-30 02:44:26 +00:00
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:
@@ -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"
|
||||
|
||||
@@ -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)
|
||||
32
code/modules/mob/living/simple_animal/aliens/alien_vr.dm
Normal file
32
code/modules/mob/living/simple_animal/aliens/alien_vr.dm
Normal 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()
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
@@ -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
|
||||
@@ -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
|
||||
|
||||
@@ -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"
|
||||
|
||||
Reference in New Issue
Block a user