updates
This commit is contained in:
@@ -5,7 +5,11 @@
|
||||
multiplicative_slowdown = -0.55
|
||||
|
||||
/datum/movespeed_modifier/reagent/ephedrine
|
||||
multiplicative_slowdown = -0.5
|
||||
// strong painkiller effect that caps out at slightly above runspeed
|
||||
multiplicative_slowdown = -1.5
|
||||
priority = -100
|
||||
complex_calculation = TRUE
|
||||
absolute_max_tiles_per_second = 7
|
||||
|
||||
/datum/movespeed_modifier/reagent/pepperspray
|
||||
multiplicative_slowdown = 0.25
|
||||
@@ -14,10 +18,19 @@
|
||||
multiplicative_slowdown = -0.35
|
||||
|
||||
/datum/movespeed_modifier/reagent/changelinghaste
|
||||
multiplicative_slowdown = -0.8
|
||||
// extremely strong painkiller effect: allows user to run at old sprint speeds but not over by cancelling out slowdowns.
|
||||
// however, will not make user go faster than that
|
||||
multiplicative_slowdown = -4
|
||||
priority = -100
|
||||
complex_calculation = TRUE
|
||||
absolute_max_tiles_per_second = 8
|
||||
|
||||
/datum/movespeed_modifier/reagent/methamphetamine
|
||||
multiplicative_slowdown = -0.65
|
||||
// very strong painkiller effect that caps out at slightly above runspeed
|
||||
multiplicative_slowdown = -2.5
|
||||
priority = -100
|
||||
complex_calculation = TRUE
|
||||
absolute_max_tiles_per_second = 7.5
|
||||
|
||||
/datum/movespeed_modifier/reagent/nitryl
|
||||
multiplicative_slowdown = -0.65
|
||||
|
||||
@@ -51,3 +51,11 @@
|
||||
|
||||
/datum/movespeed_modifier/status_effect/off_balance
|
||||
variable = TRUE
|
||||
|
||||
/datum/movespeed_modifier/status_effect/slime/light_pink
|
||||
// decently good painkiller + speedup effect
|
||||
blacklisted_movetypes = FLYING | FLOATING
|
||||
priority = -150 // someday we really need to make these defines lmao
|
||||
multiplicative_slowdown = -2
|
||||
complex_calculation = TRUE
|
||||
absolute_max_tiles_per_second = 7
|
||||
|
||||
@@ -77,6 +77,11 @@ Contents:
|
||||
cell.name = "black power cell"
|
||||
cell.icon_state = "bscell"
|
||||
|
||||
/obj/item/clothing/suit/space/space_ninja/Destroy()
|
||||
if(affecting)
|
||||
unlock_suit()
|
||||
return ..()
|
||||
|
||||
//Simply deletes all the attachments and self, killing all related procs.
|
||||
/obj/item/clothing/suit/space/space_ninja/proc/terminate()
|
||||
qdel(n_hood)
|
||||
@@ -84,7 +89,6 @@ Contents:
|
||||
qdel(n_shoes)
|
||||
qdel(src)
|
||||
|
||||
|
||||
//Randomizes suit parameters.
|
||||
/obj/item/clothing/suit/space/space_ninja/proc/randomize_param()
|
||||
s_cost = rand(1,20)
|
||||
@@ -93,7 +97,6 @@ Contents:
|
||||
s_bombs = rand(5,20)
|
||||
a_boost = rand(1,7)
|
||||
|
||||
|
||||
//This proc prevents the suit from being taken off.
|
||||
/obj/item/clothing/suit/space/space_ninja/proc/lock_suit(mob/living/carbon/human/H)
|
||||
if(!istype(H))
|
||||
@@ -113,14 +116,14 @@ Contents:
|
||||
return FALSE
|
||||
affecting = H
|
||||
ADD_TRAIT(src, TRAIT_NODROP, NINJA_SUIT_TRAIT) //colons make me go all |=
|
||||
slowdown = 0
|
||||
n_hood = H.head
|
||||
ADD_TRAIT(n_hood, TRAIT_NODROP, NINJA_SUIT_TRAIT)
|
||||
n_shoes = H.shoes
|
||||
ADD_TRAIT(n_shoes, TRAIT_NODROP, NINJA_SUIT_TRAIT)
|
||||
n_shoes.slowdown -= 0.5
|
||||
n_shoes.slowdown = -0.25
|
||||
n_gloves = H.gloves
|
||||
ADD_TRAIT(n_gloves, TRAIT_NODROP, NINJA_SUIT_TRAIT)
|
||||
ADD_TRAIT(affecting, TRAIT_TASED_RESISTANCE, NINJA_SUIT_TRAIT)
|
||||
return TRUE
|
||||
|
||||
/obj/item/clothing/suit/space/space_ninja/proc/lockIcons(mob/living/carbon/human/H)
|
||||
@@ -133,19 +136,19 @@ Contents:
|
||||
/obj/item/clothing/suit/space/space_ninja/proc/unlock_suit()
|
||||
affecting = null
|
||||
REMOVE_TRAIT(src, TRAIT_NODROP, NINJA_SUIT_TRAIT)
|
||||
slowdown = 1
|
||||
icon_state = "s-ninja"
|
||||
if(n_hood)//Should be attached, might not be attached.
|
||||
REMOVE_TRAIT(n_hood, TRAIT_NODROP, NINJA_SUIT_TRAIT)
|
||||
if(n_shoes)
|
||||
REMOVE_TRAIT(n_shoes, TRAIT_NODROP, NINJA_SUIT_TRAIT)
|
||||
n_shoes.slowdown += 0.5
|
||||
n_shoes.slowdown = 0.25
|
||||
if(n_gloves)
|
||||
n_gloves.icon_state = "s-ninja"
|
||||
n_gloves.item_state = "s-ninja"
|
||||
REMOVE_TRAIT(n_gloves, TRAIT_NODROP, NINJA_SUIT_TRAIT)
|
||||
n_gloves.candrain=0
|
||||
n_gloves.draining=0
|
||||
REMOVE_TRAIT(affecting, TRAIT_TASED_RESISTANCE, NINJA_SUIT_TRAIT)
|
||||
|
||||
|
||||
/obj/item/clothing/suit/space/space_ninja/examine(mob/user)
|
||||
|
||||
@@ -345,6 +345,8 @@
|
||||
victim.confused = max(M.confused, 3)
|
||||
victim.damageoverlaytemp = 60
|
||||
victim.DefaultCombatKnockdown(80, override_hardstun = 0.1, override_stamdmg = min(reac_volume * 3, 15))
|
||||
victim.add_movespeed_modifier(/datum/movespeed_modifier/reagent/pepperspray)
|
||||
addtimer(CALLBACK(victim, /mob.proc/remove_movespeed_modifier, /datum/movespeed_modifier/reagent/pepperspray), 10 SECONDS)
|
||||
return
|
||||
else if ( eyes_covered ) // Eye cover is better than mouth cover
|
||||
victim.blur_eyes(3)
|
||||
@@ -358,6 +360,8 @@
|
||||
victim.confused = max(M.confused, 6)
|
||||
victim.damageoverlaytemp = 75
|
||||
victim.DefaultCombatKnockdown(80, override_hardstun = 0.1, override_stamdmg = min(reac_volume * 5, 25))
|
||||
victim.add_movespeed_modifier(/datum/movespeed_modifier/reagent/pepperspray)
|
||||
addtimer(CALLBACK(victim, /mob.proc/remove_movespeed_modifier, /datum/movespeed_modifier/reagent/pepperspray), 10 SECONDS)
|
||||
victim.update_damage_hud()
|
||||
|
||||
/datum/reagent/consumable/condensedcapsaicin/on_mob_life(mob/living/carbon/M)
|
||||
|
||||
@@ -706,21 +706,42 @@
|
||||
addiction_threshold = 30
|
||||
pH = 12
|
||||
|
||||
/datum/reagent/medicine/ephedrine/on_mob_life(mob/living/carbon/M)
|
||||
M.AdjustAllImmobility(-20, FALSE)
|
||||
M.AdjustUnconscious(-20, FALSE)
|
||||
M.adjustStaminaLoss(-4.5*REM, FALSE)
|
||||
M.Jitter(10)
|
||||
if(prob(50))
|
||||
M.confused = max(M.confused, 1)
|
||||
/datum/reagent/medicine/ephedrine/on_mob_metabolize(mob/living/L)
|
||||
..()
|
||||
L.add_movespeed_modifier(/datum/movespeed_modifier/reagent/ephedrine)
|
||||
ADD_TRAIT(L, TRAIT_TASED_RESISTANCE, type)
|
||||
|
||||
/datum/reagent/medicine/ephedrine/on_mob_end_metabolize(mob/living/L)
|
||||
L.remove_movespeed_modifier(/datum/movespeed_modifier/reagent/ephedrine)
|
||||
REMOVE_TRAIT(L, TRAIT_TASED_RESISTANCE, type)
|
||||
..()
|
||||
|
||||
/datum/reagent/medicine/ephedrine/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
// if(DT_PROB(10 * (1-creation_purity), delta_time) && iscarbon(M))
|
||||
// var/obj/item/I = M.get_active_held_item()
|
||||
// if(I && M.dropItemToGround(I))
|
||||
// to_chat(M, span_notice("Your hands spaz out and you drop what you were holding!"))
|
||||
// M.Jitter(10)
|
||||
|
||||
M.AdjustAllImmobility(-20 * REM * delta_time * normalise_creation_purity())
|
||||
M.adjustStaminaLoss(-1 * REM * delta_time * normalise_creation_purity(), FALSE)
|
||||
..()
|
||||
return TRUE
|
||||
|
||||
/datum/reagent/medicine/ephedrine/overdose_process(mob/living/M)
|
||||
if(prob(33))
|
||||
M.adjustToxLoss(0.5*REM, 0)
|
||||
/datum/reagent/medicine/ephedrine/overdose_process(mob/living/M, delta_time, times_fired)
|
||||
if(DT_PROB(1 * normalise_creation_purity(), delta_time) && iscarbon(M))
|
||||
var/datum/disease/D = new /datum/disease/heart_failure
|
||||
M.ForceContractDisease(D)
|
||||
to_chat(M, span_userdanger("You're pretty sure you just felt your heart stop for a second there.."))
|
||||
M.playsound_local(M, 'sound/effects/singlebeat.ogg', 100, 0)
|
||||
|
||||
if(DT_PROB(3.5 * normalise_creation_purity(), delta_time))
|
||||
to_chat(M, span_notice("[pick("Your head pounds.", "You feel a tight pain in your chest.", "You find it hard to stay still.", "You feel your heart practically beating out of your chest.")]"))
|
||||
|
||||
if(DT_PROB(18 * normalise_creation_purity(), delta_time))
|
||||
M.adjustToxLoss(1, 0)
|
||||
M.losebreath++
|
||||
. = 1
|
||||
. = TRUE
|
||||
return TRUE
|
||||
|
||||
/datum/reagent/medicine/ephedrine/addiction_act_stage1(mob/living/M)
|
||||
@@ -1415,37 +1436,44 @@
|
||||
/datum/reagent/medicine/changelingadrenaline
|
||||
name = "Changeling Adrenaline"
|
||||
description = "Reduces the duration of unconciousness, knockdown and stuns. Restores stamina, but deals toxin damage when overdosed."
|
||||
color = "#918e53"
|
||||
color = "#C1151D"
|
||||
overdose_threshold = 30
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
value = REAGENT_VALUE_VERY_RARE
|
||||
|
||||
/datum/reagent/medicine/changelingadrenaline/on_mob_life(mob/living/carbon/metabolizer, delta_time, times_fired)
|
||||
..()
|
||||
metabolizer.AdjustAllImmobility(-20 * REM * delta_time)
|
||||
metabolizer.adjustStaminaLoss(-10 * REM * delta_time, 0)
|
||||
metabolizer.Jitter(10 * REM * delta_time)
|
||||
metabolizer.Dizzy(10 * REM * delta_time)
|
||||
return TRUE
|
||||
|
||||
/datum/reagent/medicine/changelingadrenaline/on_mob_metabolize(mob/living/L)
|
||||
..()
|
||||
ADD_TRAIT(L, TRAIT_SLEEPIMMUNE, type)
|
||||
ADD_TRAIT(L, TRAIT_TASED_RESISTANCE, type)
|
||||
L.add_movespeed_mod_immunities(type, /datum/movespeed_modifier/damage_slowdown)
|
||||
|
||||
/datum/reagent/medicine/changelingadrenaline/on_mob_end_metabolize(mob/living/L)
|
||||
..()
|
||||
REMOVE_TRAIT(L, TRAIT_SLEEPIMMUNE, type)
|
||||
REMOVE_TRAIT(L, TRAIT_TASED_RESISTANCE, type)
|
||||
..()
|
||||
L.remove_movespeed_mod_immunities(type, /datum/movespeed_modifier/damage_slowdown)
|
||||
L.Dizzy(0)
|
||||
L.Jitter(0)
|
||||
|
||||
/datum/reagent/medicine/changelingadrenaline/on_mob_life(mob/living/carbon/M as mob)
|
||||
M.AdjustUnconscious(-20, 0)
|
||||
M.AdjustAllImmobility(-20, 0)
|
||||
M.AdjustSleeping(-20, 0)
|
||||
M.adjustStaminaLoss(-30, 0)
|
||||
..()
|
||||
return TRUE
|
||||
|
||||
/datum/reagent/medicine/changelingadrenaline/overdose_process(mob/living/M as mob)
|
||||
M.adjustToxLoss(5, 0) //let's make this mildly more toxic because of the stamina buff
|
||||
/datum/reagent/medicine/changelingadrenaline/overdose_process(mob/living/metabolizer, delta_time, times_fired)
|
||||
metabolizer.adjustToxLoss(1 * REM * delta_time, 0)
|
||||
..()
|
||||
return TRUE
|
||||
|
||||
/datum/reagent/medicine/changelinghaste
|
||||
name = "Changeling Haste"
|
||||
description = "Drastically increases movement speed, but deals toxin damage."
|
||||
color = "#669153"
|
||||
metabolization_rate = 1
|
||||
value = REAGENT_VALUE_VERY_RARE
|
||||
color = "#AE151D"
|
||||
metabolization_rate = 2.5 * REAGENTS_METABOLISM
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/medicine/changelinghaste/on_mob_metabolize(mob/living/L)
|
||||
..()
|
||||
@@ -1455,11 +1483,12 @@
|
||||
L.remove_movespeed_modifier(/datum/movespeed_modifier/reagent/changelinghaste)
|
||||
..()
|
||||
|
||||
/datum/reagent/medicine/changelinghaste/on_mob_life(mob/living/carbon/M)
|
||||
M.adjustToxLoss(2, 0)
|
||||
/datum/reagent/medicine/changelinghaste/on_mob_life(mob/living/carbon/metabolizer, delta_time, times_fired)
|
||||
metabolizer.adjustToxLoss(2 * REM * delta_time, 0)
|
||||
..()
|
||||
return TRUE
|
||||
|
||||
|
||||
/datum/reagent/medicine/corazone
|
||||
// Heart attack code will not do damage if corazone is present
|
||||
// because it's SPACE MAGIC ASPIRIN
|
||||
|
||||
@@ -702,16 +702,20 @@
|
||||
/datum/status_effect/stabilized/sepia
|
||||
id = "stabilizedsepia"
|
||||
colour = "sepia"
|
||||
var/mod = 0
|
||||
var/list/possible = list(
|
||||
-0.5,
|
||||
-0.25,
|
||||
0,
|
||||
0.5,
|
||||
1
|
||||
)
|
||||
|
||||
/datum/status_effect/stabilized/sepia/New(list/arguments)
|
||||
. = ..()
|
||||
possible = typelist(NAMEOF(src, possible), possible)
|
||||
|
||||
/datum/status_effect/stabilized/sepia/tick()
|
||||
if(prob(50) && mod > -1)
|
||||
mod--
|
||||
owner.add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/status_effect/sepia, multiplicative_slowdown = 1)
|
||||
else if(mod < 1)
|
||||
mod++
|
||||
// yeah a value of 0 does nothing but replacing the trait in place is cheaper than removing and adding repeatedly
|
||||
owner.add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/status_effect/sepia, multiplicative_slowdown = 0)
|
||||
owner.add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/status_effect/sepia, multiplicative_slowdown = safepick(possible))
|
||||
return ..()
|
||||
|
||||
/datum/status_effect/stabilized/sepia/on_remove()
|
||||
@@ -932,6 +936,7 @@
|
||||
|
||||
/datum/status_effect/stabilized/lightpink/on_apply()
|
||||
ADD_TRAIT(owner, TRAIT_FREESPRINT, "stabilized_slime")
|
||||
owner.add_movespeed_modifier(/datum/movespeed_modifier/status_effect/slime/light_pink)
|
||||
return ..()
|
||||
|
||||
/datum/status_effect/stabilized/lightpink/tick()
|
||||
@@ -943,6 +948,7 @@
|
||||
|
||||
/datum/status_effect/stabilized/lightpink/on_remove()
|
||||
REMOVE_TRAIT(owner, TRAIT_FREESPRINT, "stabilized_slime")
|
||||
owner.remove_movespeed_modifier(/datum/movespeed_modifier/status_effect/slime/light_pink)
|
||||
return ..()
|
||||
|
||||
/datum/status_effect/stabilized/adamantine
|
||||
|
||||
Reference in New Issue
Block a user