[MIRROR] Cult Fixes and Minor Balance Tweaks (#5913)
* Cult Fixes and Minor Balance Tweaks (#36092) * Fixes and Balance Tweaks * Faster deconversions * Shade nerf * Cult Fixes and Minor Balance Tweaks
This commit is contained in:
committed by
Poojawa
parent
1b98fbe316
commit
64abde83eb
@@ -72,10 +72,10 @@
|
||||
else
|
||||
to_chat(owner, "<span class='cultitalic'>You are already invoking blood magic!")
|
||||
return
|
||||
if(do_after(owner, 100 - rune*65, target = owner))
|
||||
if(do_after(owner, 100 - rune*60, target = owner))
|
||||
if(ishuman(owner))
|
||||
var/mob/living/carbon/human/H = owner
|
||||
H.bleed(30 - rune*25)
|
||||
H.bleed(40 - rune*32)
|
||||
var/datum/action/innate/cult/blood_spell/new_spell = new BS(owner)
|
||||
new_spell.Grant(owner, src)
|
||||
spells += new_spell
|
||||
@@ -177,6 +177,7 @@
|
||||
desc = "<u>A sinister spell used to convert:</u><br>Plasteel into runed metal<br>25 metal into a construct shell<br>Cyborgs directly into constructs<br>Cyborg shells into construct shells<br>Airlocks into runed airlocks (harm intent)"
|
||||
button_icon_state = "transmute"
|
||||
magic_path = "/obj/item/melee/blood_magic/construction"
|
||||
health_cost = 10
|
||||
|
||||
/datum/action/innate/cult/blood_spell/equipment
|
||||
name = "Summon Equipment"
|
||||
@@ -414,7 +415,7 @@
|
||||
target.visible_message("<span class='warning'>[L]'s holy weapon absorbs the light!</span>", \
|
||||
"<span class='userdanger'>Your holy weapon absorbs the blinding light!</span>")
|
||||
else
|
||||
L.Knockdown(180)
|
||||
L.Knockdown(160)
|
||||
L.flash_act(1,1)
|
||||
if(issilicon(target))
|
||||
var/mob/living/silicon/S = L
|
||||
@@ -733,11 +734,11 @@
|
||||
to_chat(user, "<span class='cultitalic'>You decide against conducting a greater blood rite.</span>")
|
||||
return
|
||||
switch(choice)
|
||||
if("Blood Spear (200)")
|
||||
if(uses < 200)
|
||||
if("Blood Spear (150)")
|
||||
if(uses < 150)
|
||||
to_chat(user, "<span class='cultitalic'>You need 200 charges to perform this rite.</span>")
|
||||
else
|
||||
uses -= 200
|
||||
uses -= 150
|
||||
var/turf/T = get_turf(user)
|
||||
qdel(src)
|
||||
var/datum/action/innate/cult/spear/S = new(user)
|
||||
@@ -749,24 +750,24 @@
|
||||
else
|
||||
user.visible_message("<span class='warning'>A [rite.name] appears at [user]'s feet!</span>", \
|
||||
"<span class='cultitalic'>A [rite.name] materializes at your feet.</span>")
|
||||
if("Blood Bolt Barrage (400)")
|
||||
if(uses < 400)
|
||||
if("Blood Bolt Barrage (300)")
|
||||
if(uses < 300)
|
||||
to_chat(user, "<span class='cultitalic'>You need 400 charges to perform this rite.</span>")
|
||||
else
|
||||
var/obj/rite = new /obj/item/gun/ballistic/shotgun/boltaction/enchanted/arcane_barrage/blood()
|
||||
uses -= 400
|
||||
uses -= 300
|
||||
qdel(src)
|
||||
if(user.put_in_hands(rite))
|
||||
to_chat(user, "<span class='cult'><b>Your hands glow with power!</b></span>")
|
||||
else
|
||||
to_chat(user, "<span class='cultitalic'>You need a free hand for this rite!</span>")
|
||||
qdel(rite)
|
||||
if("Blood Beam (600)")
|
||||
if(uses < 600)
|
||||
if("Blood Beam (500)")
|
||||
if(uses < 500)
|
||||
to_chat(user, "<span class='cultitalic'>You need 600 charges to perform this rite.</span>")
|
||||
else
|
||||
var/obj/rite = new /obj/item/blood_beam()
|
||||
uses -= 600
|
||||
uses -= 500
|
||||
qdel(src)
|
||||
if(user.put_in_hands(rite))
|
||||
to_chat(user, "<span class='cultlarge'><b>Your hands glow with POWER OVERWHELMING!!!</b></span>")
|
||||
|
||||
@@ -32,8 +32,6 @@ Runes can either be invoked by one's self or with many different cultists. Each
|
||||
|
||||
var/scribe_delay = 40 //how long the rune takes to create
|
||||
var/scribe_damage = 0.1 //how much damage you take doing it
|
||||
|
||||
var/allow_excess_invokers = FALSE //if we allow excess invokers when being invoked
|
||||
var/invoke_damage = 0 //how much damage invokers take when invoking it
|
||||
var/construct_invoke = TRUE //if constructs can invoke it
|
||||
|
||||
@@ -109,12 +107,9 @@ structure_check() searches for nearby cultist structures required for the invoca
|
||||
/obj/effect/rune/proc/can_invoke(var/mob/living/user=null)
|
||||
//This proc determines if the rune can be invoked at the time. If there are multiple required cultists, it will find all nearby cultists.
|
||||
var/list/invokers = list() //people eligible to invoke the rune
|
||||
var/list/chanters = list() //people who will actually chant the rune when passed to invoke()
|
||||
if(user)
|
||||
chanters += user
|
||||
invokers += user
|
||||
|
||||
if(req_cultists > 1 || allow_excess_invokers)
|
||||
if(req_cultists > 1 || istype(src, /obj/effect/rune/convert))
|
||||
var/list/things_in_range = range(1, src)
|
||||
var/obj/item/toy/plush/narplush/plushsie = locate() in things_in_range
|
||||
if(istype(plushsie) && plushsie.is_invoker)
|
||||
@@ -130,17 +125,7 @@ structure_check() searches for nearby cultist structures required for the invoca
|
||||
if(L.stat)
|
||||
continue
|
||||
invokers += L
|
||||
if(allow_excess_invokers)
|
||||
chanters += invokers
|
||||
else
|
||||
shuffle_inplace(invokers)
|
||||
for(var/i in 1 to req_cultists)
|
||||
var/C = pick_n_take(invokers)
|
||||
if(!C)
|
||||
break
|
||||
if(C != user)
|
||||
chanters += C
|
||||
return chanters
|
||||
return invokers
|
||||
|
||||
/obj/effect/rune/proc/invoke(var/list/invokers)
|
||||
//This proc contains the effects of the rune as well as things that happen afterwards. If you want it to spawn an object and then delete itself, have both here.
|
||||
@@ -160,9 +145,9 @@ structure_check() searches for nearby cultist structures required for the invoca
|
||||
/obj/effect/rune/proc/do_invoke_glow()
|
||||
set waitfor = FALSE
|
||||
var/oldtransform = transform
|
||||
animate(src, transform = matrix()*2, alpha = 0, time = 5) //fade out
|
||||
animate(src, transform = matrix()*2, alpha = 0, time = 5, flags = ANIMATION_END_NOW) //fade out
|
||||
sleep(5)
|
||||
animate(src, transform = oldtransform, alpha = 255, time = 0)
|
||||
animate(src, transform = oldtransform, alpha = 255, time = 0, flags = ANIMATION_END_NOW)
|
||||
|
||||
/obj/effect/rune/proc/fail_invoke()
|
||||
//This proc contains the effects of a rune if it is not invoked correctly, through either invalid wording or not enough cultists. By default, it's just a basic fizzle.
|
||||
@@ -197,7 +182,6 @@ structure_check() searches for nearby cultist structures required for the invoca
|
||||
icon_state = "3"
|
||||
color = RUNE_COLOR_OFFER
|
||||
req_cultists = 1
|
||||
allow_excess_invokers = TRUE
|
||||
rune_in_use = FALSE
|
||||
|
||||
/obj/effect/rune/convert/do_invoke_glow()
|
||||
@@ -247,7 +231,7 @@ structure_check() searches for nearby cultist structures required for the invoca
|
||||
/obj/effect/rune/convert/proc/do_convert(mob/living/convertee, list/invokers)
|
||||
if(invokers.len < 2)
|
||||
for(var/M in invokers)
|
||||
to_chat(M, "<span class='warning'>You need more invokers to convert [convertee]!</span>")
|
||||
to_chat(M, "<span class='danger'>You need at least two invokers to convert [convertee]!</span>")
|
||||
log_game("Offer rune failed - tried conversion with one invoker")
|
||||
return 0
|
||||
if(convertee.anti_magic_check(TRUE, TRUE))
|
||||
@@ -938,7 +922,6 @@ structure_check() searches for nearby cultist structures required for the invoca
|
||||
icon_state = "apoc"
|
||||
pixel_x = -32
|
||||
pixel_y = -32
|
||||
allow_excess_invokers = TRUE
|
||||
color = RUNE_COLOR_DARKRED
|
||||
req_cultists = 3
|
||||
scribe_delay = 100
|
||||
|
||||
Reference in New Issue
Block a user