diff --git a/code/game/objects/effects/spiders.dm b/code/game/objects/effects/spiders.dm
index d357740a6f..68f57112cb 100644
--- a/code/game/objects/effects/spiders.dm
+++ b/code/game/objects/effects/spiders.dm
@@ -95,15 +95,16 @@
anchored = 0
layer = 2.7
health = 3
- var/amount_grown = 0
+ var/amount_grown = -1
var/obj/machinery/atmospherics/unary/vent_pump/entry_vent
var/travelling_in_vent = 0
New()
pixel_x = rand(6,-6)
pixel_y = rand(6,-6)
+ processing_objects.Add(src)
//50% chance to grow up
if(prob(50))
- processing_objects.Add(src)
+ amount_grown = 1
/obj/effect/spider/spiderling/Bump(atom/user)
if(istype(user, /obj/structure/table))
@@ -134,8 +135,8 @@
entry_vent = null
return
var/obj/machinery/atmospherics/unary/vent_pump/exit_vent = pick(vents)
- if(prob(50))
- src.visible_message("[src] scrambles into the ventillation ducts!")
+ /*if(prob(50))
+ src.visible_message("[src] scrambles into the ventillation ducts!")*/
spawn(rand(20,60))
loc = exit_vent
@@ -164,21 +165,24 @@
entry_vent = null
//=================
- else if(prob(33))
- var/list/nearby = oview(10, src)
+ else if(prob(25))
+ var/list/nearby = oview(5, src)
if(nearby.len)
var/target_atom = pick(nearby)
- walk_to(src, target_atom)
- if(prob(40))
+ walk_to(src, target_atom, 5)
+ if(prob(25))
src.visible_message("\blue \the [src] skitters[pick(" away"," around","")].")
- else if(prob(10))
+ else if(prob(5))
//ventcrawl!
for(var/obj/machinery/atmospherics/unary/vent_pump/v in view(7,src))
if(!v.welded)
entry_vent = v
- walk_to(src, entry_vent, 1)
+ walk_to(src, entry_vent, 5)
break
- if(isturf(loc))
+
+ if(prob(1))
+ src.visible_message("\blue \the [src] chitters.")
+ if(isturf(loc) && amount_grown > 0)
amount_grown += rand(0,2)
if(amount_grown >= 100)
var/spawn_type = pick(typesof(/mob/living/simple_animal/hostile/giant_spider))
diff --git a/code/modules/events/infestation.dm b/code/modules/events/infestation.dm
index 04dc7d46a1..8cc42d32fd 100644
--- a/code/modules/events/infestation.dm
+++ b/code/modules/events/infestation.dm
@@ -11,7 +11,7 @@
#define VERM_MICE 0
#define VERM_LIZARDS 1
-#define VERM_SLIMES 2
+#define VERM_SPIDERS 2
/datum/event/infestation
announceWhen = 10
@@ -81,20 +81,23 @@
spawn_types = list(/mob/living/simple_animal/lizard)
max_number = 6
vermstring = "lizards"
- if(VERM_SLIMES)
- spawn_types = list(/mob/living/carbon/slime)
- max_number = 3
- vermstring = "slimes"
+ if(VERM_SPIDERS)
+ spawn_types = list(/obj/effect/spider/spiderling)
+ max_number = 6
+ vermstring = "spiders"
spawn(0)
var/num = rand(2,max_number)
while(turfs.len > 0 && num > 0)
var/turf/simulated/floor/T = pick(turfs)
turfs.Remove(T)
- var/spawn_type = pick(spawn_types)
- new spawn_type(T)
num--
- //world << "[vermstring] spawned in [spawn_area_type]"
+ if(vermin == VERM_SPIDERS)
+ var/obj/effect/spider/spiderling/S = new(T)
+ S.amount_grown = -1
+ else
+ var/spawn_type = pick(spawn_types)
+ new spawn_type(T)
/datum/event/infestation/announce()
command_alert("Bioscans indicate that [vermstring] have been breeding in [locstring]. Clear them out, before this starts to affect productivity.", "Vermin infestation")
@@ -111,4 +114,4 @@
#undef VERM_MICE
#undef VERM_LIZARDS
-#undef VERM_SLIMES
\ No newline at end of file
+#undef VERM_SPIDERS
\ No newline at end of file