From 0e3193e929784a3b6ffac2b3f89ff35b2e2e68fe Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Sat, 21 Mar 2020 08:04:26 -0700 Subject: [PATCH] relatively small 71 file 700 lines changed refactor/rework to combat mode/sprint and some miscellaneous things that totally aren't important (#11376) * combat refactoring * i hate this * mobility flags part 2 time xd * whew * stuff * a * ok * changes * Wew * k * add flags * FUCKYOUVORE * fixes * typo * no using this in hard stamcrit * update icon * woopsy * . = ..() * sigh * Update living_combat.dm * wew * wups * fix * i hate you * wrong button * k * ok * bet * k * Update code/modules/mob/living/living_combat.dm Co-Authored-By: Ghom <42542238+Ghommie@users.noreply.github.com> * Update code/modules/mob/living/living_combat.dm Co-Authored-By: Ghom <42542238+Ghommie@users.noreply.github.com> * Update code/modules/mob/living/living_combat.dm Co-Authored-By: Ghom <42542238+Ghommie@users.noreply.github.com> * early returns * skreee * agony * k * k * k * k * wack * compile * wack Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com> --- code/__DEFINES/citadel_defines.dm | 10 - code/__DEFINES/combat.dm | 49 +++ code/__DEFINES/dcs/signals.dm | 3 + code/__DEFINES/maths.dm | 5 +- code/__DEFINES/status_effects.dm | 3 + code/__DEFINES/traits.dm | 9 + code/_globalvars/bitfields.dm | 11 + code/_onclick/hud/human.dm | 2 +- code/_onclick/item_attack.dm | 12 +- .../subsystem/processing/status_effects.dm | 3 + code/datums/components/phantomthief.dm | 2 +- code/datums/mind.dm | 3 +- code/datums/status_effects/buffs.dm | 14 +- code/datums/status_effects/debuffs.dm | 41 +- code/datums/status_effects/gas.dm | 1 + code/datums/status_effects/neutral.dm | 6 +- code/datums/status_effects/status_effect.dm | 21 +- .../datums/weather/weather_types/ash_storm.dm | 2 +- .../machinery/porta_turret/portable_turret.dm | 2 +- code/game/objects/items.dm | 4 +- code/game/objects/items/melee/misc.dm | 2 +- code/game/objects/items/mop.dm | 2 +- code/game/objects/items/robot/robot_items.dm | 4 +- code/game/objects/items/stunbaton.dm | 2 +- code/game/objects/items/twohanded.dm | 4 +- .../objects/structures/beds_chairs/chair.dm | 2 +- code/game/turfs/open.dm | 2 +- code/modules/clothing/glasses/phantomthief.dm | 4 +- code/modules/keybindings/bindings_carbon.dm | 2 +- code/modules/keybindings/bindings_human.dm | 4 +- .../mob/living/carbon/alien/alien_defense.dm | 2 +- .../mob/living/carbon/alien/larva/life.dm | 2 +- code/modules/mob/living/carbon/carbon.dm | 13 +- .../mob/living/carbon/carbon_combat.dm | 6 + .../mob/living/carbon/carbon_defense.dm | 10 +- .../mob/living/carbon/carbon_sprint.dm | 18 + code/modules/mob/living/carbon/death.dm | 7 +- code/modules/mob/living/carbon/examine.dm | 2 +- code/modules/mob/living/carbon/human/human.dm | 2 +- .../mob/living/carbon/human/human_defines.dm | 3 + .../mob/living/carbon/human/human_mobility.dm | 11 +- .../mob/living/carbon/human/human_movement.dm | 17 +- .../mob/living/carbon/human/species.dm | 37 +- code/modules/mob/living/carbon/life.dm | 6 +- code/modules/mob/living/carbon/monkey/life.dm | 2 +- code/modules/mob/living/living.dm | 13 +- code/modules/mob/living/living_combat.dm | 88 +++++ code/modules/mob/living/living_defines.dm | 19 + code/modules/mob/living/living_mobility.dm | 16 +- code/modules/mob/living/living_movement.dm | 8 + code/modules/mob/living/living_sprint.dm | 79 ++++ .../living/silicon/robot/robot_movement.dm | 12 + .../mob/living/silicon/robot/robot_sprint.dm | 12 + code/modules/mob/living/silicon/silicon.dm | 2 + .../mob/living/simple_animal/bot/ed209bot.dm | 4 +- .../mob/living/simple_animal/bot/secbot.dm | 4 +- code/modules/mob/living/status_procs.dm | 372 +++++++++++------- code/modules/projectiles/gun.dm | 10 +- .../projectiles/guns/ballistic/shotgun.dm | 2 +- .../crossbreeding/_status_effects.dm | 29 +- code/modules/vehicles/secway.dm | 6 +- icons/mob/screen_alert.dmi | Bin 105984 -> 107830 bytes .../code/_onclick/hud/screen_objects.dm | 8 +- modular_citadel/code/_onclick/hud/sprint.dm | 6 +- modular_citadel/code/_onclick/hud/stamina.dm | 4 +- .../code/datums/status_effects/chems.dm | 10 +- .../effects/temporary_visuals/souldeath.dm | 2 +- .../code/modules/mob/living/carbon/carbon.dm | 52 +-- .../modules/mob/living/carbon/damage_procs.dm | 20 +- .../mob/living/carbon/human/human_movement.dm | 37 -- .../code/modules/mob/living/damage_procs.dm | 3 - .../code/modules/mob/living/living.dm | 49 +-- .../living/silicon/robot/robot_movement.dm | 30 -- modular_citadel/icons/ui/screen_clockwork.dmi | Bin 3641 -> 4327 bytes modular_citadel/icons/ui/screen_midnight.dmi | Bin 5740 -> 6702 bytes modular_citadel/icons/ui/screen_operative.dmi | Bin 5638 -> 5839 bytes .../icons/ui/screen_plasmafire.dmi | Bin 5141 -> 5343 bytes modular_citadel/icons/ui/screen_slimecore.dmi | Bin 4843 -> 5021 bytes tgstation.dme | 8 +- 79 files changed, 788 insertions(+), 486 deletions(-) create mode 100644 code/controllers/subsystem/processing/status_effects.dm create mode 100644 code/modules/mob/living/carbon/carbon_combat.dm create mode 100644 code/modules/mob/living/carbon/carbon_sprint.dm create mode 100644 code/modules/mob/living/living_combat.dm create mode 100644 code/modules/mob/living/living_sprint.dm create mode 100644 code/modules/mob/living/silicon/robot/robot_sprint.dm delete mode 100644 modular_citadel/code/modules/mob/living/carbon/human/human_movement.dm delete mode 100644 modular_citadel/code/modules/mob/living/silicon/robot/robot_movement.dm diff --git a/code/__DEFINES/citadel_defines.dm b/code/__DEFINES/citadel_defines.dm index 43555a425b..7bcca68713 100644 --- a/code/__DEFINES/citadel_defines.dm +++ b/code/__DEFINES/citadel_defines.dm @@ -89,14 +89,6 @@ #define XENOBIO_UPGRADE_SLIMEBASIC 2 #define XENOBIO_UPGRADE_SLIMEADV 4 -//stamina stuff -#define STAMINA_SOFTCRIT 100 //softcrit for stamina damage. prevents standing up, prevents performing actions that cost stamina, etc, but doesn't force a rest or stop movement -#define STAMINA_CRIT 140 //crit for stamina damage. forces a rest, and stops movement until stamina goes back to stamina softcrit -#define STAMINA_SOFTCRIT_TRADITIONAL 0 //same as STAMINA_SOFTCRIT except for the more traditional health calculations -#define STAMINA_CRIT_TRADITIONAL -40 //ditto, but for STAMINA_CRIT - -#define CRAWLUNDER_DELAY 30 //Delay for crawling under a standing mob - //Citadel toggles because bitflag memes #define MEDIHOUND_SLEEPER (1<<0) #define EATING_NOISES (1<<1) @@ -114,8 +106,6 @@ #define TOGGLES_CITADEL (EATING_NOISES|DIGESTION_NOISES|BREAST_ENLARGEMENT|PENIS_ENLARGEMENT) //component stuff -#define COMSIG_COMBAT_TOGGLED "combatmode_toggled" //called by combat mode toggle on all equipped items. args: (mob/user, combatmode) - #define COMSIG_VORE_TOGGLED "voremode_toggled" // totally not copypasta //belly sound pref things diff --git a/code/__DEFINES/combat.dm b/code/__DEFINES/combat.dm index 4304af77f3..c750119701 100644 --- a/code/__DEFINES/combat.dm +++ b/code/__DEFINES/combat.dm @@ -29,7 +29,54 @@ #define EFFECT_DROWSY "drowsy" #define EFFECT_JITTER "jitter" +// /mob/living/combat_flags +#define CAN_TOGGLE_COMBAT_MODE(mob) FORCE_BOOLEAN((mob.stat == CONSCIOUS) && !(mob.combat_flags & COMBAT_FLAG_HARD_STAMCRIT)) + +/// Default combat flags for those affected by ((stamina combat)) +#define COMBAT_FLAGS_DEFAULT NONE +/// Default combat flags for everyone else (so literally everyone but humans) +#define COMBAT_FLAGS_STAMSYSTEM_EXEMPT (COMBAT_FLAG_SPRINT_ACTIVE | COMBAT_FLAG_COMBAT_ACTIVE | COMBAT_FLAG_SPRINT_TOGGLED | COMBAT_FLAG_COMBAT_TOGGLED) +/// Default combat flags for those only affected by sprint (so just silicons) +#define COMBAT_FLAGS_STAMEXEMPT_YESSPRINT (COMBAT_FLAG_COMBAT_ACTIVE | COMBAT_FLAG_COMBAT_TOGGLED) + +/// The user wants combat mode on +#define COMBAT_FLAG_COMBAT_TOGGLED (1<<0) +/// The user wants sprint mode on +#define COMBAT_FLAG_SPRINT_TOGGLED (1<<1) +/// Combat mode is currently active +#define COMBAT_FLAG_COMBAT_ACTIVE (1<<2) +/// Sprint is currently active +#define COMBAT_FLAG_SPRINT_ACTIVE (1<<3) +/// Currently attempting to crawl under someone +#define COMBAT_FLAG_ATTEMPTING_CRAWL (1<<4) +/// Currently stamcritted +#define COMBAT_FLAG_HARD_STAMCRIT (1<<5) +/// Currently attempting to resist up from the ground +#define COMBAT_FLAG_RESISTING_REST (1<<6) +/// Intentionally resting +#define COMBAT_FLAG_INTENTIONALLY_RESTING (1<<7) +/// Currently stamcritted but not as violently +#define COMBAT_FLAG_SOFT_STAMCRIT (1<<8) + +// Helpers for getting someone's stamcrit state. Cast to living. +#define NOT_STAMCRIT 0 +#define SOFT_STAMCRIT 1 +#define HARD_STAMCRIT 2 + +// Stamcrit check helpers +#define IS_STAMCRIT(mob) (CHECK_STAMCRIT(mob) != NOT_STAMCRIT) +#define CHECK_STAMCRIT(mob) ((mob.combat_flags & COMBAT_FLAG_HARD_STAMCRIT)? HARD_STAMCRIT : ((mob.combat_flags & COMBAT_FLAG_SOFT_STAMCRIT)? SOFT_STAMCRIT : NOT_STAMCRIT)) + +//stamina stuff +#define STAMINA_SOFTCRIT 100 //softcrit for stamina damage. prevents standing up, prevents performing actions that cost stamina, etc, but doesn't force a rest or stop movement +#define STAMINA_CRIT 140 //crit for stamina damage. forces a rest, and stops movement until stamina goes back to stamina softcrit +#define STAMINA_SOFTCRIT_TRADITIONAL 0 //same as STAMINA_SOFTCRIT except for the more traditional health calculations +#define STAMINA_CRIT_TRADITIONAL -40 //ditto, but for STAMINA_CRIT + +#define CRAWLUNDER_DELAY 30 //Delay for crawling under a standing mob + //Bitflags defining which status effects could be or are inflicted on a mob +// This is a bit out of date/inaccurate in light of all the new status effects and is probably pending rework. #define CANSTUN (1<<0) #define CANKNOCKDOWN (1<<1) #define CANUNCONSCIOUS (1<<2) @@ -203,3 +250,5 @@ GLOBAL_LIST_INIT(shove_disarming_types, typecacheof(list( #define BULLET_ACT_BLOCK "BLOCK" //It's a blocked hit, whatever that means in the context of the thing it's hitting. #define BULLET_ACT_FORCE_PIERCE "PIERCE" //It pierces through the object regardless of the bullet being piercing by default. #define BULLET_ACT_TURF "TURF" //It hit us but it should hit something on the same turf too. Usually used for turfs. + + diff --git a/code/__DEFINES/dcs/signals.dm b/code/__DEFINES/dcs/signals.dm index c4e57154c2..3d76390ce1 100644 --- a/code/__DEFINES/dcs/signals.dm +++ b/code/__DEFINES/dcs/signals.dm @@ -186,6 +186,8 @@ #define COMSIG_LIVING_REVIVE "living_revive" //from base of mob/living/revive() (full_heal, admin_revive) #define COMSIG_MOB_CLIENT_LOGIN "comsig_mob_client_login" //sent when a mob/login() finishes: (client) #define COMSIG_LIVING_GUN_PROCESS_FIRE "living_gun_process_fire" //from base of /obj/item/gun/proc/process_fire(): (atom/target, params, zone_override) +#define COMSIG_LIVING_COMBAT_ENABLED "combatmode_enabled" //from base of mob/living/enable_combat_mode() (was_forced) +#define COMSIG_LIVING_COMBAT_DISABLED "combatmode_disabled" //from base of mob/living/disable_combat_mode() (was_forced) //ALL OF THESE DO NOT TAKE INTO ACCOUNT WHETHER AMOUNT IS 0 OR LOWER AND ARE SENT REGARDLESS! #define COMSIG_LIVING_STATUS_STUN "living_stun" //from base of mob/living/Stun() (amount, update, ignore) @@ -195,6 +197,7 @@ #define COMSIG_LIVING_STATUS_UNCONSCIOUS "living_unconscious" //from base of mob/living/Unconscious() (amount, update, ignore) #define COMSIG_LIVING_STATUS_SLEEP "living_sleeping" //from base of mob/living/Sleeping() (amount, update, ignore) #define COMSIG_LIVING_STATUS_DAZE "living_daze" //from base of mob/living/Daze() (amount, update, ignore) +#define COMSIG_LIVING_STATUS_STAGGER "living_stagger" //from base of mob/living/Stagger() (amount, update, ignore) #define COMPONENT_NO_STUN 1 //For all of them // /mob/living/carbon signals diff --git a/code/__DEFINES/maths.dm b/code/__DEFINES/maths.dm index 939f6698cb..6d263473b0 100644 --- a/code/__DEFINES/maths.dm +++ b/code/__DEFINES/maths.dm @@ -201,4 +201,7 @@ #define RULE_OF_THREE(a, b, x) ((a*x)/b) // ) -#define MANHATTAN_DISTANCE(a, b) (abs(a.x - b.x) + abs(a.y - b.y)) \ No newline at end of file +#define MANHATTAN_DISTANCE(a, b) (abs(a.x - b.x) + abs(a.y - b.y)) + +/// Make sure something is a boolean TRUE/FALSE 1/0 value, since things like bitfield & bitflag doesn't always give 1s and 0s. +#define FORCE_BOOLEAN(x) ((x)? TRUE : FALSE) diff --git a/code/__DEFINES/status_effects.dm b/code/__DEFINES/status_effects.dm index ef86db07cb..a7ffd1c543 100644 --- a/code/__DEFINES/status_effects.dm +++ b/code/__DEFINES/status_effects.dm @@ -53,6 +53,9 @@ #define STATUS_EFFECT_SLEEPING /datum/status_effect/incapacitating/sleeping //the affected is asleep +/// Blocks sprint +#define STATUS_EFFECT_STAGGERED /datum/status_effect/staggered + #define STATUS_EFFECT_TASED_WEAK /datum/status_effect/electrode //not as crippling, just slows down #define STATUS_EFFECT_TASED /datum/status_effect/electrode/no_combat_mode //the affected has been tased, preventing fine muscle control diff --git a/code/__DEFINES/traits.dm b/code/__DEFINES/traits.dm index bdc5a38f65..4f4b7c6baa 100644 --- a/code/__DEFINES/traits.dm +++ b/code/__DEFINES/traits.dm @@ -162,6 +162,15 @@ #define TRAIT_SWIMMING "swimming" //only applied by /datum/element/swimming, for checking +/** + * COMBAT MODE/SPRINT MODE TRAITS + */ + +/// Prevents combat mode from being active. +#define TRAIT_COMBAT_MODE_LOCKED "combatmode_locked" +/// Prevents sprinting from being active. +#define TRAIT_SPRINT_LOCKED "sprint_locked" + //non-mob traits #define TRAIT_PARALYSIS "paralysis" //Used for limb-based paralysis, where replacing the limb will fix it diff --git a/code/_globalvars/bitfields.dm b/code/_globalvars/bitfields.dm index b4cc682075..5367322d8e 100644 --- a/code/_globalvars/bitfields.dm +++ b/code/_globalvars/bitfields.dm @@ -238,5 +238,16 @@ GLOBAL_LIST_INIT(bitfields, list( "MOBILITY_PULL" = MOBILITY_PULL, "MOBILITY_HOLD" = MOBILITY_HOLD, "MOBILITY_RESIST" = MOBILITY_RESIST + ), + "combat_flags" = list( + "COMBAT_FLAG_COMBAT_TOGGLED" = COMBAT_FLAG_COMBAT_TOGGLED, + "COMBAT_FLAG_SPRINT_TOGGLED" = COMBAT_FLAG_SPRINT_TOGGLED, + "COMBAT_FLAG_COMBAT_ACTIVE" = COMBAT_FLAG_COMBAT_ACTIVE, + "COMBAT_FLAG_SPRINT_ACTIVE" = COMBAT_FLAG_SPRINT_ACTIVE, + "COMBAT_FLAG_ATTEMPTING_CRAWL" = COMBAT_FLAG_ATTEMPTING_CRAWL, + "COMBAT_FLAG_HARD_STAMCRIT" = COMBAT_FLAG_HARD_STAMCRIT, + "COMBAT_FLAG_SOFT_STAMCRIT" = COMBAT_FLAG_SOFT_STAMCRIT, + "COMBAT_FLAG_INTENTIONALLY_RESTING" = COMBAT_FLAG_INTENTIONALLY_RESTING, + "COMBAT_FLAG_RESISTING_REST" = COMBAT_FLAG_RESISTING_REST ) )) diff --git a/code/_onclick/hud/human.dm b/code/_onclick/hud/human.dm index a6d7286e80..490f0aa0f0 100644 --- a/code/_onclick/hud/human.dm +++ b/code/_onclick/hud/human.dm @@ -128,7 +128,7 @@ //CITADEL CHANGES - sprint button using = new /obj/screen/sprintbutton using.icon = tg_ui_icon_to_cit_ui(ui_style) - using.icon_state = (owner.sprinting ? "act_sprint_on" : "act_sprint") + using.icon_state = ((owner.combat_flags & COMBAT_FLAG_SPRINT_ACTIVE) ? "act_sprint_on" : "act_sprint") using.screen_loc = ui_movi using.hud = src static_inventory += using diff --git a/code/_onclick/item_attack.dm b/code/_onclick/item_attack.dm index 2fa2a8e85f..fe407509fe 100644 --- a/code/_onclick/item_attack.dm +++ b/code/_onclick/item_attack.dm @@ -11,7 +11,7 @@ if(item_flags & NO_ATTACK_CHAIN_SOFT_STAMCRIT) if(isliving(user)) var/mob/living/L = user - if(L.getStaminaLoss() >= STAMINA_SOFTCRIT) + if(IS_STAMCRIT(L)) to_chat(L, "You are too exhausted to swing [src]!") return if(tool_behaviour && target.tool_act(user, src, tool_behaviour)) @@ -58,7 +58,7 @@ if(item_flags & NOBLUDGEON) return - if(user.getStaminaLoss() >= STAMINA_SOFTCRIT) // CIT CHANGE - makes it impossible to attack in stamina softcrit + if(IS_STAMCRIT(user)) // CIT CHANGE - makes it impossible to attack in stamina softcrit to_chat(user, "You're too exhausted.") // CIT CHANGE - ditto return // CIT CHANGE - ditto @@ -88,7 +88,7 @@ return if(item_flags & NOBLUDGEON) return - if(user.getStaminaLoss() >= STAMINA_SOFTCRIT) // CIT CHANGE - makes it impossible to attack in stamina softcrit + if(IS_STAMCRIT(user)) // CIT CHANGE - makes it impossible to attack in stamina softcrit to_chat(user, "You're too exhausted.") // CIT CHANGE - ditto return // CIT CHANGE - ditto user.adjustStaminaLossBuffered(getweight()*1.2)//CIT CHANGE - makes attacking things cause stamina loss @@ -109,10 +109,8 @@ /mob/living/attacked_by(obj/item/I, mob/living/user) //CIT CHANGES START HERE - combatmode and resting checks var/totitemdamage = I.force - if(iscarbon(user)) - var/mob/living/carbon/tempcarb = user - if(!tempcarb.combatmode) - totitemdamage *= 0.5 + if(!(user.combat_flags & COMBAT_FLAG_COMBAT_ACTIVE)) + totitemdamage *= 0.5 if(!CHECK_MOBILITY(user, MOBILITY_STAND)) totitemdamage *= 0.5 //CIT CHANGES END HERE diff --git a/code/controllers/subsystem/processing/status_effects.dm b/code/controllers/subsystem/processing/status_effects.dm new file mode 100644 index 0000000000..e8984a44cb --- /dev/null +++ b/code/controllers/subsystem/processing/status_effects.dm @@ -0,0 +1,3 @@ +PROCESSING_SUBSYSTEM_DEF(status_effects) + wait = 1 + flags = SS_TICKER diff --git a/code/datums/components/phantomthief.dm b/code/datums/components/phantomthief.dm index 7afe64994f..ede222d001 100644 --- a/code/datums/components/phantomthief.dm +++ b/code/datums/components/phantomthief.dm @@ -2,7 +2,7 @@ /datum/component/wearertargeting/phantomthief dupe_mode = COMPONENT_DUPE_UNIQUE_PASSARGS - signals = list(COMSIG_COMBAT_TOGGLED) + signals = list(COMSIG_LIVING_COMBAT_ENABLED) proctype = .proc/handlefilterstuff var/filter_x var/filter_y diff --git a/code/datums/mind.dm b/code/datums/mind.dm index edd5c25e2e..57b9a25904 100644 --- a/code/datums/mind.dm +++ b/code/datums/mind.dm @@ -95,8 +95,7 @@ SStgui.on_transfer(current, new_character) if(iscarbon(current)) var/mob/living/carbon/C = current - if(C.combatmode) - C.toggle_combat_mode(TRUE, TRUE) + C.disable_intentional_combat_mode(TRUE) if(!language_holder) var/datum/language_holder/mob_holder = new_character.get_language_holder(shadow = FALSE) language_holder = mob_holder.copy(src) diff --git a/code/datums/status_effects/buffs.dm b/code/datums/status_effects/buffs.dm index 43afcdd807..f9f9e22685 100644 --- a/code/datums/status_effects/buffs.dm +++ b/code/datums/status_effects/buffs.dm @@ -20,11 +20,11 @@ owner.adjustFireLoss(-15) /datum/status_effect/shadow_mend/on_remove() + . = ..() owner.visible_message("The violet light around [owner] glows black!", "The tendrils around you cinch tightly and reap their toll...") playsound(owner, 'sound/magic/teleport_diss.ogg', 50, 1) owner.apply_status_effect(STATUS_EFFECT_VOID_PRICE) - /datum/status_effect/void_price id = "void_price" duration = 300 @@ -84,6 +84,7 @@ progbar.update(duration - world.time) /datum/status_effect/vanguard_shield/on_remove() + . = ..() var/vanguard = owner.stun_absorption["vanguard"] var/stuns_blocked = 0 if(vanguard) @@ -107,7 +108,6 @@ owner.visible_message("[owner]'s glowing aura fades!", message_to_owner) owner.log_message("lost Vanguard stun immunity[stuns_blocked ? "and was stunned for [stuns_blocked]":""]", LOG_ATTACK) - /datum/status_effect/inathneqs_endowment id = "inathneqs_endowment" duration = 150 @@ -133,12 +133,12 @@ return ..() /datum/status_effect/inathneqs_endowment/on_remove() + . = ..() owner.log_message("lost Inath-neq's invulnerability", LOG_ATTACK) owner.visible_message("The light around [owner] flickers and dissipates!", "You feel Inath-neq's power fade from your body!") owner.status_flags &= ~GODMODE playsound(owner, 'sound/magic/ethereal_exit.ogg', 50, 1) - /datum/status_effect/cyborg_power_regen id = "power_regen" duration = 100 @@ -210,11 +210,11 @@ owner.adjustStaminaLoss(-(grace_heal * 25)) /datum/status_effect/his_grace/on_remove() + . = ..() owner.log_message("lost His Grace's stun immunity", LOG_ATTACK) if(islist(owner.stun_absorption) && owner.stun_absorption["hisgrace"]) owner.stun_absorption -= "hisgrace" - /datum/status_effect/wish_granters_gift //Fully revives after ten seconds. id = "wish_granters_gift" duration = 50 @@ -225,6 +225,7 @@ return ..() /datum/status_effect/wish_granters_gift/on_remove() + . = ..() owner.revive(full_heal = TRUE, admin_revive = TRUE) owner.visible_message("[owner] appears to wake from the dead, having healed all wounds!", "You have regenerated.") @@ -366,6 +367,7 @@ last_health = owner.health /datum/status_effect/blooddrunk/on_remove() + . = ..() tick() owner.maxHealth *= 0.1 owner.bruteloss *= 0.1 @@ -404,7 +406,6 @@ playsound(owner, 'sound/weapons/fwoosh.wav', 75, 0) return ..() - /datum/status_effect/sword_spin/tick() playsound(owner, 'sound/weapons/fwoosh.wav', 75, 0) var/obj/item/slashy @@ -413,9 +414,9 @@ slashy.attack(M, owner) /datum/status_effect/sword_spin/on_remove() + . = ..() owner.visible_message("[owner]'s inhuman strength dissipates and the sword's runes grow cold!") - //Used by changelings to rapidly heal //Heals 10 brute and oxygen damage every second, and 5 fire //Being on fire will suppress this healing @@ -472,6 +473,7 @@ return ..() /datum/status_effect/hippocraticOath/on_remove() + . = ..() REMOVE_TRAIT(owner, TRAIT_PACIFISM, "hippocraticOath") var/datum/atom_hud/H = GLOB.huds[DATA_HUD_MEDICAL_ADVANCED] H.remove_hud_from(owner) diff --git a/code/datums/status_effects/debuffs.dm b/code/datums/status_effects/debuffs.dm index b46dd58555..cf10244890 100644 --- a/code/datums/status_effects/debuffs.dm +++ b/code/datums/status_effects/debuffs.dm @@ -17,6 +17,7 @@ owner.update_stat() /datum/status_effect/incapacitating/on_remove() + . = ..() owner.update_mobility() if(needs_update_stat || issilicon(owner)) //silicons need stat updates in addition to normal canmove updates owner.update_stat() @@ -86,6 +87,15 @@ if(prob(10) && owner.health > owner.crit_threshold) owner.emote("snore") +/datum/status_effect/staggered + id = "staggered" + blocks_sprint = TRUE + +/datum/status_effect/staggered/on_creation(mob/living/new_owner, set_duration) + if(isnum(set_duration)) + duration = set_duration + return ..() + /obj/screen/alert/status_effect/asleep name = "Asleep" desc = "You've fallen asleep. Wait a bit and you should wake up. Unless you don't, considering how helpless you are." @@ -101,10 +111,6 @@ if(isnum(set_duration)) duration = set_duration . = ..() - if(iscarbon(owner)) - var/mob/living/carbon/C = owner - if(C.combatmode) - C.toggle_combat_mode(TRUE) /datum/status_effect/no_combat_mode/mesmerize id = "Mesmerize" @@ -143,8 +149,6 @@ last_tick = world.time if(iscarbon(owner)) var/mob/living/carbon/C = owner - if(C.combatmode) - C.toggle_combat_mode(TRUE) C.add_movespeed_modifier("[MOVESPEED_ID_TASED_STATUS]_[id]", TRUE, priority = slowdown_priority, override = TRUE, multiplicative_slowdown = slowdown, blacklisted_movetypes = affect_crawl? NONE : CRAWLING) /datum/status_effect/electrode/on_remove() @@ -174,15 +178,6 @@ blocks_combatmode = TRUE stamdmg_per_ds = 1 -/datum/status_effect/electrode/no_combat_mode/on_creation(mob/living/new_owner, set_duration) - . = ..() - if(iscarbon(owner)) - var/mob/living/carbon/C = owner - if(HAS_TRAIT(C, TRAIT_TASED_RESISTANCE)) - return - if(C.combatmode) - C.toggle_combat_mode(TRUE) - //OTHER DEBUFFS /datum/status_effect/his_wrath //does minor damage over time unless holding His Grace id = "his_wrath" @@ -220,6 +215,7 @@ alerttooltipstyle = "clockcult" /datum/status_effect/belligerent/on_apply() + . = ..() return do_movement_toggle(TRUE) /datum/status_effect/belligerent/tick() @@ -250,6 +246,7 @@ /datum/status_effect/belligerent/on_remove() if(owner.m_intent == MOVE_INTENT_WALK) owner.toggle_move_intent() + return ..() /datum/status_effect/maniamotor id = "maniamotor" @@ -349,6 +346,7 @@ alert_type = null /datum/status_effect/cultghost/on_apply() + . = ..() owner.see_invisible = SEE_INVISIBLE_OBSERVER owner.see_in_dark = 2 @@ -370,6 +368,7 @@ hammer_synced = new_hammer_synced /datum/status_effect/crusher_mark/on_apply() + . = ..() if(owner.mob_size >= MOB_SIZE_LARGE) marked_underlay = mutable_appearance('icons/effects/effects.dmi', "shield2") marked_underlay.pixel_x = -owner.pixel_x @@ -451,6 +450,7 @@ qdel(src) /datum/status_effect/saw_bleed/on_remove() + . = ..() if(needs_to_bleed) var/turf/T = get_turf(owner) new /obj/effect/temp_visual/bleed/explode(T) @@ -509,6 +509,7 @@ return ..() /datum/status_effect/necropolis_curse/on_remove() + . = ..() remove_curse(curse_flags) /datum/status_effect/necropolis_curse/proc/apply_curse(set_curse) @@ -598,6 +599,7 @@ old_oxyloss = owner.getOxyLoss() /datum/status_effect/kindle/on_remove() + . = ..() owner.visible_message("The light in [owner]'s eyes fades!", \ "You snap out of your daze!") @@ -617,11 +619,13 @@ alert_type = /obj/screen/alert/status_effect/ichorial_stain /datum/status_effect/ichorial_stain/on_apply() + . = ..() owner.visible_message("[owner] gets back up, [owner.p_their()] body dripping blue ichor!", \ "Thick blue ichor covers your body; you can't be revived like this again until it dries!") return TRUE /datum/status_effect/ichorial_stain/on_remove() + . = ..() owner.visible_message("The blue ichor on [owner]'s body dries out!", \ "The ichor on your body is dry - you can now be revived by vitality matrices again!") @@ -643,6 +647,7 @@ owner.add_movespeed_modifier(MOVESPEED_ID_ELECTROSTAFF, multiplicative_slowdown = 1, movetypes = GROUND) /datum/status_effect/electrostaff/on_remove() + . = ..() owner.remove_movespeed_modifier(MOVESPEED_ID_ELECTROSTAFF) //GOLEM GANG @@ -694,6 +699,7 @@ datum/status_effect/pacify /datum/status_effect/pacify/on_remove() REMOVE_TRAIT(owner, TRAIT_PACIFISM, "status_effect") + return ..() /datum/status_effect/trance id = "trance" @@ -715,6 +721,7 @@ datum/status_effect/pacify owner.dizziness = 20 /datum/status_effect/trance/on_apply() + . = ..() if(!iscarbon(owner)) return FALSE RegisterSignal(owner, COMSIG_MOVABLE_HEAR, .proc/hypnotize) @@ -735,6 +742,7 @@ datum/status_effect/pacify owner.dizziness = 0 owner.remove_client_colour(/datum/client_colour/monochrome/trance) to_chat(owner, "You snap out of your trance!") + return ..() /datum/status_effect/trance/proc/hypnotize(datum/source, list/hearing_args) if(!owner.can_hear()) @@ -820,8 +828,9 @@ datum/status_effect/pacify return var/mob/living/carbon/human/H = owner H.something_horrible(kill_either_way) + return ..() /obj/screen/alert/status_effect/dna_melt name = "Genetic Breakdown" desc = "I don't feel so good. Your body can't handle the mutations! You have one minute to remove your mutations, or you will be met with a horrible fate." - icon_state = "dna_melt" \ No newline at end of file + icon_state = "dna_melt" diff --git a/code/datums/status_effects/gas.dm b/code/datums/status_effects/gas.dm index 608dbb2d7a..d3d39e625a 100644 --- a/code/datums/status_effects/gas.dm +++ b/code/datums/status_effects/gas.dm @@ -40,6 +40,7 @@ owner.adjust_bodytemperature(100) owner.update_mobility() UnregisterSignal(owner, COMSIG_LIVING_RESIST) + return ..() /datum/status_effect/freon/watcher duration = 8 diff --git a/code/datums/status_effects/neutral.dm b/code/datums/status_effects/neutral.dm index cb2b4174b5..5f59359193 100644 --- a/code/datums/status_effects/neutral.dm +++ b/code/datums/status_effects/neutral.dm @@ -46,7 +46,7 @@ /datum/status_effect/syphon_mark/on_remove() get_kill() - . = ..() + return ..() /obj/screen/alert/status_effect/in_love name = "In Love" @@ -81,5 +81,5 @@ ADD_TRAIT(owner, TRAIT_SOOTHED_THROAT, "[STATUS_EFFECT_TRAIT]_[id]") /datum/status_effect/throat_soothed/on_remove() - . = ..() - REMOVE_TRAIT(owner, TRAIT_SOOTHED_THROAT, "[STATUS_EFFECT_TRAIT]_[id]") \ No newline at end of file + REMOVE_TRAIT(owner, TRAIT_SOOTHED_THROAT, "[STATUS_EFFECT_TRAIT]_[id]") + return ..() diff --git a/code/datums/status_effects/status_effect.dm b/code/datums/status_effects/status_effect.dm index 0d84aab763..e2114f0778 100644 --- a/code/datums/status_effects/status_effect.dm +++ b/code/datums/status_effects/status_effect.dm @@ -11,7 +11,10 @@ var/on_remove_on_mob_delete = FALSE //if we call on_remove() when the mob is deleted var/examine_text //If defined, this text will appear when the mob is examined - to use he, she etc. use "SUBJECTPRONOUN" and replace it in the examines themselves var/alert_type = /obj/screen/alert/status_effect //the alert thrown by the status effect, contains name and description - var/blocks_combatmode //Does this status effect prevent the user from toggling combat mode? + /// If this is TRUE, the user will have combt mode forcefully disabled while this is active. + var/blocks_combatmode = FALSE + /// If this is TRUE, the user will have sprint forcefully disabled while this is active. + var/blocks_sprint = FALSE var/obj/screen/alert/status_effect/linked_alert = null //the alert itself, if it exists /datum/status_effect/New(list/arguments) @@ -32,11 +35,11 @@ var/obj/screen/alert/status_effect/A = owner.throw_alert(id, alert_type) A.attached_effect = src //so the alert can reference us, if it needs to linked_alert = A //so we can reference the alert, if we need to - START_PROCESSING(SSfastprocess, src) + START_PROCESSING(SSstatus_effects, src) return TRUE /datum/status_effect/Destroy() - STOP_PROCESSING(SSfastprocess, src) + STOP_PROCESSING(SSstatus_effects, src) if(owner) owner.clear_alert(id) LAZYREMOVE(owner.status_effects, src) @@ -55,9 +58,21 @@ qdel(src) /datum/status_effect/proc/on_apply() //Called whenever the buff is applied; returning FALSE will cause it to autoremove itself. + SHOULD_CALL_PARENT(TRUE) + if(blocks_combatmode) + ADD_TRAIT(owner, TRAIT_COMBAT_MODE_LOCKED, src) + if(blocks_sprint) + ADD_TRAIT(owner, TRAIT_SPRINT_LOCKED, src) return TRUE + /datum/status_effect/proc/tick() //Called every tick. + /datum/status_effect/proc/on_remove() //Called whenever the buff expires or is removed; do note that at the point this is called, it is out of the owner's status_effects but owner is not yet null + SHOULD_CALL_PARENT(TRUE) + REMOVE_TRAIT(owner, TRAIT_COMBAT_MODE_LOCKED, src) + REMOVE_TRAIT(owner, TRAIT_SPRINT_LOCKED, src) + return TRUE + /datum/status_effect/proc/be_replaced() //Called instead of on_remove when a status effect is replaced by itself or when a status effect with on_remove_on_mob_delete = FALSE has its mob deleted owner.clear_alert(id) LAZYREMOVE(owner.status_effects, src) diff --git a/code/datums/weather/weather_types/ash_storm.dm b/code/datums/weather/weather_types/ash_storm.dm index 3247b890c6..b44778054e 100644 --- a/code/datums/weather/weather_types/ash_storm.dm +++ b/code/datums/weather/weather_types/ash_storm.dm @@ -94,7 +94,7 @@ if(is_ash_immune(L)) return if(is_species(L, /datum/species/lizard/ashwalker)) - if(L.getStaminaLoss() <= STAMINA_SOFTCRIT) + if(!IS_STAMCRIT(L)) L.adjustStaminaLossBuffered(4) return L.adjustFireLoss(4) diff --git a/code/game/machinery/porta_turret/portable_turret.dm b/code/game/machinery/porta_turret/portable_turret.dm index bab5c4d93e..ff79038a96 100644 --- a/code/game/machinery/porta_turret/portable_turret.dm +++ b/code/game/machinery/porta_turret/portable_turret.dm @@ -409,7 +409,7 @@ if(iscarbon(A)) var/mob/living/carbon/C = A //If not emagged, only target non downed carbons - if(mode != TURRET_LETHAL && (C.stat || C.handcuffed || C.recoveringstam))//CIT CHANGE - replaces check for lying with check for recoveringstam + if(mode != TURRET_LETHAL && (C.stat || C.handcuffed || (C.combat_flags & COMBAT_FLAG_HARD_STAMCRIT)))//CIT CHANGE - replaces check for lying with check for recoveringstam continue //If emagged, target all but dead carbons diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index a0f32fbb7b..5a215f0396 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -399,7 +399,7 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE) //If this were before the above checks, then trying to click on items would act a little funky and signal overrides wouldn't work. if(iscarbon(usr)) var/mob/living/carbon/C = usr - if(C.combatmode && ((C.CanReach(src) || (src in directaccess)) && (C.CanReach(over) || (over in directaccess)))) + if((C.combat_flags & COMBAT_FLAG_COMBAT_ACTIVE) && ((C.CanReach(src) || (src in directaccess)) && (C.CanReach(over) || (over in directaccess)))) if(!C.get_active_held_item()) C.UnarmedAttack(src, TRUE) if(C.get_active_held_item() == src) @@ -496,7 +496,7 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE) to_chat(user, "You cannot locate any organic eyes on this brain!") return - if(user.getStaminaLoss() >= STAMINA_SOFTCRIT)//CIT CHANGE - makes eyestabbing impossible if you're in stamina softcrit + if(IS_STAMCRIT(user))//CIT CHANGE - makes eyestabbing impossible if you're in stamina softcrit to_chat(user, "You're too exhausted for that.")//CIT CHANGE - ditto return //CIT CHANGE - ditto diff --git a/code/game/objects/items/melee/misc.dm b/code/game/objects/items/melee/misc.dm index 46e2095d0a..cbbd50b573 100644 --- a/code/game/objects/items/melee/misc.dm +++ b/code/game/objects/items/melee/misc.dm @@ -268,7 +268,7 @@ if(!on) return ..() - if(user.getStaminaLoss() >= STAMINA_SOFTCRIT)//CIT CHANGE - makes batons unusuable in stamina softcrit + if(IS_STAMCRIT(user))//CIT CHANGE - makes batons unusuable in stamina softcrit to_chat(user, "You're too exhausted for that.")//CIT CHANGE - ditto return //CIT CHANGE - ditto diff --git a/code/game/objects/items/mop.dm b/code/game/objects/items/mop.dm index 233eabd4ca..3a06c7d7fe 100644 --- a/code/game/objects/items/mop.dm +++ b/code/game/objects/items/mop.dm @@ -42,7 +42,7 @@ var/mob/living/L = user - if(istype(L) && L.getStaminaLoss() >= STAMINA_SOFTCRIT) + if(istype(L) && IS_STAMCRIT(L)) to_chat(user, "You're too exhausted for that.") return diff --git a/code/game/objects/items/robot/robot_items.dm b/code/game/objects/items/robot/robot_items.dm index fe1f3ebd6c..0ca2fbd386 100644 --- a/code/game/objects/items/robot/robot_items.dm +++ b/code/game/objects/items/robot/robot_items.dm @@ -80,7 +80,7 @@ else user.visible_message("[user] hugs [M] to make [M.p_them()] feel better!", \ "You hug [M] to make [M.p_them()] feel better!") - if(M.resting && !M.recoveringstam) + if(M.resting && !(M.combat_flags & COMBAT_FLAG_HARD_STAMCRIT)) M.set_resting(FALSE, TRUE) else user.visible_message("[user] pets [M]!", \ @@ -99,7 +99,7 @@ else user.visible_message("[user] hugs [M] in a firm bear-hug! [M] looks uncomfortable...", \ "You hug [M] firmly to make [M.p_them()] feel better! [M] looks uncomfortable...") - if(!CHECK_MOBILITY(M, MOBILITY_STAND) && !M.recoveringstam) + if(!CHECK_MOBILITY(M, MOBILITY_STAND) && !(M.combat_flags & COMBAT_FLAG_HARD_STAMCRIT)) M.set_resting(FALSE, TRUE) else user.visible_message("[user] bops [M] on the head!", \ diff --git a/code/game/objects/items/stunbaton.dm b/code/game/objects/items/stunbaton.dm index 78ba6d4f5f..f821f47466 100644 --- a/code/game/objects/items/stunbaton.dm +++ b/code/game/objects/items/stunbaton.dm @@ -153,7 +153,7 @@ return FALSE if(status && HAS_TRAIT(user, TRAIT_CLUMSY) && prob(50)) clowning_around(user) - if(user.getStaminaLoss() >= STAMINA_SOFTCRIT) //CIT CHANGE - makes it impossible to baton in stamina softcrit + if(IS_STAMCRIT(user)) //CIT CHANGE - makes it impossible to baton in stamina softcrit to_chat(user, "You're too exhausted for that.") return TRUE if(ishuman(M)) diff --git a/code/game/objects/items/twohanded.dm b/code/game/objects/items/twohanded.dm index 5137e1af42..b188250fff 100644 --- a/code/game/objects/items/twohanded.dm +++ b/code/game/objects/items/twohanded.dm @@ -248,7 +248,7 @@ /obj/item/twohanded/fireaxe/afterattack(atom/A, mob/living/user, proximity) . = ..() - if(!proximity || (user.getStaminaLoss() > STAMINA_SOFTCRIT)) + if(!proximity || IS_STAMCRIT(user)) //don't make stamcrit message they'll already have gotten one from the primary attack. return if(wielded) //destroys windows and grilles in one hit (or more if it has a ton of health like plasmaglass) if(istype(A, /obj/structure/window)) @@ -1171,7 +1171,7 @@ turn_off() /obj/item/twohanded/electrostaff/attack(mob/living/target, mob/living/user) - if(user.getStaminaLoss() >= STAMINA_SOFTCRIT)//CIT CHANGE - makes it impossible to baton in stamina softcrit + if(IS_STAMCRIT(user))//CIT CHANGE - makes it impossible to baton in stamina softcrit to_chat(user, "You're too exhausted for that.")//CIT CHANGE - ditto return //CIT CHANGE - ditto if(on && HAS_TRAIT(user, TRAIT_CLUMSY) && prob(50)) diff --git a/code/game/objects/structures/beds_chairs/chair.dm b/code/game/objects/structures/beds_chairs/chair.dm index e0c2d6e2c7..06c1d96711 100644 --- a/code/game/objects/structures/beds_chairs/chair.dm +++ b/code/game/objects/structures/beds_chairs/chair.dm @@ -101,7 +101,7 @@ if(!user.canUseTopic(src, BE_CLOSE, ismonkey(user))) to_chat(user, "You can't do that right now!") return TRUE - if(user.getStaminaLoss() >= STAMINA_SOFTCRIT) + if(IS_STAMCRIT(user)) to_chat(user, "You're too exhausted for that.") return TRUE var/mob/living/poordude = buckled_mobs[1] diff --git a/code/game/turfs/open.dm b/code/game/turfs/open.dm index 066249505d..d5b5cfc695 100644 --- a/code/game/turfs/open.dm +++ b/code/game/turfs/open.dm @@ -260,7 +260,7 @@ return FALSE if(ishuman(C) && !(lube & SLIP_WHEN_JOGGING)) var/mob/living/carbon/human/H = C - if(!H.sprinting && H.getStaminaLoss() <= 20) + if(!(H.combat_flags & COMBAT_FLAG_SPRINT_ACTIVE) && H.getStaminaLoss() <= 20) return FALSE if(!(lube&SLIDE_ICE)) to_chat(C, "You slipped[ O ? " on the [O.name]" : ""]!") diff --git a/code/modules/clothing/glasses/phantomthief.dm b/code/modules/clothing/glasses/phantomthief.dm index 96f5cfc201..1c9afcfd6f 100644 --- a/code/modules/clothing/glasses/phantomthief.dm +++ b/code/modules/clothing/glasses/phantomthief.dm @@ -35,10 +35,10 @@ return if(slot != SLOT_GLASSES) return - RegisterSignal(user, COMSIG_COMBAT_TOGGLED, .proc/injectadrenaline) + RegisterSignal(user, COMSIG_LIVING_COMBAT_ENABLED, .proc/injectadrenaline) /obj/item/clothing/glasses/phantomthief/syndicate/dropped(mob/user) . = ..() if(!istype(user)) return - UnregisterSignal(user, COMSIG_COMBAT_TOGGLED) + UnregisterSignal(user, COMSIG_LIVING_COMBAT_ENABLED) diff --git a/code/modules/keybindings/bindings_carbon.dm b/code/modules/keybindings/bindings_carbon.dm index eef170cea9..e344bc9d20 100644 --- a/code/modules/keybindings/bindings_carbon.dm +++ b/code/modules/keybindings/bindings_carbon.dm @@ -4,6 +4,6 @@ toggle_throw_mode() return if("C") - toggle_combat_mode() + user_toggle_intentional_combat_mode() return return ..() \ No newline at end of file diff --git a/code/modules/keybindings/bindings_human.dm b/code/modules/keybindings/bindings_human.dm index ed033935b2..9569de338c 100644 --- a/code/modules/keybindings/bindings_human.dm +++ b/code/modules/keybindings/bindings_human.dm @@ -59,11 +59,11 @@ switch(_key) if("Shift") if(!user.prefs.sprint_spacebar) - user.prefs.sprint_toggle ? togglesprint() : sprint_hotkey(TRUE) //Yes, this looks hacky. Yes, this works. + user.prefs.sprint_toggle ? default_toggle_sprint() : sprint_hotkey(TRUE) //Yes, this looks hacky. Yes, this works. return if("Space") if(user.prefs.sprint_spacebar) - user.prefs.sprint_toggle ? togglesprint() : sprint_hotkey(TRUE) + user.prefs.sprint_toggle ? default_toggle_sprint() : sprint_hotkey(TRUE) return return ..() diff --git a/code/modules/mob/living/carbon/alien/alien_defense.dm b/code/modules/mob/living/carbon/alien/alien_defense.dm index fda136df0b..cdb8aff2c6 100644 --- a/code/modules/mob/living/carbon/alien/alien_defense.dm +++ b/code/modules/mob/living/carbon/alien/alien_defense.dm @@ -21,7 +21,7 @@ In all, this is a lot like the monkey code. /N return switch(M.a_intent) if (INTENT_HELP) - if(!recoveringstam) + if(!(combat_flags & COMBAT_FLAG_HARD_STAMCRIT)) set_resting(FALSE, TRUE, FALSE) AdjustAllImmobility(-60, FALSE) AdjustUnconscious(-60, FALSE) diff --git a/code/modules/mob/living/carbon/alien/larva/life.dm b/code/modules/mob/living/carbon/alien/larva/life.dm index 4d362ca554..00d929a1e0 100644 --- a/code/modules/mob/living/carbon/alien/larva/life.dm +++ b/code/modules/mob/living/carbon/alien/larva/life.dm @@ -27,7 +27,7 @@ else if(stat == UNCONSCIOUS) stat = CONSCIOUS - if(!recoveringstam) + if(!(combat_flags & COMBAT_FLAG_HARD_STAMCRIT)) set_resting(FALSE, TRUE) adjust_blindness(-1) update_mobility() diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm index 5bb1e6d17d..f5f9a734ae 100644 --- a/code/modules/mob/living/carbon/carbon.dm +++ b/code/modules/mob/living/carbon/carbon.dm @@ -153,7 +153,7 @@ return //CIT CHANGES - makes it impossible to throw while in stamina softcrit - if(getStaminaLoss() >= STAMINA_SOFTCRIT) + if(IS_STAMCRIT(src)) to_chat(src, "You're too exhausted.") return var/random_turn = a_intent == INTENT_HARM @@ -448,7 +448,7 @@ modifier -= 40 //Clumsy people are more likely to hit themselves -Honk! //CIT CHANGES START HERE - else if(combatmode) + else if(combat_flags & COMBAT_FLAG_COMBAT_ACTIVE) modifier += 50 if(modifier < 100) @@ -820,15 +820,13 @@ return if(IsUnconscious() || IsSleeping() || getOxyLoss() > 50 || (HAS_TRAIT(src, TRAIT_DEATHCOMA)) || (health <= HEALTH_THRESHOLD_FULLCRIT && !HAS_TRAIT(src, TRAIT_NOHARDCRIT))) stat = UNCONSCIOUS + disable_intentional_combat_mode(FALSE, FALSE) if(!eye_blind) blind_eyes(1) - if(combatmode) - toggle_combat_mode(TRUE, TRUE) else if(health <= crit_threshold && !HAS_TRAIT(src, TRAIT_NOSOFTCRIT)) stat = SOFT_CRIT - if(combatmode) - toggle_combat_mode(TRUE, TRUE) + disable_intentional_combat_mode(FALSE, FALSE) else stat = CONSCIOUS adjust_blindness(-1) @@ -1011,8 +1009,7 @@ return TRUE /mob/living/carbon/transfer_ckey(mob/new_mob, send_signal = TRUE) - if(combatmode) - toggle_combat_mode(TRUE, TRUE) + disable_intentional_combat_mode(TRUE, FALSE) return ..() /mob/living/carbon/can_see_reagents() diff --git a/code/modules/mob/living/carbon/carbon_combat.dm b/code/modules/mob/living/carbon/carbon_combat.dm new file mode 100644 index 0000000000..f43d850401 --- /dev/null +++ b/code/modules/mob/living/carbon/carbon_combat.dm @@ -0,0 +1,6 @@ +/mob/living/carbon/enable_intentional_combat_mode() + . = ..() + if(.) + if(voremode) + toggle_vore_mode() + diff --git a/code/modules/mob/living/carbon/carbon_defense.dm b/code/modules/mob/living/carbon/carbon_defense.dm index 8bd1a35e07..32d8d7e605 100644 --- a/code/modules/mob/living/carbon/carbon_defense.dm +++ b/code/modules/mob/living/carbon/carbon_defense.dm @@ -79,13 +79,11 @@ /mob/living/carbon/attacked_by(obj/item/I, mob/living/user) //CIT CHANGES START HERE - combatmode and resting checks var/totitemdamage = I.force - if(iscarbon(user)) - var/mob/living/carbon/tempcarb = user - if(!tempcarb.combatmode) - totitemdamage *= 0.5 + if(!(user.combat_flags & COMBAT_FLAG_COMBAT_ACTIVE)) + totitemdamage *= 0.5 if(!CHECK_MOBILITY(user, MOBILITY_STAND)) totitemdamage *= 0.5 - if(!combatmode) + if(!(combat_flags & COMBAT_FLAG_COMBAT_ACTIVE)) totitemdamage *= 1.5 //CIT CHANGES END HERE if(user != src && check_shields(I, totitemdamage, "the [I.name]", MELEE_ATTACK, I.armour_penetration)) @@ -348,7 +346,7 @@ AdjustAllImmobility(-60, FALSE) AdjustUnconscious(-60, FALSE) AdjustSleeping(-100, FALSE) - if(recoveringstam) + if(combat_flags & COMBAT_FLAG_HARD_STAMCRIT) adjustStaminaLoss(-15) else set_resting(FALSE, FALSE) diff --git a/code/modules/mob/living/carbon/carbon_sprint.dm b/code/modules/mob/living/carbon/carbon_sprint.dm new file mode 100644 index 0000000000..63d3e03356 --- /dev/null +++ b/code/modules/mob/living/carbon/carbon_sprint.dm @@ -0,0 +1,18 @@ +/// Sprint buffer /// +/mob/living/carbon/doSprintLossTiles(tiles) + doSprintBufferRegen(FALSE) //first regen. + if(sprint_buffer) + var/use = min(tiles, sprint_buffer) + sprint_buffer -= use + tiles -= use + update_hud_sprint_bar() + if(!tiles) //we had enough, we're done! + return + adjustStaminaLoss(tiles * sprint_stamina_cost) //use stamina to cover deficit. + +/mob/living/carbon/proc/doSprintBufferRegen(updating = TRUE) + var/diff = world.time - sprint_buffer_regen_last + sprint_buffer_regen_last = world.time + sprint_buffer = min(sprint_buffer_max, sprint_buffer + sprint_buffer_regen_ds * diff) + if(updating) + update_hud_sprint_bar() diff --git a/code/modules/mob/living/carbon/death.dm b/code/modules/mob/living/carbon/death.dm index e0c394b2e0..28e0f2028d 100644 --- a/code/modules/mob/living/carbon/death.dm +++ b/code/modules/mob/living/carbon/death.dm @@ -7,8 +7,8 @@ if(!gibbed) emote("deathgasp") - if(combatmode) - toggle_combat_mode(TRUE, TRUE) + + disable_intentional_combat_mode(TRUE, FALSE) . = ..() @@ -67,6 +67,5 @@ BP.throw_at(get_edge_target_turf(src,pick(GLOB.alldirs)),rand(1,3),5) /mob/living/carbon/ghostize(can_reenter_corpse = TRUE, special = FALSE, penalize = FALSE, voluntary = FALSE) - if(combatmode) - toggle_combat_mode(TRUE, TRUE) + disable_intentional_combat_mode(TRUE, FALSE) return ..() diff --git a/code/modules/mob/living/carbon/examine.dm b/code/modules/mob/living/carbon/examine.dm index efd81c1744..1ee3369701 100644 --- a/code/modules/mob/living/carbon/examine.dm +++ b/code/modules/mob/living/carbon/examine.dm @@ -90,7 +90,7 @@ if(digitalcamo) . += "[t_He] [t_is] moving [t_his] body in an unnatural and blatantly unsimian manner." - if(combatmode) + if(combat_flags & COMBAT_FLAG_COMBAT_ACTIVE) . += "[t_He] [t_is] visibly tense[CHECK_MOBILITY(src, MOBILITY_STAND) ? "." : ", and [t_is] standing in combative stance."]" var/trait_exam = common_trait_examine() diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index 28f4d243cd..3c064d9525 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -29,7 +29,7 @@ . = ..() if(CONFIG_GET(flag/disable_stambuffer)) - togglesprint() + enable_intentional_sprint_mode() RegisterSignal(src, COMSIG_COMPONENT_CLEAN_ACT, /atom.proc/clean_blood) diff --git a/code/modules/mob/living/carbon/human/human_defines.dm b/code/modules/mob/living/carbon/human/human_defines.dm index 63c7d8f668..2e5efa3105 100644 --- a/code/modules/mob/living/carbon/human/human_defines.dm +++ b/code/modules/mob/living/carbon/human/human_defines.dm @@ -6,6 +6,9 @@ can_buckle = TRUE buckle_lying = FALSE mob_biotypes = MOB_ORGANIC|MOB_HUMANOID + /// Enable stamina combat + combat_flags = COMBAT_FLAGS_DEFAULT + //Hair colour and style var/hair_color = "000" var/hair_style = "Bald" diff --git a/code/modules/mob/living/carbon/human/human_mobility.dm b/code/modules/mob/living/carbon/human/human_mobility.dm index 61ceb42336..dc498c4153 100644 --- a/code/modules/mob/living/carbon/human/human_mobility.dm +++ b/code/modules/mob/living/carbon/human/human_mobility.dm @@ -1,5 +1,5 @@ /mob/living/carbon/human/resist_a_rest(automatic = FALSE, ignoretimer = FALSE) - if(!resting || stat || attemptingstandup) + if(!resting || stat || (combat_flags & COMBAT_FLAG_RESISTING_REST)) return FALSE if(ignoretimer) set_resting(FALSE, FALSE) @@ -13,10 +13,10 @@ return FALSE else var/totaldelay = 3 //A little bit less than half of a second as a baseline for getting up from a rest - if(getStaminaLoss() >= STAMINA_SOFTCRIT) + if(IS_STAMCRIT(src)) to_chat(src, "You're too exhausted to get up!") return FALSE - attemptingstandup = TRUE + combat_flags |= COMBAT_FLAG_RESISTING_REST var/health_deficiency = max((maxHealth - (health - getStaminaLoss()))*0.5, 0) if(!has_gravity()) health_deficiency = health_deficiency*0.2 @@ -37,10 +37,11 @@ visible_message("[standupwarning]", usernotice, vision_distance = 5) if(do_after(src, totaldelay, target = src, required_mobility_flags = MOBILITY_RESIST)) set_resting(FALSE, TRUE) - attemptingstandup = FALSE + + combat_flags &= ~COMBAT_FLAG_RESISTING_REST return TRUE else - attemptingstandup = FALSE + combat_flags &= ~COMBAT_FLAG_RESISTING_REST if(resting) //we didn't shove ourselves up or something visible_message("[src] falls right back down.", "You fall right back down.") if(has_gravity()) diff --git a/code/modules/mob/living/carbon/human/human_movement.dm b/code/modules/mob/living/carbon/human/human_movement.dm index 608ad76128..b6cf0f5a82 100644 --- a/code/modules/mob/living/carbon/human/human_movement.dm +++ b/code/modules/mob/living/carbon/human/human_movement.dm @@ -9,6 +9,13 @@ /mob/living/carbon/human/movement_delay() . = ..() + if(CHECK_MOBILITY(src, MOBILITY_STAND) && m_intent == MOVE_INTENT_RUN && (combat_flags & COMBAT_FLAG_SPRINT_ACTIVE)) + var/static/datum/config_entry/number/movedelay/sprint_speed_increase/SSI + if(!SSI) + SSI = CONFIG_GET_ENTRY(number/movedelay/sprint_speed_increase) + . -= SSI.config_entry_value + if(wrongdirmovedelay) + . += 1 if (m_intent == MOVE_INTENT_WALK && HAS_TRAIT(src, TRAIT_SPEEDY_STEP)) . -= 1.5 @@ -42,10 +49,18 @@ return ((shoes && shoes.negates_gravity()) || (dna.species.negates_gravity(src))) /mob/living/carbon/human/Move(NewLoc, direct) + var/oldpseudoheight = pseudo_z_axis . = ..() for(var/datum/mutation/human/HM in dna.mutations) HM.on_move(src, NewLoc) - + if(. && (combat_flags & COMBAT_FLAG_SPRINT_ACTIVE) && !(movement_type & FLYING) && CHECK_ALL_MOBILITY(src, MOBILITY_MOVE|MOBILITY_STAND) && m_intent == MOVE_INTENT_RUN && has_gravity(loc) && !pulledby) + if(!HAS_TRAIT(src, TRAIT_FREESPRINT)) + doSprintLossTiles(1) + if((oldpseudoheight - pseudo_z_axis) >= 8) + to_chat(src, "You trip off of the elevated surface!") + for(var/obj/item/I in held_items) + accident(I) + DefaultCombatKnockdown(80) if(shoes) if(!lying && !buckled) if(loc == NewLoc) diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm index fc2817f134..18d2393470 100644 --- a/code/modules/mob/living/carbon/human/species.dm +++ b/code/modules/mob/living/carbon/human/species.dm @@ -1450,15 +1450,11 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) target.grabbedby(user) return 1 - - - - /datum/species/proc/harm(mob/living/carbon/human/user, mob/living/carbon/human/target, datum/martial_art/attacker_style) if(!attacker_style && HAS_TRAIT(user, TRAIT_PACIFISM)) to_chat(user, "You don't want to harm [target]!") return FALSE - if(user.getStaminaLoss() >= STAMINA_SOFTCRIT) //CITADEL CHANGE - makes it impossible to punch while in stamina softcrit + if(IS_STAMCRIT(user)) //CITADEL CHANGE - makes it impossible to punch while in stamina softcrit to_chat(user, "You're too exhausted.") //CITADEL CHANGE - ditto return FALSE //CITADEL CHANGE - ditto if(target.check_block()) @@ -1487,11 +1483,11 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) var/damage = rand(user.dna.species.punchdamagelow, user.dna.species.punchdamagehigh) //CITADEL CHANGES - makes resting and disabled combat mode reduce punch damage, makes being out of combat mode result in you taking more damage - if(!target.combatmode && damage < user.dna.species.punchstunthreshold) + if(!(target.combat_flags & COMBAT_FLAG_COMBAT_ACTIVE) && damage < user.dna.species.punchstunthreshold) damage = user.dna.species.punchstunthreshold - 1 if(!CHECK_MOBILITY(user, MOBILITY_STAND)) damage *= 0.5 - if(!user.combatmode) + if(!(user.combat_flags & COMBAT_FLAG_COMBAT_ACTIVE)) damage *= 0.25 //END OF CITADEL CHANGES @@ -1540,12 +1536,12 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) var/aim_for_groin = user.zone_selected == "groin" var/target_aiming_for_groin = target.zone_selected == "groin" - if(target.check_block()) //END EDIT - target.visible_message("[target] blocks [user]'s disarm attempt!") - return 0 - else if(user.getStaminaLoss() >= STAMINA_SOFTCRIT) + if(IS_STAMCRIT(user)) to_chat(user, "You're too exhausted!") return FALSE + else if(target.check_block()) + target.visible_message("[target] blocks [user]'s disarm attempt!") + return FALSE else if(aim_for_mouth && ( target_on_help || target_restrained || target_aiming_for_mouth)) playsound(target.loc, 'sound/weapons/slap.ogg', 50, 1, -1) @@ -1605,11 +1601,11 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) target.forcesay(GLOB.hit_appends) log_combat(user, target, "pushed over") return*/ - if(!target.combatmode) // CITADEL CHANGE + if(!(target.combat_flags & COMBAT_FLAG_COMBAT_ACTIVE)) // CITADEL CHANGE randn += -10 //CITADEL CHANGE - being out of combat mode makes it easier for you to get disarmed if(!CHECK_MOBILITY(user, MOBILITY_STAND)) //CITADEL CHANGE randn += 100 //CITADEL CHANGE - No kosher disarming if you're resting - if(!user.combatmode) //CITADEL CHANGE + if(!(target.combat_flags & COMBAT_FLAG_COMBAT_ACTIVE)) //CITADEL CHANGE randn += 25 //CITADEL CHANGE - Makes it harder to disarm outside of combat mode if(user.pulling == target) randn += -20 //If you have the time to get someone in a grab, you should have a greater chance at snatching the thing in their hand. Will be made completely obsolete by the grab rework but i've got a poor track record for releasing big projects on time so w/e i guess @@ -1686,14 +1682,12 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) var/Iforce = I.force //to avoid runtimes on the forcesay checks at the bottom. Some items might delete themselves if you drop them. (stunning yourself, ninja swords) //CIT CHANGES START HERE - combatmode and resting checks var/totitemdamage = I.force - if(iscarbon(user)) - var/mob/living/carbon/tempcarb = user - if(!tempcarb.combatmode) - totitemdamage *= 0.5 + if(!(user.combat_flags & COMBAT_FLAG_COMBAT_ACTIVE)) + totitemdamage *= 0.5 if(!CHECK_MOBILITY(user, MOBILITY_STAND)) totitemdamage *= 0.5 if(istype(H)) - if(!H.combatmode) + if(!(H.combat_flags & COMBAT_FLAG_COMBAT_ACTIVE)) totitemdamage *= 1.5 //CIT CHANGES END HERE var/weakness = H.check_weakness(I, user) @@ -1803,9 +1797,12 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) /datum/species/proc/althelp(mob/living/carbon/human/user, mob/living/carbon/human/target, datum/martial_art/attacker_style) if(user == target && istype(user)) - if(user.getStaminaLoss() >= STAMINA_SOFTCRIT) + if(IS_STAMCRIT(user)) to_chat(user, "You're too exhausted for that.") return + if(!(user.combat_flags & COMBAT_FLAG_COMBAT_ACTIVE)) + to_chat(user, "You need combat mode to be active to that!") + return if(user.IsKnockdown() || user.IsParalyzed() || user.IsStun()) to_chat(user, "You can't seem to force yourself up right now!") return @@ -1818,7 +1815,7 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) playsound(user, 'sound/weapons/thudswoosh.ogg', 50, 1, -1) /datum/species/proc/altdisarm(mob/living/carbon/human/user, mob/living/carbon/human/target, datum/martial_art/attacker_style) - if(user.getStaminaLoss() >= STAMINA_SOFTCRIT) + if(IS_STAMCRIT(user)) to_chat(user, "You're too exhausted.") return FALSE if(target.check_block()) diff --git a/code/modules/mob/living/carbon/life.dm b/code/modules/mob/living/carbon/life.dm index 4aae10c444..ebb5a3dd31 100644 --- a/code/modules/mob/living/carbon/life.dm +++ b/code/modules/mob/living/carbon/life.dm @@ -507,10 +507,10 @@ GLOBAL_LIST_INIT(ballmer_windows_me_msg, list("Yo man, what if, we like, uh, put //this updates all special effects: stun, sleeping, knockdown, druggy, stuttering, etc.. /mob/living/carbon/handle_status_effects() ..() - if(getStaminaLoss() && !combatmode)//CIT CHANGE - prevents stamina regen while combat mode is active - adjustStaminaLoss(!CHECK_MOBILITY(src, MOBILITY_STAND) ? (recoveringstam ? -7.5 : -6) : -3)//CIT CHANGE - decreases adjuststaminaloss to stop stamina damage from being such a joke + if(getStaminaLoss() && !(combat_flags & COMBAT_FLAG_COMBAT_ACTIVE)) //CIT CHANGE - prevents stamina regen while combat mode is active + adjustStaminaLoss(!CHECK_MOBILITY(src, MOBILITY_STAND) ? ((combat_flags & COMBAT_FLAG_HARD_STAMCRIT) ? -7.5 : -6) : -3)//CIT CHANGE - decreases adjuststaminaloss to stop stamina damage from being such a joke - if(!recoveringstam && incomingstammult != 1) + if(!(combat_flags & COMBAT_FLAG_HARD_STAMCRIT) && incomingstammult != 1) incomingstammult = max(0.01, incomingstammult) incomingstammult = min(1, incomingstammult*2) diff --git a/code/modules/mob/living/carbon/monkey/life.dm b/code/modules/mob/living/carbon/monkey/life.dm index 3d567b0eff..edbd1562b3 100644 --- a/code/modules/mob/living/carbon/monkey/life.dm +++ b/code/modules/mob/living/carbon/monkey/life.dm @@ -35,7 +35,7 @@ gorillize() return if(radiation > RAD_MOB_KNOCKDOWN && prob(RAD_MOB_KNOCKDOWN_PROB)) - if(!recoveringstam) + if(!(combat_flags & COMBAT_FLAG_HARD_STAMCRIT)) emote("collapse") DefaultCombatKnockdown(RAD_MOB_KNOCKDOWN_AMOUNT) to_chat(src, "You feel weak.") diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index 3544f1b82f..265d520749 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -118,22 +118,22 @@ if(!CHECK_MOBILITY(src, MOBILITY_STAND) && CHECK_MOBILITY(L, MOBILITY_STAND)) var/origtargetloc = L.loc if(!pulledby) - if(attemptingcrawl) + if(combat_flags & COMBAT_FLAG_ATTEMPTING_CRAWL) return TRUE - if(getStaminaLoss() >= STAMINA_SOFTCRIT) + if(IS_STAMCRIT(src)) to_chat(src, "You're too exhausted to crawl under [L].") return TRUE - attemptingcrawl = TRUE + ENABLE_BITFIELD(combat_flags, COMBAT_FLAG_ATTEMPTING_CRAWL) visible_message("[src] is attempting to crawl under [L].", "You are now attempting to crawl under [L].") if(!do_after(src, CRAWLUNDER_DELAY, target = src) || CHECK_MOBILITY(src, MOBILITY_STAND)) - attemptingcrawl = FALSE + DISABLE_BITFIELD(combat_flags, COMBAT_FLAG_ATTEMPTING_CRAWL) return TRUE var/src_passmob = (pass_flags & PASSMOB) pass_flags |= PASSMOB Move(origtargetloc) if(!src_passmob) pass_flags &= ~PASSMOB - attemptingcrawl = FALSE + DISABLE_BITFIELD(combat_flags, COMBAT_FLAG_ATTEMPTING_CRAWL) return TRUE //END OF CIT CHANGES @@ -368,9 +368,8 @@ to_chat(src, "You have given up life and succumbed to death.") death() - /mob/living/incapacitated(ignore_restraints = FALSE, ignore_grab = FALSE, check_immobilized = FALSE) - if(stat || IsUnconscious() || IsStun() || IsParalyzed() || recoveringstam || (check_immobilized && IsImmobilized()) || (!ignore_restraints && restrained(ignore_grab))) + if(stat || IsUnconscious() || IsStun() || IsParalyzed() || (combat_flags & COMBAT_FLAG_HARD_STAMCRIT) || (check_immobilized && IsImmobilized()) || (!ignore_restraints && restrained(ignore_grab))) return TRUE /mob/living/canUseStorage() diff --git a/code/modules/mob/living/living_combat.dm b/code/modules/mob/living/living_combat.dm new file mode 100644 index 0000000000..4cd2def5a8 --- /dev/null +++ b/code/modules/mob/living/living_combat.dm @@ -0,0 +1,88 @@ +/mob/living/ComponentInitialize() + . = ..() + RegisterSignal(src, SIGNAL_TRAIT(TRAIT_COMBAT_MODE_LOCKED), .proc/update_combat_lock) + +/mob/living/proc/update_combat_lock() + var/locked = HAS_TRAIT(src, TRAIT_COMBAT_MODE_LOCKED) + var/desired = (combat_flags & COMBAT_FLAG_COMBAT_TOGGLED) + var/actual = (combat_flags & COMBAT_FLAG_COMBAT_ACTIVE) + if(actual) + if(locked) + disable_combat_mode(FALSE, TRUE, FALSE, FALSE) + else if(!desired) + disable_combat_mode(TRUE, TRUE, FALSE, FALSE) + else + if(desired && !locked) + enable_combat_mode(FALSE, TRUE, FALSE, FALSE) + update_combat_mode_icon() + +/mob/living/proc/disable_combat_mode(silent = TRUE, was_forced = FALSE, visible = FALSE, update_icon = TRUE) + if(!(combat_flags & COMBAT_FLAG_COMBAT_ACTIVE)) + return + DISABLE_BITFIELD(combat_flags, COMBAT_FLAG_COMBAT_ACTIVE) + SEND_SIGNAL(src, COMSIG_LIVING_COMBAT_DISABLED, was_forced) + if(visible) + visible_message("[src] goes limp.", "Your muscles are forcibly relaxed!") + else if(!silent) + to_chat(src, was_forced? "Your muscles are forcibly relaxed!" : "You relax your muscles.") + if(update_icon) + update_combat_mode_icon() + +/mob/living/proc/enable_combat_mode(silent = TRUE, was_forced = FALSE, visible = FALSE, update_icon = TRUE) + if(combat_flags & COMBAT_FLAG_COMBAT_ACTIVE) + return + ENABLE_BITFIELD(combat_flags, COMBAT_FLAG_COMBAT_ACTIVE) + SEND_SIGNAL(src, COMSIG_LIVING_COMBAT_ENABLED, was_forced) + if(visible) + visible_message("[src] drops into a combative stance!", "You drop into a combative stance!") + else if(!silent) + to_chat(src, was_forced? "Your muscles reflexively tighten!" : "You tighten your muscles.") + if(update_icon) + update_combat_mode_icon() + +/// Updates the combat mode HUD icon. +/mob/living/proc/update_combat_mode_icon() + var/obj/screen/combattoggle/T = locate() in hud_used?.static_inventory + T?.update_icon_state() + +/// Enables intentionally being in combat mode. Please try not to use this proc for feedback whenever possible. +/mob/living/proc/enable_intentional_combat_mode(silent = TRUE, visible = FALSE) + if((combat_flags & COMBAT_FLAG_COMBAT_TOGGLED) && (combat_flags & COMBAT_FLAG_COMBAT_ACTIVE)) + return + ENABLE_BITFIELD(combat_flags, COMBAT_FLAG_COMBAT_TOGGLED) + if(!HAS_TRAIT(src, TRAIT_COMBAT_MODE_LOCKED) && !(combat_flags & COMBAT_FLAG_COMBAT_ACTIVE)) + enable_combat_mode(silent, FALSE, visible, FALSE) + update_combat_mode_icon() + client?.show_popup_menus = FALSE + return TRUE + +/// Disables intentionally being in combat mode. Please try not to use this proc for feedback whenever possible. +/mob/living/proc/disable_intentional_combat_mode(silent = TRUE, visible = FALSE) + if(!(combat_flags & COMBAT_FLAG_COMBAT_TOGGLED) && !(combat_flags & COMBAT_FLAG_COMBAT_ACTIVE)) + return + DISABLE_BITFIELD(combat_flags, COMBAT_FLAG_COMBAT_TOGGLED) + if(combat_flags & COMBAT_FLAG_COMBAT_ACTIVE) + disable_combat_mode(silent, FALSE, visible, FALSE) + update_combat_mode_icon() + client?.show_popup_menus = TRUE + return TRUE + +/// Toggles whether the user is intentionally in combat mode. THIS should be the proc you generally use! Has built in visual/to other player feedback, as well as an audible cue to ourselves. +/mob/living/proc/user_toggle_intentional_combat_mode(visible = TRUE) + var/old = (combat_flags & COMBAT_FLAG_COMBAT_TOGGLED) + if(old) + disable_intentional_combat_mode() + playsound_local(src, 'sound/misc/ui_toggleoff.ogg', 50, FALSE, pressure_affected = FALSE) //Slightly modified version of the above! + else if(CAN_TOGGLE_COMBAT_MODE(src)) + enable_intentional_combat_mode() + var/current = (combat_flags & COMBAT_FLAG_COMBAT_ACTIVE) //because we could be locked + if(current != old) //only sound effect if you succeeded. Could have the feedback system be better but shrug, someone else can do it. + if(current) + playsound_local(src, 'sound/misc/ui_toggle.ogg', 50, FALSE, pressure_affected = FALSE) //Sound from interbay! + if(visible) + if(world.time >= combatmessagecooldown) + combatmessagecooldown = world.time + 10 SECONDS + if(a_intent != INTENT_HELP) + visible_message("[src] [resting ? "tenses up" : (prob(95)? "drops into a combative stance" : (prob(95)? "poses aggressively" : "asserts dominance with their pose"))].") + else + visible_message("[src] [pick("looks","seems","goes")] [pick("alert","attentive","vigilant")].") diff --git a/code/modules/mob/living/living_defines.dm b/code/modules/mob/living/living_defines.dm index ed46568489..0b4be7d463 100644 --- a/code/modules/mob/living/living_defines.dm +++ b/code/modules/mob/living/living_defines.dm @@ -118,3 +118,22 @@ /// Next world.time when we can get the "you can't move while buckled to [thing]" message. var/buckle_message_cooldown = 0 + + //// CITADEL STATION COMBAT //// + /// See __DEFINES/combat.dm + var/combat_flags = COMBAT_FLAGS_STAMSYSTEM_EXEMPT + /// Next world.time when we will show a visible message on entering combat mode voluntarily again. + var/combatmessagecooldown = 0 + + var/incomingstammult = 1 + var/bufferedstam = 0 + var/stambuffer = 20 + var/stambufferregentime + + //Sprint buffer--- + var/sprint_buffer = 42 //Tiles + var/sprint_buffer_max = 42 + var/sprint_buffer_regen_ds = 0.3 //Tiles per world.time decisecond + var/sprint_buffer_regen_last = 0 //last world.time this was regen'd for math. + var/sprint_stamina_cost = 0.70 //stamina loss per tile while insufficient sprint buffer. + //---End diff --git a/code/modules/mob/living/living_mobility.dm b/code/modules/mob/living/living_mobility.dm index 8829e3a7f2..938a2355b4 100644 --- a/code/modules/mob/living/living_mobility.dm +++ b/code/modules/mob/living/living_mobility.dm @@ -33,9 +33,9 @@ set name = "Rest" set category = "IC" if(client?.prefs?.autostand) - intentionalresting = !intentionalresting - to_chat(src, "You are now attempting to [intentionalresting ? "[!resting ? "lay down and ": ""]stay down" : "[resting ? "get up and ": ""]stay up"].") - if(intentionalresting && !resting) + TOGGLE_BITFIELD(combat_flags, COMBAT_FLAG_INTENTIONALLY_RESTING) + to_chat(src, "You are now attempting to [(combat_flags & COMBAT_FLAG_INTENTIONALLY_RESTING) ? "[!resting ? "lay down and ": ""]stay down" : "[resting ? "get up and ": ""]stay up"].") + if((combat_flags & COMBAT_FLAG_INTENTIONALLY_RESTING) && !resting) set_resting(TRUE, FALSE) else resist_a_rest() @@ -71,8 +71,8 @@ var/restrained = restrained() var/pinned = resting && pulledby && pulledby.grab_state >= GRAB_AGGRESSIVE // Cit change - adds pinning for aggressive-grabbing people on the ground var/has_limbs = has_arms || ignore_legs || has_legs - var/canmove = !immobilize && !stun && conscious && !paralyze && (!stat_softcrit || !pulledby) && !chokehold && !IsFrozen() && has_limbs && !pinned && !recoveringstam - var/canresist = !stun && conscious && !stat_softcrit && !paralyze && has_limbs && !recoveringstam + var/canmove = !immobilize && !stun && conscious && !paralyze && (!stat_softcrit || !pulledby) && !chokehold && !IsFrozen() && has_limbs && !pinned && !(combat_flags & COMBAT_FLAG_HARD_STAMCRIT) + var/canresist = !stun && conscious && !stat_softcrit && !paralyze && has_limbs && !(combat_flags & COMBAT_FLAG_HARD_STAMCRIT) if(canmove) mobility_flags |= MOBILITY_MOVE @@ -84,7 +84,7 @@ else mobility_flags &= ~MOBILITY_RESIST - var/canstand_involuntary = conscious && !stat_softcrit && !knockdown && !chokehold && !paralyze && (ignore_legs || has_legs) && !(buckled && buckled.buckle_lying) && !recoveringstam + var/canstand_involuntary = conscious && !stat_softcrit && !knockdown && !chokehold && !paralyze && (ignore_legs || has_legs) && !(buckled && buckled.buckle_lying) && !(combat_flags & COMBAT_FLAG_HARD_STAMCRIT) var/canstand = canstand_involuntary && !resting var/should_be_lying = !canstand @@ -107,7 +107,7 @@ else mobility_flags |= MOBILITY_UI|MOBILITY_PULL - var/canitem_general = !paralyze && !stun && conscious && !(stat_softcrit) && !chokehold && !restrained && has_arms && !recoveringstam + var/canitem_general = !paralyze && !stun && conscious && !(stat_softcrit) && !chokehold && !restrained && has_arms && !(combat_flags & COMBAT_FLAG_HARD_STAMCRIT) if(canitem_general) mobility_flags |= (MOBILITY_USE | MOBILITY_PICKUP | MOBILITY_STORAGE | MOBILITY_HOLD) else @@ -149,7 +149,7 @@ lying_prev = lying //Handle citadel autoresist - if(CHECK_MOBILITY(src, MOBILITY_MOVE) && !intentionalresting && canstand_involuntary && iscarbon(src) && client?.prefs?.autostand)//CIT CHANGE - adds autostanding as a preference + if(CHECK_MOBILITY(src, MOBILITY_MOVE) && !(combat_flags & COMBAT_FLAG_INTENTIONALLY_RESTING) && canstand_involuntary && iscarbon(src) && client?.prefs?.autostand)//CIT CHANGE - adds autostanding as a preference addtimer(CALLBACK(src, .proc/resist_a_rest, TRUE), 0) //CIT CHANGE - ditto // Movespeed mods based on arms/legs quantity diff --git a/code/modules/mob/living/living_movement.dm b/code/modules/mob/living/living_movement.dm index 410e5b28db..ec291094fe 100644 --- a/code/modules/mob/living/living_movement.dm +++ b/code/modules/mob/living/living_movement.dm @@ -31,8 +31,16 @@ /mob/living/update_config_movespeed() update_move_intent_slowdown() + sprint_buffer_max = CONFIG_GET(number/movedelay/sprint_buffer_max) + sprint_buffer_regen_ds = CONFIG_GET(number/movedelay/sprint_buffer_regen_per_ds) + sprint_stamina_cost = CONFIG_GET(number/movedelay/sprint_stamina_cost) return ..() +/mob/living/movement_delay(ignorewalk = 0) + . = ..() + if(!CHECK_MOBILITY(src, MOBILITY_STAND)) + . += 6 + /// whether or not we can slide under another living mob. defaults to if we're not dense. CanPass should check "overriding circumstances" like buckled mobs/having PASSMOB flag, etc. /mob/living/proc/can_move_under_living(mob/living/other) return !density diff --git a/code/modules/mob/living/living_sprint.dm b/code/modules/mob/living/living_sprint.dm new file mode 100644 index 0000000000..66aa3ebc6f --- /dev/null +++ b/code/modules/mob/living/living_sprint.dm @@ -0,0 +1,79 @@ +/mob/living/ComponentInitialize() + . = ..() + RegisterSignal(src, SIGNAL_TRAIT(TRAIT_SPRINT_LOCKED), .proc/update_sprint_lock) + +/mob/living/proc/update_sprint_icon() + var/obj/screen/sprintbutton/S = locate() in hud_used?.static_inventory + S?.update_icon_state() + +/mob/living/proc/update_hud_sprint_bar() + hud_used?.sprint_buffer?.update_to_mob(src) + +/mob/living/proc/update_sprint_lock() + var/locked = HAS_TRAIT(src, TRAIT_SPRINT_LOCKED) + var/current = (combat_flags & COMBAT_FLAG_SPRINT_ACTIVE) + var/desired = (combat_flags & COMBAT_FLAG_SPRINT_TOGGLED) + if(locked) + if(current) + disable_sprint_mode(FALSE) + else + if(current) + if(!desired) + disable_sprint_mode(FALSE) + else + if(desired) + enable_sprint_mode(FALSE) + update_sprint_icon() + +/mob/living/proc/enable_sprint_mode(update_icon = TRUE) + if(combat_flags & COMBAT_FLAG_SPRINT_ACTIVE) + return + ENABLE_BITFIELD(combat_flags, COMBAT_FLAG_SPRINT_ACTIVE) + if(update_icon) + update_sprint_icon() + +/mob/living/proc/disable_sprint_mode(update_icon = TRUE) + if(!(combat_flags & COMBAT_FLAG_SPRINT_ACTIVE)) + return + DISABLE_BITFIELD(combat_flags, COMBAT_FLAG_SPRINT_ACTIVE) + if(update_icon) + update_sprint_icon() + +/mob/living/proc/enable_intentional_sprint_mode() + if((combat_flags & COMBAT_FLAG_SPRINT_TOGGLED) && (combat_flags & COMBAT_FLAG_SPRINT_ACTIVE)) + return + ENABLE_BITFIELD(combat_flags, COMBAT_FLAG_SPRINT_TOGGLED) + if(!HAS_TRAIT(src, TRAIT_SPRINT_LOCKED) && !(combat_flags & COMBAT_FLAG_SPRINT_ACTIVE)) + enable_sprint_mode(FALSE) + update_sprint_icon() + return TRUE + +/mob/living/proc/disable_intentional_sprint_mode() + if(!(combat_flags & COMBAT_FLAG_SPRINT_TOGGLED) && !(combat_flags & COMBAT_FLAG_SPRINT_ACTIVE)) + return + DISABLE_BITFIELD(combat_flags, COMBAT_FLAG_SPRINT_TOGGLED) + if(combat_flags & COMBAT_FLAG_SPRINT_ACTIVE) + disable_sprint_mode(FALSE) + update_sprint_icon() + +/mob/living/proc/user_toggle_intentional_sprint_mode() + var/old = (combat_flags & COMBAT_FLAG_SPRINT_TOGGLED) + if(old) + disable_intentional_sprint_mode() + if((m_intent == MOVE_INTENT_RUN) && CHECK_ALL_MOBILITY(src, MOBILITY_STAND|MOBILITY_MOVE)) + playsound_local(src, 'sound/misc/sprintdeactivate.ogg', 50, FALSE, pressure_affected = FALSE) + else + enable_intentional_sprint_mode() + if((m_intent == MOVE_INTENT_RUN) && CHECK_ALL_MOBILITY(src, MOBILITY_STAND|MOBILITY_MOVE)) + playsound_local(src, 'sound/misc/sprintactivate.ogg', 50, FALSE, pressure_affected = FALSE) + +/mob/living/proc/sprint_hotkey(targetstatus) + if(targetstatus != FORCE_BOOLEAN(combat_flags & COMBAT_FLAG_SPRINT_ACTIVE)) + default_toggle_sprint() + +/mob/living/proc/doSprintLossTiles(amount) + return + +// Silicons have snowflake behavior. +/mob/living/proc/default_toggle_sprint() + return user_toggle_intentional_sprint_mode() diff --git a/code/modules/mob/living/silicon/robot/robot_movement.dm b/code/modules/mob/living/silicon/robot/robot_movement.dm index 623174157b..e3a640bca0 100644 --- a/code/modules/mob/living/silicon/robot/robot_movement.dm +++ b/code/modules/mob/living/silicon/robot/robot_movement.dm @@ -12,3 +12,15 @@ /mob/living/silicon/robot/experience_pressure_difference(pressure_difference, direction) if(!magpulse) return ..() + +/mob/living/silicon/robot/Move(NewLoc, direct) + . = ..() + if(. && (combat_flags & COMBAT_FLAG_SPRINT_ACTIVE) && !(movement_type & FLYING) && CHECK_ALL_MOBILITY(src, MOBILITY_STAND | MOBILITY_MOVE)) + if(!(cell?.use(25))) + default_toggle_sprint(TRUE) + +/mob/living/silicon/robot/movement_delay() + . = ..() + if(!resting && !(combat_flags & COMBAT_FLAG_SPRINT_ACTIVE)) + . += 1 + . += speed diff --git a/code/modules/mob/living/silicon/robot/robot_sprint.dm b/code/modules/mob/living/silicon/robot/robot_sprint.dm new file mode 100644 index 0000000000..dff0d9dd0d --- /dev/null +++ b/code/modules/mob/living/silicon/robot/robot_sprint.dm @@ -0,0 +1,12 @@ +/mob/living/silicon/robot/default_toggle_sprint(shutdown = FALSE) + var/current = (combat_flags & COMBAT_FLAG_SPRINT_ACTIVE) + if(current || shutdown || !cell || (cell.charge < 25) || !cansprint) + disable_intentional_sprint_mode() + if(CHECK_MULTIPLE_BITFIELDS(mobility_flags, MOBILITY_STAND|MOBILITY_MOVE)) + if(shutdown) + playsound_local(src, 'sound/effects/light_flicker.ogg', 50, FALSE, pressure_affected = FALSE) + playsound_local(src, 'sound/misc/sprintdeactivate.ogg', 50, FALSE, pressure_affected = FALSE) + else + enable_intentional_sprint_mode() + if(CHECK_MULTIPLE_BITFIELDS(mobility_flags, MOBILITY_STAND|MOBILITY_MOVE)) + playsound_local(src, 'sound/misc/sprintactivate.ogg', 50, FALSE, pressure_affected = FALSE) diff --git a/code/modules/mob/living/silicon/silicon.dm b/code/modules/mob/living/silicon/silicon.dm index 531faff056..aae020beb0 100644 --- a/code/modules/mob/living/silicon/silicon.dm +++ b/code/modules/mob/living/silicon/silicon.dm @@ -15,6 +15,8 @@ speech_span = SPAN_ROBOT flags_1 = PREVENT_CONTENTS_EXPLOSION_1 | HEAR_1 no_vore = TRUE + /// Enable sprint system but not stamina + combat_flags = COMBAT_FLAGS_STAMEXEMPT_YESSPRINT var/datum/ai_laws/laws = null//Now... THEY ALL CAN ALL HAVE LAWS var/last_lawchange_announce = 0 diff --git a/code/modules/mob/living/simple_animal/bot/ed209bot.dm b/code/modules/mob/living/simple_animal/bot/ed209bot.dm index 2ab0f1721c..469a395169 100644 --- a/code/modules/mob/living/simple_animal/bot/ed209bot.dm +++ b/code/modules/mob/living/simple_animal/bot/ed209bot.dm @@ -276,7 +276,7 @@ Auto Patrol[]"}, if(BOT_PREP_ARREST) // preparing to arrest target // see if he got away. If he's no no longer adjacent or inside a closet or about to get up, we hunt again. - if(!Adjacent(target) || !isturf(target.loc) || !target.recoveringstam || target.getStaminaLoss() <= 120) // CIT CHANGE - replaces amountknockdown with recoveringstam and staminaloss checks + if(!Adjacent(target) || !isturf(target.loc) || !(target.combat_flags & COMBAT_FLAG_HARD_STAMCRIT) || target.getStaminaLoss() <= 120) // CIT CHANGE - replaces amountknockdown with recoveringstam and staminaloss checks back_to_hunt() return @@ -303,7 +303,7 @@ Auto Patrol[]"}, back_to_idle() return - if(!Adjacent(target) || !isturf(target.loc) || (target.loc != target_lastloc && !target.recoveringstam && target.getStaminaLoss() <= 120)) //if he's changed loc and about to get up or not adjacent or got into a closet, we prep arrest again. CIT CHANGE - replaces amountknockdown with recoveringstam and staminaloss checks + if(!Adjacent(target) || !isturf(target.loc) || (target.loc != target_lastloc && !(target.combat_flags & COMBAT_FLAG_HARD_STAMCRIT) && target.getStaminaLoss() <= 120)) //if he's changed loc and about to get up or not adjacent or got into a closet, we prep arrest again. CIT CHANGE - replaces amountknockdown with recoveringstam and staminaloss checks back_to_hunt() return else diff --git a/code/modules/mob/living/simple_animal/bot/secbot.dm b/code/modules/mob/living/simple_animal/bot/secbot.dm index 3ff97f2cc0..5754f8c3b2 100644 --- a/code/modules/mob/living/simple_animal/bot/secbot.dm +++ b/code/modules/mob/living/simple_animal/bot/secbot.dm @@ -312,7 +312,7 @@ Auto Patrol: []"}, if(BOT_PREP_ARREST) // preparing to arrest target // see if he got away. If he's no no longer adjacent or inside a closet or about to get up, we hunt again. - if( !Adjacent(target) || !isturf(target.loc) || target.getStaminaLoss() <= 120 || !target.recoveringstam) //CIT CHANGE - replaces amountknockdown with checks for stamina so secbots dont run into an infinite loop + if( !Adjacent(target) || !isturf(target.loc) || target.getStaminaLoss() <= 120 || !(target.combat_flags & COMBAT_FLAG_HARD_STAMCRIT)) //CIT CHANGE - replaces amountknockdown with checks for stamina so secbots dont run into an infinite loop back_to_hunt() return @@ -339,7 +339,7 @@ Auto Patrol: []"}, back_to_idle() return - if(!Adjacent(target) || !isturf(target.loc) || (target.loc != target_lastloc && !target.recoveringstam && target.getStaminaLoss() <= 120)) //if he's changed loc and about to get up or not adjacent or got into a closet, we prep arrest again. CIT CHANGE - replaces amountknockdown with recoveringstam and staminaloss check + if(!Adjacent(target) || !isturf(target.loc) || (target.loc != target_lastloc && !(target.combat_flags & COMBAT_FLAG_HARD_STAMCRIT) && target.getStaminaLoss() <= 120)) //if he's changed loc and about to get up or not adjacent or got into a closet, we prep arrest again. CIT CHANGE - replaces amountknockdown with recoveringstam and staminaloss check back_to_hunt() return else //Try arresting again if the target escapes. diff --git a/code/modules/mob/living/status_procs.dm b/code/modules/mob/living/status_procs.dm index 40b4212aac..5cdeaecd37 100644 --- a/code/modules/mob/living/status_procs.dm +++ b/code/modules/mob/living/status_procs.dm @@ -30,45 +30,48 @@ /mob/living/proc/Stun(amount, updating = TRUE, ignore_canstun = FALSE) //Can't go below remaining duration if(SEND_SIGNAL(src, COMSIG_LIVING_STATUS_STUN, amount, updating, ignore_canstun) & COMPONENT_NO_STUN) return - if(((status_flags & CANSTUN) && !HAS_TRAIT(src, TRAIT_STUNIMMUNE)) || ignore_canstun) - if(absorb_stun(amount, ignore_canstun)) - return - var/datum/status_effect/incapacitating/stun/S = IsStun() - if(S) - S.duration = max(world.time + amount, S.duration) - else if(amount > 0) - S = apply_status_effect(STATUS_EFFECT_STUN, amount, updating) - return S + if(!ignore_canstun && (!(status_flags & CANSTUN) || HAS_TRAIT(src, TRAIT_STUNIMMUNE))) + return + if(absorb_stun(amount, ignore_canstun)) + return + var/datum/status_effect/incapacitating/stun/S = IsStun() + if(S) + S.duration = max(world.time + amount, S.duration) + else if(amount > 0) + S = apply_status_effect(STATUS_EFFECT_STUN, amount, updating) + return S /mob/living/proc/SetStun(amount, updating = TRUE, ignore_canstun = FALSE) //Sets remaining duration if(SEND_SIGNAL(src, COMSIG_LIVING_STATUS_STUN, amount, updating, ignore_canstun) & COMPONENT_NO_STUN) return - if(((status_flags & CANSTUN) && !HAS_TRAIT(src, TRAIT_STUNIMMUNE)) || ignore_canstun) - var/datum/status_effect/incapacitating/stun/S = IsStun() - if(amount <= 0) - if(S) - qdel(S) + if(!ignore_canstun && (!(status_flags & CANSTUN) || HAS_TRAIT(src, TRAIT_STUNIMMUNE))) + return + var/datum/status_effect/incapacitating/stun/S = IsStun() + if(amount <= 0) + if(S) + qdel(S) + else + if(absorb_stun(amount, ignore_canstun)) + return + if(S) + S.duration = world.time + amount else - if(absorb_stun(amount, ignore_canstun)) - return - if(S) - S.duration = world.time + amount - else - S = apply_status_effect(STATUS_EFFECT_STUN, amount, updating) - return S + S = apply_status_effect(STATUS_EFFECT_STUN, amount, updating) + return S /mob/living/proc/AdjustStun(amount, updating = TRUE, ignore_canstun = FALSE) //Adds to remaining duration if(SEND_SIGNAL(src, COMSIG_LIVING_STATUS_STUN, amount, updating, ignore_canstun) & COMPONENT_NO_STUN) return - if(((status_flags & CANSTUN) && !HAS_TRAIT(src, TRAIT_STUNIMMUNE)) || ignore_canstun) - if(absorb_stun(amount, ignore_canstun)) - return - var/datum/status_effect/incapacitating/stun/S = IsStun() - if(S) - S.duration += amount - else if(amount > 0) - S = apply_status_effect(STATUS_EFFECT_STUN, amount, updating) - return S + if(!ignore_canstun && (!(status_flags & CANSTUN) || HAS_TRAIT(src, TRAIT_STUNIMMUNE))) + return + if(absorb_stun(amount, ignore_canstun)) + return + var/datum/status_effect/incapacitating/stun/S = IsStun() + if(S) + S.duration += amount + else if(amount > 0) + S = apply_status_effect(STATUS_EFFECT_STUN, amount, updating) + return S ///////////////////////////////// KNOCKDOWN ///////////////////////////////////// @@ -84,45 +87,48 @@ /mob/living/proc/Knockdown(amount, updating = TRUE, ignore_canstun = FALSE) //Can't go below remaining duration if(SEND_SIGNAL(src, COMSIG_LIVING_STATUS_KNOCKDOWN, amount, updating, ignore_canstun) & COMPONENT_NO_STUN) return - if(((status_flags & CANKNOCKDOWN) && !HAS_TRAIT(src, TRAIT_STUNIMMUNE)) || ignore_canstun) - if(absorb_stun(amount, ignore_canstun)) - return - var/datum/status_effect/incapacitating/knockdown/K = IsKnockdown() - if(K) - K.duration = max(world.time + amount, K.duration) - else if(amount > 0) - K = apply_status_effect(STATUS_EFFECT_KNOCKDOWN, amount, updating) - return K + if(!ignore_canstun && (!(status_flags & CANKNOCKDOWN) || HAS_TRAIT(src, TRAIT_STUNIMMUNE))) + return + if(absorb_stun(amount, ignore_canstun)) + return + var/datum/status_effect/incapacitating/knockdown/K = IsKnockdown() + if(K) + K.duration = max(world.time + amount, K.duration) + else if(amount > 0) + K = apply_status_effect(STATUS_EFFECT_KNOCKDOWN, amount, updating) + return K /mob/living/proc/SetKnockdown(amount, updating = TRUE, ignore_canstun = FALSE) //Sets remaining duration if(SEND_SIGNAL(src, COMSIG_LIVING_STATUS_KNOCKDOWN, amount, updating, ignore_canstun) & COMPONENT_NO_STUN) return - if(((status_flags & CANKNOCKDOWN) && !HAS_TRAIT(src, TRAIT_STUNIMMUNE)) || ignore_canstun) - var/datum/status_effect/incapacitating/knockdown/K = IsKnockdown() - if(amount <= 0) - if(K) - qdel(K) + if(!ignore_canstun && (!(status_flags & CANKNOCKDOWN) || HAS_TRAIT(src, TRAIT_STUNIMMUNE))) + return + var/datum/status_effect/incapacitating/knockdown/K = IsKnockdown() + if(amount <= 0) + if(K) + qdel(K) + else + if(absorb_stun(amount, ignore_canstun)) + return + if(K) + K.duration = world.time + amount else - if(absorb_stun(amount, ignore_canstun)) - return - if(K) - K.duration = world.time + amount - else - K = apply_status_effect(STATUS_EFFECT_KNOCKDOWN, amount, updating) - return K + K = apply_status_effect(STATUS_EFFECT_KNOCKDOWN, amount, updating) + return K /mob/living/proc/AdjustKnockdown(amount, updating = TRUE, ignore_canstun = FALSE) //Adds to remaining duration if(SEND_SIGNAL(src, COMSIG_LIVING_STATUS_KNOCKDOWN, amount, updating, ignore_canstun) & COMPONENT_NO_STUN) return - if(((status_flags & CANKNOCKDOWN) && !HAS_TRAIT(src, TRAIT_STUNIMMUNE)) || ignore_canstun) - if(absorb_stun(amount, ignore_canstun)) - return - var/datum/status_effect/incapacitating/knockdown/K = IsKnockdown() - if(K) - K.duration += amount - else if(amount > 0) - K = apply_status_effect(STATUS_EFFECT_KNOCKDOWN, amount, updating) - return K + if(!ignore_canstun && (!(status_flags & CANKNOCKDOWN) || HAS_TRAIT(src, TRAIT_STUNIMMUNE))) + return + if(absorb_stun(amount, ignore_canstun)) + return + var/datum/status_effect/incapacitating/knockdown/K = IsKnockdown() + if(K) + K.duration += amount + else if(amount > 0) + K = apply_status_effect(STATUS_EFFECT_KNOCKDOWN, amount, updating) + return K ///////////////////////////////// IMMOBILIZED //////////////////////////////////// /mob/living/proc/IsImmobilized() //If we're immobilized @@ -137,45 +143,48 @@ /mob/living/proc/Immobilize(amount, updating = TRUE, ignore_canstun = FALSE) //Can't go below remaining duration if(SEND_SIGNAL(src, COMSIG_LIVING_STATUS_IMMOBILIZE, amount, updating, ignore_canstun) & COMPONENT_NO_STUN) return - if(((status_flags & CANKNOCKDOWN) && !HAS_TRAIT(src, TRAIT_STUNIMMUNE)) || ignore_canstun) - if(absorb_stun(amount, ignore_canstun)) - return - var/datum/status_effect/incapacitating/immobilized/I = IsImmobilized() - if(I) - I.duration = max(world.time + amount, I.duration) - else if(amount > 0) - I = apply_status_effect(STATUS_EFFECT_IMMOBILIZED, amount, updating) - return I + if(!ignore_canstun && (!(status_flags & CANKNOCKDOWN) || HAS_TRAIT(src, TRAIT_STUNIMMUNE))) + return + if(absorb_stun(amount, ignore_canstun)) + return + var/datum/status_effect/incapacitating/immobilized/I = IsImmobilized() + if(I) + I.duration = max(world.time + amount, I.duration) + else if(amount > 0) + I = apply_status_effect(STATUS_EFFECT_IMMOBILIZED, amount, updating) + return I /mob/living/proc/SetImmobilized(amount, updating = TRUE, ignore_canstun = FALSE) //Sets remaining duration if(SEND_SIGNAL(src, COMSIG_LIVING_STATUS_IMMOBILIZE, amount, updating, ignore_canstun) & COMPONENT_NO_STUN) return - if(((status_flags & CANKNOCKDOWN) && !HAS_TRAIT(src, TRAIT_STUNIMMUNE)) || ignore_canstun) - var/datum/status_effect/incapacitating/immobilized/I = IsImmobilized() - if(amount <= 0) - if(I) - qdel(I) + if(!ignore_canstun && (!(status_flags & CANKNOCKDOWN) || HAS_TRAIT(src, TRAIT_STUNIMMUNE))) + return + var/datum/status_effect/incapacitating/immobilized/I = IsImmobilized() + if(amount <= 0) + if(I) + qdel(I) + else + if(absorb_stun(amount, ignore_canstun)) + return + if(I) + I.duration = world.time + amount else - if(absorb_stun(amount, ignore_canstun)) - return - if(I) - I.duration = world.time + amount - else - I = apply_status_effect(STATUS_EFFECT_IMMOBILIZED, amount, updating) - return I + I = apply_status_effect(STATUS_EFFECT_IMMOBILIZED, amount, updating) + return I /mob/living/proc/AdjustImmobilized(amount, updating = TRUE, ignore_canstun = FALSE) //Adds to remaining duration if(SEND_SIGNAL(src, COMSIG_LIVING_STATUS_IMMOBILIZE, amount, updating, ignore_canstun) & COMPONENT_NO_STUN) return - if(((status_flags & CANKNOCKDOWN) && !HAS_TRAIT(src, TRAIT_STUNIMMUNE)) || ignore_canstun) - if(absorb_stun(amount, ignore_canstun)) - return - var/datum/status_effect/incapacitating/immobilized/I = IsImmobilized() - if(I) - I.duration += amount - else if(amount > 0) - I = apply_status_effect(STATUS_EFFECT_IMMOBILIZED, amount, updating) - return I + if(!ignore_canstun && (!(status_flags & CANKNOCKDOWN) || HAS_TRAIT(src, TRAIT_STUNIMMUNE))) + return + if(absorb_stun(amount, ignore_canstun)) + return + var/datum/status_effect/incapacitating/immobilized/I = IsImmobilized() + if(I) + I.duration += amount + else if(amount > 0) + I = apply_status_effect(STATUS_EFFECT_IMMOBILIZED, amount, updating) + return I ///////////////////////////////// PARALYZED ////////////////////////////////// /mob/living/proc/IsParalyzed() //If we're immobilized @@ -190,45 +199,48 @@ /mob/living/proc/Paralyze(amount, updating = TRUE, ignore_canstun = FALSE) //Can't go below remaining duration if(SEND_SIGNAL(src, COMSIG_LIVING_STATUS_PARALYZE, amount, updating, ignore_canstun) & COMPONENT_NO_STUN) return - if(((status_flags & CANKNOCKDOWN) && !HAS_TRAIT(src, TRAIT_STUNIMMUNE)) || ignore_canstun) - if(absorb_stun(amount, ignore_canstun)) - return - var/datum/status_effect/incapacitating/paralyzed/P = IsParalyzed(FALSE) - if(P) - P.duration = max(world.time + amount, P.duration) - else if(amount > 0) - P = apply_status_effect(STATUS_EFFECT_PARALYZED, amount, updating) - return P + if(!ignore_canstun && (!(status_flags & CANKNOCKDOWN) || HAS_TRAIT(src, TRAIT_STUNIMMUNE))) + return + if(absorb_stun(amount, ignore_canstun)) + return + var/datum/status_effect/incapacitating/paralyzed/P = IsParalyzed(FALSE) + if(P) + P.duration = max(world.time + amount, P.duration) + else if(amount > 0) + P = apply_status_effect(STATUS_EFFECT_PARALYZED, amount, updating) + return P /mob/living/proc/SetParalyzed(amount, updating = TRUE, ignore_canstun = FALSE) //Sets remaining duration if(SEND_SIGNAL(src, COMSIG_LIVING_STATUS_PARALYZE, amount, updating, ignore_canstun) & COMPONENT_NO_STUN) return - if(((status_flags & CANKNOCKDOWN) && !HAS_TRAIT(src, TRAIT_STUNIMMUNE)) || ignore_canstun) - var/datum/status_effect/incapacitating/paralyzed/P = IsParalyzed(FALSE) - if(amount <= 0) - if(P) - qdel(P) + if(!ignore_canstun && (!(status_flags & CANKNOCKDOWN) || HAS_TRAIT(src, TRAIT_STUNIMMUNE))) + return + var/datum/status_effect/incapacitating/paralyzed/P = IsParalyzed(FALSE) + if(amount <= 0) + if(P) + qdel(P) + else + if(absorb_stun(amount, ignore_canstun)) + return + if(P) + P.duration = world.time + amount else - if(absorb_stun(amount, ignore_canstun)) - return - if(P) - P.duration = world.time + amount - else - P = apply_status_effect(STATUS_EFFECT_PARALYZED, amount, updating) - return P + P = apply_status_effect(STATUS_EFFECT_PARALYZED, amount, updating) + return P /mob/living/proc/AdjustParalyzed(amount, updating = TRUE, ignore_canstun = FALSE) //Adds to remaining duration if(SEND_SIGNAL(src, COMSIG_LIVING_STATUS_PARALYZE, amount, updating, ignore_canstun) & COMPONENT_NO_STUN) return - if(((status_flags & CANKNOCKDOWN) && !HAS_TRAIT(src, TRAIT_STUNIMMUNE)) || ignore_canstun) - if(absorb_stun(amount, ignore_canstun)) - return - var/datum/status_effect/incapacitating/paralyzed/P = IsParalyzed(FALSE) - if(P) - P.duration += amount - else if(amount > 0) - P = apply_status_effect(STATUS_EFFECT_PARALYZED, amount, updating) - return P + if(!ignore_canstun && (!(status_flags & CANKNOCKDOWN) || HAS_TRAIT(src, TRAIT_STUNIMMUNE))) + return + if(absorb_stun(amount, ignore_canstun)) + return + var/datum/status_effect/incapacitating/paralyzed/P = IsParalyzed(FALSE) + if(P) + P.duration += amount + else if(amount > 0) + P = apply_status_effect(STATUS_EFFECT_PARALYZED, amount, updating) + return P ///////////////////////////////// DAZED //////////////////////////////////// /mob/living/proc/IsDazed() //If we're Dazed @@ -243,45 +255,104 @@ /mob/living/proc/Daze(amount, updating = TRUE, ignore_canstun = FALSE) //Can't go below remaining duration if(SEND_SIGNAL(src, COMSIG_LIVING_STATUS_DAZE, amount, updating, ignore_canstun) & COMPONENT_NO_STUN) return - if(((status_flags & CANKNOCKDOWN) && !HAS_TRAIT(src, TRAIT_STUNIMMUNE)) || ignore_canstun) - if(absorb_stun(amount, ignore_canstun)) - return - var/datum/status_effect/incapacitating/dazed/I = IsDazed() - if(I) - I.duration = max(world.time + amount, I.duration) - else if(amount > 0) - I = apply_status_effect(STATUS_EFFECT_DAZED, amount, updating) - return I + if(!ignore_canstun && (!(status_flags & CANKNOCKDOWN) || HAS_TRAIT(src, TRAIT_STUNIMMUNE))) + return + if(absorb_stun(amount, ignore_canstun)) + return + var/datum/status_effect/incapacitating/dazed/I = IsDazed() + if(I) + I.duration = max(world.time + amount, I.duration) + else if(amount > 0) + I = apply_status_effect(STATUS_EFFECT_DAZED, amount, updating) + return I /mob/living/proc/SetDazed(amount, updating = TRUE, ignore_canstun = FALSE) //Sets remaining duration if(SEND_SIGNAL(src, COMSIG_LIVING_STATUS_DAZE, amount, updating, ignore_canstun) & COMPONENT_NO_STUN) return - if(((status_flags & CANKNOCKDOWN) && !HAS_TRAIT(src, TRAIT_STUNIMMUNE)) || ignore_canstun) - var/datum/status_effect/incapacitating/dazed/I = IsDazed() - if(amount <= 0) - if(I) - qdel(I) + if(!ignore_canstun && (!(status_flags & CANKNOCKDOWN) || HAS_TRAIT(src, TRAIT_STUNIMMUNE))) + return + var/datum/status_effect/incapacitating/dazed/I = IsDazed() + if(amount <= 0) + if(I) + qdel(I) + else + if(absorb_stun(amount, ignore_canstun)) + return + if(I) + I.duration = world.time + amount else - if(absorb_stun(amount, ignore_canstun)) - return - if(I) - I.duration = world.time + amount - else - I = apply_status_effect(STATUS_EFFECT_DAZED, amount, updating) - return I + I = apply_status_effect(STATUS_EFFECT_DAZED, amount, updating) + return I /mob/living/proc/AdjustDazed(amount, updating = TRUE, ignore_canstun = FALSE) //Adds to remaining duration if(SEND_SIGNAL(src, COMSIG_LIVING_STATUS_DAZE, amount, updating, ignore_canstun) & COMPONENT_NO_STUN) return - if(((status_flags & CANKNOCKDOWN) && !HAS_TRAIT(src, TRAIT_STUNIMMUNE)) || ignore_canstun) + if(!ignore_canstun && (!(status_flags & CANKNOCKDOWN) || HAS_TRAIT(src, TRAIT_STUNIMMUNE))) + return + if(absorb_stun(amount, ignore_canstun)) + return + var/datum/status_effect/incapacitating/dazed/I = IsDazed() + if(I) + I.duration += amount + else if(amount > 0) + I = apply_status_effect(STATUS_EFFECT_DAZED, amount, updating) + return I + +///////////////////////////////// STAGGERED //////////////////////////////////// +/mob/living/proc/IsStaggered() //If we're Staggered + return has_status_effect(STATUS_EFFECT_STAGGERED) + +/mob/living/proc/AmountStaggered() //How many deciseconds remain in our Staggered status effect + var/datum/status_effect/staggered/I = IsStaggered() + if(I) + return I.duration - world.time + return 0 + +/mob/living/proc/Stagger(amount, updating = TRUE, ignore_canstun = FALSE) //Can't go below remaining duration + if(SEND_SIGNAL(src, COMSIG_LIVING_STATUS_STAGGER, amount, updating, ignore_canstun) & COMPONENT_NO_STUN) + return + if(!ignore_canstun && (!(status_flags & CANKNOCKDOWN) || HAS_TRAIT(src, TRAIT_STUNIMMUNE))) + return + if(absorb_stun(amount, ignore_canstun)) + return + var/datum/status_effect/staggered/I = IsStaggered() + if(I) + I.duration = max(world.time + amount, I.duration) + else if(amount > 0) + I = apply_status_effect(STATUS_EFFECT_STAGGERED, amount, updating) + return I + +/mob/living/proc/SetStaggered(amount, updating = TRUE, ignore_canstun = FALSE) //Sets remaining duration + if(SEND_SIGNAL(src, COMSIG_LIVING_STATUS_STAGGER, amount, updating, ignore_canstun) & COMPONENT_NO_STUN) + return + if(!ignore_canstun && (!(status_flags & CANKNOCKDOWN) || HAS_TRAIT(src, TRAIT_STUNIMMUNE))) + return + var/datum/status_effect/staggered/I = IsStaggered() + if(amount <= 0) + if(I) + qdel(I) + else if(absorb_stun(amount, ignore_canstun)) return - var/datum/status_effect/incapacitating/dazed/I = IsDazed() if(I) - I.duration += amount - else if(amount > 0) - I = apply_status_effect(STATUS_EFFECT_DAZED, amount, updating) - return I + I.duration = world.time + amount + else + I = apply_status_effect(STATUS_EFFECT_STAGGERED, amount, updating) + return I + +/mob/living/proc/AdjustStaggered(amount, updating = TRUE, ignore_canstun = FALSE) //Adds to remaining duration + if(SEND_SIGNAL(src, COMSIG_LIVING_STATUS_STAGGER, amount, updating, ignore_canstun) & COMPONENT_NO_STUN) + return + if(!ignore_canstun && (!(status_flags & CANKNOCKDOWN) || HAS_TRAIT(src, TRAIT_STUNIMMUNE))) + return + if(absorb_stun(amount, ignore_canstun)) + return + var/datum/status_effect/staggered/I = IsStaggered() + if(I) + I.duration += amount + else if(amount > 0) + I = apply_status_effect(STATUS_EFFECT_STAGGERED, amount, updating) + return I //Blanket /mob/living/proc/AllImmobility(amount, updating, ignore_canstun = FALSE) @@ -290,6 +361,7 @@ Stun(amount, FALSE, ignore_canstun) Immobilize(amount, FALSE, ignore_canstun) Daze(amount, FALSE, ignore_canstun) + Stagger(amount, FALSE, ignore_canstun) if(updating) update_mobility() @@ -299,6 +371,7 @@ SetStun(amount, FALSE, ignore_canstun) SetImmobilized(amount, FALSE, ignore_canstun) SetDazed(amount, FALSE, ignore_canstun) + SetStaggered(amount, FALSE, ignore_canstun) if(updating) update_mobility() @@ -308,6 +381,7 @@ AdjustStun(amount, FALSE, ignore_canstun) AdjustImmobilized(amount, FALSE, ignore_canstun) AdjustDazed(amount, FALSE, ignore_canstun) + AdjustStaggered(amount, FALSE, ignore_canstun) if(updating) update_mobility() @@ -323,11 +397,13 @@ SetImmobilized(amount, FALSE, ignore_canstun) if(AmountDazed() > amount) SetImmobilized(amount, FALSE, ignore_canstun) + if(AmountStaggered() > amount) + SetStaggered(amount, FALSE, ignore_canstun) if(updating) update_mobility() /mob/living/proc/HighestImmobilityAmount() - return max(max(max(max(AmountStun(), AmountKnockdown()), AmountParalyzed()), AmountImmobilized()), AmountDazed()) + return max(AmountStun(), AmountKnockdown(), AmountParalyzed(), AmountImmobilized(), AmountDazed(), AmountStaggered()) //////////////////UNCONSCIOUS /mob/living/proc/IsUnconscious() //If we're unconscious diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm index 1f9f211154..d06ad972e6 100644 --- a/code/modules/projectiles/gun.dm +++ b/code/modules/projectiles/gun.dm @@ -168,7 +168,7 @@ return if(firing) return - if(user.getStaminaLoss() >= STAMINA_SOFTCRIT) //respect stamina softcrit + if(IS_STAMCRIT(user)) //respect stamina softcrit to_chat(user, "You are too exhausted to fire [src]!") return if(flag) //It's adjacent, is the user, or is on the user's person @@ -562,11 +562,11 @@ update_icon() /obj/item/gun/proc/getinaccuracy(mob/living/user) - if(!iscarbon(user)) + if(!isliving(user)) return FALSE else - var/mob/living/carbon/holdingdude = user - if(istype(holdingdude) && holdingdude.combatmode) - return (max((holdingdude.lastdirchange + weapon_weight * 25) - world.time,0) * inaccuracy_modifier) + var/mob/living/holdingdude = user + if(istype(holdingdude) && (holdingdude.combat_flags & COMBAT_FLAG_COMBAT_ACTIVE)) + return 0 else return ((weapon_weight * 25) * inaccuracy_modifier) diff --git a/code/modules/projectiles/guns/ballistic/shotgun.dm b/code/modules/projectiles/guns/ballistic/shotgun.dm index 7f01db466f..56aebc891d 100644 --- a/code/modules/projectiles/guns/ballistic/shotgun.dm +++ b/code/modules/projectiles/guns/ballistic/shotgun.dm @@ -37,7 +37,7 @@ /obj/item/gun/ballistic/shotgun/attack_self(mob/living/user) if(recentpump > world.time) return - if(istype(user) && user.getStaminaLoss() >= STAMINA_SOFTCRIT)//CIT CHANGE - makes pumping shotguns impossible in stamina softcrit + if(IS_STAMCRIT(user))//CIT CHANGE - makes pumping shotguns impossible in stamina softcrit to_chat(user, "You're too exhausted for that.")//CIT CHANGE - ditto return//CIT CHANGE - ditto pump(user, TRUE) diff --git a/code/modules/research/xenobiology/crossbreeding/_status_effects.dm b/code/modules/research/xenobiology/crossbreeding/_status_effects.dm index 9efbe58a29..b9897db303 100644 --- a/code/modules/research/xenobiology/crossbreeding/_status_effects.dm +++ b/code/modules/research/xenobiology/crossbreeding/_status_effects.dm @@ -27,6 +27,7 @@ REMOVE_TRAIT(owner, TRAIT_PACIFISM, "slimestatus") owner.visible_message("[owner] stops glowing, the rainbow light fading away.", "You no longer feel protected...") + return ..() /obj/screen/alert/status_effect/slimeskin name = "Adamantine Slimeskin" @@ -56,6 +57,7 @@ H.physiology.damage_resistance -= 10 owner.visible_message("[owner]'s gel coating liquefies and dissolves away.", "Your gel second-skin dissolves!") + return ..() /datum/status_effect/slimerecall id = "slime_recall" @@ -87,6 +89,7 @@ "The unknown force snatches briefly you from reality, and deposits you next to [target]!") do_sparks(3, TRUE, owner) owner.forceMove(target.loc) + return ..() /obj/screen/alert/status_effect/freon/stasis desc = "You're frozen inside of a protective ice cube! While inside, you can't do anything, but are immune to harm! Resist to get out." @@ -117,6 +120,7 @@ qdel(cube) owner.status_flags &= ~GODMODE UnregisterSignal(owner, COMSIG_LIVING_RESIST) + return ..() /datum/status_effect/slime_clone id = "slime_cloned" @@ -156,6 +160,7 @@ if(clone) clone.unequip_everything() qdel(clone) + return ..() /obj/screen/alert/status_effect/clone_decay name = "Clone Decay" @@ -195,6 +200,7 @@ /datum/status_effect/bloodchill/on_remove() owner.remove_movespeed_modifier("bloodchilled") + return ..() /obj/screen/alert/status_effect/bloodchill name = "Bloodchilled" @@ -218,6 +224,7 @@ /datum/status_effect/bonechill/on_remove() owner.remove_movespeed_modifier("bonechilled") + return ..() /obj/screen/alert/status_effect/bonechill name = "Bonechilled" @@ -249,6 +256,7 @@ datum/status_effect/rebreathing/tick() /datum/status_effect/firecookie/on_remove() REMOVE_TRAIT(owner, TRAIT_RESISTCOLD,"firecookie") + return ..() /datum/status_effect/watercookie id = "watercookie" @@ -266,6 +274,7 @@ datum/status_effect/rebreathing/tick() /datum/status_effect/watercookie/on_remove() REMOVE_TRAIT(owner, TRAIT_NOSLIPWATER,"watercookie") + return ..() /datum/status_effect/metalcookie id = "metalcookie" @@ -283,6 +292,7 @@ datum/status_effect/rebreathing/tick() if(ishuman(owner)) var/mob/living/carbon/human/H = owner H.physiology.brute_mod /= 0.9 + return ..() /datum/status_effect/sparkcookie id = "sparkcookie" @@ -302,6 +312,7 @@ datum/status_effect/rebreathing/tick() if(ishuman(owner)) var/mob/living/carbon/human/H = owner H.physiology.siemens_coeff = original_coeff + return ..() /datum/status_effect/toxincookie id = "toxincookie" @@ -315,6 +326,7 @@ datum/status_effect/rebreathing/tick() /datum/status_effect/toxincookie/on_remove() REMOVE_TRAIT(owner, TRAIT_TOXINLOVER,"toxincookie") + return ..() /datum/status_effect/timecookie id = "timecookie" @@ -332,6 +344,7 @@ datum/status_effect/rebreathing/tick() if(ishuman(owner)) var/mob/living/carbon/human/H H.physiology.do_after_speed /= 0.95 + return ..() /datum/status_effect/lovecookie id = "lovecookie" @@ -377,6 +390,7 @@ datum/status_effect/rebreathing/tick() /datum/status_effect/tarfoot/on_remove() owner.remove_movespeed_modifier(MOVESPEED_ID_TARFOOT) + return ..() /datum/status_effect/spookcookie id = "spookcookie" @@ -392,6 +406,7 @@ datum/status_effect/rebreathing/tick() /datum/status_effect/spookcookie/on_remove() owner.remove_alt_appearance("spookyscary") + return ..() /datum/status_effect/peacecookie id = "peacecookie" @@ -415,6 +430,7 @@ datum/status_effect/rebreathing/tick() /datum/status_effect/plur/on_remove() REMOVE_TRAIT(owner, TRAIT_PACIFISM, "peacecookie") + return ..() /datum/status_effect/adamantinecookie id = "adamantinecookie" @@ -432,6 +448,7 @@ datum/status_effect/rebreathing/tick() if(ishuman(owner)) var/mob/living/carbon/human/H = owner H.physiology.burn_mod /= 0.9 + return ..() /////////////////////////////////////////////////////// //////////////////STABILIZED EXTRACTS////////////////// @@ -513,6 +530,7 @@ datum/status_effect/rebreathing/tick() datum/status_effect/stabilized/blue/on_remove() REMOVE_TRAIT(owner, TRAIT_NOSLIPWATER, "slimestatus") + return ..() /datum/status_effect/stabilized/metal id = "stabilizedmetal" @@ -536,7 +554,6 @@ datum/status_effect/stabilized/blue/on_remove() to_chat(owner, "[linked_extract] adds a layer of slime to [S], which metamorphosizes into another sheet of material!") return ..() - /datum/status_effect/stabilized/yellow id = "stabilizedyellow" colour = "yellow" @@ -591,6 +608,7 @@ datum/status_effect/stabilized/blue/on_remove() /datum/status_effect/stabilized/darkpurple/on_remove() REMOVE_TRAIT(owner, TRAIT_RESISTHEATHANDS, "slimestatus") qdel(fire) + return ..() /datum/status_effect/stabilized/darkblue id = "stabilizeddarkblue" @@ -638,6 +656,7 @@ datum/status_effect/stabilized/blue/on_remove() if(ishuman(owner)) var/mob/living/carbon/human/H = owner H.physiology.hunger_mod /= 0.8 + return ..() //Bluespace has an icon because it's kinda active. /obj/screen/alert/status_effect/bluespaceslime @@ -697,6 +716,7 @@ datum/status_effect/stabilized/blue/on_remove() /datum/status_effect/stabilized/sepia/on_remove() owner.remove_movespeed_modifier(MOVESPEED_ID_SEPIA) + return ..() /datum/status_effect/stabilized/cerulean id = "stabilizedcerulean" @@ -733,6 +753,7 @@ datum/status_effect/stabilized/blue/on_remove() clone.visible_message("[clone] dissolves into a puddle of goo!") clone.unequip_everything() qdel(clone) + return ..() /datum/status_effect/stabilized/pyrite id = "stabilizedpyrite" @@ -749,6 +770,7 @@ datum/status_effect/stabilized/blue/on_remove() /datum/status_effect/stabilized/pyrite/on_remove() owner.color = originalcolor + return ..() /datum/status_effect/stabilized/red id = "stabilizedred" @@ -760,6 +782,7 @@ datum/status_effect/stabilized/blue/on_remove() /datum/status_effect/stabilized/red/on_remove() owner.unignore_slowdown("slimestatus") + return ..() /datum/status_effect/stabilized/green id = "stabilizedgreen" @@ -791,6 +814,7 @@ datum/status_effect/stabilized/blue/on_remove() originalDNA.transfer_identity(H) H.real_name = originalname H.updateappearance(mutcolor_update=1) + return ..() /datum/status_effect/brokenpeace id = "brokenpeace" @@ -854,6 +878,7 @@ datum/status_effect/stabilized/blue/on_remove() for(var/i in owner.faction) if(i == faction_name) owner.faction -= faction_name + return ..() /datum/status_effect/stabilized/oil id = "stabilizedoil" @@ -947,6 +972,7 @@ datum/status_effect/stabilized/blue/on_remove() /datum/status_effect/stabilized/gold/on_remove() if(familiar) qdel(familiar) + return ..() /datum/status_effect/stabilized/adamantine/on_apply() if(ishuman(owner)) @@ -958,6 +984,7 @@ datum/status_effect/stabilized/blue/on_remove() if(ishuman(owner)) var/mob/living/carbon/human/H = owner H.physiology.damage_resistance -= 5 + return ..() /datum/status_effect/stabilized/rainbow id = "stabilizedrainbow" diff --git a/code/modules/vehicles/secway.dm b/code/modules/vehicles/secway.dm index 114a6373f4..868610a149 100644 --- a/code/modules/vehicles/secway.dm +++ b/code/modules/vehicles/secway.dm @@ -27,9 +27,9 @@ /obj/vehicle/ridden/secway/relaymove(mob/user, direction) var/new_speed = normalspeed - if(ishuman(user)) - var/mob/living/carbon/human/H = user - if(H.sprinting && charge) + if(isliving(user)) + var/mob/living/L = user + if((L.combat_flags & COMBAT_FLAG_SPRINT_TOGGLED) && charge) charge-- new_speed = chargespeed var/datum/component/riding/D = GetComponent(/datum/component/riding) diff --git a/icons/mob/screen_alert.dmi b/icons/mob/screen_alert.dmi index c1912d74cc44ed7b6084660254763a69573ada6d..a65ac3f92662c2685ba4fcd2799810d2d98c3fa8 100644 GIT binary patch literal 107830 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 z zRkhxMCOy5LBpb65^nruR0Ha$LYrvM?kW1Os{dc*Qa1eZdK)JpPYjR4&Z7K%)l(FW- z7U)xfcpXu;P1-o0R?MxeUq?N)H}6IydFbwYZs-%v*N+@ABn}_`NagT6cCd54H3s>d zUai5Su0iFrVqLr2UE>v;B7RY%C$1hJ%JRJxX#HK3=CgCGq$!9~kFnRC**V#-bV*_q z8uOj0wf#D}2H>hXWuJAj$+oo_N5+&n!2PhLAAs)uUb6+wZkro06!eSa9r2m*y1!5*@VZ1NJQg z_~^9GgL6xVA{R^8kfhM8`-BGNt5Dqtpo3i4M-4xQ8q7;NXsf0c*@o%HdzNcwh(B-; zB(!P8{V65kEG{7tqram{5@Sz+kl(*&51cF?P#A&~qe}NGtCMf`^Tk)i{gCNZW;{}6 z?~Hqlk~8Lclnjnz1LmXcP%xd)@u9z4i@7BJi~=h(?2#1qSNlHskq0#r+gboWFO9Yo zSJF7GYtifOh>aF<|Kt58-Ckblcid)dV<*%-;TmWpcB)U8q(&YluB(zfJmY;pn}2CP zTEY}uLCBxO0X%|P4I0TXG<%{mh;HJ2-}Vjo$F8pLoCT0=nI||UqtxcHda~-UK$kXM z`@5dgx`YxR1Czat<}c*sDuy^85J~ALFyV`^}CB{yojF9DsyjVg|=e+tyIXd}B@Pr-E4VPrh00QB?)& zhxXTYY2j;!TQ>hGdJo6bN)LViC-Aj7P=n!;nx@R-n2eW%%)KaQFCIBLM=U`;T=FU< zy82zfl9XVJ1#01wj0?_Ga*-g;I2833pLs4!7Fy9oPz2VzsC;TNEQhOYO>DRDT6Fq+ z&i6as+muLI#>|?~^ly(|y4!h=Ey;PCD1moD2A_joN$OvcVQ=^ol>^a#gs7Aw3ubHS zI0i2egt>kq==Wm%#t@InJ1sQ262)136L0%xJqA8KVdbDo!IP2Hh!-s{@OF4gc&)H% za`NCd{eC$9Ut{mrq6vA2DMMPPACYIYb^+RAOn;&~nkLuk_6yT?4hA z7u6E(nR@}eNh6d#zf*v*e884wF-gXp4u$j0!W9M}8e?P2E!&D*)+Az=SoNjN_ilc| zS!S02MkE0}H_c3&aW~?Y32oqj@z|Z02`MS&5o}(jkLzq!o}EnFq~vAKV5Vo*C5AL* zII(w4M(#WWqlcc;Pm#0i$}DM}D~4U)(?EN)1iyq;h3)F@Jcq(i6K*oJbx4F-_eI?= zR0DK`*&(Vsva&K=pyB${GEkCmN+1f)vlQJZ2m5bFfPM-`GP=$K9pEWsohKx-1`R&T#s+R z&?D;9cSfD7ZOb5R6KcO*nU4Oe4R~R+z{iR4CC3(#WCK!!2y+Oy`ihTk+RKAhLGg3keZ0ttZ2uL89IHrWQb#> zSh+6D4($8sHC|owe&uGtaQB2sCH>m%8X2QESxY~sGQbG ztTLErOxkY4`aTS7KS>`T+6LV_p>S4zLrj-MmA~ZYGLcV*|1~1<<%D}-)qkF6IvmR@ z#q7UzTt72nbQN&5V7g;?$1r<9G{)gi0+8YhFnIBww-KhVmk_PLh-fT31XL>If8ZYs z18PJ{$VmC*^j`?Lr!#BEAn2F-Gj0ly^oU^&3ZhIx^)>vom_DG7%{pI%nmIBwaoVqL zJCa}78QB|!wQBa&(->^mxoCo|8IEMz%#9scLD@Ye>t2%5h~c}2l7Q+J-}UH>_ge|A z&PK!;g!0j){m0YUy^ki7)r^H8W$VgC4&{x;XbvCG((4lKOgU0y0<~K7&fI#QaV(xz z*nNJrIUacOV6NZ#$$}7%_N9>#aWW3X`dXQ!vy+vBqI2>9rq@457R=Pkr~95`7P#V!L<&1MLOb3Zf7nPN7gXH)!DdRp=MRl zTs$u9THafuo_!2-3ga%-km<*&Bfao@7QBaVauu2PzkV8wKe@C1cTdLwY)u@mDfFQ{ zUrN_?RBS~5{^3i?SAk^Lk;dP%dV|yO;U48ZxZm&%K-!?oAKC2%tKWDZv{g2O#~HeWesnYMq@xSWQIW!2wxZxE#zDxnM4ghtFt091o9tR_9z2`rP5{+&Ix`yvI-s4sFPZUM3WhS6uGQhY1;US8)mb8H@ki;uR)qg+h8MRO=VT>59AVwh59_ zKVmL2R#g{&|0`1B5YIu}h7JApB#Oq!{8bPcSF^wVrjS^@!KWq&IVjuVv5C(S_}IR< zs24wmVjc*ObXq$+2W@6|P0zy}v$XVl9BaM&*^c0TpLqFJKU8w&)_A@cFdG)~N3iw% zI>;eR*06lh7h5f_wzqV+m z?*ik7;`NcN-l2bVtlUzeWSrYT8p#HFG7vX*Fl5Gx#O#&${M ztiw7~QwQ#sA9VP~0rvLT{SAL~Ti4k^n&wpFR{#~Xyt1N2yi~ul3oZ9UPt4=Ym@g{* z=DtjHk5Hkojar`E-By=doRYI?iDtKd@j(<8x@W#dkzte z?};GFY=&>+jDpDu$>rZauK>LIEnD5k)|B}~1oj6Z!gThu1P`DaGSQzD#7ae)$=BSNjOF%WEcBy4Ro3j~GkU)E_nz79WO zPRl2(wk$K((ymDxr52>kUB^?JKz?Xtppn}7yCKMh)%nnOnN$>_7*{Hkv%taEW5=a+ zoPdF@F4a&%kHH`>zQ>4~OCz>_bQ)6qrp9H!lv~Sa-TmW} zO-iBe%0?MYo6E$LjYtM~)v80AIBCN!$8*Msh+|d&(@M{|8oQ|Dnxnx8@g1GZ6jwUu zn{zSO>zyE*Pavx+H>aK#3~90OVSf;U;eP`dp8CuZn1gwj!}tW|TZFfR)wM})Y=+-ehSx?lhF%%Fxso35Dpse+FD~;Jv`OiMZJg^Yrg~H z`7DpFDKh|z_%rsYLCN`sR(GZ>oj|lmouAa6j<5WG{)}Kxd$*k&sk6{R4||>TH#Q&j zAt{$zxn8dV|4ib$*m;ICle}iYt8KD$j34UWRDHSD670pAim9l`C|JM!fA*Kh>us%_ ziL6_XQxDHx)eOdeMPiI_x~)XWZj*Ck8GP6Y*9BR!z6O|mcQ&e3#+*=uc(`Zb`}rQ^ z7!QL8M2;ax z&@daRV)0){B@`v-+h5gJ^T%%|7a{a`uP|y$OR+El0r?Bj{W^?`*F*)7siv)YvY%z*UAnVvNNh)9n6!DMp4(uA2ih0H4{aD#7iFCQTH(j-%Svk5%op zpA2@D48WZyo7O%C(S}Y^E18I^v-a^^^UoZcO?p*Wi9du&5G0hA>c-iNX=tdZ6Kj|# z>4+FsZRD^cPZ|6hcJ-TX>0xSwqJRH%Ze=cQY3_|9rp6xVyLo?j_;$J3>6&WJ$mn)# z)zI^>V#ZM)U(X&GXc_7>J^o73JOy7( zeM(_`PkE<|4vRuWb@Mulr6YH7F*FTTd{iVf5)CwU67{rILs341rp4?{_O+xr55)-j z|5V!_0cO6J(Npt`GsQ&4n~8l79`(V`vh!PIpWng3cq(h zi5tMhPXv~pA#d_-Xex?IE2kCcw*t1bx=b^URm)TYQenKCI32Y6V4|hL33@s_;Hw08 zRyH=J@VPiQZ?)`df}NhO-ReR^_>+_R?>j|4+40tzrxkR?YZ)12$suK0KTAIpTdjpYGOl)Tz4%md=6> z@fKNeAS*I^1ZP39Ni^N5$^M4GRdd^r8;Poh1`Qb_MMb;6>hj53Jr9piMJ;5ppT2D& zYnd%KV#y;y-;}QWw>+}_A|h!*UsT`Q*{H3NlG;Stg$S8EXNnV0-k|%O1{xBj^aj@` z8R{fsylwcLQ-^plTjQPEQM`VtR^_%#%nc2K*&)vIrJ|%{KJLyE1px;NMOL5%ao}c8 z_o++Twe(h&nUb%_pY9@mMXGIzsun3F5&j)E;weJF($=9utw;`YZ;OkxXdmu)`0tz@ zN%&Y-IYUXIcUBZWn71i3+vwPL{Y(^C#Q!_)d)UuGQW&TnIm&ze;teUWM!zL55pFOB zusH}18=Ecj*xV~A@Yauy3$H{yoSr}`Z_a$f6`W%hFZpY3B!Zb^(7&boRfQ%8v(5lh z#8nx)0V(!EM4*9&*_Pl66d;m=Ck}}0|Ly%kh_yEGRm6`TU@7~Bz(cwQMzL%@rc~T? z<&`|k{}g30{nm_ZbiZ+ZpIlM$##@$Q|2^!U77l%&zn`M;c)b2GG$L5wh@a>GG4+*k zP5tltqok!fr5ovHfV4=6L%IFzEG>F!1vX#^?h?uG$_{paWReemZAXKcK7 z&ilO2o!52U>sdfn@a#J+gr)X%@pD)Q!#zSPt2x!?H6@>WePwl}MOY6S^>~P?Pi_~m zFBvu~I-o9`q`Ngw>kt=Ny@#_n9AL7bpy1S=5g;E;Ui&(i0u>vBP??ZEklw~joH))( z(@OJAUXX0KJUrOOMsy5ze0TY z2X6J!{9+T6GXT+p><>=E@174Kbguti$n;rq4N)2C6yfR@T;&z{t`_`xVwAU9`kz_g zQQ@o*+zTetY4+U}aI<3|XhTJM@gl9!ndh5q@{=RAS^SDzidfWPtZA$H%hP%BgA^tP znQperjx7u?S?s#}*R14BCMkUBYB*`*+avtDsF&FezL10&LiolTznJ_@hTiY=KTQG6 z?YZ?jI`7j`-%ahkAwgr(>fO6@8X4d`c3Y-|Z6R=;$&l=TjpVqepEZ7F@r*)9jz`U@ z#3Sq&E%SOdBNLw16&>a-_OD`M9BWnN88{I4WY6#eeb?PQtpa#_L}UY7vA^iW@eg;r zIjd=Xw#dO-8dumgP$vn-Yyc}aeIXmw6-!t{h@=&sP))H7z#w?fJv?$8OTr9KBaG<6 zV!<_u3%LM^MbIG)pvoyfswc`ys|{p>`O1+g1HrBS+cdmE}2qmAJ^7nf-d)KZz>Ry?#7sY#~g3L5tYcDxLwc z)oo=}A3zs?GB)#gt2XbaYa!}4_^2`dQY5O-k6M}E+~1q8{4hqW9;YzT16vMEiST@1 zr^OhDlW%e<%#j~+_RAq?qP0Y(VtKYaO%3^#9_e_&2iJ*hiNaouXN!YEN3=vVc`9Yn z=r9Xa8Gr&Bh!u`M{OaV4blM}7vY0R|z6*`1{#HufWtM0<8Bzssy~O*59}`0rKa#Q< zP_E}#v-w=(!7E&x*mrZo$NV~Z#^-mBvTu80U+AHQs;TM))$etskK2(qQQ;9%*WqlNWZrfM%U3nxwl42>~@f|}J(F++_vqvu?uR+$zSDO0u zxzvmv2lc1@UlRF%FiC&k5lOXY7OIkah=PwRY9bOa@W&T9(?cOPTIL5w!ma6@9VgQL z@DvId(YIXX=MiCZe*FhUyEO!efj!`wwuiI2A_Wm^Ca!tg-Ave3l|};IB*=>rGmKi! z41WY^<(s8L7%T`;_yBig@%*;@l_{=5HU!Bu<@RkxeQRa48nkV8c_ywtdgSQ*=V!X;iC(h13Za*^-4zBW{MYEmrAMDOy|x7hpYAHL*Q981>dx39cKLLFMM{Xr z|6u&48|Ms<8QZ3-by;!kg=QW(x8#R!M;%JlgM z%l9g#gUImZ{{wv2@O$tU@LwGCSR$B(lEZ$-K7H zY0(FKD*kjIss37FE34S@>X7WR<@(OA##$2_SAhv1^m+uJ2f$ZhwH>7tRD!JOBBVA= zc_W>#*MXf4+pQP#J>W(8I!uL&8?F^;5~A!dE0FfL_mcoAbd3iAhmFOX&e+^VkLu6i zlAlHBudoLc()RqzZqC}TXWAlR{y7s9gGFU&s9)*R7pQ3d&MnYC- zSDy~;b*i}bjI61So}U3(yMftnv?8Uvai>Q%owhP@Rzp;<@3>rhf6CIf7KN2pwc)fs zkvKd)({ud_L6NS^E}PU!8;k{71i;6)5c%$Zc$0ePW&~+SarGgn%BlTNzkRMUlbp4I zfuSgy7LTKCQB#vnv=@LzPY=dSJ;*g0B+uPBPS&VPqVSX0ueyvQg6Y+$^Oyj>e0*L$ zJ^uI%0jgRAa#;koI1oRDNiARbBb&VW$KM;xIrX-4OC>k(T7}IOxF;mJTy>#tU_vH0 zmD}LB!e|+#V;r(WERzYSYJ(z6cKT%*fo+y;5K9dCng&YPu1vMs<50P*Ymffv)%sPD z-5M+Zso6N!^NTVTa9P^ac*j{*Fxai16T(%mn$W@1_xMzH$aQd#BG8zl!R`U|5cV08 z?;)z~Ni_0NZS4cQe(mw$s#4&Tk2KU1BV^xyCC4nFUA|9O%Q0y9@U`eEpR*5Pir znZh*dm+dcK5;YNa`Ws@&@NYlby~;HK7f0YyRrTF?Ogb-{^msq^{Ax1BMq99*K z;8@)E@21P`u|!rrr0(4i3a6i=o+9<3(p%fvd20x-a zHgTL^Qqh6IrD9jwC0bxwVAmI_=&?^yCDW0ecs#vV7kJlZV9 z(G_Nun(k1kgl(miY((Q9gfEd>;ip6DPQ5tmac!3qe=B5FQ|~sj^)zBB zQImL(NP)NBzfR@y6wT@DHeK%@Rrn7mBb}TE$Qd1H)=1HtI@>~tL>sUjWWe%7HnXpb zV!)6`MN%QIT{yw5v8!xPWk~@-c8`rsW>V0;=@!MX8*8?c;xiM*h%mT`~|IEhd}z;drLM zUGzFCz0}!%6+j4=`~B6pX^H{?CifYV>?jVF5*-%$G_j48fiiKpGIAL}s;)O)8TImV z!F$ol4N!VcHkljBIqlYHj?UDF z2b7k}s}kdesAD`27xlMW!i$!w(Ye_o<}c|#s{y~w|1OU_k?&nN)?ttZjRmiOP!SVmbIsl`jbeZzo>97vBJz6;MRDE*G~;e*0Y zQtlmkc?OJE!FdXDIHQK;WiWG_uq$I9?v!W*>-YEC(60`zmwO~~)xu;oraN9e%LvEN zcl$+Mr|MFhzZkOI?Ztg2*&MpdsMI1GCv*fXVJ~xq0!4x#u6U+Y{rq0G^gQ*f7XoFf z!)8P!844ghK4oMe3Gu~azJe@?SA}yER3q66%LlKHo7#!z^U;lY$%~9%-p@y&O0P2u z#GpgyB^e;)*tKyR)GSt#8E0QWy&eN~%01%!mi;kR>mMnes=m%yXuGp(vO~8x>sc87 zS@PPk1j!|POjoC5*_8L-PAPo?VofWA^&5hlSam!Oy!!Jcxxhjv{0}DOo?OKO0}qYK zM*Pt+;-eQJd^caTd9ud1DaNjkEniakqkw4GKh;_AOh3IezdUy=uZmgz&Kchk&7K!- zEVn5%vWuY|~76!1|4BLejjWVBwtWgq|$&%a}tc)LK%Lg63V9@}S~HNiYk z4{fo3c|&)$lf8EfxXHrLmJ?nM=NA|GmxPA(7U{!iZP)88Ibc&72zn3L=7D-^h(EqU6j=jf$ z@oX{c`3EGWe>XuObVmw*9GIe)Ixqe2oL6h{;r=84VAGZ!<>!OtSXi zHCa}CVl8?cWp2xv<}qbBt{MhVJ;^4Tj+xMCio|S%3>Y$Jys$dZRs0c9b7m*T)#-$O z%Zn##WZ`-N5`BJfVuv6;>{nDvxzTh+6KD;qX-*}3w!j4N{yp3-b37eFxb)uBri}rU zT1weV=m^UQEug>)kf=u>xQIB~)G$|=vh)E&eG1U{^nXVYz?g`<|MCC-N=fOLux4Nu zCU)e^d}e}LzRIz*Lv=Q)S`dfy1|pxL|4~SWU^XCsjtrDlV<9?)s9~Tf;PYjoCdEbN zm8DHJ(dvMbG4$1g=rM+;@#Cp)0CMrlf)>iyqrXbnK5>KFc)8veuovtSYeSF2 z>ApFx*QxA0RIR%`-rcGbb8Vn2+MTuPxZE5atE`A(5B%1CyMAy|a38koeio4c59W?u zMwK1LSldS;CkrehDxYH@CM8Kr;o(SiKK>+2I893bJ&r|g6MoXiNWjNzRmtJgsv;r9akW=D#|dohW_Fh0!Br8d^kxXN^o@DG!`?d9~-sa z0X!$Ac(OnT&mf#ax1Q%pgkN2Qd0$lycH2+Sa5gtWY|IY)h8FJ|ebwO#)ru|4`uXMl zefmB^#31UeEaIt;P(oTB0dD#AtpfVA)-eWAHZ|Ls|wRmX5I}zl8u*tiC5E z2TWjqajd?J{6kc62K){UB&>YsKaY)v31GtQE2>QEy9l924kEETd-e2fwGr%z4OGxTzMM=7ACiO`OH4V(&Wl0i5WML? zhq55fHe_8^IKpVrt3n_4a$cqX_2;JbcY3?kRJ%?k1$nnoqdi5ECEabEb@UsUi6&o+ z>L>kWI+iIPgTuQmFG5^Ww#tM&`o&)n>zIr$_58&Zv(K5KbkXccnLlTQ39ERf{wu$-@BoL-YqL#%-hRayIaR9$!s7ducu15YT3_KSF40TGjIvG zh$jdBK=H1FSYG^6qX?BndnO*t!Th=u8g0>^yInUWes3KGoIw1prRoG&?6WQwI+i8> zl*ziuReP0|f{^P{fG|tb870Wag>#J`r-vVx z?}8l2WkH~j718S?+hZl9wTT;7&SuCo3Pnc3ny;>oWWyRcce9gjZV#1~%~L=VE18-) zRpj85ckr+)Ec9sTj(w|7*{l+n=fy^`$y$XX%1Mbl(`PWU8ktY8I}qpPf562jy1>cB zmJ`}n(JvT`KTbzRh}D7_2+1!IMFo9b;uft>NR3lg=o;jgL(ddMmY$ONd$G#{eoy!^ zQ~>XdWgs47Eh{#V2bC$bLBVLZYC{~DkM&-@yuF%<_?tE?4<~Q|ZDW5Gu!W1nu7$H$ z2!ckj)45sliLP9J49xSC-49mw^t7&{NRKDJ-0uSu^Dh$VHXpmGsNud#Jx#|U>S+L9 z?as|Gr_OR?qb_WJrAI;eW;Qmhnp-v!R93ct8W3QkT7rwA(1~Q%VEIkVmSSX@n~bDh zSy?MQj6oP=rAdIfY=6y;6)``mp2^*WC&Lfx%8}lN^p-WHd@&b96`~)d$LK&SpRjXS zU@7CsG$rX_Mwo}e;M|&*^ojU!Y*=OO1<@#vcUacddOr~$3$7}T0jAF>-Sjw*_<^sC zG_?U(?(HZf!CXF5XPl7T^cq|0KPw}{f2yb6=alfOm0+C}1s<@%8POB>Q=>L=Xs z>}du^S#D~^j8G#^1>OhJsDy4h%iLXp;ed6PUo3o-Ev?==Lr68I~ zFcd9ErV^UWc#3pXUV0}6(OS|e-3s^uHH4jd_vYAs=^abT!_xvuFi#{}dp`aLVtEiV zmrXy5e5F6 zRnJjpbrr)PWrOwa>AAFp-n!7-VCoipAYB@gOzREtd7=1f69K`u4N$t)`T;+uu^Acq zq=`$_n`cw&EvGfQR?PlQc@~8{6*)}4wt!4&io=(%@}huJ7|~G@#!%vhLw5a!1!#Ms zqBLgMk+$wFix{G|b9EMv+hLb&U(H_aeod2M>WyO~OkzTWSG+115xw~I?D#q)muLZb zOo92yV0<(rke24uFA=u0RS^yCJ9d36OAdjWImhZEhQs&hewtrzQb4gBV7`a8hc&;ZfP`N<<6WIW2I z5drR%7AGMYtuJ3zc#4TsKzyV8?*+FB0mO+xd2&_s-&K)$RK9;iLZ}m1r5n@dvu%g= zHRxB0G7{M5E2px(M;IK4uihtrre2du9a3~;YQaqQSaS_d|6XxOEgJxGU(7qmpdv3P zt+wmS#lrV#!;Z6vh$l=O5K%@yx>z%B1Y>Us^KOXfA~09ep=O-HDI$}SeK*648% z1tWEXjSQ$8!J!`gDN%^F_bT#yGK6|%fmwf5Z1KlAA2a^6@)}fpRSaT@C4s?LqXWgfRidc zvwspSIR>RAW{xi&(afYRC#`C2RKLObT$(+S)UzrNW4q_vKxwHvOjD-ZcLAGl8(uBj zz$3|6LCB2f1>4oGG(9_27F<+)tk`G=DbKQf-rp2nSjDk^m4v3tI|#0Les75#dJg2CdoWl8fe(E{uF>N zBlMYxQ&$j;UWJ~D>nrh>Ni|T+;C?}b4C{syJK)W29A#&-`JXTo!K9$6i)5P#usv=d z^#C2%FYklu`XRA#uVp;k=Knh~HNJ**pz@m44TA-ld376}SBy#T3_9$X&)$ zljCYUm8aJ-K*K?LY`hU0;E7l`*eeW01}-&$)D< z(^wzx3vF+mtG(Y-aX$**)B!{JJU&u-b@O?-U+tmbCX&jLb3WUs((g?2hi~VqV;1)3 z%3o>}qrN{n9$|#LBKGeyDmPe44dpdL$0O;aiB+tLkd2Ft+(~lfDF^}JLNOJC!`f)_ zhvn$sf)48SM_z_va$?oZMR1cBj$4|il$l4$$DtvGewvwK#@I$d353jBGJH&7msuWT zR?@QJ&n(3VJ&0#I4A_Z~v-$m_MM3v>FnBAv8Ha@A^HL*1qd<67*7@QAyT7hZE+mkD zK>GRyUi(j!;jVj%sE@Zc-mAotSfyirt#Ser zv8}wWo@j4d%)~Fi7klGQwx)d{xQ7`+cKfHNIoF~N|A&6r31`hwzW=H&;x9f;7E+Wr z!U7kC?f2F+KoixTouJdfW}h!u(-D2@0_?t-&DcbkfC`EfzES6+X@;MuF z3(^B!5&B$|>nD@`O;xYSxARToEF8NiJhJ^ArH&I-)tS1qkksULva~Gd$T1R3(t<(! z@kjU#n6_r3*9B+A>)1gHt#;i@u7v`5-Z6C>o5&Asy@<=+GG;X(JcA$daH|PqLp3_v z#5gH11r!o6@6|;RcimLbF@QY@fpU7UbVd4u82(4=oG#NGwiXizztjHqPX!j)m;GB) zcX*e>YKPbC8NVD76XU)%A_Vk_+IV;};BBu^=VcICv&HH__(TC?Ty)?Z8J}e!o2RO7fxGUp@y5hzQ3-S~2t+v~Rk^eiT zsIlRwsCNh~omv>M2s!O#Iu|l+x#UxWB7*OSplCC)#v(KUikosUvfyn`KZHW|OtODm zup$&oij9!ebTB?i&a6~&7v=oSm4;C;{L zOFzWi|A#U|nEH7-f7_#wqbkcL!V!h=xWpr@`E45m&G~K7Y(RaovIGAn!i#9>A7z%5 zl*X_J^wwQ2*qP~xnSi0Cm5RJQ%3-Xgup;Jd4Wce~?aN#s_-C5THE|a%m4l9e7BV73 zY|6@_eqUrp$;`*BO)OxthrmfKwzW&xhch7*9Xg@fD$lu3$JRu6<*elh6jJwhGiPm0 z0WFRpdF^g>sQAdg^FVo`t&fMW2xIGk$&+a%L2LyZdgtt+{1wpAJcbW_U_@MrbQ&rzD;q3A9n_Ds?f}YZXdtv7RKnoR^i;xsE1pNYVWOv3 zo=Gy|PJop?W#Z1_WU+Ld^h$YW^am-%VOrC?H4AB$j0YrDxi96*pm!pO)A&k4wsml5 z-ZfkQQ0bQ=zJfiq^@I?PiRYy9Q#X^`a$MF(r29ycJhw*h!xvWEi>~X2mn-V~+Y>!X z{TXnz`h*sJ)Fr$jE1JB-OXR^$@eCV1i`A3Er8>LJv4MT4vphjlhy3j&Ja%Vwl)hhX zIdk6v`z_yJ&x3cfIbfyx@Te$tSX-9%#wLBI(-6do6IBXkfpbSbd9ckZ7HK*>WNd=H zBkEagMWwK!&mMpC)~K9nJFrbY5}~?{*lDL%Uxpr|69)>SyC2Yv3jD#c#OB-N7-d}W zhn_+yaQZrHg3EYzjt1&;8bUJSJl0eqn*(WY zb2JOEic;;#`Ww0Ba^g(%aV5LsZtQI9)Ii_(or9UmvA&Uxv3tSqzd3Xs_L9)63GvDF z3ZpG_N1x)&yWIG(VY(izjkk*qT&nbZI2MTNF~8_O1ryt2NyF#jJ)AVrRrjQ#9T$8~ zZZ=hnxwCMBZigpcXRD#$v_td`l@SDaLBsmu2Vo{C?^*Wa`$*4<$u-Y&x0z?A^-LCv zueY@6xJNAhxrrkvY2f>(iNMR9g{*sG%Wr+iHPnBer_#rW(mEeLS)W$e{!)FrfIVU1 zrs2&xiY&Ui)L#*C*b-f`w~yzm<9@u9#=yh1;c2Hm6J0Ja0Nlzi&x+JAdDGpl?NdUn z-}I?R1a%#C;o{+Hwcp%>=>ADSZ<{|O%8Fo&H5rEF{>&8D^rV{v$w5jYNB%Y97M$xS zaXP2cp^#w|`nX^_X^Ov%QLjo(Z6_W`pTW-KG-J}%Q8i`y??PRs1jxy57wa5>-f1=s z7rCW7nG+1^4M9VfFh9z3)(XJ0%l%7HexLU*9!989?t(X$ixO^QCK|pBe(QcpF79+m zsdQcSp6nJg@jhoYuJ&L%Xatb0-U?awhy-n^p;vtz+(R0ZIFj7k{5`*3qvw%X$it78Oq6KQZS2|Z@X0TyT6rrlomos%#-AzC-dG^mg_@CHq;W5%mc?-JJ z8DVzZ{4ro(j-Atf8XRX#{ymwSPt?U|4)@MlP1|kld{dRl>!pM3PDb;^ zXsoPC{>H~94%>YDU+>;5_W{Wf%y8fA2z%RaNzb$erK{eN$Y9PoxVmeGRF@TOWr~Jx zTV4VpaE5$dC^b%77RknJHokszj+k5?Phh7V*)A+zsL^>n8+XfG)D7Vv1 zo<(0yw*HOcC10QAHQMmKvySy)4Lrj}9pUDBwH|qvP=zs3F4YHXgkM!hjN2ll&t?tl zJqeZ%rNg3%5Ng%k@aIRO=SO3olSU_1)BJoQI9hJI#7=9XEP-0nES_g)`27>;vUaZZ zJ)Tjv@dxHInH`M4l>uMyAmM&&y4K|fAm%lqlz3h> zc_#FMFIL%^pMjZyfF2;M4_IS95TQa7yVlaG^N#5`BV%B8p01~axXa0ZW91Y-(DFy2t#GTtQW_DHfaVJuqJfrQM^Q(ZuA{);duujN zJaCf?{>7WzMT$Gd3(5kLtP!Y2Ll^6HsMHH6+2 zw(X^9og~Bu*(VE>vT@Zq(sgpV^SOH{+r$6o{qNk>Gn!bm<3-QZ)I>Jy;d%sxc3sl% zBzT)NWqtTp%s3J>S4iqORUlzWoAHQt(o`c_!D3z3pUC$C}C=AYkA%2gy8(&2i8tuqJ^9$Fer;$QB zpe7f9qFP-3hIx~x!;g~JQ*RPgpFwug5`ot@^YRL>X;kwbsly{w>Tdse+$_V7&;^J{ zRmB^G)4wXpnftbyAJknC9FQYzIM9ck%27`Z`9|otY+JG@pg#t@fx1Lz!ftLy;q#`{ z6o-?tpSHl46^_}#j7WH^>-$jmx6Zzu8VCN7u6x{Np{D^V*MP3)#(Im=Jipv_hZ!k| zgv6SQj-KEQurD5wiA^Yb9Tvn&=a-d5_?)(mmii!DH1UUu2V#io%9+(D_6tpmqT`mfSwH*Z~q02wmxjS z3=}BEvOl4``H(_V%1b9{f4^c8n|}5j3O=`v0N*Yyc_$blhMB~;xwXf0rhL`|wECT4!w|OJ~XaGYf0kc4|0*Lyc3TQRD@l%}f;^=#>>m>Y7E}K)K2r1`+ zr*v($16r)`b2OCwth%gk*NtWEtixmR!sLi03Xu&(-7a@L)^9%n+4lghqb98IAM_uT z$ZBpB^GrevF)!auEiY4Dsa{@PeYUlYC@RQt8l>Q3&htUmjznpgvBOFE3f2zsoMs!APWbk>xfp z@FXv}<_$fCCmsHd!8?!KW8B=!4WySiqXtm;61sTsq^|K1&#Lm$X^g~aSSR@Lq?z># zwF4scHh!}5e4Ym*g?uEO%=}2h=+Ai2Z2yG)5q#e-&8c{_=3g5GMpn)9?>SNs90&vI zeaW?W^x(4#XrePr(GFwuUp#t2ofpI|RBnH8`Q6jci4QK1kbzP)`%+<9jC)kb*fSkA zwRI6C{;bp&8(A4OjYY@nPwh^KW3i^qKKTL4x?MF!V>i=rs$qa!@@$8fCC zz+@;TTcL_G)!Jl@A*ao=>+;D5+}F9*jjcx#RO?B9)(w|lgYAk~r1&Yl*ulSU5)u;X zxSn~NxQRCV$AMJXu?j@D1SRk=bhv&Eq*8ilgKfovhniQRe2tCT8V}xs8o@s~Z#AY+ zrWEkz_qQcY4)wUjB1QjvO-uMCR`QA$i+*XhUk8bf;!?}OgKwGPdj!i8y3{qziK3u{ zZucyS0Zo=J(Qu12y+2MYHMp$o2eWX2n_XfZ6va&=Y48+5^sO9 zh%=o!9`-$A*{t(fU#CNzu1IJ#2C@FlX5j51e^DovMQz~1Cl>phm}<4AFv*5AiTFscswd+<9rMQ!!FLubGE_oE3z$R6X0{Di2qn8+4B`9<~3}TQw}F7<*f<`pC=iO3j=xiY*a2`1`MZx$0tvS=EkANVUEPuFlMmg0x2#y zAxu%xCafzcX%z~lrIHZaa#G|7J!rzM-W~G8<727tF?ex#Inz18n_mjBa;c&C45;cr zmgJ(|z*Hmck|ro8y8Pe+P~@f8!o->N4?!}m>Kh5jHu(I!{>6l&+Ok0mkUN+ofQ`qp-BoYrZ6LNq1&XnQjECum;X`RKNri$0Ij|OR) zS@_g5FYxUH$m-(24v>YEoBE{xXC_Swu(e&qH{nR^N9Z|^nD;O{t7&2aEVbYx-ygF5 zjT6511T}!%cKP4LmX?kd`MdFWTqvA&o_oNmP7P2|p0pjFSToP(`hd5QMJhk1E8!6t zwyK4+Ox6U8UV0TcULTM8c{8>~x>w>TvsRujY`N4wfhJ^c-G?fkaOaIE3~&t-w_K&y z+y0o|b9^kTav)j;Z;##R6s3wl!ffElgB0Dq$-yZ*{ zpgl1Q#$f*vJtChT!#qnaj04I3WwAi5!<3B+Ad-wXMjKF6RHTv&QGZqxbKV{<^hPQw z&YkS=n(MgR+u$nn;e}cIf4t+iJ$ztqKlebyFL~G3S6jQN>Oov>%!sLRED*bi*Tvj; z@$45ze}Fx(qNNrRd4aM4%vZbw))e10!_d5VdLw$LP1Eo)^!JaxGTzXjMJDRaC9|2) zwGIqi7YxBtZE`?KFzq>%UrAA{y?k4x3PPuXW6ksLFu>0=G#G(08y=(yEyP9;f+6`2 zZD8lLd&J{(u6a=MM3;!HoP};EeLksd@Fr@ukdh+3GlOD3*0QXTE9 z;ykhCHWDI;gQ0Xk%vEnn2K2j5A{_AaVrlZBE_D@BsVj$SLKCklniEGag zSOGaa!t0lwN30XV8K+c&(=X?Gp69Jx>4yAki8)_fK(#k*dK9$b3Rm8Vu7KNia8l^`zfj(qZ{! zVFj~4D67$5Q~a`)gnCz2QgfDsbcOfa?ix>|Wdh~cU8$-v1@U^6VQs;cLrc-5&8rTQ z5%lS34|zvf*V~WlXG)!Wo?Pqs`2yK!Xgg!+0@yu^D^D9OWC4h6^V)h*)w*Y|sGu_3 zFVp090+IGun`nGgyaH?u1TH%(E7rmeKAA`td(7S zw{EK|6WsU9X-x3?_IHO5T|OJXsNit^BJxww=#ewZkj|Zl+vl5re1#3dQ5oyH*Ie3{ z=nGFK>DIkb&6Jg8KZe9kj=pJ!E*vu7jn6rDv#gCy7w;j@M~H`Us3Eze%WWP~g~ zixl-p!S z5%{kEy|i9gfFiel@w0Tgo8O-l)(*OgmG$e_&NP58p`v!9M8+&Ngd*8D-HunID&4SDVO*cKg7@7h-RqqT*u>f*?*oT>#{WQ%d+2ZNFwct4Q_7SRfk zsFrX48K!9#9ytM}IjlX9;_evDT>j-!O8m(;+FLj85pIqR&nN$wTijXhj1zra{m&Q! z%QPO*4)?%|vA0g;0i3pFDvgY~41RF^2G>51{xxa_Q2$4^gBY-^;AQ*4o$!^WVNFiDs5)<`=%Jg?x7-JsMF@ zL(k9X?nCil{z!!4v;cn_VVeEtHE8Pa;#$XYlC7IV60FnU_Qbjibtsm)sLxL>EM!8P_S*k$ zuMT>6uYdse%PREP5-O@)vb?=T^g8ktDp;+QUKbD!e;8DKR*ZBiQ`SB6ebA?7<$Xqo zwG>xemKv-msdQ5<>i&B)K);IPVMG=P5ue=ngLuo#W-2*RV?Tk^nNcbYfI@El7OtKJqPW zQI_ZT)&6lYc7gw(yRtDj*w@tCyIEMSHz@b(prHbx-266~QQ{jgsv8!_Y4JIC0!ojU_8u?y)^6FHdn+l;5q+l{=Kp0V69BtPg%NdIGeQ5 z68SUVDG_X%%8``{OiW5DFtC*?xCPe^1(u<|Cb<~1eE;DCC88Bnb93#w{DTmo^!`sl zK>&JivF7`5XEDOr@QxVFv5m;G@BugRO03%#3rR7&(b+ov6L_~2ZpKvQvvih(} zyW5H8&VF)_*3eU>=Fg!dWGPSsos)|6-jv_rTFo8&>8|}{W9LUydGii7e%2>^S`Uu zUG@Nfe7bEu`+h(C>VsZ}zKqHzhaEZp+xpx=<@4WB)rlrbYm??*V&K=X1s|)8oCTkY zDfY28Yoawr{oLzSV1<9=7ElV@FVu$kqxP}i=hfz|DjID6op*bz1HjAKA4GxhiTqsV z0pQ(w^H9{_C4MdLs$9L}&DKp*r@w>#wFE`R=YT!IQ5y1GC_2>otMHQRpVSFO`tw#nvj{2y{mWZ#Snl0d%8w@d@2 zmjJ?x!3dxho@qYxpN_DnA{s&rfUoh?>3+O6o>=ChKlAg}bF;HJMGskr;*fvWw}B}0h3_(kh6tHq!H&Na zi>CuoarJPj9u_j${mYI9Bf5M4*bZo+ba}g@a+p6R;Nsw|v z#$NM^SdI&oxb>#$lRkJRh<$EJ--N zp_|0oN4g307AI}D{XYhd8?{3r++@BL?FHGzXmC_oN5us!2^DQ=@oe+DfEind-d4WBZQK zchT*q*hbCRsKndo>l~{N4iwk`eUEu?oJbv@!%^OP1;4y>zKq$nQJjbg#h*P%!qhm= zo#vS14AxoVS;59s&13U9R;8!7{}j~i!TYEkcRmv4C=%p{+;-F%lvNpNtF0j&btQodNip`?%>Mb$F zd(gw!Cu(nLIO+)aCt@IUS14Y)`QBhYsyUOeAbyW+Z1-;HO6uLS>CGUl4{v2Okk_9| zoKB8EU|wW+4}Pk{!O4k8YB5kyP?Ue{*KH?Ah{D=)Yu5$tVR=WF#&(2`QhH&`6kTUo zv7L*{>TXSGFSQ$WAt4nF&;*J!p#0lAr?QT>6q0)u)g)$rp>(4pKS^BlD|3FtI?ZLh z=<*)Z!7s$PBGcLYDtdnJs~(M2r{!$%40}VfyctHeO2MnqL)XAvPE}y zE~8S6TDXLLKdfQv$T_7kc(R0atQzG^41$fJJ6ZU00rNT;`6@t621%DD1DPI>BYjT& z?ajM$2Z1bg-17g&(pQGHwRPPFcWsg4?(QD6IF#b<4n

