diff --git a/code/game/magic/Uristrunes.dm b/code/game/magic/Uristrunes.dm
index 6234c76454..6e0abd177e 100644
--- a/code/game/magic/Uristrunes.dm
+++ b/code/game/magic/Uristrunes.dm
@@ -126,6 +126,6 @@ var/list/uristrune_cache = list()
result.Insert(I3, "", frame = 7, delay = 2)
result.Insert(I2, "", frame = 8, delay = 2)
- uristrune_cache[lookup] = result
+ uristrune_cache[lookup] = result
return result
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/event_dynamic.dm b/code/modules/events/event_dynamic.dm
index 38e86ec0e5..4366293cd5 100644
--- a/code/modules/events/event_dynamic.dm
+++ b/code/modules/events/event_dynamic.dm
@@ -47,13 +47,13 @@
possibleEvents[/datum/event/infestation] = 50 + 25 * active_with_role["Janitor"]
possibleEvents[/datum/event/communications_blackout] = 50 + 25 * active_with_role["AI"] + active_with_role["Scientist"] * 25
- possibleEvents[/datum/event/ionstorm] = active_with_role["AI"] * 25 + active_with_role["Cyborg"] * 25 + active_with_role["Engineer"] * 10 + active_with_role["Scientist"] * 5
- possibleEvents[/datum/event/grid_check] = 10 * active_with_role["Engineer"]
+ possibleEvents[/datum/event/ionstorm] = 25 + active_with_role["AI"] * 25 + active_with_role["Cyborg"] * 25 + active_with_role["Engineer"] * 10 + active_with_role["Scientist"] * 5
+ possibleEvents[/datum/event/grid_check] = 25 + 10 * active_with_role["Engineer"]
possibleEvents[/datum/event/electrical_storm] = 75 + 25 * active_with_role["Janitor"] + 5 * active_with_role["Engineer"]
if(!spacevines_spawned)
possibleEvents[/datum/event/spacevine] = 5 + 10 * active_with_role["Engineer"]
- if(active_with_role["Engineer"] > 0 && minutes_passed >= 30) // Give engineers time to set up engine
+ if(minutes_passed >= 30) // Give engineers time to set up engine
possibleEvents[/datum/event/meteor_wave] = 20 * active_with_role["Engineer"]
possibleEvents[/datum/event/meteor_shower] = 80 * active_with_role["Engineer"]
possibleEvents[/datum/event/blob] = 30 * active_with_role["Engineer"]
@@ -64,8 +64,8 @@
possibleEvents[/datum/event/spontaneous_appendicitis] = active_with_role["Medical"] * 75
possibleEvents[/datum/event/viral_outbreak] = active_with_role["Medical"] * 5
+ possibleEvents[/datum/event/prison_break] = active_with_role["Security"] * 50
if(active_with_role["Security"] > 0)
- possibleEvents[/datum/event/prison_break] = active_with_role["Security"] * 50
if(!sent_spiders_to_station)
possibleEvents[/datum/event/spider_infestation] = max(active_with_role["Security"], 5) + 5
if(aliens_allowed && !sent_aliens_to_station)
@@ -73,6 +73,15 @@
if(!sent_ninja_to_station && toggle_space_ninja)
possibleEvents[/datum/event/space_ninja] = max(active_with_role["Security"], 5)
+ // Debug code below here, very useful for testing so don't delete please.
+ /*var/debug_message = "Firing random event. "
+ for(var/V in active_with_role)
+ debug_message += "#[V]:[active_with_role[V]] "
+ debug_message += "||| "
+ for(var/V in possibleEvents)
+ debug_message += "[V]:[possibleEvents[V]]"
+ message_admins(debug_message)*/
+
var/picked_event = pickweight(possibleEvents)
if(!picked_event)
return
@@ -160,32 +169,32 @@
for(var/mob/M in player_list)
if(!M.client || M.client.inactivity > 10 * 10 * 60) // longer than 10 minutes AFK counts them as inactive
continue
- switch(role)
- if("Engineer")
- if(istype(M, /mob/living/silicon/robot) && M:module && M:module.name == "engineering robot module")
- active_with_role["Engineer"]++
- if(M.mind.assigned_role in list("Chief Engineer", "Station Engineer"))
- active_with_role["Engineer"]++
- if("Medical")
- if(istype(M, /mob/living/silicon/robot) && M:module && M:module.name == "medical robot module")
- active_with_role["Medical"]++
- if(M.mind.assigned_role in list("Chief Medical Officer", "Medical Doctor"))
- active_with_role["Medical"]++
- if("Security")
- if(istype(M, /mob/living/silicon/robot) && M:module && M:module.name == "security robot module")
- active_with_role["Security"]++
- if(M.mind.assigned_role in security_positions)
- active_with_role["Security"]++
- if("Scientist")
- if(M.mind.assigned_role in list("Research Director", "Scientist"))
- active_with_role["Scientist"]++
- if("AI")
- if(M.mind.assigned_role == "AI")
- active_with_role["AI"]++
- if("Cyborg")
- if(M.mind.assigned_role == "Cyborg")
- active_with_role["Cyborg"]++
- if("Janitor")
- if(M.mind.assigned_role == "Janitor")
- active_with_role["Janitor"]++
+
+ if(istype(M, /mob/living/silicon/robot) && M:module && M:module.name == "engineering robot module")
+ active_with_role["Engineer"]++
+ if(M.mind.assigned_role in list("Chief Engineer", "Station Engineer"))
+ active_with_role["Engineer"]++
+
+ if(istype(M, /mob/living/silicon/robot) && M:module && M:module.name == "medical robot module")
+ active_with_role["Medical"]++
+ if(M.mind.assigned_role in list("Chief Medical Officer", "Medical Doctor"))
+ active_with_role["Medical"]++
+
+ if(istype(M, /mob/living/silicon/robot) && M:module && M:module.name == "security robot module")
+ active_with_role["Security"]++
+ if(M.mind.assigned_role in security_positions)
+ active_with_role["Security"]++
+
+ if(M.mind.assigned_role in list("Research Director", "Scientist"))
+ active_with_role["Scientist"]++
+
+ if(M.mind.assigned_role == "AI")
+ active_with_role["AI"]++
+
+ if(M.mind.assigned_role == "Cyborg")
+ active_with_role["Cyborg"]++
+
+ if(M.mind.assigned_role == "Janitor")
+ active_with_role["Janitor"]++
+
return active_with_role
diff --git a/code/modules/events/event_manager.dm b/code/modules/events/event_manager.dm
index 40f8483ca4..8cc24df656 100644
--- a/code/modules/events/event_manager.dm
+++ b/code/modules/events/event_manager.dm
@@ -3,7 +3,7 @@ var/list/potentialRandomEvents = typesof(/datum/event) - /datum/event
//var/list/potentialRandomEvents = typesof(/datum/event) - /datum/event - /datum/event/spider_infestation - /datum/event/alien_infestation
var/eventTimeLower = 15000 //15 minutes
-var/eventTimeUpper = 30000 //45 minutes
+var/eventTimeUpper = 30000 //30 minutes
var/scheduledEvent = null
@@ -25,11 +25,11 @@ var/scheduledEvent = null
playercount_modifier = 1.2
if(11 to 15)
playercount_modifier = 1.1
- if(16 to 20)
+ if(16 to 25)
playercount_modifier = 1
- if(21 to 25)
+ if(26 to 35)
playercount_modifier = 0.9
- if(26 to 100000)
+ if(36 to 100000)
playercount_modifier = 0.8
scheduledEvent = world.timeofday + rand(eventTimeLower, eventTimeUpper) * playercount_modifier
diff --git a/code/modules/events/infestation.dm b/code/modules/events/infestation.dm
index 04dc7d46a1..dd9793cc66 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,24 @@
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 +115,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
diff --git a/code/modules/events/viral_infection.dm b/code/modules/events/viral_infection.dm
index 3644905d8c..2798e51dfb 100644
--- a/code/modules/events/viral_infection.dm
+++ b/code/modules/events/viral_infection.dm
@@ -8,7 +8,7 @@ datum/event/viral_infection/setup()
severity = rand(1, 3)
datum/event/viral_infection/announce()
- command_alert("Confirmed outbreak of level [severity + rand(2,3)] biohazard aboard [station_name()]. All personnel must contain the outbreak.", "Biohazard Alert")
+ command_alert("Confirmed outbreak of level five biohazard aboard [station_name()]. All personnel must contain the outbreak.", "Biohazard Alert")
world << sound('sound/AI/outbreak5.ogg')
datum/event/viral_infection/start()
diff --git a/code/modules/events/viral_outbreak.dm b/code/modules/events/viral_outbreak.dm
index 49fbcdebd6..7a21ecccf9 100644
--- a/code/modules/events/viral_outbreak.dm
+++ b/code/modules/events/viral_outbreak.dm
@@ -8,7 +8,7 @@ datum/event/viral_outbreak/setup()
severity = rand(2, 4)
datum/event/viral_outbreak/announce()
- command_alert("Confirmed outbreak of level [severity + rand(3,5)] biohazard aboard [station_name()]. All personnel must contain the outbreak.", "Biohazard Alert")
+ command_alert("Confirmed outbreak of level 7 biohazard aboard [station_name()]. All personnel must contain the outbreak.", "Biohazard Alert")
world << sound('sound/AI/outbreak7.ogg')
datum/event/viral_outbreak/start()
diff --git a/code/modules/power/power.dm b/code/modules/power/power.dm
index f3418c8fee..b94901a637 100644
--- a/code/modules/power/power.dm
+++ b/code/modules/power/power.dm
@@ -186,6 +186,9 @@
M.powernet = PN
P = M.get_connections()
+ else
+ return
+
if(P.len == 0) return
O = P[1]