From b514af72ab672d9e2e434ba1092c0d0e63ca012c Mon Sep 17 00:00:00 2001 From: Kapu1178 <75460809+Kapu1178@users.noreply.github.com> Date: Sun, 11 Feb 2024 19:31:45 -0500 Subject: [PATCH] Throwing tweaks (#806) * throw speed reduction * spinning improvement * linterino * remove the drop animation from throwing * oops --- code/_onclick/hud/alert.dm | 6 ++++-- code/controllers/subsystem/throwing.dm | 15 ++++++++++++--- code/datums/martial/sleeping_carp.dm | 4 ++-- code/datums/mutations/tongue_spike.dm | 2 +- code/game/atoms_movable.dm | 14 ++++++++++---- code/game/objects/items.dm | 8 ++++++-- code/game/objects/items/AI_modules.dm | 2 +- code/game/objects/items/RCD.dm | 1 - code/game/objects/items/broom.dm | 2 +- code/game/objects/items/chainsaw.dm | 4 +++- code/game/objects/items/clown_items.dm | 2 -- code/game/objects/items/devices/camera_bug.dm | 2 +- .../objects/items/devices/chameleonproj.dm | 1 - code/game/objects/items/devices/multitool.dm | 3 ++- code/game/objects/items/devices/radio/radio.dm | 1 - .../items/devices/scanners/gas_analyzer.dm | 3 ++- .../items/devices/scanners/health_analyzer.dm | 1 - .../items/devices/scanners/sequence_scanner.dm | 1 - .../items/devices/scanners/slime_scanner.dm | 1 - .../objects/items/devices/traitordevices.dm | 1 - code/game/objects/items/dna_injector.dm | 1 - code/game/objects/items/door_seal.dm | 3 ++- code/game/objects/items/dualsaber.dm | 4 +++- code/game/objects/items/extinguisher.dm | 1 - code/game/objects/items/grenades/_grenade.dm | 1 - code/game/objects/items/grenades/festive.dm | 1 - code/game/objects/items/grenades/ghettobomb.dm | 1 - code/game/objects/items/handcuffs.dm | 1 - code/game/objects/items/holosign_creator.dm | 1 - code/game/objects/items/holy_weapons.dm | 3 +-- .../game/objects/items/implants/implantcase.dm | 1 - code/game/objects/items/implants/implanter.dm | 1 - code/game/objects/items/implants/implantpad.dm | 1 - code/game/objects/items/kitchen.dm | 8 ++++---- code/game/objects/items/knives.dm | 4 ++-- code/game/objects/items/melee/energy.dm | 5 ++--- code/game/objects/items/mop.dm | 2 +- code/game/objects/items/pet_carrier.dm | 1 - code/game/objects/items/pinpointer.dm | 1 - code/game/objects/items/scrolls.dm | 1 - code/game/objects/items/shields.dm | 3 --- code/game/objects/items/spear.dm | 2 +- code/game/objects/items/stacks/cash.dm | 2 +- code/game/objects/items/stacks/medical.dm | 1 - code/game/objects/items/stacks/rods.dm | 1 - code/game/objects/items/stacks/sheets/light.dm | 1 - .../objects/items/stacks/sheets/mineral.dm | 1 - .../objects/items/stacks/tiles/tile_types.dm | 1 - code/game/objects/items/stacks/wrap.dm | 1 - code/game/objects/items/storage/bags.dm | 1 - code/game/objects/items/storage/book.dm | 2 -- code/game/objects/items/storage/briefcase.dm | 1 - code/game/objects/items/storage/medkit.dm | 2 -- code/game/objects/items/storage/secure.dm | 1 - code/game/objects/items/storage/toolbox.dm | 2 +- code/game/objects/items/teleportation.dm | 2 -- code/game/objects/items/tools/crowbar.dm | 3 +-- code/game/objects/items/tools/screwdriver.dm | 3 +-- code/game/objects/items/tools/weldingtool.dm | 1 - code/game/objects/items/tools/wirecutters.dm | 1 - code/game/objects/items/toys.dm | 3 --- code/game/objects/items/weaponry.dm | 15 ++++++++------- code/game/objects/structures/flora.dm | 1 - .../objects/structures/training_machine.dm | 1 - code/modules/antagonists/cult/cult_items.dm | 3 +-- .../antagonists/wizard/equipment/artefact.dm | 1 - .../wizard/equipment/wizard_spellbook.dm | 1 - code/modules/art/statues.dm | 1 - code/modules/assembly/assembly.dm | 1 - code/modules/assembly/bomb.dm | 1 - code/modules/assembly/holder.dm | 1 - .../atmospherics/ZAS/zas_extras/inflatable.dm | 1 - code/modules/cards/singlecard.dm | 1 - code/modules/clothing/glasses/_glasses.dm | 6 +++--- code/modules/clothing/glasses/sec_hud.dm | 2 +- code/modules/clothing/head/cone.dm | 1 - code/modules/clothing/suits/wetfloor.dm | 1 - .../food_and_drinks/drinks/drinks/bottle.dm | 1 - code/modules/holodeck/items.dm | 1 - code/modules/hydroponics/grown/banana.dm | 1 - .../modules/hydroponics/grown/cocoa_vanilla.dm | 1 - code/modules/hydroponics/grown/corn.dm | 2 -- code/modules/hydroponics/grown/cotton.dm | 2 -- .../modules/hydroponics/grown/rainbow_bunch.dm | 1 - code/modules/hydroponics/grown/towercap.dm | 1 - code/modules/hydroponics/grown/weeds/nettle.dm | 1 - code/modules/hydroponics/hydroitemdefines.dm | 3 +-- code/modules/instruments/items.dm | 1 - code/modules/library/barcode_scanner.dm | 1 - code/modules/library/book.dm | 1 - code/modules/library/lib_codex_gigas.dm | 1 - code/modules/mining/equipment/kheiral_cuffs.dm | 1 - .../mining/equipment/lazarus_injector.dm | 1 - .../mining/equipment/wormhole_jaunter.dm | 1 - code/modules/mob/inventory.dm | 18 +++++++++++++----- code/modules/mob/living/brain/brain_item.dm | 1 - code/modules/mob/living/carbon/carbon.dm | 16 +++++++++++----- code/modules/mob/living/living.dm | 3 ++- .../living/simple_animal/bot/construction.dm | 1 - code/modules/paperwork/clipboard.dm | 1 - code/modules/paperwork/contract.dm | 1 - code/modules/paperwork/paper.dm | 2 +- code/modules/paperwork/paperbin.dm | 3 ++- code/modules/paperwork/paperplane.dm | 2 +- code/modules/paperwork/pen.dm | 6 +++--- code/modules/paperwork/stamps.dm | 2 +- code/modules/power/cable.dm | 2 +- code/modules/power/cell.dm | 1 - .../boxes_magazines/_box_magazine.dm | 1 - code/modules/projectiles/gun.dm | 1 - .../projectiles/guns/special/chem_gun.dm | 1 - .../guns/special/grenade_launcher.dm | 1 - .../projectiles/guns/special/syringe_gun.dm | 1 - .../projectiles/guns/special/tranq_rifle.dm | 1 - .../reagents/reagent_containers/medigel.dm | 1 - .../reagents/reagent_containers/spray.dm | 1 - .../religion/sparring/sparring_contract.dm | 1 - .../xenobiology/crossbreeding/__corecross.dm | 2 +- .../xenobiology/crossbreeding/_clothing.dm | 1 + .../xenobiology/crossbreeding/consuming.dm | 2 +- .../research/xenobiology/xenobiology.dm | 2 -- code/modules/surgery/tools.dm | 4 +--- code/modules/uplink/uplink_devices.dm | 1 - code/modules/vehicles/mecha/mecha_parts.dm | 2 +- .../modules/hyposprays/code/hypospray_kits.dm | 2 +- 125 files changed, 120 insertions(+), 174 deletions(-) diff --git a/code/_onclick/hud/alert.dm b/code/_onclick/hud/alert.dm index 53a4c61d8325..097d62ad66b4 100644 --- a/code/_onclick/hud/alert.dm +++ b/code/_onclick/hud/alert.dm @@ -804,9 +804,11 @@ or shoot a gun to move around via Newton's 3rd Law of Motion." if(!living_owner.can_resist()) return - living_owner.changeNext_move(CLICK_CD_RESIST) + if(living_owner.last_special <= world.time) - return living_owner.resist_buckle() + . = living_owner.resist_buckle() + if(!.) + living_owner.changeNext_move(CLICK_CD_RESIST) /atom/movable/screen/alert/shoes/untied name = "Untied Shoes" diff --git a/code/controllers/subsystem/throwing.dm b/code/controllers/subsystem/throwing.dm index 9175aca3175d..61d3d43665d7 100644 --- a/code/controllers/subsystem/throwing.dm +++ b/code/controllers/subsystem/throwing.dm @@ -84,9 +84,10 @@ SUBSYSTEM_DEF(throwing) var/delayed_time = 0 ///The last world.time value stored when the thrownthing was moving. var/last_move = 0 + /// If the thrown object is spinning + var/is_spinning = FALSE - -/datum/thrownthing/New(thrownthing, target, init_dir, maxrange, speed, thrower, diagonals_first, force, gentle, callback, target_zone) +/datum/thrownthing/New(thrownthing, target, init_dir, maxrange, speed, thrower, diagonals_first, force, gentle, callback, target_zone, spin) . = ..() src.thrownthing = thrownthing RegisterSignal(thrownthing, COMSIG_PARENT_QDELETING, PROC_REF(on_thrownthing_qdel)) @@ -102,9 +103,10 @@ SUBSYSTEM_DEF(throwing) src.gentle = gentle src.callback = callback src.target_zone = target_zone - + src.is_spinning = spin /datum/thrownthing/Destroy() + stop_spinning() SSthrowing.processing -= thrownthing SSthrowing.currentrun -= thrownthing thrownthing.throwing = null @@ -189,7 +191,10 @@ SUBSYSTEM_DEF(throwing) //done throwing, either because it hit something or it finished moving if(!thrownthing) return + thrownthing.throwing = null + stop_spinning() + if (!hit) for (var/atom/movable/obstacle as anything in get_turf(thrownthing)) //looking for our target on the turf we land on. if (obstacle == target) @@ -221,3 +226,7 @@ SUBSYSTEM_DEF(throwing) SEND_SIGNAL(thrownthing, COMSIG_MOVABLE_THROW_LANDED, src) qdel(src) + +/// Remove the spinning animation from the thrown object +/datum/thrownthing/proc/stop_spinning() + animate(thrownthing) diff --git a/code/datums/martial/sleeping_carp.dm b/code/datums/martial/sleeping_carp.dm index 7d598791c4fb..0ee74a0861f4 100644 --- a/code/datums/martial/sleeping_carp.dm +++ b/code/datums/martial/sleeping_carp.dm @@ -163,8 +163,8 @@ force = 10 force_wielded = 20 - throwforce = 20 - throw_speed = 2 + throwforce = 2 + throw_speed = 1.5 block_chance = 50 diff --git a/code/datums/mutations/tongue_spike.dm b/code/datums/mutations/tongue_spike.dm index f84e81b220d0..886573a0cba7 100644 --- a/code/datums/mutations/tongue_spike.dm +++ b/code/datums/mutations/tongue_spike.dm @@ -46,7 +46,7 @@ icon_state = "tonguespike" force = 2 throwforce = 15 //15 + 2 (WEIGHT_CLASS_SMALL) * 4 (EMBEDDED_IMPACT_PAIN_MULTIPLIER) = i didnt do the math - throw_speed = 4 + throw_speed = 1.5 embedding = list( "embedded_pain_multiplier" = 4, "embed_chance" = 100, diff --git a/code/game/atoms_movable.dm b/code/game/atoms_movable.dm index 301ddfea57ab..fa71adf72243 100644 --- a/code/game/atoms_movable.dm +++ b/code/game/atoms_movable.dm @@ -52,6 +52,9 @@ ///A lazylist of grab objects gripping us var/tmp/list/grabbed_by + /// A ref to the throwing datum belonging to us. + var/tmp/datum/thrownthing/throwing = null + /// Look, we're defining this here so it doesn't need to be redefined 4 times, okay? Sorry. var/tmp/germ_level = GERM_LEVEL_AMBIENT @@ -59,10 +62,13 @@ var/move_resist = MOVE_RESIST_DEFAULT var/move_force = MOVE_FORCE_DEFAULT var/pull_force = PULL_FORCE_DEFAULT - var/datum/thrownthing/throwing = null - var/throw_speed = 2 //How many tiles to move per ds when being thrown. Float values are fully supported + + //How many tiles to move per ds when being thrown. Float values are fully supported. + var/throw_speed = 1 var/throw_range = 7 + /// How much damage the object deals when impacting something else. var/throwforce = 0 + ///Max range this atom can be thrown via telekinesis var/tk_throw_range = 10 var/initial_language_holder = /datum/language_holder @@ -1017,7 +1023,7 @@ else target_zone = thrower.zone_selected - var/datum/thrownthing/thrown_thing = new(src, target, get_dir(src, target), range, speed, thrower, diagonals_first, force, gentle, callback, target_zone) + var/datum/thrownthing/thrown_thing = new(src, target, get_dir(src, target), range, speed, thrower, diagonals_first, force, gentle, callback, target_zone, spin) var/dist_x = abs(target.x - src.x) var/dist_y = abs(target.y - src.y) @@ -1048,7 +1054,7 @@ quickstart = FALSE throwing = thrown_thing if(spin) - SpinAnimation(5, 1) + SpinAnimation(2) SEND_SIGNAL(src, COMSIG_MOVABLE_POST_THROW, thrown_thing, spin) SSthrowing.processing[src] = thrown_thing diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index 7fb0c05e9ef2..89f4cded394b 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -1358,12 +1358,16 @@ DEFINE_INTERACTABLE(/obj/item) ///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)) + if((item_flags & ABSTRACT)) return - user.dropItemToGround(src, silent = TRUE) + + if(!user.dropItemToGround(src, silent = TRUE, animate = FALSE)) + return + 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/AI_modules.dm b/code/game/objects/items/AI_modules.dm index 726af8e5fdf8..9a66ad141052 100644 --- a/code/game/objects/items/AI_modules.dm +++ b/code/game/objects/items/AI_modules.dm @@ -18,7 +18,7 @@ AI MODULES force = 5 w_class = WEIGHT_CLASS_SMALL throwforce = 0 - throw_speed = 3 + throw_speed = 1.5 throw_range = 7 var/list/laws = list() var/bypass_law_amt_check = 0 diff --git a/code/game/objects/items/RCD.dm b/code/game/objects/items/RCD.dm index a181f8e356e0..b20e6993f340 100644 --- a/code/game/objects/items/RCD.dm +++ b/code/game/objects/items/RCD.dm @@ -19,7 +19,6 @@ RLD item_flags = NOBLUDGEON force = 0 throwforce = 10 - throw_speed = 3 throw_range = 5 w_class = WEIGHT_CLASS_NORMAL custom_materials = list(/datum/material/iron=100000) diff --git a/code/game/objects/items/broom.dm b/code/game/objects/items/broom.dm index 1ab4bb802868..c1c4e95f6892 100644 --- a/code/game/objects/items/broom.dm +++ b/code/game/objects/items/broom.dm @@ -13,7 +13,7 @@ force = 8 force_wielded = 12 throwforce = 10 - throw_speed = 3 + throw_speed = 1.5 throw_range = 7 w_class = WEIGHT_CLASS_NORMAL diff --git a/code/game/objects/items/chainsaw.dm b/code/game/objects/items/chainsaw.dm index 244649ff2d3c..0517584108ec 100644 --- a/code/game/objects/items/chainsaw.dm +++ b/code/game/objects/items/chainsaw.dm @@ -10,9 +10,11 @@ force = 13 var/force_on = 24 w_class = WEIGHT_CLASS_HUGE + throwforce = 13 - throw_speed = 2 + throw_speed = 1 throw_range = 4 + custom_materials = list(/datum/material/iron=13000) attack_verb_continuous = list("saws", "tears", "lacerates", "cuts", "chops", "dices") attack_verb_simple = list("saw", "tear", "lacerate", "cut", "chop", "dice") diff --git a/code/game/objects/items/clown_items.dm b/code/game/objects/items/clown_items.dm index 6af53bf52c8a..a4a51a63f89d 100644 --- a/code/game/objects/items/clown_items.dm +++ b/code/game/objects/items/clown_items.dm @@ -21,7 +21,6 @@ w_class = WEIGHT_CLASS_TINY item_flags = NOBLUDGEON throwforce = 0 - throw_speed = 3 throw_range = 7 grind_results = list(/datum/reagent/lye = 10) var/cleanspeed = 3.5 SECONDS //slower than mop @@ -206,7 +205,6 @@ hitsound = null //To prevent tap.ogg playing, as the item lacks of force w_class = WEIGHT_CLASS_TINY slot_flags = ITEM_SLOT_BACK|ITEM_SLOT_BELT - throw_speed = 3 throw_range = 7 attack_verb_continuous = list("HONKS") attack_verb_simple = list("HONK") diff --git a/code/game/objects/items/devices/camera_bug.dm b/code/game/objects/items/devices/camera_bug.dm index f0423b1857c3..fa105cd78f1f 100644 --- a/code/game/objects/items/devices/camera_bug.dm +++ b/code/game/objects/items/devices/camera_bug.dm @@ -12,7 +12,7 @@ icon_state = "camera_bug" w_class = WEIGHT_CLASS_TINY inhand_icon_state = "camera_bug" - throw_speed = 4 + throw_speed = 1.5 throw_range = 20 item_flags = NOBLUDGEON diff --git a/code/game/objects/items/devices/chameleonproj.dm b/code/game/objects/items/devices/chameleonproj.dm index 343cabad61c7..d24a0fab5d04 100644 --- a/code/game/objects/items/devices/chameleonproj.dm +++ b/code/game/objects/items/devices/chameleonproj.dm @@ -10,7 +10,6 @@ lefthand_file = 'icons/mob/inhands/misc/devices_lefthand.dmi' righthand_file = 'icons/mob/inhands/misc/devices_righthand.dmi' throwforce = 5 - throw_speed = 3 throw_range = 5 w_class = WEIGHT_CLASS_SMALL var/can_use = 1 diff --git a/code/game/objects/items/devices/multitool.dm b/code/game/objects/items/devices/multitool.dm index e1c8e88de19b..6e8ff74fd556 100644 --- a/code/game/objects/items/devices/multitool.dm +++ b/code/game/objects/items/devices/multitool.dm @@ -21,9 +21,10 @@ force = 5 w_class = WEIGHT_CLASS_SMALL tool_behaviour = TOOL_MULTITOOL + throwforce = 0 throw_range = 7 - throw_speed = 3 + drop_sound = 'sound/items/handling/multitool_drop.ogg' pickup_sound = 'sound/items/handling/multitool_pickup.ogg' custom_materials = list(/datum/material/iron=50, /datum/material/glass=20) diff --git a/code/game/objects/items/devices/radio/radio.dm b/code/game/objects/items/devices/radio/radio.dm index f2ce888af395..c5fd042dd871 100644 --- a/code/game/objects/items/devices/radio/radio.dm +++ b/code/game/objects/items/devices/radio/radio.dm @@ -11,7 +11,6 @@ flags_1 = CONDUCT_1 slot_flags = ITEM_SLOT_BELT - throw_speed = 3 throw_range = 7 w_class = WEIGHT_CLASS_SMALL custom_materials = list(/datum/material/iron=75, /datum/material/glass=25) diff --git a/code/game/objects/items/devices/scanners/gas_analyzer.dm b/code/game/objects/items/devices/scanners/gas_analyzer.dm index 6f17d1b4e47b..2a3ddffbfadb 100644 --- a/code/game/objects/items/devices/scanners/gas_analyzer.dm +++ b/code/game/objects/items/devices/scanners/gas_analyzer.dm @@ -11,9 +11,10 @@ flags_1 = CONDUCT_1 item_flags = NOBLUDGEON slot_flags = ITEM_SLOT_BELT + throwforce = 0 - throw_speed = 3 throw_range = 7 + tool_behaviour = TOOL_ANALYZER custom_materials = list(/datum/material/iron=30, /datum/material/glass=20) grind_results = list(/datum/reagent/mercury = 5, /datum/reagent/iron = 5, /datum/reagent/silicon = 5) diff --git a/code/game/objects/items/devices/scanners/health_analyzer.dm b/code/game/objects/items/devices/scanners/health_analyzer.dm index 31e891e4bd0d..72dbe1b6e70c 100644 --- a/code/game/objects/items/devices/scanners/health_analyzer.dm +++ b/code/game/objects/items/devices/scanners/health_analyzer.dm @@ -20,7 +20,6 @@ slot_flags = ITEM_SLOT_BELT throwforce = 3 w_class = WEIGHT_CLASS_TINY - throw_speed = 3 throw_range = 7 custom_materials = list(/datum/material/iron=200) var/mode = SCANNER_VERBOSE diff --git a/code/game/objects/items/devices/scanners/sequence_scanner.dm b/code/game/objects/items/devices/scanners/sequence_scanner.dm index ab512376123e..150197bceaad 100644 --- a/code/game/objects/items/devices/scanners/sequence_scanner.dm +++ b/code/game/objects/items/devices/scanners/sequence_scanner.dm @@ -12,7 +12,6 @@ slot_flags = ITEM_SLOT_BELT throwforce = 3 w_class = WEIGHT_CLASS_TINY - throw_speed = 3 throw_range = 7 custom_materials = list(/datum/material/iron=200) var/list/discovered = list() //hit a dna console to update the scanners database diff --git a/code/game/objects/items/devices/scanners/slime_scanner.dm b/code/game/objects/items/devices/scanners/slime_scanner.dm index 5b97ac3d75a7..b44b89de448f 100644 --- a/code/game/objects/items/devices/scanners/slime_scanner.dm +++ b/code/game/objects/items/devices/scanners/slime_scanner.dm @@ -9,7 +9,6 @@ w_class = WEIGHT_CLASS_SMALL flags_1 = CONDUCT_1 throwforce = 0 - throw_speed = 3 throw_range = 7 custom_materials = list(/datum/material/iron=30, /datum/material/glass=20) diff --git a/code/game/objects/items/devices/traitordevices.dm b/code/game/objects/items/devices/traitordevices.dm index 78db2d47b7e7..98fa71530987 100644 --- a/code/game/objects/items/devices/traitordevices.dm +++ b/code/game/objects/items/devices/traitordevices.dm @@ -22,7 +22,6 @@ effective or pretty fucking useless. icon_state = "batterer" throwforce = 5 w_class = WEIGHT_CLASS_TINY - throw_speed = 3 throw_range = 7 flags_1 = CONDUCT_1 inhand_icon_state = "electronic" diff --git a/code/game/objects/items/dna_injector.dm b/code/game/objects/items/dna_injector.dm index 0083e0bc1d89..beb409330a85 100644 --- a/code/game/objects/items/dna_injector.dm +++ b/code/game/objects/items/dna_injector.dm @@ -6,7 +6,6 @@ worn_icon_state = "pen" lefthand_file = 'icons/mob/inhands/equipment/medical_lefthand.dmi' righthand_file = 'icons/mob/inhands/equipment/medical_righthand.dmi' - throw_speed = 3 throw_range = 5 w_class = WEIGHT_CLASS_TINY diff --git a/code/game/objects/items/door_seal.dm b/code/game/objects/items/door_seal.dm index 9c51b7f0ec49..6d10ee89d9e4 100644 --- a/code/game/objects/items/door_seal.dm +++ b/code/game/objects/items/door_seal.dm @@ -8,9 +8,10 @@ flags_1 = CONDUCT_1 resistance_flags = FIRE_PROOF | ACID_PROOF force = 5 + throwforce = 5 - throw_speed = 2 throw_range = 1 + w_class = WEIGHT_CLASS_NORMAL custom_materials = list(/datum/material/iron=5000,/datum/material/plasma=500) /// how long the seal takes to place on the door diff --git a/code/game/objects/items/dualsaber.dm b/code/game/objects/items/dualsaber.dm index 70b834e8b06e..b92cbfb83efa 100644 --- a/code/game/objects/items/dualsaber.dm +++ b/code/game/objects/items/dualsaber.dm @@ -11,9 +11,11 @@ force = 3 force_wielded = 34 + throwforce = 5 - throw_speed = 3 + throw_speed = 1.5 throw_range = 5 + block_chance = 75 block_sound = 'sound/weapons/block/block_energy.ogg' sharpness = SHARP_EDGED diff --git a/code/game/objects/items/extinguisher.dm b/code/game/objects/items/extinguisher.dm index 110da7f452c3..b925bdb877b1 100644 --- a/code/game/objects/items/extinguisher.dm +++ b/code/game/objects/items/extinguisher.dm @@ -10,7 +10,6 @@ flags_1 = CONDUCT_1 throwforce = 10 w_class = WEIGHT_CLASS_NORMAL - throw_speed = 2 throw_range = 7 force = 10 stamina_damage = 25 diff --git a/code/game/objects/items/grenades/_grenade.dm b/code/game/objects/items/grenades/_grenade.dm index 33f283dc1b2d..958358546ce8 100644 --- a/code/game/objects/items/grenades/_grenade.dm +++ b/code/game/objects/items/grenades/_grenade.dm @@ -18,7 +18,6 @@ lefthand_file = 'icons/mob/inhands/equipment/security_lefthand.dmi' righthand_file = 'icons/mob/inhands/equipment/security_righthand.dmi' - throw_speed = 3 throw_range = 7 stamina_damage = 0 stamina_cost = 0 diff --git a/code/game/objects/items/grenades/festive.dm b/code/game/objects/items/grenades/festive.dm index 3a094ad198c0..98593c631ae5 100644 --- a/code/game/objects/items/grenades/festive.dm +++ b/code/game/objects/items/grenades/festive.dm @@ -68,7 +68,6 @@ righthand_file = 'icons/mob/inhands/misc/devices_righthand.dmi' w_class = WEIGHT_CLASS_SMALL inhand_icon_state = "flare" - throw_speed = 3 throw_range = 7 det_time = 30 diff --git a/code/game/objects/items/grenades/ghettobomb.dm b/code/game/objects/items/grenades/ghettobomb.dm index 0d267b022a8c..42d78cbe136b 100644 --- a/code/game/objects/items/grenades/ghettobomb.dm +++ b/code/game/objects/items/grenades/ghettobomb.dm @@ -9,7 +9,6 @@ inhand_icon_state = "flashbang" lefthand_file = 'icons/mob/inhands/equipment/security_lefthand.dmi' righthand_file = 'icons/mob/inhands/equipment/security_righthand.dmi' - throw_speed = 3 throw_range = 7 flags_1 = CONDUCT_1 slot_flags = ITEM_SLOT_BELT diff --git a/code/game/objects/items/handcuffs.dm b/code/game/objects/items/handcuffs.dm index 628587e17136..49ae1ee46a5a 100644 --- a/code/game/objects/items/handcuffs.dm +++ b/code/game/objects/items/handcuffs.dm @@ -35,7 +35,6 @@ slot_flags = ITEM_SLOT_BELT throwforce = 0 w_class = WEIGHT_CLASS_SMALL - throw_speed = 3 throw_range = 5 custom_materials = list(/datum/material/iron=500) breakouttime = 1 MINUTES diff --git a/code/game/objects/items/holosign_creator.dm b/code/game/objects/items/holosign_creator.dm index a8b0944b8c85..66304ec4cb6c 100644 --- a/code/game/objects/items/holosign_creator.dm +++ b/code/game/objects/items/holosign_creator.dm @@ -10,7 +10,6 @@ force = 0 w_class = WEIGHT_CLASS_SMALL throwforce = 0 - throw_speed = 3 throw_range = 7 item_flags = NOBLUDGEON var/list/signs diff --git a/code/game/objects/items/holy_weapons.dm b/code/game/objects/items/holy_weapons.dm index 3ad3eecd263c..22bd9187ce2c 100644 --- a/code/game/objects/items/holy_weapons.dm +++ b/code/game/objects/items/holy_weapons.dm @@ -136,7 +136,6 @@ lefthand_file = 'icons/mob/inhands/weapons/melee_lefthand.dmi' righthand_file = 'icons/mob/inhands/weapons/melee_righthand.dmi' force = 18 - throw_speed = 3 throw_range = 4 throwforce = 10 slot_flags = ITEM_SLOT_BELT @@ -543,7 +542,7 @@ slot_flags = ITEM_SLOT_HEAD icon = 'icons/obj/clothing/hats.dmi' force = 0 - throw_speed = 4 + throw_speed = 1.5 throw_range = 7 throwforce = 30 sharpness = SHARP_EDGED diff --git a/code/game/objects/items/implants/implantcase.dm b/code/game/objects/items/implants/implantcase.dm index 2af9cbd481ec..74d4e5971bd4 100644 --- a/code/game/objects/items/implants/implantcase.dm +++ b/code/game/objects/items/implants/implantcase.dm @@ -9,7 +9,6 @@ inhand_icon_state = "implantcase" lefthand_file = 'icons/mob/inhands/equipment/medical_lefthand.dmi' righthand_file = 'icons/mob/inhands/equipment/medical_righthand.dmi' - throw_speed = 2 throw_range = 5 w_class = WEIGHT_CLASS_TINY custom_materials = list(/datum/material/glass=500) diff --git a/code/game/objects/items/implants/implanter.dm b/code/game/objects/items/implants/implanter.dm index 55cb3a7a154a..b14a2eab3fe0 100644 --- a/code/game/objects/items/implants/implanter.dm +++ b/code/game/objects/items/implants/implanter.dm @@ -9,7 +9,6 @@ inhand_icon_state = "syringe_0" lefthand_file = 'icons/mob/inhands/equipment/medical_lefthand.dmi' righthand_file = 'icons/mob/inhands/equipment/medical_righthand.dmi' - throw_speed = 3 throw_range = 5 w_class = WEIGHT_CLASS_SMALL custom_materials = list(/datum/material/iron=600, /datum/material/glass=200) diff --git a/code/game/objects/items/implants/implantpad.dm b/code/game/objects/items/implants/implantpad.dm index f35ea2a88fbe..9f755981bba0 100644 --- a/code/game/objects/items/implants/implantpad.dm +++ b/code/game/objects/items/implants/implantpad.dm @@ -6,7 +6,6 @@ inhand_icon_state = "electronic" lefthand_file = 'icons/mob/inhands/misc/devices_lefthand.dmi' righthand_file = 'icons/mob/inhands/misc/devices_righthand.dmi' - throw_speed = 3 throw_range = 5 w_class = WEIGHT_CLASS_SMALL var/obj/item/implantcase/case = null diff --git a/code/game/objects/items/kitchen.dm b/code/game/objects/items/kitchen.dm index f17ea9f24059..4d089d5e3bce 100644 --- a/code/game/objects/items/kitchen.dm +++ b/code/game/objects/items/kitchen.dm @@ -24,7 +24,7 @@ force = 4 w_class = WEIGHT_CLASS_TINY throwforce = 0 - throw_speed = 3 + throw_speed = 1.5 throw_range = 5 custom_materials = list(/datum/material/iron=80) flags_1 = CONDUCT_1 @@ -106,7 +106,7 @@ force = 8 throwforce = 10 - throw_speed = 3 + throw_speed = 1.5 throw_range = 7 stamina_damage = 40 stamina_cost = 15 @@ -131,7 +131,7 @@ w_class = WEIGHT_CLASS_TINY flags_1 = CONDUCT_1 force = 2 - throw_speed = 3 + throw_speed = 1.5 throw_range = 5 attack_verb_simple = list("whack", "spoon", "tap") attack_verb_continuous = list("whacks", "spoons", "taps") @@ -160,7 +160,7 @@ w_class = WEIGHT_CLASS_SMALL force = 2 custom_materials = list(/datum/material/iron = 80, /datum/material/plastic = 40) - throw_speed = 3 + throw_speed = 1.5 throw_range = 5 attack_verb_simple = list("smack", "thwack", "slap") attack_verb_continuous = list("smacks", "thwacks", "slaps") diff --git a/code/game/objects/items/knives.dm b/code/game/objects/items/knives.dm index e2fc3103fd58..4bd46136e478 100644 --- a/code/game/objects/items/knives.dm +++ b/code/game/objects/items/knives.dm @@ -13,7 +13,7 @@ w_class = WEIGHT_CLASS_SMALL throwforce = 10 hitsound = 'sound/weapons/bladeslice.ogg' - throw_speed = 3 + throw_speed = 1.5 throw_range = 6 custom_materials = list(/datum/material/iron=12000) attack_verb_continuous = list("slashes", "stabs", "slices", "tears", "lacerates", "rips", "dices", "cuts") @@ -170,7 +170,7 @@ else if (istype(shard, /obj/item/shard/plastitanium)) force = 10 throwforce = 15 - throw_speed = 4 + throw_speed = 1.5 throw_range = 8 icon_state = "plastitaniumshiv" inhand_icon_state = "plastitaniumshiv" diff --git a/code/game/objects/items/melee/energy.dm b/code/game/objects/items/melee/energy.dm index febfc44f9cc3..1237c09a4730 100644 --- a/code/game/objects/items/melee/energy.dm +++ b/code/game/objects/items/melee/energy.dm @@ -135,9 +135,10 @@ attack_verb_continuous = list("attacks", "chops", "cleaves", "tears", "lacerates", "cuts") attack_verb_simple = list("attack", "chop", "cleave", "tear", "lacerate", "cut") force = 40 + throwforce = 25 - throw_speed = 3 throw_range = 5 + armor_penetration = 100 sharpness = SHARP_EDGED w_class = WEIGHT_CLASS_NORMAL @@ -172,7 +173,6 @@ force = 3 throwforce = 5 - throw_speed = 3 throw_range = 5 armor_penetration = 35 @@ -294,7 +294,6 @@ attack_verb_simple = list("attack", "slash", "stab", "slice", "tear", "lacerate", "rip", "dice", "cut") force = 30 throwforce = 1 // Throwing or dropping the item deletes it. - throw_speed = 3 throw_range = 1 sharpness = SHARP_EDGED heat = 3500 diff --git a/code/game/objects/items/mop.dm b/code/game/objects/items/mop.dm index e948a92d7a56..78a04042b564 100644 --- a/code/game/objects/items/mop.dm +++ b/code/game/objects/items/mop.dm @@ -7,7 +7,7 @@ righthand_file = 'icons/mob/inhands/equipment/custodial_righthand.dmi' force = 8 throwforce = 10 - throw_speed = 3 + throw_speed = 1.5 throw_range = 7 w_class = WEIGHT_CLASS_NORMAL attack_verb_continuous = list("mops", "bashes", "bludgeons", "whacks") diff --git a/code/game/objects/items/pet_carrier.dm b/code/game/objects/items/pet_carrier.dm index d8f17e1961b4..a22b1d73eeae 100644 --- a/code/game/objects/items/pet_carrier.dm +++ b/code/game/objects/items/pet_carrier.dm @@ -15,7 +15,6 @@ attack_verb_continuous = list("bashes", "carries") attack_verb_simple = list("bash", "carry") w_class = WEIGHT_CLASS_BULKY - throw_speed = 2 throw_range = 3 custom_materials = list(/datum/material/iron = 7500, /datum/material/glass = 100) var/open = TRUE diff --git a/code/game/objects/items/pinpointer.dm b/code/game/objects/items/pinpointer.dm index abbbad7870ea..89374f7750d6 100644 --- a/code/game/objects/items/pinpointer.dm +++ b/code/game/objects/items/pinpointer.dm @@ -11,7 +11,6 @@ worn_icon_state = "pinpointer" lefthand_file = 'icons/mob/inhands/misc/devices_lefthand.dmi' righthand_file = 'icons/mob/inhands/misc/devices_righthand.dmi' - throw_speed = 3 throw_range = 7 custom_materials = list(/datum/material/iron = 500, /datum/material/glass = 250) var/active = FALSE diff --git a/code/game/objects/items/scrolls.dm b/code/game/objects/items/scrolls.dm index ec0e10620943..91eb2ba3590f 100644 --- a/code/game/objects/items/scrolls.dm +++ b/code/game/objects/items/scrolls.dm @@ -6,7 +6,6 @@ worn_icon_state = "scroll" w_class = WEIGHT_CLASS_SMALL inhand_icon_state = "paper" - throw_speed = 3 throw_range = 7 resistance_flags = FLAMMABLE actions_types = list(/datum/action/cooldown/spell/teleport/area_teleport/wizard/scroll) diff --git a/code/game/objects/items/shields.dm b/code/game/objects/items/shields.dm index 707444c472d2..330d4e0ce9ec 100644 --- a/code/game/objects/items/shields.dm +++ b/code/game/objects/items/shields.dm @@ -18,7 +18,6 @@ slot_flags = ITEM_SLOT_BACK force = 10 throwforce = 5 - throw_speed = 2 throw_range = 3 w_class = WEIGHT_CLASS_BULKY custom_materials = list(/datum/material/glass=7500, /datum/material/iron=1000) @@ -203,7 +202,6 @@ throw_range = 5 force = 3 throwforce = 3 - throw_speed = 3 block_chance = -INFINITY block_sound = 'sound/weapons/block/block_energy.ogg' //reflect @@ -254,7 +252,6 @@ slot_flags = null force = 3 throwforce = 3 - throw_speed = 3 throw_range = 4 w_class = WEIGHT_CLASS_NORMAL /// Whether the shield is extended and protecting the user.. diff --git a/code/game/objects/items/spear.dm b/code/game/objects/items/spear.dm index de1b65707e8a..dec6fa5c27dc 100644 --- a/code/game/objects/items/spear.dm +++ b/code/game/objects/items/spear.dm @@ -12,7 +12,7 @@ force = 7 force_wielded = 14 throwforce = 15 - throw_speed = 4 + throw_speed = 1.5 embedding = list("impact_pain_mult" = 2, "remove_pain_mult" = 4, "jostle_chance" = 2.5) armor_penetration = 10 diff --git a/code/game/objects/items/stacks/cash.dm b/code/game/objects/items/stacks/cash.dm index 8e2d3c4e0db9..c5f81af758d8 100644 --- a/code/game/objects/items/stacks/cash.dm +++ b/code/game/objects/items/stacks/cash.dm @@ -6,7 +6,7 @@ amount = 1 max_amount = INFINITY throwforce = 0 - throw_speed = 2 + throw_speed = 0.7 throw_range = 2 w_class = WEIGHT_CLASS_TINY full_w_class = WEIGHT_CLASS_TINY diff --git a/code/game/objects/items/stacks/medical.dm b/code/game/objects/items/stacks/medical.dm index 93f1a4ab6819..ce79a9e44862 100644 --- a/code/game/objects/items/stacks/medical.dm +++ b/code/game/objects/items/stacks/medical.dm @@ -7,7 +7,6 @@ w_class = WEIGHT_CLASS_TINY full_w_class = WEIGHT_CLASS_TINY - throw_speed = 3 throw_range = 7 stamina_damage = 0 stamina_cost = 0 diff --git a/code/game/objects/items/stacks/rods.dm b/code/game/objects/items/stacks/rods.dm index 0d7b4d2eddd7..8824d031c0a1 100644 --- a/code/game/objects/items/stacks/rods.dm +++ b/code/game/objects/items/stacks/rods.dm @@ -19,7 +19,6 @@ GLOBAL_LIST_INIT(rod_recipes, list ( \ w_class = WEIGHT_CLASS_NORMAL force = 9 throwforce = 10 - throw_speed = 3 throw_range = 7 mats_per_unit = list(/datum/material/iron=1000) max_amount = 50 diff --git a/code/game/objects/items/stacks/sheets/light.dm b/code/game/objects/items/stacks/sheets/light.dm index 5ee8f06237ce..f86fd3f6f659 100644 --- a/code/game/objects/items/stacks/sheets/light.dm +++ b/code/game/objects/items/stacks/sheets/light.dm @@ -7,7 +7,6 @@ w_class = WEIGHT_CLASS_NORMAL force = 3 throwforce = 5 - throw_speed = 3 throw_range = 7 flags_1 = CONDUCT_1 max_amount = 60 diff --git a/code/game/objects/items/stacks/sheets/mineral.dm b/code/game/objects/items/stacks/sheets/mineral.dm index a1288376c2c2..b82956c413ff 100644 --- a/code/game/objects/items/stacks/sheets/mineral.dm +++ b/code/game/objects/items/stacks/sheets/mineral.dm @@ -34,7 +34,6 @@ GLOBAL_LIST_INIT(sandstone_recipes, list ( \ singular_name = "sandstone brick" icon_state = "sheet-sandstone" inhand_icon_state = "sheet-sandstone" - throw_speed = 3 throw_range = 5 mats_per_unit = list(/datum/material/sandstone=MINERAL_MATERIAL_AMOUNT) sheettype = "sandstone" diff --git a/code/game/objects/items/stacks/tiles/tile_types.dm b/code/game/objects/items/stacks/tiles/tile_types.dm index 83828a54b544..7eeb4a338768 100644 --- a/code/game/objects/items/stacks/tiles/tile_types.dm +++ b/code/game/objects/items/stacks/tiles/tile_types.dm @@ -13,7 +13,6 @@ w_class = WEIGHT_CLASS_NORMAL force = 6 throwforce = 15 - throw_speed = 3 throw_range = 7 max_amount = 60 novariants = TRUE diff --git a/code/game/objects/items/stacks/wrap.dm b/code/game/objects/items/stacks/wrap.dm index 198bebeba16a..f6c40cf0e346 100644 --- a/code/game/objects/items/stacks/wrap.dm +++ b/code/game/objects/items/stacks/wrap.dm @@ -176,5 +176,4 @@ icon_state = "c_tube" throwforce = 0 w_class = WEIGHT_CLASS_TINY - throw_speed = 3 throw_range = 5 diff --git a/code/game/objects/items/storage/bags.dm b/code/game/objects/items/storage/bags.dm index 4b2a2bdbb5dc..9625bc68f448 100644 --- a/code/game/objects/items/storage/bags.dm +++ b/code/game/objects/items/storage/bags.dm @@ -311,7 +311,6 @@ desc = "A metal tray to lay food on." force = 5 throwforce = 10 - throw_speed = 3 throw_range = 5 flags_1 = CONDUCT_1 slot_flags = ITEM_SLOT_BELT diff --git a/code/game/objects/items/storage/book.dm b/code/game/objects/items/storage/book.dm index 269ea72bb78f..c2d8783cd49b 100644 --- a/code/game/objects/items/storage/book.dm +++ b/code/game/objects/items/storage/book.dm @@ -4,7 +4,6 @@ icon = 'icons/obj/library.dmi' icon_state ="book" worn_icon_state = "book" - throw_speed = 2 throw_range = 5 w_class = WEIGHT_CLASS_NORMAL resistance_flags = FLAMMABLE @@ -259,7 +258,6 @@ GLOBAL_LIST_INIT(bibleitemstates, list("bible", "koran", "scrapbook", "burning", /obj/item/storage/book/bible/syndicate icon_state ="ebook" deity_name = "The Syndicate" - throw_speed = 2 throwforce = 18 throw_range = 7 force = 18 diff --git a/code/game/objects/items/storage/briefcase.dm b/code/game/objects/items/storage/briefcase.dm index 71c04af7c0ed..99138e624bbf 100644 --- a/code/game/objects/items/storage/briefcase.dm +++ b/code/game/objects/items/storage/briefcase.dm @@ -7,7 +7,6 @@ flags_1 = CONDUCT_1 hitsound = SFX_SWING_HIT - throw_speed = 2 throw_range = 4 force = 8 stamina_cost = 17 diff --git a/code/game/objects/items/storage/medkit.dm b/code/game/objects/items/storage/medkit.dm index 0421e7908e88..300d966214aa 100644 --- a/code/game/objects/items/storage/medkit.dm +++ b/code/game/objects/items/storage/medkit.dm @@ -14,7 +14,6 @@ icon_state = "medkit" lefthand_file = 'icons/mob/inhands/equipment/medical_lefthand.dmi' righthand_file = 'icons/mob/inhands/equipment/medical_righthand.dmi' - throw_speed = 3 throw_range = 7 var/empty = FALSE var/damagetype_healed //defines damage type of the medkit. General ones stay null. Used for medibot healing bonuses @@ -527,7 +526,6 @@ base_icon_state = "organbox" lefthand_file = 'icons/mob/inhands/equipment/medical_lefthand.dmi' righthand_file = 'icons/mob/inhands/equipment/medical_righthand.dmi' - throw_speed = 3 throw_range = 7 custom_premium_price = PAYCHECK_MEDIUM * 4 /// var to prevent it freezing the same things over and over diff --git a/code/game/objects/items/storage/secure.dm b/code/game/objects/items/storage/secure.dm index df28f2be427e..dce8afbbaf0e 100644 --- a/code/game/objects/items/storage/secure.dm +++ b/code/game/objects/items/storage/secure.dm @@ -145,7 +145,6 @@ desc = "A large briefcase with a digital locking system." force = 8 hitsound = SFX_SWING_HIT - throw_speed = 2 throw_range = 4 w_class = WEIGHT_CLASS_BULKY attack_verb_continuous = list("bashes", "batters", "bludgeons", "thrashes", "whacks") diff --git a/code/game/objects/items/storage/toolbox.dm b/code/game/objects/items/storage/toolbox.dm index 2f42498d9b9a..0cd02ad8a232 100644 --- a/code/game/objects/items/storage/toolbox.dm +++ b/code/game/objects/items/storage/toolbox.dm @@ -10,7 +10,7 @@ force = 20 throwforce = 10 - throw_speed = 2 + throw_speed = 1.5 throw_range = 7 stamina_damage = 47 stamina_cost = 20 diff --git a/code/game/objects/items/teleportation.dm b/code/game/objects/items/teleportation.dm index 295b27580fb2..4d6e356dc8e4 100644 --- a/code/game/objects/items/teleportation.dm +++ b/code/game/objects/items/teleportation.dm @@ -21,7 +21,6 @@ inhand_icon_state = "electronic" lefthand_file = 'icons/mob/inhands/misc/devices_lefthand.dmi' righthand_file = 'icons/mob/inhands/misc/devices_righthand.dmi' - throw_speed = 3 throw_range = 7 custom_materials = list(/datum/material/iron=400) var/tracking_range = 20 @@ -108,7 +107,6 @@ righthand_file = 'icons/mob/inhands/misc/devices_righthand.dmi' throwforce = 0 w_class = WEIGHT_CLASS_SMALL - throw_speed = 3 throw_range = 5 custom_materials = list(/datum/material/iron=10000) armor = list(BLUNT = 0, PUNCTURE = 0, SLASH = 0, LASER = 0, ENERGY = 0, BOMB = 30, BIO = 0, FIRE = 100, ACID = 100) diff --git a/code/game/objects/items/tools/crowbar.dm b/code/game/objects/items/tools/crowbar.dm index b5e715ab767a..fe81d5c7c0b5 100644 --- a/code/game/objects/items/tools/crowbar.dm +++ b/code/game/objects/items/tools/crowbar.dm @@ -57,7 +57,6 @@ desc = "It's a big crowbar. It doesn't fit in your pockets, because it's big." force = 12 w_class = WEIGHT_CLASS_NORMAL - throw_speed = 3 throw_range = 3 custom_materials = list(/datum/material/iron=70) icon_state = "crowbar_large" @@ -75,7 +74,7 @@ name = "old crowbar" desc = "It's an old crowbar. Much larger than the pocket sized ones, carrying a lot more heft. They don't make 'em like they used to." throwforce = 10 - throw_speed = 2 + throw_speed = 1.5 /obj/item/crowbar/large/old/Initialize() . = ..() diff --git a/code/game/objects/items/tools/screwdriver.dm b/code/game/objects/items/tools/screwdriver.dm index 0dd20bada6a8..d12bec424a70 100644 --- a/code/game/objects/items/tools/screwdriver.dm +++ b/code/game/objects/items/tools/screwdriver.dm @@ -14,7 +14,6 @@ force = 5 throwforce = 5 - throw_speed = 3 throw_range = 5 stamina_cost = 5 stamina_damage = 10 @@ -89,7 +88,7 @@ force = 8 //might or might not be too high, subject to change w_class = WEIGHT_CLASS_SMALL throwforce = 8 - throw_speed = 2 + throw_speed = 1.5 throw_range = 3//it's heavier than a screw driver/wrench, so it does more damage, but can't be thrown as far attack_verb_continuous = list("drills", "screws", "jabs", "whacks") attack_verb_simple = list("drill", "screw", "jab", "whack") diff --git a/code/game/objects/items/tools/weldingtool.dm b/code/game/objects/items/tools/weldingtool.dm index 710e43480613..c2b1c0c0f604 100644 --- a/code/game/objects/items/tools/weldingtool.dm +++ b/code/game/objects/items/tools/weldingtool.dm @@ -22,7 +22,6 @@ light_power = 0.75 light_color = LIGHT_COLOR_FIRE light_on = FALSE - throw_speed = 3 throw_range = 5 w_class = WEIGHT_CLASS_SMALL armor = list(BLUNT = 0, PUNCTURE = 0, SLASH = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 100, ACID = 30) diff --git a/code/game/objects/items/tools/wirecutters.dm b/code/game/objects/items/tools/wirecutters.dm index d8af5ee39e93..02d7506422c7 100644 --- a/code/game/objects/items/tools/wirecutters.dm +++ b/code/game/objects/items/tools/wirecutters.dm @@ -14,7 +14,6 @@ slot_flags = ITEM_SLOT_BELT force = 6 - throw_speed = 3 throw_range = 7 stamina_damage = 15 stamina_cost = 10 diff --git a/code/game/objects/items/toys.dm b/code/game/objects/items/toys.dm index f035303a6c78..e171f7b93a28 100644 --- a/code/game/objects/items/toys.dm +++ b/code/game/objects/items/toys.dm @@ -29,7 +29,6 @@ */ /obj/item/toy throwforce = 0 - throw_speed = 3 throw_range = 7 force = 0 @@ -123,7 +122,6 @@ righthand_file = 'icons/mob/inhands/balloons_righthand.dmi' w_class = WEIGHT_CLASS_BULKY throwforce = 0 - throw_speed = 3 throw_range = 7 force = 0 var/random_color = TRUE @@ -517,7 +515,6 @@ force = 0 force_wielded = 0 throwforce = 0 - throw_speed = 3 throw_range = 5 attack_verb_continuous = list("attacks", "strikes", "hits") diff --git a/code/game/objects/items/weaponry.dm b/code/game/objects/items/weaponry.dm index ca52e986c0e6..913e0a3d8a76 100644 --- a/code/game/objects/items/weaponry.dm +++ b/code/game/objects/items/weaponry.dm @@ -95,7 +95,7 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301 slot_flags = ITEM_SLOT_BACK force = 30 throwforce = 20 - throw_speed = 3 + throw_speed = 1 throw_range = 5 armor_penetration = 35 @@ -282,7 +282,7 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301 righthand_file = 'icons/mob/inhands/equipment/shields_righthand.dmi' force = 2 throwforce = 10 //10 + 2 (WEIGHT_CLASS_SMALL) * 4 (EMBEDDED_IMPACT_PAIN_MULTIPLIER) = 18 damage on hit due to guaranteed embedding - throw_speed = 4 + throw_speed = 1.5 embedding = list("pain_mult" = 4, "embed_chance" = 100, "fall_chance" = 0) armor_penetration = 40 @@ -316,7 +316,7 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301 force = 3 w_class = WEIGHT_CLASS_SMALL throwforce = 5 - throw_speed = 3 + throw_speed = 1.5 throw_range = 6 custom_materials = list(/datum/material/iron=12000) hitsound = 'sound/weapons/genhit.ogg' @@ -354,9 +354,10 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301 icon = 'icons/obj/items_and_weapons.dmi' icon_state = "red_phone" force = 3 + throwforce = 2 - throw_speed = 3 throw_range = 4 + w_class = WEIGHT_CLASS_SMALL attack_verb_continuous = list("calls", "rings") attack_verb_simple = list("call", "ring") @@ -393,7 +394,7 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301 righthand_file = 'icons/mob/inhands/weapons/staves_righthand.dmi' force = 3 throwforce = 5 - throw_speed = 2 + throw_speed = 1.5 throw_range = 5 w_class = WEIGHT_CLASS_SMALL armor_penetration = 100 @@ -418,7 +419,7 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301 righthand_file = 'icons/mob/inhands/weapons/melee_righthand.dmi' force = 3 throwforce = 5 - throw_speed = 2 + throw_speed = 1.5 throw_range = 5 w_class = WEIGHT_CLASS_SMALL @@ -755,7 +756,7 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301 righthand_file = 'icons/mob/inhands/weapons/swords_righthand.dmi' force = 10 throwforce = 25 - throw_speed = 4 + throw_speed = 1.5 embedding = list("embed_chance" = 100) block_chance = 25 sharpness = SHARP_EDGED diff --git a/code/game/objects/structures/flora.dm b/code/game/objects/structures/flora.dm index 303147223f5f..a86b1c651b3d 100644 --- a/code/game/objects/structures/flora.dm +++ b/code/game/objects/structures/flora.dm @@ -351,7 +351,6 @@ w_class = WEIGHT_CLASS_HUGE force = 10 throwforce = 13 - throw_speed = 2 throw_range = 4 item_flags = NO_PIXEL_RANDOM_DROP diff --git a/code/game/objects/structures/training_machine.dm b/code/game/objects/structures/training_machine.dm index e2301e39d93c..fe77d11056e1 100644 --- a/code/game/objects/structures/training_machine.dm +++ b/code/game/objects/structures/training_machine.dm @@ -355,7 +355,6 @@ flags_1 = CONDUCT_1 force = 0 throwforce = 0 - throw_speed = 2 throw_range = 7 w_class = WEIGHT_CLASS_BULKY ///Total number of hits made against a valid target diff --git a/code/modules/antagonists/cult/cult_items.dm b/code/modules/antagonists/cult/cult_items.dm index b4c022132c8d..499b60ac1e7f 100644 --- a/code/modules/antagonists/cult/cult_items.dm +++ b/code/modules/antagonists/cult/cult_items.dm @@ -3,7 +3,6 @@ desc = "An old, dusty tome with frayed edges and a sinister-looking cover." icon = 'icons/obj/cult/items_and_weapons.dmi' icon_state ="tome" - throw_speed = 2 throw_range = 5 w_class = WEIGHT_CLASS_SMALL @@ -712,7 +711,7 @@ Striking a noncultist, however, will tear their flesh."} force = 17 force_wielded = 24 throwforce = 40 - throw_speed = 2 + throw_speed = 1.5 armor_penetration = 30 block_chance = 30 diff --git a/code/modules/antagonists/wizard/equipment/artefact.dm b/code/modules/antagonists/wizard/equipment/artefact.dm index 143c1f60d0aa..8059856f4596 100644 --- a/code/modules/antagonists/wizard/equipment/artefact.dm +++ b/code/modules/antagonists/wizard/equipment/artefact.dm @@ -165,7 +165,6 @@ desc = "An incandescent orb of otherworldly energy, merely holding it gives you vision and hearing beyond mortal means, and staring into it lets you see the entire universe." icon = 'icons/obj/guns/projectiles.dmi' icon_state ="bluespace" - throw_speed = 3 throw_range = 7 throwforce = 15 damtype = BURN diff --git a/code/modules/antagonists/wizard/equipment/wizard_spellbook.dm b/code/modules/antagonists/wizard/equipment/wizard_spellbook.dm index a16f5b6f1fd3..df8e95679f9a 100644 --- a/code/modules/antagonists/wizard/equipment/wizard_spellbook.dm +++ b/code/modules/antagonists/wizard/equipment/wizard_spellbook.dm @@ -4,7 +4,6 @@ icon = 'icons/obj/library.dmi' icon_state ="book" worn_icon_state = "book" - throw_speed = 2 throw_range = 5 w_class = WEIGHT_CLASS_TINY diff --git a/code/modules/art/statues.dm b/code/modules/art/statues.dm index ecc8f41ff8b8..466e378995e9 100644 --- a/code/modules/art/statues.dm +++ b/code/modules/art/statues.dm @@ -262,7 +262,6 @@ force = 5 w_class = WEIGHT_CLASS_TINY throwforce = 5 - throw_speed = 3 throw_range = 5 custom_materials = list(/datum/material/iron=75) attack_verb_continuous = list("stabs") diff --git a/code/modules/assembly/assembly.dm b/code/modules/assembly/assembly.dm index fe5c42471c76..71afb0dc1016 100644 --- a/code/modules/assembly/assembly.dm +++ b/code/modules/assembly/assembly.dm @@ -14,7 +14,6 @@ w_class = WEIGHT_CLASS_SMALL custom_materials = list(/datum/material/iron=100) throwforce = 2 - throw_speed = 3 throw_range = 7 drop_sound = 'sound/items/handling/component_drop.ogg' pickup_sound = 'sound/items/handling/component_pickup.ogg' diff --git a/code/modules/assembly/bomb.dm b/code/modules/assembly/bomb.dm index 1e64df5201de..27ce8c897803 100644 --- a/code/modules/assembly/bomb.dm +++ b/code/modules/assembly/bomb.dm @@ -6,7 +6,6 @@ righthand_file = 'icons/mob/inhands/misc/devices_righthand.dmi' throwforce = 5 w_class = WEIGHT_CLASS_NORMAL - throw_speed = 2 throw_range = 4 flags_1 = CONDUCT_1 var/status = FALSE //0 - not readied //1 - bomb finished with welder diff --git a/code/modules/assembly/holder.dm b/code/modules/assembly/holder.dm index 32191f31da50..01e86ff3549a 100644 --- a/code/modules/assembly/holder.dm +++ b/code/modules/assembly/holder.dm @@ -8,7 +8,6 @@ flags_1 = CONDUCT_1 throwforce = 5 w_class = WEIGHT_CLASS_SMALL - throw_speed = 2 throw_range = 7 /// used to store the list of assemblies making up our assembly holder var/list/obj/item/assembly/assemblies diff --git a/code/modules/atmospherics/ZAS/zas_extras/inflatable.dm b/code/modules/atmospherics/ZAS/zas_extras/inflatable.dm index ad1b6f572fc4..9673844a2884 100644 --- a/code/modules/atmospherics/ZAS/zas_extras/inflatable.dm +++ b/code/modules/atmospherics/ZAS/zas_extras/inflatable.dm @@ -431,7 +431,6 @@ max_integrity = 150 force = 8 hitsound = SFX_SWING_HIT - throw_speed = 2 throw_range = 4 var/startswith = list(/obj/item/inflatable/door = 2, /obj/item/inflatable/wall = 4) diff --git a/code/modules/cards/singlecard.dm b/code/modules/cards/singlecard.dm index bd0918c50e3c..c927ee8fa8b0 100644 --- a/code/modules/cards/singlecard.dm +++ b/code/modules/cards/singlecard.dm @@ -13,7 +13,6 @@ max_integrity = 50 force = 0 throwforce = 0 - throw_speed = 3 throw_range = 7 attack_verb_continuous = list("attacks") attack_verb_simple = list("attack") diff --git a/code/modules/clothing/glasses/_glasses.dm b/code/modules/clothing/glasses/_glasses.dm index 68b6c637f293..adb95f2e29d5 100644 --- a/code/modules/clothing/glasses/_glasses.dm +++ b/code/modules/clothing/glasses/_glasses.dm @@ -120,7 +120,7 @@ alternate_worn_layer = ABOVE_BODY_FRONT_HEAD_LAYER force = 10 throwforce = 10 - throw_speed = 4 + throw_speed = 1.5 attack_verb_continuous = list("slices") attack_verb_simple = list("slice") hitsound = 'sound/weapons/bladeslice.ogg' @@ -205,7 +205,7 @@ alternate_worn_layer = ABOVE_BODY_FRONT_HEAD_LAYER force = 10 throwforce = 20 - throw_speed = 4 + throw_speed = 1.5 attack_verb_continuous = list("slices") attack_verb_simple = list("slice") hitsound = 'sound/weapons/bladeslice.ogg' @@ -326,7 +326,7 @@ alternate_worn_layer = ABOVE_BODY_FRONT_HEAD_LAYER force = 10 throwforce = 10 - throw_speed = 4 + throw_speed = 1.5 attack_verb_continuous = list("slices") attack_verb_simple = list("slice") hitsound = 'sound/weapons/bladeslice.ogg' diff --git a/code/modules/clothing/glasses/sec_hud.dm b/code/modules/clothing/glasses/sec_hud.dm index 60b559459f93..50ce8491ef21 100644 --- a/code/modules/clothing/glasses/sec_hud.dm +++ b/code/modules/clothing/glasses/sec_hud.dm @@ -67,7 +67,7 @@ alternate_worn_layer = ABOVE_BODY_FRONT_HEAD_LAYER force = 10 throwforce = 10 - throw_speed = 4 + throw_speed = 1.5 attack_verb_continuous = list("slices") attack_verb_simple = list("slice") hitsound = 'sound/weapons/bladeslice.ogg' diff --git a/code/modules/clothing/head/cone.dm b/code/modules/clothing/head/cone.dm index 3e479ebbe3ed..b8e4e105b464 100644 --- a/code/modules/clothing/head/cone.dm +++ b/code/modules/clothing/head/cone.dm @@ -7,7 +7,6 @@ inhand_icon_state = "cone" force = 1 throwforce = 3 - throw_speed = 2 throw_range = 5 w_class = WEIGHT_CLASS_SMALL attack_verb_continuous = list("warns", "cautions", "smashes") diff --git a/code/modules/clothing/suits/wetfloor.dm b/code/modules/clothing/suits/wetfloor.dm index b181f27c6b46..f40b74bf67b2 100644 --- a/code/modules/clothing/suits/wetfloor.dm +++ b/code/modules/clothing/suits/wetfloor.dm @@ -6,7 +6,6 @@ righthand_file = 'icons/mob/inhands/equipment/custodial_righthand.dmi' force = 1 throwforce = 3 - throw_speed = 2 throw_range = 5 w_class = WEIGHT_CLASS_SMALL body_parts_covered = CHEST|GROIN diff --git a/code/modules/food_and_drinks/drinks/drinks/bottle.dm b/code/modules/food_and_drinks/drinks/drinks/bottle.dm index 9f80b5d1cf14..72493814c8f2 100644 --- a/code/modules/food_and_drinks/drinks/drinks/bottle.dm +++ b/code/modules/food_and_drinks/drinks/drinks/bottle.dm @@ -118,7 +118,6 @@ icon_state = "broken_bottle" force = 9 throwforce = 5 - throw_speed = 3 throw_range = 5 w_class = WEIGHT_CLASS_TINY inhand_icon_state = "broken_beer" diff --git a/code/modules/holodeck/items.dm b/code/modules/holodeck/items.dm index 80e4167689a1..a7c93c6e0aae 100644 --- a/code/modules/holodeck/items.dm +++ b/code/modules/holodeck/items.dm @@ -11,7 +11,6 @@ name = "holographic energy sword" desc = "May the force be with you. Sorta." damtype = STAMINA - throw_speed = 2 block_chance = 0 throwforce = 0 embedding = null diff --git a/code/modules/hydroponics/grown/banana.dm b/code/modules/hydroponics/grown/banana.dm index 95dc96de7577..40fdddf871a0 100644 --- a/code/modules/hydroponics/grown/banana.dm +++ b/code/modules/hydroponics/grown/banana.dm @@ -59,7 +59,6 @@ inhand_icon_state = "banana_peel" w_class = WEIGHT_CLASS_TINY throwforce = 0 - throw_speed = 3 throw_range = 7 /obj/item/grown/bananapeel/Initialize(mapload) diff --git a/code/modules/hydroponics/grown/cocoa_vanilla.dm b/code/modules/hydroponics/grown/cocoa_vanilla.dm index bae6cb406040..cc760c7087d9 100644 --- a/code/modules/hydroponics/grown/cocoa_vanilla.dm +++ b/code/modules/hydroponics/grown/cocoa_vanilla.dm @@ -91,7 +91,6 @@ desc = "A large seed, it is said to be potent enough to be able to stop a mans heart." w_class = WEIGHT_CLASS_TINY throwforce = 5 - throw_speed = 3 throw_range = 7 foodtypes = TOXIC tastes = list("acrid bitterness" = 1) diff --git a/code/modules/hydroponics/grown/corn.dm b/code/modules/hydroponics/grown/corn.dm index 9c5f10994130..cf4f8119ca15 100644 --- a/code/modules/hydroponics/grown/corn.dm +++ b/code/modules/hydroponics/grown/corn.dm @@ -39,7 +39,6 @@ inhand_icon_state = "corncob" w_class = WEIGHT_CLASS_TINY throwforce = 0 - throw_speed = 3 throw_range = 7 grind_results = list(/datum/reagent/cellulose = 10) //really partially hemicellulose @@ -70,7 +69,6 @@ inhand_icon_state = "corncob" w_class = WEIGHT_CLASS_TINY throwforce = 0 - throw_speed = 3 throw_range = 7 var/snap_pops = 1 diff --git a/code/modules/hydroponics/grown/cotton.dm b/code/modules/hydroponics/grown/cotton.dm index 1c86590ce5e1..934c080cd33a 100644 --- a/code/modules/hydroponics/grown/cotton.dm +++ b/code/modules/hydroponics/grown/cotton.dm @@ -26,7 +26,6 @@ force = 0 throwforce = 0 w_class = WEIGHT_CLASS_TINY - throw_speed = 2 throw_range = 3 attack_verb_continuous = list("pomfs") attack_verb_simple = list("pomf") @@ -71,7 +70,6 @@ force = 5 throwforce = 5 w_class = WEIGHT_CLASS_NORMAL - throw_speed = 2 throw_range = 3 attack_verb_continuous = list("bashes", "batters", "bludgeons", "whacks") attack_verb_simple = list("bash", "batter", "bludgeon", "whack") diff --git a/code/modules/hydroponics/grown/rainbow_bunch.dm b/code/modules/hydroponics/grown/rainbow_bunch.dm index 91c6aae2cfa5..97ea24c4789d 100644 --- a/code/modules/hydroponics/grown/rainbow_bunch.dm +++ b/code/modules/hydroponics/grown/rainbow_bunch.dm @@ -29,7 +29,6 @@ force = 0 throwforce = 0 w_class = WEIGHT_CLASS_TINY - throw_speed = 2 throw_range = 3 attack_verb_continuous = list("pompfs") attack_verb_simple = list("pompf") diff --git a/code/modules/hydroponics/grown/towercap.dm b/code/modules/hydroponics/grown/towercap.dm index 94e68f535df1..997ade38cdbd 100644 --- a/code/modules/hydroponics/grown/towercap.dm +++ b/code/modules/hydroponics/grown/towercap.dm @@ -38,7 +38,6 @@ force = 5 throwforce = 5 w_class = WEIGHT_CLASS_NORMAL - throw_speed = 2 throw_range = 3 attack_verb_continuous = list("bashes", "batters", "bludgeons", "whacks") attack_verb_simple = list("bash", "batter", "bludgeon", "whack") diff --git a/code/modules/hydroponics/grown/weeds/nettle.dm b/code/modules/hydroponics/grown/weeds/nettle.dm index 26803bef4acf..b9bdb97dccb4 100644 --- a/code/modules/hydroponics/grown/weeds/nettle.dm +++ b/code/modules/hydroponics/grown/weeds/nettle.dm @@ -45,7 +45,6 @@ hitsound = 'sound/weapons/bladeslice.ogg' throwforce = 5 w_class = WEIGHT_CLASS_TINY - throw_speed = 1 throw_range = 3 attack_verb_continuous = list("stings") attack_verb_simple = list("sting") diff --git a/code/modules/hydroponics/hydroitemdefines.dm b/code/modules/hydroponics/hydroitemdefines.dm index 05b8d463a600..bbf66dd5e661 100644 --- a/code/modules/hydroponics/hydroitemdefines.dm +++ b/code/modules/hydroponics/hydroitemdefines.dm @@ -483,7 +483,7 @@ force = 12 w_class = WEIGHT_CLASS_SMALL throwforce = 15 - throw_speed = 4 + throw_speed = 1.5 throw_range = 7 embedding = list("pain_mult" = 4, "embed_chance" = 35, "fall_chance" = 10) custom_materials = list(/datum/material/iron = 15000) @@ -515,7 +515,6 @@ desc = "A sharp and curved blade on a long fibremetal handle, this tool makes it easy to reap what you sow." force = 13 throwforce = 5 - throw_speed = 2 throw_range = 3 w_class = WEIGHT_CLASS_BULKY flags_1 = CONDUCT_1 diff --git a/code/modules/instruments/items.dm b/code/modules/instruments/items.dm index 5af38fa08674..7724068a4f8b 100644 --- a/code/modules/instruments/items.dm +++ b/code/modules/instruments/items.dm @@ -238,7 +238,6 @@ attack_verb_simple = list("beautifully honk") w_class = WEIGHT_CLASS_TINY force = 0 - throw_speed = 3 throw_range = 15 hitsound = 'sound/items/bikehorn.ogg' diff --git a/code/modules/library/barcode_scanner.dm b/code/modules/library/barcode_scanner.dm index 414a6b4301bd..3dbab03c09f6 100644 --- a/code/modules/library/barcode_scanner.dm +++ b/code/modules/library/barcode_scanner.dm @@ -3,7 +3,6 @@ icon = 'icons/obj/library.dmi' icon_state ="scanner" desc = "A fabulous tool if you need to scan a barcode." - throw_speed = 3 throw_range = 5 w_class = WEIGHT_CLASS_TINY /// A weakref to our associated computer - Modes 1 to 3 use this diff --git a/code/modules/library/book.dm b/code/modules/library/book.dm index 9e29ee324969..c8a1b675221f 100644 --- a/code/modules/library/book.dm +++ b/code/modules/library/book.dm @@ -71,7 +71,6 @@ icon_state ="book" worn_icon_state = "book" desc = "Crack it open, inhale the musk of its pages, and learn something new." - throw_speed = 1 throw_range = 5 w_class = WEIGHT_CLASS_NORMAL //upped to three because books are, y'know, pretty big. (and you could hide them inside eachother recursively forever) attack_verb_continuous = list("bashes", "whacks", "educates") diff --git a/code/modules/library/lib_codex_gigas.dm b/code/modules/library/lib_codex_gigas.dm index c7452cf4dcfd..02c929b186a9 100644 --- a/code/modules/library/lib_codex_gigas.dm +++ b/code/modules/library/lib_codex_gigas.dm @@ -4,7 +4,6 @@ icon_state ="demonomicon" lefthand_file = 'icons/mob/inhands/misc/books_lefthand.dmi' righthand_file = 'icons/mob/inhands/misc/books_righthand.dmi' - throw_speed = 1 throw_range = 10 resistance_flags = LAVA_PROOF | FIRE_PROOF | ACID_PROOF starting_title = "the Codex Gigas" diff --git a/code/modules/mining/equipment/kheiral_cuffs.dm b/code/modules/mining/equipment/kheiral_cuffs.dm index 62ab564eb2fd..8974aaf912a4 100644 --- a/code/modules/mining/equipment/kheiral_cuffs.dm +++ b/code/modules/mining/equipment/kheiral_cuffs.dm @@ -10,7 +10,6 @@ throwforce = 0 w_class = WEIGHT_CLASS_SMALL gender = PLURAL - throw_speed = 3 throw_range = 5 attack_verb_continuous = list("connects") attack_verb_simple = list("connect") diff --git a/code/modules/mining/equipment/lazarus_injector.dm b/code/modules/mining/equipment/lazarus_injector.dm index 3f0a92662f72..1f408573aa62 100644 --- a/code/modules/mining/equipment/lazarus_injector.dm +++ b/code/modules/mining/equipment/lazarus_injector.dm @@ -16,7 +16,6 @@ righthand_file = 'icons/mob/inhands/equipment/medical_righthand.dmi' throwforce = 0 w_class = WEIGHT_CLASS_SMALL - throw_speed = 3 throw_range = 5 ///Can this still be used? var/loaded = TRUE diff --git a/code/modules/mining/equipment/wormhole_jaunter.dm b/code/modules/mining/equipment/wormhole_jaunter.dm index 8d1ca27b8065..65198988b196 100644 --- a/code/modules/mining/equipment/wormhole_jaunter.dm +++ b/code/modules/mining/equipment/wormhole_jaunter.dm @@ -10,7 +10,6 @@ righthand_file = 'icons/mob/inhands/misc/devices_righthand.dmi' throwforce = 0 w_class = WEIGHT_CLASS_SMALL - throw_speed = 3 throw_range = 5 slot_flags = ITEM_SLOT_BELT diff --git a/code/modules/mob/inventory.dm b/code/modules/mob/inventory.dm index 02a7fab85f47..a17cfa13fe14 100644 --- a/code/modules/mob/inventory.dm +++ b/code/modules/mob/inventory.dm @@ -309,26 +309,34 @@ * * Will pass FALSE if the item can not be dropped due to TRAIT_NODROP via tryUnequipItem() * 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) +/mob/proc/dropItemToGround(obj/item/I, force = FALSE, silent = FALSE, invdrop = TRUE, animate = TRUE) . = tryUnequipItem(I, force, drop_location(), FALSE, invdrop = invdrop, silent = silent) if(!. || !I) //ensure the item exists and that it was dropped properly. return + if(!(I.item_flags & NO_PIXEL_RANDOM_DROP)) I.pixel_x = I.base_pixel_x + rand(-6, 6) I.pixel_y = I.base_pixel_y + rand(-6, 6) - I.do_drop_animation(src) + + if(animate) + I.do_drop_animation(src) //for when the item will be immediately placed in a loc other than the ground. Supports shifting the item's x and y from click modifiers. -/mob/proc/transferItemToLoc(obj/item/I, newloc = null, force = FALSE, silent = TRUE, list/user_click_modifiers) +/mob/proc/transferItemToLoc(obj/item/I, newloc = null, force = FALSE, silent = TRUE, list/user_click_modifiers, animate = TRUE) . = tryUnequipItem(I, force, newloc, FALSE, silent = silent) - if(. && user_click_modifiers) + if(!.) + return + + if(user_click_modifiers) //Center the icon where the user clicked. if(!LAZYACCESS(user_click_modifiers, ICON_X) || !LAZYACCESS(user_click_modifiers, ICON_Y)) return //Clamp it so that the icon never moves more than 16 pixels in either direction (thus leaving the location) I.pixel_x = clamp(text2num(LAZYACCESS(user_click_modifiers, ICON_X)) - 16, -(world.icon_size/2), world.icon_size/2) I.pixel_y = clamp(text2num(LAZYACCESS(user_click_modifiers, ICON_Y)) - 16, -(world.icon_size/2), world.icon_size/2) - I.do_drop_animation(src) + + if(animate) + I.do_drop_animation(src) //visibly unequips I but it is NOT MOVED AND REMAINS IN SRC //item MUST BE FORCEMOVE'D OR QDEL'D diff --git a/code/modules/mob/living/brain/brain_item.dm b/code/modules/mob/living/brain/brain_item.dm index e3334b8f5b81..bc070e60ccd8 100644 --- a/code/modules/mob/living/brain/brain_item.dm +++ b/code/modules/mob/living/brain/brain_item.dm @@ -8,7 +8,6 @@ visual = TRUE color_source = ORGAN_COLOR_STATIC draw_color = null - throw_speed = 3 throw_range = 5 layer = ABOVE_MOB_LAYER zone = BODY_ZONE_HEAD diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm index a603ff460fb7..ddc708472043 100644 --- a/code/modules/mob/living/carbon/carbon.dm +++ b/code/modules/mob/living/carbon/carbon.dm @@ -236,20 +236,26 @@ changeNext_move(CLICK_CD_BREAKOUT) last_special = world.time + CLICK_CD_BREAKOUT var/buckle_cd = 60 SECONDS + if(handcuffed) var/obj/item/restraints/O = src.get_item_by_slot(ITEM_SLOT_HANDCUFFED) buckle_cd = O.breakouttime - visible_message(span_warning("[src] attempts to unbuckle [p_them()]self!"), \ - span_notice("You attempt to unbuckle yourself... (This will take around [round(buckle_cd/600,1)] minute\s, and you need to stay still.)")) + + visible_message( + span_warning("[src] attempts to unbuckle [p_them()]self!"), + span_notice("You attempt to unbuckle yourself... (This will take around [round(buckle_cd/600,1)] minute\s, and you need to stay still.)") + + ) + if(do_after(src, src, buckle_cd, timed_action_flags = IGNORE_HELD_ITEM)) if(!buckled) return - buckled.user_unbuckle_mob(src,src) + return !!buckled.user_unbuckle_mob(src,src) else if(src && buckled) to_chat(src, span_warning("You fail to unbuckle yourself!")) else - buckled.user_unbuckle_mob(src,src) + return !!buckled.user_unbuckle_mob(src,src) /mob/living/carbon/resist_fire() adjust_fire_stacks(-5) @@ -1438,7 +1444,7 @@ return FALSE return TRUE -/mob/living/carbon/dropItemToGround(obj/item/I, force, silent, invdrop) +/mob/living/carbon/dropItemToGround(obj/item/I, force, silent, invdrop, animate = TRUE) if(I && HAS_TRAIT(I, TRAIT_INSIDE_BODY)) stack_trace("Something tried to drop an organ or bodypart that isn't allowed to be dropped") return FALSE diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index 908dc994d654..7a62a6cb1d2a 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -938,8 +938,9 @@ if(!G.handle_resist()) . = FALSE +/// Attempt to break out of a buckle. Returns TRUE if successful. /mob/living/proc/resist_buckle() - buckled.user_unbuckle_mob(src,src) + return !!buckled.user_unbuckle_mob(src,src) /mob/living/proc/resist_fire() return diff --git a/code/modules/mob/living/simple_animal/bot/construction.dm b/code/modules/mob/living/simple_animal/bot/construction.dm index f8721160400d..08df95ab0dd5 100644 --- a/code/modules/mob/living/simple_animal/bot/construction.dm +++ b/code/modules/mob/living/simple_animal/bot/construction.dm @@ -4,7 +4,6 @@ icon = 'icons/mob/aibots.dmi' w_class = WEIGHT_CLASS_NORMAL force = 3 - throw_speed = 2 throw_range = 5 var/created_name var/build_step = ASSEMBLY_FIRST_STEP diff --git a/code/modules/paperwork/clipboard.dm b/code/modules/paperwork/clipboard.dm index e837d35907ba..1c5850b13c0a 100644 --- a/code/modules/paperwork/clipboard.dm +++ b/code/modules/paperwork/clipboard.dm @@ -9,7 +9,6 @@ worn_icon_state = "clipboard" throwforce = 0 w_class = WEIGHT_CLASS_SMALL - throw_speed = 3 throw_range = 7 slot_flags = ITEM_SLOT_BELT resistance_flags = FLAMMABLE diff --git a/code/modules/paperwork/contract.dm b/code/modules/paperwork/contract.dm index ed354c72772a..b7f9788d1daa 100644 --- a/code/modules/paperwork/contract.dm +++ b/code/modules/paperwork/contract.dm @@ -3,7 +3,6 @@ /obj/item/paper/employment_contract icon_state = "paper_words" throw_range = 3 - throw_speed = 3 item_flags = NOBLUDGEON var/employee_name = "" diff --git a/code/modules/paperwork/paper.dm b/code/modules/paperwork/paper.dm index b908cf0b0b88..27c8fe8395fd 100644 --- a/code/modules/paperwork/paper.dm +++ b/code/modules/paperwork/paper.dm @@ -26,7 +26,7 @@ throwforce = 0 w_class = WEIGHT_CLASS_TINY throw_range = 1 - throw_speed = 1 + throw_speed = 0.7 stamina_cost = 0 stamina_damage = 0 diff --git a/code/modules/paperwork/paperbin.dm b/code/modules/paperwork/paperbin.dm index a18345157f78..63cc13ffbf0a 100644 --- a/code/modules/paperwork/paperbin.dm +++ b/code/modules/paperwork/paperbin.dm @@ -10,8 +10,9 @@ righthand_file = 'icons/mob/inhands/misc/sheets_righthand.dmi' throwforce = 0 w_class = WEIGHT_CLASS_NORMAL - throw_speed = 3 + throw_range = 7 + //pressure_resistance = 8 var/papertype = /obj/item/paper var/total_paper = 30 diff --git a/code/modules/paperwork/paperplane.dm b/code/modules/paperwork/paperplane.dm index cf3bd7facb2b..10433ce4b1a7 100644 --- a/code/modules/paperwork/paperplane.dm +++ b/code/modules/paperwork/paperplane.dm @@ -5,7 +5,7 @@ icon_state = "paperplane" custom_fire_overlay = "paperplane_onfire" throw_range = 7 - throw_speed = 1 + throw_speed = 0.5 throwforce = 0 w_class = WEIGHT_CLASS_TINY resistance_flags = FLAMMABLE diff --git a/code/modules/paperwork/pen.dm b/code/modules/paperwork/pen.dm index fe286b018a4a..e861a8087fae 100644 --- a/code/modules/paperwork/pen.dm +++ b/code/modules/paperwork/pen.dm @@ -21,7 +21,7 @@ throwforce = 0 w_class = WEIGHT_CLASS_TINY - throw_speed = 3 + throw_speed = 1.5 throw_range = 7 stamina_damage = 0 stamina_cost = 0 @@ -49,7 +49,7 @@ desc = "It's a normal red ink pen." icon_state = "pen_red" colour = "#FF0000" - throw_speed = 4 // red ones go faster (in this case, fast enough to embed!) + throw_speed = 2 // red ones go faster (in this case, fast enough to embed!) /obj/item/pen/invisible desc = "It's an invisible pen marker." @@ -110,7 +110,7 @@ icon_state = "pen-fountain-o" force = 5 throwforce = 5 - throw_speed = 4 + throw_speed = 1.5 colour = "#DC143C" custom_materials = list(/datum/material/gold = 750) sharpness = SHARP_EDGED diff --git a/code/modules/paperwork/stamps.dm b/code/modules/paperwork/stamps.dm index 837eb0e72424..a4758b7b3415 100644 --- a/code/modules/paperwork/stamps.dm +++ b/code/modules/paperwork/stamps.dm @@ -6,7 +6,7 @@ inhand_icon_state = "stamp" throwforce = 0 w_class = WEIGHT_CLASS_TINY - throw_speed = 3 + throw_speed = 0.6 throw_range = 7 custom_materials = list(/datum/material/iron=60) //pressure_resistance = 2 diff --git a/code/modules/power/cable.dm b/code/modules/power/cable.dm index d87ba43e885a..208b696c086a 100644 --- a/code/modules/power/cable.dm +++ b/code/modules/power/cable.dm @@ -422,8 +422,8 @@ throwforce = 0 w_class = WEIGHT_CLASS_SMALL - throw_speed = 3 throw_range = 5 + stamina_damage = 5 stamina_cost = 5 stamina_critical_chance = 10 diff --git a/code/modules/power/cell.dm b/code/modules/power/cell.dm index 0a2deab68067..5145745a9d5b 100644 --- a/code/modules/power/cell.dm +++ b/code/modules/power/cell.dm @@ -17,7 +17,6 @@ righthand_file = 'icons/mob/inhands/misc/devices_righthand.dmi' force = 5 throwforce = 5 - throw_speed = 2 throw_range = 5 w_class = WEIGHT_CLASS_SMALL ///Current charge in cell units diff --git a/code/modules/projectiles/boxes_magazines/_box_magazine.dm b/code/modules/projectiles/boxes_magazines/_box_magazine.dm index 077d9ebd8aa5..ea75feed7a3f 100644 --- a/code/modules/projectiles/boxes_magazines/_box_magazine.dm +++ b/code/modules/projectiles/boxes_magazines/_box_magazine.dm @@ -12,7 +12,6 @@ custom_materials = list(/datum/material/iron = 30000) throwforce = 2 w_class = WEIGHT_CLASS_TINY - throw_speed = 3 throw_range = 7 override_notes = TRUE diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm index bce8aa6b0199..8f87352091bf 100644 --- a/code/modules/projectiles/gun.dm +++ b/code/modules/projectiles/gun.dm @@ -33,7 +33,6 @@ w_class = WEIGHT_CLASS_NORMAL throwforce = 5 - throw_speed = 3 throw_range = 5 force = 5 diff --git a/code/modules/projectiles/guns/special/chem_gun.dm b/code/modules/projectiles/guns/special/chem_gun.dm index 16a26f734930..dc9ada112f6b 100644 --- a/code/modules/projectiles/guns/special/chem_gun.dm +++ b/code/modules/projectiles/guns/special/chem_gun.dm @@ -6,7 +6,6 @@ icon_state = "chemgun" inhand_icon_state = "chemgun" w_class = WEIGHT_CLASS_NORMAL - throw_speed = 3 throw_range = 7 force = 4 custom_materials = list(/datum/material/iron=2000) diff --git a/code/modules/projectiles/guns/special/grenade_launcher.dm b/code/modules/projectiles/guns/special/grenade_launcher.dm index f7264f8f0cee..df5723997388 100644 --- a/code/modules/projectiles/guns/special/grenade_launcher.dm +++ b/code/modules/projectiles/guns/special/grenade_launcher.dm @@ -5,7 +5,6 @@ icon_state = "riotgun" inhand_icon_state = "riotgun" w_class = WEIGHT_CLASS_BULKY - throw_speed = 2 throw_range = 7 force = 5 var/list/grenades = new/list() diff --git a/code/modules/projectiles/guns/special/syringe_gun.dm b/code/modules/projectiles/guns/special/syringe_gun.dm index dc6b5d8638f6..a2b1e32d4a88 100644 --- a/code/modules/projectiles/guns/special/syringe_gun.dm +++ b/code/modules/projectiles/guns/special/syringe_gun.dm @@ -11,7 +11,6 @@ worn_icon_state = null w_class = WEIGHT_CLASS_BULKY slot_flags = ITEM_SLOT_BACK - throw_speed = 3 throw_range = 7 force = 6 base_pixel_x = -4 diff --git a/code/modules/projectiles/guns/special/tranq_rifle.dm b/code/modules/projectiles/guns/special/tranq_rifle.dm index d0a79a900eaf..5dd67b2af53a 100644 --- a/code/modules/projectiles/guns/special/tranq_rifle.dm +++ b/code/modules/projectiles/guns/special/tranq_rifle.dm @@ -8,7 +8,6 @@ inhand_icon_state = "hunting_rifle" w_class = WEIGHT_CLASS_BULKY slot_flags = null - throw_speed = 3 throw_range = 7 force = 6 custom_materials = list(/datum/material/iron=2000) diff --git a/code/modules/reagents/reagent_containers/medigel.dm b/code/modules/reagents/reagent_containers/medigel.dm index 0e920cadc0e3..1656e8557688 100644 --- a/code/modules/reagents/reagent_containers/medigel.dm +++ b/code/modules/reagents/reagent_containers/medigel.dm @@ -13,7 +13,6 @@ slot_flags = ITEM_SLOT_BELT throwforce = 0 w_class = WEIGHT_CLASS_SMALL - throw_speed = 3 throw_range = 7 amount_per_transfer_from_this = 10 possible_transfer_amounts = list(5,10) diff --git a/code/modules/reagents/reagent_containers/spray.dm b/code/modules/reagents/reagent_containers/spray.dm index 77ddf7960e86..30702824f0ba 100644 --- a/code/modules/reagents/reagent_containers/spray.dm +++ b/code/modules/reagents/reagent_containers/spray.dm @@ -12,7 +12,6 @@ slot_flags = ITEM_SLOT_BELT throwforce = 0 w_class = WEIGHT_CLASS_SMALL - throw_speed = 3 throw_range = 7 var/stream_mode = FALSE //whether we use the more focused mode var/current_range = 3 //the range of tiles the sprayer will reach. diff --git a/code/modules/religion/sparring/sparring_contract.dm b/code/modules/religion/sparring/sparring_contract.dm index 6c37f0cac2e7..6deea262aad1 100644 --- a/code/modules/religion/sparring/sparring_contract.dm +++ b/code/modules/religion/sparring/sparring_contract.dm @@ -5,7 +5,6 @@ drop_sound = 'sound/items/handling/paper_drop.ogg' pickup_sound = 'sound/items/handling/paper_pickup.ogg' throw_range = 1 - throw_speed = 1 w_class = WEIGHT_CLASS_TINY ///what weapons will be allowed during the sparring match var/weapons_condition = CONDITION_MELEE_ONLY diff --git a/code/modules/research/xenobiology/crossbreeding/__corecross.dm b/code/modules/research/xenobiology/crossbreeding/__corecross.dm index 348c66d2d5d3..6634b8a1b571 100644 --- a/code/modules/research/xenobiology/crossbreeding/__corecross.dm +++ b/code/modules/research/xenobiology/crossbreeding/__corecross.dm @@ -34,8 +34,8 @@ To add a crossbreed: var/effect_desc = "null" force = 0 w_class = WEIGHT_CLASS_TINY + throwforce = 0 - throw_speed = 3 throw_range = 6 /obj/item/slimecross/examine(mob/user) diff --git a/code/modules/research/xenobiology/crossbreeding/_clothing.dm b/code/modules/research/xenobiology/crossbreeding/_clothing.dm index 5051bc294450..42cad8431347 100644 --- a/code/modules/research/xenobiology/crossbreeding/_clothing.dm +++ b/code/modules/research/xenobiology/crossbreeding/_clothing.dm @@ -107,6 +107,7 @@ Slimecrossing Armor w_class = WEIGHT_CLASS_TINY throw_speed = 1 throw_range = 3 + /obj/item/clothing/head/peaceflower/proc/at_peace_check(mob/user) if(iscarbon(user)) var/mob/living/carbon/carbon_user = user diff --git a/code/modules/research/xenobiology/crossbreeding/consuming.dm b/code/modules/research/xenobiology/crossbreeding/consuming.dm index 1821914c6dcf..18b6d2f43e07 100644 --- a/code/modules/research/xenobiology/crossbreeding/consuming.dm +++ b/code/modules/research/xenobiology/crossbreeding/consuming.dm @@ -53,7 +53,7 @@ Consuming extracts: force = 0 w_class = WEIGHT_CLASS_TINY throwforce = 0 - throw_speed = 3 + throw_speed = 1.5 throw_range = 6 /obj/item/slime_cookie/proc/do_effect(mob/living/M, mob/user) diff --git a/code/modules/research/xenobiology/xenobiology.dm b/code/modules/research/xenobiology/xenobiology.dm index b477e467cb0c..4c8d319480c8 100644 --- a/code/modules/research/xenobiology/xenobiology.dm +++ b/code/modules/research/xenobiology/xenobiology.dm @@ -8,7 +8,6 @@ force = 0 w_class = WEIGHT_CLASS_TINY throwforce = 0 - throw_speed = 3 throw_range = 6 grind_results = list() var/Uses = 1 ///uses before it goes inert @@ -963,7 +962,6 @@ force = 6 mats_per_unit = list(/datum/material/iron=500) throwforce = 10 - throw_speed = 3 throw_range = 7 flags_1 = CONDUCT_1 max_amount = 60 diff --git a/code/modules/surgery/tools.dm b/code/modules/surgery/tools.dm index 855fe1623536..a80cfb39f854 100644 --- a/code/modules/surgery/tools.dm +++ b/code/modules/surgery/tools.dm @@ -154,7 +154,7 @@ force = 10 throwforce = 5 - throw_speed = 3 + throw_speed = 1.5 throw_range = 5 stamina_damage = 5 stamina_cost = 5 @@ -197,7 +197,6 @@ force = 15 w_class = WEIGHT_CLASS_NORMAL throwforce = 9 - throw_speed = 2 throw_range = 5 stamina_damage = 5 stamina_cost = 5 @@ -314,7 +313,6 @@ force = 12 w_class = WEIGHT_CLASS_NORMAL throwforce = 6 - throw_speed = 2 throw_range = 5 custom_materials = list(/datum/material/iron=8000, /datum/material/titanium=6000) attack_verb_continuous = list("shears", "snips") diff --git a/code/modules/uplink/uplink_devices.dm b/code/modules/uplink/uplink_devices.dm index 1c0a980dc488..f7d8694a574f 100644 --- a/code/modules/uplink/uplink_devices.dm +++ b/code/modules/uplink/uplink_devices.dm @@ -16,7 +16,6 @@ flags_1 = CONDUCT_1 slot_flags = ITEM_SLOT_BELT - throw_speed = 3 throw_range = 7 w_class = WEIGHT_CLASS_SMALL diff --git a/code/modules/vehicles/mecha/mecha_parts.dm b/code/modules/vehicles/mecha/mecha_parts.dm index 9950e78311bd..60a6837bb8e9 100644 --- a/code/modules/vehicles/mecha/mecha_parts.dm +++ b/code/modules/vehicles/mecha/mecha_parts.dm @@ -344,8 +344,8 @@ flags_1 = CONDUCT_1 force = 5 w_class = WEIGHT_CLASS_SMALL + throwforce = 0 - throw_speed = 3 throw_range = 7 /obj/item/circuitboard/mecha/ripley/peripherals diff --git a/modular_pariah/modules/hyposprays/code/hypospray_kits.dm b/modular_pariah/modules/hyposprays/code/hypospray_kits.dm index d94586b9d4bd..4254b7d27063 100644 --- a/modular_pariah/modules/hyposprays/code/hypospray_kits.dm +++ b/modular_pariah/modules/hyposprays/code/hypospray_kits.dm @@ -6,8 +6,8 @@ lefthand_file = 'icons/mob/inhands/equipment/medical_lefthand.dmi' righthand_file = 'icons/mob/inhands/equipment/medical_righthand.dmi' slot_flags = ITEM_SLOT_BELT - throw_speed = 3 throw_range = 7 + var/empty = FALSE var/current_case = "firstaid" var/static/list/case_designs