From cea21e4c577d22cafbc18f2e01eca8e2f96c977b Mon Sep 17 00:00:00 2001 From: Mike Long Date: Tue, 31 May 2016 12:57:14 -0400 Subject: [PATCH] Updates some lavaland ruins. Adds lavaland wrath ruin. Adds lavaland wrath ruin's reward. Lavaland ruins can now cause sintouching. --- .../LavaRuins/lavaland_surface_sloth.dmm | 2 +- .../LavaRuins/lavaland_surface_wrath.dmm | 28 +++++++ code/__DEFINES/sins.dm | 7 ++ code/datums/ruins/lavaland.dm | 12 +++ code/modules/mob/living/carbon/human/human.dm | 18 ++--- .../chemistry/reagents/other_reagents.dm | 3 + code/modules/ruins/lavaland_ruin_code.dm | 73 ++++++++++++++++++- tgstation.dme | 2 + 8 files changed, 131 insertions(+), 14 deletions(-) create mode 100644 _maps/RandomRuins/LavaRuins/lavaland_surface_wrath.dmm create mode 100644 code/__DEFINES/sins.dm diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_sloth.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_sloth.dmm index 1c78a88c8cf..efba0850387 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_sloth.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_sloth.dmm @@ -1,6 +1,6 @@ "a" = (/turf/closed/indestructible/riveted{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/unpowered) "b" = (/turf/open/floor/plating/lava/smooth/lava_land_surface,/area/ruin/unpowered) -"c" = (/obj/item/weapon/paper{desc = "have not gotten around to finishing my cursed item yet sorry - sloth"; name = "note from sloth"},/turf/open/floor/sepia{baseturf = /turf/open/floor/plating/lava/smooth; blocks_air = 1; slowdown = 10},/area/ruin/unpowered) +"c" = (/obj/item/weapon/paper/sloth,/turf/open/floor/sepia{baseturf = /turf/open/floor/plating/lava/smooth; blocks_air = 1; slowdown = 10},/area/ruin/unpowered) "d" = (/turf/open/floor/sepia{baseturf = /turf/open/floor/plating/lava/smooth; blocks_air = 1; slowdown = 10},/area/ruin/unpowered) "e" = (/obj/machinery/door/airlock/wood,/turf/open/floor/sepia{baseturf = /turf/open/floor/plating/lava/smooth; blocks_air = 1; slowdown = 10},/area/ruin/unpowered) "f" = (/obj/structure/table/wood,/obj/item/weapon/reagent_containers/food/snacks/grown/citrus/orange,/turf/open/floor/sepia{baseturf = /turf/open/floor/plating/lava/smooth; blocks_air = 1; slowdown = 10},/area/ruin/unpowered) diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_wrath.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_wrath.dmm new file mode 100644 index 00000000000..f66542067f4 --- /dev/null +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_wrath.dmm @@ -0,0 +1,28 @@ +"a" = (/turf/closed/mineral/volcanic/lava_land_surface,/area/space) +"b" = (/turf/closed/wall/mineral/uranium,/area/ruin/powered) +"c" = (/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor4"},/area/ruin/powered) +"d" = (/obj/effect/mob_spawn/human/corpse/wizard,/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor4"},/area/ruin/powered) +"e" = (/obj/structure/wrathaltar,/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor4"},/area/ruin/powered) +"f" = (/obj/effect/decal/cleanable/blood/tracks,/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor4"},/area/ruin/powered) +"g" = (/obj/effect/mob_spawn/human/corpse/damaged,/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor4"},/area/ruin/powered) +"h" = (/obj/machinery/door/airlock/uranium,/turf/open/floor/plasteel/freezer{baseturf = /turf/open/floor/plating/lava/smooth;blocks_air = 1},/area/ruin/powered) + +(1,1,1) = {" +aaaaabbbbaaaaaa +bbbbbbccbbbabbb +bccdccceccbbccb +bccfcgccccccccb +bbbfccccccccccb +aabcccccccccccb +aabbbcccccbbbbb +aaaabcccccbaaaa +aaaabbcccbbaaaa +aaaaabcccbaaaaa +aaabbbcccbbaaaa +aaabccccccbaaaa +aaabccccccbaaaa +aaabbhbbccbaaaa +aaaaaaabccbaaaa +aaaaaaabccbaaaa +aaaaaaabbbbaaaa +"} diff --git a/code/__DEFINES/sins.dm b/code/__DEFINES/sins.dm new file mode 100644 index 00000000000..89ef7393925 --- /dev/null +++ b/code/__DEFINES/sins.dm @@ -0,0 +1,7 @@ +#define ACEDIA 1 +#define GLUTTONY 2 +#define GREED 3 +#define SLOTH 4 +#define WRATH 5 +#define ENVY 6 +#define PRIDE 7 \ No newline at end of file diff --git a/code/datums/ruins/lavaland.dm b/code/datums/ruins/lavaland.dm index 9a404f07680..28b960c27c6 100644 --- a/code/datums/ruins/lavaland.dm +++ b/code/datums/ruins/lavaland.dm @@ -126,6 +126,18 @@ cost = 0 allow_duplicates = FALSE +/datum/map_template/ruin/lavaland/sin/acedia + name = "Ruin of Acedia" + id = "acedia" + description = "This is wrong, but why is that bad?" + suffix = "lavaland_surface_acedia.dmm" + +/datum/map_template/ruin/lavaland/sin/wrath + name = "Ruin of Wrath" + id = "wrath" + description = "The all consuming flames of anger" + suffix = "lavaland_surface_wrath.dmm" + /datum/map_template/ruin/lavaland/ato name = "Automated Trade Outpost" id = "ato" diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index 0614caaf9f0..11534447ae7 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -1040,28 +1040,28 @@ dna.remove_mutation(HM.name) ..() -/mob/living/carbon/human/proc/influenceSin() +/mob/living/carbon/human/proc/influenceSin(sintype = rand(1,7)) var/datum/objective/sintouched/O - switch(rand(1,7))//traditional seven deadly sins... except lust. - if(1) // acedia + switch(sintype)//traditional seven deadly sins... except lust. + if(ACEDIA) // acedia log_game("[src] was influenced by the sin of Acedia.") O = new /datum/objective/sintouched/acedia - if(2) // Gluttony + if(GLUTTONY) // Gluttony log_game("[src] was influenced by the sin of gluttony.") O = new /datum/objective/sintouched/gluttony - if(3) // Greed + if(GREED) // Greed log_game("[src] was influenced by the sin of greed.") O = new /datum/objective/sintouched/greed - if(4) // sloth + if(SLOTH) // sloth log_game("[src] was influenced by the sin of sloth.") O = new /datum/objective/sintouched/sloth - if(5) // Wrath + if(WRATH) // Wrath log_game("[src] was influenced by the sin of wrath.") O = new /datum/objective/sintouched/wrath - if(6) // Envy + if(ENVY) // Envy log_game("[src] was influenced by the sin of envy.") O = new /datum/objective/sintouched/envy - if(7) // Pride + if(PRIDE) // Pride log_game("[src] was influenced by the sin of pride.") O = new /datum/objective/sintouched/pride ticker.mode.sintouched += src.mind diff --git a/code/modules/reagents/chemistry/reagents/other_reagents.dm b/code/modules/reagents/chemistry/reagents/other_reagents.dm index 7aabfb2c209..c9208cb8029 100644 --- a/code/modules/reagents/chemistry/reagents/other_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/other_reagents.dm @@ -443,6 +443,9 @@ /datum/reagent/gluttonytoxin/reaction_mob(mob/M, method=TOUCH, reac_volume) M.ForceContractDisease(new /datum/disease/transformation/morph(0)) + if(istype(M, /mob/living/carbon/human)) + var/mob/living/carbon/human/H = M + H.influenceSin(GLUTTONY) /datum/reagent/serotrotium name = "Serotrotium" diff --git a/code/modules/ruins/lavaland_ruin_code.dm b/code/modules/ruins/lavaland_ruin_code.dm index 99f362e3a34..710d8841a0a 100644 --- a/code/modules/ruins/lavaland_ruin_code.dm +++ b/code/modules/ruins/lavaland_ruin_code.dm @@ -83,7 +83,7 @@ flavour_text = {"You are a strange, artificial creature. Your creators were a highly advanced and benevolent race, and launched many seed vaults into the stars, hoping to aid fledgling civilizations. You are to tend to the vault and await the arrival of sentient species. You've been waiting quite a while though..."} /obj/effect/mob_spawn/human/seed_vault/special(mob/living/new_spawn) - var/plant_name = pick("Tomato", "Potato", "Brocolli", "Carrot", "Deathcap", "Ambrosia", "Pumpkin", "Ivy", "Kudzu", "Bannana", "Moss", "Flower", "Bloom", "Spore", "Root", "Bark", "Glowshroom", "Petal", "Leaf", "Venus", "Sprout","Cocao", "Strawberry", "Citrus", "Oak", "Cactus", "Pepper", "Juniper") + var/plant_name = pick("Tomato", "Potato", "Brocolli", "Carrot", "Deathcap", "Ambrosia", "Pumpkin", "Ivy", "Kudzu", "Bannana", "Moss", "Flower", "Bloom", "Spore", "Root", "Bark", "Glowshroom", "Petal", "Leaf", "Venus", "Sprout", "Cocao", "Strawberry", "Citrus", "Oak", "Cactus", "Pepper", "Juniper") new_spawn.real_name = plant_name //Greed @@ -114,6 +114,9 @@ if(prob(win_prob)) new /obj/item/weapon/dice/d20/fate/one_use(get_turf(src)) if(user) + if(istype(user, /mob/living/carbon/human)) + var/mob/living/carbon/human/H = user + H.influenceSin(GREED) user << "You hear laughter echoing around you as the machine fades away. In it's place...more gambling." qdel(src) else @@ -138,8 +141,7 @@ return 1 else H << "You're not gluttonous enough to pass this barrier!" - else - return 0 + return 0 //Pride @@ -154,8 +156,23 @@ T.ChangeTurf(/turf/open/chasm/straight_down) var/turf/open/chasm/straight_down/C = T C.drop(user) + if(istype(user, /mob/living/carbon/human)) + var/mob/living/carbon/human/H = user + H.influenceSin(PRIDE) -//Sloth - I'll finish this item later +//Sloth + +/obj/item/weapon/paper/sloth + name = "note from sloth" + var/used = 0 + desc = "have not gotten around to finishing my cursed item yet sorry - sloth" + +/obj/item/weapon/paper/sloth/examine(mob/user) + ..() + if(!used && istype(user, /mob/living/carbon/human)) + used = 1 + var/mob/living/carbon/human/H = user + H.influenceSin(PRIDE) //Envy @@ -178,6 +195,7 @@ return if(istype(AM, /mob/living/carbon/human)) var/mob/living/carbon/human/H = AM + H.influenceSin(ENVY) //Yes, have it sintouch the TARGET, if(user.real_name != H.dna.real_name) user.real_name = H.dna.real_name H.dna.transfer_identity(user, transfer_SE=1) @@ -185,6 +203,53 @@ user.domutcheck() user << "You assume the face of [H]. Are you satisfied?" +//Wrath + +/obj/item/weapon/melee/wrathhand + name = "The hand of hatred." + force = 0 + hitsound = 'sound/magic/WandODeath.ogg' + icon_state = "disintegrate" + item_state = "disintegrate" + flags = NODROP + unacidable = 1 + +/obj/item/weapon/melee/wrathhand/afterattack(atom/movable/AM, mob/living/carbon/human/user, proximity) + if(AM == user) + user << "Surely there is someone you hate more than yourself." + else + if(istype(AM,/mob/living)) + var/mob/living/L = AM + user << "Your hatred is fulfilled." + L.gib() + user.gib() + qdel(src) + +/obj/structure/wrathaltar + icon_state = "talismanaltar" + density = 1 + anchored = 1 + icon = 'icons/obj/cult.dmi' + name = "Altar of wrath" + desc = "Lay your hand upon the altar and recieve the power to smite your enemies." + var/used = 0 + +/obj/structure/wrathaltar/attack_hand(mob/living/user) + if (used) + user << "\The [src]'s power has already been invoked." + else + if(ishuman(user)) + var/mob/living/carbon/human/H = user + H.influenceSin(WRATH) + if(H.drop_item()) + used = 1 + H.put_in_hands(new /obj/item/weapon/melee/wrathhand()) + +/obj/structure/cult/examine(mob/user) + ..() + user << "\The [src] is [anchored ? "":"not "]secured to the floor." + + ///Ash Walkers /mob/living/simple_animal/hostile/spawner/ash_walker diff --git a/tgstation.dme b/tgstation.dme index 9f147302728..ea64ed95459 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -15,6 +15,7 @@ // BEGIN_INCLUDE #include "_maps\__MAP_DEFINES.dm" #include "_maps\tgstation2.dm" +#include "_maps\RandomRuins\LavaRuins\lavaland_surface_wrath.dmm" #include "code\_compile_options.dm" #include "code\hub.dm" #include "code\world.dm" @@ -46,6 +47,7 @@ #include "code\__DEFINES\say.dm" #include "code\__DEFINES\shuttles.dm" #include "code\__DEFINES\sight.dm" +#include "code\__DEFINES\sins.dm" #include "code\__DEFINES\stat.dm" #include "code\__DEFINES\tablecrafting.dm" #include "code\__DEFINES\tgui.dm"