Porting movespeed modification system updates.

This commit is contained in:
Ghommie
2019-10-23 19:24:34 +02:00
parent 432a7dba5d
commit c882c098cc
27 changed files with 164 additions and 170 deletions
@@ -375,15 +375,11 @@ datum/status_effect/rebreathing/tick()
duration = 30
/datum/status_effect/tarfoot/on_apply()
var/mob/living/carbon/human/H = owner
if(istype(H))
H.physiology.speed_mod += 0.5
owner.add_movespeed_modifier(MOVESPEED_ID_TARFOOT, update=TRUE, priority=100, multiplicative_slowdown=0.5, blacklisted_movetypes=(FLYING|FLOATING))
return ..()
/datum/status_effect/tarfoot/on_remove()
var/mob/living/carbon/human/H = owner
if(istype(H))
H.physiology.speed_mod -= 0.5
owner.remove_movespeed_modifier(MOVESPEED_ID_TARFOOT)
/datum/status_effect/spookcookie
id = "spookcookie"
@@ -695,20 +691,15 @@ datum/status_effect/stabilized/blue/on_remove()
/datum/status_effect/stabilized/sepia/tick()
if(prob(50) && mod > -1)
mod--
var/mob/living/carbon/human/H = owner
if(istype(H))
H.physiology.speed_mod--
owner.add_movespeed_modifier(MOVESPEED_ID_SEPIA, update=TRUE, priority=100, multiplicative_slowdown=-1, blacklisted_movetypes=(FLYING|FLOATING))
else if(mod < 1)
mod++
var/mob/living/carbon/human/H = owner
if(istype(H))
H.physiology.speed_mod++
// yeah a value of 0 does nothing but replacing the trait in place is cheaper than removing and adding repeatedly
owner.add_movespeed_modifier(MOVESPEED_ID_SEPIA, update=TRUE, priority=100, multiplicative_slowdown=0, blacklisted_movetypes=(FLYING|FLOATING))
return ..()
/datum/status_effect/stabilized/sepia/on_remove()
var/mob/living/carbon/human/H = owner
if(istype(H))
H.physiology.speed_mod += -mod //Reset the changes.
owner.remove_movespeed_modifier(MOVESPEED_ID_SEPIA).
/datum/status_effect/stabilized/cerulean
id = "stabilizedcerulean"
@@ -916,7 +907,7 @@ datum/status_effect/stabilized/blue/on_remove()
colour = "light pink"
/datum/status_effect/stabilized/lightpink/on_apply()
ADD_TRAIT(owner, TRAIT_GOTTAGOFAST,"slimestatus")
owner.add_movespeed_modifier(MOVESPEED_ID_SLIME_STATUS, update=TRUE, priority=100, multiplicative_slowdown=-1, blacklisted_movetypes=(FLYING|FLOATING))
return ..()
/datum/status_effect/stabilized/lightpink/tick()
@@ -927,7 +918,7 @@ datum/status_effect/stabilized/blue/on_remove()
return ..()
/datum/status_effect/stabilized/lightpink/on_remove()
REMOVE_TRAIT(owner, TRAIT_GOTTAGOFAST,"slimestatus")
owner.remove_movespeed_modifier(MOVESPEED_ID_SLIME_STATUS)
/datum/status_effect/stabilized/adamantine
id = "stabilizedadamantine"