diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_lunaraltar.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_lunaraltar.dmm new file mode 100644 index 00000000..1eed33eb --- /dev/null +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_lunaraltar.dmm @@ -0,0 +1,315 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/template_noop, +/area/template_noop) +"c" = ( +/turf/open/lava/smooth/lava_land_surface, +/area/ruin/unpowered) +"d" = ( +/obj/effect/decal/remains/human, +/mob/living/simple_animal/hostile/carp/eyeball, +/turf/open/floor/plasteel/cult/airless, +/area/ruin/unpowered) +"e" = ( +/obj/effect/decal/remains/human, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered) +"f" = ( +/obj/effect/decal/cleanable/blood/gibs/human/limb, +/turf/open/floor/plasteel/cult/airless, +/area/ruin/unpowered) +"g" = ( +/obj/effect/decal/cleanable/blood, +/turf/open/floor/plasteel/cult/airless, +/area/ruin/unpowered) +"l" = ( +/obj/effect/decal/remains/human, +/turf/open/floor/plasteel/cult/airless, +/area/ruin/unpowered) +"o" = ( +/obj/structure/lunaraltar, +/turf/open/floor/plasteel/cult/airless, +/area/ruin/unpowered) +"q" = ( +/turf/open/floor/plasteel/cult/airless, +/area/ruin/unpowered) +"s" = ( +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered) +"x" = ( +/obj/effect/decal/cleanable/blood, +/obj/effect/decal/cleanable/blood, +/turf/open/floor/plasteel/cult/airless, +/area/ruin/unpowered) +"y" = ( +/obj/effect/decal/cleanable/blood/gibs/human, +/turf/open/floor/plasteel/cult/airless, +/area/ruin/unpowered) +"A" = ( +/mob/living/simple_animal/hostile/carp/eyeball, +/turf/open/floor/plasteel/cult/airless, +/area/ruin/unpowered) +"R" = ( +/obj/effect/decal/cleanable/ash/large, +/turf/open/floor/plasteel/cult/airless, +/area/ruin/unpowered) +"X" = ( +/obj/effect/decal/cleanable/blood/gibs/human/lizard/limb, +/turf/open/floor/plasteel/cult/airless, +/area/ruin/unpowered) + +(1,1,1) = {" +a +a +a +a +a +a +c +c +c +a +a +a +a +a +a +"} +(2,1,1) = {" +a +s +e +c +c +c +c +c +c +c +c +c +s +s +a +"} +(3,1,1) = {" +a +e +s +s +c +c +c +c +c +c +c +e +s +s +a +"} +(4,1,1) = {" +a +s +s +c +c +c +c +c +c +c +c +c +e +s +a +"} +(5,1,1) = {" +a +c +c +c +c +c +c +c +c +c +c +c +c +s +a +"} +(6,1,1) = {" +a +c +c +c +c +c +l +f +d +c +c +c +c +c +a +"} +(7,1,1) = {" +c +c +c +c +c +l +q +g +g +y +c +c +c +c +c +"} +(8,1,1) = {" +c +c +c +c +c +A +q +o +x +g +c +c +c +c +c +"} +(9,1,1) = {" +c +c +c +c +c +l +q +R +X +l +c +c +c +c +c +"} +(10,1,1) = {" +a +c +c +c +c +c +q +q +A +c +c +c +c +c +a +"} +(11,1,1) = {" +a +s +c +c +c +c +c +c +c +c +c +c +s +s +a +"} +(12,1,1) = {" +a +s +s +c +c +c +c +c +c +c +c +c +e +s +a +"} +(13,1,1) = {" +a +e +s +c +c +c +c +c +c +c +c +e +s +s +a +"} +(14,1,1) = {" +a +s +e +c +c +c +c +c +c +c +c +s +s +s +a +"} +(15,1,1) = {" +a +a +a +a +a +a +c +c +c +a +a +a +a +a +a +"} diff --git a/code/datums/ruins/lavaland.dm b/code/datums/ruins/lavaland.dm index 0397f813..f68e189a 100644 --- a/code/datums/ruins/lavaland.dm +++ b/code/datums/ruins/lavaland.dm @@ -233,3 +233,11 @@ suffix = "lavaland_surface_oasis.dmm" allow_duplicates = FALSE cost = 0 + +/datum/map_template/ruin/lavaland/lunaraltar + name = "Lunar Altar" + id = "lunaraltar" + description = "Millenia ago, the humanoids of this strange land used to offer sacrifices here..." + suffix = "lavaland_surface_lunaraltar.dmm" + allow_duplicates = FALSE + cost = 10 diff --git a/hyperstation/code/obj/lunaritems.dm b/hyperstation/code/obj/lunaritems.dm new file mode 100644 index 00000000..1ec910e1 --- /dev/null +++ b/hyperstation/code/obj/lunaritems.dm @@ -0,0 +1,79 @@ +/obj/structure/lunaraltar + name = "lunar altar" + desc = "Judging by the symbols, millenia ago, it seems that the creatures of this world used something precious to the icy moon that orbits this hellish planet. You... Wouldn't do that, would you?" + icon = 'icons/obj/hand_of_god_structures.dmi' //Placeholder. + icon_state = "convertaltar-blue" //Placeholder. + anchored = TRUE + density = FALSE + var/used = FALSE + +/obj/structure/lunaraltar/attack_hand(mob/living/user) + . = ..() + if(.) + return + if(used) + to_chat(user, "The altar seems shattered.") + return + if(istype(user, /mob/living/carbon/human/)) + var/part = pick("1","2","3","4") + var/mob/living/carbon/human/H = user + var/obj/item/bodypart/bodypart + switch(part) + if("1") + bodypart = H.get_bodypart(BODY_ZONE_L_LEG) + if("2") + bodypart = H.get_bodypart(BODY_ZONE_R_LEG) + if("3") + bodypart = H.get_bodypart(BODY_ZONE_L_ARM) + if("4") + bodypart = H.get_bodypart(BODY_ZONE_R_ARM) + if(!bodypart) + to_chat(user, "The altar does nothing.") + return + to_chat(user,"You begin placing your hand on the altar.") + playsound(src, 'sound/weapons/slice.ogg', 50, 1, 5) + if(do_after(user, 100, target=src)) + if(used) + return + visible_message("[user]'s [bodypart] is momentarily enveloped by shadows before they are gruesomely twisted and dismembered!", \ + "Your [bodypart] is momentarily enveloped by shadows before it's gruesomely twisted and dismembered!") + bodypart.dismember() + bodypart.Destroy() + H.bleed_rate += 5 + H.emote("scream") + new /obj/item/helfiretincture(src.loc) //Eventually a pick, with different items. + visible_message("As you blink, cracks appear on the altar and a flash of lunar light reaches its surface. A gift?") + message_admins("[ADMIN_LOOKUPFLW(user)] has sacrificed their [bodypart] on the lunar altar at [AREACOORD(src)].") + icon_state = "sacrificealtar-blue" + update_icon() + used = TRUE + +/obj/item/helfiretincture + name = "helfire tincture" //"Hel" not Hell. Intended. + icon = 'hyperstation/icons/obj/lunar.dmi' + icon_state = "helfire_tincture" + desc = "Burn everyone nearby... including you. You wouldn't do that on the shuttle now, would you?" + var/cooldowntime = 45 SECONDS + var/used = FALSE + +/obj/item/helfiretincture/attack_self(mob/user) + if(!used) + used = TRUE + visible_message("[user] draws from the power of a Hellfire Tincture!", \ + "You draw the power of the Hellfire Tincture!") + for(var/mob/living/H in spiral_range(8, user)) + H.adjustFireLoss(10) + H.adjust_fire_stacks(5) + H.IgniteMob() + playsound(src.loc, 'hyperstation/sound/misc/helfire_use.ogg', 100, 1, extrarange = 8) + icon_state = "helfire_tincture_used" + update_icon() + addtimer(CALLBACK(src, .proc/restore, user), cooldowntime) + else + to_chat(user, "It's too soon to use this again!") + +/obj/item/helfiretincture/proc/restore(mob/user) + used = FALSE + icon_state = "helfire_tincture" + update_icon() + to_chat(user, "The tincture vibrates with power once again.") diff --git a/hyperstation/icons/obj/lunar.dmi b/hyperstation/icons/obj/lunar.dmi new file mode 100644 index 00000000..8254574e Binary files /dev/null and b/hyperstation/icons/obj/lunar.dmi differ diff --git a/hyperstation/sound/misc/helfire_use.ogg b/hyperstation/sound/misc/helfire_use.ogg new file mode 100644 index 00000000..d1489bcf Binary files /dev/null and b/hyperstation/sound/misc/helfire_use.ogg differ diff --git a/tgstation.dme b/tgstation.dme index 95cda5aa..4e0863b4 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -3007,6 +3007,7 @@ #include "hyperstation\code\obj\fluff.dm" #include "hyperstation\code\obj\kinkyclothes.dm" #include "hyperstation\code\obj\leash.dm" +#include "hyperstation\code\obj\lunaritems.dm" #include "hyperstation\code\obj\milking machine.dm" #include "hyperstation\code\obj\plushes.dm" #include "hyperstation\code\obj\pregnancytester.dm"