From d17d34edc998f71183dad3c0aea4eb73249f955b Mon Sep 17 00:00:00 2001 From: KorPhaeron Date: Tue, 23 Feb 2016 01:07:06 -0600 Subject: [PATCH] Three lavaland ruins --- _maps/templates/lavaland_surface_gluttony.dmm | 40 +++++++++++ _maps/templates/lavaland_surface_greed.dmm | 43 +++++++++++ _maps/templates/lavaland_surface_pride.dmm | 32 +++++++++ code/datums/diseases/transformation.dm | 16 +++++ code/game/objects/structures/mirror.dm | 6 +- .../awaymissions/mission_code/Academy.dm | 3 + .../chemistry/reagents/other_reagents.dm | 9 +++ .../reagents/reagent_containers/syringes.dm | 9 ++- code/modules/ruins/lavaland_ruin_code.dm | 71 +++++++++++++++++++ 9 files changed, 227 insertions(+), 2 deletions(-) create mode 100644 _maps/templates/lavaland_surface_gluttony.dmm create mode 100644 _maps/templates/lavaland_surface_greed.dmm create mode 100644 _maps/templates/lavaland_surface_pride.dmm 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