From cea21e4c577d22cafbc18f2e01eca8e2f96c977b Mon Sep 17 00:00:00 2001 From: Mike Long Date: Tue, 31 May 2016 12:57:14 -0400 Subject: [PATCH 1/3] 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" From 48540c0558ed9afe1a1b793dacb1d1d7c57d98a8 Mon Sep 17 00:00:00 2001 From: Mike Long Date: Tue, 31 May 2016 13:01:22 -0400 Subject: [PATCH 2/3] Removes erroneous code. --- code/modules/ruins/lavaland_ruin_code.dm | 5 ----- 1 file changed, 5 deletions(-) diff --git a/code/modules/ruins/lavaland_ruin_code.dm b/code/modules/ruins/lavaland_ruin_code.dm index 710d8841a0a..f59ab2c25cb 100644 --- a/code/modules/ruins/lavaland_ruin_code.dm +++ b/code/modules/ruins/lavaland_ruin_code.dm @@ -245,11 +245,6 @@ 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 From f18fdbf73e91c4eab54abe04c010b5b74f47ed04 Mon Sep 17 00:00:00 2001 From: Mike Long Date: Tue, 31 May 2016 15:43:51 -0400 Subject: [PATCH 3/3] Fixes wrathhand giving a ranged gib. Fixes spelling/punctuation on wrathhand. Removes erroneous include. --- code/modules/ruins/lavaland_ruin_code.dm | 6 ++++-- tgstation.dme | 1 - 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/code/modules/ruins/lavaland_ruin_code.dm b/code/modules/ruins/lavaland_ruin_code.dm index f59ab2c25cb..0cc90ca194e 100644 --- a/code/modules/ruins/lavaland_ruin_code.dm +++ b/code/modules/ruins/lavaland_ruin_code.dm @@ -206,7 +206,7 @@ //Wrath /obj/item/weapon/melee/wrathhand - name = "The hand of hatred." + name = "The hand of hatred" force = 0 hitsound = 'sound/magic/WandODeath.ogg' icon_state = "disintegrate" @@ -215,6 +215,8 @@ unacidable = 1 /obj/item/weapon/melee/wrathhand/afterattack(atom/movable/AM, mob/living/carbon/human/user, proximity) + if(!proximity) + return if(AM == user) user << "Surely there is someone you hate more than yourself." else @@ -231,7 +233,7 @@ 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." + desc = "Lay your hand upon the altar and receive the power to smite your enemies." var/used = 0 /obj/structure/wrathaltar/attack_hand(mob/living/user) diff --git a/tgstation.dme b/tgstation.dme index ea64ed95459..9020e3ed817 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -15,7 +15,6 @@ // 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"