diff --git a/code/game/gamemodes/meteor/meteors.dm b/code/game/gamemodes/meteor/meteors.dm
index a4c54b6cd96..842ed422379 100644
--- a/code/game/gamemodes/meteor/meteors.dm
+++ b/code/game/gamemodes/meteor/meteors.dm
@@ -305,3 +305,12 @@
/obj/effect/meteor/Destroy()
walk(src, 0) //This cancels the walk_towards() proc
..()
+
+/obj/effect/meteor/gib //non explosive meteor, appears to be a corpse spinning in space before impacting something and spraying gibs everywhere
+ name = "human corpse"
+ icon_state = "human"
+ pass_flags = PASSTABLE
+
+/obj/effect/meteor/gib/Bump(atom/A)
+ new /obj/effect/gibspawner/human(src.loc)
+ qdel(src)
\ No newline at end of file
diff --git a/code/modules/admin/admin.dm b/code/modules/admin/admin.dm
index a9957b20517..79d8ff2c8fb 100644
--- a/code/modules/admin/admin.dm
+++ b/code/modules/admin/admin.dm
@@ -722,19 +722,24 @@ var/global/floorIsLava = 0
Toggle station artificial gravity
Spawn a wave of meteors (aka lagocolyptic shower)
+ Spawn a wave of meteors with no warning
Spawn a gravitational anomaly (aka lagitational anomolag)
Spawn wormholes
Spawn blob
Trigger an Alien infestation
Spawn an Alien silently
Trigger a Spider infestation
+ Spawn a hostile creature infestation
Send in a strike team
Trigger a Carp migration
Irradiate the station
Trigger a Prison Break
Trigger a Virus Outbreak
Spawn an Immovable Rod
+ Trigger an Organic Debris Field
Toggle a "lights out" event
+ Cause the crew to hallucinate
+ Cause the crew to become drunk
Spawn an Ion Storm
Spawn Space-Vines
Trigger a communication blackout
diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm
index 5b829d5d109..7b8f0bcb6e1 100644
--- a/code/modules/admin/topic.dm
+++ b/code/modules/admin/topic.dm
@@ -3062,6 +3062,31 @@
hardcore_mode = 0
to_chat(world, "
Hardcore mode has been disabled
")
to_chat(world, "Starvation will no longer kill player-controlled characters.")
+ if("hostile_infestation")
+ feedback_inc("admin_secrets_fun_used",1)
+ feedback_add_details("admin_secrets_fun_used","HI")
+ message_admins("[key_name_admin(usr)] has triggered an infestation of hostile creatures.", 1)
+ new /datum/event/hostile_infestation
+ if("mass_hallucination")
+ feedback_inc("admin_secrets_fun_used",1)
+ feedback_add_details("admin_secrets_fun_used","MH")
+ message_admins("[key_name_admin(usr)] made the whole crew trip balls.", 1)
+ new /datum/event/mass_hallucination
+ if("meaty_gores")
+ feedback_inc("admin_secrets_fun_used",1)
+ feedback_add_details("admin_secrets_fun_used","ODF")
+ message_admins("[key_name_admin(usr)] has sent the station careening through a cloud of gore.", 1)
+ new /datum/event/thing_storm/meaty_gore
+ if("silent_meteors")
+ feedback_inc("admin_secrets_fun_used",1)
+ feedback_add_details("admin_secrets_fun_used","SILM")
+ message_admins("[key_name_admin(usr)] has spawned meteors without a command alert.", 1)
+ new /datum/event/meteor_shower/meteor_quiet
+ if("mass_drunk")
+ feedback_inc("admin_secrets_fun_used",1)
+ feedback_add_details("admin_secrets_fun_used","MASD")
+ message_admins("[key_name_admin(usr)] gave the station a vodka enema.", 1)
+ new /datum/event/mass_drunk
if(usr)
log_admin("[key_name(usr)] used secret [href_list["secretsfun"]]")
if(ok)
diff --git a/code/modules/clothing/head/misc.dm b/code/modules/clothing/head/misc.dm
index 36bfb79c8c3..f56a19b3190 100644
--- a/code/modules/clothing/head/misc.dm
+++ b/code/modules/clothing/head/misc.dm
@@ -394,4 +394,4 @@
/obj/item/clothing/head/pajamahat/blue
icon_state = "pajamahat_blue"
- item_state = "pajamahat_blue"
\ No newline at end of file
+ item_state = "pajamahat_blue"
diff --git a/code/modules/events/event_dynamic.dm b/code/modules/events/event_dynamic.dm
index 49f23524775..14226135098 100644
--- a/code/modules/events/event_dynamic.dm
+++ b/code/modules/events/event_dynamic.dm
@@ -44,6 +44,8 @@ var/list/event_last_fired = list()
possibleEvents[/datum/event/rogue_drone] = 25
possibleEvents[/datum/event/infestation] = 50
possibleEvents[/datum/event/communications_blackout] = 25
+ possibleEvents[/datum/event/thing_storm/meaty_gore] = 25
+ possibleEvents[/datum/event/mass_drunk] = 15
if(active_with_role["AI"] > 0 || active_with_role["Cyborg"] > 0)
possibleEvents[/datum/event/ionstorm] = 30
@@ -53,6 +55,7 @@ var/list/event_last_fired = list()
if(!spacevines_spawned)
possibleEvents[/datum/event/spacevine] = 15
+
if(minutes_passed >= 30 && active_with_role["Engineer"] > 1) // Give engineers time to not set up the engine
possibleEvents[/datum/event/meteor_wave] = 15
possibleEvents[/datum/event/meteor_shower] = 40
@@ -72,6 +75,7 @@ var/list/event_last_fired = list()
possibleEvents[/datum/event/spider_infestation] = 15
if(aliens_allowed && !sent_aliens_to_station)
possibleEvents[/datum/event/alien_infestation] = 10
+ possibleEvents[/datum/event/hostile_infestation] = 25
for(var/event_type in event_last_fired) if(possibleEvents[event_type])
var/time_passed = world.time - event_last_fired[event_type]
var/full_recharge_after = 60 * 60 * 10 // Was 3 hours, changed to 1 hour since rounds rarely last that long anyways
diff --git a/code/modules/events/hostile_infestation.dm b/code/modules/events/hostile_infestation.dm
new file mode 100644
index 00000000000..80e923b596b
--- /dev/null
+++ b/code/modules/events/hostile_infestation.dm
@@ -0,0 +1,125 @@
+//Hostile Infestation: A variant of the infestation event that spawns small numbers of hostile mobs.
+//Currently only fires if there are 2 or more security officers
+
+#define LOC_KITCHEN 0
+#define LOC_ATMOS 1
+#define LOC_INCIN 2
+#define LOC_CHAPEL 3
+#define LOC_LIBRARY 4
+#define LOC_HYDRO 5
+#define LOC_VAULT 6
+#define LOC_TECH 7
+
+#define MONSTER_BEAR 0
+#define MONSTER_CREATURE 1
+#define MONSTER_XENO 2
+#define MONSTER_HIVEBOT 3
+#define MONSTER_ZOMBIE 4
+#define MONSTER_SKRITE 5
+#define MONSTER_SQUEEN 6
+
+/datum/event/hostile_infestation
+ announceWhen = 2 //Should notify crew much quicker than normal infestation event because of the danger posed by these mobs
+ endWhen = 10
+ var/localestring
+ var/monsterstring
+
+/datum/event/hostile_infestation/start()
+ to_chat(world, sound('sound/effects/bumpinthenight.ogg'))
+
+ var/location = pick(LOC_KITCHEN, LOC_ATMOS, LOC_INCIN, LOC_CHAPEL, LOC_LIBRARY, LOC_HYDRO, LOC_VAULT, LOC_TECH)
+ var/spawn_area_type
+
+ switch(location)
+ if(LOC_KITCHEN)
+ spawn_area_type = /area/crew_quarters/kitchen
+ localestring = "the Kitchen"
+ if(LOC_ATMOS)
+ spawn_area_type = /area/engineering/atmos
+ localestring = "Atmospherics"
+ if(LOC_INCIN)
+ spawn_area_type = /area/maintenance/incinerator
+ localestring = "the Incinerator"
+ if(LOC_CHAPEL)
+ spawn_area_type = /area/chapel/main
+ localestring = "the Chapel"
+ if(LOC_LIBRARY)
+ spawn_area_type = /area/library
+ localestring = "the Library"
+ if(LOC_HYDRO)
+ spawn_area_type = /area/hydroponics
+ localestring = "Hydroponics"
+ if(LOC_VAULT)
+ spawn_area_type = /area/storage/nuke_storage
+ localestring = "the Vault"
+ if(LOC_TECH)
+ spawn_area_type = /area/storage/tech
+ localestring = "Technical Storage"
+
+ var/spawn_monster_type
+ var/max_number
+ var/monster = pick(MONSTER_BEAR, MONSTER_CREATURE, MONSTER_XENO, MONSTER_HIVEBOT, MONSTER_ZOMBIE, MONSTER_SKRITE, MONSTER_SQUEEN)
+ switch(monster)
+ if(MONSTER_BEAR)
+ spawn_monster_type = pick(/mob/living/simple_animal/hostile/bear, /mob/living/simple_animal/hostile/bear/panda, /mob/living/simple_animal/hostile/bear/polarbear)
+ max_number = 1
+ monsterstring = "fur"
+ if(MONSTER_CREATURE)
+ spawn_monster_type = /mob/living/simple_animal/hostile/creature
+ max_number = 1
+ monsterstring = "slime"
+ if(MONSTER_XENO)
+ spawn_monster_type = pick(/mob/living/simple_animal/hostile/alien, /mob/living/simple_animal/hostile/alien/drone, /mob/living/simple_animal/hostile/alien/sentinel, /mob/living/simple_animal/hostile/alien/queen, /mob/living/simple_animal/hostile/alien/queen/large)
+ max_number = 0
+ monsterstring = "a cuticle"
+ if(MONSTER_HIVEBOT)
+ spawn_monster_type = pick(/mob/living/simple_animal/hostile/hivebot, /mob/living/simple_animal/hostile/hivebot/range, /mob/living/simple_animal/hostile/hivebot/rapid, /mob/living/simple_animal/hostile/hivebot/tele)
+ max_number = 5
+ monsterstring = "a synthetic covering"
+ if(MONSTER_ZOMBIE)
+ spawn_monster_type = /mob/living/simple_animal/hostile/necro/zombie
+ max_number = 2
+ monsterstring = "extreme decay"
+ if(MONSTER_SKRITE)
+ spawn_monster_type = /mob/living/simple_animal/hostile/monster/skrite
+ monsterstring = "fleshy bare skin"
+ max_number = 1
+ if(MONSTER_SQUEEN)
+ spawn_monster_type = /mob/living/simple_animal/hostile/giant_spider/nurse/queen_spider
+ monsterstring = "monstrous size"
+ max_number = 0
+
+ var/number = rand(0, max_number)
+
+ for(var/i = 0, i <= number, i++)
+ var/area/A = locate(spawn_area_type)
+ var/list/turf/simulated/floor/valid = list()
+ //Loop through each floor in the supply drop area
+ for(var/turf/simulated/floor/F in A)
+ if(!F.has_dense_content())
+ valid.Add(F)
+
+ var/chosen = pick(valid)
+ var/monster_spawn = pick(spawn_monster_type)
+ new monster_spawn(chosen)
+
+
+/datum/event/hostile_infestation/announce()
+ command_alert("One or more hostile creatures have entered the station in [localestring]. External security cameras indicate that the creature has [monsterstring].", "WARNING: Hostile Creature(s)")
+
+
+#undef LOC_KITCHEN
+#undef LOC_ATMOS
+#undef LOC_INCIN
+#undef LOC_CHAPEL
+#undef LOC_LIBRARY
+#undef LOC_HYDRO
+#undef LOC_VAULT
+#undef LOC_TECH
+
+#undef MONSTER_BEAR
+#undef MONSTER_CREATURE
+#undef MONSTER_XENO
+#undef MONSTER_HIVEBOT
+#undef MONSTER_ZOMBIE
+#undef MONSTER_SKRITE
\ No newline at end of file
diff --git a/code/modules/events/masshallucination.dm b/code/modules/events/masshallucination.dm
index 4c47647cbea..b4225219009 100644
--- a/code/modules/events/masshallucination.dm
+++ b/code/modules/events/masshallucination.dm
@@ -3,4 +3,17 @@
/datum/event/mass_hallucination/start()
for(var/mob/living/carbon/C in living_mob_list)
- C.hallucination += rand(100, 250)
\ No newline at end of file
+ C.hallucination += rand(100, 250)
+
+/datum/event/mass_drunk
+ startWhen = 10
+ announceWhen = 0
+
+/datum/event/mass_drunk/start()
+ for(var/mob/living/carbon/C in living_mob_list)
+ C.dizziness = 18
+ C.confused = 18
+ C.stuttering = 20
+
+datum/event/mass_drunk/announce()
+ command_alert("The station is about to pass through a cloud of unknown chemical composition. Chemical infiltration into the air supply is possible.", "Unknown Chemical Cloud")
diff --git a/code/modules/events/meteors.dm b/code/modules/events/meteors.dm
index 28e8a543a90..e5535443966 100644
--- a/code/modules/events/meteors.dm
+++ b/code/modules/events/meteors.dm
@@ -41,11 +41,27 @@
/datum/event/meteor_shower/end()
command_alert("The station has cleared the meteor shower.", "Meteor Alert")
+//Meteor wave that doesn't trigger an announcement. Perfect for adminbus involving extended meteor bombardments without spamming the crew with Meteor alerts.
+/datum/event/meteor_shower/meteor_quiet
+ startWhen =0
+ endWhen =30
+
+/datum/event/meteor_shower/meteor_quiet/announce()
+
+/datum/event/meteor_shower/meteor_quiet/tick()
+ meteor_wave(rand(7, 10), max_size = 2) //Good balance of sizes and abundance between shower and storm
+
+/datum/event/meteor_shower/meteor_quiet/end()
+
var/global/list/thing_storm_types = list(
"meaty gore storm" = list(
/obj/item/weapon/reagent_containers/food/snacks/meat/human,
- /obj/item/weapon/reagent_containers/food/snacks/meat/carpmeat,
- /obj/item/weapon/organ/head,
+ /obj/item/organ/eyes,
+ /obj/item/organ/kidneys,
+ /obj/item/organ/heart,
+ /obj/item/organ/liver,
+ /obj/effect/decal/cleanable/blood/gibs,
+ /obj/effect/meteor/gib,
/obj/item/weapon/organ/r_arm,
/obj/item/weapon/organ/l_arm,
/obj/item/weapon/organ/r_leg,
@@ -84,3 +100,18 @@ var/global/list/thing_storm_types = list(
/datum/event/thing_storm/end()
command_alert("The station has cleared the [storm_name].", "Meteor Alert")
+
+/datum/event/thing_storm/meaty_gore
+
+/datum/event/thing_storm/meaty_gore/setup()
+ endWhen = rand(30, 60) + 10
+ storm_name="meaty gore storm"
+
+/datum/event/thing_storm/meaty_gore/tick()
+ meteor_wave(rand(45, 60), types = thing_storm_types[storm_name])
+
+/datum/event/thing_storm/meaty_gore/announce()
+ command_alert("The station is about to pass through an unknown organic debris field. No hull breaches are likely.", "Organic Debris Field")
+
+/datum/event/thing_storm/meaty_gore/end()
+ command_alert("The station has cleared the organic debris field.", "Organic Debris Field")
\ No newline at end of file
diff --git a/code/modules/mob/living/carbon/alien/humanoid/queen.dm b/code/modules/mob/living/carbon/alien/humanoid/queen.dm
index b92735c48d7..89545e4fbf2 100644
--- a/code/modules/mob/living/carbon/alien/humanoid/queen.dm
+++ b/code/modules/mob/living/carbon/alien/humanoid/queen.dm
@@ -80,7 +80,7 @@
/mob/living/carbon/alien/humanoid/queen/large
- icon = 'icons/mob/alienqueen.dmi'
+ icon = 'icons/mob/giantmobs.dmi'
icon_state = "queen_s"
pixel_x = -16
diff --git a/code/modules/mob/living/simple_animal/hostile/alien.dm b/code/modules/mob/living/simple_animal/hostile/alien.dm
index 534584f3e1c..de8689efaf8 100644
--- a/code/modules/mob/living/simple_animal/hostile/alien.dm
+++ b/code/modules/mob/living/simple_animal/hostile/alien.dm
@@ -77,7 +77,7 @@
/mob/living/simple_animal/hostile/alien/queen/large
name = "alien empress"
- icon = 'icons/mob/alienqueen.dmi'
+ icon = 'icons/mob/giantmobs.dmi'
icon_state = "queen_s"
icon_living = "queen_s"
icon_dead = "queen_dead"
diff --git a/code/modules/mob/living/simple_animal/hostile/bear.dm b/code/modules/mob/living/simple_animal/hostile/bear.dm
index f11253f93b8..de863d71689 100644
--- a/code/modules/mob/living/simple_animal/hostile/bear.dm
+++ b/code/modules/mob/living/simple_animal/hostile/bear.dm
@@ -49,35 +49,6 @@
response_disarm = "gently pushes aside"
response_harm = "hits"
-//Skrites. Completely unrelated to bears aside from stealing most of their code
-/mob/living/simple_animal/hostile/bear/skrite
- name = "skrite"
- desc = "A highly predatory being with two dripping claws."
- icon_state = "skrite"
- icon_living = "skrite"
- icon_dead = "skrite_dead"
- icon_gib = "skrite_dead"
- default_icon_floor = "skritefloor"
- default_icon_space = "skrite"
- speak = list("SKREEEEEEEE!","SKRAAAAAAAAW!","KREEEEEEEEE!")
- speak_emote = list("screams", "shrieks")
- emote_hear = list("snarls")
- emote_see = list("lets out a scream", "rubs its claws together")
- speak_chance = 20
- turns_per_move = 5
- see_in_dark = 6
- meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat
- maxHealth = 150
- health = 150
- melee_damage_lower = 10
- melee_damage_upper = 30
- attack_sound = 'sound/effects/lingstabs.ogg'
- attacktext = "uses its blades to stab"
- projectiletype = /obj/item/projectile/energy/neurotox
- projectilesound = 'sound/weapons/pierce.ogg'
- ranged = 1
- move_to_delay = 7
-
/mob/living/simple_animal/hostile/bear/panda
name = "space panda"
desc = "Endangered even in space. A lack of bamboo has driven them somewhat mad."
@@ -104,11 +75,6 @@
melee_damage_lower=10
melee_damage_upper=40
-/obj/item/projectile/energy/neurotox
- damage = 10
- damage_type = TOX
- icon_state = "toxin"
-
/mob/living/simple_animal/hostile/bear/Move()
..()
if(stat != DEAD)
diff --git a/code/modules/mob/living/simple_animal/hostile/giant_spider/nurse.dm b/code/modules/mob/living/simple_animal/hostile/giant_spider/nurse.dm
index ddff46cbd96..b8dbfe0894e 100644
--- a/code/modules/mob/living/simple_animal/hostile/giant_spider/nurse.dm
+++ b/code/modules/mob/living/simple_animal/hostile/giant_spider/nurse.dm
@@ -158,4 +158,31 @@
else
busy = 0
- stop_automated_movement = 0
\ No newline at end of file
+ stop_automated_movement = 0
+
+/mob/living/simple_animal/hostile/giant_spider/nurse/queen_spider
+ name = "spider queen"
+ desc = "Massive, dark, and very furry. This is an absolutely massive spider. Its fangs are almost as big as you!"
+ icon = 'icons/mob/giantmobs.dmi' //Both the alien queen sprite and the queen spider sprite are 64x64, it seemed pointless to make a new file for two new states
+ icon_state = "spider_queen1"
+ icon_living = "spider_queen1"
+ icon_dead = "spider_queen_dead"
+ pixel_x = -16
+ pixel_y = -16
+ maxHealth = 500
+ health = 500
+ melee_damage_lower = 30
+ melee_damage_upper = 40
+ speed = 5
+ projectiletype = /obj/item/projectile/web
+ projectilesound = 'sound/weapons/pierce.ogg'
+ ranged = 1
+
+/obj/item/projectile/web
+ icon_state = "web"
+ damage = 5
+ damage_type = BRUTE
+
+/obj/item/projectile/web/Bump(atom/A)
+ new /obj/effect/spider/stickyweb(src.loc)
+ qdel(src)
\ No newline at end of file
diff --git a/code/modules/mob/living/simple_animal/hostile/monster.dm b/code/modules/mob/living/simple_animal/hostile/monster.dm
new file mode 100644
index 00000000000..f5760af08c0
--- /dev/null
+++ b/code/modules/mob/living/simple_animal/hostile/monster.dm
@@ -0,0 +1,51 @@
+/mob/living/simple_animal/hostile/monster
+
+/mob/living/simple_animal/hostile/monster/necromorph
+ name = "necromorph"
+ desc = "A twisted husk of what was once a human, repurposed to kill."
+ speak_emote = list("roars")
+ icon = 'icons/mob/monster_big.dmi'
+ icon_state = "nmorph_standard"
+ icon_living = "nmorph_standard"
+ icon_dead = "nmorph_dead"
+ health = 80
+ maxHealth = 80
+ melee_damage_lower = 25
+ melee_damage_upper = 50
+ attacktext = "slashes"
+ attack_sound = 'sound/weapons/bladeslice.ogg'
+ faction = "creature"
+ speed = 4
+ size = SIZE_BIG
+ move_to_delay = 4
+
+/mob/living/simple_animal/hostile/monster/skrite
+ name = "skrite"
+ desc = "A highly predatory being with two dripping claws."
+ icon_state = "skrite"
+ icon_living = "skrite"
+ icon_dead = "skrite_dead"
+ icon_gib = "skrite_dead"
+ speak = list("SKREEEEEEEE!","SKRAAAAAAAAW!","KREEEEEEEEE!")
+ speak_emote = list("screams", "shrieks")
+ emote_hear = list("snarls")
+ emote_see = list("lets out a scream", "rubs its claws together")
+ speak_chance = 20
+ turns_per_move = 5
+ see_in_dark = 6
+ meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat
+ maxHealth = 150
+ health = 150
+ melee_damage_lower = 10
+ melee_damage_upper = 30
+ attack_sound = 'sound/effects/lingstabs.ogg'
+ attacktext = "uses its blades to stab"
+ projectiletype = /obj/item/projectile/energy/neurotox
+ projectilesound = 'sound/weapons/pierce.ogg'
+ ranged = 1
+ move_to_delay = 7
+
+/obj/item/projectile/energy/neurotox
+ damage = 10
+ damage_type = TOX
+ icon_state = "toxin"
\ No newline at end of file
diff --git a/html/changelogs/Eliminator_event_update.yml b/html/changelogs/Eliminator_event_update.yml
new file mode 100644
index 00000000000..9fe09d59f0a
--- /dev/null
+++ b/html/changelogs/Eliminator_event_update.yml
@@ -0,0 +1,20 @@
+author: TheEliminator16
+delete-after: True
+changes:
+ - rscadd: Added the "Hostile Infestation" event. Similar to the normal infestation event, though this time with hostile mobs
+ - soundadd: Added "bumpinthenight.ogg"
+ - rscadd: Added "Silent Meteors" event. Adminbus only, not random, allows for admins to send meteors without a command report. I'm sure this will never be abused, ever.
+ - rscadd: Added "Organic Debris Field" event. Similar to meteors except instead of killing everyone, it splatters the outside of the station with gore, body parts, organs, exploding corpses...
+ - rscadd: Added "Mass Drunkenness" event. Causes everyone on the station to be drunk for less than a minute.
+ - rscadd: Added "Mass Hallucination", "Silent Meteors", "Hostile Infestation", "Organic Debris Field", and "Mass Drunkenness" events to admin secrets panel. Any admin with +FUN can access them.
+ - rscadd: Made "Hostile Infestation", "Organic Debris Field", and "Mass Drunkenness" events possible to occur randomly.
+ - rscadd: Added a new type of meteor that appears to be a human corpse. Gibs on impact, does no damage.
+ - imageadd: Added "human" icon_state to meteor.dmi
+ - rscadd: Added "monster.dm", for a collection of various monsters added in this PR and any monsters added in the future.
+ - rscadd: Added necromorphs.
+ - imageadd: Added "monster_big.dmi" for creatures that are larger than 32x32
+ - tweak: Moved skrites from being a child of bear to being a child of monster.
+ - rscadd: Added "spider queen", a large version of the nurse spider with a projectile attack that creates web where it lands and a lot of health.
+ - tweak: Changed "alienqueen.dmi" to "giantmobs.dmi" to accomodate the new giant spider sprite.
+ - imageadd: Added "spider queen" and "dead queen" icon states to giantmobs.dmi.
+ - bugfix: Removed the spawning of heads in thing_storm to fix a runtime error involving hairstyles
\ No newline at end of file
diff --git a/icons/mob/alienqueen.dmi b/icons/mob/alienqueen.dmi
deleted file mode 100644
index 15621520237..00000000000
Binary files a/icons/mob/alienqueen.dmi and /dev/null differ
diff --git a/icons/mob/giantmobs.dmi b/icons/mob/giantmobs.dmi
new file mode 100644
index 00000000000..efddb713a8a
Binary files /dev/null and b/icons/mob/giantmobs.dmi differ
diff --git a/icons/mob/monster_big.dmi b/icons/mob/monster_big.dmi
new file mode 100644
index 00000000000..facf6f76431
Binary files /dev/null and b/icons/mob/monster_big.dmi differ
diff --git a/icons/obj/meteor.dmi b/icons/obj/meteor.dmi
index 6aa57b55d2e..3810dc0386e 100644
Binary files a/icons/obj/meteor.dmi and b/icons/obj/meteor.dmi differ
diff --git a/icons/obj/projectiles.dmi b/icons/obj/projectiles.dmi
index f351ec5ef60..0464eec7db2 100644
Binary files a/icons/obj/projectiles.dmi and b/icons/obj/projectiles.dmi differ
diff --git a/sound/effects/bumpinthenight.ogg b/sound/effects/bumpinthenight.ogg
new file mode 100644
index 00000000000..313bf1d1f46
Binary files /dev/null and b/sound/effects/bumpinthenight.ogg differ
diff --git a/vgstation13.dme b/vgstation13.dme
index 27081054823..e4ac2095feb 100644
--- a/vgstation13.dme
+++ b/vgstation13.dme
@@ -1056,6 +1056,7 @@
#include "code\modules\events\event_manager.dm"
#include "code\modules\events\grid_check.dm"
#include "code\modules\events\heist.dm"
+#include "code\modules\events\hostile_infestation.dm"
#include "code\modules\events\immovablerod.dm"
#include "code\modules\events\infestation.dm"
#include "code\modules\events\ion_storm.dm"
@@ -1416,6 +1417,7 @@
#include "code\modules\mob\living\simple_animal\hostile\hostile.dm"
#include "code\modules\mob\living\simple_animal\hostile\mimic.dm"
#include "code\modules\mob\living\simple_animal\hostile\mining_mobs.dm"
+#include "code\modules\mob\living\simple_animal\hostile\monster.dm"
#include "code\modules\mob\living\simple_animal\hostile\mushroom.dm"
#include "code\modules\mob\living\simple_animal\hostile\necro.dm"
#include "code\modules\mob\living\simple_animal\hostile\slime.dm"