diff --git a/_maps/RandomRuins/IceRuins/icemoon_surface_asteroid.dmm b/_maps/RandomRuins/IceRuins/icemoon_surface_asteroid.dmm index 0357863726c..5883bfd3394 100644 --- a/_maps/RandomRuins/IceRuins/icemoon_surface_asteroid.dmm +++ b/_maps/RandomRuins/IceRuins/icemoon_surface_asteroid.dmm @@ -1,50 +1,12 @@ //MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE -"a" = ( -/turf/open/genturf, -/area/mine/unexplored) -"b" = ( -/turf/closed/mineral/random/snow, -/area/icemoon/surface) "c" = ( /turf/closed/wall/mineral/bronze, /area/icemoon/surface) -"d" = ( -/obj/structure/fluff/clockwork/fallen_armor, +"e" = ( +/obj/structure/fluff/clockwork/alloy_shards/medium, /turf/open/floor/bronze, /area/icemoon/surface) -"i" = ( -/turf/open/floor/bronze, -/area/icemoon/surface) -"k" = ( -/obj/structure/fluff/clockwork/alloy_shards, -/turf/open/floor/bronze, -/area/icemoon/surface) -"n" = ( -/obj/effect/mob_spawn/human/skeleton, -/turf/open/floor/bronze, -/area/icemoon/surface) -"p" = ( -/obj/structure/fluff/clockwork/alloy_shards/large, -/turf/open/floor/bronze, -/area/icemoon/surface) -"r" = ( -/obj/structure/fluff/clockwork/blind_eye, -/turf/open/floor/bronze, -/area/icemoon/surface) -"u" = ( -/obj/structure/table/bronze, -/turf/open/floor/bronze, -/area/icemoon/surface) -"v" = ( -/obj/structure/fluff/clockwork/alloy_shards/medium_gearbit, -/turf/open/floor/bronze, -/area/icemoon/surface) -"w" = ( -/turf/open/floor/bronze{ - initial_gas_mix = "TEMP=2.7" - }, -/area/icemoon/surface) -"x" = ( +"h" = ( /obj/effect/mob_spawn/human/skeleton, /obj/item/clothing/suit/bronze, /obj/item/clothing/shoes/bronze, @@ -53,7 +15,39 @@ initial_gas_mix = "TEMP=2.7" }, /area/icemoon/surface) -"z" = ( +"m" = ( +/obj/item/nullrod/spear{ + name = "empowered bronze spear" + }, +/turf/open/floor/bronze{ + initial_gas_mix = "TEMP=2.7" + }, +/area/icemoon/surface) +"o" = ( +/turf/open/floor/bronze{ + initial_gas_mix = "TEMP=2.7" + }, +/area/icemoon/surface) +"A" = ( +/obj/structure/fluff/clockwork/clockgolem_remains, +/turf/open/floor/bronze, +/area/icemoon/surface) +"B" = ( +/turf/open/genturf, +/area/mine/unexplored) +"C" = ( +/obj/structure/fluff/clockwork/blind_eye, +/turf/open/floor/bronze, +/area/icemoon/surface) +"D" = ( +/obj/structure/fluff/clockwork/alloy_shards/large, +/turf/open/floor/bronze, +/area/icemoon/surface) +"G" = ( +/obj/structure/fluff/clockwork/alloy_shards/medium_gearbit, +/turf/open/floor/bronze, +/area/icemoon/surface) +"I" = ( /obj/structure/table/bronze, /obj/item/toy/clockwork_watch{ desc = "You can still feel the embers of a once great empire in your hand..."; @@ -61,11 +55,41 @@ }, /turf/open/floor/bronze, /area/icemoon/surface) -"P" = ( -/obj/structure/fluff/clockwork/clockgolem_remains, +"J" = ( +/obj/effect/mob_spawn/human/skeleton, /turf/open/floor/bronze, /area/icemoon/surface) -"Q" = ( +"K" = ( +/obj/structure/table/bronze, +/turf/open/floor/bronze, +/area/icemoon/surface) +"L" = ( +/mob/living/simple_animal/hostile/megafauna/clockwork_defender, +/turf/open/floor/bronze{ + initial_gas_mix = "TEMP=2.7" + }, +/area/icemoon/surface) +"M" = ( +/obj/structure/fluff/clockwork/fallen_armor, +/turf/open/floor/bronze, +/area/icemoon/surface) +"N" = ( +/turf/closed/mineral/random/snow, +/area/icemoon/surface) +"O" = ( +/obj/structure/fluff/clockwork/alloy_shards, +/turf/open/floor/bronze, +/area/icemoon/surface) +"W" = ( +/turf/open/floor/bronze, +/area/icemoon/surface) +"X" = ( +/obj/machinery/door/airlock/bronze{ + use_power = 0 + }, +/turf/open/floor/bronze, +/area/icemoon/surface) +"Y" = ( /obj/item/paper{ info = "We tried to use the power of this moon to bring him back, but we've failed... I've contained what remains of his power here... if you find this, make sure those Nar-Sian Dogs don't last a second." }, @@ -74,69 +98,51 @@ initial_gas_mix = "TEMP=2.7" }, /area/icemoon/surface) -"R" = ( -/obj/item/nullrod/spear{ - name = "empowered bronze spear" - }, -/turf/open/floor/bronze{ - initial_gas_mix = "TEMP=2.7" - }, -/area/icemoon/surface) -"U" = ( -/obj/machinery/door/airlock/bronze{ - use_power = 0 - }, -/turf/open/floor/bronze, -/area/icemoon/surface) -"V" = ( -/obj/structure/fluff/clockwork/alloy_shards/medium, -/turf/open/floor/bronze, -/area/icemoon/surface) (1,1,1) = {" -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b +N +N +N +N +N +N +N +N +N +N +N +N +N +N +N +N +N +N +N +N +N +N +N +N +N +N +N +N +N +N +N +N +N +N +N +N +N +N +N +N "} (2,1,1) = {" -b +N c c c @@ -155,8 +161,8 @@ c c c c -U -U +X +X c c c @@ -175,10 +181,10 @@ c c c c -b +N "} (3,1,1) = {" -b +N c c c @@ -195,12 +201,12 @@ c c c c -u -v -i -P -i -u +K +G +W +A +W +K c c c @@ -217,1438 +223,1438 @@ c c c c -b +N "} (4,1,1) = {" -b +N c c -a -a -a -a -a -a -a -a -a -a -a -a -a +B +B +B +B +B +B +B +B +B +B +B +B +B c -r -i -n -i -i -r +C +W +J +W +W +C c -a -a -a -a -a -a -a -a -a -a -a -a -a +B +B +B +B +B +B +B +B +B +B +B +B +B c c -b +N "} (5,1,1) = {" -b +N c c -a -a -a -a -a -a -a -a -a -a -a -a -a +B +B +B +B +B +B +B +B +B +B +B +B +B c c c -U -U +X +X c c c -a -a -a -a -a -a -a -a -a -a -a -a -a +B +B +B +B +B +B +B +B +B +B +B +B +B c c -b +N "} (6,1,1) = {" -b +N c c -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B c c -b +N "} (7,1,1) = {" -b +N c c -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B c c -b +N "} (8,1,1) = {" -b +N c c -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B c c -b +N "} (9,1,1) = {" -b +N c c -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B c c -b +N "} (10,1,1) = {" -b +N c c -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B c c -b +N "} (11,1,1) = {" -b +N c c -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B c c -b +N "} (12,1,1) = {" -b +N c c -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B c c -b +N "} (13,1,1) = {" -b +N c c -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B c c -b +N "} (14,1,1) = {" -b +N c c -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B c c -b +N "} (15,1,1) = {" -b +N c c -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B c c -b +N "} (16,1,1) = {" -b +N c c -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B c c -b +N "} (17,1,1) = {" -b +N c c c c -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B c c c c -b +N "} (18,1,1) = {" -b +N c -u -r +K +C c -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B c -r -z +C +I c -b +N "} (19,1,1) = {" -b +N c -i -i +W +W c -a -a -a -a -a -a -a -a -a -a -a -a -a +B +B +B +B +B +B +B +B +B +B +B +B +B c -w -w +o +o c -a -a -a -a -a -a -a -a -a -a -a -a -a +B +B +B +B +B +B +B +B +B +B +B +B +B c -i -p +W +D c -b +N "} (20,1,1) = {" -b -U -k -n -U -a -a -a -a -a -a -a -a -a -a -a -a -a -w -x -w -w -a -a -a -a -a -a -a -a -a -a -a -a -a -U -n -i -U -b +N +X +O +J +X +B +B +B +B +B +B +B +B +B +B +B +B +B +o +h +L +o +B +B +B +B +B +B +B +B +B +B +B +B +B +X +J +W +X +N "} (21,1,1) = {" -b -U -i -P -U -a -a -a -a -a -a -a -a -a -a -a -a -a -w -R -Q -w -a -a -a -a -a -a -a -a -a -a -a -a -a -U -v -d -U -b +N +X +W +A +X +B +B +B +B +B +B +B +B +B +B +B +B +B +o +m +Y +o +B +B +B +B +B +B +B +B +B +B +B +B +B +X +G +M +X +N "} (22,1,1) = {" -b +N c -i -i +W +W c -a -a -a -a -a -a -a -a -a -a -a -a -a +B +B +B +B +B +B +B +B +B +B +B +B +B c -w -w +o +o c -a -a -a -a -a -a -a -a -a -a -a -a -a +B +B +B +B +B +B +B +B +B +B +B +B +B c -i -i +W +W c -b +N "} (23,1,1) = {" -b +N c -u -r +K +C c -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B c -r -u +C +K c -b +N "} (24,1,1) = {" -b +N c c c c -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B c c c c -b +N "} (25,1,1) = {" -b +N c c -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B c c -b +N "} (26,1,1) = {" -b +N c c -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B c c -b +N "} (27,1,1) = {" -b +N c c -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B c c -b +N "} (28,1,1) = {" -b +N c c -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B c c -b +N "} (29,1,1) = {" -b +N c c -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B c c -b +N "} (30,1,1) = {" -b +N c c -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B c c -b +N "} (31,1,1) = {" -b +N c c -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B c c -b +N "} (32,1,1) = {" -b +N c c -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B c c -b +N "} (33,1,1) = {" -b +N c c -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B c c -b +N "} (34,1,1) = {" -b +N c c -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B c c -b +N "} (35,1,1) = {" -b +N c c -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B c c -b +N "} (36,1,1) = {" -b +N c c -a -a -a -a -a -a -a -a -a -a -a -a -a +B +B +B +B +B +B +B +B +B +B +B +B +B c c c -U -U +X +X c c c -a -a -a -a -a -a -a -a -a -a -a -a -a +B +B +B +B +B +B +B +B +B +B +B +B +B c c -b +N "} (37,1,1) = {" -b +N c c -a -a -a -a -a -a -a -a -a -a -a -a -a +B +B +B +B +B +B +B +B +B +B +B +B +B c -r -i -n -V -i -r +C +W +J +e +W +C c -a -a -a -a -a -a -a -a -a -a -a -a -a +B +B +B +B +B +B +B +B +B +B +B +B +B c c -b +N "} (38,1,1) = {" -b +N c c c @@ -1665,12 +1671,12 @@ c c c c -u -i -P -i -i -u +K +W +A +W +W +K c c c @@ -1687,10 +1693,10 @@ c c c c -b +N "} (39,1,1) = {" -b +N c c c @@ -1709,8 +1715,8 @@ c c c c -U -U +X +X c c c @@ -1729,47 +1735,47 @@ c c c c -b +N "} (40,1,1) = {" -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b +N +N +N +N +N +N +N +N +N +N +N +N +N +N +N +N +N +N +N +N +N +N +N +N +N +N +N +N +N +N +N +N +N +N +N +N +N +N +N +N "} diff --git a/_maps/RandomRuins/IceRuins/icemoon_surface_mining_site.dmm b/_maps/RandomRuins/IceRuins/icemoon_surface_mining_site.dmm index 840a31f90fd..4fb4dc201dd 100644 --- a/_maps/RandomRuins/IceRuins/icemoon_surface_mining_site.dmm +++ b/_maps/RandomRuins/IceRuins/icemoon_surface_mining_site.dmm @@ -40,9 +40,6 @@ /obj/structure/flora/rock/icy, /turf/closed/mineral/random/snow, /area/icemoon/surface/outdoors) -"i" = ( -/turf/template_noop, -/area/template_noop) "j" = ( /obj/structure/sink/kitchen, /turf/open/floor/wood, @@ -92,245 +89,248 @@ /obj/effect/decal/cleanable/trail_holder, /turf/open/floor/wood, /area/ruin/unpowered) -"u" = ( +"t" = ( +/turf/template_noop, +/area/template_noop) +"K" = ( /obj/structure/ladder{ travel_time = 40 }, /turf/open/floor/wood, /area/ruin/unpowered) -"G" = ( -/turf/open/openspace/icemoon/ruins, -/area/icemoon/surface/outdoors) -"Q" = ( +"W" = ( /turf/open/openspace/icemoon, /area/template_noop) +"Y" = ( +/turf/open/openspace/icemoon/ruins, +/area/icemoon/surface/outdoors) (1,1,1) = {" -i -i -i -i -i -i -i -i -i -i -i -i -i -i -i -i -i -i -i -i -i -i -i -i -i +t +t +t +t +t +t +t +t +t +t +t +t +t +t +t +t +t +t +t +t +t +t +t +t +t "} (2,1,1) = {" -i -i -i -i -i -i -i -G -G -G -G -G -G -G -G -G -G -G -i -i -i -i -i -i -i +t +t +t +t +t +t +t +Y +Y +Y +Y +Y +Y +Y +Y +Y +Y +Y +t +t +t +t +t +t +t "} (3,1,1) = {" -i -i -i -i -i -G -G -G -G -G -G -G -G -G -G -G -G -G -G -i -i -i -i -i -i +t +t +t +t +t +Y +Y +Y +Y +Y +Y +Y +Y +Y +Y +Y +Y +Y +Y +t +t +t +t +t +t "} (4,1,1) = {" -i -i -i +t +t +t d -G -G -G -G -G -G -G -G -G -G -G -G -G -G -G -G -i -i -i -i -i +Y +Y +Y +Y +Y +Y +Y +Y +Y +Y +Y +Y +Y +Y +Y +Y +t +t +t +t +t "} (5,1,1) = {" -i -i -i -G -G -G -G -G -G -G -G -G -G -G -G -G -G -G -G -G -G -i -i -i -i +t +t +t +Y +Y +Y +Y +Y +Y +Y +Y +Y +Y +Y +Y +Y +Y +Y +Y +Y +Y +t +t +t +t "} (6,1,1) = {" -i -i -G -G -G -G -G -G -G -G -G -G -G -G -G -G -G -G -G -G -G -G -i -i -i +t +t +Y +Y +Y +Y +Y +Y +Y +Y +Y +Y +Y +Y +Y +Y +Y +Y +Y +Y +Y +Y +t +t +t "} (7,1,1) = {" -i -i -G -G -G -G -G -G -G -G -G -G -G -G -G -G -G -G -G -G -G -G -G -i -i +t +t +Y +Y +Y +Y +Y +Y +Y +Y +Y +Y +Y +Y +Y +Y +Y +Y +Y +Y +Y +Y +Y +t +t "} (8,1,1) = {" -i -G -G -G -G -G -G -G -G -G -G -G -G -G -G -G -G -G -G -G -G -G -G -i -i +t +Y +Y +Y +Y +Y +Y +Y +Y +Y +Y +Y +Y +Y +Y +Y +Y +Y +Y +Y +Y +Y +Y +t +t "} (9,1,1) = {" -i -G -G -G -G -G -G -G -G +t +Y +Y +Y +Y +Y +Y +Y +Y b b b @@ -338,25 +338,25 @@ b b b b -G -G -G -G -G -G -G -G -i +Y +Y +Y +Y +Y +Y +Y +Y +t "} (10,1,1) = {" -i -G -G -G -G -G -G -G +t +Y +Y +Y +Y +Y +Y +Y b b b @@ -366,24 +366,24 @@ b b b b -G -G -G -G -G -G -G -i +Y +Y +Y +Y +Y +Y +Y +t "} (11,1,1) = {" -i -G -G -G -G -G -G -G +t +Y +Y +Y +Y +Y +Y +Y b b c @@ -393,24 +393,24 @@ o q b b -G -G -G -G -G -G -G -i +Y +Y +Y +Y +Y +Y +Y +t "} (12,1,1) = {" -i -G -G -G -G -G -G -G +t +Y +Y +Y +Y +Y +Y +Y b b e @@ -420,24 +420,24 @@ f r b b -G -G -G -G -G -G -G -i +Y +Y +Y +Y +Y +Y +Y +t "} (13,1,1) = {" -i -G -G -G -G -G -G -G +t +Y +Y +Y +Y +Y +Y +Y b b f @@ -447,24 +447,24 @@ f s b b -G -G -G -G -G -G -G -i +Y +Y +Y +Y +Y +Y +Y +t "} (14,1,1) = {" -i -G -G -G -G -G -G -G +t +Y +Y +Y +Y +Y +Y +Y b b g @@ -474,24 +474,24 @@ f s b b -G -G -G -G -G -G -G -i +Y +Y +Y +Y +Y +Y +Y +t "} (15,1,1) = {" -i -G -G -G -G -G -G -G +t +Y +Y +Y +Y +Y +Y +Y b b f @@ -501,24 +501,24 @@ f s b b -G -G -G -G -G -G -G -i +Y +Y +Y +Y +Y +Y +Y +t "} (16,1,1) = {" -i -G -G -G -G -G -G -G +t +Y +Y +Y +Y +Y +Y +Y b b j @@ -528,24 +528,24 @@ f s b b -G -G -G -G -G -G -G -i +Y +Y +Y +Y +Y +Y +Y +t "} (17,1,1) = {" -i -G -G -G -G -G -G -G +t +Y +Y +Y +Y +Y +Y +Y b b k @@ -555,51 +555,51 @@ f s b b -G -G -G -G -G -G -G -i +Y +Y +Y +Y +Y +Y +Y +t "} (18,1,1) = {" -i -G -G -G -G -G -G -G +t +Y +Y +Y +Y +Y +Y +Y b b l f f f -u +K b b -G -G -G -G -G -G -G -i +Y +Y +Y +Y +Y +Y +Y +t "} (19,1,1) = {" -i -G -G -G -G -G -G -G +t +Y +Y +Y +Y +Y +Y +Y b b b @@ -609,25 +609,25 @@ p b b b -G -G -G -G -G -G -G -i +Y +Y +Y +Y +Y +Y +Y +t "} (20,1,1) = {" -i -G -G -G -G -G -G -G -G +t +Y +Y +Y +Y +Y +Y +Y +Y b b b @@ -635,161 +635,161 @@ f b b b -G -G -G -G -G -G -G -G -i +Y +Y +Y +Y +Y +Y +Y +Y +t "} (21,1,1) = {" -i -G -G -G -G -G -G -G -G -G -G +t +Y +Y +Y +Y +Y +Y +Y +Y +Y +Y b f b -G -G -G -G -G -G -G -G -G -G -i +Y +Y +Y +Y +Y +Y +Y +Y +Y +Y +t "} (22,1,1) = {" -i -G -G -G -G -G -G -G -G -G -G +t +Y +Y +Y +Y +Y +Y +Y +Y +Y +Y b f b -G -G -G -G -G -G -G -G -G -G -i +Y +Y +Y +Y +Y +Y +Y +Y +Y +Y +t "} (23,1,1) = {" -i -G -G -G -G -G -G -G -G -G -G +t +Y +Y +Y +Y +Y +Y +Y +Y +Y +Y b f b -G -G -G -G -G -G -G -G -G -i -i +Y +Y +Y +Y +Y +Y +Y +Y +Y +t +t "} (24,1,1) = {" -i -i -G -G -G -G -G -G -G -G -G +t +t +Y +Y +Y +Y +Y +Y +Y +Y +Y b n b -G -G -G -G -G -G -G -G +Y +Y +Y +Y +Y +Y +Y +Y d -i -i +t +t "} (25,1,1) = {" -i -i -i -G -G -G -G -G -G -G +t +t +t +Y +Y +Y +Y +Y +Y +Y a h h h a -G -G -G -G -G -G +Y +Y +Y +Y +Y +Y d -i -i -i +t +t +t "} (26,1,1) = {" -i -i -i +t +t +t d -G -G -G -G -G +Y +Y +Y +Y +Y a a a @@ -797,25 +797,25 @@ h a a a -G -G -G -G +Y +Y +Y +Y d d -i -i -i +t +t +t "} (27,1,1) = {" -i -i -i -i +t +t +t +t d -G -G -G +Y +Y +Y a a a @@ -825,21 +825,21 @@ a a a a -G -G +Y +Y d d -i -i -i -i +t +t +t +t "} (28,1,1) = {" -i -i -i -i -i +t +t +t +t +t d d a @@ -854,21 +854,21 @@ a a a d -Q -i -i -i -i -i +W +t +t +t +t +t "} (29,1,1) = {" -i -i -i -i -i -i -i +t +t +t +t +t +t +t a a a @@ -880,11 +880,11 @@ a a a a -i -i -i -i -i -i -i +t +t +t +t +t +t +t "} diff --git a/_maps/RandomRuins/IceRuins/icemoon_underground_lavaland.dmm b/_maps/RandomRuins/IceRuins/icemoon_underground_lavaland.dmm index 7f809f10a24..487a143ea12 100644 --- a/_maps/RandomRuins/IceRuins/icemoon_underground_lavaland.dmm +++ b/_maps/RandomRuins/IceRuins/icemoon_underground_lavaland.dmm @@ -2,6 +2,10 @@ "b" = ( /turf/closed/mineral/random/snow, /area/icemoon/underground/unexplored) +"e" = ( +/obj/structure/trap/cult, +/turf/open/floor/iron/cult, +/area/icemoon/underground) "h" = ( /obj/item/paper{ info = "We have managed to seal the beast inside, the last of its kind they say... unfortunately in doing so, it seems we have spawned creatures beyond our power to contain..." @@ -11,10 +15,7 @@ initial_gas_mix = "LAVALAND_ATMOS" }, /area/icemoon/underground) -"l" = ( -/turf/open/floor/iron/cult, -/area/icemoon/underground) -"o" = ( +"q" = ( /turf/open/genturf, /area/lavaland/surface/outdoors/unexplored/danger) "w" = ( @@ -36,6 +37,10 @@ initial_gas_mix = "LAVALAND_ATMOS" }, /area/icemoon/underground) +"E" = ( +/obj/item/grown/bananapeel, +/turf/open/floor/iron/cult, +/area/icemoon/underground) "J" = ( /turf/closed/wall/mineral/cult, /area/icemoon/underground) @@ -45,20 +50,15 @@ "R" = ( /turf/open/floor/mineral/gold, /area/icemoon/underground) +"T" = ( +/turf/open/floor/iron/cult, +/area/icemoon/underground) "V" = ( /obj/item/storage/toolbox/mechanical/old/clean, /turf/open/floor/plating/asteroid{ initial_gas_mix = "LAVALAND_ATMOS" }, /area/icemoon/underground) -"X" = ( -/obj/item/grown/bananapeel, -/turf/open/floor/iron/cult, -/area/icemoon/underground) -"Y" = ( -/obj/structure/trap/cult, -/turf/open/floor/iron/cult, -/area/icemoon/underground) "Z" = ( /turf/open/floor/plating/asteroid{ initial_gas_mix = "LAVALAND_ATMOS" @@ -168,10 +168,10 @@ J J J J -l -Y -l -l +T +e +T +T J J J @@ -195,40 +195,40 @@ b b J J -o -o -o -o -o -o -o -o -o -o -o -o -o -o +q +q +q +q +q +q +q +q +q +q +q +q +q +q J -l -l -X -l +T +T +E +T J -o -o -o -o -o -o -o -o -o -o -o -o -o -o +q +q +q +q +q +q +q +q +q +q +q +q +q +q J J b @@ -237,40 +237,40 @@ b b J J -o -o -o -o -o -o -o -o -o -o -o -o -o -o +q +q +q +q +q +q +q +q +q +q +q +q +q +q J J -l -Y +T +e J J -o -o -o -o -o -o -o -o -o -o -o -o -o -o +q +q +q +q +q +q +q +q +q +q +q +q +q +q J J b @@ -279,40 +279,40 @@ b b J J -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q J w w J -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q J J b @@ -321,40 +321,40 @@ b b J J -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q J J b @@ -363,40 +363,40 @@ b b J J -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q J J b @@ -405,40 +405,40 @@ b b J J -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q J J b @@ -447,40 +447,40 @@ b b J J -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q J J b @@ -489,40 +489,40 @@ b b J J -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q J J b @@ -531,40 +531,40 @@ b b J J -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q J J b @@ -573,40 +573,40 @@ b b J J -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q J J b @@ -615,40 +615,40 @@ b b J J -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q J J b @@ -657,40 +657,40 @@ b b J J -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q J J b @@ -699,40 +699,40 @@ b b J J -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q J J b @@ -741,19 +741,19 @@ b b J J -o -o -o -o -o -o -o -o -o -o -o -o -o +q +q +q +q +q +q +q +q +q +q +q +q +q V Z Z @@ -762,19 +762,19 @@ Z Z Z Z -o -o -o -o -o -o -o -o -o -o -o -o -o +q +q +q +q +q +q +q +q +q +q +q +q +q J J b @@ -785,17 +785,17 @@ J J J J -o -o -o -o -o -o -o -o -o -o -o +q +q +q +q +q +q +q +q +q +q +q A J J @@ -804,17 +804,17 @@ J J J Z -o -o -o -o -o -o -o -o -o -o -o +q +q +q +q +q +q +q +q +q +q +q J J J @@ -824,20 +824,20 @@ b (19,1,1) = {" b J -l -l +T +T J J -o -o -o -o -o -o -o -o -o -o +q +q +q +q +q +q +q +q +q +q h J R @@ -846,40 +846,40 @@ P R J Z -o -o -o -o -o -o -o -o -o -o +q +q +q +q +q +q +q +q +q +q J J -l -l +T +T J b "} (20,1,1) = {" b w -Y -l -l +e +T +T w -o -o -o -o -o -o -o -o -o -o +q +q +q +q +q +q +q +q +q +q Z J P @@ -888,40 +888,40 @@ R P J Z -o -o -o -o -o -o -o -o -o -o +q +q +q +q +q +q +q +q +q +q w -l -l -Y +T +T +e w b "} (21,1,1) = {" b w -l -X -Y +T +E +e w -o -o -o -o -o -o -o -o -o -o +q +q +q +q +q +q +q +q +q +q Z J P @@ -930,40 +930,40 @@ y P J Z -o -o -o -o -o -o -o -o -o -o +q +q +q +q +q +q +q +q +q +q w -Y -X -l +e +E +T w b "} (22,1,1) = {" b J -l -l +T +T J J -o -o -o -o -o -o -o -o -o -o +q +q +q +q +q +q +q +q +q +q Z J R @@ -972,20 +972,20 @@ P R J Z -o -o -o -o -o -o -o -o -o -o +q +q +q +q +q +q +q +q +q +q J J -l -l +T +T J b "} @@ -995,17 +995,17 @@ J J J J -o -o -o -o -o -o -o -o -o -o -o +q +q +q +q +q +q +q +q +q +q +q Z J J @@ -1014,17 +1014,17 @@ J J J Z -o -o -o -o -o -o -o -o -o -o -o +q +q +q +q +q +q +q +q +q +q +q J J J @@ -1035,19 +1035,19 @@ b b J J -o -o -o -o -o -o -o -o -o -o -o -o -o +q +q +q +q +q +q +q +q +q +q +q +q +q Z Z Z @@ -1056,19 +1056,19 @@ Z Z Z Z -o -o -o -o -o -o -o -o -o -o -o -o -o +q +q +q +q +q +q +q +q +q +q +q +q +q J J b @@ -1077,40 +1077,40 @@ b b J J -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q J J b @@ -1119,40 +1119,40 @@ b b J J -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q J J b @@ -1161,40 +1161,40 @@ b b J J -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q J J b @@ -1203,40 +1203,40 @@ b b J J -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q J J b @@ -1245,40 +1245,40 @@ b b J J -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q J J b @@ -1287,40 +1287,40 @@ b b J J -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q J J b @@ -1329,40 +1329,40 @@ b b J J -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q J J b @@ -1371,40 +1371,40 @@ b b J J -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q J J b @@ -1413,40 +1413,40 @@ b b J J -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q J J b @@ -1455,40 +1455,40 @@ b b J J -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q J J b @@ -1497,40 +1497,40 @@ b b J J -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q J w w J -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q J J b @@ -1539,40 +1539,40 @@ b b J J -o -o -o -o -o -o -o -o -o -o -o -o -o -o +q +q +q +q +q +q +q +q +q +q +q +q +q +q J J -l -Y +T +e J J -o -o -o -o -o -o -o -o -o -o -o -o -o -o +q +q +q +q +q +q +q +q +q +q +q +q +q +q J J b @@ -1581,40 +1581,40 @@ b b J J -o -o -o -o -o -o -o -o -o -o -o -o -o -o +q +q +q +q +q +q +q +q +q +q +q +q +q +q J -l -l -X -l +T +T +E +T J -o -o -o -o -o -o -o -o -o -o -o -o -o -o +q +q +q +q +q +q +q +q +q +q +q +q +q +q J J b @@ -1638,10 +1638,10 @@ J J J J -l -Y -l -l +T +e +T +T J J J diff --git a/code/datums/components/crafting/recipes.dm b/code/datums/components/crafting/recipes.dm index 8dcf1ca4166..77d04cd1a26 100644 --- a/code/datums/components/crafting/recipes.dm +++ b/code/datums/components/crafting/recipes.dm @@ -837,6 +837,13 @@ /obj/item/stack/sheet/animalhide/ashdrake = 5) category = CAT_PRIMAL +/datum/crafting_recipe/godslayer + name = "Godslayer Armour" + result = /obj/item/clothing/suit/hooded/cloak/godslayer + time = 60 + reqs = list(/obj/item/ice_energy_crystal = 1, /obj/item/wendigo_skull = 1, /obj/item/clockwork_alloy = 1) + category = CAT_PRIMAL + /datum/crafting_recipe/firebrand name = "Firebrand" result = /obj/item/match/firebrand diff --git a/code/datums/status_effects/buffs.dm b/code/datums/status_effects/buffs.dm index 4ed5b63aacc..8a15c697fa7 100644 --- a/code/datums/status_effects/buffs.dm +++ b/code/datums/status_effects/buffs.dm @@ -510,3 +510,24 @@ to_chat(owner, "Your bloodlust seeps back into the bog of your subconscious and you regain self control.") owner.log_message("exited a blood frenzy", LOG_ATTACK) QDEL_NULL(chainsaw) + +/datum/status_effect/speed_boost + id = "speed_boost" + duration = 2 SECONDS + status_type = STATUS_EFFECT_REPLACE + +/datum/status_effect/speed_boost/on_creation(mob/living/new_owner, set_duration) + if(isnum(set_duration)) + duration = set_duration + . = ..() + +/datum/status_effect/speed_boost/on_apply() + owner.add_movespeed_modifier(/datum/movespeed_modifier/status_speed_boost, update = TRUE) + return ..() + +/datum/status_effect/speed_boost/on_remove() + owner.remove_movespeed_modifier(/datum/movespeed_modifier/status_speed_boost, update = TRUE) + +/datum/movespeed_modifier/status_speed_boost + multiplicative_slowdown = -1 + diff --git a/code/modules/clothing/suits/cloaks.dm b/code/modules/clothing/suits/cloaks.dm index 26070bac1a1..076ebd56b57 100644 --- a/code/modules/clothing/suits/cloaks.dm +++ b/code/modules/clothing/suits/cloaks.dm @@ -94,6 +94,66 @@ max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT resistance_flags = FIRE_PROOF | ACID_PROOF +/obj/item/clothing/suit/hooded/cloak/godslayer + name = "godslayer armour" + icon_state = "godslayer" + desc = "A suit of armour fashioned from the remnants of a knight's armor, and parts of a wendigo." + allowed = list(/obj/item/flashlight, /obj/item/tank/internals, /obj/item/resonator, /obj/item/mining_scanner, /obj/item/t_scanner/adv_mining_scanner, /obj/item/gun/energy/kinetic_accelerator, /obj/item/pickaxe, /obj/item/spear) + armor = list("melee" = 50, "bullet" = 25, "laser" = 25, "energy" = 25, "bomb" = 50, "bio" = 50, "rad" = 100, "fire" = 100, "acid" = 100) + clothing_flags = STOPSPRESSUREDAMAGE | THICKMATERIAL + hoodtype = /obj/item/clothing/head/hooded/cloakhood/godslayer + cold_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS + min_cold_protection_temperature = FIRE_SUIT_MIN_TEMP_PROTECT + heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS + max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT + body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS + resistance_flags = FIRE_PROOF | ACID_PROOF | FREEZE_PROOF + transparent_protection = HIDEGLOVES|HIDESUITSTORAGE|HIDEJUMPSUIT|HIDESHOES + /// Amount to heal when the effect is triggered + var/heal_amount = 500 + /// Time until the effect can take place again + var/effect_cooldown_time = 10 MINUTES + /// Current cooldown for the effect + COOLDOWN_DECLARE(effect_cooldown) + var/static/list/damage_heal_order = list(BRUTE, BURN, OXY) + +/obj/item/clothing/head/hooded/cloakhood/godslayer + name = "godslayer helm" + icon_state = "godslayer" + desc = "The horns and skull of a wendigo, held together by the remaining icey energy of a demonic miner." + armor = list("melee" = 50, "bullet" = 25, "laser" = 25, "energy" = 25, "bomb" = 50, "bio" = 50, "rad" = 100, "fire" = 100, "acid" = 100) + clothing_flags = STOPSPRESSUREDAMAGE | THICKMATERIAL | SNUG_FIT + cold_protection = HEAD + min_cold_protection_temperature = FIRE_HELM_MIN_TEMP_PROTECT + heat_protection = HEAD + max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT + flash_protect = FLASH_PROTECTION_WELDER + flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH | PEPPERPROOF + resistance_flags = FIRE_PROOF | ACID_PROOF | FREEZE_PROOF + +/obj/item/clothing/suit/hooded/cloak/godslayer/examine(mob/user) + . = ..() + if(loc == user && !COOLDOWN_FINISHED(src, effect_cooldown)) + . += "You feel like the revival effect will be able to occur again in [COOLDOWN_TIMELEFT(src, effect_cooldown) / 10] seconds." + +/obj/item/clothing/suit/hooded/cloak/godslayer/equipped(mob/user, slot) + . = ..() + if(slot & ITEM_SLOT_OCLOTHING) + RegisterSignal(user, COMSIG_MOB_STATCHANGE, .proc/resurrect) + return + UnregisterSignal(user, COMSIG_MOB_STATCHANGE, .proc/resurrect) + +/obj/item/clothing/suit/hooded/cloak/godslayer/dropped(mob/user) + ..() + UnregisterSignal(user, COMSIG_MOB_STATCHANGE, .proc/resurrect) + +/obj/item/clothing/suit/hooded/cloak/godslayer/proc/resurrect(mob/living/carbon/user, new_stat) + if(new_stat > CONSCIOUS && new_stat < DEAD && COOLDOWN_FINISHED(src, effect_cooldown)) + user.heal_ordered_damage(heal_amount, damage_heal_order) + user.visible_message("[user] suddenly revives, as their armor swirls with demonic energy!", "You suddenly feel invigorated!") + playsound(user.loc, 'sound/magic/clockwork/ratvar_attack.ogg', 50) + COOLDOWN_START(src, effect_cooldown, effect_cooldown_time) + /obj/item/clothing/neck/cloak/skill_reward var/associated_skill_path = /datum/skill resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/clockwork_knight.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/clockwork_knight.dm new file mode 100644 index 00000000000..abbb7f6d4c1 --- /dev/null +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/clockwork_knight.dm @@ -0,0 +1,51 @@ +/* + +Difficulty: Very Easy +Was planned to be something more but due to the content freeze it unfortunately cannot be +I'd rather there be something than the clockwork ruin be entirely empty though so here is a basic mob + +*/ + +/mob/living/simple_animal/hostile/megafauna/clockwork_defender + name = "the clockwork defender" + desc = "A traitorous clockwork knight who lived on, despite its creators destruction." + health = 300 + maxHealth = 300 + icon_state = "clockwork_defender" + icon_living = "clockwork_defender" + icon = 'icons/mob/icemoon/icemoon_monsters.dmi' + attack_verb_continuous = "slashes" + attack_verb_simple = "slash" + attack_sound = 'sound/weapons/bladeslice.ogg' + weather_immunities = list("snow") + speak_emote = list("roars") + armour_penetration = 40 + melee_damage_lower = 20 + melee_damage_upper = 20 + vision_range = 9 + aggro_vision_range = 9 + speed = 5 + move_to_delay = 5 + rapid_melee = 2 // every second + melee_queue_distance = 20 + ranged = TRUE + gps_name = "Clockwork Signal" + loot = list(/obj/item/clockwork_alloy) + crusher_loot = list(/obj/item/clockwork_alloy) + wander = FALSE + del_on_death = TRUE + deathmessage = "falls, quickly decaying into centuries old dust." + deathsound = "bodyfall" + footstep_type = FOOTSTEP_MOB_HEAVY + attack_action_types = list() + +/mob/living/simple_animal/hostile/megafauna/clockwork_defender/OpenFire() + return + +/obj/item/clockwork_alloy + name = "clockwork alloy" + desc = "The remains of the strongest clockwork knight." + icon = 'icons/obj/ice_moon/artifacts.dmi' + icon_state = "clockwork_alloy" + w_class = WEIGHT_CLASS_TINY + throwforce = 0 diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/demonic_frost_miner.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/demonic_frost_miner.dm index 732a47aa457..6caae679cf7 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/demonic_frost_miner.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/demonic_frost_miner.dm @@ -31,8 +31,8 @@ Difficulty: Extremely Hard move_to_delay = 20 gps_name = "Bloodchilling Signal" ranged = TRUE - crusher_loot = list(/obj/effect/decal/remains/plasma, /obj/item/crusher_trophy/ice_block_talisman) - loot = list(/obj/effect/decal/remains/plasma) + crusher_loot = list(/obj/effect/decal/remains/plasma, /obj/item/crusher_trophy/ice_block_talisman, /obj/item/ice_energy_crystal) + loot = list(/obj/effect/decal/remains/plasma, /obj/item/ice_energy_crystal) wander = FALSE del_on_death = TRUE blood_volume = BLOOD_VOLUME_NORMAL @@ -421,6 +421,14 @@ Difficulty: Extremely Hard owner.cut_overlay(cube) UnregisterSignal(owner, COMSIG_MOVABLE_PRE_MOVE) +/obj/item/ice_energy_crystal + name = "ice energy crystal" + desc = "Remnants of the demonic frost miners ice energy." + icon = 'icons/obj/ice_moon/artifacts.dmi' + icon_state = "ice_crystal" + w_class = WEIGHT_CLASS_TINY + throwforce = 0 + /obj/structure/frost_miner_prism name = "frost miner light prism" desc = "A magical crystal enhanced by a demonic presence." diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/wendigo.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/wendigo.dm index bafc459e52d..8ab74e1f840 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/wendigo.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/wendigo.dm @@ -1,3 +1,11 @@ +#define WENDIGO_ENRAGED (health <= maxHealth*0.5) +#define WENDIGO_CIRCLE_SHOTCOUNT 24 +#define WENDIGO_CIRCLE_REPEATCOUNT 8 +#define WENDIGO_SPIRAL_SHOTCOUNT 40 +#define WENDIGO_WAVE_SHOTCOUNT 7 +#define WENDIGO_WAVE_REPEATCOUNT 32 +#define WENDIGO_SHOTGUN_SHOTCOUNT 5 + /* Difficulty: Hard @@ -23,18 +31,18 @@ Difficulty: Hard melee_damage_upper = 40 vision_range = 9 aggro_vision_range = 18 // man-eating for a reason - speed = 8 - move_to_delay = 8 - rapid_melee = 16 // every 1/8 second - melee_queue_distance = 20 // as far as possible really, need this because of charging and teleports + speed = 6 + move_to_delay = 6 + rapid_melee = 8 // every 1/4 second + melee_queue_distance = 18 // as far as possible really, need this because of charging and teleports ranged = TRUE pixel_x = -16 base_pixel_x = -16 gps_name = "Berserk Signal" loot = list() butcher_results = list() - guaranteed_butcher_results = list(/obj/item/wendigo_blood = 1) - crusher_loot = list(/obj/item/crusher_trophy/demon_claws) + guaranteed_butcher_results = list(/obj/item/wendigo_blood = 1, /obj/item/wendigo_skull = 1) + crusher_loot = list(/obj/item/crusher_trophy/wendigo_horn) wander = FALSE del_on_death = FALSE blood_volume = BLOOD_VOLUME_NORMAL @@ -46,7 +54,7 @@ Difficulty: Hard footstep_type = FOOTSTEP_MOB_HEAVY attack_action_types = list(/datum/action/innate/megafauna_attack/heavy_stomp, /datum/action/innate/megafauna_attack/teleport, - /datum/action/innate/megafauna_attack/disorienting_scream) + /datum/action/innate/megafauna_attack/shockwave_scream) /// Saves the turf the megafauna was created at (spawns exit portal here) var/turf/starting /// Range for wendigo stomping when it moves @@ -55,8 +63,10 @@ Difficulty: Hard var/stored_move_dirs = 0 /// If the wendigo is allowed to move var/can_move = TRUE + /// Time before the wendigo can scream again + var/scream_cooldown_time = 10 SECONDS /// Stores the last scream time so it doesn't spam it - var/last_scream = 0 + COOLDOWN_DECLARE(scream_cooldown) /datum/action/innate/megafauna_attack/heavy_stomp name = "Heavy Stomp" @@ -72,8 +82,8 @@ Difficulty: Hard chosen_message = "You are now teleporting at the target you click on." chosen_attack_num = 2 -/datum/action/innate/megafauna_attack/disorienting_scream - name = "Disorienting Scream" +/datum/action/innate/megafauna_attack/shockwave_scream + name = "Shockwave Scream" icon_icon = 'icons/turf/walls/wall.dmi' button_icon_state = "wall-0" chosen_message = "You are now screeching, disorienting targets around you." @@ -84,11 +94,10 @@ Difficulty: Hard starting = get_turf(src) /mob/living/simple_animal/hostile/megafauna/wendigo/OpenFire() - SetRecoveryTime(0, 100) - if(health <= maxHealth*0.5) - stomp_range = 2 - speed = 6 - move_to_delay = 6 + SetRecoveryTime(10 SECONDS) + if(WENDIGO_ENRAGED) + speed = 4 + move_to_delay = 4 else stomp_range = initial(stomp_range) speed = initial(speed) @@ -99,12 +108,12 @@ Difficulty: Hard if(1) heavy_stomp() if(2) - teleport() + try_teleport() if(3) - disorienting_scream() + shockwave_scream() return - if(world.time > last_scream + 60) + if(COOLDOWN_FINISHED(src, scream_cooldown)) chosen_attack = rand(1, 3) else chosen_attack = rand(1, 2) @@ -112,17 +121,10 @@ Difficulty: Hard if(1) heavy_stomp() if(2) - teleport() + try_teleport() if(3) - disorienting_scream() - -/mob/living/simple_animal/hostile/megafauna/wendigo/Life(delta_time = SSMOBS_DT, times_fired) - . = ..() - if(!.) - return - if(target || get_dist(src, starting) < 12) - return - do_teleport(src, starting, 0, channel=TELEPORT_CHANNEL_BLUESPACE, forced = TRUE) + do_teleport(src, starting, 0, channel=TELEPORT_CHANNEL_BLUESPACE, forced = TRUE) + shockwave_scream() /mob/living/simple_animal/hostile/megafauna/wendigo/Move(atom/newloc, direct) if(!can_move) @@ -134,62 +136,128 @@ Difficulty: Hard . = ..() stored_move_dirs &= ~direct if(!stored_move_dirs) - INVOKE_ASYNC(src, .proc/ground_slam, stomp_range, 1) + INVOKE_ASYNC(GLOBAL_PROC, .proc/wendigo_slam, src, stomp_range, 1, 8) -/// Slams the ground around the wendigo throwing back enemies caught nearby -/mob/living/simple_animal/hostile/megafauna/wendigo/proc/ground_slam(range, delay) - var/turf/orgin = get_turf(src) +/// Slams the ground around the source throwing back enemies caught nearby, delay is for the radius increase +/proc/wendigo_slam(atom/source, range, delay, throw_range) + var/turf/orgin = get_turf(source) var/list/all_turfs = RANGE_TURFS(range, orgin) for(var/i = 0 to range) - for(var/turf/T in all_turfs) - if(get_dist(orgin, T) > i) + playsound(orgin,'sound/effects/bamf.ogg', 600, TRUE, 10) + for(var/turf/stomp_turf in all_turfs) + if(get_dist(orgin, stomp_turf) > i) continue - playsound(T,'sound/effects/bamf.ogg', 600, TRUE, 10) - new /obj/effect/temp_visual/small_smoke/halfsecond(T) - for(var/mob/living/L in T) - if(L == src || L.throwing) + new /obj/effect/temp_visual/small_smoke/halfsecond(stomp_turf) + for(var/mob/living/L in stomp_turf) + if(L == source || L.throwing) continue - to_chat(L, "[src]'s ground slam shockwave sends you flying!") - var/turf/thrownat = get_ranged_target_turf_direct(src, L, 8, rand(-10, 10)) - L.throw_at(thrownat, 8, 2, src, TRUE, force = MOVE_FORCE_OVERPOWERING, gentle = TRUE) + to_chat(L, "[source]'s ground slam shockwave sends you flying!") + var/turf/thrownat = get_ranged_target_turf_direct(source, L, throw_range, rand(-10, 10)) + L.throw_at(thrownat, 8, 2, null, TRUE, force = MOVE_FORCE_OVERPOWERING, gentle = TRUE) L.apply_damage(20, BRUTE, wound_bonus=CANT_WOUND) shake_camera(L, 2, 1) - all_turfs -= T + all_turfs -= stomp_turf sleep(delay) /// Larger but slower ground stomp /mob/living/simple_animal/hostile/megafauna/wendigo/proc/heavy_stomp() can_move = FALSE - ground_slam(5, 2) - SetRecoveryTime(0, 0) + wendigo_slam(src, 5, 3 - WENDIGO_ENRAGED, 8) + SetRecoveryTime(0 SECONDS) can_move = TRUE /// Teleports to a location 4 turfs away from the enemy in view -/mob/living/simple_animal/hostile/megafauna/wendigo/proc/teleport() - var/list/possible_ends = list() - for(var/turf/T in view(4, target.loc) - view(3, target.loc)) - if(isclosedturf(T)) - continue - possible_ends |= T - if (LAZYLEN(possible_ends)) - var/turf/end = pick(possible_ends) - do_teleport(src, end, 0, channel=TELEPORT_CHANNEL_BLUESPACE, forced = TRUE) - SetRecoveryTime(20, 0) +/mob/living/simple_animal/hostile/megafauna/wendigo/proc/try_teleport() + teleport(6) + if(WENDIGO_ENRAGED) + playsound(loc, 'sound/magic/clockwork/invoke_general.ogg', 100, TRUE) + for(var/shots in 1 to WENDIGO_SHOTGUN_SHOTCOUNT) + var/spread = shots * 10 - 30 + var/turf/startloc = get_step(get_turf(src), get_dir(src, target)) + var/turf/endloc = get_turf(target) + if(!endloc) + break + var/obj/projectile/wendigo_shockwave/shockwave = new /obj/projectile/wendigo_shockwave(loc) + shockwave.speed = 8 + shockwave.preparePixelProjectile(endloc, startloc, null, spread) + shockwave.firer = src + if(target) + shockwave.original = target + shockwave.fire() + SetRecoveryTime(0 SECONDS) -/// Applies dizziness to all nearby enemies that can hear the scream and animates the wendigo shaking up and down -/mob/living/simple_animal/hostile/megafauna/wendigo/proc/disorienting_scream() +/mob/living/simple_animal/hostile/megafauna/wendigo/proc/teleport(range = 6) + var/list/possible_ends = view(range, target.loc) - view(range - 1, target.loc) + for(var/turf/closed/cant_teleport_turf in possible_ends) + possible_ends -= cant_teleport_turf + if(!possible_ends.len) + return + var/turf/end = pick(possible_ends) + do_teleport(src, end, 0, channel=TELEPORT_CHANNEL_BLUESPACE, forced = TRUE) + +/// Applies dizziness to all nearby enemies that can hear the scream and animates the wendigo shaking up and down as shockwave projectiles shoot outward +/mob/living/simple_animal/hostile/megafauna/wendigo/proc/shockwave_scream() can_move = FALSE - last_scream = world.time - playsound(src, 'sound/magic/demon_dies.ogg', 600, FALSE, 10) - animate(src, pixel_z = rand(5, 15), time = 1, loop = 6) + COOLDOWN_START(src, scream_cooldown, scream_cooldown_time) + SLEEP_CHECK_DEATH(5) + playsound(loc, 'sound/magic/demon_dies.ogg', 600, FALSE, 10) + animate(src, pixel_z = rand(5, 15), time = 1, loop = 20) animate(pixel_z = 0, time = 1) - for(var/mob/living/L in get_hearers_in_view(7, src) - src) - L.Dizzy(6) - to_chat(L, "[src] screams loudly!") - SetRecoveryTime(30, 0) - SLEEP_CHECK_DEATH(12) + for(var/mob/living/dizzy_target in get_hearers_in_view(7, src) - src) + dizzy_target.Dizzy(6) + to_chat(dizzy_target, "The wendigo screams loudly!") + SLEEP_CHECK_DEATH(1 SECONDS) + spiral_attack() + SetRecoveryTime(3 SECONDS) + SLEEP_CHECK_DEATH(3 SECONDS) can_move = TRUE - teleport() + +/// Shoots shockwave projectiles in a random preset pattern +/mob/living/simple_animal/hostile/megafauna/wendigo/proc/spiral_attack() + var/list/choices = list("Alternating Circle", "Spiral") + if(WENDIGO_ENRAGED) + choices += "Wave" + var/spiral_type = pick(choices) + switch(spiral_type) + if("Alternating Circle") + var/shots_per = WENDIGO_CIRCLE_SHOTCOUNT + for(var/shoot_times in 1 to WENDIGO_CIRCLE_REPEATCOUNT) + var/offset = shoot_times % 2 + for(var/shot in 1 to shots_per) + var/angle = shot * 360 / shots_per + (offset * 360 / shots_per) * 0.5 + var/obj/projectile/wendigo_shockwave/shockwave = new /obj/projectile/wendigo_shockwave(loc) + shockwave.firer = src + shockwave.speed = 3 - WENDIGO_ENRAGED + shockwave.fire(angle) + SLEEP_CHECK_DEATH(6 - WENDIGO_ENRAGED * 2) + if("Spiral") + var/shots_spiral = WENDIGO_SPIRAL_SHOTCOUNT + var/angle_to_target = Get_Angle(src, target) + var/spiral_direction = pick(-1, 1) + for(var/shot in 1 to shots_spiral) + var/shots_per_tick = 5 - WENDIGO_ENRAGED * 3 + var/angle_change = (5 + WENDIGO_ENRAGED * shot / 6) * spiral_direction + for(var/count in 1 to shots_per_tick) + var/angle = angle_to_target + shot * angle_change + count * 360 / shots_per_tick + var/obj/projectile/wendigo_shockwave/shockwave = new /obj/projectile/wendigo_shockwave(loc) + shockwave.firer = src + shockwave.damage = 15 + shockwave.fire(angle) + SLEEP_CHECK_DEATH(1) + if("Wave") + var/shots_per = WENDIGO_WAVE_SHOTCOUNT + var/difference = 360 / shots_per + var/wave_direction = pick(-1, 1) + for(var/shoot_times in 1 to WENDIGO_WAVE_REPEATCOUNT) + for(var/shot in 1 to shots_per) + var/angle = shot * difference + shoot_times * 5 * wave_direction * -1 + var/obj/projectile/wendigo_shockwave/shockwave = new /obj/projectile/wendigo_shockwave(loc) + shockwave.firer = src + shockwave.wave_movement = TRUE + shockwave.speed = 8 + shockwave.wave_speed = 10 * wave_direction + shockwave.fire(angle) + SLEEP_CHECK_DEATH(2) /mob/living/simple_animal/hostile/megafauna/wendigo/death(gibbed, list/force_grant) if(health > 0) @@ -200,6 +268,28 @@ Difficulty: Hard exit.set_light(20, 1, COLOR_SOFT_RED) return ..() +/obj/projectile/wendigo_shockwave + name ="wendigo shockwave" + icon_state= "chronobolt" + damage = 25 + armour_penetration = 100 + speed = 2 + eyeblur = 5 + damage_type = BRUTE + pass_flags = PASSTABLE + /// If wave movement is enabled + var/wave_movement = FALSE + /// Amount the angle changes every pixel move + var/wave_speed = 15 + /// Amount of movements this projectile has made + var/pixel_moves = 0 + +/obj/projectile/wendigo_shockwave/pixel_move(trajectory_multiplier, hitscanning = FALSE) + . = ..() + if(wave_movement) + pixel_moves++ + set_angle(original_angle + pixel_moves * wave_speed) + /obj/item/wendigo_blood name = "bottle of wendigo blood" desc = "You're not actually going to drink this, are you?" @@ -209,13 +299,13 @@ Difficulty: Hard /obj/item/wendigo_blood/attack_self(mob/living/user) if(!ishuman(user)) return - var/mob/living/carbon/human/H = user - if(!H.mind) + var/mob/living/carbon/human/human_user = user + if(!human_user.mind) return - to_chat(H, "Power courses through you! You can now shift your form at will.") - var/obj/effect/proc_holder/spell/targeted/shapeshift/polar_bear/P = new - H.mind.AddSpell(P) - playsound(H.loc,'sound/items/drink.ogg', rand(10,50), TRUE) + to_chat(human_user, "Power courses through you! You can now shift your form at will.") + var/obj/effect/proc_holder/spell/targeted/shapeshift/polar_bear/transformation_spell = new + human_user.mind.AddSpell(transformation_spell) + playsound(human_user.loc, 'sound/items/drink.ogg', rand(10,50), TRUE) qdel(src) /obj/effect/proc_holder/spell/targeted/shapeshift/polar_bear @@ -224,3 +314,37 @@ Difficulty: Hard invocation = "RAAAAAAAAWR!" convert_damage = FALSE shapeshift_type = /mob/living/simple_animal/hostile/asteroid/polarbear/lesser + +/obj/item/crusher_trophy/wendigo_horn + name = "wendigo horn" + desc = "A horn from the head of an unstoppable beast." + icon_state = "wendigo_horn" + denied_type = /obj/item/crusher_trophy/wendigo_horn + +/obj/item/crusher_trophy/wendigo_horn/effect_desc() + return "melee hits inflict twice as much damage" + +/obj/item/crusher_trophy/wendigo_horn/add_to(obj/item/kinetic_crusher/crusher, mob/living/user) + . = ..() + if(.) + crusher.AddComponent(/datum/component/two_handed, force_wielded=40) + +/obj/item/crusher_trophy/wendigo_horn/remove_from(obj/item/kinetic_crusher/crusher, mob/living/user) + . = ..() + if(.) + crusher.AddComponent(/datum/component/two_handed, force_wielded=20) + +/obj/item/wendigo_skull + name = "wendigo skull" + desc = "A skull of a massive hulking beast." + icon = 'icons/obj/ice_moon/artifacts.dmi' + icon_state = "wendigo_skull" + w_class = WEIGHT_CLASS_TINY + throwforce = 0 + +#undef WENDIGO_CIRCLE_SHOTCOUNT +#undef WENDIGO_CIRCLE_REPEATCOUNT +#undef WENDIGO_SPIRAL_SHOTCOUNT +#undef WENDIGO_WAVE_SHOTCOUNT +#undef WENDIGO_WAVE_REPEATCOUNT +#undef WENDIGO_SHOTGUN_SHOTCOUNT diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/ice demon.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/ice demon.dm index feaec5d750d..e820ec2e38e 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/ice demon.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/ice demon.dm @@ -15,7 +15,7 @@ projectilesound = 'sound/weapons/pierce.ogg' ranged = TRUE ranged_message = "manifests ice" - ranged_cooldown_time = 3 SECONDS + ranged_cooldown_time = 1.5 SECONDS minimum_distance = 3 retreat_distance = 3 maxHealth = 150 diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/polarbear.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/polarbear.dm index f4f9141f65c..abfb3c732e7 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/polarbear.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/polarbear.dm @@ -10,7 +10,7 @@ friendly_verb_continuous = "growls at" friendly_verb_simple = "growl at" speak_emote = list("growls") - speed = 8 + speed = 3 move_to_delay = 8 maxHealth = 300 health = 300 @@ -28,6 +28,7 @@ butcher_results = list(/obj/item/food/meat/slab/bear = 3, /obj/item/stack/sheet/bone = 2) guaranteed_butcher_results = list(/obj/item/stack/sheet/animalhide/goliath_hide/polar_bear_hide = 1) loot = list() + crusher_loot = /obj/item/crusher_trophy/bear_paw stat_attack = HARD_CRIT robust_searching = TRUE footstep_type = FOOTSTEP_MOB_CLAW @@ -61,3 +62,20 @@ name = "magic polar bear" desc = "It seems sentient somehow." faction = list("neutral") + +/obj/item/crusher_trophy/bear_paw + name = "polar bear paw" + desc = "It's a polar bear paw." + icon_state = "bear_paw" + denied_type = /obj/item/crusher_trophy/bear_paw + +/obj/item/crusher_trophy/bear_paw/effect_desc() + return "mark detonation to attack twice if you are below half your life" + +/obj/item/crusher_trophy/bear_paw/on_mark_detonation(mob/living/target, mob/living/user) + if(user.health / user.maxHealth > 0.5) + return + var/obj/item/I = user.get_active_held_item() + if(!I) + return + I.melee_attack_chain(user, target, null) diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/wolf.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/wolf.dm index a76535a3872..200ccd67781 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/wolf.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/wolf.dm @@ -30,6 +30,7 @@ pull_force = MOVE_FORCE_WEAK butcher_results = list(/obj/item/food/meat/slab = 2, /obj/item/stack/sheet/sinew/wolf = 2, /obj/item/stack/sheet/bone = 2) loot = list() + crusher_loot = /obj/item/crusher_trophy/wolf_ear stat_attack = HARD_CRIT robust_searching = TRUE footstep_type = FOOTSTEP_MOB_CLAW @@ -57,3 +58,15 @@ return adjustHealth(-0.0125 * maxHealth * delta_time) retreat_message_said = FALSE + +/obj/item/crusher_trophy/wolf_ear + name = "wolf ear" + desc = "It's a wolf ear." + icon_state = "wolf_ear" + denied_type = /obj/item/crusher_trophy/wolf_ear + +/obj/item/crusher_trophy/wolf_ear/effect_desc() + return "mark detonation to gain a slight speed boost temporarily" + +/obj/item/crusher_trophy/wolf_ear/on_mark_detonation(mob/living/target, mob/living/user) + user.apply_status_effect(/datum/status_effect/speed_boost, 1 SECONDS) diff --git a/icons/mob/clothing/head.dmi b/icons/mob/clothing/head.dmi index c38827e343a..e3aab8acc2e 100644 Binary files a/icons/mob/clothing/head.dmi and b/icons/mob/clothing/head.dmi differ diff --git a/icons/mob/clothing/suit.dmi b/icons/mob/clothing/suit.dmi index 03532206649..9add8630cd2 100644 Binary files a/icons/mob/clothing/suit.dmi and b/icons/mob/clothing/suit.dmi differ diff --git a/icons/obj/clothing/hats.dmi b/icons/obj/clothing/hats.dmi index 7bf6f227809..c4c1aa2c46b 100644 Binary files a/icons/obj/clothing/hats.dmi and b/icons/obj/clothing/hats.dmi differ diff --git a/icons/obj/clothing/suits.dmi b/icons/obj/clothing/suits.dmi index 5bee8fc5100..b598ecf7a07 100644 Binary files a/icons/obj/clothing/suits.dmi and b/icons/obj/clothing/suits.dmi differ diff --git a/icons/obj/ice_moon/artifacts.dmi b/icons/obj/ice_moon/artifacts.dmi index 93ea79e636f..5a0c790ef44 100644 Binary files a/icons/obj/ice_moon/artifacts.dmi and b/icons/obj/ice_moon/artifacts.dmi differ diff --git a/icons/obj/lavaland/artefacts.dmi b/icons/obj/lavaland/artefacts.dmi index ae273d71c37..25d8ef8461f 100644 Binary files a/icons/obj/lavaland/artefacts.dmi and b/icons/obj/lavaland/artefacts.dmi differ diff --git a/tgstation.dme b/tgstation.dme index 4298243f608..20deb114eb1 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -2681,6 +2681,7 @@ #include "code\modules\mob\living\simple_animal\hostile\jungle\seedling.dm" #include "code\modules\mob\living\simple_animal\hostile\megafauna\blood_drunk_miner.dm" #include "code\modules\mob\living\simple_animal\hostile\megafauna\bubblegum.dm" +#include "code\modules\mob\living\simple_animal\hostile\megafauna\clockwork_knight.dm" #include "code\modules\mob\living\simple_animal\hostile\megafauna\colossus.dm" #include "code\modules\mob\living\simple_animal\hostile\megafauna\demonic_frost_miner.dm" #include "code\modules\mob\living\simple_animal\hostile\megafauna\drake.dm"