From 7fb084d690e540f8728f0ca4b1330f0a4f5f6f3a Mon Sep 17 00:00:00 2001 From: Aurorablade Date: Thu, 5 Jan 2017 22:07:21 -0500 Subject: [PATCH] tries to address comments... and will get them wrong. --- code/datums/spells/construct_spells.dm | 2 +- code/game/gamemodes/cult/cult_items.dm | 6 +- code/game/gamemodes/cult/cult_structures.dm | 50 ++++---- code/game/gamemodes/cult/ritual.dm | 115 +++++++++--------- code/game/gamemodes/cult/runes.dm | 2 +- code/game/gamemodes/cult/talisman.dm | 4 +- .../items/stacks/sheets/sheet_types.dm | 8 +- 7 files changed, 93 insertions(+), 94 deletions(-) diff --git a/code/datums/spells/construct_spells.dm b/code/datums/spells/construct_spells.dm index 0f3492ceb50..b8ba7cbc94e 100644 --- a/code/datums/spells/construct_spells.dm +++ b/code/datums/spells/construct_spells.dm @@ -74,7 +74,7 @@ invocation_type = "none" range = 0 - summon_type = list(/obj/structure/cult/cultpylon) + summon_type = list(/obj/structure/cult/itemspawner/pylon) /obj/effect/proc_holder/spell/aoe_turf/conjure/lesserforcewall diff --git a/code/game/gamemodes/cult/cult_items.dm b/code/game/gamemodes/cult/cult_items.dm index b57253a84e7..a06f7b27740 100644 --- a/code/game/gamemodes/cult/cult_items.dm +++ b/code/game/gamemodes/cult/cult_items.dm @@ -45,9 +45,9 @@ /obj/item/weapon/melee/cultblade/dagger/afterattack(mob/living/target as mob, mob/living/carbon/human/user as mob) ..() var/mob/living/carbon/human/bleeder = target - if(!(cooldown > world.time) && (!bleeder.stat || !(bleeder.species.flags & NO_BLOOD))) - user.visible_message("The runes on the blade absorb the blood of [target]!") - bleeder.drip(500) + if(!(cooldown > world.time) && ((bleeder.stat != DEAD) || !(bleeder.species.flags & NO_BLOOD))) + user.visible_message("The runes on the blade absorb the blood of [target]!") + bleeder.drip(5000) cooldown = world.time + 2400 /obj/item/weapon/restraints/legcuffs/bola/cult diff --git a/code/game/gamemodes/cult/cult_structures.dm b/code/game/gamemodes/cult/cult_structures.dm index 5440d037ee6..73ffb2c7e5d 100644 --- a/code/game/gamemodes/cult/cult_structures.dm +++ b/code/game/gamemodes/cult/cult_structures.dm @@ -3,17 +3,6 @@ density = 1 anchored = 1 icon = 'icons/obj/cult.dmi' - var/cooldowntime = 0 - var/health = 100 - var/death_message = "The structure falls apart." //The message shown when the structure is destroyed - var/death_sound = 'sound/items/bikehorn.ogg' - - -/obj/structure/cult/proc/destroy_structure() - visible_message(death_message) - playsound(src, death_sound, 50, 1) - qdel(src) - //Noncult As we may have this on maps /obj/structure/cult/talisman @@ -21,7 +10,6 @@ desc = "A bloodstained altar dedicated to Nar-Sie" icon_state = "talismanaltar" - /obj/structure/cult/forge name = "Daemon forge" desc = "A forge used in crafting the unholy weapons used by the armies of Nar-Sie" @@ -34,14 +22,24 @@ light_range = 5 light_color = "#3e0000" - /obj/structure/cult/tome name = "Desk" desc = "A desk covered in arcane manuscripts and tomes in unknown languages. Looking at the text makes your skin crawl" icon_state = "tomealtar" //Cult versions cuase fuck map conflicts -/obj/structure/cult/examine(mob/user) +/obj/structure/cult/itemspawner/ + var/cooldowntime = 0 + var/health = 100 + var/death_message = "The structure falls apart." //The message shown when the structure is destroyed + var/death_sound = 'sound/items/bikehorn.ogg' + +/obj/structure/cult/itemspawner/proc/destroy_structure() + visible_message(death_message) + playsound(src, death_sound, 50, 1) + qdel(src) + +/obj/structure/cult/itemspawner/examine(mob/user) . = ..() if(iscultist(user) && cooldowntime > world.time) to_chat(user, "The magic in [src] is weak, it will be ready to use again in [getETA()].") @@ -60,7 +58,7 @@ return ..() -/obj/structure/cult/proc/getETA() +/obj/structure/cult/itemspawner/proc/getETA() var/time = (cooldowntime - world.time)/600 var/eta = "[round(time, 1)] minutes" if(time <= 1) @@ -68,7 +66,7 @@ eta = "[round(time, 1)] seconds" return eta -/obj/structure/cult/culttalisman +/obj/structure/cult/itemspawner/talisman name = "altar" desc = "A bloodstained altar dedicated to a cult." icon_state = "talismanaltar" @@ -76,7 +74,7 @@ death_message = "The altar breaks into splinters, releasing a cascade of spirits into the air!" death_sound = 'sound/effects/altar_break.ogg' -/obj/structure/cult/culttalisman/attack_hand(mob/living/user) +/obj/structure/cult/itemspawner/talisman/attack_hand(mob/living/user) if(!iscultist(user)) to_chat(user, "You're pretty sure you know exactly what this is used for and you can't seem to touch it.") return @@ -103,7 +101,7 @@ to_chat(user, "You kneel before the altar and your faith is rewarded with an [N]!") -/obj/structure/cult/cultforge +/obj/structure/cult/itemspawner/forge name = "daemon forge" desc = "A forge used in crafting the unholy weapons used by the armies of a cult." icon_state = "forge" @@ -111,7 +109,7 @@ death_message = "The forge falls apart, its lava cooling and winking away!" death_sound = 'sound/effects/forge_destroy.ogg' -/obj/structure/cult/cultforge/attackby(obj/item/I, mob/user, params) +/obj/structure/cult/itemspawner/forge/attackby(obj/item/I, mob/user, params) if(istype(I, /obj/item/weapon/grab)) var/obj/item/weapon/grab/G = I if(!iscarbon(G.affecting)) @@ -135,7 +133,7 @@ head.disfigure("burn") //Your face is unrecognizable because it's FUCKING LAVA return 1 -/obj/structure/cult/cultforge/attack_hand(mob/living/user) +/obj/structure/cult/itemspawner/forge/attack_hand(mob/living/user) if(!iscultist(user)) to_chat(user, "The heat radiating from [src] pushes you back.") return @@ -172,7 +170,7 @@ var/list/blacklisted_pylon_turfs = typecacheof(list( /turf/simulated/wall, )) -/obj/structure/cult/cultpylon +/obj/structure/cult/itemspawner/pylon name = "pylon" desc = "A floating crystal that slowly heals those faithful to a cult." icon_state = "pylon" @@ -186,15 +184,15 @@ var/list/blacklisted_pylon_turfs = typecacheof(list( var/corrupt_delay = 50 var/last_corrupt = 0 -/obj/structure/cult/cultpylon/New() +/obj/structure/cult/itemspawner/pylon/New() processing_objects |= src ..() -/obj/structure/cult/cultpylon/Destroy() +/obj/structure/cult/itemspawner/pylon/Destroy() processing_objects.Remove(src) return ..() -/obj/structure/cult/cultpylon/process() +/obj/structure/cult/itemspawner/pylon/process() if(!anchored) return if(last_heal <= world.time) @@ -239,7 +237,7 @@ var/list/blacklisted_pylon_turfs = typecacheof(list( -/obj/structure/cult/culttome +/obj/structure/cult/itemspawner/tome name = "archives" desc = "A desk covered in arcane manuscripts and tomes in unknown languages. Looking at the text makes your skin crawl." icon_state = "tomealtar" @@ -247,7 +245,7 @@ var/list/blacklisted_pylon_turfs = typecacheof(list( death_message = "The desk breaks apart, its books falling to the floor." death_sound = 'sound/effects/wood_break.ogg' -/obj/structure/cult/culttome/attack_hand(mob/living/user) +/obj/structure/cult/itemspawner/tome/attack_hand(mob/living/user) if(!iscultist(user)) to_chat(user, "All of these books seem to be gibberish.") return diff --git a/code/game/gamemodes/cult/ritual.dm b/code/game/gamemodes/cult/ritual.dm index 4bf743ef3d7..da0cdc79e94 100644 --- a/code/game/gamemodes/cult/ritual.dm +++ b/code/game/gamemodes/cult/ritual.dm @@ -85,114 +85,115 @@ /obj/item/weapon/tome/proc/read_tome(mob/user) var/text = list() - text = jointext(text, "
Archives of [ticker.mode.cultdat.entity_title1]



