[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:
CitadelStationBot
2018-03-12 07:01:54 -05:00
committed by Poojawa
parent 1b98fbe316
commit 64abde83eb
7 changed files with 47 additions and 45 deletions
+13 -12
View File
@@ -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>")
+5 -22
View File
@@ -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