mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-10 10:12:45 +00:00
tweaks to vermin spawning
Signed-off-by: Cael_Aislinn <cael_aislinn@yahoo.com.au>
This commit is contained in:
@@ -37,7 +37,7 @@ var/datum/roundinfo/roundinfo = new()
|
||||
var/vermin_min_spawntime = 3000 //between 5 (3000) and 15 (9000) minutes interval
|
||||
var/vermin_max_spawntime = 9000
|
||||
var/spawning_vermin = 0
|
||||
var/list/vermin_spawn_areas
|
||||
var/list/vermin_spawn_turfs
|
||||
|
||||
/datum/controller/gameticker/proc/pregame()
|
||||
login_music = pick('title1.ogg', 'title2.ogg') // choose title music!
|
||||
@@ -57,7 +57,16 @@ var/datum/roundinfo/roundinfo = new()
|
||||
while (!setup())
|
||||
|
||||
spawn(10)
|
||||
vermin_spawn_areas = list("/area/maintenance","/area/mine/maintenance")
|
||||
var/list/vermin_spawn_areas = list("/area/maintenance","/area/mine/maintenance","/area/crew_quarters/locker/locker_toilet","/area/crew_quarters/toilet")
|
||||
vermin_spawn_turfs = new/list()
|
||||
for(var/area_text in vermin_spawn_areas)
|
||||
var/area_base_type = text2path(area_text)
|
||||
for(var/area in typesof(area_base_type))
|
||||
var/list/area_turfs = get_area_turfs(area)
|
||||
for(var/turf/T in area_turfs)
|
||||
if(T.density)
|
||||
turfs -= T
|
||||
vermin_spawn_turfs.Add(area_turfs)
|
||||
|
||||
/datum/controller/gameticker/proc/setup()
|
||||
//Create and announce mode
|
||||
@@ -314,35 +323,20 @@ var/datum/roundinfo/roundinfo = new()
|
||||
world.Reboot()
|
||||
|
||||
//randomly spawn vermin in maintenance and other areas
|
||||
if(spawn_vermin && vermin_spawn_areas && vermin_spawn_areas.len)
|
||||
if(spawn_vermin && vermin_spawn_turfs && vermin_spawn_turfs.len)
|
||||
if(!spawning_vermin)
|
||||
spawning_vermin = 1
|
||||
spawn(rand(vermin_min_spawntime, vermin_max_spawntime))
|
||||
var/area_text = pick(vermin_spawn_areas)
|
||||
area_text = text2path(area_text)
|
||||
var/random_area = pick( typesof(area_text) )
|
||||
var/list/turfs = get_area_turfs(random_area)
|
||||
if(!turfs.len)
|
||||
turfs = get_area_turfs(pick(typesof(pick(vermin_spawn_areas))))
|
||||
//
|
||||
while(turfs.len > 0)
|
||||
var/turf/T = pick(turfs)
|
||||
turfs -= T
|
||||
if(T.density)
|
||||
continue
|
||||
var/bad = 0
|
||||
for(var/obj/I in T)
|
||||
if(I.density)
|
||||
bad = 1
|
||||
break
|
||||
if(bad)
|
||||
continue
|
||||
spawning_vermin = 0
|
||||
var/turf/T = pick(vermin_spawn_turfs)
|
||||
if(T)
|
||||
if(prob(50))
|
||||
new /mob/living/simple_animal/mouse(T)
|
||||
else
|
||||
new /obj/effect/critter/roach(T)
|
||||
break
|
||||
spawning_vermin = 0
|
||||
else
|
||||
//no turf, skip this time
|
||||
vermin_spawn_turfs.Remove(T)
|
||||
|
||||
return 1
|
||||
|
||||
|
||||
@@ -164,6 +164,7 @@
|
||||
atkcarbon = 1
|
||||
atksilicon = 0
|
||||
attacktext = "bites"
|
||||
layer = 2.1 //so they can hide under objects
|
||||
|
||||
Bump(var/mob/M)
|
||||
if(ishuman(M))
|
||||
|
||||
@@ -18,6 +18,7 @@
|
||||
response_harm = "splats the"
|
||||
density = 0
|
||||
var/color //brown, gray and white
|
||||
layer = 2.1 //so they can hide under objects
|
||||
|
||||
/mob/living/simple_animal/mouse/Life()
|
||||
..()
|
||||
|
||||
Reference in New Issue
Block a user