diff --git a/_maps/RandomRuins/SpaceRuins/bigderelict1.dmm b/_maps/RandomRuins/SpaceRuins/bigderelict1.dmm index 04e9d6ba68..1da57dc70a 100644 --- a/_maps/RandomRuins/SpaceRuins/bigderelict1.dmm +++ b/_maps/RandomRuins/SpaceRuins/bigderelict1.dmm @@ -990,7 +990,7 @@ desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor" }, -/mob/living/simple_animal/hostile/creature{ +/mob/living/simple_animal/hostile/netherworld{ desc = "Awh its so sm-OH GOD WHAT THE FUCK."; health = 25; maxHealth = 25; @@ -1010,7 +1010,7 @@ icon_state = "trails_1"; dir = 10 }, -/mob/living/simple_animal/hostile/creature{ +/mob/living/simple_animal/hostile/netherworld{ desc = "Awh its so sm-OH GOD WHAT THE FUCK."; health = 25; maxHealth = 25; @@ -1378,7 +1378,7 @@ desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor" }, -/mob/living/simple_animal/hostile/creature{ +/mob/living/simple_animal/hostile/netherworld{ name = "Miss Tiggles" }, /turf/open/floor/plasteel, @@ -1888,7 +1888,7 @@ desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor" }, -/mob/living/simple_animal/hostile/creature{ +/mob/living/simple_animal/hostile/netherworld{ desc = "Awh its so sm-OH GOD WHAT THE FUCK."; health = 25; maxHealth = 25; diff --git a/_maps/RandomZLevels/Academy.dmm b/_maps/RandomZLevels/Academy.dmm index 4e943346f2..535cb1377c 100644 --- a/_maps/RandomZLevels/Academy.dmm +++ b/_maps/RandomZLevels/Academy.dmm @@ -3738,7 +3738,7 @@ /turf/open/floor/vault, /area/awaymission/academy/academyengine) "ml" = ( -/mob/living/simple_animal/hostile/creature, +/mob/living/simple_animal/hostile/netherworld, /turf/open/floor/vault, /area/awaymission/academy/academyengine) "mm" = ( diff --git a/_maps/RandomZLevels/research.dmm b/_maps/RandomZLevels/research.dmm index 39ffb0c913..5693bd14ff 100644 --- a/_maps/RandomZLevels/research.dmm +++ b/_maps/RandomZLevels/research.dmm @@ -4347,7 +4347,7 @@ /turf/open/floor/mineral/plasma, /area/space/nearstation) "nc" = ( -/mob/living/simple_animal/hostile/creature, +/mob/living/simple_animal/hostile/netherworld, /turf/open/floor/mineral/plasma, /area/space/nearstation) "nd" = ( diff --git a/_maps/RandomZLevels/wildwest.dmm b/_maps/RandomZLevels/wildwest.dmm index 426e68e015..e24d9dcb85 100644 --- a/_maps/RandomZLevels/wildwest.dmm +++ b/_maps/RandomZLevels/wildwest.dmm @@ -726,7 +726,7 @@ /turf/open/floor/wood, /area/awaymission/wildwest/gov) "cG" = ( -/mob/living/simple_animal/hostile/creature, +/mob/living/simple_animal/hostile/netherworld, /turf/open/floor/plasteel/stage_bleft, /area/awaymission/wildwest/gov) "cH" = ( @@ -761,7 +761,7 @@ /turf/open/floor/wood, /area/awaymission/wildwest/gov) "cN" = ( -/mob/living/simple_animal/hostile/creature, +/mob/living/simple_animal/hostile/netherworld, /turf/open/floor/wood, /area/awaymission/wildwest/gov) "cO" = ( @@ -771,7 +771,7 @@ /turf/open/floor/wood, /area/awaymission/wildwest/gov) "cP" = ( -/mob/living/simple_animal/hostile/creature, +/mob/living/simple_animal/hostile/netherworld, /turf/open/floor/carpet, /area/awaymission/wildwest/gov) "cQ" = ( @@ -1024,7 +1024,7 @@ /area/awaymission/wildwest/gov) "dB" = ( /obj/structure/toilet, -/mob/living/simple_animal/hostile/creature, +/mob/living/simple_animal/hostile/netherworld, /turf/open/floor/plasteel/white, /area/awaymission/wildwest/gov) "dC" = ( @@ -1941,7 +1941,7 @@ /turf/open/floor/wood, /area/awaymission/wildwest/mines) "gn" = ( -/mob/living/simple_animal/hostile/creature, +/mob/living/simple_animal/hostile/netherworld, /turf/open/floor/grass, /area/awaymission/wildwest/gov) "go" = ( diff --git a/_maps/map_files/generic/CentCom.dmm b/_maps/map_files/generic/CentCom.dmm index 82243073f3..27198fe072 100644 --- a/_maps/map_files/generic/CentCom.dmm +++ b/_maps/map_files/generic/CentCom.dmm @@ -9835,7 +9835,7 @@ /area/wizard_station) "zQ" = ( /obj/effect/decal/cleanable/blood/splatter, -/mob/living/simple_animal/hostile/creature{ +/mob/living/simple_animal/hostile/netherworld{ name = "Experiment 35b" }, /turf/open/floor/grass, diff --git a/code/modules/awaymissions/mission_code/Academy.dm b/code/modules/awaymissions/mission_code/Academy.dm index 5af834955f..bf256fecbd 100644 --- a/code/modules/awaymissions/mission_code/Academy.dm +++ b/code/modules/awaymissions/mission_code/Academy.dm @@ -207,7 +207,7 @@ //Swarm of creatures for(var/direction in GLOB.alldirs) var/turf/T = get_turf(src) - new /mob/living/simple_animal/hostile/creature(get_step(T,direction)) + new /mob/living/simple_animal/hostile/netherworld(get_step(T,direction)) if(4) //Destroy Equipment for (var/obj/item/I in user) diff --git a/code/modules/mob/living/simple_animal/hostile/netherworld.dm b/code/modules/mob/living/simple_animal/hostile/netherworld.dm new file mode 100644 index 0000000000..67a565f945 --- /dev/null +++ b/code/modules/mob/living/simple_animal/hostile/netherworld.dm @@ -0,0 +1,103 @@ +/mob/living/simple_animal/hostile/netherworld + name = "creature" + desc = "A sanity-destroying otherthing from the netherworld." + icon_state = "otherthing" + icon_living = "otherthing" + icon_dead = "otherthing-dead" + health = 80 + maxHealth = 80 + obj_damage = 100 + melee_damage_lower = 25 + melee_damage_upper = 50 + attacktext = "slashes" + attack_sound = 'sound/weapons/bladeslice.ogg' + faction = list("creature") + speak_emote = list("screams") + gold_core_spawnable = HOSTILE_SPAWN + atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0) + minbodytemp = 0 + faction = list("nether") + +/mob/living/simple_animal/hostile/netherworld/migo + name = "mi-go" + desc = "A pinkish, fungoid crustacean-like creature with numerous pairs of clawed appendages and a head covered with waving antennae." + speak_emote = list("screams", "clicks", "chitters", "barks", "moans", "growls", "meows", "reverberates", "roars", "squeaks", "rattles", "exclaims", "yells", "remarks", "mumbles", "jabbers", "stutters", "seethes") + icon_state = "mi-go" + icon_living = "mi-go" + icon_dead = "mi-go-dead" + attacktext = "lacerates" + speed = -0.5 + var/static/list/migo_sounds + deathmessage = "wails as its form turns into a pulpy mush." + death_sound = 'sound/voice/hiss6.ogg' + +/mob/living/simple_animal/hostile/netherworld/migo/Initialize() + . = ..() + migo_sounds = list('sound/items/bubblewrap.ogg', 'sound/items/change_jaws.ogg', 'sound/items/crowbar.ogg', 'sound/items/drink.ogg', 'sound/items/deconstruct.ogg', 'sound/items/carhorn.ogg', 'sound/items/change_drill.ogg', 'sound/items/dodgeball.ogg', 'sound/items/eatfood.ogg', 'sound/items/megaphone.ogg', 'sound/items/screwdriver.ogg', 'sound/items/weeoo1.ogg', 'sound/items/wirecutter.ogg', 'sound/items/welder.ogg', 'sound/items/zip.ogg', 'sound/items/rped.ogg', 'sound/items/ratchet.ogg', 'sound/items/polaroid1.ogg', 'sound/items/pshoom.ogg', 'sound/items/airhorn.ogg', 'sound/items/geiger/high1.ogg', 'sound/items/geiger/high2.ogg', 'sound/voice/bcreep.ogg', 'sound/voice/biamthelaw.ogg', 'sound/voice/ed209_20sec.ogg', 'sound/voice/hiss3.ogg', 'sound/voice/hiss6.ogg', 'sound/voice/mpatchedup.ogg', 'sound/voice/mfeelbetter.ogg', 'sound/voice/human/manlaugh1.ogg', 'sound/voice/human/womanlaugh.ogg', 'sound/weapons/sear.ogg', 'sound/ambience/antag/clockcultalr.ogg', 'sound/ambience/antag/ling_aler.ogg', 'sound/ambience/antag/tatoralert.ogg', 'sound/ambience/antag/monkey.ogg', 'sound/mecha/nominal.ogg', 'sound/mecha/weapdestr.ogg', 'sound/mecha/critdestr.ogg', 'sound/mecha/imag_enh.ogg', 'sound/effects/adminhelp.ogg', 'sound/effects/alert.ogg', 'sound/effects/attackblob.ogg', 'sound/effects/bamf.ogg', 'sound/effects/blobattack.ogg', 'sound/effects/break_stone.ogg', 'sound/effects/bubbles.ogg', 'sound/effects/bubbles2.ogg', 'sound/effects/clang.ogg', 'sound/effects/clockcult_gateway_disrupted.ogg', 'sound/effects/clownstep2.ogg', 'sound/effects/curse1.ogg', 'sound/effects/dimensional_rend.ogg', 'sound/effects/doorcreaky.ogg', 'sound/effects/empulse.ogg', 'sound/effects/explosion_distant.ogg', 'sound/effects/explosionfar.ogg', 'sound/effects/explosion1.ogg', 'sound/effects/grillehit.ogg', 'sound/effects/genetics.ogg', 'sound/effects/heart_beat.ogg', 'sound/effects/hyperspace_begin.ogg', 'sound/effects/hyperspace_end.ogg', 'sound/effects/his_grace_awaken.ogg', 'sound/effects/pai_boot.ogg', 'sound/effects/phasein.ogg', 'sound/effects/picaxe1.ogg', 'sound/effects/ratvar_reveal.ogg', 'sound/effects/sparks1.ogg', 'sound/effects/smoke.ogg', 'sound/effects/splat.ogg', 'sound/effects/snap.ogg', 'sound/effects/tendril_destroyed.ogg', 'sound/effects/supermatter.ogg', 'sound/misc/desceration-01.ogg', 'sound/misc/desceration-02.ogg', 'sound/misc/desceration-03.ogg', 'sound/misc/bloblarm.ogg', 'sound/misc/airraid.ogg', 'sound/misc/bang.ogg', 'sound/misc/disco.ogg', 'sound/misc/highlander.ogg', 'sound/misc/interference.ogg', 'sound/misc/notice1.ogg', 'sound/misc/notice2.ogg', 'sound/misc/sadtrombone.ogg', 'sound/misc/slip.ogg', 'sound/misc/splort.ogg', 'sound/weapons/armbomb.ogg', 'sound/weapons/beam_sniper.ogg', 'sound/weapons/chainsawhit.ogg', 'sound/weapons/emitter.ogg', 'sound/weapons/emitter2.ogg', 'sound/weapons/blade1.ogg', 'sound/weapons/bladeslice.ogg', 'sound/weapons/blastcannon.ogg', 'sound/weapons/blaster.ogg', 'sound/weapons/bulletflyby3.ogg', 'sound/weapons/circsawhit.ogg', 'sound/weapons/cqchit2.ogg', 'sound/weapons/drill.ogg', 'sound/weapons/genhit1.ogg', 'sound/weapons/gunshot_silenced.ogg', 'sound/weapons/gunshot2.ogg', 'sound/weapons/handcuffs.ogg', 'sound/weapons/homerun.ogg', 'sound/weapons/kenetic_accel.ogg', 'sound/machines/clockcult/steam_whoosh.ogg', 'sound/machines/fryer/deep_fryer_emerge.ogg', 'sound/machines/airlock.ogg', 'sound/machines/airlock_alien_prying.ogg', 'sound/machines/airlockclose.ogg', 'sound/machines/airlockforced.ogg', 'sound/machines/airlockopen.ogg', 'sound/machines/alarm.ogg', 'sound/machines/blender.ogg', 'sound/machines/boltsdown.ogg', 'sound/machines/boltsup.ogg', 'sound/machines/buzz-sigh.ogg', 'sound/machines/buzz-two.ogg', 'sound/machines/chime.ogg', 'sound/machines/cryo_warning.ogg', 'sound/machines/defib_charge.ogg', 'sound/machines/defib_failed.ogg', 'sound/machines/defib_ready.ogg', 'sound/machines/defib_zap.ogg', 'sound/machines/deniedbeep.ogg', 'sound/machines/ding.ogg', 'sound/machines/disposalflush.ogg', 'sound/machines/door_close.ogg', 'sound/machines/door_open.ogg', 'sound/machines/engine_alert1.ogg', 'sound/machines/engine_alert2.ogg', 'sound/machines/hiss.ogg', 'sound/machines/honkbot_evil_laugh.ogg', 'sound/machines/juicer.ogg', 'sound/machines/ping.ogg', 'sound/machines/signal.ogg', 'sound/machines/synth_no.ogg', 'sound/machines/synth_yes.ogg', 'sound/machines/terminal_alert.ogg', 'sound/machines/triple_beep.ogg', 'sound/machines/twobeep.ogg', 'sound/machines/ventcrawl.ogg', 'sound/machines/warning-buzzer.ogg', 'sound/ai/outbreak5.ogg', 'sound/ai/outbreak7.ogg', 'sound/ai/poweroff.ogg', 'sound/ai/radiation.ogg', 'sound/ai/shuttlecalled.ogg', 'sound/ai/shuttledock.ogg', 'sound/ai/shuttlerecalled.ogg', 'sound/ai/aimalf.ogg') //hahahaha fuck you code divers + +/mob/living/simple_animal/hostile/netherworld/migo/say(message) + ..() + if(stat) + return + var/chosen_sound = pick(migo_sounds) + playsound(src, chosen_sound, 100, TRUE) + +/mob/living/simple_animal/hostile/netherworld/migo/Life() + ..() + if(stat) + return + if(prob(10)) + var/chosen_sound = pick(migo_sounds) + playsound(src, chosen_sound, 100, TRUE) + +/mob/living/simple_animal/hostile/netherworld/blankbody + name = "blank body" + desc = "This looks human enough, but its flesh has an ashy texture, and it's face is featureless save an eerie smile." + icon_state = "blank-body" + icon_living = "blank-body" + icon_dead = "blank-dead" + gold_core_spawnable = NO_SPAWN + health = 100 + maxHealth = 100 + melee_damage_lower = 5 + melee_damage_upper = 10 + attacktext = "punches" + deathmessage = "falls apart into a fine dust." + +/mob/living/simple_animal/hostile/spawner/nether + name = "netherworld link" + desc = "A direct link to another dimension full of creatures not very happy to see you. Entering the link would be a very bad idea." + icon_state = "nether" + icon_living = "nether" + health = 50 + maxHealth = 50 + spawn_time = 50 //5 seconds + max_mobs = 15 + icon = 'icons/mob/nest.dmi' + spawn_text = "crawls through" + mob_type = /mob/living/simple_animal/hostile/netherworld/migo + atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0) + faction = list("nether") + deathmessage = "shatters into oblivion." + del_on_death = TRUE + +/mob/living/simple_animal/hostile/spawner/nether/attack_hand(mob/user) + user.visible_message("[user] is violently pulled into the link!", \ + "Touching the portal, you are quickly pulled through into a world of unimaginable horror!") + contents.Add(user) + +/mob/living/simple_animal/hostile/spawner/nether/Life() + ..() + var/list/C = src.get_contents() + for(var/mob/living/M in C) + if(M) + playsound(src, 'sound/magic/demon_consume.ogg', 50, 1) + M.adjustBruteLoss(60) + new /obj/effect/gibspawner/human(get_turf(M)) + if(M.stat == DEAD) + var/mob/living/simple_animal/hostile/netherworld/blankbody/blank + blank = new(loc) + blank.name = "[M]" + blank.desc = "It's [M], but their flesh has an ashy texture, and their face is featureless save an eerie smile." + src.visible_message("[M] reemerges from the link!") + qdel(M) diff --git a/code/modules/spells/spell_types/conjure.dm b/code/modules/spells/spell_types/conjure.dm index 87c1b8de44..306c3fcef6 100644 --- a/code/modules/spells/spell_types/conjure.dm +++ b/code/modules/spells/spell_types/conjure.dm @@ -56,6 +56,18 @@ range = 3 newVars = list("emagged" = 2, "remote_disabled" = 1,"shoot_sound" = 'sound/weapons/laser.ogg',"projectile" = /obj/item/projectile/beam/laser, "declare_arrests" = 0,"name" = "Wizard's Justicebot") +/obj/effect/proc_holder/spell/aoe_turf/conjure/linkWorlds + name = "Link Worlds" + desc = "A whole new dimension for you to play with! They won't be happy about it, though." + invocation = "WTF" + clothes_req = FALSE + charge_max = 600 + cooldown_min = 200 + summon_type = list(/mob/living/simple_animal/hostile/spawner/nether) + summon_amt = 1 + range = 1 + cast_sound = 'sound/weapons/marauder.ogg' + /obj/effect/proc_holder/spell/targeted/conjure_item name = "Summon weapon" desc = "A generic spell that should not exist. This summons an instance of a specific type of item, or if one already exists, un-summons it. Summons into hand if possible." diff --git a/code/modules/spells/spell_types/wizard.dm b/code/modules/spells/spell_types/wizard.dm index 9b120c2e7f..ab4be6bafc 100644 --- a/code/modules/spells/spell_types/wizard.dm +++ b/code/modules/spells/spell_types/wizard.dm @@ -209,7 +209,7 @@ summon_amt = 10 range = 3 - summon_type = list(/mob/living/simple_animal/hostile/creature) + summon_type = list(/mob/living/simple_animal/hostile/netherworld) cast_sound = 'sound/magic/summonitems_generic.ogg' /obj/effect/proc_holder/spell/targeted/trigger/blind diff --git a/icons/mob/animal.dmi b/icons/mob/animal.dmi index b860bd8426..8504b18a4a 100644 Binary files a/icons/mob/animal.dmi and b/icons/mob/animal.dmi differ diff --git a/icons/mob/nest.dmi b/icons/mob/nest.dmi index 7dab335929..e75d325e8a 100644 Binary files a/icons/mob/nest.dmi and b/icons/mob/nest.dmi differ diff --git a/tgstation.dme b/tgstation.dme index 11399a1b14..daa00357f1 100755 --- a/tgstation.dme +++ b/tgstation.dme @@ -1931,7 +1931,6 @@ #include "code\modules\mob\living\simple_animal\hostile\bear.dm" #include "code\modules\mob\living\simple_animal\hostile\bees.dm" #include "code\modules\mob\living\simple_animal\hostile\carp.dm" -#include "code\modules\mob\living\simple_animal\hostile\creature.dm" #include "code\modules\mob\living\simple_animal\hostile\eyeballs.dm" #include "code\modules\mob\living\simple_animal\hostile\faithless.dm" #include "code\modules\mob\living\simple_animal\hostile\giant_spider.dm" @@ -1944,6 +1943,7 @@ #include "code\modules\mob\living\simple_animal\hostile\mimic.dm" #include "code\modules\mob\living\simple_animal\hostile\mushroom.dm" #include "code\modules\mob\living\simple_animal\hostile\nanotrasen.dm" +#include "code\modules\mob\living\simple_animal\hostile\netherworld.dm" #include "code\modules\mob\living\simple_animal\hostile\pirate.dm" #include "code\modules\mob\living\simple_animal\hostile\russian.dm" #include "code\modules\mob\living\simple_animal\hostile\skeleton.dm"