mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-20 02:27:36 +01:00
[Ready] Refactors stuns and status effects. (#17579)
* Fixes reviver runtime * Confusion status effect * Dizzy status effect * Drowsiness status effect * decaying -> transient * Drunkenness status effect * why use timer when SSfastprocessing work good * stuns (mostly) * weaken and immobalise * stun/weaken times * update_flags redundancies. * Slowed() * Silence + fixes transient decay * Jittery * sleeping * Paralyze -> weaken * Cult sluring * paralyse * Stammer * slurring + projectile cleanups * losebreath * Hallucination * forgor this * eyeblurry * eye blind * Druggy * affected didn't like my spacing * review pass * second review pass * some cleanups * documentation and signal framework * confusion fix * Fixes spec_stun * rejuv fix * removes a TODO * conflicted myself * fixes * self review * review * removes TODOs * adminfreeze * TM fixes * hallucination fix + others * tones down alchol and runtime fixes * confusion overlay suggestion * more fixes * runtime fix * losebreath fix * clamp => directional bounded sum * steel review * oops Co-authored-by: SteelSlayer <42044220+SteelSlayer@users.noreply.github.com> * reduces the dizziness cycle rate * borg hotfix * sanctified decursening Co-authored-by: mochi <1496804+dearmochi@users.noreply.github.com> Co-authored-by: SteelSlayer <42044220+SteelSlayer@users.noreply.github.com>
This commit is contained in:
co-authored by
SteelSlayer
mochi
parent
b32fb92770
commit
0f7a8707ef
@@ -60,7 +60,7 @@
|
||||
for(var/obj/item/grab/G in user.grabbed_by)
|
||||
var/mob/living/carbon/M = G.assailant
|
||||
user.visible_message("<span class='warning'>[user] spits acid at [M]'s face and slips out of their grab!</span>")
|
||||
M.Stun(1) //Drops the grab
|
||||
M.Stun(2 SECONDS) //Drops the grab
|
||||
M.apply_damage(5, BURN, "head", M.run_armor_check("head", "melee"))
|
||||
user.SetStunned(0) //This only triggers if they are grabbed, to have them break out of the grab, without the large stun time. If you use biodegrade as an antistun without being grabbed, it will not work
|
||||
user.SetWeakened(0)
|
||||
|
||||
@@ -22,15 +22,15 @@
|
||||
explosion(get_turf(user),0,0,2,0,silent=1)
|
||||
for(var/mob/living/carbon/human/H in range(2,user))
|
||||
to_chat(H, "<span class='userdanger'>You are blinded by a shower of blood!</span>")
|
||||
H.Stun(1)
|
||||
H.EyeBlurry(20)
|
||||
H.Stun(2 SECONDS)
|
||||
H.EyeBlurry(40 SECONDS)
|
||||
var/obj/item/organ/internal/eyes/E = H.get_int_organ(/obj/item/organ/internal/eyes)
|
||||
if(istype(E))
|
||||
E.receive_damage(5, 1)
|
||||
H.AdjustConfused(3)
|
||||
H.AdjustConfused(6 SECONDS)
|
||||
for(var/mob/living/silicon/S in range(2,user))
|
||||
to_chat(S, "<span class='userdanger'>Your sensors are disabled by a shower of blood!</span>")
|
||||
S.Weaken(3)
|
||||
S.Weaken(6 SECONDS)
|
||||
var/new_location = user.drop_location()
|
||||
spawn(5) // So it's not killed in explosion
|
||||
var/mob/living/simple_animal/hostile/headslug/crab = new(new_location)
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
for(var/obj/item/grab/G in user.grabbed_by)
|
||||
var/mob/living/carbon/M = G.assailant
|
||||
user.visible_message("<span class='warning'>[user] suddenly hits [M] in the face and slips out of their grab!</span>")
|
||||
M.Stun(1) //Drops the grab
|
||||
M.Stun(2 SECONDS) //Drops the grab
|
||||
M.apply_damage(5, BRUTE, "head", M.run_armor_check("head", "melee"))
|
||||
playsound(user.loc, 'sound/weapons/punch1.ogg', 25, 1, -1)
|
||||
user.revive()
|
||||
|
||||
@@ -17,14 +17,14 @@
|
||||
continue
|
||||
if(!M.mind || !M.mind.changeling)
|
||||
M.AdjustEarDamage(0, 30)
|
||||
M.AdjustConfused(20)
|
||||
M.Jitter(50)
|
||||
M.AdjustConfused(40 SECONDS)
|
||||
M.Jitter(100 SECONDS)
|
||||
else
|
||||
SEND_SOUND(M, sound('sound/effects/screech.ogg'))
|
||||
|
||||
if(issilicon(M))
|
||||
SEND_SOUND(M, sound('sound/weapons/flash.ogg'))
|
||||
M.Weaken(rand(5,10))
|
||||
M.Weaken(rand(10 SECONDS, 20 SECONDS))
|
||||
|
||||
for(var/obj/machinery/light/L in range(4, user))
|
||||
L.on = 1
|
||||
|
||||
@@ -35,8 +35,8 @@
|
||||
var/datum/changeling/changeling = user.mind.changeling
|
||||
|
||||
to_chat(user, "<span class='notice'>We tighten our grip. We must hold still....</span>")
|
||||
target.do_jitter_animation(500)
|
||||
user.do_jitter_animation(500)
|
||||
target.Jitter(1000 SECONDS)
|
||||
user.Jitter(1000 SECONDS)
|
||||
|
||||
if(!do_mob(user, target, 10 SECONDS))
|
||||
to_chat(user, "<span class='warning'>The body swap has been interrupted!</span>")
|
||||
@@ -62,7 +62,7 @@
|
||||
GLOB.non_respawnable_keys -= ghost.ckey //they have a new body, let them be able to re-enter their corpse if they die
|
||||
user.key = ghost.key
|
||||
qdel(ghost)
|
||||
user.Paralyse(2)
|
||||
user.Paralyse(4 SECONDS)
|
||||
target.add_language("Changeling")
|
||||
user.remove_language("Changeling")
|
||||
user.regenerate_icons()
|
||||
|
||||
@@ -97,7 +97,7 @@
|
||||
|
||||
/datum/action/changeling/sting/mute/sting_action(mob/user, mob/living/carbon/target)
|
||||
add_attack_logs(user, target, "Mute sting (changeling)")
|
||||
target.AdjustSilence(30)
|
||||
target.AdjustSilence(60 SECONDS)
|
||||
SSblackbox.record_feedback("nested tally", "changeling_powers", 1, list("[name]"))
|
||||
return 1
|
||||
|
||||
@@ -114,8 +114,8 @@
|
||||
add_attack_logs(user, target, "Blind sting (changeling)")
|
||||
to_chat(target, "<span class='danger'>Your eyes burn horrifically!</span>")
|
||||
target.become_nearsighted(EYE_DAMAGE)
|
||||
target.EyeBlind(20)
|
||||
target.EyeBlurry(40)
|
||||
target.EyeBlind(40 SECONDS)
|
||||
target.EyeBlurry(80 SECONDS)
|
||||
SSblackbox.record_feedback("nested tally", "changeling_powers", 1, list("[name]"))
|
||||
return 1
|
||||
|
||||
@@ -132,7 +132,7 @@
|
||||
add_attack_logs(user, target, "LSD sting (changeling)")
|
||||
spawn(rand(300,600))
|
||||
if(target)
|
||||
target.Hallucinate(400)
|
||||
target.Hallucinate(400 SECONDS)
|
||||
SSblackbox.record_feedback("nested tally", "changeling_powers", 1, list("[name]"))
|
||||
return 1
|
||||
|
||||
|
||||
@@ -292,7 +292,7 @@
|
||||
if(!ishuman(target) || iscultist(target))
|
||||
return
|
||||
var/mob/living/carbon/human/H = target
|
||||
H.hallucination = max(H.hallucination, 120)
|
||||
H.Hallucinate(120 SECONDS)
|
||||
attached_action.charges--
|
||||
attached_action.desc = attached_action.base_desc
|
||||
attached_action.desc += "<br><b><u>Has [attached_action.charges] use\s remaining</u></b>."
|
||||
@@ -447,18 +447,17 @@
|
||||
else
|
||||
to_chat(user, "<span class='cultitalic'>In a brilliant flash of red, [L] falls to the ground!</span>")
|
||||
// These are in life cycles, so double the time that's stated.
|
||||
L.Weaken(5)
|
||||
L.Stun(5)
|
||||
L.Weaken(10 SECONDS)
|
||||
L.flash_eyes(1, TRUE)
|
||||
if(issilicon(target))
|
||||
var/mob/living/silicon/S = L
|
||||
S.emp_act(EMP_HEAVY)
|
||||
else if(iscarbon(target))
|
||||
var/mob/living/carbon/C = L
|
||||
C.Silence(3)
|
||||
C.Stuttering(8)
|
||||
C.CultSlur(10)
|
||||
C.Jitter(8)
|
||||
C.Silence(6 SECONDS)
|
||||
C.Stuttering(16 SECONDS)
|
||||
C.CultSlur(20 SECONDS)
|
||||
C.Jitter(16 SECONDS)
|
||||
uses--
|
||||
..()
|
||||
|
||||
@@ -558,7 +557,7 @@
|
||||
if(!C.handcuffed)
|
||||
C.handcuffed = new /obj/item/restraints/handcuffs/energy/cult/used(C)
|
||||
C.update_handcuffed()
|
||||
C.Silence(6)
|
||||
C.Silence(12 SECONDS)
|
||||
to_chat(user, "<span class='notice'>You shackle [C].</span>")
|
||||
add_attack_logs(user, C, "shackled")
|
||||
uses--
|
||||
@@ -796,7 +795,7 @@
|
||||
if(H.stat == DEAD)
|
||||
to_chat(user, "<span class='warning'>[H.p_their(TRUE)] blood has stopped flowing, you'll have to find another way to extract it.</span>")
|
||||
return
|
||||
if(H.cultslurring)
|
||||
if(H.AmountCultSlurring())
|
||||
to_chat(user, "<span class='danger'>[H.p_their(TRUE)] blood has been tainted by an even stronger form of blood magic, it's no use to us like this!</span>")
|
||||
return
|
||||
if(H.dna && !(NO_BLOOD in H.dna.species.species_traits) && H.dna.species.exotic_blood == null)
|
||||
|
||||
@@ -36,7 +36,7 @@
|
||||
|
||||
/obj/item/melee/cultblade/attack(mob/living/target, mob/living/carbon/human/user)
|
||||
if(!iscultist(user))
|
||||
user.Weaken(5)
|
||||
user.Weaken(10 SECONDS)
|
||||
user.unEquip(src, 1)
|
||||
user.visible_message("<span class='warning'>A powerful force shoves [user] away from [target]!</span>",
|
||||
"<span class='cultlarge'>\"You shouldn't play with sharp things. You'll poke someone's eye out.\"</span>")
|
||||
@@ -53,8 +53,8 @@
|
||||
if(!iscultist(user))
|
||||
to_chat(user, "<span class='cultlarge'>\"I wouldn't advise that.\"</span>")
|
||||
to_chat(user, "<span class='warning'>An overwhelming sense of nausea overpowers you!</span>")
|
||||
user.Confused(10)
|
||||
user.Jitter(6)
|
||||
user.Confused(20 SECONDS)
|
||||
user.Jitter(12 SECONDS)
|
||||
|
||||
if(HAS_TRAIT(user, TRAIT_HULK))
|
||||
to_chat(user, "<span class='danger'>You can't seem to hold the blade properly!</span>")
|
||||
@@ -67,7 +67,7 @@
|
||||
icon_state = "bola_cult"
|
||||
item_state = "bola_cult"
|
||||
breakouttime = 45
|
||||
weaken = 1
|
||||
weaken = 2 SECONDS
|
||||
|
||||
/obj/item/restraints/legcuffs/bola/cult/throw_impact(atom/hit_atom, datum/thrownthing/throwingdatum)
|
||||
if(iscultist(hit_atom))
|
||||
@@ -159,8 +159,8 @@
|
||||
to_chat(user, "<span class='cultlarge'>\"I wouldn't advise that.\"</span>")
|
||||
to_chat(user, "<span class='warning'>An overwhelming sense of nausea overpowers you!</span>")
|
||||
user.unEquip(src, 1)
|
||||
user.Confused(10)
|
||||
user.Weaken(5)
|
||||
user.Confused(20 SECONDS)
|
||||
user.Weaken(10 SECONDS)
|
||||
|
||||
/obj/item/clothing/suit/hooded/cultrobes/cult_shield/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK)
|
||||
if(current_charges && !owner.holy_check())
|
||||
@@ -205,8 +205,8 @@
|
||||
to_chat(user, "<span class='cultlarge'>\"I wouldn't advise that.\"</span>")
|
||||
to_chat(user, "<span class='warning'>An overwhelming sense of nausea overpowers you!</span>")
|
||||
user.unEquip(src, 1)
|
||||
user.Confused(10)
|
||||
user.Weaken(5)
|
||||
user.Confused(20 SECONDS)
|
||||
user.Weaken(10 SECONDS)
|
||||
else if(slot == slot_wear_suit)
|
||||
ADD_TRAIT(user, TRAIT_GOTTAGOFAST, "cultrobes")
|
||||
|
||||
@@ -266,14 +266,14 @@
|
||||
prescription = TRUE
|
||||
origin_tech = null
|
||||
|
||||
/obj/item/clothing/glasses/hud/health/night/cultblind/equipped(mob/user, slot)
|
||||
/obj/item/clothing/glasses/hud/health/night/cultblind/equipped(mob/living/user, slot)
|
||||
..()
|
||||
if(!iscultist(user))
|
||||
to_chat(user, "<span class='cultlarge'>\"You want to be blind, do you?\"</span>")
|
||||
user.unEquip(src, 1)
|
||||
user.Confused(30)
|
||||
user.Weaken(5)
|
||||
user.EyeBlind(30)
|
||||
user.Confused(60 SECONDS)
|
||||
user.Weaken(10 SECONDS)
|
||||
user.EyeBlind(60 SECONDS)
|
||||
|
||||
/obj/item/shuttle_curse
|
||||
name = "cursed orb"
|
||||
@@ -282,10 +282,10 @@
|
||||
icon_state ="shuttlecurse"
|
||||
var/global/curselimit = 0
|
||||
|
||||
/obj/item/shuttle_curse/attack_self(mob/user)
|
||||
/obj/item/shuttle_curse/attack_self(mob/living/user)
|
||||
if(!iscultist(user))
|
||||
user.unEquip(src, 1)
|
||||
user.Weaken(5)
|
||||
user.Weaken(10 SECONDS)
|
||||
to_chat(user, "<span class='warning'>A powerful force shoves you away from [src]!</span>")
|
||||
return
|
||||
if(curselimit > 1)
|
||||
@@ -476,7 +476,7 @@
|
||||
T.visible_message("<span class='warning'>The sheer force from [P] shatters the mirror shield!</span>")
|
||||
new /obj/effect/temp_visual/cult/sparks(T)
|
||||
playsound(T, 'sound/effects/glassbr3.ogg', 100)
|
||||
owner.Weaken(3)
|
||||
owner.Weaken(6 SECONDS)
|
||||
qdel(src)
|
||||
return FALSE
|
||||
|
||||
@@ -576,7 +576,7 @@
|
||||
L.visible_message("<span class='warning'>[src] bounces off of [L], as if repelled by an unseen force!</span>")
|
||||
else if(!..())
|
||||
if(!L.null_rod_check())
|
||||
L.Weaken(3)
|
||||
L.Weaken(6 SECONDS)
|
||||
break_spear(T)
|
||||
else
|
||||
..()
|
||||
@@ -703,9 +703,9 @@
|
||||
var/mob/living/carbon/M = user
|
||||
to_chat(M, "<span class='cultlarge'>\"So, you want to explore space?\"</span>")
|
||||
to_chat(M, "<span class='warning'>Space flashes around you as you are moved somewhere else!</span>")
|
||||
M.Confused(10)
|
||||
M.Confused(20 SECONDS)
|
||||
M.flash_eyes(override_blindness_check = TRUE)
|
||||
M.EyeBlind(10)
|
||||
M.EyeBlind(20 SECONDS)
|
||||
do_teleport(M, get_turf(M), 5, asoundin = 'sound/magic/cult_spell.ogg')
|
||||
qdel(src)
|
||||
return
|
||||
|
||||
@@ -351,7 +351,7 @@ structure_check() searches for nearby cultist structures required for the invoca
|
||||
crit.cure()
|
||||
|
||||
H.uncuff()
|
||||
H.Silence(3) //Prevent "HALP MAINT CULT" before you realise you're converted
|
||||
H.Silence(6 SECONDS) //Prevent "HALP MAINT CULT" before you realise you're converted
|
||||
|
||||
var/obj/item/melee/cultblade/dagger/D = new(get_turf(src))
|
||||
if(H.equip_to_slot_if_possible(D, slot_in_backpack, FALSE, TRUE))
|
||||
@@ -956,7 +956,7 @@ structure_check() searches for nearby cultist structures required for the invoca
|
||||
if(user.key || QDELETED(src))
|
||||
user.visible_message("<span class='warning'>[user] slowly relaxes, the glow around [user.p_them()] dimming.</span>",
|
||||
"<span class='danger'>You are re-united with your physical form. [src] releases its hold over you.</span>")
|
||||
user.Weaken(3)
|
||||
user.Weaken(6 SECONDS)
|
||||
break
|
||||
if(user.health <= 10)
|
||||
to_chat(ghost, "<span class='cultitalic'>Your body can no longer sustain the connection!</span>")
|
||||
|
||||
@@ -484,9 +484,9 @@ Congratulations! You are now trained for invasive xenobiology research!"}
|
||||
L.lastattacker = user.real_name
|
||||
L.lastattackerckey = user.ckey
|
||||
|
||||
L.Stun(7)
|
||||
L.Weaken(7)
|
||||
L.apply_effect(STUTTER, 7)
|
||||
L.Stun(14 SECONDS)
|
||||
L.Weaken(14 SECONDS)
|
||||
L.Stuttering(14 SECONDS)
|
||||
|
||||
L.visible_message("<span class='danger'>[user] has stunned [L] with [src]!</span>", \
|
||||
"<span class='userdanger'>[user] has stunned you with [src]!</span>")
|
||||
@@ -499,14 +499,14 @@ Congratulations! You are now trained for invasive xenobiology research!"}
|
||||
add_attack_logs(user, L, "Stunned with [src]")
|
||||
|
||||
/obj/item/abductor_baton/proc/SleepAttack(mob/living/L,mob/living/user)
|
||||
if(L.stunned || L.sleeping)
|
||||
if(L.IsStunned() || L.IsSleeping())
|
||||
L.visible_message("<span class='danger'>[user] has induced sleep in [L] with [src]!</span>", \
|
||||
"<span class='userdanger'>You suddenly feel very drowsy!</span>")
|
||||
playsound(loc, 'sound/weapons/egloves.ogg', 50, 1, -1)
|
||||
L.Sleeping(60)
|
||||
L.Sleeping(120 SECONDS)
|
||||
add_attack_logs(user, L, "Put to sleep with [src]")
|
||||
else
|
||||
L.AdjustDrowsy(1)
|
||||
L.AdjustDrowsy(2 SECONDS)
|
||||
to_chat(user, "<span class='warning'>Sleep inducement works fully only on stunned specimens! </span>")
|
||||
L.visible_message("<span class='danger'>[user] tried to induce sleep in [L] with [src]!</span>", \
|
||||
"<span class='userdanger'>You suddenly feel drowsy!</span>")
|
||||
|
||||
@@ -159,13 +159,13 @@
|
||||
switch(pick(1,3))
|
||||
if(1)
|
||||
to_chat(H, "<span class='userdanger'>You hear a loud buzz in your head, silencing your thoughts!</span>")
|
||||
H.Stun(3)
|
||||
H.Stun(6 SECONDS)
|
||||
if(2)
|
||||
to_chat(H, "<span class='warning'>You hear an annoying buzz in your head.</span>")
|
||||
H.AdjustConfused(15)
|
||||
H.AdjustConfused(30 SECONDS)
|
||||
H.adjustBrainLoss(5, 15)
|
||||
if(3)
|
||||
H.hallucination += 60
|
||||
H.AdjustHallucinate(60 SECONDS)
|
||||
|
||||
/obj/item/organ/internal/heart/gland/pop
|
||||
cooldown_low = 900
|
||||
|
||||
@@ -169,7 +169,7 @@
|
||||
|
||||
|
||||
/obj/machinery/abductor/experiment/proc/SendBack(mob/living/carbon/human/H)
|
||||
H.Sleeping(8)
|
||||
H.Sleeping(16 SECONDS)
|
||||
if(console && console.pad && console.pad.teleport_target)
|
||||
H.forceMove(console.pad.teleport_target)
|
||||
H.uncuff()
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
target.forceMove(teleport_target)
|
||||
new /obj/effect/temp_visual/dir_setting/ninja(get_turf(target), target.dir)
|
||||
to_chat(target, "<span class='warning'>The instability of the warp leaves you disoriented!</span>")
|
||||
target.Stun(3)
|
||||
target.Stun(6 SECONDS)
|
||||
|
||||
/obj/machinery/abductor/pad/proc/Retrieve(mob/living/target)
|
||||
flick("alien-pad", src)
|
||||
|
||||
@@ -528,7 +528,7 @@
|
||||
|
||||
to_chat(src, "<span class='warning'>You focus your psychic lance on [M] and freeze [M.p_their()] limbs with a wave of terrible dread.</span>")
|
||||
to_chat(M, "<span class='warning'>You feel a creeping, horrible sense of dread come over you, freezing your limbs and setting your heart racing.</span>")
|
||||
M.Weaken(3)
|
||||
M.Weaken(6 SECONDS)
|
||||
|
||||
used_dominate = world.time
|
||||
attempting_to_dominate = FALSE
|
||||
|
||||
@@ -623,7 +623,7 @@
|
||||
playsound(loc,'sound/effects/snap.ogg',50, 1, -1)
|
||||
L.electrocute_act(100, src, 1, flags = SHOCK_NOGLOVES | SHOCK_ILLUSION)
|
||||
if(isrobot(L) || ismachineperson(L))
|
||||
L.Weaken(5)
|
||||
L.Weaken(10 SECONDS)
|
||||
qdel(src)
|
||||
..()
|
||||
|
||||
|
||||
@@ -158,7 +158,7 @@
|
||||
/mob/living/simple_animal/hostile/guardian/gib()
|
||||
if(summoner)
|
||||
to_chat(summoner, "<span class='danger'>Your [src] was blown up!</span>")
|
||||
summoner.Weaken(10)// your fermillier has died! ROLL FOR CON LOSS!
|
||||
summoner.Weaken(20 SECONDS)// your fermillier has died! ROLL FOR CON LOSS!
|
||||
ghostize()
|
||||
qdel(src)
|
||||
|
||||
|
||||
@@ -62,7 +62,7 @@
|
||||
if(H.check_shields(src, 90, "[name]", attack_type = THROWN_PROJECTILE_ATTACK))
|
||||
blocked = TRUE
|
||||
if(!blocked)
|
||||
L.Stun(1)
|
||||
L.Stun(2 SECONDS)
|
||||
L.visible_message("<span class='danger'>[src] slams into [L]!</span>", "<span class='userdanger'>[src] slams into you!</span>")
|
||||
L.apply_damage(20, BRUTE)
|
||||
playsound(get_turf(L), 'sound/effects/meteorimpact.ogg', 100, 1)
|
||||
|
||||
@@ -43,7 +43,7 @@
|
||||
/// How much damage a successful ambush attack does
|
||||
var/ambush_damage = 25
|
||||
/// How much weaken a successful ambush attack applies
|
||||
var/ambush_weaken = 3
|
||||
var/ambush_weaken = 6 SECONDS
|
||||
/// The spell the morph uses to morph
|
||||
var/obj/effect/proc_holder/spell/mimic/morph/mimic_spell
|
||||
/// The ambush action used by the morph
|
||||
|
||||
@@ -351,7 +351,7 @@
|
||||
to_chat(src, "<span class='warning'>You suddenly feel [pick("sick and tired", "tired and confused", "nauseated", "dizzy")].</span>")
|
||||
adjustStaminaLoss(25)
|
||||
adjustToxLoss(5)
|
||||
AdjustConfused(20, bound_lower = 0, bound_upper = 30)
|
||||
AdjustConfused(40 SECONDS, bound_lower = 0, bound_upper = 60 SECONDS)
|
||||
new /obj/effect/temp_visual/revenant(loc)
|
||||
|
||||
/obj/structure/window/defile()
|
||||
|
||||
@@ -157,7 +157,7 @@
|
||||
/obj/effect/proc_holder/spell/sense_victims/cast(list/targets, mob/user)
|
||||
var/mob/living/victim = targets[1]
|
||||
to_chat(victim, "<span class='userdanger'>You feel an awful sense of being watched...</span>")
|
||||
victim.Stun(3) //HUE
|
||||
victim.Stun(6 SECONDS) //HUE
|
||||
var/area/A = get_area(victim)
|
||||
if(!A)
|
||||
to_chat(user, "<span class='warning'>You could not locate any sapient heretics for the Slaughter.</span>")
|
||||
|
||||
@@ -241,9 +241,9 @@
|
||||
revolutionaries += rev_mind
|
||||
if(iscarbon(rev_mind.current))
|
||||
var/mob/living/carbon/carbon_mob = rev_mind.current
|
||||
carbon_mob.Silence(5)
|
||||
carbon_mob.Silence(10 SECONDS)
|
||||
carbon_mob.flash_eyes(1, 1)
|
||||
rev_mind.current.Stun(5)
|
||||
rev_mind.current.Stun(10 SECONDS)
|
||||
to_chat(rev_mind.current, "<span class='danger'><FONT size = 3> You are now a revolutionary! Help your cause. Do not harm your fellow freedom fighters. You can identify your comrades by the red \"R\" icons, and your leaders by the blue \"R\" icons. Help them kill the heads to win the revolution!</FONT></span>")
|
||||
rev_mind.current.create_attack_log("<font color='red'>Has been converted to the revolution!</font>")
|
||||
rev_mind.current.create_log(CONVERSION_LOG, "converted to the revolution")
|
||||
@@ -271,7 +271,7 @@
|
||||
message_admins("[key_name_admin(rev_mind.current)] [ADMIN_QUE(rev_mind.current,"?")] ([ADMIN_FLW(rev_mind.current,"FLW")]) has been borged while being a [remove_head ? "leader" : " member"] of the revolution.")
|
||||
|
||||
else
|
||||
rev_mind.current.Paralyse(5)
|
||||
rev_mind.current.Paralyse(10 SECONDS)
|
||||
to_chat(rev_mind.current, "<span class='danger'><FONT size = 3>You have been brainwashed! You are no longer a revolutionary! Your memory is hazy from the time you were a rebel...the only thing you remember is the name of the one who brainwashed you...</FONT></span>")
|
||||
|
||||
update_rev_icons_removed(rev_mind)
|
||||
|
||||
@@ -814,7 +814,7 @@ GLOBAL_LIST_EMPTY(multiverse)
|
||||
GiveHint(target)
|
||||
else if(is_pointed(I))
|
||||
to_chat(target, "<span class='userdanger'>You feel a stabbing pain in [parse_zone(user.zone_selected)]!</span>")
|
||||
target.Weaken(2)
|
||||
target.Weaken(4 SECONDS)
|
||||
GiveHint(target)
|
||||
else if(istype(I,/obj/item/bikehorn))
|
||||
to_chat(target, "<span class='userdanger'>HONK</span>")
|
||||
@@ -886,7 +886,7 @@ GLOBAL_LIST_EMPTY(multiverse)
|
||||
GiveHint(target)
|
||||
if("head")
|
||||
to_chat(user, "<span class='notice'>You smack the doll's head with your hand.</span>")
|
||||
target.Dizzy(10)
|
||||
target.Dizzy(20 SECONDS)
|
||||
to_chat(target, "<span class='warning'>You suddenly feel as if your head was hit with a hammer!</span>")
|
||||
GiveHint(target,user)
|
||||
cooldown = world.time + cooldown_time
|
||||
|
||||
@@ -61,14 +61,14 @@
|
||||
item_state = "fleshtostone"
|
||||
|
||||
/obj/item/melee/touch_attack/fleshtostone/afterattack(atom/target, mob/living/carbon/user, proximity)
|
||||
if(!proximity || target == user || !ismob(target) || !iscarbon(user) || user.lying || user.handcuffed) //getting hard after touching yourself would also be bad
|
||||
if(!proximity || target == user || !isliving(target) || !iscarbon(user) || user.lying || user.handcuffed) //getting hard after touching yourself would also be bad
|
||||
return
|
||||
if(user.lying || user.handcuffed)
|
||||
to_chat(user, "<span class='warning'>You can't reach out!</span>")
|
||||
return
|
||||
var/mob/M = target
|
||||
M.Stun(2)
|
||||
new /obj/structure/closet/statue(M.loc, M)
|
||||
var/mob/living/L = target
|
||||
L.Stun(4 SECONDS)
|
||||
new /obj/structure/closet/statue(L.loc, L)
|
||||
..()
|
||||
|
||||
/obj/item/melee/touch_attack/fake_disintegrate
|
||||
|
||||
@@ -67,12 +67,12 @@
|
||||
return ..()
|
||||
|
||||
//////////////////////////////Capturing////////////////////////////////////////////////////////
|
||||
/obj/item/soulstone/attack(mob/living/carbon/human/M, mob/user)
|
||||
/obj/item/soulstone/attack(mob/living/carbon/human/M, mob/living/user)
|
||||
if(M == user)
|
||||
return
|
||||
|
||||
if(!can_use(user))
|
||||
user.Weaken(5)
|
||||
user.Weaken(10 SECONDS)
|
||||
user.emote("scream")
|
||||
to_chat(user, "<span class='userdanger'>Your body is wracked with debilitating pain!</span>")
|
||||
return
|
||||
@@ -203,12 +203,12 @@
|
||||
else
|
||||
..()
|
||||
|
||||
/obj/item/soulstone/attack_self(mob/user)
|
||||
/obj/item/soulstone/attack_self(mob/living/user)
|
||||
if(!in_range(src, user))
|
||||
return
|
||||
|
||||
if(!can_use(user))
|
||||
user.Weaken(5)
|
||||
user.Weaken(10 SECONDS)
|
||||
user.emote("scream")
|
||||
to_chat(user, "<span class='userdanger'>Your body is wracked with debilitating pain!</span>")
|
||||
return
|
||||
@@ -249,12 +249,12 @@
|
||||
. += "<span class='cultitalic'>A <b>Wraith</b>, which does high damage and can jaunt through walls, though it is quite fragile.</span>"
|
||||
. += "<span class='cultitalic'>A <b>Juggernaut</b>, which is very hard to kill and can produce temporary walls, but is slow.</span>"
|
||||
|
||||
/obj/structure/constructshell/attackby(obj/item/I, mob/user, params)
|
||||
/obj/structure/constructshell/attackby(obj/item/I, mob/living/user, params)
|
||||
if(istype(I, /obj/item/soulstone))
|
||||
var/obj/item/soulstone/SS = I
|
||||
if(!SS.can_use(user))
|
||||
to_chat(user, "<span class='danger'>An overwhelming feeling of dread comes over you as you attempt to place the soulstone into the shell.</span>")
|
||||
user.Confused(10)
|
||||
user.Confused(20 SECONDS)
|
||||
return
|
||||
SS.transfer_soul("CONSTRUCT", src, user)
|
||||
SS.was_used()
|
||||
@@ -263,7 +263,7 @@
|
||||
|
||||
////////////////////////////Proc for moving soul in and out off stone//////////////////////////////////////
|
||||
// this whole proc is pain
|
||||
/obj/item/soulstone/proc/transfer_soul(choice, target, mob/user)
|
||||
/obj/item/soulstone/proc/transfer_soul(choice, target, mob/living/user)
|
||||
switch(choice)
|
||||
if("FORCE")
|
||||
var/mob/living/T = target
|
||||
@@ -272,7 +272,7 @@
|
||||
init_shade(T, user)
|
||||
else // Poll ghosts
|
||||
to_chat(user, "<span class='userdanger'>Capture failed!</span> The soul has already fled its mortal frame. You attempt to bring it back...")
|
||||
T.Paralyse(20)
|
||||
T.Paralyse(40 SECONDS)
|
||||
if(!get_cult_ghost(T, user, TRUE))
|
||||
T.dust() //If we can't get a ghost, kill the sacrifice anyway.
|
||||
|
||||
@@ -296,7 +296,7 @@
|
||||
if("SHADE")
|
||||
var/mob/living/simple_animal/shade/T = target
|
||||
if(!can_use(user))
|
||||
user.Weaken(5)
|
||||
user.Weaken(10 SECONDS)
|
||||
to_chat(user, "<span class='userdanger'>Your body is wracked with debilitating pain!</span>")
|
||||
return
|
||||
if(T.stat == DEAD)
|
||||
|
||||
@@ -971,10 +971,12 @@
|
||||
icon_state = "bookblind"
|
||||
desc = "This book looks blurry, no matter how you look at it."
|
||||
|
||||
/obj/item/spellbook/oneuse/blind/recoil(mob/user as mob)
|
||||
/obj/item/spellbook/oneuse/blind/recoil(mob/user)
|
||||
..()
|
||||
to_chat(user, "<span class='warning'>You go blind!</span>")
|
||||
user.EyeBlind(10)
|
||||
if(isliving(user))
|
||||
var/mob/living/L = user
|
||||
to_chat(user, "<span class='warning'>You go blind!</span>")
|
||||
L.EyeBlind(20 SECONDS)
|
||||
|
||||
/obj/item/spellbook/oneuse/mindswap
|
||||
spell = /obj/effect/proc_holder/spell/mind_transfer
|
||||
@@ -1027,10 +1029,10 @@
|
||||
icon_state = "bookknock"
|
||||
desc = "This book is hard to hold closed properly."
|
||||
|
||||
/obj/item/spellbook/oneuse/knock/recoil(mob/user as mob)
|
||||
/obj/item/spellbook/oneuse/knock/recoil(mob/living/user)
|
||||
..()
|
||||
to_chat(user, "<span class='warning'>You're knocked down!</span>")
|
||||
user.Weaken(20)
|
||||
user.Weaken(40 SECONDS)
|
||||
|
||||
/obj/item/spellbook/oneuse/horsemask
|
||||
spell = /obj/effect/proc_holder/spell/horsemask
|
||||
|
||||
Reference in New Issue
Block a user