mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-01-06 15:02:29 +00:00
Merge pull request #41313 from ninjanomnom/remove-the-sanic-oc
Replaces the move fast traits with speed mods
This commit is contained in:
@@ -2,8 +2,9 @@
|
||||
#define MOVESPEED_DATA_INDEX_FLAGS 2
|
||||
#define MOVESPEED_DATA_INDEX_MULTIPLICATIVE_SLOWDOWN 3
|
||||
#define MOVESPEED_DATA_INDEX_MOVETYPE 4
|
||||
#define MOVESPEED_DATA_INDEX_BL_MOVETYPE 5
|
||||
|
||||
#define MOVESPEED_DATA_INDEX_MAX 4
|
||||
#define MOVESPEED_DATA_INDEX_MAX 5
|
||||
|
||||
//flags
|
||||
#define IGNORE_NOSLOW (1 << 0)
|
||||
@@ -17,16 +18,28 @@
|
||||
#define MOVESPEED_ID_SLIME_HEALTHMOD "SLIME_HEALTH_MODIFIER"
|
||||
#define MOVESPEED_ID_SLIME_TEMPMOD "SLIME_TEMPERATURE_MODIFIER"
|
||||
|
||||
#define MOVESPEED_ID_SLIME_STATUS "SLIME_STATUS"
|
||||
|
||||
#define MOVESPEED_ID_LIVING_TURF_SPEEDMOD "LIVING_TURF_SPEEDMOD"
|
||||
|
||||
#define MOVESPEED_ID_CARBON_SOFTCRIT "CARBON_SOFTCRIT"
|
||||
#define MOVESPEED_ID_CARBON_OLDSPEED "CARBON_DEPRECATED_SPEED"
|
||||
#define MOVESPEED_ID_CARBON_CRAWLING "CARBON_CRAWLING"
|
||||
|
||||
#define MOVESPEED_ID_DNA_VAULT "DNA_VAULT"
|
||||
|
||||
#define MOVESPEED_ID_YELLOW_ORB "YELLOW_ORB"
|
||||
|
||||
#define MOVESPEED_ID_TARFOOT "TARFOOT"
|
||||
|
||||
#define MOVESPEED_ID_SEPIA "SEPIA"
|
||||
|
||||
#define MOVESPEED_ID_MONKEY_REAGENT_SPEEDMOD "MONKEY_REAGENT_SPEEDMOD"
|
||||
#define MOVESPEED_ID_MONKEY_TEMPERATURE_SPEEDMOD "MONKEY_TEMPERATURE_SPEEDMOD"
|
||||
#define MOVESPEED_ID_MONKEY_HEALTH_SPEEDMOD "MONKEY_HEALTH_SPEEDMOD"
|
||||
|
||||
#define MOVESPEED_ID_CHANGELING_MUSCLES "CHANGELING_MUSCLES"
|
||||
|
||||
#define MOVESPEED_ID_SIMPLEMOB_VARSPEED "SIMPLEMOB_VARSPEED_MODIFIER"
|
||||
#define MOVESPEED_ID_ADMIN_VAREDIT "ADMIN_VAREDIT_MODIFIER"
|
||||
|
||||
|
||||
@@ -12,8 +12,6 @@
|
||||
#define TRAIT_MONKEYLIKE "monkeylike" //sets IsAdvancedToolUser to FALSE
|
||||
#define TRAIT_PACIFISM "pacifism"
|
||||
#define TRAIT_IGNORESLOWDOWN "ignoreslow"
|
||||
#define TRAIT_GOTTAGOFAST "fast"
|
||||
#define TRAIT_GOTTAGOREALLYFAST "2fast"
|
||||
#define TRAIT_DEATHCOMA "deathcoma" //Causes death-like unconsciousness
|
||||
#define TRAIT_FAKEDEATH "fakedeath" //Makes the owner appear as dead to most forms of medical examination
|
||||
#define TRAIT_DISFIGURED "disfigured"
|
||||
|
||||
@@ -170,7 +170,7 @@
|
||||
if(!victim.client || !istype(victim))
|
||||
return
|
||||
to_chat(victim, "<span class='notice'>You feel fast!</span>")
|
||||
victim.add_trait(TRAIT_GOTTAGOREALLYFAST, "yellow_orb")
|
||||
victim.add_movespeed_modifier(MOVESPEED_ID_YELLOW_ORB, update=TRUE, priority=100, multiplicative_slowdown=-2, blacklisted_movetypes=(FLYING|FLOATING))
|
||||
sleep(duration)
|
||||
victim.remove_trait(TRAIT_GOTTAGOREALLYFAST, "yellow_orb")
|
||||
victim.remove_movespeed_modifier(MOVESPEED_ID_YELLOW_ORB)
|
||||
to_chat(victim, "<span class='notice'>You slow down.</span>")
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
if(active)
|
||||
to_chat(user, "<span class='notice'>Our muscles tense and strengthen.</span>")
|
||||
else
|
||||
user.remove_trait(TRAIT_GOTTAGOFAST, "changeling_muscles")
|
||||
user.add_movespeed_modifier(MOVESPEED_ID_CHANGELING_MUSCLES, update=TRUE, priority=100, multiplicative_slowdown=-1, blacklisted_movetypes=(FLYING|FLOATING))
|
||||
to_chat(user, "<span class='notice'>Our muscles relax.</span>")
|
||||
if(stacks >= 10)
|
||||
to_chat(user, "<span class='danger'>We collapse in exhaustion.</span>")
|
||||
@@ -29,12 +29,12 @@
|
||||
|
||||
/obj/effect/proc_holder/changeling/strained_muscles/proc/muscle_loop(mob/living/carbon/user)
|
||||
while(active)
|
||||
user.add_trait(TRAIT_GOTTAGOFAST, "changeling_muscles")
|
||||
user.add_movespeed_modifier(MOVESPEED_ID_CHANGELING_MUSCLES, update=TRUE, priority=100, multiplicative_slowdown=-1, blacklisted_movetypes=(FLYING|FLOATING))
|
||||
if(user.stat != CONSCIOUS || user.staminaloss >= 90)
|
||||
active = !active
|
||||
to_chat(user, "<span class='notice'>Our muscles relax without the energy to strengthen them.</span>")
|
||||
user.Paralyze(40)
|
||||
user.remove_trait(TRAIT_GOTTAGOFAST, "changeling_muscles")
|
||||
user.remove_movespeed_modifier(MOVESPEED_ID_CHANGELING_MUSCLES)
|
||||
break
|
||||
|
||||
stacks++
|
||||
|
||||
@@ -21,8 +21,6 @@
|
||||
var/bleed_mod = 1 // % bleeding modifier
|
||||
var/datum/armor/armor // internal armor datum
|
||||
|
||||
var/speed_mod = 0 //tick modifier for each step. Positive is slower, negative is faster.
|
||||
|
||||
var/hunger_mod = 1 //% of hunger rate taken per tick.
|
||||
|
||||
var/do_after_speed = 1 //Speed mod for do_after. Lower is better. If temporarily adjusting, please only modify using *= and /=, so you don't interrupt other calculations.
|
||||
|
||||
@@ -1069,13 +1069,6 @@ GLOBAL_LIST_EMPTY(roundstart_races)
|
||||
|
||||
gravity = H.has_gravity()
|
||||
|
||||
if(gravity && !flight) //Check for chemicals and innate speedups and slowdowns if we're on the ground
|
||||
if(H.has_trait(TRAIT_GOTTAGOFAST))
|
||||
. -= 1
|
||||
if(H.has_trait(TRAIT_GOTTAGOREALLYFAST))
|
||||
. -= 2
|
||||
. += H.physiology.speed_mod
|
||||
|
||||
if(H.has_trait(TRAIT_IGNORESLOWDOWN))
|
||||
ignoreslow = 1
|
||||
|
||||
|
||||
@@ -8,8 +8,8 @@
|
||||
*/
|
||||
|
||||
//ANY ADD/REMOVE DONE IN UPDATE_MOVESPEED MUST HAVE THE UPDATE ARGUMENT SET AS FALSE!
|
||||
/mob/proc/add_movespeed_modifier(id, update = TRUE, priority = 0, flags = NONE, override = FALSE, multiplicative_slowdown = 0, movetypes = ALL)
|
||||
var/list/temp = list(priority, flags, multiplicative_slowdown, movetypes) //build the modification list
|
||||
/mob/proc/add_movespeed_modifier(id, update = TRUE, priority = 0, flags = NONE, override = FALSE, multiplicative_slowdown = 0, movetypes = ALL, blacklisted_movetypes = NONE)
|
||||
var/list/temp = list(priority, flags, multiplicative_slowdown, movetypes, blacklisted_movetypes) //build the modification list
|
||||
var/resort = TRUE
|
||||
if(LAZYACCESS(movespeed_modification, id))
|
||||
var/list/existing_data = movespeed_modification[id]
|
||||
@@ -61,7 +61,9 @@
|
||||
. = 0
|
||||
for(var/id in get_movespeed_modifiers())
|
||||
var/list/data = movespeed_modification[id]
|
||||
if(!(data[MOVESPEED_DATA_INDEX_MOVETYPE] & movement_type)) // We don't affect this move type, skip
|
||||
if(!(data[MOVESPEED_DATA_INDEX_MOVETYPE] & movement_type)) // We don't affect any of these move types, skip
|
||||
continue
|
||||
if(data[MOVESPEED_DATA_INDEX_BL_MOVETYPE] & movement_type) // There's a movetype here that disables this modifier, skip
|
||||
continue
|
||||
. += data[MOVESPEED_DATA_INDEX_MULTIPLICATIVE_SLOWDOWN]
|
||||
cached_multiplicative_slowdown = .
|
||||
|
||||
@@ -394,10 +394,10 @@
|
||||
|
||||
/datum/reagent/consumable/nuka_cola/on_mob_add(mob/living/L)
|
||||
..()
|
||||
L.add_trait(TRAIT_GOTTAGOFAST, id)
|
||||
L.add_movespeed_modifier(id, update=TRUE, priority=100, multiplicative_slowdown=-1, blacklisted_movetypes=(FLYING|FLOATING))
|
||||
|
||||
/datum/reagent/consumable/nuka_cola/on_mob_delete(mob/living/L)
|
||||
L.remove_trait(TRAIT_GOTTAGOFAST, id)
|
||||
L.remove_movespeed_modifier(id)
|
||||
..()
|
||||
|
||||
/datum/reagent/consumable/nuka_cola/on_mob_life(mob/living/carbon/M)
|
||||
|
||||
@@ -179,10 +179,10 @@
|
||||
|
||||
/datum/reagent/drug/methamphetamine/on_mob_add(mob/living/L)
|
||||
..()
|
||||
L.add_trait(TRAIT_GOTTAGOREALLYFAST, id)
|
||||
L.add_movespeed_modifier(id, update=TRUE, priority=100, multiplicative_slowdown=-2, blacklisted_movetypes=(FLYING|FLOATING))
|
||||
|
||||
/datum/reagent/drug/methamphetamine/on_mob_delete(mob/living/L)
|
||||
L.remove_trait(TRAIT_GOTTAGOREALLYFAST, id)
|
||||
L.remove_movespeed_modifier(id)
|
||||
..()
|
||||
|
||||
/datum/reagent/drug/methamphetamine/on_mob_life(mob/living/carbon/M)
|
||||
|
||||
@@ -554,10 +554,10 @@
|
||||
|
||||
/datum/reagent/medicine/ephedrine/on_mob_add(mob/living/L)
|
||||
..()
|
||||
L.add_trait(TRAIT_GOTTAGOFAST, id)
|
||||
L.add_movespeed_modifier(id, update=TRUE, priority=100, multiplicative_slowdown=-1, blacklisted_movetypes=(FLYING|FLOATING))
|
||||
|
||||
/datum/reagent/medicine/ephedrine/on_mob_delete(mob/living/L)
|
||||
L.remove_trait(TRAIT_GOTTAGOFAST, id)
|
||||
L.remove_movespeed_modifier(id)
|
||||
..()
|
||||
|
||||
/datum/reagent/medicine/ephedrine/on_mob_life(mob/living/carbon/M)
|
||||
@@ -871,10 +871,10 @@
|
||||
|
||||
/datum/reagent/medicine/stimulants/on_mob_add(mob/living/L)
|
||||
..()
|
||||
L.add_trait(TRAIT_GOTTAGOFAST, id)
|
||||
L.add_movespeed_modifier(id, update=TRUE, priority=100, multiplicative_slowdown=-1, blacklisted_movetypes=(FLYING|FLOATING))
|
||||
|
||||
/datum/reagent/medicine/stimulants/on_mob_delete(mob/living/L)
|
||||
L.remove_trait(TRAIT_GOTTAGOFAST, id)
|
||||
L.remove_movespeed_modifier(id)
|
||||
..()
|
||||
|
||||
/datum/reagent/medicine/stimulants/on_mob_life(mob/living/carbon/M)
|
||||
@@ -1153,10 +1153,10 @@
|
||||
|
||||
/datum/reagent/medicine/changelinghaste/on_mob_add(mob/living/L)
|
||||
..()
|
||||
L.add_trait(TRAIT_GOTTAGOREALLYFAST, id)
|
||||
L.add_movespeed_modifier(id, update=TRUE, priority=100, multiplicative_slowdown=-2, blacklisted_movetypes=(FLYING|FLOATING))
|
||||
|
||||
/datum/reagent/medicine/changelinghaste/on_mob_delete(mob/living/L)
|
||||
L.remove_trait(TRAIT_GOTTAGOREALLYFAST, id)
|
||||
L.remove_movespeed_modifier(id)
|
||||
..()
|
||||
|
||||
/datum/reagent/medicine/changelinghaste/on_mob_life(mob/living/carbon/M)
|
||||
|
||||
@@ -1259,10 +1259,10 @@
|
||||
|
||||
/datum/reagent/nitryl/on_mob_add(mob/living/L)
|
||||
..()
|
||||
L.add_trait(TRAIT_GOTTAGOFAST, id)
|
||||
L.add_movespeed_modifier(id, update=TRUE, priority=100, multiplicative_slowdown=-1, blacklisted_movetypes=(FLYING|FLOATING))
|
||||
|
||||
/datum/reagent/nitryl/on_mob_delete(mob/living/L)
|
||||
L.remove_trait(TRAIT_GOTTAGOFAST, id)
|
||||
L.remove_movespeed_modifier(id)
|
||||
..()
|
||||
|
||||
/////////////////////////Coloured Crayon Powder////////////////////////////
|
||||
|
||||
@@ -347,15 +347,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"
|
||||
@@ -667,20 +663,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"
|
||||
@@ -888,7 +879,7 @@ datum/status_effect/stabilized/blue/on_remove()
|
||||
colour = "light pink"
|
||||
|
||||
/datum/status_effect/stabilized/lightpink/on_apply()
|
||||
owner.add_trait(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()
|
||||
@@ -899,7 +890,7 @@ datum/status_effect/stabilized/blue/on_remove()
|
||||
return ..()
|
||||
|
||||
/datum/status_effect/stabilized/lightpink/on_remove()
|
||||
owner.remove_trait(TRAIT_GOTTAGOFAST,"slimestatus")
|
||||
owner.remove_movespeed_modifier(MOVESPEED_ID_SLIME_STATUS)
|
||||
|
||||
/datum/status_effect/stabilized/adamantine
|
||||
id = "stabilizedadamantine"
|
||||
|
||||
@@ -277,7 +277,7 @@
|
||||
H.add_trait(TRAIT_PIERCEIMMUNE, "dna_vault")
|
||||
if(VAULT_SPEED)
|
||||
to_chat(H, "<span class='notice'>Your legs feel faster.</span>")
|
||||
H.add_trait(TRAIT_GOTTAGOFAST, "dna_vault")
|
||||
H.add_movespeed_modifier(MOVESPEED_ID_DNA_VAULT, update=TRUE, priority=100, multiplicative_slowdown=-1, blacklisted_movetypes=(FLYING|FLOATING))
|
||||
if(VAULT_QUICK)
|
||||
to_chat(H, "<span class='notice'>Your arms move as fast as lightning.</span>")
|
||||
H.next_move_modifier = 0.5
|
||||
|
||||
Reference in New Issue
Block a user