diff --git a/code/__DEFINES/combat.dm b/code/__DEFINES/combat.dm index a121e87c9a282..acdcd16740e5d 100644 --- a/code/__DEFINES/combat.dm +++ b/code/__DEFINES/combat.dm @@ -243,9 +243,10 @@ GLOBAL_LIST_INIT(shove_disarming_types, typecacheof(list( #define BLOCKING_HUNTER (1<<3) //is the item more suited to fighting fauna? // Object/Item sharpness -#define IS_BLUNT 0 -#define IS_SHARP 1 -#define IS_SHARP_ACCURATE 2 +#define BLUNT 0 //Can only remove limbs if they're easy to remove +#define SHARP 1 //Can only remove limbs if target is dead +#define SHARP_DISMEMBER 2 //Can only remove limbs if the limb is already disabled +#define SHARP_DISMEMBER_EASY 3 //Has a chance equal to weapon force to remove limb on every attack, in some cases taking them off in one swing //! ### His Grace. #define HIS_GRACE_SATIATED 0 //! He hungers not. If bloodthirst is set to this, His Grace is asleep. diff --git a/code/game/gamemodes/clown_ops/clown_weapons.dm b/code/game/gamemodes/clown_ops/clown_weapons.dm index 0c7162fe13824..03847bff295ef 100644 --- a/code/game/gamemodes/clown_ops/clown_weapons.dm +++ b/code/game/gamemodes/clown_ops/clown_weapons.dm @@ -97,7 +97,7 @@ hitsound = null attack_verb_on = list("slips") clumsy_check = FALSE - sharpness = IS_BLUNT + sharpness = BLUNT sword_color = "yellow" heat = 0 light_color = "#ffff00" diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index efe12677ab434..4dd99c7600c4c 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -156,8 +156,8 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE) var/flags_cover = 0 /// Used to define how hot it's flame will be when lit. Used it igniters, lighters, flares, candles, etc. var/heat = 0 - /// IS_BLUNT | IS_SHARP | IS_SHARP_ACCURATE Used to define whether the item is sharp or blunt. IS_SHARP is used if the item is supposed to be able to cut open things. See _DEFINES/combat.dm - var/sharpness = IS_BLUNT + /// BLUNT | SHARP | SHARP_DISMEMBER | SHARP_DISMEMBER_EASY Used to define whether the item is sharp or blunt. SHARP is used if the item is supposed to be able to cut open things. See _DEFINES/combat.dm + var/sharpness = BLUNT //this multiplies an attacks force for secondary effects like attacking blocking implements, dismemberment, and knocking a target silly var/attack_weight = 1 diff --git a/code/game/objects/items/chainsaw.dm b/code/game/objects/items/chainsaw.dm index cc09f01d685c7..435f1c3d5367f 100644 --- a/code/game/objects/items/chainsaw.dm +++ b/code/game/objects/items/chainsaw.dm @@ -20,7 +20,7 @@ attack_verb_continuous = list("saws", "tears", "lacerates", "cuts", "chops", "dices") attack_verb_simple = list("saw", "tear", "lacerate", "cut", "chop", "dice") hitsound = "swing_hit" - sharpness = IS_SHARP + sharpness = SHARP_DISMEMBER bleed_force = BLEED_DEEP_WOUND actions_types = list(/datum/action/item_action/startchainsaw) var/on = FALSE diff --git a/code/game/objects/items/cosmetics.dm b/code/game/objects/items/cosmetics.dm index e91135a8c7db1..224a384e86fb4 100644 --- a/code/game/objects/items/cosmetics.dm +++ b/code/game/objects/items/cosmetics.dm @@ -277,7 +277,7 @@ attack_verb_continuous = list("slashes", "stabs", "slices", "tears", "lacerates", "rips", "dices", "cuts") attack_verb_simple = list("slash", "stab", "slice", "tear", "lacerate", "rip", "dice", "cut") hitsound = 'sound/weapons/bladeslice.ogg' - sharpness = IS_SHARP + sharpness = SHARP bleed_force = BLEED_SURFACE tool_behaviour = TOOL_SCALPEL else @@ -288,7 +288,7 @@ attack_verb_continuous = list("stubs", "pokes") attack_verb_simple = list("stub", "poke") hitsound = 'sound/weapons/genhit.ogg' - sharpness = IS_BLUNT + sharpness = BLUNT bleed_force = 0 tool_behaviour = null diff --git a/code/game/objects/items/dualsaber.dm b/code/game/objects/items/dualsaber.dm index 0fcd562b8a1cb..cb56d0baa3997 100644 --- a/code/game/objects/items/dualsaber.dm +++ b/code/game/objects/items/dualsaber.dm @@ -76,7 +76,7 @@ if(user.dna.check_mutation(HULK)) to_chat(user, "You lack the grace to wield this!") return COMPONENT_TWOHANDED_BLOCK_WIELD - sharpness = IS_SHARP + sharpness = SHARP_DISMEMBER_EASY bleed_force = BLEED_DEEP_WOUND w_class = w_class_on hitsound = 'sound/weapons/blade1.ogg' diff --git a/code/game/objects/items/fireaxe.dm b/code/game/objects/items/fireaxe.dm index 081497c40a02c..6065ccb0e7db7 100644 --- a/code/game/objects/items/fireaxe.dm +++ b/code/game/objects/items/fireaxe.dm @@ -15,7 +15,7 @@ attack_verb_continuous = list("attacks", "chops", "cleaves", "tears", "lacerates", "cuts") attack_verb_simple = list("attack", "chop", "cleave", "tear", "lacerate", "cut") hitsound = 'sound/weapons/bladeslice.ogg' - sharpness = IS_SHARP + sharpness = SHARP_DISMEMBER bleed_force = BLEED_CUT max_integrity = 200 armor_type = /datum/armor/item_fireaxe diff --git a/code/game/objects/items/holy_weapons.dm b/code/game/objects/items/holy_weapons.dm index 718e93d430268..069d69a13b772 100644 --- a/code/game/objects/items/holy_weapons.dm +++ b/code/game/objects/items/holy_weapons.dm @@ -333,7 +333,7 @@ block_flags = BLOCKING_NASTY | BLOCKING_ACTIVE block_level = 1 block_power = 30 - sharpness = IS_SHARP + sharpness = SHARP_DISMEMBER bleed_force = BLEED_CUT hitsound = 'sound/weapons/bladeslice.ogg' attack_verb_continuous = list("attacks", "slashes", "stabs", "slices", "tears", "lacerates", "rips", "dices", "cuts") @@ -456,7 +456,7 @@ block_power = 15 block_flags = BLOCKING_ACTIVE | BLOCKING_NASTY slot_flags = ITEM_SLOT_BACK - sharpness = IS_SHARP + sharpness = SHARP_DISMEMBER bleed_force = BLEED_CUT attack_verb_continuous = list("chops", "slices", "cuts", "reaps") attack_verb_simple = list("chop", "slice", "cut", "reap") @@ -579,7 +579,7 @@ righthand_file = 'icons/mob/inhands/weapons/chainsaw_righthand.dmi' w_class = WEIGHT_CLASS_HUGE item_flags = ABSTRACT | ISWEAPON - sharpness = IS_SHARP + sharpness = SHARP_DISMEMBER bleed_force = BLEED_CUT attack_verb_continuous = list("saws", "tears", "lacerates", "cuts", "chops", "dices") attack_verb_simple = list("saw", "tear", "lacerate", "cut", "chop", "dice") @@ -605,7 +605,7 @@ righthand_file = 'icons/mob/inhands/weapons/swords_righthand.dmi' worn_icon_state = "render" hitsound = 'sound/items/bikehorn.ogg' - sharpness = IS_SHARP + sharpness = SHARP bleed_force = BLEED_CUT attack_verb_continuous = list("attacks", "slashes", "stabs", "slices", "tears", "lacerates", "rips", "dices", "cuts") attack_verb_simple = list("attack", "slash", "stab", "slice", "tear", "lacerate", "rip", "dice", "cut") @@ -659,7 +659,7 @@ throw_speed = 4 throw_range = 7 throwforce = 30 - sharpness = IS_SHARP + sharpness = SHARP bleed_force = BLEED_CUT attack_verb_continuous = list("enlightens", "redpills") attack_verb_simple = list("enlighten", "redpill") @@ -675,7 +675,7 @@ slot_flags = null item_flags = ABSTRACT | ISWEAPON w_class = WEIGHT_CLASS_HUGE - sharpness = IS_SHARP + sharpness = SHARP_DISMEMBER bleed_force = BLEED_CUT /obj/item/nullrod/armblade/Initialize(mapload) @@ -718,7 +718,7 @@ force = 14 block_power = 40 slot_flags = ITEM_SLOT_BACK - sharpness = IS_BLUNT + sharpness = BLUNT hitsound = "swing_hit" attack_verb_continuous = list("smashes", "slams", "whacks", "thwacks") attack_verb_simple = list("smash", "slam", "whack", "thwack") @@ -737,7 +737,7 @@ lefthand_file = 'icons/mob/inhands/weapons/swords_lefthand.dmi' righthand_file = 'icons/mob/inhands/weapons/swords_righthand.dmi' w_class = WEIGHT_CLASS_HUGE - sharpness = IS_SHARP + sharpness = SHARP bleed_force = BLEED_CUT slot_flags = null hitsound = 'sound/weapons/bladeslice.ogg' @@ -773,7 +773,7 @@ attack_verb_continuous = list("pokes", "impales", "pierces", "jabs") attack_verb_simple = list("poke", "impale", "pierce", "jab") hitsound = 'sound/weapons/bladeslice.ogg' - sharpness = IS_SHARP + sharpness = SHARP bleed_force = BLEED_CUT /obj/item/nullrod/egyptian @@ -816,7 +816,7 @@ icon = 'icons/obj/clockwork_objects.dmi' slot_flags = ITEM_SLOT_BELT armour_penetration = 10 - sharpness = IS_SHARP_ACCURATE + sharpness = SHARP bleed_force = BLEED_CUT w_class = WEIGHT_CLASS_BULKY attack_verb_continuous = list("stabs", "pokes", "slashes", "clocks") @@ -836,7 +836,7 @@ throw_speed = 3 throw_range = 6 tool_behaviour = TOOL_KNIFE - sharpness = IS_SHARP_ACCURATE + sharpness = SHARP w_class = WEIGHT_CLASS_SMALL /obj/item/nullrod/rainbow_knife/afterattack(atom/O, mob/user, proximity) diff --git a/code/game/objects/items/knives.dm b/code/game/objects/items/knives.dm index e32c8392d430b..876717738cd7c 100644 --- a/code/game/objects/items/knives.dm +++ b/code/game/objects/items/knives.dm @@ -18,7 +18,7 @@ custom_materials = list(/datum/material/iron=12000) attack_verb_continuous = list("slashes", "stabs", "slices", "tears", "lacerates", "rips", "dices", "cuts") attack_verb_simple = list("slash", "stab", "slice", "tear", "lacerate", "rip", "dice", "cut") - sharpness = IS_SHARP_ACCURATE + sharpness = SHARP bleed_force = BLEED_CUT armor_type = /datum/armor/item_knife var/bayonet = FALSE //Can this be attached to a gun? @@ -76,6 +76,7 @@ attack_verb_simple = list("cleave", "slash", "stab", "slice", "tear", "lacerate", "rip", "dice", "cut") w_class = WEIGHT_CLASS_NORMAL custom_price = 60 + sharpness = SHARP_DISMEMBER //This is a big boy knife /obj/item/knife/hunting name = "hunting knife" diff --git a/code/game/objects/items/melee/energy.dm b/code/game/objects/items/melee/energy.dm index fba93468ceda5..0ac6ea85e83c9 100644 --- a/code/game/objects/items/melee/energy.dm +++ b/code/game/objects/items/melee/energy.dm @@ -106,7 +106,7 @@ attack_verb_off = list("taps", "pokes") throw_speed = 3 throw_range = 5 - sharpness = IS_SHARP + sharpness = SHARP_DISMEMBER_EASY bleed_force_on = BLEED_DEEP_WOUND embedding = list("embed_chance" = 200, "armour_block" = 60, "max_pain_mult" = 15) armour_penetration = 35 @@ -139,7 +139,7 @@ righthand_file = 'icons/mob/inhands/equipment/medical_righthand.dmi' sword_color = null //stops icon from breaking when turned on. w_class = WEIGHT_CLASS_NORMAL - sharpness = IS_SHARP + sharpness = SHARP_DISMEMBER_EASY bleed_force_on = BLEED_DEEP_WOUND light_color = "#40ceff" tool_behaviour = TOOL_SAW @@ -170,7 +170,7 @@ sword_color = null //stops icon from breaking when turned on. hitcost = 75 //Costs more than a standard cyborg esword w_class = WEIGHT_CLASS_NORMAL - sharpness = IS_SHARP + sharpness = SHARP_DISMEMBER_EASY bleed_force_on = BLEED_DEEP_WOUND light_color = "#40ceff" tool_behaviour = TOOL_SAW @@ -268,7 +268,7 @@ throw_range = 1 w_class = WEIGHT_CLASS_BULKY//So you can't hide it in your pocket or some such. var/datum/effect_system/spark_spread/spark_system - sharpness = IS_SHARP + sharpness = SHARP_DISMEMBER_EASY bleed_force_on = BLEED_DEEP_WOUND //Most of the other special functions are handled in their own files. aka special snowflake code so kewl diff --git a/code/game/objects/items/melee/misc.dm b/code/game/objects/items/melee/misc.dm index b401ff08a3600..cc021a15a5600 100644 --- a/code/game/objects/items/melee/misc.dm +++ b/code/game/objects/items/melee/misc.dm @@ -46,7 +46,7 @@ hitsound = 'sound/weapons/bladeslice.ogg' attack_verb_continuous = list("attacks", "slashes", "stabs", "slices", "tears", "lacerates", "rips", "dices", "cuts") attack_verb_simple = list("attack", "slash", "stab", "slice", "tear", "lacerate", "rip", "dice", "cut") - sharpness = IS_SHARP + sharpness = SHARP_DISMEMBER bleed_force = BLEED_CUT /obj/item/melee/synthetic_arm_blade/Initialize(mapload) @@ -70,7 +70,7 @@ throwforce = 10 w_class = WEIGHT_CLASS_BULKY armour_penetration = 75 - sharpness = IS_SHARP + sharpness = SHARP_DISMEMBER bleed_force = BLEED_CUT attack_verb_continuous = list("slashes", "cuts") attack_verb_simple = list("slash", "cut") diff --git a/code/game/objects/items/melee/transforming.dm b/code/game/objects/items/melee/transforming.dm index a556f326681e2..0177c4b2187ae 100644 --- a/code/game/objects/items/melee/transforming.dm +++ b/code/game/objects/items/melee/transforming.dm @@ -1,5 +1,5 @@ /obj/item/melee/transforming - sharpness = IS_SHARP + sharpness = SHARP_DISMEMBER bleed_force = 0 var/active = FALSE var/force_on = 30 //force when active diff --git a/code/game/objects/items/mop.dm b/code/game/objects/items/mop.dm index 25dc5d1e95467..20e9a34d9feab 100644 --- a/code/game/objects/items/mop.dm +++ b/code/game/objects/items/mop.dm @@ -125,6 +125,6 @@ throw_speed = 4 attack_verb_continuous = list("mops", "stabs", "shanks", "jousts") attack_verb_simple = list("mop", "stab", "shank", "joust") - sharpness = IS_SHARP + sharpness = SHARP bleed_force = BLEED_SURFACE embedding = list("armour_block" = 40) diff --git a/code/game/objects/items/pitchfork.dm b/code/game/objects/items/pitchfork.dm index a01c3933fd895..16c22402f9fc0 100644 --- a/code/game/objects/items/pitchfork.dm +++ b/code/game/objects/items/pitchfork.dm @@ -13,7 +13,7 @@ attack_verb_continuous = list("attacks", "impales", "pierces") attack_verb_simple = list("attack", "impale", "pierce") hitsound = 'sound/weapons/bladeslice.ogg' - sharpness = IS_SHARP + sharpness = SHARP bleed_force = BLEED_CUT max_integrity = 200 armor_type = /datum/armor/item_pitchfork diff --git a/code/game/objects/items/sharpener.dm b/code/game/objects/items/sharpener.dm index 3f7c68e07e163..6437ba060288c 100644 --- a/code/game/objects/items/sharpener.dm +++ b/code/game/objects/items/sharpener.dm @@ -8,7 +8,6 @@ var/increment = 4 var/max = 30 var/prefix = "sharpened" - var/requires_sharpness = 1 /obj/item/sharpener/attackby(obj/item/I, mob/user, params) @@ -18,7 +17,7 @@ if(I.force >= max || I.throwforce >= max)//no esword sharpening to_chat(user, "[I] is much too powerful to sharpen further!") return - if(requires_sharpness && !I.is_sharp()) + if(!I.is_sharp()) to_chat(user, "You can only sharpen items that are already sharp, such as knives!") return if(istype(I, /obj/item/melee/transforming/energy)) @@ -39,7 +38,6 @@ I.force = clamp(I.force + increment, 0, max) user.visible_message("[user] sharpens [I] with [src]!", "You sharpen [I], making it much more deadly than before.") playsound(src, 'sound/items/unsheath.ogg', 25, 1) - I.sharpness = IS_SHARP_ACCURATE I.bleed_force *= 1.1 I.throwforce = clamp(I.throwforce + increment, 0, max) I.name = "[prefix] [I.name]" @@ -54,4 +52,3 @@ increment = 200 max = 200 prefix = "super-sharpened" - requires_sharpness = 0 diff --git a/code/game/objects/items/shields.dm b/code/game/objects/items/shields.dm index 0b2fb887db7aa..61117ee21f763 100644 --- a/code/game/objects/items/shields.dm +++ b/code/game/objects/items/shields.dm @@ -104,7 +104,7 @@ transparent = TRUE /obj/item/shield/riot/attackby(obj/item/W, mob/user, params) - if(istype(W, /obj/item/melee) && W.sharpness == IS_BLUNT) + if(istype(W, /obj/item/melee) && W.sharpness == BLUNT) if(cooldown < world.time - 25) user.visible_message("[user] bashes [src] with [W]!") playsound(user.loc, 'sound/effects/shieldbash.ogg', 50, 1) diff --git a/code/game/objects/items/spear.dm b/code/game/objects/items/spear.dm index a75d2f6045b13..671d6bda2d008 100644 --- a/code/game/objects/items/spear.dm +++ b/code/game/objects/items/spear.dm @@ -18,7 +18,7 @@ hitsound = 'sound/weapons/bladeslice.ogg' attack_verb_continuous = list("attacks", "pokes", "jabs", "tears", "lacerates", "gores") attack_verb_simple = list("attack", "poke", "jab", "tear", "lacerate", "gore") - sharpness = IS_SHARP + sharpness = SHARP bleed_force = BLEED_CUT max_integrity = 200 armor_type = /datum/armor/item_spear @@ -201,7 +201,7 @@ CREATION_TEST_IGNORE_SUBTYPES(/obj/item/spear/explosive) hitsound = 'sound/weapons/bladeslice.ogg' attack_verb_continuous = list("attacks", "pokes", "jabs", "tears", "lacerates", "gores") attack_verb_simple = list("attack", "poke", "jab", "tear", "lacerate", "gore") - sharpness = IS_SHARP + sharpness = SHARP bleed_force = BLEED_CUT /obj/item/spear/bamboospear/ComponentInitialize() diff --git a/code/game/objects/items/stacks/sheets/mineral/glass.dm b/code/game/objects/items/stacks/sheets/mineral/glass.dm index 31f1fcac6b563..5ddfcea1fb57c 100644 --- a/code/game/objects/items/stacks/sheets/mineral/glass.dm +++ b/code/game/objects/items/stacks/sheets/mineral/glass.dm @@ -248,7 +248,7 @@ resistance_flags = ACID_PROOF armor_type = /datum/armor/item_shard max_integrity = 40 - sharpness = IS_SHARP + sharpness = SHARP bleed_force = BLEED_SURFACE var/icon_prefix embedding = list("embed_chance" = 65) diff --git a/code/game/objects/items/toys.dm b/code/game/objects/items/toys.dm index 0056cc7f57dd4..06f70b1690b1f 100644 --- a/code/game/objects/items/toys.dm +++ b/code/game/objects/items/toys.dm @@ -427,7 +427,7 @@ /obj/item/dualsaber/toy/on_wield(obj/item/source, mob/living/carbon/user) . = ..() - sharpness = IS_BLUNT + sharpness = BLUNT bleed_force = 0 /obj/item/dualsaber/toy/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK) @@ -459,7 +459,7 @@ hitsound = 'sound/weapons/bladeslice.ogg' block_flags = BLOCKING_ACTIVE | BLOCKING_PROJECTILE //if it some how gets block level, katanas block projectiles for the meme item_flags = ISWEAPON - sharpness = IS_SHARP + sharpness = SHARP bleed_force = BLEED_SURFACE /* @@ -1173,7 +1173,7 @@ card_throwforce = 12 card_throw_speed = 6 embedding = list("pain_mult" = 1, "embed_chance" = 80, "max_damage_mult" = 8, "fall_chance" = 0, "embed_chance_turf_mod" = 15, "armour_block" = 60) //less painful than throwing stars - card_sharpness = IS_SHARP + card_sharpness = SHARP bleed_force = BLEED_SURFACE card_throw_range = 7 card_attack_verb_continuous = list("attacks", "slices", "dices", "slashes", "cuts") diff --git a/code/game/objects/items/weaponry.dm b/code/game/objects/items/weaponry.dm index 51e6a94249423..e8c4a4d60cf00 100644 --- a/code/game/objects/items/weaponry.dm +++ b/code/game/objects/items/weaponry.dm @@ -89,7 +89,7 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301 block_upgrade_walk = 1 block_level = 1 block_flags = BLOCKING_ACTIVE | BLOCKING_NASTY - sharpness = IS_SHARP + sharpness = SHARP_DISMEMBER bleed_force = BLEED_DEEP_WOUND max_integrity = 200 armor_type = /datum/armor/item_claymore @@ -280,7 +280,7 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301 block_level = 1 block_upgrade_walk = 1 block_flags = BLOCKING_ACTIVE | BLOCKING_NASTY | BLOCKING_PROJECTILE - sharpness = IS_SHARP + sharpness = SHARP_DISMEMBER bleed_force = BLEED_DEEP_WOUND max_integrity = 200 armor_type = /datum/armor/item_katana @@ -357,7 +357,7 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301 w_class = WEIGHT_CLASS_SMALL item_flags = ISWEAPON hitsound = 'sound/weapons/bladeslice.ogg' - sharpness = IS_SHARP + sharpness = SHARP bleed_force = BLEED_CUT custom_materials = list(/datum/material/iron=500, /datum/material/glass=500) resistance_flags = FIRE_PROOF @@ -371,7 +371,7 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301 /obj/item/throwing_star/toy name = "toy throwing star" desc = "An aerodynamic disc strapped with adhesive for sticking to people, good for playing pranks and getting yourself killed by security." - sharpness = IS_BLUNT + sharpness = BLUNT force = 0 throwforce = 0 embedding = list("pain_mult" = 0, "jostle_pain_mult" = 0, "embed_chance" = 300, "fall_chance" = 25, "armour_block" = 70) @@ -424,7 +424,7 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301 attack_verb_continuous = list("slashes", "stabs", "slices", "tears", "lacerates", "rips", "dices", "cuts") attack_verb_simple = list("slash", "stab", "slice", "tear", "lacerate", "rip", "dice", "cut") hitsound = 'sound/weapons/bladeslice.ogg' - sharpness = IS_SHARP + sharpness = SHARP bleed_force = BLEED_CUT else force = initial(force) @@ -434,7 +434,7 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301 attack_verb_continuous = list("stubs", "pokes") attack_verb_simple = list("stub", "poke") hitsound = 'sound/weapons/genhit.ogg' - sharpness = IS_BLUNT + sharpness = BLUNT bleed_force = 0 /obj/item/switchblade/suicide_act(mob/living/user) @@ -574,7 +574,7 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301 throwforce = 0 throw_range = 0 throw_speed = 0 - sharpness = IS_SHARP + sharpness = SHARP_DISMEMBER bleed_force = BLEED_DEEP_WOUND attack_verb_continuous = list("saws", "tears", "lacerates", "cuts", "chops", "dices") attack_verb_simple = list("saw", "tear", "lacerate", "cut", "chop", "dice") @@ -1037,7 +1037,7 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301 force = 18 block_upgrade_walk = 1 block_flags = BLOCKING_ACTIVE | BLOCKING_NASTY - sharpness = IS_SHARP + sharpness = SHARP_DISMEMBER bleed_force = BLEED_CUT attack_verb_continuous = list("attacks", "slashes", "stabs", "slices", "tears", "lacerates", "rips", "dices", "cuts") attack_verb_simple = list("attack", "slash", "stab", "slice", "tear", "lacerate", "rip", "dice", "cut") @@ -1058,7 +1058,7 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301 force = 20 throwforce = 20 throw_speed = 4 - sharpness = IS_SHARP + sharpness = SHARP_DISMEMBER bleed_force = BLEED_CUT attack_verb_continuous = list("cuts", "slices", "dices") attack_verb_simple = list("cut", "slice", "dice") diff --git a/code/game/turfs/open/floor/fancy_floor.dm b/code/game/turfs/open/floor/fancy_floor.dm index 212a1c61c6fff..c7e9f061f41b4 100644 --- a/code/game/turfs/open/floor/fancy_floor.dm +++ b/code/game/turfs/open/floor/fancy_floor.dm @@ -144,7 +144,7 @@ user.visible_message("[user] digs up [src].", "You [turfverb] [src].") playsound(src, 'sound/effects/shovel_dig.ogg', 50, 1) make_plating() - else if(C.sharpness != IS_BLUNT) + else if(C.sharpness != BLUNT) QUEUE_SMOOTH(src) QUEUE_SMOOTH_NEIGHBORS(src) icon_state = "grass" diff --git a/code/modules/antagonists/changeling/powers/mutations.dm b/code/modules/antagonists/changeling/powers/mutations.dm index c11aa30ed52e1..d379047ad2497 100644 --- a/code/modules/antagonists/changeling/powers/mutations.dm +++ b/code/modules/antagonists/changeling/powers/mutations.dm @@ -160,7 +160,7 @@ hitsound = 'sound/weapons/bladeslice.ogg' attack_verb_continuous = list("attacks", "slashes", "stabs", "slices", "tears", "lacerates", "rips", "dices", "cuts") attack_verb_simple = list("attack", "slash", "stab", "slice", "tear", "lacerate", "rip", "dice", "cut") - sharpness = IS_SHARP + sharpness = SHARP_DISMEMBER_EASY bleed_force = BLEED_DEEP_WOUND var/can_drop = FALSE var/fake = FALSE @@ -175,6 +175,7 @@ CREATION_TEST_IGNORE_SUBTYPES(/obj/item/melee/arm_blade) loc.visible_message("A grotesque blade forms around [loc.name]\'s arm!", "Our arm twists and mutates, transforming it into a deadly blade.", "You hear organic matter ripping and tearing!") if(synthetic) can_drop = TRUE + sharpness = SHARP_DISMEMBER AddComponent(/datum/component/butchering, 60, 80) /obj/item/melee/arm_blade/afterattack(atom/target, mob/user, proximity) diff --git a/code/modules/antagonists/changeling/powers/tiny_prick.dm b/code/modules/antagonists/changeling/powers/tiny_prick.dm index 44ff428fdaff9..a56a3e5a4a38e 100644 --- a/code/modules/antagonists/changeling/powers/tiny_prick.dm +++ b/code/modules/antagonists/changeling/powers/tiny_prick.dm @@ -128,6 +128,7 @@ /obj/item/melee/arm_blade/false desc = "A grotesque mass of flesh that used to be your arm. Although it looks dangerous at first, you can tell it's actually quite dull and useless." + sharpness = BLUNT //Not actually sharp force = 5 //Basically as strong as a punch fake = TRUE diff --git a/code/modules/antagonists/clock_cult/items/clockwork_weapon.dm b/code/modules/antagonists/clock_cult/items/clockwork_weapon.dm index 97c61732910c2..9caee25a385a9 100644 --- a/code/modules/antagonists/clock_cult/items/clockwork_weapon.dm +++ b/code/modules/antagonists/clock_cult/items/clockwork_weapon.dm @@ -19,7 +19,7 @@ hitsound = 'sound/weapons/bladeslice.ogg' attack_verb_continuous = list("attacks", "pokes", "jabs", "tears", "lacerates", "gores") attack_verb_simple = list("attack", "poke", "jab", "tear", "lacerate", "gore") - sharpness = IS_SHARP_ACCURATE + sharpness = SHARP bleed_force = BLEED_CUT max_integrity = 200 var/clockwork_hint = "" @@ -99,7 +99,7 @@ worn_icon_state = "mining_hammer1" throwforce = 25 armour_penetration = 6 - sharpness = IS_BLUNT + sharpness = BLUNT attack_verb_continuous = list("bashes", "bludgeons", "thrashes", "whacks") attack_verb_simple = list("bash", "bludgeon", "thrash", "whack") clockwork_hint = "Enemies hit by this will be flung back while on Reebe." diff --git a/code/modules/antagonists/cult/cult_items.dm b/code/modules/antagonists/cult/cult_items.dm index cf05b79bfbcaf..ae43b26f59559 100644 --- a/code/modules/antagonists/cult/cult_items.dm +++ b/code/modules/antagonists/cult/cult_items.dm @@ -47,7 +47,7 @@ Striking a noncultist, however, will tear their flesh."} lefthand_file = 'icons/mob/inhands/weapons/swords_lefthand.dmi' righthand_file = 'icons/mob/inhands/weapons/swords_righthand.dmi' flags_1 = CONDUCT_1 - sharpness = IS_SHARP + sharpness = SHARP_DISMEMBER bleed_force = BLEED_CUT w_class = WEIGHT_CLASS_BULKY block_level = 1 @@ -576,7 +576,7 @@ Striking a noncultist, however, will tear their flesh."} block_upgrade_walk = 1 attack_verb_continuous = list("attacks", "impales", "stabs", "tears", "lacerates", "gores") attack_verb_simple = list("attack", "impale", "stab", "tear", "lacerate", "gore") - sharpness = IS_SHARP + sharpness = SHARP bleed_force = BLEED_CUT hitsound = 'sound/weapons/bladeslice.ogg' var/datum/action/innate/cult/spear/spear_act diff --git a/code/modules/antagonists/heretic/items/heretic_blades.dm b/code/modules/antagonists/heretic/items/heretic_blades.dm index 1f3385c65b49d..cbdca6a8bf1f3 100644 --- a/code/modules/antagonists/heretic/items/heretic_blades.dm +++ b/code/modules/antagonists/heretic/items/heretic_blades.dm @@ -9,7 +9,7 @@ inhand_x_dimension = 64 inhand_y_dimension = 64 flags_1 = CONDUCT_1 - sharpness = IS_SHARP + sharpness = SHARP_DISMEMBER_EASY bleed_force = BLEED_CUT w_class = WEIGHT_CLASS_LARGE force = 24 diff --git a/code/modules/antagonists/heretic/structures/carving_knife.dm b/code/modules/antagonists/heretic/structures/carving_knife.dm index eed18614df296..516c3f914a763 100644 --- a/code/modules/antagonists/heretic/structures/carving_knife.dm +++ b/code/modules/antagonists/heretic/structures/carving_knife.dm @@ -6,7 +6,7 @@ icon = 'icons/obj/heretic.dmi' icon_state = "rune_carver" flags_1 = CONDUCT_1 - sharpness = IS_SHARP + sharpness = SHARP bleed_force = BLEED_CUT w_class = WEIGHT_CLASS_SMALL force = 10 diff --git a/code/modules/clothing/glasses/_glasses.dm b/code/modules/clothing/glasses/_glasses.dm index 5741630d0d3f4..a73b48b71a3e2 100644 --- a/code/modules/clothing/glasses/_glasses.dm +++ b/code/modules/clothing/glasses/_glasses.dm @@ -123,7 +123,7 @@ attack_verb_continuous = list("slices") attack_verb_simple = list("slice") hitsound = 'sound/weapons/bladeslice.ogg' - sharpness = IS_SHARP + sharpness = SHARP bleed_force = BLEED_SURFACE /obj/item/clothing/glasses/meson/prescription @@ -244,7 +244,7 @@ attack_verb_continuous = list("slices") attack_verb_simple = list("slice") hitsound = 'sound/weapons/bladeslice.ogg' - sharpness = IS_SHARP + sharpness = SHARP bleed_force = BLEED_SURFACE glass_colour_type = /datum/client_colour/glass_colour/lightgreen @@ -329,7 +329,7 @@ attack_verb_continuous = list("slices") attack_verb_simple = list("slice") hitsound = 'sound/weapons/bladeslice.ogg' - sharpness = IS_SHARP + sharpness = SHARP bleed_force = BLEED_SURFACE /obj/item/clothing/glasses/sunglasses/advanced/garb/supergarb @@ -351,7 +351,7 @@ attack_verb_continuous = list("slices") attack_verb_simple = list("slice") hitsound = 'sound/weapons/bladeslice.ogg' - sharpness = IS_SHARP + sharpness = SHARP bleed_force = BLEED_SURFACE glass_colour_type = /datum/client_colour/glass_colour/orange diff --git a/code/modules/clothing/glasses/hud.dm b/code/modules/clothing/glasses/hud.dm index b3beba00edd23..743fe43f953c1 100644 --- a/code/modules/clothing/glasses/hud.dm +++ b/code/modules/clothing/glasses/hud.dm @@ -293,7 +293,7 @@ attack_verb_continuous = list("slices") attack_verb_simple = list("slice") hitsound = 'sound/weapons/bladeslice.ogg' - sharpness = IS_SHARP + sharpness = SHARP bleed_force = BLEED_SURFACE /obj/item/clothing/glasses/hud/security/sunglasses/gars/supergars diff --git a/code/modules/food_and_drinks/plate.dm b/code/modules/food_and_drinks/plate.dm index d7a68c3567884..7bd30f14fea3a 100644 --- a/code/modules/food_and_drinks/plate.dm +++ b/code/modules/food_and_drinks/plate.dm @@ -91,7 +91,7 @@ base_icon_state = "plate_shard" force = 5 throwforce = 5 - sharpness = IS_SHARP + sharpness = SHARP /// How many variants of shard there are var/variants = 5 diff --git a/code/modules/hydroponics/hydroitemdefines.dm b/code/modules/hydroponics/hydroitemdefines.dm index 8b995fb82dafe..f213159854662 100644 --- a/code/modules/hydroponics/hydroitemdefines.dm +++ b/code/modules/hydroponics/hydroitemdefines.dm @@ -87,7 +87,7 @@ attack_verb_continuous = list("chops", "tears", "lacerates", "cuts") attack_verb_simple = list("chop", "tear", "lacerate", "cut") hitsound = 'sound/weapons/bladeslice.ogg' - sharpness = IS_SHARP + sharpness = SHARP_DISMEMBER bleed_force = BLEED_CUT /obj/item/hatchet/Initialize(mapload) diff --git a/code/modules/mining/equipment/kinetic_crusher.dm b/code/modules/mining/equipment/kinetic_crusher.dm index 7199aa1e6b220..105deac6bf761 100644 --- a/code/modules/mining/equipment/kinetic_crusher.dm +++ b/code/modules/mining/equipment/kinetic_crusher.dm @@ -18,7 +18,7 @@ hitsound = 'sound/weapons/bladeslice.ogg' attack_verb_continuous = list("smashes", "crushes", "cleaves", "chops", "pulps") attack_verb_simple = list("smash", "crush", "cleave", "chop", "pulp") - sharpness = IS_SHARP + sharpness = SHARP bleed_force = BLEED_CUT actions_types = list(/datum/action/item_action/toggle_light) light_system = MOVABLE_LIGHT diff --git a/code/modules/mining/equipment/mining_tools.dm b/code/modules/mining/equipment/mining_tools.dm index f2a5a5add17c3..e835264d1c353 100644 --- a/code/modules/mining/equipment/mining_tools.dm +++ b/code/modules/mining/equipment/mining_tools.dm @@ -128,7 +128,7 @@ custom_materials = list(/datum/material/iron=50) attack_verb_continuous = list("bashes", "batters", "bludgeons", "whacks") attack_verb_simple = list("bash", "batter", "bludgeon", "whack") - sharpness = IS_SHARP + sharpness = SHARP /obj/item/shovel/Initialize(mapload) . = ..() diff --git a/code/modules/mining/lavaland/necropolis_chests.dm b/code/modules/mining/lavaland/necropolis_chests.dm index 2ec126b7947dd..ced5bd6ca68a3 100644 --- a/code/modules/mining/lavaland/necropolis_chests.dm +++ b/code/modules/mining/lavaland/necropolis_chests.dm @@ -765,7 +765,7 @@ CREATION_TEST_IGNORE_SUBTYPES(/obj/item/shared_storage/blue) hitsound = 'sound/weapons/bladeslice.ogg' hitsound_on = 'sound/weapons/bladeslice.ogg' w_class = WEIGHT_CLASS_BULKY - sharpness = IS_SHARP + sharpness = SHARP_DISMEMBER bleed_force = BLEED_CUT faction_bonus_force = 45 nemesis_factions = list("mining", "boss") @@ -859,7 +859,7 @@ CREATION_TEST_IGNORE_SUBTYPES(/obj/item/shared_storage/blue) lefthand_file = 'icons/mob/inhands/weapons/swords_lefthand.dmi' righthand_file = 'icons/mob/inhands/weapons/swords_righthand.dmi' flags_1 = CONDUCT_1 - sharpness = IS_SHARP + sharpness = SHARP_DISMEMBER bleed_force = BLEED_CUT w_class = WEIGHT_CLASS_BULKY force = 1 diff --git a/code/modules/mob/living/carbon/carbon_defense.dm b/code/modules/mob/living/carbon/carbon_defense.dm index 3b46d8299efa2..bd793766da4f6 100644 --- a/code/modules/mob/living/carbon/carbon_defense.dm +++ b/code/modules/mob/living/carbon/carbon_defense.dm @@ -78,6 +78,7 @@ var/hit_amount = (100 - armour_block) / 100 add_bleeding(I.bleed_force * hit_amount) if(I.force) + var/limb_damage = affecting.get_damage() //We need to save this for later to simplify dismemberment var/armour_block = run_armor_check(affecting, MELEE, armour_penetration = I.armour_penetration) apply_damage(I.force, I.damtype, affecting, armour_block) if(I.damtype == BRUTE && (IS_ORGANIC_LIMB(affecting))) @@ -102,18 +103,26 @@ to_chat(src, "The heat from [I] cauterizes your bleeding!") playsound(src, 'sound/surgery/cautery2.ogg', 70) - //dismemberment - var/dismemberthreshold = (((affecting.max_damage * 2) / max(I.is_sharp(), 0.5)) - (affecting.get_damage() + ((I.w_class - 3) * 10) + ((I.attack_weight - 1) * 15))) - if(HAS_TRAIT(src, TRAIT_EASYDISMEMBER)) - dismemberthreshold -= 50 - if(I.is_sharp()) - dismemberthreshold = min(((affecting.max_damage * 2) - affecting.get_damage()), dismemberthreshold) //makes it so limbs wont become immune to being dismembered if the item is sharp - if(stat == DEAD) - dismemberthreshold = dismemberthreshold / 3 - if(I.force >= dismemberthreshold && I.force >= 10) - if(affecting.dismember(I.damtype)) - I.add_mob_blood(src) - playsound(get_turf(src), I.get_dismember_sound(), 80, 1) + var/dismember_limb = FALSE + var/weapon_sharpness = I.is_sharp() + + if(((HAS_TRAIT(src, TRAIT_EASYDISMEMBER) && limb_damage) || (weapon_sharpness == SHARP_DISMEMBER_EASY)) && prob(I.force)) + dismember_limb = TRUE + //Easy dismemberment on the mob allows even blunt weapons to potentially delimb, but only if the limb is already damaged + //Certain weapons are so sharp/strong they have a chance to cleave right through a limb without following the normal restrictions + + else if(weapon_sharpness > SHARP || (weapon_sharpness == SHARP && stat == DEAD)) + //Delimbing cannot normally occur with blunt weapons + //You also aren't cutting someone's arm off with a scalpel unless they're already dead + + if(limb_damage >= affecting.max_damage) + dismember_limb = TRUE + //You can only cut a limb off if it is already damaged enough to be fully disabled + + if(dismember_limb && (affecting.body_zone != BODY_ZONE_HEAD || stat != CONSCIOUS) && affecting.dismember(I.damtype)) + I.add_mob_blood(src) + playsound(get_turf(src), I.get_dismember_sound(), 80, 1) + return TRUE //successful attack /mob/living/carbon/send_item_attack_message(obj/item/I, mob/living/user, hit_area, obj/item/bodypart/hit_bodypart) diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm index 06d5bf93df7b0..724bad4282158 100644 --- a/code/modules/mob/living/carbon/human/species.dm +++ b/code/modules/mob/living/carbon/human/species.dm @@ -1773,6 +1773,7 @@ GLOBAL_LIST_EMPTY(features_by_species) var/armor_block = H.run_armor_check(affecting, MELEE, "Your armor has protected your [hit_area]!", "Your armor has softened a hit to your [hit_area]!",I.armour_penetration) var/Iforce = I.force //to avoid runtimes on the forcesay checks at the bottom. Some items might delete themselves if you drop them. (stunning yourself, ninja swords) + var/limb_damage = affecting.get_damage() //We need to save this for later to simplify dismemberment apply_damage(I.force, I.damtype, def_zone, armor_block, H) if (I.bleed_force) @@ -1808,17 +1809,25 @@ GLOBAL_LIST_EMPTY(features_by_species) if(!I.force) return 0 //item force is zero - //dismemberment - var/dismemberthreshold = ((affecting.max_damage * 2) - affecting.get_damage()) //don't take the current hit into account. - var/attackforce = (((I.w_class - 3) * 5) + ((I.attack_weight - 1) * 14) + ((I.is_sharp()-1) * 20)) //all the variables that go into ripping off a limb in one handy package. Force is absent because it's already been taken into account by the limb being damaged - if(HAS_TRAIT(src, TRAIT_EASYDISMEMBER)) - dismemberthreshold -= 30 - if(I.is_sharp()) - attackforce = max(attackforce, I.force) - if(attackforce >= dismemberthreshold && I.force >= 10) - if(affecting.dismember(I.damtype)) - I.add_mob_blood(H) - playsound(get_turf(H), I.get_dismember_sound(), 80, 1) + var/dismember_limb = FALSE + var/weapon_sharpness = I.is_sharp() + + if(((HAS_TRAIT(H, TRAIT_EASYDISMEMBER) && limb_damage) || (weapon_sharpness == SHARP_DISMEMBER_EASY)) && prob(I.force)) + dismember_limb = TRUE + //Easy dismemberment on the mob allows even blunt weapons to potentially delimb, but only if the limb is already damaged + //Certain weapons are so sharp/strong they have a chance to cleave right through a limb without following the normal restrictions + + else if(weapon_sharpness > SHARP || (weapon_sharpness == SHARP && H.stat == DEAD)) + //Delimbing cannot normally occur with blunt weapons + //You also aren't cutting someone's arm off with a scalpel unless they're already dead + + if(limb_damage >= affecting.max_damage) + dismember_limb = TRUE + //You can only cut a limb off if it is already damaged enough to be fully disabled + + if(dismember_limb && (affecting.body_zone != BODY_ZONE_HEAD || H.stat != CONSCIOUS) && affecting.dismember(I.damtype)) + I.add_mob_blood(H) + playsound(get_turf(H), I.get_dismember_sound(), 80, 1) if(I.damtype == BRUTE && (I.force >= max(10, armor_block) && hit_area == BODY_ZONE_HEAD)) if(!I.is_sharp() && H.mind && H.stat == CONSCIOUS && H != user && (H.health - (I.force * I.attack_weight)) <= 0) // rev deconversion through blunt trauma. diff --git a/code/modules/mob/living/carbon/human/species_types/shadowpeople.dm b/code/modules/mob/living/carbon/human/species_types/shadowpeople.dm index 17a6a73e58717..b32ddee29e193 100644 --- a/code/modules/mob/living/carbon/human/species_types/shadowpeople.dm +++ b/code/modules/mob/living/carbon/human/species_types/shadowpeople.dm @@ -225,7 +225,7 @@ righthand_file = 'icons/mob/inhands/antag/changeling_righthand.dmi' item_flags = ABSTRACT | DROPDEL | ISWEAPON w_class = WEIGHT_CLASS_HUGE - sharpness = IS_SHARP + sharpness = SHARP_DISMEMBER_EASY bleed_force = BLEED_DEEP_WOUND /obj/item/light_eater/Initialize(mapload) diff --git a/code/modules/ninja/energy_katana.dm b/code/modules/ninja/energy_katana.dm index e1e7b7c15f154..fd52baf236c79 100644 --- a/code/modules/ninja/energy_katana.dm +++ b/code/modules/ninja/energy_katana.dm @@ -18,7 +18,7 @@ attack_verb_continuous = list("attacks", "slashes", "stabs", "slices", "tears", "lacerates", "rips", "dices", "cuts") attack_verb_simple = list("attack", "slash", "stab", "slice", "tear", "lacerate", "rip", "dice", "cut") slot_flags = ITEM_SLOT_BACK|ITEM_SLOT_BELT - sharpness = IS_SHARP + sharpness = SHARP_DISMEMBER_EASY bleed_force = BLEED_DEEP_WOUND max_integrity = 200 resistance_flags = LAVA_PROOF | FIRE_PROOF | ACID_PROOF | INDESTRUCTIBLE diff --git a/code/modules/paperwork/pen.dm b/code/modules/paperwork/pen.dm index 6d1b2b5d3e4fd..7b18ba27d539c 100644 --- a/code/modules/paperwork/pen.dm +++ b/code/modules/paperwork/pen.dm @@ -97,7 +97,7 @@ throw_speed = 4 colour = "crimson" custom_materials = list(/datum/material/gold = 750) - sharpness = IS_SHARP + sharpness = SHARP bleed_force = BLEED_SURFACE resistance_flags = FIRE_PROOF unique_reskin_icon = list("Oak" = "pen-fountain-o", @@ -252,7 +252,7 @@ hitsound = 'sound/weapons/edagger.ogg' embedding = list(embed_chance = 200, max_damage_mult = 15, armour_block = 40) //rule of cool throwforce = 35 - sharpness = IS_SHARP + sharpness = SHARP_DISMEMBER bleed_force = BLEED_CUT playsound(user, 'sound/weapons/saberon.ogg', 5, 1) to_chat(user, "[src] is now active.") diff --git a/code/modules/projectiles/guns/energy/special.dm b/code/modules/projectiles/guns/energy/special.dm index 6fa3812ad6a64..5a734b282a3f5 100644 --- a/code/modules/projectiles/guns/energy/special.dm +++ b/code/modules/projectiles/guns/energy/special.dm @@ -107,7 +107,7 @@ attack_verb_continuous = list("attacks", "slashes", "cuts", "slices") attack_verb_simple = list("attack", "slash", "cut", "slice") force = 12 - sharpness = IS_SHARP + sharpness = SHARP can_charge = FALSE dead_cell = TRUE usesound = list('sound/items/welder.ogg', 'sound/items/welder2.ogg') diff --git a/code/modules/projectiles/guns/magic/staff.dm b/code/modules/projectiles/guns/magic/staff.dm index e9b8d8b024021..bc911c1142cc9 100644 --- a/code/modules/projectiles/guns/magic/staff.dm +++ b/code/modules/projectiles/guns/magic/staff.dm @@ -107,7 +107,7 @@ force = 20 armour_penetration = 75 block_flags = BLOCKING_ACTIVE | BLOCKING_NASTY | BLOCKING_PROJECTILE - sharpness = IS_SHARP + sharpness = SHARP_DISMEMBER bleed_force = BLEED_DEEP_WOUND max_charges = 4 diff --git a/code/modules/reagents/reagent_containers/cups/glassbottle.dm b/code/modules/reagents/reagent_containers/cups/glassbottle.dm index a9180e678bd38..186c650810fc3 100644 --- a/code/modules/reagents/reagent_containers/cups/glassbottle.dm +++ b/code/modules/reagents/reagent_containers/cups/glassbottle.dm @@ -126,7 +126,7 @@ hitsound = 'sound/weapons/bladeslice.ogg' attack_verb_continuous = list("stabs", "slashes", "attacks") attack_verb_simple = list("stab", "slash", "attack") - sharpness = IS_SHARP + sharpness = SHARP bleed_force = BLEED_SURFACE var/static/icon/broken_outline = icon('icons/obj/drinks.dmi', "broken") diff --git a/code/modules/research/nanites/nanite_programs/buffing.dm b/code/modules/research/nanites/nanite_programs/buffing.dm index aadebf25e1776..65cd5241e6642 100644 --- a/code/modules/research/nanites/nanite_programs/buffing.dm +++ b/code/modules/research/nanites/nanite_programs/buffing.dm @@ -177,6 +177,7 @@ name = "metallic armblade" desc = "Nanites have formed this extremely sharp blade around your arm. Owie." force = 15 + sharpness = SHARP_DISMEMBER icon = 'icons/obj/nanite.dmi' icon_state = "nanite_blade" item_state = "nanite_blade" diff --git a/code/modules/research/xenobiology/crossbreeding/_weapons.dm b/code/modules/research/xenobiology/crossbreeding/_weapons.dm index 62c196fb254e4..8e9bd675f5fd1 100644 --- a/code/modules/research/xenobiology/crossbreeding/_weapons.dm +++ b/code/modules/research/xenobiology/crossbreeding/_weapons.dm @@ -9,6 +9,7 @@ Slimecrossing Weapons name = "slimy boneblade" desc = "What remains of the bones in your arm. Incredibly sharp, and painful for both you and your opponents." force = 15 + sharpness = SHARP_DISMEMBER force_string = "painful" /obj/item/melee/arm_blade/slime/attack(mob/living/L, mob/user) diff --git a/code/modules/surgery/tools.dm b/code/modules/surgery/tools.dm index d6bae900fb7ba..006dbda02f1f0 100644 --- a/code/modules/surgery/tools.dm +++ b/code/modules/surgery/tools.dm @@ -157,7 +157,7 @@ attack_verb_continuous = list("attacks", "slashes", "stabs", "slices", "tears", "lacerates", "rips", "dices", "cuts") attack_verb_simple = list("attack", "slash", "stab", "slice", "tear", "lacerate", "rip", "dice", "cut") hitsound = 'sound/weapons/bladeslice.ogg' - sharpness = IS_SHARP_ACCURATE + sharpness = SHARP bleed_force = BLEED_CUT tool_behaviour = TOOL_SCALPEL toolspeed = 1 @@ -182,7 +182,7 @@ attack_verb_simple = list("attack", "slash", "stab", "slice", "tear", "lacerate", "rip", "dice", "cut") toolspeed = 0.5 hitsound = 'sound/weapons/bladeslice.ogg' - sharpness = IS_SHARP_ACCURATE + sharpness = SHARP bleed_force = BLEED_CUT /obj/item/scalpel/suicide_act(mob/living/user) @@ -207,7 +207,7 @@ custom_materials = list(/datum/material/iron=10000, /datum/material/glass=6000) attack_verb_continuous = list("attacks", "slashes", "saws", "cuts") attack_verb_simple = list("attack", "slash", "saw", "cut") - sharpness = IS_SHARP + sharpness = SHARP bleed_force = BLEED_DEEP_WOUND tool_behaviour = TOOL_SAW toolspeed = 1 @@ -233,7 +233,7 @@ toolspeed = 0.5 attack_verb_continuous = list("attacks", "slashes", "saws", "cuts") attack_verb_simple = list("attack", "slash", "saw", "cut") - sharpness = IS_SHARP + sharpness = SHARP bleed_force = BLEED_DEEP_WOUND /obj/item/hacksaw @@ -252,7 +252,7 @@ custom_materials = list(/datum/material/iron=12000) attack_verb_continuous = list("attacks", "slashes", "saws", "cuts") attack_verb_simple = list("attack", "slash", "saw", "cut") - sharpness = IS_SHARP + sharpness = SHARP tool_behaviour = TOOL_SAW toolspeed = 2 @@ -358,7 +358,7 @@ light_system = MOVABLE_LIGHT light_range = 1 light_color = LIGHT_COLOR_GREEN - sharpness = IS_SHARP_ACCURATE + sharpness = SHARP // It cauterises the wound it causes bleed_force = 0 diff --git a/code/modules/xenoarchaeology/traits/xenoartifact_minors.dm b/code/modules/xenoarchaeology/traits/xenoartifact_minors.dm index 8bfb1997822da..7a32176d15f95 100644 --- a/code/modules/xenoarchaeology/traits/xenoartifact_minors.dm +++ b/code/modules/xenoarchaeology/traits/xenoartifact_minors.dm @@ -80,7 +80,7 @@ return TRUE /datum/xenoartifact_trait/minor/sharp/on_init(obj/item/xenoartifact/X) - X.sharpness = IS_SHARP_ACCURATE + X.sharpness = SHARP X.bleed_force = BLEED_CUT X.force = X.charge_req*0.12 X.attack_verb_continuous = list("cleaves", "slashes", "stabs", "slices", "tears", "lacerates", "rips", "dices", "cuts")