diff --git a/_maps/templates/lavaland_surface_gluttony.dmm b/_maps/templates/lavaland_surface_gluttony.dmm new file mode 100644 index 00000000000..1f904abd032 --- /dev/null +++ b/_maps/templates/lavaland_surface_gluttony.dmm @@ -0,0 +1,40 @@ +"a" = (/turf/simulated/mineral/volcanic/lava_land_surface,/area/lavaland/surface/outdoors) +"b" = (/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface,/area/lavaland/surface/outdoors) +"c" = (/turf/simulated/floor/plating/lava/smooth/lava_land_surface,/area/lavaland/surface/outdoors) +"d" = (/turf/indestructible/riveted/uranium{baseturf = /turf/simulated/floor/plating/lava/smooth},/area/ruin/powered) +"e" = (/turf/simulated/floor/plating/lava/smooth,/area/ruin/powered) +"f" = (/obj/item/weapon/reagent_containers/syringe/gluttony,/turf/simulated/floor/plasteel/freezer{baseturf = /turf/simulated/floor/plating/lava/smooth},/area/ruin/powered) +"g" = (/obj/effect/gluttony,/turf/simulated/floor/plasteel/freezer{baseturf = /turf/simulated/floor/plating/lava/smooth},/area/ruin/powered) +"h" = (/obj/item/weapon/veilrender/vealrender,/turf/simulated/floor/plasteel/freezer{baseturf = /turf/simulated/floor/plating/lava/smooth},/area/ruin/powered) +"i" = (/turf/simulated/floor/plasteel/freezer{baseturf = /turf/simulated/floor/plating/lava/smooth},/area/ruin/powered) +"j" = (/obj/item/trash/plate,/turf/simulated/floor/plasteel/freezer{baseturf = /turf/simulated/floor/plating/lava/smooth},/area/ruin/powered) +"k" = (/obj/machinery/door/airlock/uranium,/turf/simulated/floor/plasteel/freezer{baseturf = /turf/simulated/floor/plating/lava/smooth; blocks_air = 1},/area/ruin/powered) +"l" = (/obj/item/trash/candy,/turf/simulated/floor/plasteel/freezer{baseturf = /turf/simulated/floor/plating/lava/smooth},/area/ruin/powered) +"m" = (/obj/item/trash/raisins,/turf/simulated/floor/plasteel/freezer{baseturf = /turf/simulated/floor/plating/lava/smooth},/area/ruin/powered) +"n" = (/obj/item/trash/pistachios,/turf/simulated/floor/plasteel/freezer{baseturf = /turf/simulated/floor/plating/lava/smooth},/area/ruin/powered) +"o" = (/obj/item/trash/popcorn,/turf/simulated/floor/plasteel/freezer{baseturf = /turf/simulated/floor/plating/lava/smooth},/area/ruin/powered) +"p" = (/obj/item/trash/semki,/turf/simulated/floor/plasteel/freezer{baseturf = /turf/simulated/floor/plating/lava/smooth},/area/ruin/powered) +"q" = (/obj/item/trash/syndi_cakes,/turf/simulated/floor/plasteel/freezer{baseturf = /turf/simulated/floor/plating/lava/smooth},/area/ruin/powered) + +(1,1,1) = {" +aabbbaaabaaaaaabbaaa +aaaababbbbbbbbbbbaaa +aaaaaabcccccccbbbaaa +bbaaaabcdddddcbaaaaa +bbbbaabcdefedcbbbbaa +abbbbbbcddgddcbbbbaa +abbbbbbcdgggdcbbbbaa +bbccccccdgggdccccccb +abcddddddgggddddddcb +bbcdhiiiggggggijidcb +bbbkiilimgniiiginkbb +bbcdoiimiiigiiiiidcb +bbcddddddpiiddddddcb +bbccccccdiildccccccb +bbbbbbbcdjiidcbbbbba +bbbaabbcdliidcbbbbba +aaaaabbcdiiqdcbbbbab +aaaaabbcddkddcbaaaaa +aaaaabbcccbcccbaaaaa +aaaaaaabbbbbbbbaaaaa +"} diff --git a/_maps/templates/lavaland_surface_greed.dmm b/_maps/templates/lavaland_surface_greed.dmm new file mode 100644 index 00000000000..e5cb3cbf5ab --- /dev/null +++ b/_maps/templates/lavaland_surface_greed.dmm @@ -0,0 +1,43 @@ +"a" = (/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface,/area/lavaland/surface/outdoors) +"b" = (/turf/simulated/mineral/volcanic/lava_land_surface,/area/lavaland/surface/outdoors) +"c" = (/turf/simulated/floor/plating/lava/smooth/lava_land_surface,/area/lavaland/surface/outdoors) +"d" = (/turf/simulated/wall/cult{baseturf = /turf/simulated/floor/plating/lava/smooth},/area/ruin/powered) +"e" = (/obj/structure/table/wood/poker,/obj/item/weapon/gun/projectile/revolver/russian/soul,/turf/simulated/floor/carpet{baseturf = /turf/simulated/floor/plating/lava/smooth; icon_state = "carpetsymbol"},/area/ruin/powered) +"f" = (/obj/structure/cursed_slot_machine,/turf/simulated/floor/carpet{baseturf = /turf/simulated/floor/plating/lava/smooth; icon_state = "carpetsymbol"},/area/ruin/powered) +"g" = (/obj/structure/table/wood/poker,/obj/item/weapon/coin/mythril,/turf/simulated/floor/carpet{baseturf = /turf/simulated/floor/plating/lava/smooth; icon_state = "carpetsymbol"},/area/ruin/powered) +"h" = (/obj/structure/table/wood/poker,/obj/item/weapon/coin/diamond,/turf/simulated/floor/carpet{baseturf = /turf/simulated/floor/plating/lava/smooth; icon_state = "carpetsymbol"},/area/ruin/powered) +"i" = (/turf/simulated/floor/carpet{baseturf = /turf/simulated/floor/plating/lava/smooth; icon_state = "carpetsymbol"},/area/ruin/powered) +"j" = (/obj/structure/table/wood/poker,/obj/item/weapon/coin/adamantine,/turf/simulated/floor/carpet{baseturf = /turf/simulated/floor/plating/lava/smooth; icon_state = "carpetsymbol"},/area/ruin/powered) +"k" = (/obj/machinery/computer/arcade/battle{emagged = 1},/turf/simulated/floor/engine/cult{baseturf = /turf/simulated/floor/plating/lava/smooth},/area/ruin/powered) +"l" = (/obj/item/weapon/coin/gold,/turf/simulated/floor/engine/cult{baseturf = /turf/simulated/floor/plating/lava/smooth},/area/ruin/powered) +"m" = (/turf/simulated/floor/engine/cult{baseturf = /turf/simulated/floor/plating/lava/smooth},/area/ruin/powered) +"n" = (/obj/structure/table/wood/poker,/obj/item/stack/spacecash/c1000,/turf/simulated/floor/engine/cult{baseturf = /turf/simulated/floor/plating/lava/smooth},/area/ruin/powered) +"o" = (/obj/item/weapon/moneybag,/turf/simulated/floor/engine/cult{baseturf = /turf/simulated/floor/plating/lava/smooth},/area/ruin/powered) +"p" = (/obj/structure/table/wood/poker,/obj/item/weapon/ore/gold,/turf/simulated/floor/engine/cult{baseturf = /turf/simulated/floor/plating/lava/smooth},/area/ruin/powered) +"q" = (/obj/structure/table/wood/poker,/obj/item/stack/spacecash/c20,/obj/item/stack/spacecash/c50,/turf/simulated/floor/engine/cult{baseturf = /turf/simulated/floor/plating/lava/smooth},/area/ruin/powered) +"r" = (/obj/structure/table/wood/poker,/obj/item/stack/spacecash/c500,/obj/item/stack/spacecash/c100,/obj/item/stack/spacecash/c1000,/turf/simulated/floor/engine/cult{baseturf = /turf/simulated/floor/plating/lava/smooth},/area/ruin/powered) +"s" = (/obj/structure/table/wood/poker,/obj/item/stack/spacecash/c200,/turf/simulated/floor/engine/cult{baseturf = /turf/simulated/floor/plating/lava/smooth},/area/ruin/powered) +"t" = (/obj/machinery/door/airlock/gold,/turf/simulated/floor/engine/cult{baseturf = /turf/simulated/floor/plating/lava/smooth; blocks_air = 1},/area/ruin/powered) + +(1,1,1) = {" +aaaaabbaabaaabbbaaaa +abbaaaaaabaaabbbaaaa +abbbaaaabbbaaaabbaaa +aabbbaaaaaaaaaabbbba +aabbbacccccccaaaabbb +aabaaacdddddcaaaabbb +aaaaaccdefgdccaaabba +aaaaccddhijddccaabaa +aaaacddklmlkddcaabaa +bbbacdnomlmopdcaabaa +bbaacdqlmmmmrdcaabba +abaacdsmmollrdcaabba +aaaacdddlmmdddcaabbb +aaaacccdmmldcccaaabb +aaaaaacdlmodcaaaaaab +aaaaaacddmddcaaaabbb +aabbaaccdtdccaaaabbb +abbbaaaaaaaaaaaaabbb +abbbbbaaaaaaaaabbbbb +bbbbaaaaaaaaaaabbbbb +"} diff --git a/_maps/templates/lavaland_surface_pride.dmm b/_maps/templates/lavaland_surface_pride.dmm new file mode 100644 index 00000000000..b6d48176b51 --- /dev/null +++ b/_maps/templates/lavaland_surface_pride.dmm @@ -0,0 +1,32 @@ +"a" = (/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface,/area/lavaland/surface/outdoors) +"b" = (/turf/simulated/mineral/volcanic/lava_land_surface,/area/lavaland/surface/outdoors) +"c" = (/turf/simulated/floor/plating/lava/smooth/lava_land_surface,/area/lavaland/surface/outdoors) +"d" = (/turf/simulated/wall/mineral/diamond{baseturf = /turf/simulated/floor/plating/lava/smooth},/area/ruin/powered) +"e" = (/obj/structure/mirror{pixel_x = -32},/turf/simulated/floor/mineral/silver{baseturf = /turf/simulated/floor/plating/lava/smooth},/area/ruin/powered) +"f" = (/obj/structure/mirror{pixel_x = 32},/turf/simulated/floor/mineral/silver{baseturf = /turf/simulated/floor/plating/lava/smooth},/area/ruin/powered) +"g" = (/turf/simulated/floor/mineral/silver{baseturf = /turf/simulated/floor/plating/lava/smooth},/area/ruin/powered) +"h" = (/obj/structure/mirror/magic/pride,/turf/simulated/wall/mineral/diamond{baseturf = /turf/simulated/floor/plating/lava/smooth},/area/ruin/powered) +"i" = (/obj/machinery/door/airlock/diamond,/turf/simulated/floor/mineral/silver{baseturf = /turf/simulated/floor/plating/lava/smooth; blocks_air = 1},/area/ruin/powered) + +(1,1,1) = {" +aabcccccbb +aaccdddccb +accdddddcc +acdddddddc +acdddddddc +acdedddfdc +acdeghgfdc +acdegggfdc +acdegggfdc +acdegggfdc +acdegggfdc +acdegggfdc +acdegggfdc +acdegggfdc +acdegggfdc +acdegggfdc +acdegggfdc +acdddidddc +acccaacccc +aaaaaaaaaa +"} diff --git a/code/datums/diseases/transformation.dm b/code/datums/diseases/transformation.dm index 82a1712ac58..b814687318a 100644 --- a/code/datums/diseases/transformation.dm +++ b/code/datums/diseases/transformation.dm @@ -228,3 +228,19 @@ if(4) if (prob(20)) affected_mob.say(pick("Bark!", "AUUUUUU")) + +/datum/disease/transformation/morph + name = "Gluttony's Blessing" + cure_text = "nothing" + cures = list("adminordrazine") + agent = "Gluttony's Blessing" + desc = "A 'gift' from somewhere terrible." + stage_prob = 20 + severity = BIOHAZARD + visibility_flags = 0 + stage1 = list("Your stomach rumbles.") + stage2 = list("Your skin feels saggy.") + stage3 = list("Your appendages are melting away.", "Your limbs begin to lose their shape.") + stage4 = list("You're ravenous.") + stage5 = list("You have become a morph.") + new_form = /mob/living/simple_animal/hostile/morph \ No newline at end of file diff --git a/code/game/objects/structures/mirror.dm b/code/game/objects/structures/mirror.dm index 343cfb5d940..f95dec2f6c5 100644 --- a/code/game/objects/structures/mirror.dm +++ b/code/game/objects/structures/mirror.dm @@ -227,7 +227,6 @@ H.update_body() H.update_mutations_overlay() //(hulk male/female) - if("hair") var/hairchoice = alert(H, "Hair style or hair color?", "Change Hair", "Style", "Color") @@ -251,3 +250,8 @@ H.eye_color = sanitize_hexcolor(new_eye_color) H.dna.update_ui_block(DNA_EYE_COLOR_BLOCK) H.update_body() + if(choice) + curse(user) + +/obj/structure/mirror/magic/proc/curse(mob/living/user) + return \ No newline at end of file diff --git a/code/modules/awaymissions/mission_code/Academy.dm b/code/modules/awaymissions/mission_code/Academy.dm index ac0ce1e15f6..b098e08e510 100644 --- a/code/modules/awaymissions/mission_code/Academy.dm +++ b/code/modules/awaymissions/mission_code/Academy.dm @@ -167,6 +167,9 @@ var/used = 0 var/rigged = -1 +/obj/item/weapon/dice/d20/fate/one_use + reusable = 0 + /obj/item/weapon/dice/d20/fate/diceroll(mob/user) ..() if(!used) diff --git a/code/modules/reagents/chemistry/reagents/other_reagents.dm b/code/modules/reagents/chemistry/reagents/other_reagents.dm index 421fce223b5..1c85ab8ec76 100644 --- a/code/modules/reagents/chemistry/reagents/other_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/other_reagents.dm @@ -412,6 +412,15 @@ if(method != TOUCH) M.ForceContractDisease(new /datum/disease/transformation/slime(0)) +/datum/reagent/gluttonytoxin + name = "Gluttony's Blessing" + id = "gluttonytoxin" + description = "An advanced corruptive toxin produced by something terrible." + color = "#5EFF3B" //RGB: 94, 255, 59 + +/datum/reagent/gluttonytoxin/reaction_mob(mob/M, method=TOUCH, reac_volume) + M.ForceContractDisease(new /datum/disease/transformation/morph(0)) + /datum/reagent/serotrotium name = "Serotrotium" id = "serotrotium" diff --git a/code/modules/reagents/reagent_containers/syringes.dm b/code/modules/reagents/reagent_containers/syringes.dm index d534b3ef9e2..1c0ed97a91f 100644 --- a/code/modules/reagents/reagent_containers/syringes.dm +++ b/code/modules/reagents/reagent_containers/syringes.dm @@ -246,4 +246,11 @@ desc = "A syringe used to completely change the users identity." amount_per_transfer_from_this = 1 volume = 1 - list_reagents = list("mulligan" = 1) \ No newline at end of file + list_reagents = list("mulligan" = 1) + +/obj/item/weapon/reagent_containers/syringe/gluttony + name = "Gluttony's Blesssing" + desc = "A syringe recovered from a dread place. It probably isn't wise to use." + amount_per_transfer_from_this = 1 + volume = 1 + list_reagents = list("gluttonytoxin" = 1) \ No newline at end of file diff --git a/code/modules/ruins/lavaland_ruin_code.dm b/code/modules/ruins/lavaland_ruin_code.dm index a3b40d285bf..eb47389333a 100644 --- a/code/modules/ruins/lavaland_ruin_code.dm +++ b/code/modules/ruins/lavaland_ruin_code.dm @@ -25,3 +25,74 @@ death = FALSE mob_species = /datum/species/pod flavour_text = {"You are a strange, artificial creature. In the face of impending apocalyptic events, your creators tasked you with maintaining an emergency seed vault. You are to tend to the plants and await their return to aid in rebuilding civilization. You've been waiting quite a while though..."} + +//Greed + +/obj/structure/cursed_slot_machine + name = "greed's slot machine" + desc = "High stakes, high rewards." + icon = 'icons/obj/economy.dmi' + icon_state = "slots1" + anchored = 1 + density = 1 + var/win_prob = 5 + +/obj/structure/cursed_slot_machine/attack_hand(mob/living/carbon/human/user) + if(!istype(user)) + return + if(in_use) + return + if(!ishuman(user)) + return + in_use = TRUE + user << "You feel your very life draining away as you pull the lever...it'll be worth it though, right?" + user.adjustCloneLoss(20) + if(user.stat) + user.gib() + icon_state = "slots2" + sleep(5) + icon_state = "slots1" + in_use = FALSE + if(prob(win_prob)) + new /obj/item/weapon/dice/d20/fate/one_use(get_turf(src)) + if(user) + user << "You hear laughter echoing around you as the machine fades away. In it's place...more gambling." + qdel(src) + else + if(user) + user << "Looks like you didn't win anything this time...next time though, right?" +//Gluttony + +/obj/effect/gluttony + name = "gluttony's wall" + desc = "Only those who truely indulge may pass." + anchored = 1 + density = 1 + icon_state = "blob" + icon = 'icons/mob/blob.dmi' + +/obj/effect/gluttony/CanPass(atom/movable/mover, turf/target, height=0)//So bullets will fly over and stuff. + if(height==0) + return 1 + if(istype(mover, /mob/living/carbon/human)) + var/mob/living/carbon/human/H = mover + if(H.nutrition >= NUTRITION_LEVEL_FAT) + return 1 + else + H << "You're not gluttonous enough to pass this barrier!" + else + return 0 + +//Pride + +/obj/structure/mirror/magic + name = "pride's mirror" + desc = "Pride cometh before the..." + icon_state = "magic_mirror" + +/obj/structure/mirror/magic/pride/curse(mob/user) + user.visible_message("The ground splits beneath [user] as their hand leaves the mirror!") + var/turf/T = get_turf(user) + T.ChangeTurf(/turf/simulated/chasm/straight_down) + var/turf/simulated/chasm/straight_down/C = T + C.drop(user) \ No newline at end of file