;9A^WTC}*kyBBwNiaP{y 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 shoots to your previously blank mind as your mind suddenly finishes the cloning process. You marvel for a moment at yourself, as your mind subconciously recollects all your memories up until the point when you cloned yourself. Curiously, you find that you memories are blank after you ingested the synthetic serum, leaving you to wonder where the other you is.") to_chat(M, "Lucidity shoots to your previously blank mind as your mind suddenly finishes the cloning process. You marvel for a moment at yourself, as your mind subconciously recollects all your memories up until the point when you cloned yourself. Curiously, you find that you memories are blank after you ingested the synthetic serum, leaving you to wonder where the other you is.") fermi_Clone = null + return ..() //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// @@ -95,6 +96,7 @@ to_chat(owner, "Your expansive chest has become a more managable size, liberating your movements.") owner.remove_movespeed_modifier(BREAST_MOVEMENT_SPEED) sizeMoveMod(1) + return ..() /datum/status_effect/chem/breast_enlarger/proc/sizeMoveMod(var/value) if(cachedmoveCalc == value) @@ -164,6 +166,7 @@ log_game("FERMICHEM: [owner]'s dick has reduced to an acceptable size. ID: [owner.key]") owner.remove_movespeed_modifier(DICK_MOVEMENT_SPEED) owner.ResetBloodVol() + return ..() /////////////////////////////////////////////// // Astral INSURANCE @@ -192,15 +195,14 @@ /datum/status_effect/chem/astral_insurance/on_remove(mob/living/carbon/M) //God damnit get them home! if(owner.mind == originalmind) //If they're home, HOORAY - return + return ..() if(owner.mind) var/mob/living/simple_animal/astral/G = new(get_turf(M.loc)) owner.mind.transfer_to(G)//Just in case someone else is inside of you, it makes them a ghost and should hopefully bring them home at the end. to_chat(G, "[M]'s conciousness snaps back to them as their astrogen runs out, kicking your projected mind out!'") log_game("FERMICHEM: [M]'s possesser has been booted out into a astral ghost!") originalmind.transfer_to(original) - - + return ..() /*////////////////////////////////////////// Mind control functions! @@ -603,7 +605,7 @@ REMOVE_TRAIT(owner, TRAIT_PACIFISM, "MKUltra") to_chat(owner, "You're now free of [master]'s influence, and fully independent!'") UnregisterSignal(owner, COMSIG_GLOB_LIVING_SAY_SPECIAL) - + return ..() /datum/status_effect/chem/enthrall/proc/owner_hear(datum/source, list/hearing_args) if(lewd == FALSE) diff --git a/modular_citadel/code/game/objects/effects/temporary_visuals/souldeath.dm b/modular_citadel/code/game/objects/effects/temporary_visuals/souldeath.dm index 1ebf6fb2a6..bd5bd06df7 100644 --- a/modular_citadel/code/game/objects/effects/temporary_visuals/souldeath.dm +++ b/modular_citadel/code/game/objects/effects/temporary_visuals/souldeath.dm @@ -2,4 +2,4 @@ name = "soul death" icon = 'modular_citadel/icons/effects/souldeath.dmi' icon_state = "souldeath" - duration = 30 \ No newline at end of file + duration = 30 diff --git a/modular_citadel/code/modules/mob/living/carbon/carbon.dm b/modular_citadel/code/modules/mob/living/carbon/carbon.dm index 44512ac0c7..e95948e562 100644 --- a/modular_citadel/code/modules/mob/living/carbon/carbon.dm +++ b/modular_citadel/code/modules/mob/living/carbon/carbon.dm @@ -1,73 +1,29 @@ /mob/living/carbon - var/combatmode = FALSE //literally lifeweb var/lastmousedir var/wrongdirmovedelay - var/lastdirchange - var/combatmessagecooldown //oh no vore time var/voremode = FALSE -/mob/living/carbon/proc/toggle_combat_mode(forced, silent) - if(!forced) - if(recoveringstam || stat != CONSCIOUS) - return TRUE - for(var/i in status_effects) - var/datum/status_effect/S = i - if(S.blocks_combatmode) - return TRUE - combatmode = !combatmode - if(voremode) - toggle_vore_mode() - if(!silent) - if(combatmode) - if(world.time >= combatmessagecooldown) - if(a_intent != INTENT_HELP) - visible_message("[src] [resting ? "tenses up" : (prob(95)? "drops into a combative stance" : (prob(95)? "poses aggressively" : "asserts dominance with their pose"))].") - else - visible_message("[src] [pick("looks","seems","goes")] [pick("alert","attentive","vigilant")].") - playsound_local(src, 'sound/misc/ui_toggle.ogg', 50, FALSE, pressure_affected = FALSE) //Sound from interbay! - else - playsound_local(src, 'sound/misc/ui_toggleoff.ogg', 50, FALSE, pressure_affected = FALSE) //Slightly modified version of the above! - if(client) - client.show_popup_menus = !combatmode // So we can right-click for alternate actions and all that other good shit. Also moves examine to shift+rightclick to make it possible to attack while sprinting - var/obj/screen/combattoggle/T = locate() in hud_used?.static_inventory - T?.update_icon_state() - combatmessagecooldown = 10 SECONDS + world.time //This is set 100% of the time to make sure squeezing regen out of process cycles doesn't result in the combat mode message getting spammed - SEND_SIGNAL(src, COMSIG_COMBAT_TOGGLED, src, combatmode) - return TRUE - -mob/living/carbon/proc/toggle_vore_mode() +/mob/living/carbon/proc/toggle_vore_mode() voremode = !voremode var/obj/screen/voretoggle/T = locate() in hud_used?.static_inventory T?.update_icon_state() - if(combatmode) + if(combat_flags & COMBAT_FLAG_COMBAT_TOGGLED) return FALSE //let's not override the main draw of the game these days SEND_SIGNAL(src, COMSIG_VORE_TOGGLED, src, voremode) return TRUE /mob/living/carbon/Move(atom/newloc, direct = 0) - var/currentdirection = dir . = ..() wrongdirmovedelay = FALSE - if(combatmode && client && lastmousedir) + if((combat_flags & COMBAT_FLAG_COMBAT_ACTIVE) && client && lastmousedir) if(lastmousedir != dir) wrongdirmovedelay = TRUE setDir(lastmousedir, ismousemovement = TRUE) - if(currentdirection != dir) - lastdirchange = world.time - /mob/living/carbon/onMouseMove(object, location, control, params) - if(!combatmode) + if(!(combat_flags & COMBAT_FLAG_COMBAT_ACTIVE)) return mouse_face_atom(object) lastmousedir = dir - -/mob/living/carbon/setDir(newdir, ismousemovement = FALSE) - if(!combatmode || ismousemovement) - if(dir != newdir) - lastdirchange = world.time - . = ..() - else - return diff --git a/modular_citadel/code/modules/mob/living/carbon/damage_procs.dm b/modular_citadel/code/modules/mob/living/carbon/damage_procs.dm index eaf5899d82..a2b9c601dc 100644 --- a/modular_citadel/code/modules/mob/living/carbon/damage_procs.dm +++ b/modular_citadel/code/modules/mob/living/carbon/damage_procs.dm @@ -15,24 +15,6 @@ if(!forced && (status_flags & GODMODE)) return FALSE apply_damage(amount > 0 ? amount*incomingstammult : amount, STAMINA, affected_zone) - if(recoveringstam && amount > 20) + if((combat_flags & COMBAT_FLAG_HARD_STAMCRIT) && amount > 20) incomingstammult = max(0.01, incomingstammult/(amount*0.05)) return amount - -/mob/living/carbon/doSprintLossTiles(tiles) - doSprintBufferRegen(FALSE) //first regen. - if(sprint_buffer) - var/use = min(tiles, sprint_buffer) - sprint_buffer -= use - tiles -= use - update_hud_sprint_bar() - if(!tiles) //we had enough, we're done! - return - adjustStaminaLoss(tiles * sprint_stamina_cost) //use stamina to cover deficit. - -/mob/living/carbon/proc/doSprintBufferRegen(updating = TRUE) - var/diff = world.time - sprint_buffer_regen_last - sprint_buffer_regen_last = world.time - sprint_buffer = min(sprint_buffer_max, sprint_buffer + sprint_buffer_regen_ds * diff) - if(updating) - update_hud_sprint_bar() diff --git a/modular_citadel/code/modules/mob/living/carbon/human/human_movement.dm b/modular_citadel/code/modules/mob/living/carbon/human/human_movement.dm deleted file mode 100644 index 2223b0816a..0000000000 --- a/modular_citadel/code/modules/mob/living/carbon/human/human_movement.dm +++ /dev/null @@ -1,37 +0,0 @@ -/mob/living/carbon/human/Move(NewLoc, direct) - var/oldpseudoheight = pseudo_z_axis - . = ..() - if(. && sprinting && !(movement_type & FLYING) && CHECK_MULTIPLE_BITFIELDS(mobility_flags, MOBILITY_MOVE|MOBILITY_STAND) && m_intent == MOVE_INTENT_RUN && has_gravity(loc) && !pulledby) - if(!HAS_TRAIT(src, TRAIT_FREESPRINT)) - doSprintLossTiles(1) - if((oldpseudoheight - pseudo_z_axis) >= 8) - to_chat(src, "You trip off of the elevated surface!") - for(var/obj/item/I in held_items) - accident(I) - DefaultCombatKnockdown(80) - -/mob/living/carbon/human/movement_delay() - . = 0 - if((mobility_flags & MOBILITY_STAND) && m_intent == MOVE_INTENT_RUN && sprinting) - var/static/datum/config_entry/number/movedelay/sprint_speed_increase/SSI - if(!SSI) - SSI = CONFIG_GET_ENTRY(number/movedelay/sprint_speed_increase) - . -= SSI.config_entry_value - if(wrongdirmovedelay) - . += 1 - . += ..() - -/mob/living/carbon/human/proc/togglesprint() // If you call this proc outside of hotkeys or clicking the HUD button, I'll be disappointed in you. - sprinting = !sprinting - if((m_intent == MOVE_INTENT_RUN) && CHECK_MULTIPLE_BITFIELDS(mobility_flags, MOBILITY_STAND|MOBILITY_MOVE)) - if(sprinting) - playsound_local(src, 'sound/misc/sprintactivate.ogg', 50, FALSE, pressure_affected = FALSE) - else - playsound_local(src, 'sound/misc/sprintdeactivate.ogg', 50, FALSE, pressure_affected = FALSE) - var/obj/screen/sprintbutton/S = locate() in hud_used?.static_inventory - S?.update_icon_state() - return TRUE - -/mob/living/carbon/human/proc/sprint_hotkey(targetstatus) - if(targetstatus ? !sprinting : sprinting) - togglesprint() diff --git a/modular_citadel/code/modules/mob/living/damage_procs.dm b/modular_citadel/code/modules/mob/living/damage_procs.dm index c2ce8fd24c..a399c17c71 100644 --- a/modular_citadel/code/modules/mob/living/damage_procs.dm +++ b/modular_citadel/code/modules/mob/living/damage_procs.dm @@ -1,5 +1,2 @@ /mob/living/proc/adjustStaminaLossBuffered(amount, updating_health = TRUE, forced = FALSE) return - -/mob/living/proc/doSprintLossTiles(amount) - return diff --git a/modular_citadel/code/modules/mob/living/living.dm b/modular_citadel/code/modules/mob/living/living.dm index c0e045365f..3baab2ad86 100644 --- a/modular_citadel/code/modules/mob/living/living.dm +++ b/modular_citadel/code/modules/mob/living/living.dm @@ -1,32 +1,4 @@ /mob/living - var/sprinting = FALSE - var/recoveringstam = FALSE - var/incomingstammult = 1 - var/bufferedstam = 0 - var/stambuffer = 20 - var/stambufferregentime - var/attemptingstandup = FALSE - var/intentionalresting = FALSE - var/attemptingcrawl = FALSE - - //Sprint buffer--- - var/sprint_buffer = 42 //Tiles - var/sprint_buffer_max = 42 - var/sprint_buffer_regen_ds = 0.3 //Tiles per world.time decisecond - var/sprint_buffer_regen_last = 0 //last world.time this was regen'd for math. - var/sprint_stamina_cost = 0.70 //stamina loss per tile while insufficient sprint buffer. - //---End - -/mob/living/update_config_movespeed() - . = ..() - sprint_buffer_max = CONFIG_GET(number/movedelay/sprint_buffer_max) - sprint_buffer_regen_ds = CONFIG_GET(number/movedelay/sprint_buffer_regen_per_ds) - sprint_stamina_cost = CONFIG_GET(number/movedelay/sprint_stamina_cost) - -/mob/living/movement_delay(ignorewalk = 0) - . = ..() - if(!CHECK_MOBILITY(src, MOBILITY_STAND)) - . += 6 /atom var/pseudo_z_axis @@ -55,22 +27,23 @@ /mob/living/carbon/update_stamina() var/total_health = getStaminaLoss() + if(total_health >= STAMINA_SOFTCRIT) + if(!(combat_flags & COMBAT_FLAG_SOFT_STAMCRIT)) + ENABLE_BITFIELD(combat_flags, COMBAT_FLAG_SOFT_STAMCRIT) + else + if(combat_flags & COMBAT_FLAG_SOFT_STAMCRIT) + DISABLE_BITFIELD(combat_flags, COMBAT_FLAG_SOFT_STAMCRIT) if(total_health) - if(!recoveringstam && total_health >= STAMINA_CRIT && !stat) + if(!(combat_flags & COMBAT_FLAG_HARD_STAMCRIT) && total_health >= STAMINA_CRIT && !stat) to_chat(src, "You're too exhausted to keep going...") set_resting(TRUE, FALSE, FALSE) - if(combatmode) - toggle_combat_mode(TRUE) - recoveringstam = TRUE + disable_intentional_combat_mode(TRUE, FALSE) + ENABLE_BITFIELD(combat_flags, COMBAT_FLAG_HARD_STAMCRIT) filters += CIT_FILTER_STAMINACRIT update_mobility() - if(recoveringstam && total_health <= STAMINA_SOFTCRIT) + if((combat_flags & COMBAT_FLAG_HARD_STAMCRIT) && total_health <= STAMINA_SOFTCRIT) to_chat(src, "You don't feel nearly as exhausted anymore.") - recoveringstam = FALSE + DISABLE_BITFIELD(combat_flags, COMBAT_FLAG_HARD_STAMCRIT | COMBAT_FLAG_SOFT_STAMCRIT) filters -= CIT_FILTER_STAMINACRIT update_mobility() update_health_hud() - -/mob/living/proc/update_hud_sprint_bar() - if(hud_used && hud_used.sprint_buffer) - hud_used.sprint_buffer.update_to_mob(src) diff --git a/modular_citadel/code/modules/mob/living/silicon/robot/robot_movement.dm b/modular_citadel/code/modules/mob/living/silicon/robot/robot_movement.dm deleted file mode 100644 index 526ea497c4..0000000000 --- a/modular_citadel/code/modules/mob/living/silicon/robot/robot_movement.dm +++ /dev/null @@ -1,30 +0,0 @@ -/mob/living/silicon/robot/Move(NewLoc, direct) - . = ..() - if(. && sprinting && !(movement_type & FLYING) && CHECK_MULTIPLE_BITFIELDS(mobility_flags, MOBILITY_STAND | MOBILITY_MOVE)) - if(!(cell?.use(25))) - togglesprint(TRUE) - -/mob/living/silicon/robot/movement_delay() - . = ..() - if(!resting && !sprinting) - . += 1 - . += speed - -/mob/living/silicon/robot/proc/togglesprint(shutdown = FALSE) //Basically a copypaste of the proc from /mob/living/carbon/human - if(!shutdown && (!cell || cell.charge < 25) || !cansprint) - return FALSE - sprinting = shutdown ? FALSE : !sprinting - if(CHECK_MULTIPLE_BITFIELDS(mobility_flags, MOBILITY_STAND|MOBILITY_MOVE)) - if(sprinting) - playsound_local(src, 'sound/misc/sprintactivate.ogg', 50, FALSE, pressure_affected = FALSE) - else - if(shutdown) - playsound_local(src, 'sound/effects/light_flicker.ogg', 50, FALSE, pressure_affected = FALSE) - playsound_local(src, 'sound/misc/sprintdeactivate.ogg', 50, FALSE, pressure_affected = FALSE) - var/obj/screen/sprintbutton/S = locate() in hud_used?.static_inventory - S?.update_icon_state() - return TRUE - -/mob/living/silicon/robot/proc/sprint_hotkey(targetstatus) - if(targetstatus ? !sprinting : sprinting) - togglesprint() diff --git a/modular_citadel/icons/ui/screen_clockwork.dmi b/modular_citadel/icons/ui/screen_clockwork.dmi index 2b70d37f1e812de2df0e59f96c509ca95e517299..3a7ba8338f9ca11999aaf99530e27d8c7a931336 100644 GIT binary patch literal 4327 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 literal 3641 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 GDdvCWQ!{P= diff --git a/modular_citadel/icons/ui/screen_midnight.dmi b/modular_citadel/icons/ui/screen_midnight.dmi index 396fd4a36ef241530322fb1660cdac416739c62d..a730c591ba6beb8414a4e5afcc5f0e12b9a10907 100644 GIT binary patch literal 6702 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 Ltt?e8X&m@}BN_qw literal 5740 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 E2gO1%mH+?% literal 5638 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 literal 5141 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 ZPKrbH7g!<@Pyc)X4Ha$WdL>BM{{R^}^#%X{ diff --git a/modular_citadel/icons/ui/screen_slimecore.dmi b/modular_citadel/icons/ui/screen_slimecore.dmi index 15651808ec1b60f159982dd36fe7756d2cef2f82..f2f0c88782dec152b0a9c0457640bbbb066669ad 100644 GIT binary patch literal 5021 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 RL%aY0002ovPDHLkV1hwYP4xf( diff --git a/tgstation.dme b/tgstation.dme index d3ddb08918..825910b716 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -312,6 +312,7 @@ #include "code\controllers\subsystem\processing\processing.dm" #include "code\controllers\subsystem\processing\projectiles.dm" #include "code\controllers\subsystem\processing\quirks.dm" +#include "code\controllers\subsystem\processing\status_effects.dm" #include "code\controllers\subsystem\processing\weather.dm" #include "code\controllers\subsystem\processing\wet_floors.dm" #include "code\datums\action.dm" @@ -2194,10 +2195,12 @@ #include "code\modules\mob\living\emote.dm" #include "code\modules\mob\living\life.dm" #include "code\modules\mob\living\living.dm" +#include "code\modules\mob\living\living_combat.dm" #include "code\modules\mob\living\living_defense.dm" #include "code\modules\mob\living\living_defines.dm" #include "code\modules\mob\living\living_mobility.dm" #include "code\modules\mob\living\living_movement.dm" +#include "code\modules\mob\living\living_sprint.dm" #include "code\modules\mob\living\login.dm" #include "code\modules\mob\living\logout.dm" #include "code\modules\mob\living\say.dm" @@ -2215,9 +2218,11 @@ #include "code\modules\mob\living\brain\say.dm" #include "code\modules\mob\living\brain\status_procs.dm" #include "code\modules\mob\living\carbon\carbon.dm" +#include "code\modules\mob\living\carbon\carbon_combat.dm" #include "code\modules\mob\living\carbon\carbon_defense.dm" #include "code\modules\mob\living\carbon\carbon_defines.dm" #include "code\modules\mob\living\carbon\carbon_movement.dm" +#include "code\modules\mob\living\carbon\carbon_sprint.dm" #include "code\modules\mob\living\carbon\damage_procs.dm" #include "code\modules\mob\living\carbon\death.dm" #include "code\modules\mob\living\carbon\emote.dm" @@ -2356,6 +2361,7 @@ #include "code\modules\mob\living\silicon\robot\robot_mobility.dm" #include "code\modules\mob\living\silicon\robot\robot_modules.dm" #include "code\modules\mob\living\silicon\robot\robot_movement.dm" +#include "code\modules\mob\living\silicon\robot\robot_sprint.dm" #include "code\modules\mob\living\silicon\robot\say.dm" #include "code\modules\mob\living\silicon\robot\update_icons.dm" #include "code\modules\mob\living\simple_animal\animal_defense.dm" @@ -3267,9 +3273,7 @@ #include "modular_citadel\code\modules\mob\living\carbon\reindex_screams.dm" #include "modular_citadel\code\modules\mob\living\carbon\human\human.dm" #include "modular_citadel\code\modules\mob\living\carbon\human\human_defense.dm" -#include "modular_citadel\code\modules\mob\living\carbon\human\human_movement.dm" #include "modular_citadel\code\modules\mob\living\silicon\robot\dogborg_equipment.dm" -#include "modular_citadel\code\modules\mob\living\silicon\robot\robot_movement.dm" #include "modular_citadel\code\modules\projectiles\gun.dm" #include "modular_citadel\code\modules\projectiles\ammunition\caseless.dm" #include "modular_citadel\code\modules\projectiles\ammunition\ballistic\smg\smg.dm"