mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-21 12:08:55 +01:00
Geis is more reliable early on (#23334)
* Geis is more reliable early on * mmm * better * ' -> " * indicator * cheat * a true buff
This commit is contained in:
@@ -131,9 +131,10 @@
|
||||
|
||||
/datum/clockwork_scripture/ranged_ability/geis_prep/run_scripture()
|
||||
var/servants = 0
|
||||
for(var/mob/living/M in living_mob_list)
|
||||
if(is_servant_of_ratvar(M) && (ishuman(M) || issilicon(M)))
|
||||
servants++
|
||||
if(!ratvar_awakens)
|
||||
for(var/mob/living/M in all_clockwork_mobs)
|
||||
if(ishuman(M) || issilicon(M))
|
||||
servants++
|
||||
if(servants > SCRIPT_SERVANT_REQ)
|
||||
whispered = FALSE
|
||||
servants -= SCRIPT_SERVANT_REQ
|
||||
@@ -161,15 +162,17 @@
|
||||
|
||||
/datum/clockwork_scripture/geis/run_scripture()
|
||||
var/servants = 0
|
||||
for(var/mob/living/M in living_mob_list)
|
||||
if(is_servant_of_ratvar(M) && (ishuman(M) || issilicon(M)))
|
||||
servants++
|
||||
if(servants > SCRIPT_SERVANT_REQ)
|
||||
servants -= SCRIPT_SERVANT_REQ
|
||||
channel_time = min(channel_time + servants*7, 120)
|
||||
if(!ratvar_awakens)
|
||||
for(var/mob/living/M in all_clockwork_mobs)
|
||||
if(ishuman(M) || issilicon(M))
|
||||
servants++
|
||||
if(target.buckled)
|
||||
target.buckled.unbuckle_mob(target, TRUE)
|
||||
binding = new(get_turf(target))
|
||||
if(servants > SCRIPT_SERVANT_REQ)
|
||||
servants -= SCRIPT_SERVANT_REQ
|
||||
channel_time = min(channel_time + servants*7, 120)
|
||||
binding.can_resist = TRUE
|
||||
binding.setDir(target.dir)
|
||||
binding.buckle_mob(target, TRUE)
|
||||
return ..()
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
buckle_lying = 0
|
||||
buckle_prevents_pull = TRUE
|
||||
var/resisting = FALSE
|
||||
var/can_resist = FALSE
|
||||
var/mob_layer = MOB_LAYER
|
||||
|
||||
/obj/structure/destructible/clockwork/geis_binding/examine(mob/user)
|
||||
@@ -30,6 +31,7 @@
|
||||
qdel(src)
|
||||
|
||||
/obj/structure/destructible/clockwork/geis_binding/post_buckle_mob(mob/living/M)
|
||||
..()
|
||||
if(M.buckled == src)
|
||||
desc = "A flickering, glowing purple ring around [M]."
|
||||
clockwork_desc = "A binding ring around [M], preventing [M.p_them()] from taking action while [M.p_theyre()] being converted."
|
||||
@@ -45,7 +47,9 @@
|
||||
M.put_in_hands(B, i)
|
||||
M.regenerate_icons()
|
||||
M.visible_message("<span class='warning'>A [name] appears around [M]!</span>", \
|
||||
"<span class='warning'>A [name] appears around you!</span>\n<span class='userdanger'>Resist!</span>")
|
||||
"<span class='warning'>A [name] appears around you!</span>[can_resist ? "\n<span class='userdanger'>Resist!</span>":""]")
|
||||
if(!can_resist)
|
||||
repair_and_interrupt()
|
||||
else
|
||||
var/obj/effect/overlay/temp/ratvar/geis_binding/G = new /obj/effect/overlay/temp/ratvar/geis_binding(M.loc)
|
||||
var/obj/effect/overlay/temp/ratvar/geis_binding/T = new /obj/effect/overlay/temp/ratvar/geis_binding/top(M.loc)
|
||||
@@ -60,7 +64,7 @@
|
||||
M.unEquip(GB, TRUE)
|
||||
|
||||
/obj/structure/destructible/clockwork/geis_binding/relaymove(mob/user, direction)
|
||||
if(isliving(user))
|
||||
if(isliving(user) && can_resist)
|
||||
var/mob/living/L = user
|
||||
L.resist()
|
||||
|
||||
@@ -82,6 +86,9 @@
|
||||
var/mob/living/L = m
|
||||
if(L)
|
||||
L.Stun(1, 1, 1)
|
||||
if(iscarbon(L))
|
||||
var/mob/living/carbon/C = L
|
||||
C.silent += 4
|
||||
visible_message("<span class='sevtug'>[src] flares brightly!</span>")
|
||||
var/obj/effect/overlay/temp/ratvar/geis_binding/G1 = new /obj/effect/overlay/temp/ratvar/geis_binding(loc)
|
||||
var/obj/effect/overlay/temp/ratvar/geis_binding/G2 = new /obj/effect/overlay/temp/ratvar/geis_binding(loc)
|
||||
@@ -98,7 +105,7 @@
|
||||
|
||||
/obj/structure/destructible/clockwork/geis_binding/user_unbuckle_mob(mob/living/buckled_mob, mob/user)
|
||||
if(buckled_mob == user)
|
||||
if(!resisting)
|
||||
if(!resisting && can_resist)
|
||||
resisting = TRUE
|
||||
user.visible_message("<span class='warning'>[user] starts struggling against [src]...</span>", "<span class='userdanger'>You start breaking out of [src]...</span>")
|
||||
while(do_after(user, 10, target = src) && resisting && obj_integrity)
|
||||
@@ -114,10 +121,10 @@
|
||||
/obj/item/geis_binding
|
||||
name = "glowing ring"
|
||||
desc = "A flickering ring preventing you from holding items."
|
||||
force = 0
|
||||
icon = 'icons/effects/clockwork_effects.dmi'
|
||||
icon_state = "geisbinding_full"
|
||||
flags = NODROP|ABSTRACT|DROPDEL|NOBLUDGEON
|
||||
flags = NODROP|ABSTRACT|DROPDEL
|
||||
|
||||
/obj/item/geis_binding/afterattack(atom/target, mob/living/user, proximity_flag, params)
|
||||
/obj/item/geis_binding/pre_attackby(atom/target, mob/living/user, params)
|
||||
user.resist()
|
||||
return FALSE
|
||||
|
||||
Reference in New Issue
Block a user