From def4b38a467e3595416db66c42b30512be69fabf Mon Sep 17 00:00:00 2001 From: BlueWildrose <57083662+BlueWildrose@users.noreply.github.com> Date: Wed, 11 Oct 2023 13:52:03 -0600 Subject: [PATCH] Revert "[DNM] Updates firemanning, throwing stuff" --- code/__DEFINES/dcs/signals/signals_global.dm | 2 - .../signals/signals_mob/signals_mob_main.dm | 2 - code/__HELPERS/pronouns.dm | 15 --- code/datums/components/riding.dm | 9 -- code/datums/elements/mob_holder.dm | 75 +++++------- code/game/objects/buckling.dm | 25 +--- code/game/objects/items.dm | 12 -- code/game/objects/items/cigs_lighters.dm | 1 - .../structures/beds_chairs/alien_nest.dm | 2 +- code/game/objects/structures/kitchen_spike.dm | 2 +- code/game/objects/structures/manned_turret.dm | 2 +- code/game/objects/structures/morgue.dm | 11 -- code/game/objects/structures/tables_racks.dm | 34 +----- .../clock_structures/traps/brass_skewer.dm | 2 +- .../antagonists/devil/true_devil/inventory.dm | 2 +- code/modules/mob/inventory.dm | 16 +-- .../living/carbon/alien/larva/inventory.dm | 2 +- code/modules/mob/living/carbon/carbon.dm | 111 +++++++++--------- .../simple_animal/guardian/types/dextrous.dm | 2 +- .../mob/living/simple_animal/simple_animal.dm | 2 +- .../mob/living/simple_animal/slime/slime.dm | 2 +- code/modules/power/singularity/emitter.dm | 2 +- tgstation.dme | 2 - 23 files changed, 106 insertions(+), 229 deletions(-) delete mode 100644 code/__DEFINES/dcs/signals/signals_global.dm delete mode 100644 code/__DEFINES/dcs/signals/signals_mob/signals_mob_main.dm diff --git a/code/__DEFINES/dcs/signals/signals_global.dm b/code/__DEFINES/dcs/signals/signals_global.dm deleted file mode 100644 index 3e0e1d2296..0000000000 --- a/code/__DEFINES/dcs/signals/signals_global.dm +++ /dev/null @@ -1,2 +0,0 @@ -/// a person somewhere has thrown something : (mob/living/carbon/carbon_thrower, target) -#define COMSIG_GLOB_CARBON_THROW_THING "!throw_thing" diff --git a/code/__DEFINES/dcs/signals/signals_mob/signals_mob_main.dm b/code/__DEFINES/dcs/signals/signals_mob/signals_mob_main.dm deleted file mode 100644 index e6c3464ff7..0000000000 --- a/code/__DEFINES/dcs/signals/signals_mob/signals_mob_main.dm +++ /dev/null @@ -1,2 +0,0 @@ -/// from mob/proc/dropItemToGround() -#define COMSIG_MOB_DROPPING_ITEM "mob_dropping_item" diff --git a/code/__HELPERS/pronouns.dm b/code/__HELPERS/pronouns.dm index fd15c05c64..bfe09ba370 100644 --- a/code/__HELPERS/pronouns.dm +++ b/code/__HELPERS/pronouns.dm @@ -39,21 +39,6 @@ /datum/proc/p_es(temp_gender) . = "es" -/datum/proc/plural_s(pluralize) - switch(copytext_char(pluralize, -2)) - if ("ss") - return "es" - if ("sh") - return "es" - if ("ch") - return "es" - else - switch(copytext_char(pluralize, -1)) - if("s", "x", "z") - return "es" - else - return "s" - //like clients, which do have gender. /client/p_they(capitalized, temp_gender) if(!temp_gender) diff --git a/code/datums/components/riding.dm b/code/datums/components/riding.dm index 49b8f7f7f0..a074fe6f5f 100644 --- a/code/datums/components/riding.dm +++ b/code/datums/components/riding.dm @@ -392,12 +392,3 @@ if(rider in AM.buckled_mobs) AM.unbuckle_mob(rider) . = ..() - -/obj/item/riding_offhand/on_thrown(mob/living/carbon/user, atom/target) - if(rider == user) - return //Piggyback user. - user.unbuckle_mob(rider) - if(HAS_TRAIT(user, TRAIT_PACIFISM)) - to_chat(user, span_notice("You gently let go of [rider].")) - return - return rider diff --git a/code/datums/elements/mob_holder.dm b/code/datums/elements/mob_holder.dm index 82f42d69b3..5f57b4fce3 100644 --- a/code/datums/elements/mob_holder.dm +++ b/code/datums/elements/mob_holder.dm @@ -61,7 +61,7 @@ return FALSE source.visible_message("[user] starts picking up [source].", \ "[user] starts picking you up!") - if(!do_after(user, 2 SECONDS, target = source) || source.buckled) + if(!do_after(user, 20, target = source) || source.buckled) return FALSE source.visible_message("[user] picks up [source]!", \ @@ -95,7 +95,6 @@ dynamic_hair_suffix = "" var/mob/living/held_mob var/escape_on_find - var/destroying = FALSE /obj/item/clothing/head/mob_holder/Initialize(mapload, mob/living/target, worn_state, alt_worn, right_hand, left_hand, slots = NONE) . = ..() @@ -135,54 +134,45 @@ w_class = WEIGHT_CLASS_HUGE /obj/item/clothing/head/mob_holder/Destroy() - destroying = TRUE if(held_mob) - release(FALSE) + release() return ..() /obj/item/clothing/head/mob_holder/examine(mob/user) return held_mob?.examine(user) || ..() -/obj/item/clothing/head/mob_holder/on_thrown(mob/living/carbon/user, atom/target) - if((item_flags & ABSTRACT) || HAS_TRAIT(src, TRAIT_NODROP)) - return - if(HAS_TRAIT(user, TRAIT_PACIFISM)) - to_chat(user, span_notice("You set [src] down gently on the ground.")) - release() - return +/obj/item/clothing/head/mob_holder/Exited(atom/movable/AM, atom/newloc) + . = ..() + if(AM == held_mob) + held_mob.reset_perspective() + held_mob = null + QDEL_IN(src, 1) //To avoid a qdel loop. - var/mob/living/throw_mob = held_mob - release() - return throw_mob +/obj/item/clothing/head/mob_holder/Entered(atom/movable/AM, atom/newloc) + . = ..() + if(AM != held_mob) + var/destination = loc + if(isliving(loc)) //the mob is held or worn, drop things on the floor + destination = get_turf(loc) + AM.forceMove(destination) /obj/item/clothing/head/mob_holder/dropped(mob/user) . = ..() - if(held_mob && isturf(loc)) + if(held_mob && !ismob(loc) && !istype(loc,/obj/item/storage))//don't release on soft-drops release() -/obj/item/clothing/head/mob_holder/proc/release(del_on_release = TRUE, display_messages = TRUE) - if(!held_mob) - if(del_on_release && !destroying) - qdel(src) - return FALSE - var/mob/living/released_mob = held_mob - held_mob = null // stops the held mob from being release()'d twice. - if(isliving(loc)) - var/mob/living/L = loc - if(display_messages) - to_chat(L, span_warning("[released_mob] wriggles free!")) - L.dropItemToGround(src) - released_mob.forceMove(drop_location()) - released_mob.reset_perspective() - released_mob.setDir(SOUTH) - if(display_messages) - released_mob.visible_message(span_warning("[released_mob] uncurls!")) - if(del_on_release && !destroying) +/obj/item/clothing/head/mob_holder/proc/release() + if(held_mob) + var/mob/living/L = held_mob + held_mob = null + L.forceMove(get_turf(L)) + L.reset_perspective() + L.setDir(SOUTH) + if(!QDELETED(src)) qdel(src) - return TRUE -/obj/item/clothing/head/mob_holder/relaymove(mob/living/user, direction) - container_resist() +/obj/item/clothing/head/mob_holder/relaymove(mob/user) + return /obj/item/clothing/head/mob_holder/container_resist() if(isliving(loc)) @@ -190,11 +180,6 @@ L.visible_message("[held_mob] escapes from [L]!", "[held_mob] escapes your grip!") release() -/obj/item/clothing/head/mob_holder/Exited(atom/movable/gone, direction) - . = ..() - if(held_mob && held_mob == gone) - release() - /obj/item/clothing/head/mob_holder/mob_can_equip(M, equipper, slot, disable_warning, bypass_equip_delay_self) if(M == held_mob || !ishuman(M)) //monkeys holding monkeys holding monkeys... return FALSE @@ -247,9 +232,7 @@ return location.transfer_air(taker, ratio) // escape when found if applicable -/obj/item/clothing/head/mob_holder/on_found(mob/finder) +/obj/item/clothing/head/mob_holder/on_found(mob/living/finder) if(escape_on_find) - to_chat(finder, span_warning("\A [held_mob.name] pops out! ")) - finder.visible_message(span_warning("\A [held_mob.name] pops out of the container [finder] is opening!"), ignored_mobs = finder) - release(TRUE, FALSE) - return + finder.visible_message("[finder] accidentally releases the [held_mob]!") + release() diff --git a/code/game/objects/buckling.dm b/code/game/objects/buckling.dm index aae6cbaa5c..afc4312779 100644 --- a/code/game/objects/buckling.dm +++ b/code/game/objects/buckling.dm @@ -25,32 +25,11 @@ if(user_unbuckle_mob(buckled_mobs[1],user)) return 1 -/atom/movable/attackby(obj/item/attacking_item, mob/user, params) - if(!can_buckle || !istype(attacking_item, /obj/item/riding_offhand) || !user.Adjacent(src)) - return ..() - - var/obj/item/riding_offhand/riding_item = attacking_item - var/mob/living/carried_mob = riding_item.rider - if(carried_mob == user) //Piggyback user. - return - user.unbuckle_mob(carried_mob) - carried_mob.forceMove(get_turf(src)) - return mouse_buckle_handling(carried_mob, user) - /atom/movable/MouseDrop_T(mob/living/M, mob/living/user) . = ..() - return mouse_buckle_handling(M, user) - -/** - * Does some typechecks and then calls user_buckle_mob - * - * Arguments: - * M - The mob being buckled to src - * user - The mob buckling M to src - */ -/atom/movable/proc/mouse_buckle_handling(mob/living/M, mob/living/user) if(can_buckle && istype(M) && istype(user)) - return user_buckle_mob(M, user, check_loc = FALSE) + if(user_buckle_mob(M, user)) + return 1 /atom/movable/proc/has_buckled_mobs() if(!buckled_mobs) diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index e63f809a5e..7a953089a5 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -177,8 +177,6 @@ GLOBAL_VAR_INIT(embedpocalypse, FALSE) // if true, all items will be able to emb var/canMouseDown = FALSE - /// Used if we want to have a custom verb text for throwing. "John Spaceman flicks the ciggerate" for example. - var/throw_verb /obj/item/Initialize(mapload) @@ -1118,16 +1116,6 @@ GLOBAL_VAR_INIT(embedpocalypse, FALSE) // if true, all items will be able to emb QDEL_NULL(src) return TRUE -///Called by the carbon throw_item() proc. Returns null if the item negates the throw, or a reference to the thing to suffer the throw else. -/obj/item/proc/on_thrown(mob/living/carbon/user, atom/target) - if((item_flags & ABSTRACT) || HAS_TRAIT(src, TRAIT_NODROP)) - return - user.dropItemToGround(src, silent = TRUE) - if(throwforce && HAS_TRAIT(user, TRAIT_PACIFISM)) - to_chat(user, span_notice("You set [src] down gently on the ground.")) - return - return src - /** diff --git a/code/game/objects/items/cigs_lighters.dm b/code/game/objects/items/cigs_lighters.dm index a52bbb75f3..518772c771 100644 --- a/code/game/objects/items/cigs_lighters.dm +++ b/code/game/objects/items/cigs_lighters.dm @@ -108,7 +108,6 @@ CIGARETTE PACKETS ARE IN FANCY.DM w_class = WEIGHT_CLASS_TINY body_parts_covered = null grind_results = list() - throw_verb = "flick" var/lit = FALSE var/starts_lit = FALSE var/icon_on = "cigon" //Note - these are in masks.dmi not in cigarette.dmi diff --git a/code/game/objects/structures/beds_chairs/alien_nest.dm b/code/game/objects/structures/beds_chairs/alien_nest.dm index 762331c40e..eff87d3955 100644 --- a/code/game/objects/structures/beds_chairs/alien_nest.dm +++ b/code/game/objects/structures/beds_chairs/alien_nest.dm @@ -48,7 +48,7 @@ unbuckle_mob(M) add_fingerprint(user) -/obj/structure/bed/nest/user_buckle_mob(mob/living/M, mob/living/carbon/user, check_loc) +/obj/structure/bed/nest/user_buckle_mob(mob/living/M, mob/living/carbon/user) if ( !ismob(M) || (get_dist(src, user) > 1) || (M.loc != src.loc) || !user.cuff_resist_check() || M.buckled ) return diff --git a/code/game/objects/structures/kitchen_spike.dm b/code/game/objects/structures/kitchen_spike.dm index 8c2655dd64..a37797045f 100644 --- a/code/game/objects/structures/kitchen_spike.dm +++ b/code/game/objects/structures/kitchen_spike.dm @@ -97,7 +97,7 @@ -/obj/structure/kitchenspike/user_buckle_mob(mob/living/M, mob/living/user, check_loc) //Don't want them getting put on the rack other than by spiking +/obj/structure/kitchenspike/user_buckle_mob(mob/living/M, mob/living/user) //Don't want them getting put on the rack other than by spiking return /obj/structure/kitchenspike/user_unbuckle_mob(mob/living/buckled_mob, mob/living/carbon/human/user) diff --git a/code/game/objects/structures/manned_turret.dm b/code/game/objects/structures/manned_turret.dm index 3f1cb5f4c1..f70510e173 100644 --- a/code/game/objects/structures/manned_turret.dm +++ b/code/game/objects/structures/manned_turret.dm @@ -43,7 +43,7 @@ . = ..() STOP_PROCESSING(SSfastprocess, src) -/obj/machinery/manned_turret/user_buckle_mob(mob/living/M, mob/living/carbon/user, check_loc) +/obj/machinery/manned_turret/user_buckle_mob(mob/living/M, mob/living/carbon/user) if(user.incapacitated() || !istype(user)) return M.forceMove(get_turf(src)) diff --git a/code/game/objects/structures/morgue.dm b/code/game/objects/structures/morgue.dm index c39b3f64b1..69206f0d08 100644 --- a/code/game/objects/structures/morgue.dm +++ b/code/game/objects/structures/morgue.dm @@ -330,17 +330,6 @@ GLOBAL_LIST_EMPTY(crematoriums) else to_chat(user, "That's not connected to anything!") -/obj/structure/tray/attackby(obj/P, mob/user, params) - if(!istype(P, /obj/item/riding_offhand)) - return ..() - - var/obj/item/riding_offhand/riding_item = P - var/mob/living/carried_mob = riding_item.rider - if(carried_mob == user) //Piggyback user. - return - user.unbuckle_mob(carried_mob) - MouseDrop_T(carried_mob, user) - /obj/structure/tray/MouseDrop_T(atom/movable/O as mob|obj, mob/user) if(!ismovable(O) || O.anchored || !Adjacent(user) || !user.Adjacent(O) || O.loc == user) return diff --git a/code/game/objects/structures/tables_racks.dm b/code/game/objects/structures/tables_racks.dm index 12799b4370..b7642f4658 100644 --- a/code/game/objects/structures/tables_racks.dm +++ b/code/game/objects/structures/tables_racks.dm @@ -124,11 +124,11 @@ . = . || (caller.pass_flags & PASSTABLE) /obj/structure/table/proc/tableplace(mob/living/user, mob/living/pushed_mob) - pushed_mob.forceMove(loc) - pushed_mob.set_resting(TRUE, TRUE) - pushed_mob.visible_message(span_notice("[user] places [pushed_mob] onto [src]."), \ - span_notice("[user] places [pushed_mob] onto [src].")) - log_combat(user, pushed_mob, "places", null, "onto [src]") + pushed_mob.forceMove(src.loc) + pushed_mob.set_resting(TRUE, FALSE) + pushed_mob.visible_message("[user] places [pushed_mob] onto [src].", \ + "[user] places [pushed_mob] onto [src].") + log_combat(user, pushed_mob, "placed") /obj/structure/table/proc/tablepush(mob/living/user, mob/living/pushed_mob) if(HAS_TRAIT(user, TRAIT_PACIFISM)) @@ -205,30 +205,6 @@ return // If the tray IS empty, continue on (tray will be placed on the table like other items) - if(istype(I, /obj/item/riding_offhand)) - var/obj/item/riding_offhand/riding_item = I - var/mob/living/carried_mob = riding_item.rider - if(carried_mob == user) //Piggyback user. - return - if(user.a_intent == INTENT_HARM) - user.unbuckle_mob(carried_mob) - tablelimbsmash(user, carried_mob) - else - var/tableplace_delay = 3.5 SECONDS - var/skills_space = "" - if(HAS_TRAIT(user, TRAIT_QUICKER_CARRY)) - tableplace_delay = 2 SECONDS - skills_space = " expertly" - else if(HAS_TRAIT(user, TRAIT_QUICK_CARRY)) - tableplace_delay = 2.75 SECONDS - skills_space = " quickly" - carried_mob.visible_message(span_notice("[user] begins to[skills_space] place [carried_mob] onto [src]..."), - span_userdanger("[user] begins to[skills_space] place [carried_mob] onto [src]...")) - if(do_after(user, tableplace_delay, target = carried_mob)) - user.unbuckle_mob(carried_mob) - tableplace(user, carried_mob) - return TRUE - if(user.a_intent != INTENT_HARM && !(I.item_flags & ABSTRACT)) if(user.transferItemToLoc(I, drop_location())) var/list/click_params = params2list(params) diff --git a/code/modules/antagonists/clockcult/clock_structures/traps/brass_skewer.dm b/code/modules/antagonists/clockcult/clock_structures/traps/brass_skewer.dm index ac8dc0bffb..a7c1f81f06 100644 --- a/code/modules/antagonists/clockcult/clock_structures/traps/brass_skewer.dm +++ b/code/modules/antagonists/clockcult/clock_structures/traps/brass_skewer.dm @@ -81,7 +81,7 @@ density = TRUE //Skewers are one-use only desc = "A vicious brass spike protruding from the ground like a stala[pick("gm", "ct")]ite. It makes you sick to look at." //is stalagmite the ground one? or the ceiling one? who can ever remember? -/obj/structure/destructible/clockwork/trap/brass_skewer/user_buckle_mob(check_loc) +/obj/structure/destructible/clockwork/trap/brass_skewer/user_buckle_mob() return /obj/structure/destructible/clockwork/trap/brass_skewer/post_buckle_mob(mob/living/L) diff --git a/code/modules/antagonists/devil/true_devil/inventory.dm b/code/modules/antagonists/devil/true_devil/inventory.dm index 8856838a34..e98cb5ca72 100644 --- a/code/modules/antagonists/devil/true_devil/inventory.dm +++ b/code/modules/antagonists/devil/true_devil/inventory.dm @@ -1,4 +1,4 @@ -/mob/living/carbon/true_devil/doUnEquip(obj/item/I, force, invdrop, silent = FALSE) +/mob/living/carbon/true_devil/doUnEquip(obj/item/I, force, silent = FALSE) if(..()) update_inv_hands() return 1 diff --git a/code/modules/mob/inventory.dm b/code/modules/mob/inventory.dm index 79a0ccda77..51659a2904 100644 --- a/code/modules/mob/inventory.dm +++ b/code/modules/mob/inventory.dm @@ -292,18 +292,10 @@ //The following functions are the same save for one small difference -/** - * Used to drop an item (if it exists) to the ground. - * * Will pass as TRUE is successfully dropped, or if there is no item to drop. - * * Will pass FALSE if the item can not be dropped due to TRAIT_NODROP via doUnEquip() - * If the item can be dropped, it will be forceMove()'d to the ground and the turf's Entered() will be called. -*/ -/mob/proc/dropItemToGround(obj/item/I, force = FALSE, silent = FALSE, invdrop = TRUE) - if (isnull(I)) - return TRUE - - SEND_SIGNAL(src, COMSIG_MOB_DROPPING_ITEM) - . = doUnEquip(I, force, drop_location(), FALSE, invdrop = invdrop, silent = silent) +//for when you want the item to end up on the ground +//will force move the item to the ground and call the turf's Entered +/mob/proc/dropItemToGround(obj/item/I, force = FALSE) + return doUnEquip(I, force, drop_location(), FALSE) //for when the item will be immediately placed in a loc other than the ground /mob/proc/transferItemToLoc(obj/item/I, newloc = null, force = FALSE, silent = TRUE) diff --git a/code/modules/mob/living/carbon/alien/larva/inventory.dm b/code/modules/mob/living/carbon/alien/larva/inventory.dm index 5b49c3abb0..b07bd180f6 100644 --- a/code/modules/mob/living/carbon/alien/larva/inventory.dm +++ b/code/modules/mob/living/carbon/alien/larva/inventory.dm @@ -1,3 +1,3 @@ //can't unequip since it can't equip anything -/mob/living/carbon/alien/larva/doUnEquip(obj/item/W, invdrop, silent = FALSE) +/mob/living/carbon/alien/larva/doUnEquip(obj/item/W, silent = FALSE) return diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm index e9f4f61556..419a75eff2 100644 --- a/code/modules/mob/living/carbon/carbon.dm +++ b/code/modules/mob/living/carbon/carbon.dm @@ -141,28 +141,26 @@ /mob/living/carbon/proc/throw_mode_off() - in_throw_mode = FALSE + in_throw_mode = 0 if(client && hud_used) hud_used.throw_icon.icon_state = "act_throw_off" /mob/living/carbon/proc/throw_mode_on() - in_throw_mode = TRUE + in_throw_mode = 1 if(client && hud_used) hud_used.throw_icon.icon_state = "act_throw_on" /mob/proc/throw_item(atom/target) SEND_SIGNAL(src, COMSIG_MOB_THROW, target) - SEND_GLOBAL_SIGNAL(COMSIG_GLOB_CARBON_THROW_THING, src, target) - return TRUE + return /mob/living/carbon/throw_item(atom/target) - . = ..() throw_mode_off() if(!target || !isturf(loc)) - return FALSE + return if(istype(target, /atom/movable/screen)) - return FALSE + return //CIT CHANGES - makes it impossible to throw while in stamina softcrit if(IS_STAMCRIT(src)) @@ -172,56 +170,59 @@ var/random_turn = a_intent == INTENT_HARM //END OF CIT CHANGES - var/atom/movable/thrown_thing - var/obj/item/held_item = get_active_held_item() - var/verb_text = pick("throw", "toss", "hurl", "chuck", "fling") - if(prob(0.5)) - verb_text = "yeet" + var/obj/item/I = get_active_held_item() - var/neckgrab_throw = FALSE - 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 + var/atom/movable/thrown_thing + var/mob/living/throwable_mob + + if(istype(I, /obj/item/clothing/head/mob_holder)) + var/obj/item/clothing/head/mob_holder/holder = I + if(holder.held_mob) + throwable_mob = holder.held_mob + holder.release() + + if(!I || throwable_mob) + if(!throwable_mob && pulling && isliving(pulling) && grab_state >= GRAB_AGGRESSIVE) + throwable_mob = pulling + + if(throwable_mob && !throwable_mob.buckled) + thrown_thing = throwable_mob + if(pulling) stop_pulling() - if(HAS_TRAIT(src, TRAIT_PACIFISM)) - to_chat(src, span_notice("You gently let go of [throwable_mob].")) - return FALSE - if(!UseStaminaBuffer(STAM_COST_THROW_MOB * ((throwable_mob.mob_size+1)**2), TRUE)) - return FALSE - else - thrown_thing = held_item.on_thrown(src, target) - if(!thrown_thing) - return FALSE - if(isliving(thrown_thing)) - var/turf/start_T = get_turf(loc) //Get the start and target tile for the descriptors - var/turf/end_T = get_turf(target) - if(start_T && end_T) - log_combat(src, thrown_thing, "thrown", addition="grab from tile in [AREACOORD(start_T)] towards tile at [AREACOORD(end_T)]") - var/power_throw = 0 - if(HAS_TRAIT(src, TRAIT_HULK)) - power_throw++ - if(HAS_TRAIT(src, TRAIT_DWARF)) - power_throw-- - if(HAS_TRAIT(thrown_thing, TRAIT_DWARF)) - power_throw++ - if(neckgrab_throw) - power_throw++ - if(isitem(thrown_thing)) - var/obj/item/thrown_item = thrown_thing - if(thrown_item.throw_verb) - verb_text = thrown_item.throw_verb - visible_message(span_danger("[src] [verb_text][plural_s(verb_text)] [thrown_thing][power_throw ? " really hard!" : "."]"), \ - span_danger("You [verb_text] [thrown_thing][power_throw ? " really hard!" : "."]")) - log_message("has thrown [thrown_thing] [power_throw > 0 ? "really hard" : ""]", LOG_ATTACK) - do_attack_animation(target, no_effect = 1) - var/extra_throw_range = 0 // HAS_TRAIT(src, TRAIT_THROWINGARM) ? 2 : 0 - playsound(loc, 'sound/weapons/punchmiss.ogg', 50, 1, -1) - newtonian_move(get_dir(target, src)) - thrown_thing.safe_throw_at(target, thrown_thing.throw_range + extra_throw_range, max(1,thrown_thing.throw_speed + power_throw), src, null, null, null, move_force, random_turn) + if(HAS_TRAIT(src, TRAIT_PACIFISM)) + to_chat(src, "You gently let go of [throwable_mob].") + return + if(!UseStaminaBuffer(STAM_COST_THROW_MOB * ((throwable_mob.mob_size+1)**2), TRUE)) + return + var/turf/start_T = get_turf(loc) //Get the start and target tile for the descriptors + var/turf/end_T = get_turf(target) + if(start_T && end_T) + log_combat(src, throwable_mob, "thrown", addition="grab from tile in [AREACOORD(start_T)] towards tile at [AREACOORD(end_T)]") + + else if(!(I.item_flags & ABSTRACT) && !HAS_TRAIT(I, TRAIT_NODROP)) + thrown_thing = I + dropItemToGround(I) + + if(HAS_TRAIT(src, TRAIT_PACIFISM) && I.throwforce) + to_chat(src, "You set [I] down gently on the ground.") + return + + if(!UseStaminaBuffer(I.getweight(src, STAM_COST_THROW_MULT, SKILL_THROW_STAM_COST), warn = TRUE)) + return + + if(thrown_thing) + var/power_throw = 0 + if(HAS_TRAIT(src, TRAIT_HULK)) + power_throw++ + if(pulling && grab_state >= GRAB_NECK) + power_throw++ + visible_message("[src] throws [thrown_thing][power_throw ? " really hard!" : "."]", \ + "You throw [thrown_thing][power_throw ? " really hard!" : "."]") + log_message("has thrown [thrown_thing] [power_throw ? "really hard" : ""]", LOG_ATTACK) + do_attack_animation(target, no_effect = 1) + playsound(loc, 'sound/weapons/punchmiss.ogg', 50, 1, -1) + newtonian_move(get_dir(target, src)) + thrown_thing.safe_throw_at(target, thrown_thing.throw_range, thrown_thing.throw_speed + power_throw, src, null, null, null, move_force, random_turn) /mob/living/carbon/restrained(ignore_grab) . = (handcuffed || (!ignore_grab && pulledby && pulledby.grab_state >= GRAB_AGGRESSIVE)) diff --git a/code/modules/mob/living/simple_animal/guardian/types/dextrous.dm b/code/modules/mob/living/simple_animal/guardian/types/dextrous.dm index 4e57aa1562..1fd1e623db 100644 --- a/code/modules/mob/living/simple_animal/guardian/types/dextrous.dm +++ b/code/modules/mob/living/simple_animal/guardian/types/dextrous.dm @@ -41,7 +41,7 @@ ..() //lose items, then return //SLOT HANDLING BULLSHIT FOR INTERNAL STORAGE -/mob/living/simple_animal/hostile/guardian/dextrous/doUnEquip(obj/item/I, force, invdrop, silent = FALSE) +/mob/living/simple_animal/hostile/guardian/dextrous/doUnEquip(obj/item/I, force, silent = FALSE) if(..()) update_inv_hands() if(I == internal_storage) diff --git a/code/modules/mob/living/simple_animal/simple_animal.dm b/code/modules/mob/living/simple_animal/simple_animal.dm index 151cc70a27..f226a911d8 100644 --- a/code/modules/mob/living/simple_animal/simple_animal.dm +++ b/code/modules/mob/living/simple_animal/simple_animal.dm @@ -587,7 +587,7 @@ //ANIMAL RIDING -/mob/living/simple_animal/user_buckle_mob(mob/living/M, mob/user, check_loc) +/mob/living/simple_animal/user_buckle_mob(mob/living/M, mob/user) var/datum/component/riding/riding_datum = GetComponent(/datum/component/riding) if(riding_datum) if(user.incapacitated()) diff --git a/code/modules/mob/living/simple_animal/slime/slime.dm b/code/modules/mob/living/simple_animal/slime/slime.dm index 2b267c4d01..dc9d6ff6a3 100644 --- a/code/modules/mob/living/simple_animal/slime/slime.dm +++ b/code/modules/mob/living/simple_animal/slime/slime.dm @@ -252,7 +252,7 @@ Feedon(Food) return ..() -/mob/living/simple_animal/slime/doUnEquip(obj/item/W, invdrop, silent = FALSE) +/mob/living/simple_animal/slime/doUnEquip(obj/item/W, silent = FALSE) return /mob/living/simple_animal/slime/start_pulling(atom/movable/AM, state, force = move_force, supress_message = FALSE) diff --git a/code/modules/power/singularity/emitter.dm b/code/modules/power/singularity/emitter.dm index be03e8a9c9..8f9a7805c6 100644 --- a/code/modules/power/singularity/emitter.dm +++ b/code/modules/power/singularity/emitter.dm @@ -383,7 +383,7 @@ auto.Remove(buckled_mob) . = ..() -/obj/machinery/power/emitter/prototype/user_buckle_mob(mob/living/M, mob/living/carbon/user, check_loc) +/obj/machinery/power/emitter/prototype/user_buckle_mob(mob/living/M, mob/living/carbon/user) if(user.incapacitated() || !istype(user)) return for(var/atom/movable/A in get_turf(src)) diff --git a/tgstation.dme b/tgstation.dme index 15028c7f40..54a485b1a3 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -160,7 +160,6 @@ #include "code\__DEFINES\dcs\flags.dm" #include "code\__DEFINES\dcs\helpers.dm" #include "code\__DEFINES\dcs\signals.dm" -#include "code\__DEFINES\dcs\signals\signals_global.dm" #include "code\__DEFINES\dcs\signals\signals_hud.dm" #include "code\__DEFINES\dcs\signals\signals_medical.dm" #include "code\__DEFINES\dcs\signals\signals_mod.dm" @@ -170,7 +169,6 @@ #include "code\__DEFINES\dcs\signals\signals_subsystem.dm" #include "code\__DEFINES\dcs\signals\signals_atom\signals_atom_movement.dm" #include "code\__DEFINES\dcs\signals\signals_mob\signals_mob_living.dm" -#include "code\__DEFINES\dcs\signals\signals_mob\signals_mob_main.dm" #include "code\__DEFINES\mapping\maploader.dm" #include "code\__DEFINES\material\worth.dm" #include "code\__DEFINES\mobs\innate_abilities.dm"