From 0882b6c8c0427b60344d61a38e4436e9860f47ed Mon Sep 17 00:00:00 2001 From: MrMelbert <51863163+MrMelbert@users.noreply.github.com> Date: Sun, 11 Aug 2024 22:17:28 -0500 Subject: [PATCH] Reworks grabs (#540) --- code/__DEFINES/living.dm | 4 + code/__DEFINES/mobs.dm | 1 + code/__DEFINES/traits/sources.dm | 3 - code/datums/components/gunpoint.dm | 11 +- code/datums/components/riding/riding.dm | 113 ++-- code/datums/components/riding/riding_mob.dm | 36 +- code/datums/elements/ridable.dm | 5 +- code/datums/skills/fitness.dm | 17 - code/datums/status_effects/debuffs/grabbed.dm | 547 ++++++++++++++++++ code/game/atom/_atom.dm | 3 +- code/game/atom/atom_act.dm | 4 +- code/game/atoms_movable.dm | 22 +- code/game/turfs/closed/walls.dm | 6 +- .../changeling/powers/mutations.dm | 4 +- code/modules/forensics/forensics_helpers.dm | 14 + .../basic/space_fauna/robot_customer.dm | 1 + .../spider/giant_spider/giant_spiders.dm | 1 + .../mob/living/carbon/alien/adult/adult.dm | 24 +- code/modules/mob/living/carbon/carbon.dm | 37 +- .../mob/living/carbon/carbon_defense.dm | 6 +- code/modules/mob/living/carbon/examine.dm | 3 - .../mob/living/carbon/human/_species.dm | 2 - .../mob/living/carbon/human/examine.dm | 4 - code/modules/mob/living/carbon/human/human.dm | 10 +- .../mob/living/carbon/human/human_defense.dm | 5 - .../mob/living/carbon/human/human_defines.dm | 2 + code/modules/mob/living/inhand_holder.dm | 4 +- code/modules/mob/living/living.dm | 187 +++--- code/modules/mob/living/living_defense.dm | 73 +-- .../modules/mob/living/living_update_icons.dm | 3 + .../mob/living/silicon/silicon_defense.dm | 6 +- .../mob/living/simple_animal/slime/slime.dm | 3 +- code/modules/mob/mob.dm | 15 +- code/modules/movespeed/modifiers/mobs.dm | 3 +- icons/effects/effects.dmi | Bin 960355 -> 960718 bytes maplestation.dme | 1 + .../code/modules/mob/living/sprint.dm | 5 +- maplestation_modules/icons/obj/hand.dmi | Bin 0 -> 308 bytes tgstation.dme | 1 + 39 files changed, 863 insertions(+), 323 deletions(-) create mode 100644 code/datums/status_effects/debuffs/grabbed.dm create mode 100644 maplestation_modules/icons/obj/hand.dmi diff --git a/code/__DEFINES/living.dm b/code/__DEFINES/living.dm index fe79f7064cf1..1dbb96fb5fa6 100644 --- a/code/__DEFINES/living.dm +++ b/code/__DEFINES/living.dm @@ -62,6 +62,10 @@ #define TRAIT_NO_PAIN_EFFECTS "no_pain_effects" /// Shock buildup does not increase, only decrease. No effect if already in shock (unlike abates_shock) #define TRAIT_NO_SHOCK_BUILDUP "no_shock_buildup" +/// Don't get slowed down by aggro grabbing (or above) +#define TRAIT_NO_GRAB_SPEED_PENALTY "no_grab_speed_penalty" +/// Doesn't let a mob shift this atom around with move_pulled +#define TRAIT_NO_MOVE_PULL "no_move_pull" /// The trait that determines if someone has the robotic limb reattachment quirk. #define TRAIT_ROBOTIC_LIMBATTACHMENT "trait_robotic_limbattachment" diff --git a/code/__DEFINES/mobs.dm b/code/__DEFINES/mobs.dm index 1e4e1ddd1c52..df2972091008 100644 --- a/code/__DEFINES/mobs.dm +++ b/code/__DEFINES/mobs.dm @@ -493,6 +493,7 @@ #define GRAB_PIXEL_SHIFT_PASSIVE 6 #define GRAB_PIXEL_SHIFT_AGGRESSIVE 12 #define GRAB_PIXEL_SHIFT_NECK 16 +#define GRAB_PIXEL_SHIFT_STRANGLE 12 #define PULL_PRONE_SLOWDOWN 1.5 #define HUMAN_CARRY_SLOWDOWN 0.35 diff --git a/code/__DEFINES/traits/sources.dm b/code/__DEFINES/traits/sources.dm index f9cdbe4326d1..41e93511c7f8 100644 --- a/code/__DEFINES/traits/sources.dm +++ b/code/__DEFINES/traits/sources.dm @@ -60,8 +60,6 @@ #define TURF_TRAIT "turf" /// trait associated to being buckled #define BUCKLED_TRAIT "buckled" -/// trait associated to being held in a chokehold -#define CHOKEHOLD_TRAIT "chokehold" /// trait associated to resting #define RESTING_TRAIT "resting" /// trait associated to a stat value or range of @@ -154,7 +152,6 @@ #define SKILLCHIP_TRAIT "skillchip" #define SKILL_TRAIT "skill" #define BUSY_FLOORBOT_TRAIT "busy-floorbot" -#define PULLED_WHILE_SOFTCRIT_TRAIT "pulled-while-softcrit" #define LOCKED_BORG_TRAIT "locked-borg" /// trait associated to not having locomotion appendages nor the ability to fly or float #define LACKING_LOCOMOTION_APPENDAGES_TRAIT "lacking-locomotion-appengades" diff --git a/code/datums/components/gunpoint.dm b/code/datums/components/gunpoint.dm index 5716ddf589c3..fa28d7dd0eea 100644 --- a/code/datums/components/gunpoint.dm +++ b/code/datums/components/gunpoint.dm @@ -39,17 +39,17 @@ RegisterSignals(targ, list( COMSIG_MOB_ATTACK_HAND, COMSIG_MOB_ITEM_ATTACK, - COMSIG_MOVABLE_MOVED, COMSIG_MOB_FIRED_GUN, COMSIG_MOVABLE_SET_GRAB_STATE, COMSIG_LIVING_START_PULL), PROC_REF(trigger_reaction)) + RegisterSignal(targ, COMSIG_MOVABLE_MOVED, PROC_REF(move_trigger_reaction)) // NON-MODULE CHANGE RegisterSignal(targ, COMSIG_MOVABLE_USING_RADIO, PROC_REF(radio_trigger_reaction)) // NON-MODULE CHANGE RegisterSignal(targ, COMSIG_ATOM_EXAMINE, PROC_REF(examine_target)) RegisterSignal(targ, COMSIG_LIVING_PRE_MOB_BUMP, PROC_REF(block_bumps_target)) RegisterSignals(targ, list(COMSIG_LIVING_DISARM_HIT, COMSIG_LIVING_GET_PULLED), PROC_REF(cancel)) RegisterSignals(weapon, list(COMSIG_ITEM_DROPPED, COMSIG_ITEM_EQUIPPED), PROC_REF(cancel)) - var/distance = min(get_dist(shooter, target), 1) // treat 0 distance as adjacent + var/distance = max(get_dist(shooter, target), 1) // treat 0 distance as adjacent // NON-MODULE CHANGE / melbert todo : min -> max, upstream fix var/distance_description = (distance <= 1 ? "point blank " : "") shooter.visible_message(span_danger("[shooter] aims [weapon] [distance_description]at [target]!"), @@ -160,6 +160,13 @@ INVOKE_ASYNC(src, PROC_REF(async_trigger_reaction)) to_chat(source, span_warning("You fail to reach [radio]!")) return COMPONENT_CANNOT_USE_RADIO + +/datum/component/gunpoint/proc/move_trigger_reaction(datum/source, atom/new_loc) + SIGNAL_HANDLER + if(target.pulledby == parent) + return + INVOKE_ASYNC(src, PROC_REF(async_trigger_reaction)) + // NON-MODULE CHANGE END /datum/component/gunpoint/proc/async_trigger_reaction() diff --git a/code/datums/components/riding/riding.dm b/code/datums/components/riding/riding.dm index 98024e1a00e8..669675ae27e8 100644 --- a/code/datums/components/riding/riding.dm +++ b/code/datums/components/riding/riding.dm @@ -103,10 +103,7 @@ /datum/component/riding/proc/vehicle_mob_buckle(datum/source, mob/living/rider, force = FALSE) SIGNAL_HANDLER - var/atom/movable/movable_parent = parent - handle_vehicle_layer(movable_parent.dir) - handle_vehicle_offsets(movable_parent.dir) - + addtimer(CALLBACK(src, PROC_REF(vehicle_mob_buckle_hack)), 1, TIMER_UNIQUE) if(rider.pulling == source) rider.stop_pulling() RegisterSignal(rider, COMSIG_LIVING_TRY_PULL, PROC_REF(on_rider_try_pull)) @@ -116,6 +113,12 @@ ADD_TRAIT(rider, trait, REF(src)) ADD_TRAIT(rider, TRAIT_NO_FLOATING_ANIM, REF(src)) +// melbert todo : fuck you. +/datum/component/riding/proc/vehicle_mob_buckle_hack() + var/atom/movable/movable_parent = parent + handle_vehicle_layer(movable_parent.dir) + handle_vehicle_offsets(movable_parent.dir) + /// This proc is called when the rider attempts to grab the thing they're riding, preventing them from doing so. /datum/component/riding/proc/on_rider_try_pull(mob/living/rider_pulling, atom/movable/target, force) SIGNAL_HANDLER @@ -127,13 +130,13 @@ /// Some ridable atoms may want to only show on top of the rider in certain directions, like wheelchairs /datum/component/riding/proc/handle_vehicle_layer(dir) var/atom/movable/AM = parent - var/static/list/defaults = list(TEXT_NORTH = OBJ_LAYER, TEXT_SOUTH = ABOVE_MOB_LAYER, TEXT_EAST = ABOVE_MOB_LAYER, TEXT_WEST = ABOVE_MOB_LAYER) - . = defaults["[dir]"] - if(directional_vehicle_layers["[dir]"]) - . = directional_vehicle_layers["[dir]"] - if(isnull(.)) //you can set it to null to not change it. - . = AM.layer - AM.layer = . + var/static/list/defaults = list( + TEXT_NORTH = OBJ_LAYER, + TEXT_SOUTH = ABOVE_MOB_LAYER, + TEXT_EAST = ABOVE_MOB_LAYER, + TEXT_WEST = ABOVE_MOB_LAYER, + ) + AM.layer = directional_vehicle_layers["[dir]"] || defaults["[dir]"] || AM.layer /datum/component/riding/proc/set_vehicle_dir_layer(dir, layer) directional_vehicle_layers["[dir]"] = layer @@ -145,8 +148,7 @@ var/atom/movable/movable_parent = parent if (isnull(dir)) dir = movable_parent.dir - for (var/m in movable_parent.buckled_mobs) - var/mob/buckled_mob = m + for (var/mob/buckled_mob as anything in movable_parent.buckled_mobs) ride_check(buckled_mob) if(QDELETED(src)) return // runtimed with piggy's without this, look into this more @@ -154,10 +156,11 @@ handle_vehicle_layer(dir) /// Turning is like moving -/datum/component/riding/proc/vehicle_turned(datum/source, _old_dir, new_dir) +/datum/component/riding/proc/vehicle_turned(datum/source, old_dir, new_dir) SIGNAL_HANDLER - vehicle_moved(source, null, new_dir) + if(old_dir != new_dir) + vehicle_moved(source, null, new_dir) /** * Check to see if we have all of the necessary bodyparts and not-falling-over statuses we need to stay onboard. @@ -166,51 +169,58 @@ /datum/component/riding/proc/ride_check(mob/living/rider, consequences = TRUE) return TRUE +/datum/component/riding/proc/handle_vehicle_offset_per_mob(dir, passindex, mob/living/rider) + var/list/diroffsets = get_offsets(passindex, rider)["[dir]"] + + if(rider.dir != dir) + rider.setDir(dir) + + var/x_offset = length(diroffsets) >= 1 ? diroffsets[1] + rider.body_position_pixel_x_offset + rider.base_pixel_x : rider.pixel_x + var/y_offset = length(diroffsets) >= 2 ? diroffsets[2] + rider.body_position_pixel_y_offset + rider.base_pixel_y : rider.pixel_y + var/layer = length(diroffsets) >= 3 ? diroffsets[3] : rider.layer + + rider.pixel_x = x_offset + rider.pixel_y = y_offset + rider.layer = layer + /datum/component/riding/proc/handle_vehicle_offsets(dir) - var/atom/movable/AM = parent - var/AM_dir = "[dir]" + var/atom/movable/seat = parent var/passindex = 0 - if(!AM.has_buckled_mobs()) + if(!seat.has_buckled_mobs()) return - for(var/m in AM.buckled_mobs) + for(var/mob/living/buckled_mob as anything in seat.buckled_mobs) passindex++ - var/mob/living/buckled_mob = m - var/list/offsets = get_offsets(passindex) - buckled_mob.setDir(dir) - dir_loop: - for(var/offsetdir in offsets) - if(offsetdir == AM_dir) - var/list/diroffsets = offsets[offsetdir] - buckled_mob.pixel_x = diroffsets[1] - if(diroffsets.len >= 2) - buckled_mob.pixel_y = diroffsets[2] - if(diroffsets.len == 3) - buckled_mob.layer = diroffsets[3] - break dir_loop - var/list/static/default_vehicle_pixel_offsets = list(TEXT_NORTH = list(0, 0), TEXT_SOUTH = list(0, 0), TEXT_EAST = list(0, 0), TEXT_WEST = list(0, 0)) - var/px = default_vehicle_pixel_offsets[AM_dir] - var/py = default_vehicle_pixel_offsets[AM_dir] - if(directional_vehicle_offsets[AM_dir]) - if(isnull(directional_vehicle_offsets[AM_dir])) - px = AM.pixel_x - py = AM.pixel_y - else - px = directional_vehicle_offsets[AM_dir][1] - py = directional_vehicle_offsets[AM_dir][2] - AM.pixel_x = px - AM.pixel_y = py + handle_vehicle_offset_per_mob(dir, passindex, buckled_mob) + + var/px = directional_vehicle_offsets["[dir]"]?[1] || 0 + var/py = directional_vehicle_offsets["[dir]"]?[2] || 0 + + seat.pixel_x = px + seat.base_pixel_x + seat.pixel_y = py + seat.base_pixel_y + if(isliving(seat)) + var/mob/living/living_seat = seat + seat.pixel_x += living_seat.body_position_pixel_x_offset + seat.pixel_y += living_seat.body_position_pixel_y_offset /datum/component/riding/proc/set_vehicle_dir_offsets(dir, x, y) directional_vehicle_offsets["[dir]"] = list(x, y) //Override this to set your vehicle's various pixel offsets -/datum/component/riding/proc/get_offsets(pass_index) // list(dir = x, y, layer) - . = list(TEXT_NORTH = list(0, 0), TEXT_SOUTH = list(0, 0), TEXT_EAST = list(0, 0), TEXT_WEST = list(0, 0)) +/datum/component/riding/proc/get_offsets(pass_index, mob/offsetter) as /list // list(dir = x, y, layer) + RETURN_TYPE(/list) if(riding_offsets["[pass_index]"]) - . = riding_offsets["[pass_index]"] - else if(riding_offsets["[RIDING_OFFSET_ALL]"]) - . = riding_offsets["[RIDING_OFFSET_ALL]"] + return riding_offsets["[pass_index]"] + + if(riding_offsets["[RIDING_OFFSET_ALL]"]) + return riding_offsets["[RIDING_OFFSET_ALL]"] + + return list( + TEXT_NORTH = list(0, 0), + TEXT_SOUTH = list(0, 0), + TEXT_EAST = list(0, 0), + TEXT_WEST = list(0, 0), + ) /datum/component/riding/proc/set_riding_offsets(index, list/offsets) if(!islist(offsets)) @@ -241,8 +251,9 @@ /datum/component/riding/proc/restore_position(mob/living/buckled_mob) if(isnull(buckled_mob)) return - buckled_mob.pixel_x = buckled_mob.base_pixel_x - buckled_mob.pixel_y = buckled_mob.base_pixel_y + buckled_mob.pixel_x = buckled_mob.base_pixel_x + buckled_mob.body_position_pixel_x_offset + buckled_mob.pixel_y = buckled_mob.base_pixel_y + buckled_mob.body_position_pixel_y_offset + buckled_mob.layer = initial(buckled_mob.layer) var/atom/source = parent SET_PLANE_EXPLICIT(buckled_mob, initial(buckled_mob.plane), source) if(buckled_mob.client) diff --git a/code/datums/components/riding/riding_mob.dm b/code/datums/components/riding/riding_mob.dm index 662584d6bfeb..1ad0fb5be42e 100644 --- a/code/datums/components/riding/riding_mob.dm +++ b/code/datums/components/riding/riding_mob.dm @@ -206,15 +206,17 @@ /datum/component/riding/creature/human/Initialize(mob/living/riding_mob, force = FALSE, ride_check_flags = NONE, potion_boost = FALSE) . = ..() var/mob/living/carbon/human/human_parent = parent - human_parent.add_movespeed_modifier(/datum/movespeed_modifier/human_carry) - if(ride_check_flags & RIDER_NEEDS_ARMS) // piggyback human_parent.buckle_lying = 0 // the riding mob is made nondense so they don't bump into any dense atoms the carrier is pulling, // since pulled movables are moved before buckled movables ADD_TRAIT(riding_mob, TRAIT_UNDENSE, VEHICLE_TRAIT) + human_parent.add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/human_carry, TRUE, HUMAN_CARRY_SLOWDOWN) + else if(ride_check_flags & CARRIER_NEEDS_ARM) // fireman human_parent.buckle_lying = 90 + // melbert todo : tweak this value + human_parent.add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/human_carry, TRUE, round(HUMAN_CARRY_SLOWDOWN * 1.33, 0.1)) /datum/component/riding/creature/human/RegisterWithParent() . = ..() @@ -271,22 +273,25 @@ M.layer = MOB_LAYER if(!AM.buckle_lying) // rider is vertical, must be piggybacking - if(dir == SOUTH) - AM.layer = MOB_ABOVE_PIGGYBACK_LAYER - else + if(dir == NORTH) AM.layer = MOB_BELOW_PIGGYBACK_LAYER + else + AM.layer = MOB_ABOVE_PIGGYBACK_LAYER else // laying flat, we must be firemanning the rider if(dir == NORTH) AM.layer = MOB_BELOW_PIGGYBACK_LAYER else AM.layer = MOB_ABOVE_PIGGYBACK_LAYER -/datum/component/riding/creature/human/get_offsets(pass_index) - var/mob/living/carbon/human/H = parent - if(H.buckle_lying) - return list(TEXT_NORTH = list(0, 6), TEXT_SOUTH = list(0, 6), TEXT_EAST = list(0, 6), TEXT_WEST = list(0, 6)) - else - return list(TEXT_NORTH = list(0, 6), TEXT_SOUTH = list(0, 6), TEXT_EAST = list(-6, 4), TEXT_WEST = list( 6, 4)) +/datum/component/riding/creature/human/get_offsets(pass_index, mob/offsetter) + var/mob/living/carbon/human/seat = parent + var/height = offsetter.get_mob_buckling_height(seat) + seat.body_position_pixel_y_offset + seat.base_pixel_y + 6 + return list( + TEXT_NORTH = ( seat.buckle_lying ? list(0, height) : list( 0, round(height * 0.33, 1) ) ), + TEXT_SOUTH = ( seat.buckle_lying ? list(0, height) : list( 0, round(height * 0.33, 1) ) ), + TEXT_EAST = ( seat.buckle_lying ? list(0, height) : list(-6, round(height * 0.33, 1) ) ), + TEXT_WEST = ( seat.buckle_lying ? list(0, height) : list( 6, round(height * 0.33, 1) ) ), + ) /datum/component/riding/creature/human/force_dismount(mob/living/dismounted_rider) var/atom/movable/AM = parent @@ -317,8 +322,13 @@ else robot_parent.layer = MOB_BELOW_PIGGYBACK_LAYER -/datum/component/riding/creature/cyborg/get_offsets(pass_index) // list(dir = x, y, layer) - return list(TEXT_NORTH = list(0, 4), TEXT_SOUTH = list(0, 4), TEXT_EAST = list(-6, 3), TEXT_WEST = list( 6, 3)) +/datum/component/riding/creature/cyborg/get_offsets(pass_index, mob/offsetter) // list(dir = x, y, layer) + return list( + TEXT_NORTH = list(0, 4), + TEXT_SOUTH = list(0, 4), + TEXT_EAST = list(-6, 3), + TEXT_WEST = list(6, 3), + ) /datum/component/riding/creature/cyborg/handle_vehicle_offsets(dir) var/mob/living/silicon/robot/robot_parent = parent diff --git a/code/datums/elements/ridable.dm b/code/datums/elements/ridable.dm index 15b81e73f241..884ed9ae5bae 100644 --- a/code/datums/elements/ridable.dm +++ b/code/datums/elements/ridable.dm @@ -196,4 +196,7 @@ if(HAS_TRAIT(user, TRAIT_PACIFISM)) to_chat(user, span_notice("You gently let go of [rider].")) return - return rider + var/mob/throwing = rider + user.set_pulling(throwing) + user.setGrabState(GRAB_AGGRESSIVE) + return throwing diff --git a/code/datums/skills/fitness.dm b/code/datums/skills/fitness.dm index c306548303e2..64df8faa8d66 100644 --- a/code/datums/skills/fitness.dm +++ b/code/datums/skills/fitness.dm @@ -4,20 +4,3 @@ desc = "Twinkle twinkle little star, hit the gym and lift the bar." /// The skill value modifier effects the max duration that is possible for /datum/status_effect/exercised modifiers = list(SKILL_VALUE_MODIFIER = list(1 MINUTES, 1.5 MINUTES, 2 MINUTES, 2.5 MINUTES, 3 MINUTES, 3.5 MINUTES, 5 MINUTES)) - /// How much bigger your mob becomes per level (these effects don't stack together) - var/static/size_boost = list(0, 1/16, 1/8, 3/16, 2/8, 3/8, 4/8) - // skill_item_path - your mob sprite gets bigger to showoff so we don't get a special item - -/datum/skill/fitness/level_gained(datum/mind/mind, new_level, old_level, silent) - . = ..() - var/old_gym_size = RESIZE_DEFAULT_SIZE + size_boost[old_level] - var/new_gym_size = RESIZE_DEFAULT_SIZE + size_boost[new_level] - - mind.current.update_transform(new_gym_size / old_gym_size) - -/datum/skill/fitness/level_lost(datum/mind/mind, new_level, old_level, silent) - . = ..() - var/old_gym_size = RESIZE_DEFAULT_SIZE + size_boost[old_level] - var/new_gym_size = RESIZE_DEFAULT_SIZE + size_boost[new_level] - - mind.current.update_transform(new_gym_size / old_gym_size) diff --git a/code/datums/status_effects/debuffs/grabbed.dm b/code/datums/status_effects/debuffs/grabbed.dm new file mode 100644 index 000000000000..7b826a085d33 --- /dev/null +++ b/code/datums/status_effects/debuffs/grabbed.dm @@ -0,0 +1,547 @@ +/// Abstract item to represent grabbing someone +/obj/item/grabbing_hand + name = "grab" + icon = 'maplestation_modules/icons/obj/hand.dmi' + icon_state = "grab" + w_class = WEIGHT_CLASS_HUGE + item_flags = ABSTRACT | DROPDEL | NOBLUDGEON | EXAMINE_SKIP + resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF + +/obj/item/grabbing_hand/on_thrown(mob/living/carbon/user, atom/target) + return user.pulling + +/obj/item/grabbing_hand/attack_self(mob/user, modifiers) + return user.start_pulling(user.pulling) + +/// Status effect applied to someone grabbing something +/datum/status_effect/grabbing + id = "grabbing" + tick_interval = -1 + alert_type = null + on_remove_on_mob_delete = TRUE + /// Linked grab status effect + var/datum/status_effect/grabbed/paired_effect + /// Abstract grabbing item to be put in the owner's hands + var/obj/item/grabbing_hand/hand + +/datum/status_effect/grabbing/on_creation(mob/living/new_owner, datum/status_effect/grabbed/grabbed_effect) + paired_effect = grabbed_effect + return ..() + +/datum/status_effect/grabbing/on_apply() + if(!owner.has_limbs) + return TRUE + hand = new() + if(!owner.put_in_hands(hand)) + return FALSE + + RegisterSignal(hand, COMSIG_QDELETING, PROC_REF(hand_gone)) + RegisterSignals(hand, list( + COMSIG_ITEM_INTERACTING_WITH_ATOM_SECONDARY, + COMSIG_ITEM_INTERACTING_WITH_ATOM, + ), PROC_REF(hand_use)) + RegisterSignals(hand, list( + COMSIG_ITEM_AFTERATTACK, + COMSIG_ITEM_AFTERATTACK_SECONDARY, + ), PROC_REF(hand_use_deprecated)) + return TRUE + +/datum/status_effect/grabbing/Destroy() + paired_effect = null + UnregisterSignal(hand, list( + COMSIG_QDELETING, + COMSIG_ITEM_INTERACTING_WITH_ATOM_SECONDARY, + COMSIG_ITEM_INTERACTING_WITH_ATOM, + COMSIG_ITEM_AFTERATTACK, + COMSIG_ITEM_AFTERATTACK_SECONDARY, + )) + if(!QDELING(hand)) + qdel(hand) + hand = null + return ..() + +/datum/status_effect/grabbing/proc/hand_gone(...) + SIGNAL_HANDLER + if(!QDELING(owner)) + owner.stop_pulling() + if(!QDELING(src)) + stack_trace("[type] should be qdelled when the hand is deleted via stop_pulling.") + qdel(src) + +/datum/status_effect/grabbing/proc/hand_use(datum/source, mob/living/user, atom/interacting_with, modifiers) + SIGNAL_HANDLER + user.UnarmedAttack(interacting_with, TRUE, modifiers) + return ITEM_INTERACT_SUCCESS + +/datum/status_effect/grabbing/proc/hand_use_deprecated(datum/source, atom/interacting_with, mob/living/user, prox, modifiers) + SIGNAL_HANDLER + if(prox) + return NONE + user.RangedAttack(interacting_with, modifiers) + return ITEM_INTERACT_SUCCESS + +/datum/status_effect/grabbing/get_examine_text() + if(paired_effect.pin) + switch(owner.grab_state) + if(GRAB_AGGRESSIVE) + return span_notice("[owner.p_Theyre()] pinning [paired_effect.owner]!") + if(GRAB_NECK) + return span_warning("[owner.p_Theyre()] pinning [paired_effect.owner] by the neck!") + if(GRAB_KILL) + return span_boldwarning("[owner.p_Theyre()] pinning [paired_effect.owner] by the neck, strangling [paired_effect.owner.p_them()]!") + + switch(owner.grab_state) + if(GRAB_PASSIVE) + if((owner.zone_selected == BODY_ZONE_L_ARM || owner.zone_selected == BODY_ZONE_R_ARM) && paired_effect.owner.usable_hands > 0) + return span_notice("[owner.p_Theyre()] holding hands with [paired_effect.owner]!") + + return span_notice("[owner.p_Theyre()] holding [paired_effect.owner] passively.") + if(GRAB_AGGRESSIVE) + return span_warning("[owner.p_Theyre()] holding [paired_effect.owner] aggressively!") + if(GRAB_NECK) + return span_warning("[owner.p_Theyre()] holding [paired_effect.owner] by the neck!") + if(GRAB_KILL) + return span_boldwarning("[owner.p_Theyre()] strangling [paired_effect.owner]!") + +/// Status effect applied to someone being grabbed +/datum/status_effect/grabbed + id = "grabbed" + tick_interval = -1 + alert_type = null + on_remove_on_mob_delete = TRUE + + var/datum/status_effect/grabbing/paired_effect + /// Who is grabbing us + var/atom/movable/grabbing_us + /// Whether the grab has been side-graded into a pin + var/pin = FALSE + /// Whether the grabbe is linked to the grabber + var/linked = FALSE + +/datum/status_effect/grabbed/on_creation(mob/living/new_owner, mob/living/grabber) + grabbing_us = grabber + return ..() + +/datum/status_effect/grabbed/on_apply() + if(isnull(grabbing_us)) + stack_trace("Grabbed status effect applied without a grabber!") + return FALSE + + RegisterSignal(grabbing_us, COMSIG_MOVABLE_SET_GRAB_STATE, PROC_REF(update_state)) + RegisterSignal(grabbing_us, COMSIG_QDELETING, PROC_REF(grabber_gone)) + + RegisterSignal(owner, COMSIG_MOB_STATCHANGE, PROC_REF(owner_stat)) + RegisterSignal(owner, COMSIG_LIVING_TRYING_TO_PULL, PROC_REF(try_upgrade)) + RegisterSignal(owner, COMSIG_ATOM_ATTACK_HAND_SECONDARY, PROC_REF(try_pin)) + RegisterSignal(owner, COMSIG_ATOM_NO_LONGER_PULLED, PROC_REF(ungrabbed)) + // melbert todo : put breath signal here + + if(owner.stat >= SOFT_CRIT) + ADD_TRAIT(owner, TRAIT_IMMOBILIZED, "[id]_softcrit") + if(isliving(grabbing_us)) + var/mob/living/mob_grabber = grabbing_us + paired_effect = mob_grabber.apply_status_effect(/datum/status_effect/grabbing, src) + if(QDELETED(paired_effect)) + return FALSE + + return TRUE + +/datum/status_effect/grabbed/on_remove() + QDEL_NULL(paired_effect) + if(grabbing_us) + UnregisterSignal(grabbing_us, list( + COMSIG_MOVABLE_PRE_MOVE, + COMSIG_MOVABLE_SET_GRAB_STATE, + COMSIG_QDELETING, + )) + // grabbing_us.setGrabState(GRAB_PASSIVE) + grabbing_us = null + + UnregisterSignal(owner, list( + COMSIG_MOB_STATCHANGE, + COMSIG_ATOM_ATTACK_HAND_SECONDARY, + COMSIG_LIVING_TRYING_TO_PULL, + COMSIG_ATOM_NO_LONGER_PULLED, + )) + unlink_mobs() + unpin() + // grab stuff + REMOVE_TRAIT(owner, TRAIT_IMMOBILIZED, "[id]_grab") + REMOVE_TRAIT(owner, TRAIT_HANDS_BLOCKED, "[id]_grab") + // softcrit stuff + REMOVE_TRAIT(owner, TRAIT_IMMOBILIZED, "[id]_softcrit") + +/datum/status_effect/grabbed/get_examine_text() + if(pin) + switch(grabbing_us.grab_state) + if(GRAB_AGGRESSIVE) + return span_notice("[owner.p_Theyre()] being pinned by [grabbing_us]!") + if(GRAB_NECK) + return span_warning("[owner.p_Theyre()] being pinned by the neck by [grabbing_us]!") + if(GRAB_KILL) + return span_boldwarning("[owner.p_Theyre()] being pinned and being strangled by [grabbing_us]!") + + switch(grabbing_us.grab_state) + if(GRAB_PASSIVE) + if(isliving(grabbing_us)) + var/mob/living/mob_grabber = grabbing_us + if((mob_grabber.zone_selected == BODY_ZONE_L_ARM || mob_grabber.zone_selected == BODY_ZONE_R_ARM) && owner.usable_hands > 0) + return span_notice("[owner.p_Theyre()] holding hands with [grabbing_us]!") + + return span_notice("[owner.p_Theyre()] being held passively by [grabbing_us].") + if(GRAB_AGGRESSIVE) + return span_warning("[owner.p_Theyre()] being held aggressively by [grabbing_us]!") + if(GRAB_NECK) + return span_warning("[owner.p_Theyre()] being held by the neck by [grabbing_us]!") + if(GRAB_KILL) + return span_boldwarning("[owner.p_Theyre()] being strangled by [grabbing_us]!") + +/datum/status_effect/grabbed/proc/owner_stat(datum/source, new_stat, old_stat) + SIGNAL_HANDLER + + if(new_stat >= SOFT_CRIT) + ADD_TRAIT(owner, TRAIT_IMMOBILIZED, "[id]_softcrit") + else if(old_stat < SOFT_CRIT) + REMOVE_TRAIT(owner, TRAIT_IMMOBILIZED, "[id]_softcrit") + +/datum/status_effect/grabbed/proc/try_upgrade(datum/source, mob/living/user, force) + SIGNAL_HANDLER + if(user != grabbing_us) + return NONE + + INVOKE_ASYNC(src, PROC_REF(upgrade_attempt)) + return COMSIG_LIVING_CANCEL_PULL + +/datum/status_effect/grabbed/proc/upgrade_attempt() + var/mob/living/mob_grabber = grabbing_us + if(istype(mob_grabber) && DOING_INTERACTION_WITH_TARGET(mob_grabber, owner)) + return + if(!(owner.status_flags & CANPUSH) || HAS_TRAIT(owner, TRAIT_PUSHIMMUNE)) + to_chat(grabbing_us, span_warning("[owner] can't be grabbed more aggressively!")) + return + if(grabbing_us.grab_state >= GRAB_AGGRESSIVE && HAS_TRAIT(grabbing_us, TRAIT_PACIFISM)) + to_chat(grabbing_us, span_warning("You don't want to risk hurting [owner]!")) + return + if(grabbing_us.grab_state >= grabbing_us.max_grab) + to_chat(grabbing_us, span_warning("You can't grab [owner] any more aggressively!")) + return + + playsound(owner, 'sound/weapons/thudswoosh.ogg', 50, TRUE, -1) + grabbing_us.do_attack_animation(owner, "grab") + if(istype(mob_grabber)) + mob_grabber.face_atom(owner) + mob_grabber.changeNext_move(CLICK_CD_GRABBING) + owner.add_fingerprint(grabbing_us) + if(grabbing_us.grab_state >= GRAB_AGGRESSIVE) + owner.visible_message( + span_danger("[grabbing_us] starts to tighten [grabbing_us.p_their()] grip on [owner]!"), + span_userdanger("[grabbing_us] starts to tighten [grabbing_us.p_their()] grip on you!"), + span_hear("You hear aggressive shuffling!"), + null, + grabbing_us, + ) + to_chat(grabbing_us, span_danger("You start to tighten your grip on [owner]!")) + if(owner.is_blind()) + to_chat(owner, span_userdanger("Someone starts to tighten their grip on you!")) + switch(grabbing_us.grab_state) + if(GRAB_AGGRESSIVE) + log_combat(grabbing_us, owner, "attempted to neck grab", addition = "neck grab") + if(GRAB_NECK) + log_combat(grabbing_us, owner, "attempted to strangle", addition = "kill grab") + if(!do_after(grabbing_us, get_grab_time(8 SECONDS), owner, extra_checks = CALLBACK(src, PROC_REF(upgrade_check), grabbing_us.grab_state),)) + return + + grabbing_us.setGrabState(grabbing_us.grab_state + 1) + switch(grabbing_us.grab_state) + if(GRAB_AGGRESSIVE) + var/add_log = "" + if(HAS_TRAIT(grabbing_us, TRAIT_PACIFISM)) + owner.visible_message( + span_danger("[grabbing_us] firmly grips [owner]!"), + span_danger("[grabbing_us] firmly grips you!"), + span_hear("You hear aggressive shuffling!"), + null, + grabbing_us, + ) + to_chat(grabbing_us, span_danger("You firmly grip [owner]!")) + if(owner.is_blind()) + to_chat(owner, span_danger("Someone firmly grips you!")) + add_log = " (pacifist)" + else + owner.visible_message( + span_danger("[grabbing_us] grabs [owner] aggressively!"), + span_userdanger("[grabbing_us] grabs you aggressively!"), + span_hear("You hear aggressive shuffling!"), + null, + grabbing_us, + ) + to_chat(grabbing_us, span_danger("You grab [owner] aggressively!")) + if(owner.is_blind()) + to_chat(owner, span_userdanger("Someone grabs you aggressively!")) + owner.stop_pulling() + log_combat(grabbing_us, owner, "grabbed", addition = "aggressive grab[add_log]") + if(GRAB_NECK) + log_combat(grabbing_us, owner, "grabbed", addition = "neck grab") + owner.visible_message( + span_danger("[grabbing_us] grabs [owner] by the neck!"), + span_userdanger("[grabbing_us] grabs you by the neck!"), + span_hear("You hear aggressive shuffling!"), + null, + grabbing_us, + ) + to_chat(grabbing_us, span_danger("You grab [owner] by the neck!")) + if(owner.is_blind()) + to_chat(owner, span_userdanger("Someone grabs you by the neck!")) + if(GRAB_KILL) + log_combat(grabbing_us, owner, "strangled", addition = "kill grab") + owner.visible_message( + span_danger("[grabbing_us] is strangling [owner]!"), + span_userdanger("[grabbing_us] is strangling you!"), + span_hear("You hear aggressive shuffling!"), + null, + grabbing_us, + ) + to_chat(grabbing_us, span_danger("You're strangling [owner]!")) + if(owner.is_blind()) + to_chat(owner, span_userdanger("Someone is strangling you!")) + + if(grabbing_us.grab_state >= GRAB_NECK && !owner.buckled && !pin) + link_mobs() + if(QDELETED(src)) + stack_trace("Grab self-terminated at some time during the upgrade process.") + return + if(istype(mob_grabber)) + owner.setDir(mob_grabber.dir) + mob_grabber.set_pull_offsets(owner, grabbing_us.grab_state) + +/datum/status_effect/grabbed/proc/upgrade_check(initial_state) + return !QDELETED(src) && !QDELETED(grabbing_us) && grabbing_us.grab_state == initial_state + +/datum/status_effect/grabbed/proc/try_pin(datum/source, mob/living/user, modifiers) + SIGNAL_HANDLER + if(user != grabbing_us) + return NONE + + INVOKE_ASYNC(src, PROC_REF(pin_attempt)) + return COMPONENT_CANCEL_ATTACK_CHAIN + +/datum/status_effect/grabbed/proc/pin_attempt() + if(pin) + manual_unpin() + return + if(grabbing_us.grab_state < GRAB_AGGRESSIVE) + return + var/mob/living/mob_grabber = grabbing_us + if(istype(mob_grabber) && DOING_INTERACTION_WITH_TARGET(mob_grabber, owner)) + return + if(!grabbing_us.has_gravity()) + to_chat(grabbing_us, span_warning("You can't pin someone if you're not standing on the ground!")) + return + if(!owner.has_gravity()) + to_chat(grabbing_us, span_warning("You can't pin someone who's not standing on the ground!")) + return + if(owner.buckled) + to_chat(grabbing_us, span_warning("You can't pin someone who's buckled to something!")) + return + + playsound(owner, 'sound/weapons/thudswoosh.ogg', 50, TRUE, -1) + grabbing_us.do_attack_animation(owner, "grab") + if(istype(mob_grabber)) + mob_grabber.face_atom(owner) + mob_grabber.changeNext_move(CLICK_CD_GRABBING) + // owner.add_fingerprint(grabbing_us) + owner.visible_message( + span_danger("[grabbing_us] starts to pin [owner] to the ground!"), + span_userdanger("[grabbing_us] starts to pin you to the ground!"), + span_hear("You hear aggressive shuffling!"), + null, + grabbing_us, + ) + to_chat(grabbing_us, span_danger("You start to pin [owner] to the ground!")) + if(owner.is_blind()) + to_chat(owner, span_userdanger("Someone is trying to pin you to the ground!")) + + if(!do_after(grabbing_us, get_grab_time(6 SECONDS), owner, extra_checks = CALLBACK(src, PROC_REF(pin_check)),)) + return + if(owner.buckled || HAS_TRAIT_NOT_FROM(owner, TRAIT_FORCED_STANDING, "[id]_link")) + to_chat(grabbing_us, span_warning("You fail to pin [owner] to the ground!")) + return + + owner.visible_message( + span_danger("[grabbing_us] pins [owner] to the ground!"), + span_userdanger("[grabbing_us] pins you to the ground!"), + span_hear("You hear a loud thud!"), + null, + grabbing_us, + ) + to_chat(grabbing_us, span_danger("You pin [owner] to the ground!")) + if(owner.is_blind()) + to_chat(owner, span_userdanger("You are pinned to the ground!")) + + log_combat(grabbing_us, owner, "pinned") + pin = TRUE + unlink_mobs() + ADD_TRAIT(owner, TRAIT_NO_MOVE_PULL, "[id]_pin") + ADD_TRAIT(owner, TRAIT_FLOORED, "[id]_pin") + owner.Paralyze(2 SECONDS) + owner.setDir(SOUTH) + grabbing_us.Move(owner.loc) + grabbing_us.setDir(UNLINT(owner.lying_angle) == 270 ? WEST : EAST) // melbert todo + RegisterSignal(grabbing_us, COMSIG_MOVABLE_PRE_MOVE, PROC_REF(start_dragging)) + +/datum/status_effect/grabbed/proc/pin_check() + return !QDELETED(src) && !QDELETED(grabbing_us) && !pin && grabbing_us.grab_state >= GRAB_AGGRESSIVE + +/datum/status_effect/grabbed/proc/start_dragging(datum/source, atom/new_loc) + SIGNAL_HANDLER + if(!isturf(new_loc) || new_loc == owner.loc) + return + owner.visible_message( + span_danger("[grabbing_us] starts dragging [owner]!"), + span_danger("[grabbing_us] starts dragging you!"), + span_hear("You hear the sound of dragging!"), + null, + grabbing_us, + ) + to_chat(grabbing_us, span_danger("You start dragging [owner] along!")) + UnregisterSignal(grabbing_us, COMSIG_MOVABLE_PRE_MOVE) + owner.set_resting(TRUE) + owner.Knockdown(5 SECONDS) + unpin() + +/datum/status_effect/grabbed/proc/manual_unpin() + owner.visible_message( + span_danger("[grabbing_us] releases [owner] from the pin!"), + span_danger("[grabbing_us] releases you from the pin!"), + null, + null, + grabbing_us, + ) + to_chat(grabbing_us, span_danger("You release [owner] from the pin!")) + if(owner.is_blind()) + to_chat(owner, span_danger("Someone releases you from a pin!")) + unpin() + grabbing_us.setGrabState(GRAB_AGGRESSIVE) + owner.Paralyze(0.75 SECONDS) + // grabbing_us.stop_pulling() + +/datum/status_effect/grabbed/proc/unpin() + if(!pin) + return + + pin = FALSE + REMOVE_TRAIT(owner, TRAIT_FLOORED, "[id]_pin") + REMOVE_TRAIT(owner, TRAIT_NO_MOVE_PULL, "[id]_pin") + UnregisterSignal(grabbing_us, COMSIG_MOVABLE_PRE_MOVE) + +/datum/status_effect/grabbed/proc/update_state(datum/source, new_state) + SIGNAL_HANDLER + if(new_state >= GRAB_AGGRESSIVE) + ADD_TRAIT(owner, TRAIT_IMMOBILIZED, "[id]_grab") + ADD_TRAIT(owner, TRAIT_HANDS_BLOCKED, "[id]_grab") + if(linked && new_state <= GRAB_AGGRESSIVE) + unlink_mobs() + +/datum/status_effect/grabbed/proc/ungrabbed(datum/source, mob/living/gone) + SIGNAL_HANDLER + qdel(src) + +/datum/status_effect/grabbed/proc/grabber_gone(...) + SIGNAL_HANDLER + qdel(src) + +/datum/status_effect/grabbed/proc/link_mobs() + if(linked) + return + + linked = TRUE + ADD_TRAIT(owner, TRAIT_UNDENSE, "[id]_link") + ADD_TRAIT(owner, TRAIT_FORCED_STANDING, "[id]_link") + ADD_TRAIT(owner, TRAIT_NO_MOVE_PULL, "[id]_link") + owner.setDir(grabbing_us.dir) + owner.Move(grabbing_us.loc) + RegisterSignal(grabbing_us, COMSIG_MOVABLE_MOVED, PROC_REF(bring_along)) + RegisterSignal(grabbing_us, COMSIG_ATOM_PRE_BULLET_ACT, PROC_REF(bullet_shield)) + RegisterSignal(grabbing_us, COMSIG_ATOM_POST_DIR_CHANGE, PROC_REF(dir_changed)) + +/datum/status_effect/grabbed/proc/unlink_mobs() + if(!linked) + return + + linked = FALSE + REMOVE_TRAIT(owner, TRAIT_UNDENSE, "[id]_link") + REMOVE_TRAIT(owner, TRAIT_FORCED_STANDING, "[id]_link") + REMOVE_TRAIT(owner, TRAIT_NO_MOVE_PULL, "[id]_link") + if(!QDELING(owner) && !QDELING(grabbing_us)) + owner.Move(get_step(grabbing_us.loc, grabbing_us.dir)) + UnregisterSignal(grabbing_us, list( + COMSIG_MOVABLE_MOVED, + COMSIG_ATOM_PRE_BULLET_ACT, + COMSIG_ATOM_POST_DIR_CHANGE, + )) + +/datum/status_effect/grabbed/proc/bring_along(datum/source, atom/old_loc, movement_dir) + SIGNAL_HANDLER + + if(grabbing_us.loc != old_loc && isturf(grabbing_us.loc)) + owner.Move(grabbing_us.loc, movement_dir, grabbing_us.glide_size) + +/datum/status_effect/grabbed/proc/dir_changed(datum/source, old_dir, new_dir) + SIGNAL_HANDLER + + if(old_dir != new_dir) + owner.setDir(new_dir) + +/datum/status_effect/grabbed/proc/bullet_shield(datum/source, obj/projectile/hitting_projectile, def_zone, piercing_hit) + SIGNAL_HANDLER + if(piercing_hit) + return NONE + var/forwards_dir = REVERSE_DIR(grabbing_us.dir) + if(!(hitting_projectile.dir & forwards_dir)) + return NONE + if(prob(33 * (owner.mob_size + 1))) + return NONE + + owner.bullet_act(hitting_projectile, def_zone, piercing_hit) + return COMPONENT_BULLET_BLOCKED + +/datum/status_effect/grabbed/proc/get_grab_time(base_time = 5 SECONDS) + var/vulnerability_delta = 0 + if(isliving(grabbing_us)) + var/mob/living/grabber = grabbing_us + // Compare grab strength vs resist strength + vulnerability_delta = owner.get_grab_resist_strength() - grabber.get_grab_strength() + else + // Just assume 5 (roughly the same as a human with gloves) + vulnerability_delta = owner.get_grab_resist_strength() - 5 + + return clamp(base_time + (vulnerability_delta * 1 SECONDS), 2 SECONDS, 20 SECONDS) + +/// Checks how strong our grabs are. +/mob/living/proc/get_grab_strength() + . += get_grab_resist_strength() + if(HAS_TRAIT(src, TRAIT_QUICKER_CARRY)) + . += 1 + else if(HAS_TRAIT(src, TRAIT_QUICK_CARRY)) + . += 0.5 + +/// Checks how strong we are at resisting being grabbed. +/mob/living/proc/get_grab_resist_strength() + . += mob_size * 2 + . += clamp(0.5 * ((mind?.get_skill_level(/datum/skill/fitness) || 1) - 1), 0, 3) + if(ismonkey(src)) + . -= 1 + if(stat == DEAD) + . -= 4 + else if(incapacitated(IGNORE_GRAB|IGNORE_STASIS) \ + || body_position == LYING_DOWN \ + || (has_status_effect(/datum/status_effect/staggered) && getStaminaLoss() >= 30) \ + ) + . -= 2 + if(HAS_TRAIT(src, TRAIT_GRABWEAKNESS)) + . -= 2 + // these two are not + if(HAS_TRAIT(src, TRAIT_DWARF)) + . -= 2 + if(HAS_TRAIT(src, TRAIT_HULK)) + . += 2 diff --git a/code/game/atom/_atom.dm b/code/game/atom/_atom.dm index 88792f64114b..c3dc7adfe33d 100644 --- a/code/game/atom/_atom.dm +++ b/code/game/atom/_atom.dm @@ -545,8 +545,9 @@ newdir = dir return SEND_SIGNAL(src, COMSIG_ATOM_DIR_CHANGE, dir, newdir) + var/old_dir = dir dir = newdir - SEND_SIGNAL(src, COMSIG_ATOM_POST_DIR_CHANGE, dir, newdir) + SEND_SIGNAL(src, COMSIG_ATOM_POST_DIR_CHANGE, old_dir, dir) if(smoothing_flags & SMOOTH_BORDER_OBJECT) QUEUE_SMOOTH_NEIGHBORS(src) diff --git a/code/game/atom/atom_act.dm b/code/game/atom/atom_act.dm index 4c4ec04d6676..683ddb9313d1 100644 --- a/code/game/atom/atom_act.dm +++ b/code/game/atom/atom_act.dm @@ -85,7 +85,7 @@ /atom/proc/bullet_act(obj/projectile/hitting_projectile, def_zone, piercing_hit = FALSE) SHOULD_CALL_PARENT(TRUE) - var/sigreturn = SEND_SIGNAL(src, COMSIG_ATOM_PRE_BULLET_ACT, hitting_projectile, def_zone) + var/sigreturn = SEND_SIGNAL(src, COMSIG_ATOM_PRE_BULLET_ACT, hitting_projectile, def_zone, piercing_hit) if(sigreturn & COMPONENT_BULLET_PIERCED) return BULLET_ACT_FORCE_PIERCE if(sigreturn & COMPONENT_BULLET_BLOCKED) @@ -93,7 +93,7 @@ if(sigreturn & COMPONENT_BULLET_ACTED) return BULLET_ACT_HIT - SEND_SIGNAL(src, COMSIG_ATOM_BULLET_ACT, hitting_projectile, def_zone) + SEND_SIGNAL(src, COMSIG_ATOM_BULLET_ACT, hitting_projectile, def_zone, piercing_hit) if(QDELETED(hitting_projectile)) // Signal deleted it? return BULLET_ACT_BLOCK diff --git a/code/game/atoms_movable.dm b/code/game/atoms_movable.dm index 47c0ecdfa544..965847d5bd86 100644 --- a/code/game/atoms_movable.dm +++ b/code/game/atoms_movable.dm @@ -507,7 +507,7 @@ if(pulled_atom.pulledby) log_combat(pulled_atom, pulled_atom.pulledby, "pulled from", src) pulled_atom.pulledby.stop_pulling() //an object can't be pulled by two mobs at once. - pulling = pulled_atom + set_pulling(pulled_atom) pulled_atom.set_pulledby(src) SEND_SIGNAL(src, COMSIG_ATOM_START_PULL, pulled_atom, state, force) setGrabState(state) @@ -536,6 +536,11 @@ . = pulledby pulledby = new_pulledby +/atom/movable/proc/set_pulling(new_pulling) + if(new_pulling == pulling) + return FALSE + . = pulling + pulling = new_pulling /atom/movable/proc/Move_Pulled(atom/moving_atom) if(!pulling) @@ -543,6 +548,8 @@ if(pulling.anchored || pulling.move_resist > move_force || !pulling.Adjacent(src, src, pulling)) stop_pulling() return FALSE + if(HAS_TRAIT(pulling, TRAIT_NO_MOVE_PULL)) + return FALSE if(isliving(pulling)) var/mob/living/pulling_mob = pulling if(pulling_mob.buckled && pulling_mob.buckled.buckle_prevents_pull) //if they're buckled to something that disallows pulling, prevent it @@ -1585,19 +1592,6 @@ SEND_SIGNAL(src, COMSIG_MOVABLE_SET_GRAB_STATE, newstate) . = grab_state grab_state = newstate - switch(grab_state) // Current state. - if(GRAB_PASSIVE) - pulling.remove_traits(list(TRAIT_IMMOBILIZED, TRAIT_HANDS_BLOCKED), CHOKEHOLD_TRAIT) - if(. >= GRAB_NECK) // Previous state was a a neck-grab or higher. - REMOVE_TRAIT(pulling, TRAIT_FLOORED, CHOKEHOLD_TRAIT) - if(GRAB_AGGRESSIVE) - if(. >= GRAB_NECK) // Grab got downgraded. - REMOVE_TRAIT(pulling, TRAIT_FLOORED, CHOKEHOLD_TRAIT) - else // Grab got upgraded from a passive one. - pulling.add_traits(list(TRAIT_IMMOBILIZED, TRAIT_HANDS_BLOCKED), CHOKEHOLD_TRAIT) - if(GRAB_NECK, GRAB_KILL) - if(. <= GRAB_AGGRESSIVE) - ADD_TRAIT(pulling, TRAIT_FLOORED, CHOKEHOLD_TRAIT) /** * Adds the deadchat_plays component to this atom with simple movement commands. diff --git a/code/game/turfs/closed/walls.dm b/code/game/turfs/closed/walls.dm index df20ee846a79..a3daab1ab66e 100644 --- a/code/game/turfs/closed/walls.dm +++ b/code/game/turfs/closed/walls.dm @@ -53,8 +53,8 @@ // NON-MODULE CHANGE START /mob/living/proc/start_leaning(turf/closed/wall/wall) - var/new_y = base_pixel_y + pixel_y - var/new_x = base_pixel_x + pixel_x + var/new_y = base_pixel_y + pixel_y + body_position_pixel_y_offset + var/new_x = base_pixel_x + pixel_x + body_position_pixel_x_offset switch(dir) if(SOUTH) new_y += LEANING_OFFSET @@ -97,7 +97,7 @@ COMSIG_ATOM_POST_DIR_CHANGE, COMSIG_LIVING_RESIST, )) - animate(src, 0.2 SECONDS, pixel_x = base_pixel_x, pixel_y = base_pixel_y) + animate(src, 0.2 SECONDS, pixel_x = base_pixel_x + body_position_pixel_x_offset, pixel_y = base_pixel_y + body_position_pixel_y_offset) remove_traits(list(TRAIT_UNDENSE, TRAIT_EXPANDED_FOV, TRAIT_NO_LEG_AID), LEANING_TRAIT) update_fov() update_limbless_locomotion() diff --git a/code/modules/antagonists/changeling/powers/mutations.dm b/code/modules/antagonists/changeling/powers/mutations.dm index 70223cc42d60..f495c22336fe 100644 --- a/code/modules/antagonists/changeling/powers/mutations.dm +++ b/code/modules/antagonists/changeling/powers/mutations.dm @@ -362,8 +362,8 @@ H.swap_hand() if(H.get_active_held_item()) return - C.grabbedby(H) - C.grippedby(H, instant = TRUE) //instant aggro grab + H.start_pulling(C, supress_message = TRUE) + H.setGrabState(GRAB_AGGRESSIVE) for(var/obj/item/I in H.held_items) if(I.get_sharpness()) C.visible_message(span_danger("[H] impales [C] with [H.p_their()] [I.name]!"), span_userdanger("[H] impales you with [H.p_their()] [I.name]!")) diff --git a/code/modules/forensics/forensics_helpers.dm b/code/modules/forensics/forensics_helpers.dm index 08f8a753d311..022219e6df19 100644 --- a/code/modules/forensics/forensics_helpers.dm +++ b/code/modules/forensics/forensics_helpers.dm @@ -203,6 +203,20 @@ update_clothing(slots_to_bloody) return TRUE +/mob/living/carbon/human/proc/add_fingerprints_to_items(mob/living/from_mob, target_flags = ITEM_SLOT_ICLOTHING|ITEM_SLOT_OCLOTHING) + if(QDELING(src)) + return FALSE + + var/slots_to_fingerprint = target_flags & ~check_obscured_slots() + for(var/obj/item/thing as anything in get_equipped_items()) + if(thing.slot_flags & slots_to_fingerprint) + . ||= thing.add_fingerprint(from_mob) + + if(!.) + . = add_fingerprint(from_mob) + + return . + /mob/living/add_blood_DNA(list/blood_DNA_to_add) if(QDELING(src)) return FALSE diff --git a/code/modules/mob/living/basic/space_fauna/robot_customer.dm b/code/modules/mob/living/basic/space_fauna/robot_customer.dm index cff4dc6fb7ee..8da83056a08f 100644 --- a/code/modules/mob/living/basic/space_fauna/robot_customer.dm +++ b/code/modules/mob/living/basic/space_fauna/robot_customer.dm @@ -10,6 +10,7 @@ icon_state = "amerifat" icon_living = "amerifat" + max_grab = GRAB_AGGRESSIVE basic_mob_flags = DEL_ON_DEATH mob_biotypes = MOB_ROBOTIC|MOB_HUMANOID sentience_type = SENTIENCE_ARTIFICIAL diff --git a/code/modules/mob/living/basic/space_fauna/spider/giant_spider/giant_spiders.dm b/code/modules/mob/living/basic/space_fauna/spider/giant_spider/giant_spiders.dm index d4264b4a1268..4bd1fe3749c7 100644 --- a/code/modules/mob/living/basic/space_fauna/spider/giant_spider/giant_spiders.dm +++ b/code/modules/mob/living/basic/space_fauna/spider/giant_spider/giant_spiders.dm @@ -20,6 +20,7 @@ gold_core_spawnable = HOSTILE_SPAWN ai_controller = /datum/ai_controller/basic_controller/giant_spider bite_injection_flags = INJECT_CHECK_PENETRATE_THICK + max_grab = GRAB_AGGRESSIVE /// Actions to grant on Initialize var/list/innate_actions = null diff --git a/code/modules/mob/living/carbon/alien/adult/adult.dm b/code/modules/mob/living/carbon/alien/adult/adult.dm index 92f3febef2c6..47320c75a1c3 100644 --- a/code/modules/mob/living/carbon/alien/adult/adult.dm +++ b/code/modules/mob/living/carbon/alien/adult/adult.dm @@ -34,6 +34,8 @@ GLOBAL_LIST_INIT(strippable_alien_humanoid_items, create_strippable_list(list( . = ..() AddElement(/datum/element/footstep, FOOTSTEP_MOB_CLAW, 0.5, -11) AddElement(/datum/element/strippable, GLOB.strippable_alien_humanoid_items) + ADD_TRAIT(src, TRAIT_STRONG_GRABBER, INNATE_TRAIT) + ADD_TRAIT(src, TRAIT_NO_GRAB_SPEED_PENALTY, INNATE_TRAIT) /mob/living/carbon/alien/adult/create_internal_organs() organs += new /obj/item/organ/internal/stomach/alien() @@ -80,28 +82,6 @@ GLOBAL_LIST_INIT(strippable_alien_humanoid_items, create_strippable_list(list( target.grabbedby(src) return TRUE -/mob/living/carbon/alien/adult/setGrabState(newstate) - if(newstate == grab_state) - return - if(newstate > GRAB_AGGRESSIVE) - newstate = GRAB_AGGRESSIVE - SEND_SIGNAL(src, COMSIG_MOVABLE_SET_GRAB_STATE, newstate) - . = grab_state - grab_state = newstate - switch(grab_state) // Current state. - if(GRAB_PASSIVE) - REMOVE_TRAIT(pulling, TRAIT_IMMOBILIZED, CHOKEHOLD_TRAIT) - if(. >= GRAB_NECK) // Previous state was a a neck-grab or higher. - REMOVE_TRAIT(pulling, TRAIT_FLOORED, CHOKEHOLD_TRAIT) - if(GRAB_AGGRESSIVE) - if(. >= GRAB_NECK) // Grab got downgraded. - REMOVE_TRAIT(pulling, TRAIT_FLOORED, CHOKEHOLD_TRAIT) - else // Grab got upgraded from a passive one. - ADD_TRAIT(pulling, TRAIT_IMMOBILIZED, CHOKEHOLD_TRAIT) - if(GRAB_NECK, GRAB_KILL) - if(. <= GRAB_AGGRESSIVE) - ADD_TRAIT(pulling, TRAIT_FLOORED, CHOKEHOLD_TRAIT) - /mob/living/carbon/alien/adult/MouseDrop_T(atom/dropping, atom/user) if(devour_lad(dropping)) return diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm index f1516906b387..623aab91895f 100644 --- a/code/modules/mob/living/carbon/carbon.dm +++ b/code/modules/mob/living/carbon/carbon.dm @@ -137,19 +137,32 @@ verb_text = "yeet" var/neckgrab_throw = FALSE // we can't check for if it's a neckgrab throw when totaling up power_throw since we've already stopped pulling them by then, so get it early var/frequency_number = 1 //We assign a default frequency number for the sound of the throw. - if(!held_item) - if(pulling && isliving(pulling) && grab_state >= GRAB_AGGRESSIVE) - var/mob/living/throwable_mob = pulling - if(!throwable_mob.buckled) - thrown_thing = throwable_mob - if(grab_state >= GRAB_NECK) - neckgrab_throw = TRUE - stop_pulling() - if(HAS_TRAIT(src, TRAIT_PACIFISM)) - to_chat(src, span_notice("You gently let go of [throwable_mob].")) - return FALSE - else + if(held_item) thrown_thing = held_item.on_thrown(src, target) + else if(isliving(pulling)) + thrown_thing = pulling + else if(length(buckled_mobs) == 1 && isliving(buckled_mobs[1]) && buckle_lying != 0) + thrown_thing = buckled_mobs[1] + + if(isliving(thrown_thing)) + var/mob/living/throwable_mob = thrown_thing + if(throwable_mob.buckled == src) + pass() // we're yeeting a fireman carry guy + else + if(grab_state < GRAB_AGGRESSIVE) + return FALSE + if(throwable_mob.buckled) + return FALSE + if(HAS_TRAIT(src, TRAIT_PACIFISM)) + to_chat(src, span_warning("You don't want to risk hurting [throwable_mob]!")) + return FALSE + if(grab_state >= GRAB_NECK) + neckgrab_throw = TRUE + if(throwable_mob.buckled == src) + unbuckle_mob(thrown_thing) + if(throwable_mob == pulling) + stop_pulling() + if(!thrown_thing) return FALSE if(isliving(thrown_thing)) diff --git a/code/modules/mob/living/carbon/carbon_defense.dm b/code/modules/mob/living/carbon/carbon_defense.dm index d60998b0204c..0b2073e0bb65 100644 --- a/code/modules/mob/living/carbon/carbon_defense.dm +++ b/code/modules/mob/living/carbon/carbon_defense.dm @@ -292,19 +292,21 @@ Knockdown(stun_duration) /// When another mob touches us, they may messy us up. -/mob/living/carbon/proc/share_blood_on_touch(mob/living/carbon/human/who_touched_us) +/mob/living/proc/share_blood_on_touch(mob/living/carbon/human/who_touched_us) return /mob/living/carbon/human/share_blood_on_touch(mob/living/carbon/human/who_touched_us, messy_slots = ITEM_SLOT_ICLOTHING|ITEM_SLOT_OCLOTHING) if(!istype(who_touched_us) || !messy_slots) return + who_touched_us.add_fingerprints_to_items(src, messy_slots) // technically this should handle passing blood but i think it's broken + for(var/obj/item/thing as anything in who_touched_us.get_equipped_items()) if((thing.body_parts_covered & HANDS) && prob(GET_ATOM_BLOOD_DNA_LENGTH(thing) * 25)) add_blood_DNA_to_items(GET_ATOM_BLOOD_DNA(who_touched_us.wear_suit), messy_slots) return - if(prob(blood_in_hands * GET_ATOM_BLOOD_DNA_LENGTH(who_touched_us) * 10)) + if(prob(who_touched_us.blood_in_hands * GET_ATOM_BLOOD_DNA_LENGTH(who_touched_us) * 10)) add_blood_DNA_to_items(GET_ATOM_BLOOD_DNA(who_touched_us), messy_slots) who_touched_us.blood_in_hands -= 1 diff --git a/code/modules/mob/living/carbon/examine.dm b/code/modules/mob/living/carbon/examine.dm index c839a0ff2ead..4813967af59e 100644 --- a/code/modules/mob/living/carbon/examine.dm +++ b/code/modules/mob/living/carbon/examine.dm @@ -90,9 +90,6 @@ if(has_status_effect(/datum/status_effect/fire_handler/wet_stacks)) msg += "[t_He] look[p_s()] a little soaked.\n" - if(pulledby?.grab_state) - msg += "[t_He] [t_is] restrained by [pulledby]'s grip.\n" - var/scar_severity = 0 for(var/i in all_scars) var/datum/scar/S = i diff --git a/code/modules/mob/living/carbon/human/_species.dm b/code/modules/mob/living/carbon/human/_species.dm index 7a248283444b..a2d966e7c975 100644 --- a/code/modules/mob/living/carbon/human/_species.dm +++ b/code/modules/mob/living/carbon/human/_species.dm @@ -120,8 +120,6 @@ GLOBAL_LIST_EMPTY(features_by_species) var/inert_mutation = /datum/mutation/human/dwarfism ///Used to set the mob's death_sound upon species change var/death_sound - ///Special sound for grabbing - var/grab_sound /// A path to an outfit that is important for species life e.g. plasmaman outfit var/datum/outfit/outfit_important_for_life diff --git a/code/modules/mob/living/carbon/human/examine.dm b/code/modules/mob/living/carbon/human/examine.dm index 5fc589f278d9..02dee5a4be53 100644 --- a/code/modules/mob/living/carbon/human/examine.dm +++ b/code/modules/mob/living/carbon/human/examine.dm @@ -218,10 +218,6 @@ if(has_status_effect(/datum/status_effect/fire_handler/wet_stacks)) msg += "[t_He] look[p_s()] a little soaked.\n" - - if(pulledby?.grab_state) - msg += "[t_He] [t_is] restrained by [pulledby]'s grip.\n" - if(nutrition < NUTRITION_LEVEL_STARVING - 50) msg += "[t_He] [t_is] severely malnourished.\n" else if(nutrition >= NUTRITION_LEVEL_FAT) diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index d91915f932a3..45d371a80ec3 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -908,16 +908,8 @@ to_chat(src, span_warning("You can't fireman carry [target] while [target.p_they()] [target.p_are()] standing!")) return - var/carrydelay = 5 SECONDS //if you have latex you are faster at grabbing var/skills_space - var/fitness_level = mind.get_skill_level(/datum/skill/fitness) - 1 - if(HAS_TRAIT(src, TRAIT_QUICKER_CARRY)) - carrydelay -= 2 SECONDS - else if(HAS_TRAIT(src, TRAIT_QUICK_CARRY)) - carrydelay -= 1 SECONDS - - // can remove up to 2 seconds at legendary - carrydelay -= fitness_level * (1/3) SECONDS + var/carrydelay = max(1 SECONDS, 8 SECONDS - (get_grab_strength() * 1 SECONDS)) if(carrydelay <= 3 SECONDS) skills_space = " very quickly" diff --git a/code/modules/mob/living/carbon/human/human_defense.dm b/code/modules/mob/living/carbon/human/human_defense.dm index 5dfe6a7a4fa9..4e77007f3dc3 100644 --- a/code/modules/mob/living/carbon/human/human_defense.dm +++ b/code/modules/mob/living/carbon/human/human_defense.dm @@ -109,11 +109,6 @@ return FALSE -/mob/living/carbon/human/grippedby(mob/living/user, instant = FALSE) - if(w_uniform) - w_uniform.add_fingerprint(user) - ..() - /mob/living/carbon/human/attack_hulk(mob/living/carbon/human/user) . = ..() if(!.) diff --git a/code/modules/mob/living/carbon/human/human_defines.dm b/code/modules/mob/living/carbon/human/human_defines.dm index 00b59ffe25fa..e3cce8773aef 100644 --- a/code/modules/mob/living/carbon/human/human_defines.dm +++ b/code/modules/mob/living/carbon/human/human_defines.dm @@ -14,6 +14,8 @@ can_be_shoved_into = TRUE initial_language_holder = /datum/language_holder/empty // We get stuff from our species flags_1 = PREVENT_CONTENTS_EXPLOSION_1 + max_grab = GRAB_KILL + throw_range = 4 //Hair colour and style var/hair_color = "#000000" diff --git a/code/modules/mob/living/inhand_holder.dm b/code/modules/mob/living/inhand_holder.dm index 808c8973963d..96694fd090b6 100644 --- a/code/modules/mob/living/inhand_holder.dm +++ b/code/modules/mob/living/inhand_holder.dm @@ -53,7 +53,9 @@ return var/mob/living/throw_mob = held_mob - release() + release(display_messages = FALSE) + user.set_pulling(throw_mob) + user.setGrabState(GRAB_AGGRESSIVE) return throw_mob /obj/item/clothing/head/mob_holder/dropped() diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index c910ba0f54ea..9f9df5781f72 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -362,44 +362,77 @@ if(AM.pulledby) if(!supress_message) - AM.visible_message(span_danger("[src] pulls [AM] from [AM.pulledby]'s grip."), \ - span_danger("[src] pulls you from [AM.pulledby]'s grip."), null, null, src) + AM.visible_message( + span_danger("[src] pulls [AM] from [AM.pulledby]'s grip."), + span_danger("[src] pulls you from [AM.pulledby]'s grip."), + null, + null, + src, + ) to_chat(src, span_notice("You pull [AM] from [AM.pulledby]'s grip!")) log_combat(AM, AM.pulledby, "pulled from", src) AM.pulledby.stop_pulling() //an object can't be pulled by two mobs at once. - pulling = AM + set_pulling(AM) AM.set_pulledby(src) + face_atom(AM) SEND_SIGNAL(src, COMSIG_LIVING_START_PULL, AM, state, force) if(!supress_message) - var/sound_to_play = 'sound/weapons/thudswoosh.ogg' - if(ishuman(src)) - var/mob/living/carbon/human/H = src - if(H.dna.species.grab_sound) - sound_to_play = H.dna.species.grab_sound - if(HAS_TRAIT(H, TRAIT_STRONG_GRABBER)) - sound_to_play = null - playsound(src.loc, sound_to_play, 50, TRUE, -1) + playsound(src, 'sound/weapons/thudswoosh.ogg', 50, TRUE, -1) update_pull_hud_icon() - if(ismob(AM)) - var/mob/M = AM + if(isliving(AM)) + var/mob/living/M = AM + + log_combat(src, M, "grabbed", addition = HAS_TRAIT(src, TRAIT_STRONG_GRABBER) ? "instant aggro grab" : "passive grab") + if(!supress_message) + if(HAS_TRAIT(src, TRAIT_STRONG_GRABBER)) + M.visible_message( + span_danger("[src] grabs [M] with a strong grip!"), + span_danger("[src] grabs you with a strong grip!"), + null, + null, + src, + ) + to_chat(src, span_notice("You grab [M] with a strong grip!")) + if(M.is_blind()) + to_chat(M, span_warning("Someone grabs you with a strong grip!")) + M.share_blood_on_touch(src, ITEM_SLOT_ICLOTHING|ITEM_SLOT_OCLOTHING) - log_combat(src, M, "grabbed", addition="passive grab") - if(!supress_message && !(iscarbon(AM) && HAS_TRAIT(src, TRAIT_STRONG_GRABBER))) - if(ishuman(M)) + else if(ishuman(M)) var/mob/living/carbon/human/grabbed_human = M - var/grabbed_by_hands = (zone_selected == "l_arm" || zone_selected == "r_arm") && grabbed_human.usable_hands > 0 - M.visible_message(span_warning("[src] grabs [M] [grabbed_by_hands ? "by their hands":"passively"]!"), \ - span_warning("[src] grabs you [grabbed_by_hands ? "by your hands":"passively"]!"), null, null, src) + var/grabbed_by_hands = (zone_selected == BODY_ZONE_L_ARM || zone_selected == BODY_ZONE_R_ARM) && grabbed_human.usable_hands > 0 + M.visible_message( + span_warning("[src] grabs [M] [grabbed_by_hands ? "by their hands":"passively"]!"), + span_warning("[src] grabs you [grabbed_by_hands ? "by your hands":"passively"]!"), + null, + null, + src, + ) to_chat(src, span_notice("You grab [M] [grabbed_by_hands ? "by their hands":"passively"]!")) - grabbed_human.share_blood_on_touch(src, grabbed_by_hands ? ITEM_SLOT_GLOVES : ITEM_SLOT_ICLOTHING|ITEM_SLOT_OCLOTHING) + if(M.is_blind()) + to_chat(M, span_warning("Someone grabs you [grabbed_by_hands ? "by your hands":"passively"]!")) + + if(grabbed_by_hands) + M.share_blood_on_touch(src, ITEM_SLOT_GLOVES) + share_blood_on_touch(M, ITEM_SLOT_GLOVES) + else + M.share_blood_on_touch(src, ITEM_SLOT_ICLOTHING|ITEM_SLOT_OCLOTHING) + else - M.visible_message(span_warning("[src] grabs [M] passively!"), \ - span_warning("[src] grabs you passively!"), null, null, src) + M.visible_message( + span_warning("[src] grabs [M] passively!"), + span_warning("[src] grabs you passively!"), + null, + null, + src, + ) to_chat(src, span_notice("You grab [M] passively!")) + if(M.is_blind()) + to_chat(M, span_warning("Someone grabs you passively!")) + M.share_blood_on_touch(src, ITEM_SLOT_ICLOTHING|ITEM_SLOT_OCLOTHING) if(!iscarbon(src)) M.LAssailant = null @@ -410,20 +443,16 @@ SEND_SIGNAL(M, COMSIG_LIVING_GET_PULLED, src) //Share diseases that are spread by touch - for(var/thing in diseases) - var/datum/disease/D = thing - if(D.spread_flags & DISEASE_SPREAD_CONTACT_SKIN) - L.ContactContractDisease(D) + for(var/datum/disease/thing as anything in diseases) + if(thing.spread_flags & DISEASE_SPREAD_CONTACT_SKIN) + L.ContactContractDisease(thing) - for(var/thing in L.diseases) - var/datum/disease/D = thing - if(D.spread_flags & DISEASE_SPREAD_CONTACT_SKIN) - ContactContractDisease(D) + for(var/datum/disease/thing as anything in L.diseases) + if(thing.spread_flags & DISEASE_SPREAD_CONTACT_SKIN) + ContactContractDisease(thing) - if(iscarbon(L)) - var/mob/living/carbon/C = L - if(HAS_TRAIT(src, TRAIT_STRONG_GRABBER)) - C.grabbedby(src) + if(HAS_TRAIT(src, TRAIT_STRONG_GRABBER)) + setGrabState(GRAB_AGGRESSIVE) update_pull_movespeed() @@ -441,7 +470,7 @@ if(GRAB_NECK) offset = GRAB_PIXEL_SHIFT_NECK if(GRAB_KILL) - offset = GRAB_PIXEL_SHIFT_NECK + offset = M.loc == loc ? GRAB_PIXEL_SHIFT_NECK : GRAB_PIXEL_SHIFT_STRANGLE M.setDir(get_dir(M, src)) var/target_pixel_x = M.base_pixel_x + M.body_position_pixel_x_offset var/target_pixel_y = M.base_pixel_y + M.body_position_pixel_y_offset @@ -462,7 +491,7 @@ /mob/living/proc/reset_pull_offsets(mob/living/M, override) if(!override && M.buckled) return - animate(M, pixel_x = M.base_pixel_x + M.body_position_pixel_x_offset , pixel_y = M.base_pixel_y + M.body_position_pixel_y_offset, 1) + animate(M, pixel_x = M.base_pixel_x + M.body_position_pixel_x_offset , pixel_y = M.base_pixel_y + M.body_position_pixel_y_offset, time = 0.1 SECONDS) //mob verbs are a lot faster than object verbs //for more info on why this is not atom/pull, see examinate() in mob.dm @@ -478,7 +507,7 @@ /mob/living/stop_pulling() if(ismob(pulling)) reset_pull_offsets(pulling) - ..() + . = ..() update_pull_movespeed() update_pull_hud_icon() @@ -1161,32 +1190,57 @@ return 1 //returning 0 means we successfully broke free /mob/living/resist_grab(moving_resist) - . = TRUE - //If we're in an aggressive grab or higher, we're lying down, we're vulnerable to grabs, or we're staggered and we have some amount of stamina loss, we must resist - if(pulledby.grab_state || body_position == LYING_DOWN || HAS_TRAIT(src, TRAIT_GRABWEAKNESS) || get_timed_status_effect_duration(/datum/status_effect/staggered) && getStaminaLoss() >= 30) - var/altered_grab_state = pulledby.grab_state - if((body_position == LYING_DOWN || HAS_TRAIT(src, TRAIT_GRABWEAKNESS) || get_timed_status_effect_duration(/datum/status_effect/staggered)) && pulledby.grab_state < GRAB_KILL) //If prone, resisting out of a grab is equivalent to 1 grab state higher. won't make the grab state exceed the normal max, however - altered_grab_state++ - var/resist_chance = BASE_GRAB_RESIST_CHANCE /// see defines/combat.dm, this should be baseline 60% - resist_chance = (resist_chance/altered_grab_state) ///Resist chance divided by the value imparted by your grab state. It isn't until you reach neckgrab that you gain a penalty to escaping a grab. - if(prob(resist_chance)) - visible_message(span_danger("[src] breaks free of [pulledby]'s grip!"), \ - span_danger("You break free of [pulledby]'s grip!"), null, null, pulledby) - to_chat(pulledby, span_warning("[src] breaks free of your grip!")) - log_combat(pulledby, src, "broke grab") - pulledby.stop_pulling() - return FALSE - else - adjustStaminaLoss(rand(15,20))//failure to escape still imparts a pretty serious penalty - visible_message(span_danger("[src] struggles as they fail to break free of [pulledby]'s grip!"), \ - span_warning("You struggle as you fail to break free of [pulledby]'s grip!"), null, null, pulledby) - to_chat(pulledby, span_danger("[src] struggles as they fail to break free of your grip!")) - if(moving_resist && client) //we resisted by trying to move - client.move_delay = world.time + 4 SECONDS + if(pulledby.grab_state == GRAB_PASSIVE && body_position != LYING_DOWN && !HAS_TRAIT(src, TRAIT_GRABWEAKNESS)) + pulledby.stop_pulling() + return FALSE + + var/vulnerability_delta = 0 + if(isliving(pulledby)) + var/mob/living/grabber = pulledby + // Just compare resist strength vs resist strength + vulnerability_delta = get_grab_resist_strength() - grabber.get_grab_resist_strength() else + // Just assume 4 (roughly the same as a human with no buffs) + vulnerability_delta = get_grab_resist_strength() - 4 + + var/altered_grab_state = pulledby.grab_state + if(vulnerability_delta <= 2) + altered_grab_state = min(altered_grab_state + 1, GRAB_NECK) + + var/resist_chance = BASE_GRAB_RESIST_CHANCE + resist_chance /= altered_grab_state // Resist chance divided by the value imparted by your grab state. + resist_chance += (vulnerability_delta * 5) // More vulnerable = more resist, less vulnerable = less resist + if(prob(resist_chance)) + visible_message( + span_danger("[src] breaks free of [pulledby]'s grip!"), + span_danger("You break free of [pulledby]'s grip!"), + null, + null, + pulledby, + ) + to_chat(pulledby, span_warning("[src] breaks free of your grip!")) + if(is_blind()) + to_chat(src, span_danger("You break free of the grip!")) + log_combat(pulledby, src, "broke grab") pulledby.stop_pulling() return FALSE + adjustStaminaLoss(rand(15, 20))//failure to escape still imparts a pretty serious penalty + visible_message( + span_danger("[src] struggles as they fail to break free of [pulledby]'s grip!"), + span_warning("You struggle as you fail to break free of [pulledby]'s grip!"), + null, + null, + pulledby, + ) + to_chat(pulledby, span_danger("[src] struggles as they fail to break free of your grip!")) + if(is_blind()) + to_chat(src, span_danger("You struggle as you fail to break free of the grip!")) + + if(moving_resist) //we resisted by trying to move + client?.move_delay = world.time + 4 SECONDS + return TRUE + /mob/living/proc/resist_buckle() buckled.user_unbuckle_mob(src,src) @@ -2164,8 +2218,6 @@ GLOBAL_LIST_EMPTY(fire_appearances) if(SOFT_CRIT) if(stat >= UNCONSCIOUS) ADD_TRAIT(src, TRAIT_IMMOBILIZED, TRAIT_KNOCKEDOUT) //adding trait sources should come before removing to avoid unnecessary updates - if(pulledby) - REMOVE_TRAIT(src, TRAIT_IMMOBILIZED, PULLED_WHILE_SOFTCRIT_TRAIT) if(UNCONSCIOUS) if(stat != HARD_CRIT) cure_blind(UNCONSCIOUS_TRAIT) @@ -2181,8 +2233,6 @@ GLOBAL_LIST_EMPTY(fire_appearances) REMOVE_TRAIT(src, TRAIT_IMMOBILIZED, TRAIT_KNOCKEDOUT) remove_traits(list(TRAIT_HANDS_BLOCKED, TRAIT_INCAPACITATED, TRAIT_FLOORED, TRAIT_CRITICAL_CONDITION), STAT_TRAIT) if(SOFT_CRIT) - if(pulledby) - ADD_TRAIT(src, TRAIT_IMMOBILIZED, PULLED_WHILE_SOFTCRIT_TRAIT) //adding trait sources should come before removing to avoid unnecessary updates if(. >= UNCONSCIOUS) REMOVE_TRAIT(src, TRAIT_IMMOBILIZED, TRAIT_KNOCKEDOUT) ADD_TRAIT(src, TRAIT_CRITICAL_CONDITION, STAT_TRAIT) @@ -2235,16 +2285,15 @@ GLOBAL_LIST_EMPTY(fire_appearances) . = ..() if(. == FALSE) //null is a valid value here, we only want to return if FALSE is explicitly passed. return - if(pulledby) - if(!. && stat == SOFT_CRIT) - ADD_TRAIT(src, TRAIT_IMMOBILIZED, PULLED_WHILE_SOFTCRIT_TRAIT) - else if(. && stat == SOFT_CRIT) - REMOVE_TRAIT(src, TRAIT_IMMOBILIZED, PULLED_WHILE_SOFTCRIT_TRAIT) - + if(!pulledby) + return + apply_status_effect(/datum/status_effect/grabbed, pulledby) /// Updates the grab state of the mob and updates movespeed /mob/living/setGrabState(newstate) . = ..() + if(HAS_TRAIT(src, TRAIT_NO_GRAB_SPEED_PENALTY)) + return switch(grab_state) if(GRAB_PASSIVE) remove_movespeed_modifier(MOVESPEED_ID_MOB_GRAB_STATE) diff --git a/code/modules/mob/living/living_defense.dm b/code/modules/mob/living/living_defense.dm index 01c2ed409ff3..5c0f57ff6362 100644 --- a/code/modules/mob/living/living_defense.dm +++ b/code/modules/mob/living/living_defense.dm @@ -216,78 +216,13 @@ ignite_mob() /mob/living/proc/grabbedby(mob/living/carbon/user, supress_message = FALSE) - if(user == src || anchored || !isturf(user.loc)) + if(user == src || anchored || !isturf(user.loc) || (src in user.buckled_mobs)) return FALSE - if(!user.pulling || user.pulling != src) - user.start_pulling(src, supress_message = supress_message) - return - - if(!(status_flags & CANPUSH) || HAS_TRAIT(src, TRAIT_PUSHIMMUNE)) - to_chat(user, span_warning("[src] can't be grabbed more aggressively!")) - return FALSE - - if(user.grab_state >= GRAB_AGGRESSIVE && HAS_TRAIT(user, TRAIT_PACIFISM)) - to_chat(user, span_warning("You don't want to risk hurting [src]!")) + if(user.has_limbs && !user.get_empty_held_indexes() && !user.is_holding_item_of_type(/obj/item/grabbing_hand)) + to_chat(user, span_warning("Your hands are full!")) return FALSE - grippedby(user) -//proc to upgrade a simple pull into a more aggressive grab. -/mob/living/proc/grippedby(mob/living/carbon/user, instant = FALSE) - if(user.grab_state >= user.max_grab) - return - user.changeNext_move(CLICK_CD_GRABBING) - var/sound_to_play = 'sound/weapons/thudswoosh.ogg' - if(ishuman(user)) - var/mob/living/carbon/human/H = user - if(H.dna.species.grab_sound) - sound_to_play = H.dna.species.grab_sound - playsound(src.loc, sound_to_play, 50, TRUE, -1) - - if(user.grab_state) //only the first upgrade is instantaneous - var/old_grab_state = user.grab_state - var/grab_upgrade_time = instant ? 0 : 30 - visible_message(span_danger("[user] starts to tighten [user.p_their()] grip on [src]!"), \ - span_userdanger("[user] starts to tighten [user.p_their()] grip on you!"), span_hear("You hear aggressive shuffling!"), null, user) - to_chat(user, span_danger("You start to tighten your grip on [src]!")) - switch(user.grab_state) - if(GRAB_AGGRESSIVE) - log_combat(user, src, "attempted to neck grab", addition="neck grab") - if(GRAB_NECK) - log_combat(user, src, "attempted to strangle", addition="kill grab") - if(!do_after(user, grab_upgrade_time, src)) - return FALSE - if(!user.pulling || user.pulling != src || user.grab_state != old_grab_state) - return FALSE - user.setGrabState(user.grab_state + 1) - switch(user.grab_state) - if(GRAB_AGGRESSIVE) - var/add_log = "" - if(HAS_TRAIT(user, TRAIT_PACIFISM)) - visible_message(span_danger("[user] firmly grips [src]!"), - span_danger("[user] firmly grips you!"), span_hear("You hear aggressive shuffling!"), null, user) - to_chat(user, span_danger("You firmly grip [src]!")) - add_log = " (pacifist)" - else - visible_message(span_danger("[user] grabs [src] aggressively!"), \ - span_userdanger("[user] grabs you aggressively!"), span_hear("You hear aggressive shuffling!"), null, user) - to_chat(user, span_danger("You grab [src] aggressively!")) - stop_pulling() - log_combat(user, src, "grabbed", addition="aggressive grab[add_log]") - if(GRAB_NECK) - log_combat(user, src, "grabbed", addition="neck grab") - visible_message(span_danger("[user] grabs [src] by the neck!"),\ - span_userdanger("[user] grabs you by the neck!"), span_hear("You hear aggressive shuffling!"), null, user) - to_chat(user, span_danger("You grab [src] by the neck!")) - if(!buckled && !density) - Move(user.loc) - if(GRAB_KILL) - log_combat(user, src, "strangled", addition="kill grab") - visible_message(span_danger("[user] is strangling [src]!"), \ - span_userdanger("[user] is strangling you!"), span_hear("You hear aggressive shuffling!"), null, user) - to_chat(user, span_danger("You're strangling [src]!")) - if(!buckled && !density) - Move(user.loc) - user.set_pull_offsets(src, grab_state) + user.start_pulling(src, supress_message = supress_message) return TRUE /mob/living/attack_animal(mob/living/simple_animal/user, list/modifiers) diff --git a/code/modules/mob/living/living_update_icons.dm b/code/modules/mob/living/living_update_icons.dm index a9e1a136800b..06f9bd165ca3 100644 --- a/code/modules/mob/living/living_update_icons.dm +++ b/code/modules/mob/living/living_update_icons.dm @@ -57,6 +57,9 @@ if(!changed) //Nothing has been changed, nothing has to be done. return + // melbert todo : This is hack to get around buckle handing setting its own pixel y + if(buckled) + final_pixel_y = pixel_y SEND_SIGNAL(src, COMSIG_PAUSE_FLOATING_ANIM, 0.3 SECONDS) //if true, we want to avoid any animation time, it'll tween and not rotate at all otherwise. diff --git a/code/modules/mob/living/silicon/silicon_defense.dm b/code/modules/mob/living/silicon/silicon_defense.dm index f1561c2941b2..0cff7123d083 100644 --- a/code/modules/mob/living/silicon/silicon_defense.dm +++ b/code/modules/mob/living/silicon/silicon_defense.dm @@ -1,6 +1,8 @@ -/mob/living/silicon/grippedby(mob/living/user, instant = FALSE) - return //can't upgrade a simple pull into a more aggressive grab. +/mob/living/silicon/grabbedby(mob/living/carbon/user, supress_message = FALSE) + if(user.pulling == src) // cannot upgrade grabs on robots + return + return ..() /mob/living/silicon/get_ear_protection()//no ears return 2 diff --git a/code/modules/mob/living/simple_animal/slime/slime.dm b/code/modules/mob/living/simple_animal/slime/slime.dm index 1d5006bda5ea..c1b672b570bc 100644 --- a/code/modules/mob/living/simple_animal/slime/slime.dm +++ b/code/modules/mob/living/simple_animal/slime/slime.dm @@ -265,8 +265,7 @@ return /mob/living/simple_animal/slime/get_mob_buckling_height(mob/seat) - if(..()) - return 3 + return min(..(), 3) /mob/living/simple_animal/slime/examine(mob/user) . = list("This is [icon2html(src, user)] \a [src]!") diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index f83334e93c3d..1a17d5cef947 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -1126,22 +1126,19 @@ ///Call back post buckle to a mob to offset your visual height /mob/post_buckle_mob(mob/living/M) - var/height = M.get_mob_buckling_height(src) - M.pixel_y = initial(M.pixel_y) + height if(M.layer <= layer) //make sure they stay above our current layer M.layer = layer + 0.1 + ///Call back post unbuckle from a mob, (reset your visual height here) /mob/post_unbuckle_mob(mob/living/M) M.layer = initial(M.layer) - M.pixel_y = initial(M.pixel_y) + M.update_transform() ///returns the height in pixel the mob should have when buckled to another mob. -/mob/proc/get_mob_buckling_height(mob/seat) - if(isliving(seat)) - var/mob/living/L = seat - if(L.mob_size <= MOB_SIZE_SMALL) //being on top of a small mob doesn't put you very high. - return 0 - return 9 +/mob/proc/get_mob_buckling_height(mob/living/seat) + if(!isliving(seat)) + return 6 + return seat.mob_size * 3 ///Can the mob interact() with an atom? /mob/proc/can_interact_with(atom/A, treat_mob_as_adjacent) diff --git a/code/modules/movespeed/modifiers/mobs.dm b/code/modules/movespeed/modifiers/mobs.dm index b782f2fc9593..21eaeeb0cdf1 100644 --- a/code/modules/movespeed/modifiers/mobs.dm +++ b/code/modules/movespeed/modifiers/mobs.dm @@ -85,8 +85,9 @@ multiplicative_slowdown = STAGGERED_SLOWDOWN_STRENGTH /datum/movespeed_modifier/human_carry + variable = TRUE multiplicative_slowdown = HUMAN_CARRY_SLOWDOWN - blacklisted_movetypes = FLOATING + blacklisted_movetypes = FLOATING|PHASING /datum/movespeed_modifier/limbless variable = TRUE diff --git a/icons/effects/effects.dmi b/icons/effects/effects.dmi index 1be88105380758cb1d9036214dbb902b9d81b894..0026b82d445ddfa22316fa9be436a23a6204c30f 100644 GIT binary patch literal 960718 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