mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-24 12:37:26 +01:00
Genetics tweaks and changelog.
Stealth is overtime instead of instantaneous Cryokinesis is less OP, deals less damage to unclothed targets and respects hardsuits and internals. Leap is nerfed, cooldown doubled as well as not being able to leap while restrained. T-ray scanners and flashes will reveal 'invisible' mobs for a short period of time. this is a work in progress and possibly buggy! Conflicts: html/changelog.html
This commit is contained in:
@@ -56,7 +56,7 @@
|
||||
if(!istype(T))
|
||||
return
|
||||
if(T.lighting_lumcount <= 2)
|
||||
M.alpha = 0
|
||||
M.alpha -= 25
|
||||
else
|
||||
M.alpha = round(255 * 0.80)
|
||||
|
||||
@@ -72,7 +72,7 @@
|
||||
|
||||
OnMobLife(var/mob/M)
|
||||
if((world.time - M.last_movement) >= 30 && !M.stat && M.canmove && !M.restrained())
|
||||
M.alpha = 0
|
||||
M.alpha -= 25
|
||||
else
|
||||
M.alpha = round(255 * 0.80)
|
||||
|
||||
@@ -150,12 +150,26 @@
|
||||
if (M_RESIST_COLD in C.mutations)
|
||||
C.visible_message("\red A cloud of fine ice crystals engulfs [C.name], but disappears almost instantly!")
|
||||
return
|
||||
var/handle_suit = 0
|
||||
if(ishuman(C))
|
||||
var/mob/living/carbon/human/H = C
|
||||
if(istype(H.head, /obj/item/clothing/head/helmet/space))
|
||||
if(istype(H.wear_suit, /obj/item/clothing/suit/space))
|
||||
handle_suit = 1
|
||||
if(H.internal)
|
||||
H.visible_message("\red A cloud of fine ice crystals engulfs [H]!",
|
||||
"<span class='notice'>A cloud of fine ice crystals cover your [H.head]'s visor.</span>")
|
||||
else
|
||||
H.visible_message("\red A cloud of fine ice crystals engulfs [H]!",
|
||||
"<span class='warning'>A cloud of fine ice crystals cover your [H.head]'s visor and make it into your air vents!.</span>")
|
||||
H.bodytemperature = max(0, H.bodytemperature - 50)
|
||||
H.adjustFireLoss(5)
|
||||
if(!handle_suit)
|
||||
C.bodytemperature = max(0, C.bodytemperature - 100)
|
||||
C.adjustFireLoss(10)
|
||||
C.ExtinguishMob()
|
||||
|
||||
C.bodytemperature = 0
|
||||
C.adjustFireLoss(20)
|
||||
C.ExtinguishMob()
|
||||
|
||||
C.visible_message("\red A cloud of fine ice crystals engulfs [C]!")
|
||||
C.visible_message("\red A cloud of fine ice crystals engulfs [C]!")
|
||||
|
||||
//playsound(usr.loc, 'bamf.ogg', 50, 0)
|
||||
|
||||
@@ -323,20 +337,41 @@
|
||||
include_user = 1
|
||||
|
||||
charge_type = "recharge"
|
||||
charge_max = 30
|
||||
charge_max = 60
|
||||
|
||||
clothes_req = 0
|
||||
stat_allowed = 0
|
||||
invocation_type = "none"
|
||||
|
||||
/obj/effect/proc_holder/spell/targeted/leap/cast(list/targets)
|
||||
var/failure = 0
|
||||
if (istype(usr.loc,/mob/))
|
||||
usr << "\red You can't jump right now!"
|
||||
return
|
||||
|
||||
if (istype(usr.loc,/turf/))
|
||||
|
||||
|
||||
if(usr.restrained())//Why being pulled while cuffed prevents you from moving
|
||||
for(var/mob/M in range(usr, 1))
|
||||
if(M.pulling == usr)
|
||||
if(!M.restrained() && M.stat == 0 && M.canmove && usr.Adjacent(M))
|
||||
failure = 1
|
||||
else
|
||||
M.stop_pulling()
|
||||
|
||||
if(usr.pinned.len)
|
||||
failure = 1
|
||||
|
||||
usr.visible_message("\red <b>[usr.name]</b> takes a huge leap!")
|
||||
playsound(usr.loc, 'sound/weapons/thudswoosh.ogg', 50, 1)
|
||||
if(failure)
|
||||
usr.Weaken(5)
|
||||
usr.Stun(5)
|
||||
usr.visible_message("<span class='warning'> \the [usr] attempts to leap away but is slammed back down to the ground!</span>",
|
||||
"<span class='warning'>You attempt to leap away but are suddenly slammed back down to the ground!</span>",
|
||||
"<span class='notice'>You hear the flexing of powerful muscles and suddenly a crash as a body hits the floor.</span>")
|
||||
return 0
|
||||
var/prevLayer = usr.layer
|
||||
usr.layer = 9
|
||||
|
||||
@@ -534,4 +569,4 @@
|
||||
|
||||
New()
|
||||
..()
|
||||
block = SUPERFARTBLOCK
|
||||
block = SUPERFARTBLOCK
|
||||
|
||||
@@ -163,12 +163,20 @@
|
||||
sleep(5)
|
||||
del(animation)
|
||||
|
||||
for(var/mob/living/carbon/M in oviewers(3, null))
|
||||
for(var/mob/living/carbon/M in viewers(3, null))
|
||||
if(prob(50))
|
||||
if (locate(/obj/item/weapon/cloaking_device, M))
|
||||
for(var/obj/item/weapon/cloaking_device/S in M)
|
||||
S.active = 0
|
||||
S.icon_state = "shield0"
|
||||
if(M.alpha < 255)
|
||||
var/oldalpha = M.alpha
|
||||
if(prob(80))
|
||||
M.alpha = 255
|
||||
M.visible_message("<span class='warning'>[M] suddenly becomes fully visible!</span>",\
|
||||
"<span class='warning'>You see a bright flash of light and are suddenly fully visible again.</span>")
|
||||
spawn(10)
|
||||
M.alpha = oldalpha
|
||||
var/safety = M:eyecheck()
|
||||
if(!safety)
|
||||
if(!M.blinded)
|
||||
|
||||
@@ -56,6 +56,13 @@ REAGENT SCANNER
|
||||
var/turf/U = O.loc
|
||||
if(U.intact)
|
||||
O.invisibility = 101
|
||||
for(var/mob/living/M in T.contents)
|
||||
var/oldalpha = M.alpha
|
||||
if(M.alpha < 255 && istype(M))
|
||||
M.alpha = 255
|
||||
spawn(10)
|
||||
if(M)
|
||||
M.alpha = oldalpha
|
||||
|
||||
var/mob/living/M = locate() in T
|
||||
if(M && M.invisibility == 2)
|
||||
|
||||
Reference in New Issue
Block a user