mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-22 04:30:44 +01:00
Cult Overhaul
Cult is awful, so let's try to improve it. Idea by KorPhaeron. I also took some inspiration from adrix89's sacrifice cult, so credits to him. Also thanks a lot specially to MrPerson and Iamgoofball for helping me brainstorm this, and Joan for the sprites for the summoning orb, the large nar-sie shell, and the new cult antag hud. Basically, we remove conversion, and turn cult into a magic version of nuke, with a small team of stealth elite cultists that have to build a base in the station and sacrifice people in order to build an army of constructs and get materials to eventually summon Nar-Sie. Stun talismans and conversion are gone. Nar-Sie is now the only objective. Sacrifice runes now provide summoning orbs, which you can use to drop a large shell. Insert enough orbs in the shell and you trigger a Delta. Defend the shell for 3 minutes and Nar-sie will arise. This shell is bombproof and singularityproof. It may be summoned up to three times if destroyed, but you will have to start from the beginning sac-wise. Runes are now RNG. Each cultist only gets 50% of the runes. Inspiration is basically The Binding of Isaac here (thank you MrPerson for this!). Furthermore, many old runes were merged/removed and other new ones were added. Almost all were massively rebalanced. Cult now also has a stealthy ritual dagger with high bleeding and throw effects.
This commit is contained in:
@@ -310,97 +310,6 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that
|
||||
else
|
||||
alert("Invalid mob")
|
||||
|
||||
/*
|
||||
/client/proc/cmd_admin_monkeyize(var/mob/M in world)
|
||||
set category = "Fun"
|
||||
set name = "Make Monkey"
|
||||
|
||||
if(!ticker)
|
||||
alert("Wait until the game starts")
|
||||
return
|
||||
if(istype(M, /mob/living/carbon/human))
|
||||
var/mob/living/carbon/human/target = M
|
||||
log_admin("[key_name(src)] is attempting to monkeyize [M.key].")
|
||||
spawn(10)
|
||||
target.monkeyize()
|
||||
else
|
||||
alert("Invalid mob")
|
||||
|
||||
/client/proc/cmd_admin_changelinginize(var/mob/M in world)
|
||||
set category = "Fun"
|
||||
set name = "Make Changeling"
|
||||
|
||||
if(!ticker)
|
||||
alert("Wait until the game starts")
|
||||
return
|
||||
if(istype(M, /mob/living/carbon/human))
|
||||
log_admin("[key_name(src)] has made [M.key] a changeling.")
|
||||
spawn(10)
|
||||
M.absorbed_dna[M.real_name] = M.dna
|
||||
M.make_changeling()
|
||||
if(M.mind)
|
||||
M.mind.special_role = "Changeling"
|
||||
else
|
||||
alert("Invalid mob")
|
||||
*/
|
||||
/*
|
||||
/client/proc/cmd_admin_abominize(var/mob/M in world)
|
||||
set category = null
|
||||
set name = "Make Abomination"
|
||||
|
||||
usr << "Ruby Mode disabled. Command aborted."
|
||||
return
|
||||
if(!ticker)
|
||||
alert("Wait until the game starts.")
|
||||
return
|
||||
if(istype(M, /mob/living/carbon/human))
|
||||
log_admin("[key_name(src)] has made [M.key] an abomination.")
|
||||
|
||||
// spawn(10)
|
||||
// M.make_abomination()
|
||||
|
||||
*/
|
||||
/*
|
||||
/client/proc/make_cultist(var/mob/M in world)
|
||||
set category = "Fun"
|
||||
set name = "Make Cultist"
|
||||
set desc = "Makes target a cultist"
|
||||
if(!wordtravel)
|
||||
runerandom()
|
||||
if(M)
|
||||
if(M.mind in ticker.mode.cult)
|
||||
return
|
||||
else
|
||||
if(alert("Spawn that person a tome?",,"Yes","No")=="Yes")
|
||||
M << "\red You catch a glimpse of the Realm of Nar-Sie, The Geometer of Blood. You now see how flimsy the world is, you see that it should be open to the knowledge of Nar-Sie. A tome, a message from your new master, appears on the ground."
|
||||
new /obj/item/weapon/tome(M.loc)
|
||||
else
|
||||
M << "\red You catch a glimpse of the Realm of Nar-Sie, The Geometer of Blood. You now see how flimsy the world is, you see that it should be open to the knowledge of Nar-Sie."
|
||||
var/glimpse=pick("1","2","3","4","5","6","7","8")
|
||||
switch(glimpse)
|
||||
if("1")
|
||||
M << "\red You remembered one thing from the glimpse... [wordtravel] is travel..."
|
||||
if("2")
|
||||
M << "\red You remembered one thing from the glimpse... [wordblood] is blood..."
|
||||
if("3")
|
||||
M << "\red You remembered one thing from the glimpse... [wordjoin] is join..."
|
||||
if("4")
|
||||
M << "\red You remembered one thing from the glimpse... [wordhell] is Hell..."
|
||||
if("5")
|
||||
M << "\red You remembered one thing from the glimpse... [worddestr] is destroy..."
|
||||
if("6")
|
||||
M << "\red You remembered one thing from the glimpse... [wordtech] is technology..."
|
||||
if("7")
|
||||
M << "\red You remembered one thing from the glimpse... [wordself] is self..."
|
||||
if("8")
|
||||
M << "\red You remembered one thing from the glimpse... [wordsee] is see..."
|
||||
|
||||
if(M.mind)
|
||||
M.mind.special_role = "Cultist"
|
||||
ticker.mode.cult += M.mind
|
||||
src << "Made [M] a cultist."
|
||||
*/
|
||||
|
||||
var/list/TYPES_SHORTCUTS = list(
|
||||
/obj/effect/decal/cleanable = "CLEANABLE",
|
||||
/obj/item/device/radio/headset = "HEADSET",
|
||||
|
||||
@@ -194,7 +194,6 @@
|
||||
|
||||
|
||||
/datum/admins/proc/makeCult()
|
||||
|
||||
var/datum/game_mode/cult/temp = new
|
||||
if(config.protect_roles_from_antagonist)
|
||||
temp.restricted_jobs += temp.protected_jobs
|
||||
@@ -216,7 +215,7 @@
|
||||
candidates += applicant
|
||||
|
||||
if(candidates.len)
|
||||
var/numCultists = min(candidates.len, 4)
|
||||
var/numCultists = min(candidates.len, 5)
|
||||
|
||||
for(var/i = 0, i<numCultists, i++)
|
||||
H = pick(candidates)
|
||||
|
||||
@@ -18,12 +18,12 @@ obj/effect/dummy/slaughter/relaymove(mob/user, direction)
|
||||
spawn(1)
|
||||
src.canmove = 1
|
||||
|
||||
/obj/effect/dummy/slaughter/ex_act(blah)
|
||||
/obj/effect/dummy/slaughter/ex_act()
|
||||
return
|
||||
/obj/effect/dummy/slaughter/bullet_act(blah)
|
||||
/obj/effect/dummy/slaughter/bullet_act()
|
||||
return
|
||||
|
||||
/obj/effect/dummy/slaughter/singularity_act(blah)
|
||||
/obj/effect/dummy/slaughter/singularity_act()
|
||||
return
|
||||
|
||||
/obj/effect/dummy/slaughter/Destroy()
|
||||
|
||||
@@ -684,9 +684,6 @@
|
||||
var/see_temp = H.see_invisible
|
||||
H.see_invisible = invis_sight
|
||||
|
||||
if(H.seer)
|
||||
H.see_invisible = SEE_INVISIBLE_OBSERVER
|
||||
|
||||
if(H.glasses)
|
||||
if(istype(H.glasses, /obj/item/clothing/glasses))
|
||||
var/obj/item/clothing/glasses/G = H.glasses
|
||||
|
||||
@@ -87,7 +87,6 @@
|
||||
var/obj/item/r_hand = null//Living
|
||||
var/obj/item/weapon/storage/s_active = null//Carbon
|
||||
|
||||
var/seer = 0 //for cult//Carbon, probably Human
|
||||
var/see_override = 0 //0 for no override, sets see_invisible = see_override in mob life process
|
||||
|
||||
var/datum/hud/hud_used = null
|
||||
|
||||
@@ -54,10 +54,6 @@
|
||||
var/datum/asset/assets = get_asset_datum(/datum/asset/simple/paper)
|
||||
assets.send(user)
|
||||
|
||||
if(istype(src, /obj/item/weapon/paper/talisman)) //Talismans cannot be read
|
||||
if(!iscultist(user) && !user.stat)
|
||||
user << "<span class='danger'>There are indecipherable images scrawled on the paper in what looks to be... <i>blood?</i></span>"
|
||||
return
|
||||
if(in_range(user, src) || isobserver(user))
|
||||
if( !(ishuman(user) || isobserver(user) || issilicon(user)) )
|
||||
user << browse("<HTML><HEAD><TITLE>[name]</TITLE></HEAD><BODY>[stars(info)]<HR>[stamps]</BODY></HTML>", "window=[name]")
|
||||
|
||||
@@ -61,7 +61,7 @@
|
||||
return
|
||||
|
||||
/obj/singularity/narsie/proc/godsmack(atom/A)
|
||||
if(istype(A,/obj/))
|
||||
if(isobj(A))
|
||||
var/obj/O = A
|
||||
O.ex_act(1)
|
||||
if(O) qdel(O)
|
||||
|
||||
@@ -246,7 +246,7 @@
|
||||
|
||||
|
||||
/obj/singularity/proc/consume(atom/A)
|
||||
var/gain = A.singularity_act(current_size)
|
||||
var/gain = A.singularity_act(current_size, src)
|
||||
src.energy += gain
|
||||
if(istype(A, /obj/machinery/power/supermatter_shard) && !consumedSupermatter)
|
||||
desc = "[initial(desc)] It glows fiercely with inner fire."
|
||||
|
||||
@@ -183,13 +183,10 @@
|
||||
if (!M.stuttering) M.stuttering = 1
|
||||
M.stuttering += 4
|
||||
M.Dizzy(5)
|
||||
if(iscultist(M) && prob(5))
|
||||
M.say(pick("Av'te Nar'sie","Pa'lid Mors","INO INO ORA ANA","SAT ANA!","Daim'niodeis Arc'iai Le'eones","Egkau'haom'nai en Chaous","Ho Diak'nos tou Ap'iron","R'ge Na'sie","Diabo us Vo'iscum","Si gn'um Co'nu"))
|
||||
if(data >= 75 && prob(33)) // 30 units, 135 seconds
|
||||
if (!M.confused) M.confused = 1
|
||||
M.confused += 3
|
||||
if(iscultist(M) || (is_handofgod_cultist(M) && !is_handofgod_prophet(M)))
|
||||
ticker.mode.remove_cultist(M.mind)
|
||||
if((is_handofgod_cultist(M) && !is_handofgod_prophet(M)))
|
||||
ticker.mode.remove_hog_follower(M.mind)
|
||||
holder.remove_reagent(src.id, src.volume) // maybe this is a little too perfect and a max() cap on the statuses would be better??
|
||||
M.jitteriness = 0
|
||||
|
||||
Reference in New Issue
Block a user