mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-22 11:37:40 +01:00
last of tg tweaks for now.
rune blood dna is runtiming but eh....
This commit is contained in:
@@ -48,7 +48,7 @@
|
||||
|
||||
init_subtypes(/datum/table_recipe, table_recipes)
|
||||
|
||||
init_subtypes(/datum/cult_info, all_cults)
|
||||
all_cults = typesof(/datum/cult_info)
|
||||
|
||||
return 1
|
||||
|
||||
|
||||
@@ -12,13 +12,6 @@
|
||||
/obj/effect/rune/proc/check_icon()
|
||||
icon = get_uristrune_cult(invocation)
|
||||
|
||||
/obj/item/weapon/tome
|
||||
name = "arcane tome"
|
||||
icon_state ="tome"
|
||||
throw_speed = 1
|
||||
throw_range = 5
|
||||
w_class = 2.0
|
||||
|
||||
/obj/item/weapon/tome
|
||||
name = "arcane tome"
|
||||
desc = "An old, dusty tome with frayed edges and a sinister-looking cover."
|
||||
@@ -26,6 +19,7 @@
|
||||
throw_speed = 2
|
||||
throw_range = 5
|
||||
w_class = 2
|
||||
var/scribereduct = 0
|
||||
|
||||
/obj/item/weapon/tome/examine(mob/user)
|
||||
..()
|
||||
@@ -218,11 +212,9 @@
|
||||
if(ispath(rune_to_scribe, /obj/effect/rune/narsie))//may need to change this - Fethas
|
||||
var/confirm_final = alert(usr, "This is the FINAL step to summon [ticker.mode.cultdat.entity_name], it is a long, painful ritual and the crew will be alerted to your presence", "Are you prepared for the final battle?", "My life for [ticker.mode.cultdat.entity_name]!", "No")
|
||||
if(confirm_final == "No")
|
||||
usr << "On second thought, we should prepare further for the final battle..."
|
||||
to_chat(usr, "On second thought, we should prepare further for the final battle...")
|
||||
return
|
||||
var/area/A = get_area(src)
|
||||
var/locname = initial(A.name)
|
||||
command_announcement.Announce("Figments from an eldritch god are being summoned by [user] into [locname] from an unknown dimension. Disrupt the ritual at all costs!","Central Command Higher Dimensionsal Affairs", 'sound/AI/spanomalies.ogg')
|
||||
command_announcement.Announce("Figments from an eldritch god are being summoned somwhere on the station from an unknown dimension. Disrupt the ritual at all costs!","Central Command Higher Dimensionsal Affairs", 'sound/AI/spanomalies.ogg')
|
||||
for(var/B in spiral_range_turfs(1, user, 1))
|
||||
var/turf/T = B
|
||||
var/obj/machinery/shield/N = new(T)
|
||||
@@ -250,4 +242,7 @@
|
||||
if(S && !qdeleted(S))
|
||||
qdel(S)
|
||||
new rune_to_scribe(Turf, chosen_keyword)
|
||||
rune_to_scribe.blood_DNA = list()
|
||||
rune_to_scribe.blood_DNA[user.dna.unique_enzymes] = user.dna.b_type
|
||||
rune_to_scribe.add_hiddenprint(user)
|
||||
to_chat(user, "<span class='cult'>The [lowertext(initial(rune_to_scribe.cultist_name))] rune [initial(rune_to_scribe.cultist_desc)]</span>")
|
||||
|
||||
@@ -40,6 +40,7 @@ To draw a rune, use an arcane tome.
|
||||
..()
|
||||
if(set_keyword)
|
||||
keyword = set_keyword
|
||||
check_icon()
|
||||
var/image/blood = image(loc = src)
|
||||
blood.override = 1
|
||||
for(var/mob/living/silicon/ai/AI in player_list)
|
||||
@@ -153,7 +154,6 @@ structure_check() searches for nearby cultist structures required for the invoca
|
||||
/obj/effect/rune/malformed/New()
|
||||
..()
|
||||
icon_state = "[rand(1,6)]"
|
||||
color = rgb(rand(0,255), rand(0,255), rand(0,255))
|
||||
|
||||
/obj/effect/rune/malformed/invoke(var/list/invokers)
|
||||
..()
|
||||
@@ -175,7 +175,6 @@ structure_check() searches for nearby cultist structures required for the invoca
|
||||
cultist_desc = "transforms paper into powerful magic talismans."
|
||||
invocation = "H'drak v'loso, mir'kanas verbot!"
|
||||
icon_state = "3"
|
||||
color = rgb(0, 0, 255)
|
||||
|
||||
/obj/effect/rune/imbue/invoke(var/list/invokers)
|
||||
var/mob/living/user = invokers[1] //the first invoker is always the user
|
||||
@@ -224,7 +223,6 @@ var/list/teleport_runes = list()
|
||||
cultist_desc = "warps everything above it to another chosen teleport rune."
|
||||
invocation = "Sas'so c'arta forbici!"
|
||||
icon_state = "2"
|
||||
color = "#551A8B"
|
||||
req_keyword = 1
|
||||
var/listkey
|
||||
|
||||
@@ -301,7 +299,6 @@ var/list/teleport_runes = list()
|
||||
cultist_desc = "converts a normal crewmember on top of it to the cult. Does not work on loyalty-implanted crew."
|
||||
invocation = "Mah'weyh pleggh at e'ntrath!"
|
||||
icon_state = "3"
|
||||
color = rgb(200, 0, 0)
|
||||
req_cultists = 2
|
||||
|
||||
/obj/effect/rune/convert/invoke(var/list/invokers)
|
||||
@@ -341,7 +338,6 @@ var/list/teleport_runes = list()
|
||||
icon_state = "3"
|
||||
allow_excess_invokers = 1
|
||||
invocation = "Barhah hra zar'garis!"
|
||||
color = rgb(255, 255, 255)
|
||||
rune_in_use = 0
|
||||
|
||||
/obj/effect/rune/sacrifice/New()
|
||||
@@ -510,11 +506,6 @@ var/list/teleport_runes = list()
|
||||
sleep(40)
|
||||
new /obj/singularity/narsie/large(T) //Causes Nar-Sie to spawn even if the rune has been removed
|
||||
cult_mode.eldergod = 0
|
||||
else
|
||||
for(var/M in invokers)
|
||||
to_chat(M, "<span class='warning'>[ticker.mode.cultdat.entity_name] does not respond!</span>")
|
||||
fail_invoke()
|
||||
log_game("Summon Nar-Sie rune failed - gametype is not cult")//May need to remove
|
||||
|
||||
/obj/effect/rune/narsie/attackby(obj/I, mob/user, params) //Since the narsie rune takes a long time to make, add logging to removal.
|
||||
if((istype(I, /obj/item/weapon/tome) && iscultist(user)))
|
||||
@@ -537,7 +528,6 @@ var/list/teleport_runes = list()
|
||||
cultist_desc = "requires two corpses, one on the rune and one adjacent to the rune. The one on the rune is brought to life, the other is turned to ash."
|
||||
invocation = null //Depends on the name of the user - see below
|
||||
icon_state = "1"
|
||||
color = rgb(200, 0, 0)
|
||||
|
||||
/obj/effect/rune/raise_dead/invoke(var/list/invokers)
|
||||
var/turf/T = get_turf(src)
|
||||
@@ -621,7 +611,6 @@ var/list/teleport_runes = list()
|
||||
invocation = "Ta'gh fara'qha fel d'amar det!"
|
||||
icon_state = "5"
|
||||
allow_excess_invokers = 1
|
||||
color = rgb(77, 148, 255)
|
||||
|
||||
/obj/effect/rune/emp/invoke(var/list/invokers)
|
||||
var/turf/E = get_turf(src)
|
||||
@@ -651,7 +640,6 @@ var/list/teleport_runes = list()
|
||||
cultist_desc = "severs the link between one's spirit and body. This effect is taxing and one's physical body will take damage while this is active."
|
||||
invocation = "Fwe'sh mah erl nyag r'ya!"
|
||||
icon_state = "6"
|
||||
color = rgb(126, 23, 23)
|
||||
rune_in_use = 0 //One at a time, please!
|
||||
var/mob/living/affecting = null
|
||||
|
||||
@@ -724,7 +712,6 @@ var/list/teleport_runes = list()
|
||||
cultist_desc = "when invoked, makes an invisible wall to block passage. Can be invoked again to reverse this."
|
||||
invocation = "Khari'd! Eske'te tannin!"
|
||||
icon_state = "1"
|
||||
color = rgb(255, 0, 0)
|
||||
|
||||
/obj/effect/rune/wall/examine(mob/user)
|
||||
..()
|
||||
@@ -750,7 +737,6 @@ var/list/teleport_runes = list()
|
||||
req_cultists = 2
|
||||
allow_excess_invokers = 1
|
||||
icon_state = "5"
|
||||
color = rgb(0, 255, 0)
|
||||
|
||||
/obj/effect/rune/summon/invoke(var/list/invokers)
|
||||
var/mob/living/user = invokers[1]
|
||||
@@ -790,7 +776,6 @@ var/list/teleport_runes = list()
|
||||
cultist_desc = "boils the blood of non-believers who can see the rune, dealing extreme amounts of damage. Requires 3 invokers."
|
||||
invocation = "Dedo ol'btoh!"
|
||||
icon_state = "4"
|
||||
color = rgb(200, 0, 0)
|
||||
req_cultists = 3
|
||||
|
||||
/obj/effect/rune/blood_boil/invoke(var/list/invokers)
|
||||
|
||||
@@ -108,7 +108,6 @@
|
||||
/obj/item/weapon/paper/talisman/teleport
|
||||
cultist_name = "Talisman of Teleportation"
|
||||
cultist_desc = "A single-use talisman that will teleport a user to a random rune of the same keyword."
|
||||
color = "#551A8B" // purple
|
||||
invocation = "Sas'so c'arta forbici!"
|
||||
health_cost = 5
|
||||
|
||||
@@ -150,7 +149,6 @@
|
||||
/obj/item/weapon/paper/talisman/summon_tome
|
||||
cultist_name = "Talisman of Tome Summoning"
|
||||
cultist_desc = "A one-use talisman that will call an untranslated tome from the archives of a cult."
|
||||
color = "#512727" // red-black
|
||||
invocation = "N'ath reth sh'yro eth d'raggathnor!"
|
||||
health_cost = 1
|
||||
|
||||
@@ -165,7 +163,6 @@
|
||||
/obj/item/weapon/paper/talisman/true_sight
|
||||
cultist_name = "Talisman of Veiling"
|
||||
cultist_desc = "A multi-use talisman that hides nearby runes. On its second use, will reveal nearby runes."
|
||||
color = "#9c9c9c" // grey
|
||||
invocation = "Kla'atu barada nikt'o!"
|
||||
health_cost = 1
|
||||
uses = 2
|
||||
@@ -190,7 +187,6 @@
|
||||
/obj/item/weapon/paper/talisman/make_runes_fake
|
||||
cultist_name = "Talisman of Disguising"
|
||||
cultist_desc = "A talisman that will make nearby runes appear fake."
|
||||
color = "#ff80d5" // honk
|
||||
invocation = "By'o nar'nar!"
|
||||
|
||||
/obj/item/weapon/paper/talisman/make_runes_fake/invoke(mob/living/user, successfuluse = 1)
|
||||
@@ -205,7 +201,6 @@
|
||||
/obj/item/weapon/paper/talisman/emp
|
||||
cultist_name = "Talisman of Electromagnetic Pulse"
|
||||
cultist_desc = "A talisman that will cause a moderately-sized electromagnetic pulse."
|
||||
color = "#4d94ff" // light blue
|
||||
invocation = "Ta'gh fara'qha fel d'amar det!"
|
||||
health_cost = 5
|
||||
|
||||
@@ -220,7 +215,6 @@
|
||||
/obj/item/weapon/paper/talisman/stun
|
||||
cultist_name = "Talisman of Stunning"
|
||||
cultist_desc = "A talisman that will stun and inhibit speech on a single target. To use, attack target directly."
|
||||
color = "#ff0000" // red
|
||||
invocation = "Dream sign:Evil sealing talisman!"
|
||||
health_cost = 10
|
||||
|
||||
@@ -265,7 +259,6 @@
|
||||
/obj/item/weapon/paper/talisman/armor
|
||||
cultist_name = "Talisman of Arming"
|
||||
cultist_desc = "A talisman that will equip the invoker with cultist equipment if there is a slot to equip it to."
|
||||
color = "#33cc33" // green
|
||||
invocation = "N'ath reth sh'yro eth draggathnor!"
|
||||
|
||||
/obj/item/weapon/paper/talisman/armor/invoke(mob/living/user, successfuluse = 1)
|
||||
@@ -292,7 +285,6 @@
|
||||
/obj/item/weapon/paper/talisman/horror
|
||||
cultist_name = "Talisman of Horrors"
|
||||
cultist_desc = "A talisman that will break the mind of the victim with nightmarish hallucinations."
|
||||
color = "#ffb366" // light orange
|
||||
invocation = "Lo'Nab Na'Dm!"
|
||||
|
||||
/obj/item/weapon/paper/talisman/horror/attack(mob/living/target, mob/living/user)
|
||||
@@ -309,7 +301,6 @@
|
||||
cultist_name = "Talisman of Construction"
|
||||
cultist_desc = "Use this talisman on at least twenty-five metal sheets to create an empty construct shell"
|
||||
invocation = "Ethra p'ni dedol!"
|
||||
color = "#000000" // black
|
||||
|
||||
/obj/item/weapon/paper/talisman/construction/attack_self(mob/living/user)
|
||||
if(iscultist(user))
|
||||
@@ -350,7 +341,6 @@
|
||||
cultist_name = "Talisman of Shackling"
|
||||
cultist_desc = "Use this talisman on a victim to handcuff them with dark bindings."
|
||||
invocation = "In'totum Lig'abis!"
|
||||
color = "#B27300" // burnt-orange
|
||||
uses = 4
|
||||
|
||||
/obj/item/weapon/paper/talisman/shackle/invoke(mob/living/user, successfuluse = 0)
|
||||
|
||||
@@ -31,7 +31,7 @@
|
||||
var/ert_disabled = 0
|
||||
var/uplink_welcome = "Syndicate Uplink Console:"
|
||||
var/uplink_uses = 10
|
||||
var/datum/cult_info/cultdat = null //here instead of cult for adminbus purposes
|
||||
var/datum/cult_info/cultdat = new /datum/cult_info() //here instead of cult for adminbus purposes
|
||||
|
||||
var/const/waittime_l = 600 //lower bound on time before intercept arrives (in tenths of seconds)
|
||||
var/const/waittime_h = 1800 //upper bound on time before intercept arrives (in tenths of seconds)
|
||||
|
||||
@@ -60,26 +60,6 @@
|
||||
var/boltDown = 'sound/machines/BoltsDown.ogg'
|
||||
|
||||
|
||||
/obj/machinery/door/airlock/narsie_act()
|
||||
var/turf/T = get_turf(src)
|
||||
var/runed = prob(20)
|
||||
if(prob(20))
|
||||
if(glass)
|
||||
if(runed)
|
||||
new /obj/machinery/door/airlock/cult/glass(T)
|
||||
else
|
||||
new /obj/machinery/door/airlock/cult/unruned/glass(T)
|
||||
else
|
||||
if(runed)
|
||||
new /obj/machinery/door/airlock/cult(T)
|
||||
else
|
||||
new /obj/machinery/door/airlock/cult/unruned(T)
|
||||
if(runed)
|
||||
new /obj/effect/overlay/temp/cult/door(T)
|
||||
else
|
||||
new /obj/effect/overlay/temp/cult/door/unruned(T)
|
||||
qdel(src)
|
||||
|
||||
/obj/machinery/door/airlock/command
|
||||
name = "Airlock"
|
||||
icon = 'icons/obj/doors/Doorcom.dmi'
|
||||
@@ -1087,32 +1067,4 @@ About the new airlock wires panel:
|
||||
src.unlock()
|
||||
src.open()
|
||||
src.lock()
|
||||
return
|
||||
|
||||
|
||||
//////////////////////////////////
|
||||
/*
|
||||
Cult Airlocks
|
||||
*/
|
||||
|
||||
/obj/machinery/door/airlock/cult
|
||||
name = "cult airlock"
|
||||
icon = 'icons/obj/doors/cult_runed.dmi'
|
||||
assembly_type = /obj/structure/door_assembly/door_assembly_cult
|
||||
|
||||
/obj/machinery/door/airlock/cult/narsie_act()
|
||||
return
|
||||
|
||||
/obj/machinery/door/airlock/cult/glass
|
||||
assembly_type = /obj/structure/door_assembly/door_assembly_cult/glass
|
||||
glass = 1
|
||||
opacity = 0
|
||||
|
||||
/obj/machinery/door/airlock/cult/unruned
|
||||
icon = 'icons/obj/doors/cult.dmi'
|
||||
assembly_type = /obj/structure/door_assembly/door_assembly_cult/unruned
|
||||
|
||||
/obj/machinery/door/airlock/cult/unruned/glass
|
||||
assembly_type = /obj/structure/door_assembly/door_assembly_cult/unruned/glass
|
||||
glass = 1
|
||||
opacity = 0
|
||||
return
|
||||
@@ -1,34 +1,21 @@
|
||||
/proc/make_bit_triplet()
|
||||
var/list/num_sample = list(1, 2, 3, 4, 5, 6, 7, 8, 9)
|
||||
var/result = 0
|
||||
for(var/i = 0, i < 3, i++)
|
||||
var/num = pick(num_sample)
|
||||
num_sample -= num
|
||||
result += (1 << num)
|
||||
return result
|
||||
|
||||
var/list/word_to_uristrune_table = null
|
||||
|
||||
/proc/word_to_uristrune_bit(word)
|
||||
if(word_to_uristrune_table == null)
|
||||
word_to_uristrune_table = list()
|
||||
|
||||
var/bit = 1
|
||||
|
||||
while(length(word))
|
||||
var/w = word
|
||||
|
||||
word_to_uristrune_table[w] = bit
|
||||
|
||||
word -= w
|
||||
bit <<= 1
|
||||
|
||||
|
||||
return word_to_uristrune_table[word]
|
||||
|
||||
|
||||
|
||||
/proc/get_uristrune_cult(word1)
|
||||
/proc/get_uristrune_cult(word)
|
||||
var/animated
|
||||
|
||||
if(word1)
|
||||
if(word)
|
||||
animated = 1
|
||||
else
|
||||
animated = 0
|
||||
|
||||
var/bits = word_to_uristrune_bit(word1)
|
||||
var/bits = make_bit_triplet()
|
||||
|
||||
return get_uristrune(bits, animated)
|
||||
|
||||
|
||||
@@ -209,7 +209,6 @@ 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, 3, 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), \
|
||||
|
||||
@@ -139,24 +139,6 @@ obj/structure/door_assembly/multi_tile/Move()
|
||||
bound_width = world.icon_size
|
||||
bound_height = width * world.icon_size
|
||||
|
||||
/obj/structure/door_assembly/door_assembly_cult
|
||||
name = "cult airlock assembly"
|
||||
icon = 'icons/obj/doors/cult_runed.dmi'
|
||||
base_name = "cult"
|
||||
airlock_type = /obj/machinery/door/airlock/cult
|
||||
anchored = 1
|
||||
state = 1
|
||||
|
||||
/obj/structure/door_assembly/door_assembly_cult/glass
|
||||
glass = 1
|
||||
|
||||
/obj/structure/door_assembly/door_assembly_cult/unruned
|
||||
icon = 'icons/obj/doors/cult.dmi'
|
||||
|
||||
/obj/structure/door_assembly/door_assembly_cult/unruned/glass
|
||||
glass = 1
|
||||
|
||||
|
||||
|
||||
/obj/structure/door_assembly/attackby(obj/item/W as obj, mob/user as mob, params)
|
||||
if(istype(W, /obj/item/weapon/pen))
|
||||
|
||||
@@ -12,6 +12,12 @@
|
||||
handle_rotation()
|
||||
return
|
||||
|
||||
/obj/structure/stool/bed/chair/narsie_act()
|
||||
if(prob(20))
|
||||
var/obj/structure/stool/bed/chair/wood/W = new/obj/structure/stool/bed/chair/wood(get_turf(src))
|
||||
W.dir = dir
|
||||
qdel(src)
|
||||
|
||||
/obj/structure/stool/bed/chair/Move(atom/newloc, direct)
|
||||
..()
|
||||
handle_rotation()
|
||||
@@ -70,6 +76,9 @@
|
||||
/obj/structure/stool/bed/chair/wood
|
||||
// TODO: Special ash subtype that looks like charred chair legs
|
||||
|
||||
/obj/structure/stool/bed/chair/wood/narsie_act()
|
||||
return
|
||||
|
||||
/obj/structure/stool/bed/chair/wood/normal
|
||||
icon_state = "wooden_chair"
|
||||
name = "wooden chair"
|
||||
|
||||
@@ -41,6 +41,10 @@
|
||||
density = 0
|
||||
qdel(src)
|
||||
|
||||
/obj/structure/table/narsie_act()
|
||||
if(prob(20))
|
||||
new /obj/structure/table/woodentable(src.loc)
|
||||
|
||||
/obj/structure/table/update_icon()
|
||||
if(smooth && !flipped)
|
||||
icon_state = ""
|
||||
@@ -384,6 +388,10 @@
|
||||
|
||||
return 1
|
||||
|
||||
|
||||
/obj/structure/table/woodentable/narsie_act()
|
||||
return
|
||||
|
||||
/obj/structure/table/woodentable/poker //No specialties, Just a mapping object.
|
||||
name = "gambling table"
|
||||
desc = "A seedy table for seedy dealings in seedy places."
|
||||
@@ -396,6 +404,9 @@
|
||||
new /obj/item/stack/tile/grass(loc)
|
||||
..()
|
||||
|
||||
/obj/structure/table/woodentable/poker/narsie_act()
|
||||
return
|
||||
|
||||
/obj/structure/glasstable_frame
|
||||
name = "glass table frame"
|
||||
desc = "A metal frame for a glass table."
|
||||
|
||||
Reference in New Issue
Block a user