Tg port 2 15 (#230)
* defines/helpers * globalvars, onclick, controllers * datums and game * woooooooooorld. Uh. dm * modules sans mobs client admin * modules/admin * pref shit * modules/mob * icon updates * extra things * Cherrypicked fixes from open PRs * metastation.tgm fix * a better meta fix * reverts async breakings
This commit is contained in:
@@ -51,8 +51,10 @@
|
||||
name = "dull sigil"
|
||||
desc = "A dull, barely-visible golden sigil. It's as though light was carved into the ground."
|
||||
icon = 'icons/effects/clockwork_effects.dmi'
|
||||
clockwork_desc = "A sigil that will stun the first non-servant to cross it. Nar-Sie's dogs will be knocked down."
|
||||
clockwork_desc = "A sigil that will stun the next non-Servant to cross it."
|
||||
icon_state = "sigildull"
|
||||
layer = HIGH_SIGIL_LAYER
|
||||
alpha = 60
|
||||
color = "#FAE48C"
|
||||
sigil_name = "Sigil of Transgression"
|
||||
|
||||
@@ -78,8 +80,9 @@
|
||||
desc = "A luminous golden sigil. Something about it really bothers you."
|
||||
clockwork_desc = "A sigil that will enslave the first person to cross it, provided they remain on it for seven seconds."
|
||||
icon_state = "sigilsubmission"
|
||||
color = "#FAE48C"
|
||||
layer = LOW_SIGIL_LAYER
|
||||
alpha = 125
|
||||
color = "#FAE48C"
|
||||
stat_affected = UNCONSCIOUS
|
||||
resist_string = "glows faintly yellow"
|
||||
var/convert_time = 70
|
||||
@@ -148,8 +151,8 @@
|
||||
clockwork_desc = "A sigil that will enslave any person who crosses it, provided they remain on it for seven seconds. \n\
|
||||
It can convert a mindshielded target once before disppearing, but can convert any number of non-implanted targets."
|
||||
icon_state = "sigiltransgression"
|
||||
color = "#A97F1B"
|
||||
alpha = 200
|
||||
color = "#A97F1B"
|
||||
glow_light = 4 //bright light
|
||||
glow_falloff = 3
|
||||
delete_on_finish = FALSE
|
||||
@@ -172,8 +175,8 @@
|
||||
desc = "A glowing orange sigil. The air around it feels staticky."
|
||||
clockwork_desc = "A sigil that will serve as a battery for clockwork structures."
|
||||
icon_state = "sigiltransmission"
|
||||
color = "#EC8A2D"
|
||||
alpha = 50
|
||||
color = "#EC8A2D"
|
||||
resist_string = "glows faintly"
|
||||
sigil_name = "Sigil of Transmission"
|
||||
affects_servants = TRUE
|
||||
@@ -189,7 +192,11 @@
|
||||
/obj/effect/clockwork/sigil/transmission/examine(mob/user)
|
||||
..()
|
||||
if(is_servant_of_ratvar(user) || isobserver(user))
|
||||
user << "<span class='[power_charge ? "brass":"alloy"]'>It is storing <b>[ratvar_awakens ? "INFINITY":"[power_charge]"]W</b> of power.</span>"
|
||||
var/structure_number = 0
|
||||
for(var/obj/structure/destructible/clockwork/powered/P in range(SIGIL_ACCESS_RANGE, src))
|
||||
structure_number++
|
||||
user << "<span class='[power_charge ? "brass":"alloy"]'>It is storing <b>[ratvar_awakens ? "INFINITY":"[power_charge]"]W</b> of power, \
|
||||
and <b>[structure_number]</b> Clockwork Structure[structure_number == 1 ? "":"s"] [structure_number == 1 ? "is":"are"] in range.</span>"
|
||||
if(iscyborg(user))
|
||||
user << "<span class='brass'>You can recharge from the [sigil_name] by crossing it.</span>"
|
||||
|
||||
@@ -264,8 +271,9 @@
|
||||
desc = "A faint blue sigil. Looking at it makes you feel protected."
|
||||
clockwork_desc = "A sigil that will drain non-Servants that remain on it. Servants that remain on it will be healed if it has any vitality drained."
|
||||
icon_state = "sigilvitality"
|
||||
color = "#123456"
|
||||
layer = SIGIL_LAYER
|
||||
alpha = 75
|
||||
color = "#123456"
|
||||
affects_servants = TRUE
|
||||
stat_affected = DEAD
|
||||
resist_string = "glows shimmering yellow"
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
name = "Nezbere, the Brass Eidolon"
|
||||
desc = "A towering colossus clad in nigh-impenetrable brass armor. Its gaze is stern yet benevolent, even upon you."
|
||||
clockwork_desc = "One of Ratvar's four generals. Nezbere is responsible for the design, testing, and creation of everything in Ratvar's domain, and his loyalty to Ratvar knows no bounds. \
|
||||
It is said that Ratvar once asked him to destroy the plans for a weapon Nezbere had made that could have harmed him and Nezbere responded by not only destroying the plans, \
|
||||
It is said that Ratvar once asked him to destroy the plans for a weapon Nezbere had made that could have harmed him, and Nezbere responded by not only destroying the plans, \
|
||||
but by taking his own life so that the device could never be replicated. Nezbere's zealotry is unmatched."
|
||||
icon = 'icons/effects/340x428.dmi'
|
||||
icon_state = "nezbere"
|
||||
@@ -47,7 +47,7 @@
|
||||
|
||||
/obj/effect/clockwork/general_marker/nzcrentr
|
||||
name = "Nzcrentr, the Eternal Thunderbolt"
|
||||
desc = "A terrifying spiked construct crackling with limitless energy."
|
||||
desc = "A terrifying spiked construct crackling with perpetual lightning."
|
||||
clockwork_desc = "One of Ratvar's four generals. Before becoming one of Ratvar's generals, Nzcrentr sook out any and all sentient life to slaughter it for sport. \
|
||||
Nzcrentr was coerced by Ratvar into entering a shell constructed by Nezbere, ostensibly made to grant Nzcrentr more power. In reality, the shell was made to trap and control it. \
|
||||
Nzcrentr now serves loyally, though even one of Nezbere's finest creations was not enough to totally eliminate its will."
|
||||
|
||||
@@ -44,12 +44,14 @@
|
||||
if((!clockcult_user || !is_servant_of_ratvar(src)) && cell && cell.charge)
|
||||
. = min(cell.charge, 250)
|
||||
cell.use(.)
|
||||
src << "<span class='userdanger'>ERROR: Power loss detected!</span>"
|
||||
if(prob(20))
|
||||
src << "<span class='userdanger'>ERROR: Power loss detected!</span>"
|
||||
spark_system.start()
|
||||
|
||||
/obj/mecha/power_drain(clockcult_user)
|
||||
if((!clockcult_user || !occupant || occupant && !is_servant_of_ratvar(occupant)) && cell && cell.charge)
|
||||
. = min(cell.charge, 250)
|
||||
cell.use(.)
|
||||
occupant_message("<span class='userdanger'>Power loss detected!</span>")
|
||||
if(prob(20))
|
||||
occupant_message("<span class='userdanger'>Power loss detected!</span>")
|
||||
spark_system.start()
|
||||
|
||||
@@ -45,6 +45,15 @@
|
||||
servant_of_ratvar_messages = list("The eye flickers before falling dark." = FALSE, "You feel watched." = FALSE, "\"...\"" = FALSE)
|
||||
w_class = WEIGHT_CLASS_NORMAL
|
||||
|
||||
/obj/item/clockwork/component/belligerent_eye/lens_gem
|
||||
name = "lens gem"
|
||||
desc = "A tiny pinkish gem. It catches the light oddly, almost glowing."
|
||||
clockwork_desc = "The gem from an interdiction lens. <b>Serviceable as a substitute for a belligerent eye.</b>"
|
||||
icon_state = "lens_gem"
|
||||
cultist_message = "The gem turns black and cold for a moment before its normal glow returns."
|
||||
servant_of_ratvar_messages = list("\"Disgusting failure.\"" = TRUE, "You feel scrutinized." = FALSE, "\"Weaklings.\"" = TRUE, "\"Pathetic defenses.\"" = TRUE)
|
||||
w_class = WEIGHT_CLASS_TINY
|
||||
|
||||
/obj/item/clockwork/component/vanguard_cogwheel
|
||||
name = "vanguard cogwheel"
|
||||
desc = "A sturdy brass cog with a faintly glowing blue gem in its center."
|
||||
@@ -54,14 +63,14 @@
|
||||
servant_of_ratvar_messages = list("\"Be safe, child.\"" = FALSE, "You feel unexplainably comforted." = FALSE, "\"Never forget: Pain is temporary. What you do for the Justiciar is eternal.\"" = FALSE)
|
||||
message_span = "inathneq"
|
||||
|
||||
/obj/item/clockwork/component/vanguard_cogwheel/pinion_lock
|
||||
name = "pinion lock"
|
||||
desc = "A dented and scratched gear. It's very heavy."
|
||||
clockwork_desc = "A broken gear lock for pinion airlocks. <b>Serviceable as a substitute for a vanguard cogwheel.</b>"
|
||||
icon_state = "pinion_lock"
|
||||
cultist_message = "The gear grows warm in your hands."
|
||||
servant_of_ratvar_messages = list("The lock isn't getting any lighter." = FALSE, "\"Damaged gears are better than broken bodies.\"" = TRUE, \
|
||||
"\"It's a shame it can't be reused.\"" = TRUE)
|
||||
/obj/item/clockwork/component/vanguard_cogwheel/onyx_prism
|
||||
name = "onyx prism"
|
||||
desc = "An onyx prism with a small aperture. It's very heavy."
|
||||
clockwork_desc = "A broken prism from a mending motor. <b>Serviceable as a substitute for a vanguard cogwheel.</b>"
|
||||
icon_state = "onyx_prism"
|
||||
cultist_message = "The prism grows painfully hot in your hands."
|
||||
servant_of_ratvar_messages = list("The prism isn't getting any lighter." = FALSE, "\"So... you haven't failed yet. Have hope, child.\"" = TRUE, \
|
||||
"\"Better these machines break than you do.\"" = TRUE)
|
||||
w_class = WEIGHT_CLASS_NORMAL
|
||||
|
||||
/obj/item/clockwork/component/geis_capacitor
|
||||
@@ -74,6 +83,15 @@
|
||||
"\"The fact that Ratvar has to depend on simpletons like you is appalling.\"" = FALSE)
|
||||
message_span = "sevtug"
|
||||
|
||||
/obj/item/clockwork/component/geis_capacitor/fallen_armor
|
||||
name = "fallen armor"
|
||||
desc = "Lifeless chunks of armor. They're designed in a strange way and won't fit on you."
|
||||
clockwork_desc = "The armor from a former clockwork marauder. <b>Serviceable as a substitute for a geis capacitor.</b>"
|
||||
icon_state = "fallen_armor"
|
||||
cultist_message = "Red flame sputters from the mask's eye before winking out."
|
||||
servant_of_ratvar_messages = list("A piece of armor hovers away from the others for a moment." = FALSE, "Red flame appears in the cuirass before sputtering out." = FALSE)
|
||||
w_class = WEIGHT_CLASS_NORMAL
|
||||
|
||||
/obj/item/clockwork/component/geis_capacitor/antennae
|
||||
name = "mania motor antennae"
|
||||
desc = "A pair of dented and bent antennae. They constantly emit a static hiss."
|
||||
@@ -100,17 +118,16 @@
|
||||
icon_state = "smashed_anime_fragment"
|
||||
cultist_message = "The shards vibrate in your hands for a moment."
|
||||
servant_of_ratvar_messages = list("\"...still fight...\"" = FALSE, "\"...where am I...?\"" = FALSE, "\"...put me... slab...\"" = FALSE)
|
||||
message_span = "heavy_brass"
|
||||
w_class = WEIGHT_CLASS_NORMAL
|
||||
|
||||
/obj/item/clockwork/component/replicant_alloy/fallen_armor
|
||||
name = "fallen armor"
|
||||
desc = "Lifeless chunks of armor. They're designed in a strange way and won't fit on you."
|
||||
clockwork_desc = "The armor from a former clockwork marauder. <b>Serviceable as a substitute for replicant alloy.</b>"
|
||||
icon_state = "fallen_armor"
|
||||
cultist_message = "Red flame sputters from the mask's eye before winking out."
|
||||
servant_of_ratvar_messages = list("A piece of armor hovers away from the others for a moment." = FALSE, "Red flame appears in the cuirass before sputtering out." = FALSE)
|
||||
message_span = "heavy_brass"
|
||||
/obj/item/clockwork/component/replicant_alloy/replication_plate
|
||||
name = "replication plate"
|
||||
desc = "A flat, heavy disc of metal with a triangular formation on its surface."
|
||||
clockwork_desc = "The replication plate from a tinkerer's daemon. <b>Serviceable as a substitute for replicant alloy.</b>"
|
||||
icon_state = "replication_plate"
|
||||
cultist_message = "The plate shudders in your hands, as though trying to get away."
|
||||
servant_of_ratvar_messages = list("\"Put this in a slab and get back to work.\"" = FALSE, "\"Worse servants than you have held these.\"" = TRUE, \
|
||||
"\"It would be wise to protect these better, friend.\"" = TRUE)
|
||||
w_class = WEIGHT_CLASS_NORMAL
|
||||
|
||||
/obj/item/clockwork/component/hierophant_ansible
|
||||
@@ -183,3 +200,9 @@
|
||||
randomsinglesprite = TRUE
|
||||
randomspritemax = 3
|
||||
icon_state = "shard_small"
|
||||
|
||||
/obj/item/clockwork/alloy_shards/pinion_lock
|
||||
name = "pinion lock"
|
||||
desc = "A dented and scratched gear. It's very heavy."
|
||||
clockwork_desc = "A broken gear lock for pinion airlocks. Can be proselytized for additional power."
|
||||
icon_state = "pinion_lock"
|
||||
|
||||
@@ -304,8 +304,8 @@
|
||||
for(var/mob/living/M in living_mob_list)
|
||||
if(is_servant_of_ratvar(M) && (ishuman(M) || issilicon(M)))
|
||||
servants++
|
||||
if(servants > 5)
|
||||
servants -= 5
|
||||
if(servants > SCRIPT_SERVANT_REQ)
|
||||
servants -= SCRIPT_SERVANT_REQ
|
||||
production_time += min(SLAB_SERVANT_SLOWDOWN * servants, SLAB_SLOWDOWN_MAXIMUM)
|
||||
var/production_text_addon = ""
|
||||
if(production_time != SLAB_PRODUCTION_TIME+SLAB_SLOWDOWN_MAXIMUM)
|
||||
|
||||
@@ -54,6 +54,7 @@
|
||||
/obj/item/device/mmi/posibrain/soul_vessel/attack(mob/living/target, mob/living/carbon/human/user)
|
||||
if(!is_servant_of_ratvar(user) || !ishuman(target) || used || (brainmob && brainmob.key))
|
||||
..()
|
||||
return
|
||||
if(is_servant_of_ratvar(target))
|
||||
user << "<span class='nezbere'>\"It would be more wise to revive your allies, friend.\"</span>"
|
||||
return
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
attack_sound = 'sound/weapons/bladeslice.ogg'
|
||||
weather_immunities = list("lava")
|
||||
movement_type = FLYING
|
||||
loot = list(/obj/item/clockwork/component/replicant_alloy/fallen_armor)
|
||||
loot = list(/obj/item/clockwork/component/geis_capacitor/fallen_armor)
|
||||
var/true_name = "Meme Master 69" //Required to call forth the marauder
|
||||
var/global/list/possible_true_names = list("Servant", "Warden", "Serf", "Page", "Usher", "Knave", "Vassal", "Escort")
|
||||
var/mob/living/host //The mob that the marauder is living inside of
|
||||
|
||||
@@ -176,13 +176,13 @@
|
||||
/datum/clockwork_scripture/create_object/sigil_of_transmission
|
||||
descname = "Structure Battery"
|
||||
name = "Sigil of Transmission"
|
||||
desc = "Scribes a sigil beneath the invoker which stores power to power clockwork structures."
|
||||
desc = "Places a sigil that stores energy to power clockwork structures."
|
||||
invocations = list("Divinity...", "...power our creations!")
|
||||
channel_time = 70
|
||||
consumed_components = list(VANGUARD_COGWHEEL = 1, GEIS_CAPACITOR = 1, HIEROPHANT_ANSIBLE = 2)
|
||||
whispered = TRUE
|
||||
object_path = /obj/effect/clockwork/sigil/transmission
|
||||
creator_message = "<span class='brass'>A sigil silently appears below you. It will automatically power clockwork structures adjecent to it.</span>"
|
||||
creator_message = "<span class='brass'>A sigil silently appears below you. It will automatically power clockwork structures near it.</span>"
|
||||
usage_tip = "Cyborgs can charge from this sigil by remaining over it for 5 seconds."
|
||||
tier = SCRIPTURE_APPLICATION
|
||||
one_per_tile = TRUE
|
||||
@@ -194,7 +194,7 @@
|
||||
|
||||
//Interdiction Lens: Creates a powerful totem that disables radios and cameras and drains power into nearby sigils of transmission.
|
||||
/datum/clockwork_scripture/create_object/interdiction_lens
|
||||
descname = "Structure, Disables Machinery"
|
||||
descname = "Structure, Area Sabotage, Power Generator"
|
||||
name = "Interdiction Lens"
|
||||
desc = "Creates a clockwork totem that sabotages nearby machinery and funnels drained power into nearby Sigils of Transmission or the area's APC."
|
||||
invocations = list("May this totem...", "...shroud the false suns!")
|
||||
@@ -216,14 +216,14 @@
|
||||
|
||||
//Mending Motor: Creates a prism that will quickly heal mechanical servants/clockwork structures and consume power or replicant alloy.
|
||||
/datum/clockwork_scripture/create_object/mending_motor
|
||||
descname = "Structure, Repairs Other Structures"
|
||||
descname = "Powered Structure, Repairs Other Structures"
|
||||
name = "Mending Motor"
|
||||
desc = "Creates a mechanized prism that will rapidly repair damage to clockwork creatures, converted cyborgs, and clockwork structures. Requires power to function."
|
||||
desc = "Creates a mechanized prism that will rapidly repair damaged clockwork constructs, converted cyborgs, and clockwork structures."
|
||||
invocations = list("May this prism...", "...mend our dents and scratches!")
|
||||
channel_time = 80
|
||||
consumed_components = list(VANGUARD_COGWHEEL = 3, GEIS_CAPACITOR = 1, REPLICANT_ALLOY = 1)
|
||||
object_path = /obj/structure/destructible/clockwork/powered/mending_motor
|
||||
creator_message = "<span class='brass'>You form a mending motor, which will consume power to mend constructs and structures.</span>"
|
||||
creator_message = "<span class='brass'>You form a mending motor, which will rapidly repair damaged clockwork constructs, converted cyborgs, and clockwork structures.</span>"
|
||||
observer_message = "<span class='warning'>An onyx prism forms in midair and sprouts tendrils to support itself!</span>"
|
||||
invokers_required = 2
|
||||
multiple_invokers_used = TRUE
|
||||
@@ -238,9 +238,9 @@
|
||||
|
||||
//Mania Motor: Creates a malevolent transmitter that will broadcast the whispers of Sevtug into the minds of nearby nonservants, causing a variety of mental effects at a power cost.
|
||||
/datum/clockwork_scripture/create_object/mania_motor
|
||||
descname = "Structure, Area Denial"
|
||||
descname = "Powered Structure, Area Denial"
|
||||
name = "Mania Motor"
|
||||
desc = "Creates a mania motor which will cause brain damage and hallucinations in nearby non-servant humans. It will also try to convert humans directly adjecent to the motor."
|
||||
desc = "Creates a mania motor which will cause brain damage and hallucinations in nearby non-Servant humans. It will also try to convert humans directly adjecent to the motor."
|
||||
invocations = list("May this transmitter...", "...break the will of all who oppose us!")
|
||||
channel_time = 80
|
||||
consumed_components = list(GEIS_CAPACITOR = 3, REPLICANT_ALLOY = 1, HIEROPHANT_ANSIBLE = 1)
|
||||
@@ -249,7 +249,7 @@
|
||||
observer_message = "<span class='warning'>A two-pronged machine rises from the ground!</span>"
|
||||
invokers_required = 2
|
||||
multiple_invokers_used = TRUE
|
||||
usage_tip = "Eligible human servants next to the motor will be converted at an additional power cost. It will also cure hallucinations and brain damage in nearby servants."
|
||||
usage_tip = "Eligible non-Servant humans next to the motor will be converted at an additional power cost. It will also cure hallucinations and brain damage in nearby Servants."
|
||||
tier = SCRIPTURE_APPLICATION
|
||||
one_per_tile = TRUE
|
||||
primary_component = GEIS_CAPACITOR
|
||||
@@ -260,9 +260,10 @@
|
||||
|
||||
//Tinkerer's Daemon: Creates an efficient machine that rapidly produces components at a power cost.
|
||||
/datum/clockwork_scripture/create_object/tinkerers_daemon
|
||||
descname = "Structure, Component Generator"
|
||||
descname = "Powered Structure, Component Generator"
|
||||
name = "Tinkerer's Daemon"
|
||||
desc = "Creates a tinkerer's daemon which can rapidly collect components. It will only function if it has sufficient power, is outnumbered by servants by a ratio of 5:1, and there is at least one existing cache."
|
||||
desc = "Creates a tinkerer's daemon which can rapidly collect components. It will only function if it has sufficient power, is outnumbered by Servants by a ratio of 5:1, \
|
||||
and there is at least one existing cache."
|
||||
invocations = list("May this generator...", "...collect Engine parts that yet hold greatness!")
|
||||
channel_time = 80
|
||||
consumed_components = list(BELLIGERENT_EYE = 1, GEIS_CAPACITOR = 1, REPLICANT_ALLOY = 3)
|
||||
@@ -294,9 +295,9 @@
|
||||
|
||||
//Clockwork Obelisk: Creates a powerful obelisk that can be used to broadcast messages or open a gateway to any servant or clockwork obelisk at a power cost.
|
||||
/datum/clockwork_scripture/create_object/clockwork_obelisk
|
||||
descname = "Structure, Teleportation Hub"
|
||||
descname = "Powered Structure, Teleportation Hub"
|
||||
name = "Clockwork Obelisk"
|
||||
desc = "Creates a clockwork obelisk that can broadcast messages over the Hierophant Network or open a Spatial Gateway to any living servant or clockwork obelisk."
|
||||
desc = "Creates a clockwork obelisk that can broadcast messages over the Hierophant Network or open a Spatial Gateway to any living Servant or clockwork obelisk."
|
||||
invocations = list("May this obelisk...", "...take us to all places!")
|
||||
channel_time = 80
|
||||
consumed_components = list(BELLIGERENT_EYE = 1, VANGUARD_COGWHEEL = 1, HIEROPHANT_ANSIBLE = 3)
|
||||
|
||||
@@ -253,14 +253,15 @@
|
||||
/datum/clockwork_scripture/create_object/tinkerers_cache
|
||||
descname = "Necessary Structure, Shares Components"
|
||||
name = "Tinkerer's Cache"
|
||||
desc = "Forms a cache that can store an infinite amount of components. All caches are linked and will provide components to slabs."
|
||||
desc = "Forms a cache that can store an infinite amount of components. All caches are linked and will provide components to slabs. \
|
||||
Striking a cache with a slab will transfer that slab's components to the global cache."
|
||||
invocations = list("Constructing...", "...a cache!")
|
||||
channel_time = 50
|
||||
consumed_components = list(BELLIGERENT_EYE = 0, VANGUARD_COGWHEEL = 0, GEIS_CAPACITOR = 0, REPLICANT_ALLOY = 1, HIEROPHANT_ANSIBLE = 0)
|
||||
object_path = /obj/structure/destructible/clockwork/cache
|
||||
creator_message = "<span class='brass'>You form a tinkerer's cache, which is capable of storing components, which will automatically be used by slabs.</span>"
|
||||
observer_message = "<span class='warning'>A hollow brass spire rises and begins to blaze!</span>"
|
||||
usage_tip = "Slabs will draw components from the global cache after the slab's own repositories, making caches very efficient."
|
||||
usage_tip = "Slabs will draw components from the global cache after the slab's own repositories, making caches extremely useful."
|
||||
tier = SCRIPTURE_DRIVER
|
||||
one_per_tile = TRUE
|
||||
primary_component = REPLICANT_ALLOY
|
||||
@@ -299,17 +300,17 @@
|
||||
/datum/clockwork_scripture/create_object/sigil_of_transgression
|
||||
descname = "Trap, Stunning"
|
||||
name = "Sigil of Transgression"
|
||||
desc = "Wards a tile with a sigil. The next person to cross the sigil will be smitten and unable to move. Nar-Sian cultists are stunned altogether."
|
||||
invocations = list("Divinity, dazzle...", "...those who tresspass here!")
|
||||
desc = "Wards a tile with a sigil, which will stun the next non-Servant to cross it."
|
||||
invocations = list("Divinity, smite...", "...those who tresspass here!")
|
||||
channel_time = 50
|
||||
consumed_components = list(HIEROPHANT_ANSIBLE = 1)
|
||||
whispered = TRUE
|
||||
object_path = /obj/effect/clockwork/sigil/transgression
|
||||
creator_message = "<span class='brass'>A sigil silently appears below you. The next non-servant to cross it will be immobilized.</span>"
|
||||
creator_message = "<span class='brass'>A sigil silently appears below you. The next non-Servant to cross it will be stunned.</span>"
|
||||
usage_tip = "The sigil, while fairly powerful in its stun, does not induce muteness in its victim."
|
||||
tier = SCRIPTURE_DRIVER
|
||||
one_per_tile = TRUE
|
||||
primary_component = HIEROPHANT_ANSIBLE
|
||||
sort_priority = 10
|
||||
quickbind = TRUE
|
||||
quickbind_desc = "Creates a Sigil of Transgression, which will stun the first non-Servant to cross it."
|
||||
quickbind_desc = "Creates a Sigil of Transgression, which will stun the next non-Servant to cross it."
|
||||
|
||||
@@ -6,11 +6,11 @@
|
||||
/datum/clockwork_scripture/invoke_inathneq
|
||||
descname = "Area Invulnerability"
|
||||
name = "Invoke Inath-neq, the Resonant Cogwheel"
|
||||
desc = "Taps the limitless power of Inath-neq, one of Ratvar's four generals. The benevolence of Inath-Neq will grant complete invulnerability to all servants in range for fifteen seconds."
|
||||
desc = "Taps the limitless power of Inath-neq, one of Ratvar's four generals. The benevolence of Inath-Neq will grant complete invulnerability to all Servants in range for fifteen seconds."
|
||||
invocations = list("I call upon you, Vanguard!!", "Let the Resonant Cogs turn once more!!", "Grant me and my allies the strength to vanquish our foes!!")
|
||||
channel_time = 100
|
||||
consumed_components = list(VANGUARD_COGWHEEL = 6, GEIS_CAPACITOR = 3, REPLICANT_ALLOY = 3, HIEROPHANT_ANSIBLE = 3)
|
||||
usage_tip = "Those affected by this scripture are only weak to things that outright destroy bodies, such as bombs or the singularity."
|
||||
usage_tip = "Servants affected by this scripture are only weak to things that outright destroy bodies, such as bombs or the singularity."
|
||||
tier = SCRIPTURE_REVENANT
|
||||
primary_component = VANGUARD_COGWHEEL
|
||||
sort_priority = 2
|
||||
@@ -124,7 +124,7 @@
|
||||
return FALSE
|
||||
if(!slab.no_cost && ratvar_awakens)
|
||||
invoker << "<span class='nezbere'>\"[text2ratvar("Our master is here already. You do not require my help, friend.")]\"</span>\n\
|
||||
<span class='warning'>Nezbere will not grant his power while Ratvar's dwarfs his own!</span>"
|
||||
<span class='warning'>There is no need for Nezbere's assistance while Ratvar is risen!</span>"
|
||||
return FALSE
|
||||
return TRUE
|
||||
|
||||
@@ -165,8 +165,8 @@
|
||||
/datum/clockwork_scripture/invoke_nzcrentr
|
||||
descname = "Area Lightning Blast"
|
||||
name = "Invoke Nzcrentr, the Eternal Thunderbolt"
|
||||
desc = "Taps the limitless power of Nzcrentr, one of Ratvar's four generals. The immense energy Nzcrentr wields will allow you to imbue a tiny fraction of it into your body. After several \
|
||||
seconds, anyone near you will be struck by a devastating lightning bolt."
|
||||
desc = "Taps the limitless power of Nzcrentr, one of Ratvar's four generals. Nzcrentr will grant you a tiny fraction of its boundless power. After several seconds, all non-Servants near you \
|
||||
will be struck by devastating lightning bolts."
|
||||
invocations = list("I call upon you, Amperage!!", "Let your energy flow through me!!", "Let your boundless power shatter stars!!")
|
||||
channel_time = 100
|
||||
consumed_components = list(BELLIGERENT_EYE = 3, GEIS_CAPACITOR = 3, REPLICANT_ALLOY = 3, HIEROPHANT_ANSIBLE = 6)
|
||||
@@ -187,7 +187,7 @@
|
||||
clockwork_generals_invoked["nzcrentr"] = world.time + CLOCKWORK_GENERAL_COOLDOWN
|
||||
hierophant_message("<span class='nzcrentr_large'>[text2ratvar("Amperage: \"[invoker.real_name] has called forth my power. Hope [invoker.p_they()] [invoker.p_do()] not shatter under it!")]\"</span>", FALSE, invoker)
|
||||
invoker.visible_message("<span class='warning'>[invoker] begins to radiate a blinding light!</span>", \
|
||||
"<span class='nzcrentr'>\"[text2ratvar("The boss says it's okay to do this. Don't blame me if you die from it.")]\"</span>\n \
|
||||
"<span class='nzcrentr'>\"[text2ratvar("The boss says it's okay to do this. Don't blame me if you die from it.")]\"</span>\n\
|
||||
<span class='userdanger'>You feel limitless power surging through you!</span>")
|
||||
playsound(invoker, 'sound/magic/clockwork/invoke_general.ogg', 50, 0)
|
||||
sleep(2)
|
||||
@@ -197,7 +197,7 @@
|
||||
sleep(88)
|
||||
if(invoker)
|
||||
invoker.visible_message("<span class='warning'>Massive bolts of energy emerge from across [invoker]'s body!</span>", \
|
||||
"<span class='nzcrentr'>\"[text2ratvar("I told you you wouldn't be able to handle it.")]\"</span>\n \
|
||||
"<span class='nzcrentr'>\"[text2ratvar("I told you you wouldn't be able to handle it.")]\"</span>\n\
|
||||
<span class='userdanger'>TOO... MUCH! CAN'T... TAKE IT!</span>")
|
||||
playsound(invoker, 'sound/magic/lightningbolt.ogg', 100, 0)
|
||||
if(invoker.stat == CONSCIOUS)
|
||||
|
||||
@@ -6,12 +6,12 @@
|
||||
/datum/clockwork_scripture/create_object/ocular_warden
|
||||
descname = "Structure, Turret"
|
||||
name = "Ocular Warden"
|
||||
desc = "Forms an automatic short-range turret that deals low sustained damage to the unenlightened in its range."
|
||||
desc = "Forms an automatic short-range turret which will automatically attack nearby unrestrained non-Servants that can see it."
|
||||
invocations = list("Guardians...", "...of the Engine...", "...defend us!")
|
||||
channel_time = 120
|
||||
consumed_components = list(BELLIGERENT_EYE = 1, REPLICANT_ALLOY = 1)
|
||||
object_path = /obj/structure/destructible/clockwork/ocular_warden
|
||||
creator_message = "<span class='brass'>You form an ocular warden, which will focus its searing gaze upon nearby unenlightened.</span>"
|
||||
creator_message = "<span class='brass'>You form an ocular warden, which will automatically attack nearby unrestrained non-Servants that can see it.</span>"
|
||||
observer_message = "<span class='warning'>A brass eye takes shape and slowly rises into the air, its red iris glaring!</span>"
|
||||
usage_tip = "Although powerful, the warden is very fragile and should optimally be placed behind barricades."
|
||||
tier = SCRIPTURE_SCRIPT
|
||||
@@ -23,7 +23,7 @@
|
||||
quickbind_desc = "Creates an Ocular Warden, which will automatically attack nearby unrestrained non-Servants that can see it."
|
||||
|
||||
/datum/clockwork_scripture/create_object/ocular_warden/check_special_requirements()
|
||||
for(var/obj/structure/destructible/clockwork/ocular_warden/W in range(3, invoker))
|
||||
for(var/obj/structure/destructible/clockwork/ocular_warden/W in range(OCULAR_WARDEN_EXCLUSION_RANGE, invoker))
|
||||
invoker << "<span class='neovgre'>You sense another ocular warden too near this location. Placing another this close would cause them to fight.</span>" //fluff message
|
||||
return FALSE
|
||||
return ..()
|
||||
@@ -52,7 +52,7 @@
|
||||
/datum/clockwork_scripture/create_object/vitality_matrix
|
||||
descname = "Trap, Damage to Healing"
|
||||
name = "Vitality Matrix"
|
||||
desc = "Scribes a sigil beneath the invoker which drains life from any living non-Servants that cross it. Servants that cross it, however, will be healed based on how much Vitality all \
|
||||
desc = "Places a sigil that drains life from any living non-Servants that cross it. Servants that cross it, however, will be healed based on how much Vitality all \
|
||||
Matrices have drained from non-Servants. Dead Servants can be revived by this sigil if there is vitality equal to the target Servant's non-oxygen damage."
|
||||
invocations = list("Divinity...", "...steal their life...", "...for these shells!")
|
||||
channel_time = 60
|
||||
|
||||
@@ -11,7 +11,8 @@
|
||||
max_integrity = 150
|
||||
obj_integrity = 150
|
||||
break_message = "<span class='warning'>The obelisk falls to the ground, undamaged!</span>"
|
||||
debris = list(/obj/item/clockwork/alloy_shards/small = 3, \
|
||||
debris = list(/obj/item/clockwork/alloy_shards/small = 4, \
|
||||
/obj/item/clockwork/alloy_shards/medium = 2, \
|
||||
/obj/item/clockwork/component/hierophant_ansible/obelisk = 1)
|
||||
var/hierophant_cost = MIN_CLOCKCULT_POWER //how much it costs to broadcast with large text
|
||||
var/gateway_cost = 2000 //how much it costs to open a gateway
|
||||
|
||||
@@ -8,8 +8,11 @@
|
||||
active_icon = "interdiction_lens_active"
|
||||
inactive_icon = "interdiction_lens"
|
||||
unanchored_icon = "interdiction_lens_unwrenched"
|
||||
break_message = "<span class='warning'>The lens flares a blinding violet before shattering!</span>"
|
||||
break_message = "<span class='warning'>The lens flares a blinding violet before the totem beneath it shatters!</span>"
|
||||
break_sound = 'sound/effects/Glassbr3.ogg'
|
||||
debris = list(/obj/item/clockwork/alloy_shards/small = 2, \
|
||||
/obj/item/clockwork/alloy_shards/large = 2, \
|
||||
/obj/item/clockwork/component/belligerent_eye/lens_gem = 1)
|
||||
var/recharging = 0 //world.time when the lens was last used
|
||||
var/recharge_time = 1200 //if it drains no power and affects no objects, it turns off for two minutes
|
||||
var/disabled = FALSE //if it's actually usable
|
||||
|
||||
@@ -8,11 +8,11 @@
|
||||
inactive_icon = "mania_motor_inactive"
|
||||
unanchored_icon = "mania_motor_unwrenched"
|
||||
construction_value = 20
|
||||
max_integrity = 80
|
||||
obj_integrity = 80
|
||||
max_integrity = 100
|
||||
obj_integrity = 100
|
||||
break_message = "<span class='warning'>The antenna break off, leaving a pile of shards!</span>"
|
||||
debris = list(/obj/item/clockwork/alloy_shards/large = 1, \
|
||||
/obj/item/clockwork/alloy_shards/small = 3, \
|
||||
debris = list(/obj/item/clockwork/alloy_shards/large = 2, \
|
||||
/obj/item/clockwork/alloy_shards/small = 2, \
|
||||
/obj/item/clockwork/component/geis_capacitor/antennae = 1)
|
||||
var/mania_cost = 150
|
||||
var/convert_cost = 150
|
||||
@@ -62,30 +62,7 @@
|
||||
var/turf/T = get_turf(src)
|
||||
var/hum = get_sfx('sound/effects/screech.ogg') //like playsound, same sound for everyone affected
|
||||
var/efficiency = get_efficiency_mod()
|
||||
for(var/mob/living/carbon/human/H in view(1, src))
|
||||
if(is_servant_of_ratvar(H) || H.null_rod_check() || H.stat == DEAD)
|
||||
continue
|
||||
if(!H.Adjacent(src))
|
||||
H << "<span class='sevtug'>\"[text2ratvar(pick(close_messages))]\"</span>"
|
||||
continue
|
||||
if(try_use_power(convert_cost))
|
||||
H.playsound_local(T, hum, 80, 1)
|
||||
if(!H.stat)
|
||||
if(H.getBrainLoss() < 100)
|
||||
H.adjustBrainLoss(30 * efficiency)
|
||||
H.visible_message("<span class='warning'>[H] reaches out and touches [src].</span>", "<span class='sevtug'>You touch [src] involuntarily.</span>")
|
||||
else
|
||||
H.Paralyse(3)
|
||||
else if(is_eligible_servant(H))
|
||||
H << "<span class='sevtug'>\"[text2ratvar("You are mine and his, now.")]\"</span>"
|
||||
add_servant_of_ratvar(H)
|
||||
H.Paralyse(5)
|
||||
else
|
||||
H << "<span class='sevtug'>\"[text2ratvar(pick(convert_messages))]\"</span>"
|
||||
else
|
||||
visible_message("<span class='warning'>[src]'s antennae fizzle quietly.</span>")
|
||||
playsound(src, 'sound/effects/light_flicker.ogg', 50, 1)
|
||||
for(var/mob/living/carbon/human/H in range(10, src))
|
||||
for(var/mob/living/carbon/human/H in viewers(7, src))
|
||||
if(is_servant_of_ratvar(H)) //heals servants of braindamage, hallucination, druggy, dizziness, and confusion
|
||||
var/brainloss = H.getBrainLoss()
|
||||
if(brainloss)
|
||||
@@ -98,14 +75,34 @@
|
||||
H.dizziness = 0
|
||||
if(H.confused)
|
||||
H.confused = 0
|
||||
else if(!H.null_rod_check() && H.stat == CONSCIOUS)
|
||||
else if(!H.null_rod_check() && H.stat != DEAD)
|
||||
var/distance = 0 + get_dist(T, get_turf(H))
|
||||
var/falloff_distance = min((110) - distance * 10, 80)
|
||||
var/sound_distance = falloff_distance * 0.5
|
||||
var/targetbrainloss = H.getBrainLoss()
|
||||
if(distance >= 4 && prob(falloff_distance * 0.5))
|
||||
if(distance > 3 && prob(falloff_distance * 0.5))
|
||||
H << "<span class='sevtug_small'>\"[text2ratvar(pick(mania_messages))]\"</span>"
|
||||
H.playsound_local(T, hum, sound_distance, 1)
|
||||
if(distance <= 1)
|
||||
if(!H.Adjacent(src))
|
||||
H << "<span class='sevtug'>\"[text2ratvar(pick(close_messages))]\"</span>"
|
||||
H.playsound_local(T, hum, sound_distance, 1)
|
||||
else if(!try_use_power(convert_cost))
|
||||
visible_message("<span class='warning'>[src]'s antennae fizzle quietly.</span>")
|
||||
playsound(src, 'sound/effects/light_flicker.ogg', 50, 1)
|
||||
else
|
||||
H.playsound_local(T, hum, 80, 1)
|
||||
if(!H.stat)
|
||||
if(H.getBrainLoss() < 100)
|
||||
H.adjustBrainLoss(20 * efficiency)
|
||||
H.visible_message("<span class='warning'>[H] reaches out and touches [src].</span>", "<span class='sevtug'>You touch [src] involuntarily.</span>")
|
||||
else
|
||||
H.Paralyse(3)
|
||||
else if(is_eligible_servant(H))
|
||||
H << "<span class='sevtug'>\"[text2ratvar("You are mine and his, now.")]\"</span>"
|
||||
add_servant_of_ratvar(H)
|
||||
H.Paralyse(5)
|
||||
else
|
||||
H.playsound_local(T, hum, sound_distance, 1)
|
||||
switch(distance)
|
||||
if(0 to 3)
|
||||
if(prob(falloff_distance * 0.5))
|
||||
@@ -113,31 +110,31 @@
|
||||
H << "<span class='sevtug_small'>\"[text2ratvar(pick(mania_messages))]\"</span>"
|
||||
else
|
||||
H << "<span class='sevtug'>\"[text2ratvar(pick(compel_messages))]\"</span>"
|
||||
if(targetbrainloss <= 50)
|
||||
H.adjustBrainLoss((50 * efficiency) - targetbrainloss) //got too close had brain eaten
|
||||
H.adjust_drugginess(Clamp(7 * efficiency, 0, 100 - H.druggy))
|
||||
H.hallucination = min(H.hallucination + (7 * efficiency), 100)
|
||||
H.dizziness = min(H.dizziness + (3 * efficiency), 45)
|
||||
H.confused = min(H.confused + (3 * efficiency), 45)
|
||||
if(4 to 5)
|
||||
if(targetbrainloss <= 50)
|
||||
H.adjustBrainLoss(1 * efficiency)
|
||||
H.adjust_drugginess(Clamp(5 * efficiency, 0, 80 - H.druggy))
|
||||
H.hallucination = min(H.hallucination + (5 * efficiency), 80)
|
||||
H.dizziness = min(H.dizziness + (2 * efficiency), 30)
|
||||
H.confused = min(H.confused + (2 * efficiency), 30)
|
||||
if(6 to 7)
|
||||
if(targetbrainloss <= 30)
|
||||
H.adjustBrainLoss(1 * efficiency)
|
||||
H.adjust_drugginess(Clamp(2 * efficiency, 0, 60 - H.druggy))
|
||||
H.hallucination = min(H.hallucination + (2 * efficiency), 60)
|
||||
H.dizziness = min(H.dizziness + (2 * efficiency), 15)
|
||||
H.confused = min(H.confused + (2 * efficiency), 15)
|
||||
if(8 to 9)
|
||||
if(targetbrainloss <= 40)
|
||||
H.adjustBrainLoss(3 * efficiency)
|
||||
H.adjust_drugginess(Clamp(7 * efficiency, 0, 50 - H.druggy))
|
||||
H.hallucination = min(H.hallucination + (7 * efficiency), 50)
|
||||
H.dizziness = min(H.dizziness + (3 * efficiency), 20)
|
||||
H.confused = min(H.confused + (3 * efficiency), 20)
|
||||
if(3 to 5)
|
||||
if(targetbrainloss <= 20)
|
||||
H.adjustBrainLoss(2 * efficiency)
|
||||
H.adjust_drugginess(Clamp(5 * efficiency, 0, 25 - H.druggy))
|
||||
H.hallucination = min(H.hallucination + (5 * efficiency), 25)
|
||||
H.dizziness = min(H.dizziness + (2 * efficiency), 10)
|
||||
H.confused = min(H.confused + (2 * efficiency), 10)
|
||||
if(5 to 6)
|
||||
if(targetbrainloss <= 10)
|
||||
H.adjustBrainLoss(1 * efficiency)
|
||||
H.adjust_drugginess(Clamp(2 * efficiency, 0, 40 - H.druggy))
|
||||
H.hallucination = min(H.hallucination + (2 * efficiency), 40)
|
||||
if(10 to INFINITY)
|
||||
H.adjust_drugginess(Clamp(2 * efficiency, 0, 20 - H.druggy))
|
||||
H.hallucination = min(H.hallucination + (2 * efficiency), 20)
|
||||
H.dizziness = min(H.dizziness + (2 * efficiency), 5)
|
||||
H.confused = min(H.confused + (2 * efficiency), 5)
|
||||
if(6 to 7)
|
||||
if(targetbrainloss <= 5)
|
||||
H.adjustBrainLoss(1 * efficiency)
|
||||
H.adjust_drugginess(Clamp(2 * efficiency, 0, 10 - H.druggy))
|
||||
H.hallucination = min(H.hallucination + (2 * efficiency), 10)
|
||||
if(7 to INFINITY)
|
||||
H.adjust_drugginess(Clamp(2 * efficiency, 0, 5 - H.druggy))
|
||||
H.hallucination = min(H.hallucination + (2 * efficiency), 5)
|
||||
|
||||
@@ -10,11 +10,11 @@
|
||||
construction_value = 20
|
||||
max_integrity = 125
|
||||
obj_integrity = 125
|
||||
break_message = "<span class='warning'>The prism collapses with a heavy thud!</span>"
|
||||
debris = list(/obj/item/clockwork/alloy_shards/small = 5, \
|
||||
break_message = "<span class='warning'>The prism falls to the ground with a heavy thud!</span>"
|
||||
debris = list(/obj/item/clockwork/alloy_shards/small = 3, \
|
||||
/obj/item/clockwork/alloy_shards/medium = 1, \
|
||||
/obj/item/clockwork/alloy_shards/large = 1, \
|
||||
/obj/item/clockwork/component/vanguard_cogwheel = 1)
|
||||
/obj/item/clockwork/component/vanguard_cogwheel/onyx_prism = 1)
|
||||
var/heal_attempts = 4
|
||||
var/heal_cost = MIN_CLOCKCULT_POWER*2
|
||||
var/static/list/damage_heal_order = list(BRUTE, BURN, OXY)
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
/obj/structure/destructible/clockwork/ocular_warden
|
||||
name = "ocular warden"
|
||||
desc = "A large brass eye with tendrils trailing below it and a wide red iris."
|
||||
clockwork_desc = "A fragile turret that will deal sustained damage to any non-faithful it sees."
|
||||
clockwork_desc = "A fragile turret which will automatically attack nearby unrestrained non-Servants that can see it."
|
||||
icon_state = "ocular_warden"
|
||||
unanchored_icon = "ocular_warden_unwrenched"
|
||||
obj_integrity = 25
|
||||
@@ -39,7 +39,7 @@
|
||||
user << "<span class='warning'>[src] is too damaged to unsecure!</span>"
|
||||
return FAILED_UNFASTEN
|
||||
else
|
||||
for(var/obj/structure/destructible/clockwork/ocular_warden/W in orange(3, src))
|
||||
for(var/obj/structure/destructible/clockwork/ocular_warden/W in orange(OCULAR_WARDEN_EXCLUSION_RANGE, src))
|
||||
if(!silent)
|
||||
user << "<span class='neovgre'>You sense another ocular warden too near this location. Activating this one this close would cause them to fight.</span>"
|
||||
return FAILED_UNFASTEN
|
||||
|
||||
@@ -10,10 +10,10 @@
|
||||
max_integrity = 100
|
||||
obj_integrity = 100
|
||||
construction_value = 20
|
||||
break_message = "<span class='warning'>The daemon shatters into millions of pieces!</span>"
|
||||
debris = list(/obj/item/clockwork/alloy_shards/large = 2, \
|
||||
/obj/item/clockwork/alloy_shards/medium = 4, \
|
||||
/obj/item/clockwork/alloy_shards/small = 6)
|
||||
break_message = "<span class='warning'>The daemon shatters into millions of pieces, leaving only a disc of metal!</span>"
|
||||
debris = list(/obj/item/clockwork/alloy_shards/medium = 1, \
|
||||
/obj/item/clockwork/alloy_shards/small = 6, \
|
||||
/obj/item/clockwork/component/replicant_alloy/replication_plate = 1)
|
||||
var/image/daemon_glow
|
||||
var/image/component_glow
|
||||
var/component_id_to_produce
|
||||
|
||||
@@ -286,7 +286,7 @@
|
||||
var/timer = SSshuttle.emergency.timeLeft(1) + cursetime
|
||||
SSshuttle.emergency.setTimer(timer)
|
||||
user << "<span class='danger'>You shatter the orb! A dark essence spirals into the air, then disappears.</span>"
|
||||
playsound(user.loc, "sound/effects/Glassbr1.ogg", 50, 1)
|
||||
playsound(user.loc, 'sound/effects/Glassbr1.ogg', 50, 1)
|
||||
qdel(src)
|
||||
sleep(20)
|
||||
var/global/list/curses
|
||||
|
||||
@@ -507,7 +507,7 @@
|
||||
feedback_add_details("wizard_spell_learned",log_name)
|
||||
rightandwrong(0, user, 25)
|
||||
active = 1
|
||||
playsound(get_turf(user),"sound/magic/CastSummon.ogg",50,1)
|
||||
playsound(get_turf(user), 'sound/magic/CastSummon.ogg', 50, 1)
|
||||
user << "<span class='notice'>You have cast summon guns!</span>"
|
||||
return 1
|
||||
|
||||
@@ -525,7 +525,7 @@
|
||||
feedback_add_details("wizard_spell_learned",log_name)
|
||||
rightandwrong(1, user, 25)
|
||||
active = 1
|
||||
playsound(get_turf(user),"sound/magic/CastSummon.ogg",50,1)
|
||||
playsound(get_turf(user), 'sound/magic/CastSummon.ogg', 50, 1)
|
||||
user << "<span class='notice'>You have cast summon magic!</span>"
|
||||
return 1
|
||||
|
||||
@@ -545,7 +545,7 @@
|
||||
feedback_add_details("wizard_spell_learned",log_name)
|
||||
summonevents()
|
||||
times++
|
||||
playsound(get_turf(user),"sound/magic/CastSummon.ogg",50,1)
|
||||
playsound(get_turf(user), 'sound/magic/CastSummon.ogg', 50, 1)
|
||||
user << "<span class='notice'>You have cast summon events.</span>"
|
||||
return 1
|
||||
|
||||
|
||||
Reference in New Issue
Block a user