") - text = jointext(text, "A rune's name and effects can be revealed by examining the rune.<

") + text += "
Archives of [ticker.mode.cultdat.entity_title1]



" + text += "A rune's name and effects can be revealed by examining the rune.<

" - text = jointext(text, "Rite of Binding
This rune is one of the most important runes the cult has, being the only way to create new talismans. A blank sheet of paper must be on top of the rune. After \ - invoking it and choosing which talisman you desire, the paper will be converted, after some delay into a talisman.

") + text += "Rite of Binding
This rune is one of the most important runes the cult has, being the only way to create new talismans. A blank sheet of paper must be on top of the rune. After \ + invoking it and choosing which talisman you desire, the paper will be converted, after some delay into a talisman.

" - text = jointext(text, "Teleport
This rune is unique in that it requires a keyword before the scribing can begin. When invoked, it will find any other Teleport runes; \ - If any are found, the user can choose which rune to send to. Upon activation, the rune teleports everything above it to the selected rune.

") + text += "Teleport
This rune is unique in that it requires a keyword before the scribing can begin. When invoked, it will find any other Teleport runes; \ + If any are found, the user can choose which rune to send to. Upon activation, the rune teleports everything above it to the selected rune.

" - text = jointext(text, "Rite of Enlightenment
This rune is critical to the success of the cult. It will allow you to convert normal crew members into cultists. \ + text += "Rite of Enlightenment
This rune is critical to the success of the cult. It will allow you to convert normal crew members into cultists. \ To do this, simply place the crew member upon the rune and invoke it. This rune requires two invokers to use. If the target to be converted is loyalty-implanted or a certain assignment, they will \ be unable to be converted. People [ticker.mode.cultdat.entity_title3] wishes sacrificed will also be ineligible for conversion, and anyone with a shielding presence like the null rod will not be converted.
\ - Successful conversions will produce a tome for the new cultist.

") + Successful conversions will produce a tome for the new cultist.

" - text = jointext(text, "Rite of Tribute
This rune is necessary to achieve your goals. Simply place any dead creature upon the rune and invoke it (this will not \ + text += "Rite of Tribute
This rune is necessary to achieve your goals. Simply place any dead creature upon the rune and invoke it (this will not \ target cultists!). If this creature has a mind, a soulstone will be created and the creature's soul transported to it. Sacrificing the dead can be done alone, but sacrificing living crew or your cult's target will require 3 cultists. \ - Soulstones used on construct shells will move that soul into a powerful construct of your choice.

") + Soulstones used on construct shells will move that soul into a powerful construct of your choice.

" - text = jointext(text, "Rite of Resurrection
This rune requires two corpses. To perform the ritual, place the corpse you wish to revive onto \ + text += "Rite of Resurrection
This rune requires two corpses. To perform the ritual, place the corpse you wish to revive onto \ the rune and the offering body adjacent to it. When the rune is invoked, the body to be sacrificed will turn to dust, the life force flowing into the revival target. Assuming the target is not moved \ - within a few seconds, they will be brought back to life, healed of all ailments.

") + within a few seconds, they will be brought back to life, healed of all ailments.

" - text = jointext(text, "Rite of Disruption
Robotic lifeforms have time and time again been the downfall of fledgling cults. This rune may allow you to gain the upper \ + text += "Rite of Disruption
Robotic lifeforms have time and time again been the downfall of fledgling cults. This rune may allow you to gain the upper \ hand against these pests. By using the rune, a large electromagnetic pulse will be emitted from the rune's location. The size of the EMP will grow significantly for each additional adjacent cultist when the \ - rune is activated.

") + rune is activated.

" - text = jointext(text, "Astral Communion
This rune is perhaps the most ingenious rune that is usable by a single person. Upon invoking the rune, the \ + text += "Astral Communion
This rune is perhaps the most ingenious rune that is usable by a single person. Upon invoking the rune, the \ user's spirit will be ripped from their body. In this state, the user's physical body will be locked in place to the rune itself - any attempts to move it will result in the rune pulling it back. \ The body will also take constant damage while in this form, and may even die. The user's spirit will contain their consciousness, and will allow them to freely wander the station as a ghost. This may \ - also be used to commune with the dead.

") + also be used to commune with the dead.

" - text = jointext(text, "Rite of the Corporeal Shield
While simple, this rune serves an important purpose in defense and hindering passage. When invoked, the \ + text += "Rite of the Corporeal Shield
While simple, this rune serves an important purpose in defense and hindering passage. When invoked, the \ rune will draw a small amount of life force from the user and make the space above the rune completely dense, rendering it impassable to all but the most complex means. The rune may be invoked again to \ - undo this effect and allow passage again.

") + undo this effect and allow passage again.

" - text = jointext(text,"Rite of Joined Souls
This rune allows the cult to free other cultists with ease. When invoked, it will allow the user to summon a single cultist to the rune from \ - any location. It requires two invokers, and will damage each invoker slightly.

") + text += "Rite of Joined Souls
This rune allows the cult to free other cultists with ease. When invoked, it will allow the user to summon a single cultist to the rune from \ + any location. It requires two invokers, and will damage each invoker slightly.

" - text = jointext(text, "Blood Boil
When invoked, this rune will do a massive amount of damage to all non-cultist viewers, but it will also emit a small explosion upon invocation. \ - It requires three invokers.

") + text += "Blood Boil
When invoked, this rune will do a massive amount of damage to all non-cultist viewers, but it will also emit a small explosion upon invocation. \ + It requires three invokers.

" - text = jointext(text, "Leeching
When invoked, this rune will transfer lifeforce from the victim to the invoker.

") + text += "Leeching
When invoked, this rune will transfer lifeforce from the victim to the invoker.

" - text = jointext(text, "Rite of Spectral Manifestation
This rune allows you to summon spirits as humanoid fighters. When invoked, a spirit above the rune will be brought to life as a human, wearing nothing, that seeks only to serve you and [ticker.mode.cultdat.entity_title3]. \ + text += "Rite of Spectral Manifestation
This rune allows you to summon spirits as humanoid fighters. When invoked, a spirit above the rune will be brought to life as a human, wearing nothing, that seeks only to serve you and [ticker.mode.cultdat.entity_title3]. \ However, the spirit's link to reality is fragile - you must remain on top of the rune, and you will slowly take damage. Upon stepping off the rune, all summoned spirits will dissipate, dropping their items to the ground. You may manifest \ - multiple spirits with one rune, but you will rapidly take damage in doing so.

") + multiple spirits with one rune, but you will rapidly take damage in doing so.

" - text = jointext(text, "Ritual of Dimensional Rending
This rune is necessary to achieve your goals. On attempting to scribe it, it will produce shields around you and alert everyone you are attempting to scribe it; it takes a very long time to scribe, \ + text += "Ritual of Dimensional Rending
This rune is necessary to achieve your goals. On attempting to scribe it, it will produce shields around you and alert everyone you are attempting to scribe it; it takes a very long time to scribe, \ and does massive damage to the one attempting to scribe it.
Invoking it requires 9 invokers and the sacrifice of a specific crewmember, and once invoked, will summon [ticker.mode.cultdat.entity_title3], [ticker.mode.cultdat.entity_name]. \ - This will complete your objectives.


") + This will complete your objectives.


" - text = jointext(text, "Talisman of Teleportation
The talisman form of the Teleport rune will transport the invoker to a selected Teleport rune once.

") + text += "Talisman of Teleportation
The talisman form of the Teleport rune will transport the invoker to a selected Teleport rune once.

" - text = jointext(text, "Talisman of Fabrication
This talisman is the main way of creating construct shells. To use it, one must strike 30 sheets of metal with the talisman. The sheets will then be twisted into a construct shell, ready to recieve a soul to occupy it.

") + text += "Talisman of Fabrication
This talisman is the main way of creating construct shells. To use it, one must strike 30 sheets of metal with the talisman. The sheets will then be twisted into a construct shell, ready to recieve a soul to occupy it.

" - text = jointext(text, "Talisman of Tome Summoning
This talisman will produce a single tome at your feet.

") + text += "Talisman of Tome Summoning
This talisman will produce a single tome at your feet.

" - text = jointext(text, "Talisman of Veiling/Revealing
This talisman will hide runes on its first use, and on the second, will reveal runes.

") + text += "Talisman of Veiling/Revealing
This talisman will hide runes on its first use, and on the second, will reveal runes.

" - text = jointext(text, "Talisman of Disguising
This talisman will permanently disguise all nearby runes as crayon runes.

") + text += "Talisman of Disguising
This talisman will permanently disguise all nearby runes as crayon runes.

" - text = jointext(text, "Talisman of Electromagnetic Pulse
This talisman will EMP anything else nearby. It disappears after one use.

") + text += "Talisman of Electromagnetic Pulse
This talisman will EMP anything else nearby. It disappears after one use.

" - text = jointext(text, "Talisman of Stunning
Attacking a target will knock them down for a long duration in addition to inhibiting their speech. \ - Robotic lifeforms will suffer the effects of a heavy electromagnetic pulse instead.

") + text += "Talisman of Stunning
Attacking a target will knock them down for a long duration in addition to inhibiting their speech. \ + Robotic lifeforms will suffer the effects of a heavy electromagnetic pulse instead.

" - text = jointext(text, "Talisman of Armaments
The Talisman of Arming will equip the user with armored robes, a backpack, an eldritch longsword, an empowered bola, and a pair of boots. Any items that cannot \ - be equipped will not be summoned. Attacking a fellow cultist with it will instead equip them.

") + text += "Talisman of Armaments
The Talisman of Arming will equip the user with armored robes, a backpack, an eldritch longsword, an empowered bola, and a pair of boots. Any items that cannot \ + be equipped will not be summoned. Attacking a fellow cultist with it will instead equip them.

" - text = jointext(text, "Talisman of Horrors
The Talisman of Horror must be applied directly to the victim, it will shatter your victim's mind with visions of the endtimes that may incapitate them.

") + text += "Talisman of Horrors
The Talisman of Horror must be applied directly to the victim, it will shatter your victim's mind with visions of the endtimes that may incapitate them.

" - text = jointext(text, "Talisman of Shackling
The Talisman of Shackling must be applied directly to the victim, it has 4 uses and cuffs victims with magic shackles that disappear when removed.

") + text += "Talisman of Shackling
The Talisman of Shackling must be applied directly to the victim, it has 4 uses and cuffs victims with magic shackles that disappear when removed.

" - text = jointext(text, "In addition to these runes, the cult has a small selection of equipment and constructs.

") + text += "In addition to these runes, the cult has a small selection of equipment and constructs.

" - text = jointext(text, "Equipment:

") + text += "Equipment:

" - text = jointext(text, "Cult Blade
Cult blades are sharp weapons that, notably, cannot be used by noncultists. These blades are produced by the Talisman of Arming.

") + text += "Cult Blade
Cult blades are sharp weapons that, notably, cannot be used by noncultists. These blades are produced by the Talisman of Arming.

" - text = jointext(text, "Cult Bola
Cult bolas are strong bolas, useful for snaring targets. These bolas are produced by the Talisman of Arming.

") + text += "Cult Bola
Cult bolas are strong bolas, useful for snaring targets. These bolas are produced by the Talisman of Arming.

" - text = jointext(text, "Cult Robes
Cult robes are heavily armored robes. These robes are produced by the Talisman of Arming.

") + text += "Cult Robes
Cult robes are heavily armored robes. These robes are produced by the Talisman of Arming.

" - text = jointext(text, "Soulstone
A soulstone is a simple piece of magic, produced either via the starter talisman or by sacrificing humans. Using it on an unconscious or dead human, or on a Shade, will trap their soul in the stone, allowing its use in construct shells. \ -
The soul within can also be released as a Shade by using it in-hand.

") + text += "Soulstone
A soulstone is a simple piece of magic, produced either via the starter talisman or by sacrificing humans. Using it on an unconscious or dead human, or on a Shade, will trap their soul in the stone, allowing its use in construct shells. \ +
The soul within can also be released as a Shade by using it in-hand.

" - text = jointext(text, "Construct Shell
A construct shell is useless on its own, but placing a filled soulstone within it allows you to produce your choice of a Wraith, a Juggernaut, or an Artificer. \ -
Each construct has uses, detailed below in Constructs. Construct shells can be produced via the starter talisman or the Rite of Fabrication.

") + text += "Construct Shell
A construct shell is useless on its own, but placing a filled soulstone within it allows you to produce your choice of a Wraith, a Juggernaut, or an Artificer. \ +
Each construct has uses, detailed below in Constructs. Construct shells can be produced via the starter talisman or the Rite of Fabrication.

" - text = jointext(text, "Constructs:

") + text += "Constructs:

" - text = jointext(text, "Shade
While technically not a construct, the Shade is produced when released from a soulstone. It is quite fragile and has weak melee attacks, but is fully healed when recaptured by a soulstone.

") + text += "Shade
While technically not a construct, the Shade is produced when released from a soulstone. It is quite fragile and has weak melee attacks, but is fully healed when recaptured by a soulstone.

" - text = jointext(text, "Wraith
The Wraith is a fast, lethal melee attacker which can jaunt through walls. However, it is only slightly more durable than a shade.

") + text += "Wraith
The Wraith is a fast, lethal melee attacker which can jaunt through walls. However, it is only slightly more durable than a shade.

" - text = jointext(text, "Juggernaut
The Juggernaut is a slow, but durable, melee attacker which can produce temporary forcewalls. It will also reflect most lethal energy weapons.

") + text += "Juggernaut
The Juggernaut is a slow, but durable, melee attacker which can produce temporary forcewalls. It will also reflect most lethal energy weapons.

" - text = jointext(text,"Artificer
The Artificer is a weak and fragile construct, able to heal other constructs, produce more soulstones and construct shells, \ - construct fortifying cult walls and flooring, and finally, it can release a few indiscriminate stunning missiles.

") + text += "Artificer
The Artificer is a weak and fragile construct, able to heal other constructs, produce more soulstones and construct shells, \ + construct fortifying cult walls and flooring, and finally, it can release a few indiscriminate stunning missiles.

" - text = jointext(text, "Harvester
If you see one, know that you have done all you can and your life is void.

") + text += "Harvester
If you see one, know that you have done all you can and your life is void.

" + var/text_string = jointext(text, null) var/datum/browser/popup = new(user, "tome", "", 800, 600) - popup.set_content(text) + popup.set_content(text_string) popup.open() return 1 -/obj/item/weapon/tome/proc/finale_runes_ok(mob/living/user,/obj/effect/rune/rune_to_scribe) +/obj/item/weapon/tome/proc/finale_runes_ok(mob/living/user, obj/effect/rune/rune_to_scribe) if(ticker.mode.name == "cult") if(!canbypass == 1)//not an admin-tome, check things diff --git a/code/game/gamemodes/cult/runes.dm b/code/game/gamemodes/cult/runes.dm index 0729c24de42..68b13bb05aa 100644 --- a/code/game/gamemodes/cult/runes.dm +++ b/code/game/gamemodes/cult/runes.dm @@ -268,7 +268,7 @@ var/list/teleport_runes = list() else teleportnames.Add(resultkey) duplicaterunecount[resultkey] = 1 - if(T != src && (!is_level_reachable(T.z))) + if(T != src && is_level_reachable(T.z)) potential_runes[resultkey] = T if(!potential_runes.len) diff --git a/code/game/gamemodes/cult/talisman.dm b/code/game/gamemodes/cult/talisman.dm index 8f58bb8e484..fe5fcd7953a 100644 --- a/code/game/gamemodes/cult/talisman.dm +++ b/code/game/gamemodes/cult/talisman.dm @@ -134,7 +134,7 @@ log_game("Teleport talisman failed - no other teleport runes") return ..(user, 0) - if(is_level_reachable(user.z)) + if(!is_level_reachable(user.z)) to_chat(user, "You are not in the right dimension!") log_game("Teleport talisman failed - user in away mission") return ..(user, 0) @@ -329,6 +329,7 @@ to_chat(user, "The talisman clings to the metal and twists it into a construct shell!") user << sound('sound/magic/Staff_Chaos.ogg',0,1,25) qdel(src) + return if(istype(target, /obj/item/stack/sheet/plasteel)) var/quantity = min(target.amount, uses) uses -= quantity @@ -342,7 +343,6 @@ else to_chat(user, "The talisman must be used on metal or plasteel!") - //Talisman of Shackling: Applies special cuffs directly from the talisman /obj/item/weapon/paper/talisman/shackle cultist_name = "Talisman of Shackling" diff --git a/code/game/objects/items/stacks/sheets/sheet_types.dm b/code/game/objects/items/stacks/sheets/sheet_types.dm index b68d768d44e..73a9f40feca 100644 --- a/code/game/objects/items/stacks/sheets/sheet_types.dm +++ b/code/game/objects/items/stacks/sheets/sheet_types.dm @@ -214,10 +214,10 @@ var/global/list/datum/stack_recipe/cardboard_recipes = list ( var/global/list/datum/stack_recipe/runed_metal_recipes = list ( \ new/datum/stack_recipe("runed door", /obj/machinery/door/airlock/cult, 1, time = 50, one_per_turf = 1, on_floor = 1), new/datum/stack_recipe("runed girder", /obj/structure/cultgirder, 1, time = 50, one_per_turf = 1, on_floor = 1), \ - new/datum/stack_recipe("pylon", /obj/structure/cult/cultpylon, 3, time = 40, one_per_turf = 1, on_floor = 1), \ - new/datum/stack_recipe("forge", /obj/structure/cult/cultforge, 5, time = 40, one_per_turf = 1, on_floor = 1), \ - new/datum/stack_recipe("archives", /obj/structure/cult/culttome, 2, time = 40, one_per_turf = 1, on_floor = 1), \ - new/datum/stack_recipe("altar", /obj/structure/cult/culttalisman, 5, time = 40, one_per_turf = 1, on_floor = 1), \ + new/datum/stack_recipe("pylon", /obj/structure/cult/itemspawner/pylon, 3, time = 40, one_per_turf = 1, on_floor = 1), \ + new/datum/stack_recipe("forge", /obj/structure/cult/itemspawner/forge, 5, time = 40, one_per_turf = 1, on_floor = 1), \ + new/datum/stack_recipe("archives", /obj/structure/cult/itemspawner/tome, 2, time = 40, one_per_turf = 1, on_floor = 1), \ + new/datum/stack_recipe("altar", /obj/structure/cult/itemspawner/talisman, 5, time = 40, one_per_turf = 1, on_floor = 1), \ ) /obj/item/stack/sheet/runed_metal