diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm
index 1c66b00f13e..1536d5f1f85 100644
--- a/code/game/objects/items.dm
+++ b/code/game/objects/items.dm
@@ -576,4 +576,6 @@ obj/item/proc/item_action_slot_check(slot, mob/user)
return sharpness
/obj/item/proc/can_dismember()
- return sharpness && w_class >= 3
\ No newline at end of file
+ if((sharpness || damtype == BURN) && w_class >= 3)
+ return 1
+ return 0
\ No newline at end of file
diff --git a/code/game/objects/items/weapons/holy_weapons.dm b/code/game/objects/items/weapons/holy_weapons.dm
index ec578d8e1fe..205336bfb04 100644
--- a/code/game/objects/items/weapons/holy_weapons.dm
+++ b/code/game/objects/items/weapons/holy_weapons.dm
@@ -145,7 +145,7 @@
icon_state = "sord"
item_state = "sord"
slot_flags = SLOT_BELT
- force = 2
+ force = 4.13
throwforce = 1
hitsound = 'sound/weapons/bladeslice.ogg'
attack_verb = list("attacked", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut")
@@ -156,11 +156,18 @@
name = "reaper scythe"
desc = "Ask not for whom the bell tolls..."
w_class = 4
- armour_penetration = 100
+ armour_penetration = 35
slot_flags = SLOT_BACK
sharpness = IS_SHARP
attack_verb = list("chopped", "sliced", "cut", "reaped")
+/obj/item/weapon/nullrod/scythe/vibro
+ icon_state = "hfrequency0"
+ item_state = "hfrequency1"
+ name = "high frequency blade"
+ desc = "Bad references are the DNA of the soul."
+ attack_verb = list("chopped", "sliced", "cut", "zandatsu'd")
+
/obj/item/weapon/nullrod/hammmer
icon_state = "hammeron"
item_state = "hammeron"
@@ -186,7 +193,7 @@
icon_state = "honkrender"
item_state = "render"
name = "clown dagger"
- desc = "Used for absolutely hilarious sacrafices."
+ desc = "Used for absolutely hilarious sacrifices."
hitsound = 'sound/items/bikehorn.ogg'
sharpness = IS_SHARP
attack_verb = list("attacked", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut")
@@ -276,6 +283,14 @@
hitsound = 'sound/weapons/bladeslice.ogg'
attack_verb = list("attacked", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut")
+/obj/item/weapon/nullrod/pitchfork
+ icon_state = "pitchfork0"
+ name = "unholy pitchfork"
+ w_class = 3
+ desc = "Holding this makes you look absolutely devilish."
+ attack_verb = list("poked", "impaled", "pierced", "jabbed")
+ hitsound = 'sound/weapons/bladeslice.ogg'
+ sharpness = IS_SHARP
/obj/item/weapon/nullrod/tribal_knife/New()
..()
@@ -286,4 +301,4 @@
return ..()
/obj/item/weapon/nullrod/tribal_knife/process()
- slowdown = rand(-2, 2)
\ No newline at end of file
+ slowdown = rand(-2, 2)
diff --git a/code/game/objects/items/weapons/melee/energy.dm b/code/game/objects/items/weapons/melee/energy.dm
index fd27e6b4e67..ac17bdbae2a 100644
--- a/code/game/objects/items/weapons/melee/energy.dm
+++ b/code/game/objects/items/weapons/melee/energy.dm
@@ -54,7 +54,7 @@
sharpness = IS_SHARP
embed_chance = 75
embedded_impact_pain_multiplier = 10
- armour_penetration = 50
+ armour_penetration = 35
origin_tech = "magnets=3;syndicate=4"
block_chance = 50
var/hacked = 0
diff --git a/code/game/objects/items/weapons/twohanded.dm b/code/game/objects/items/weapons/twohanded.dm
index 52d218bd81d..7c0860f9506 100644
--- a/code/game/objects/items/weapons/twohanded.dm
+++ b/code/game/objects/items/weapons/twohanded.dm
@@ -201,7 +201,7 @@
wieldsound = 'sound/weapons/saberon.ogg'
unwieldsound = 'sound/weapons/saberoff.ogg'
hitsound = "swing_hit"
- armour_penetration = 75
+ armour_penetration = 35
origin_tech = "magnets=3;syndicate=4"
item_color = "green"
attack_verb = list("attacked", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut")
@@ -419,9 +419,6 @@
M.Copy_Parent(user, 100, user.health/2.5, 12, 30)
M.GiveTarget(L)
-
-
-
/obj/item/weapon/twohanded/pitchfork
icon_state = "pitchfork0"
name = "pitchfork"
@@ -479,3 +476,35 @@
user << "The [src] burns in your hands."
user.apply_damage(rand(force/2, force), BURN, pick("l_arm", "r_arm"))
..()
+
+//HF blade
+
+/obj/item/weapon/twohanded/vibro_weapon
+ icon_state = "hfrequency0"
+ name = "vibro sword"
+ desc = "A potent weapon capable of cutting through nearly anything. Wielding it in two hands will allow you to deflect gunfire."
+ force_unwielded = 20
+ force_wielded = 40
+ armour_penetration = 100
+ block_chance = 40
+ throwforce = 20
+ throw_speed = 4
+ sharpness = IS_SHARP
+ attack_verb = list("cut", "sliced", "diced")
+ w_class = 4
+ slot_flags = SLOT_BACK
+ hitsound = 'sound/weapons/bladeslice.ogg'
+
+/obj/item/weapon/twohanded/vibro_weapon/hit_reaction(mob/living/carbon/human/owner, attack_text, final_block_chance, damage, attack_type)
+ if(wielded)
+ final_block_chance *= 2
+ if(wielded || attack_type != PROJECTILE_ATTACK)
+ if(prob(final_block_chance))
+ if(attack_type == PROJECTILE_ATTACK)
+ owner.visible_message("[owner] deflects [attack_text] with [src]!")
+ playsound(src, pick("sound/weapons/bulletflyby.ogg","sound/weapons/bulletflyby2.ogg","sound/weapons/bulletflyby3.ogg"), 75, 1)
+ return 1
+ else
+ owner.visible_message("[owner] parries [attack_text] with [src]!")
+ return 1
+ return 0
\ No newline at end of file
diff --git a/code/game/objects/items/weapons/weaponry.dm b/code/game/objects/items/weapons/weaponry.dm
index 862a638f9d5..c389b785427 100644
--- a/code/game/objects/items/weapons/weaponry.dm
+++ b/code/game/objects/items/weapons/weaponry.dm
@@ -50,6 +50,7 @@
w_class = 3
attack_verb = list("attacked", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut")
block_chance = 50
+ sharpness = IS_SHARP
/obj/item/weapon/claymore/suicide_act(mob/user)
user.visible_message("[user] is falling on the [src.name]! It looks like \he's trying to commit suicide.")
@@ -68,6 +69,7 @@
hitsound = 'sound/weapons/bladeslice.ogg'
attack_verb = list("attacked", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut")
block_chance = 50
+ sharpness = IS_SHARP
/obj/item/weapon/katana/cursed
slot_flags = null
@@ -158,6 +160,7 @@
icon_state = "switchblade_ext"
attack_verb = list("slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut")
hitsound = 'sound/weapons/bladeslice.ogg'
+ sharpness = IS_SHARP
else
force = 3
w_class = 2
@@ -165,6 +168,7 @@
icon_state = "switchblade"
attack_verb = list("stubbed", "poked")
hitsound = 'sound/weapons/Genhit.ogg'
+ sharpness = IS_BLUNT
/obj/item/weapon/switchblade/suicide_act(mob/user)
user.visible_message("[user] is slitting \his own throat with the [src.name]! It looks like \he's trying to commit suicide.")
diff --git a/code/modules/awaymissions/capture_the_flag.dm b/code/modules/awaymissions/capture_the_flag.dm
index 094bcb2cc40..ea4446dcd21 100644
--- a/code/modules/awaymissions/capture_the_flag.dm
+++ b/code/modules/awaymissions/capture_the_flag.dm
@@ -17,7 +17,7 @@
throw_speed = 0
throw_range = 1
force = 200
- armour_penetration = 100
+ armour_penetration = 1000
anchored = TRUE
flags = HANDSLOW
var/team = WHITE_TEAM
diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm
index c38e28567ac..2976c5809a8 100644
--- a/code/modules/mob/living/carbon/human/species.dm
+++ b/code/modules/mob/living/carbon/human/species.dm
@@ -1035,16 +1035,20 @@
return 0 //item force is zero
//dismemberment
- if(affecting.get_damage() >= affecting.max_damage)
+ if(affecting.get_damage() >= (affecting.max_damage - I.armour_penetration/2))
if(I.can_dismember() && prob(I.force*(I.w_class-1)))
- if(affecting.dismember())
+ if(affecting.dismember(I.damtype))
I.add_blood(H)
- playsound(get_turf(H), pick('sound/misc/desceration-01.ogg', 'sound/misc/desceration-02.ogg', 'sound/misc/desceration-03.ogg'), 80, 1)
- affecting.add_blood(H)
- var/turf/location = H.loc
- if(istype(location))
- location.add_blood(H)
- return
+ switch(I.damtype)
+ if(BURN)
+ playsound(get_turf(H), 'sound/weapons/sear.ogg', 80, 1)
+ else
+ playsound(get_turf(H), pick('sound/misc/desceration-01.ogg', 'sound/misc/desceration-02.ogg', 'sound/misc/desceration-03.ogg'), 80, 1)
+ affecting.add_blood(H)
+ var/turf/location = H.loc
+ if(istype(location))
+ location.add_blood(H)
+ return
var/bloody = 0
if(((I.damtype == BRUTE) && I.force && prob(25 + (I.force * 2))))
diff --git a/code/modules/ninja/energy_katana.dm b/code/modules/ninja/energy_katana.dm
index 0c1fc6093f0..354d2f4db97 100644
--- a/code/modules/ninja/energy_katana.dm
+++ b/code/modules/ninja/energy_katana.dm
@@ -1,4 +1,3 @@
-
/obj/item/weapon/katana/energy
name = "energy katana"
desc = "A katana infused with strong energy."
@@ -6,7 +5,7 @@
item_state = "energy_katana"
force = 40
throwforce = 20
- armour_penetration = 15
+ armour_penetration = 50
var/datum/effect_system/spark_spread/spark_system
/obj/item/weapon/katana/energy/afterattack(atom/target, mob/user, proximity_flag, click_parameters)
diff --git a/code/modules/surgery/bodyparts/bodyparts.dm b/code/modules/surgery/bodyparts/bodyparts.dm
index 0313dfa5325..e1d602c42d0 100644
--- a/code/modules/surgery/bodyparts/bodyparts.dm
+++ b/code/modules/surgery/bodyparts/bodyparts.dm
@@ -284,7 +284,7 @@
/obj/item/bodypart/l_arm
name = "left arm"
icon_state = "l_arm"
- max_damage = 75
+ max_damage = 60
body_zone ="l_arm"
body_part = ARM_LEFT
px_x = -6
@@ -293,7 +293,7 @@
/obj/item/bodypart/r_arm
name = "right arm"
icon_state = "r_arm"
- max_damage = 75
+ max_damage = 60
body_zone = "r_arm"
body_part = ARM_RIGHT
px_x = 6
@@ -302,7 +302,7 @@
/obj/item/bodypart/l_leg
name = "left leg"
icon_state = "l_leg"
- max_damage = 75
+ max_damage = 60
body_zone = "l_leg"
body_part = LEG_LEFT
px_x = -2
@@ -311,7 +311,7 @@
/obj/item/bodypart/r_leg
name = "right leg"
icon_state = "r_leg"
- max_damage = 75
+ max_damage = 60
body_zone = "r_leg"
body_part = LEG_RIGHT
px_x = 2
diff --git a/code/modules/surgery/bodyparts/dismemberment.dm b/code/modules/surgery/bodyparts/dismemberment.dm
index 5f037989886..8bb62fdc933 100644
--- a/code/modules/surgery/bodyparts/dismemberment.dm
+++ b/code/modules/surgery/bodyparts/dismemberment.dm
@@ -1,7 +1,7 @@
//Dismember a limb
-/obj/item/bodypart/proc/dismember()
+/obj/item/bodypart/proc/dismember(dam_type = BRUTE)
var/mob/living/carbon/human/H = owner
if(!istype(H) || !H.dna.species.has_dismemberment) // species don't allow dismemberment
return 0
@@ -12,6 +12,9 @@
H.emote("scream")
drop_limb()
+ if(dam_type == BURN)
+ burn()
+ return 1
var/direction = pick(cardinal)
var/t_range = rand(2,max(throw_range/2, 2))
var/turf/target_turf = get_turf(src)
diff --git a/code/modules/surgery/bodyparts/head.dm b/code/modules/surgery/bodyparts/head.dm
index 1feb60587e4..6c758a542d3 100644
--- a/code/modules/surgery/bodyparts/head.dm
+++ b/code/modules/surgery/bodyparts/head.dm
@@ -1,5 +1,3 @@
-
-
/obj/item/bodypart/head
name = "head"
desc = "Didn't make sense not to live for fun, your brain gets smart but your head gets dumb."
diff --git a/icons/mob/back.dmi b/icons/mob/back.dmi
index 1073f20a6fd..6e7a761a512 100644
Binary files a/icons/mob/back.dmi and b/icons/mob/back.dmi differ
diff --git a/icons/mob/inhands/items_lefthand.dmi b/icons/mob/inhands/items_lefthand.dmi
index aa73a76cef2..97092a8970d 100644
Binary files a/icons/mob/inhands/items_lefthand.dmi and b/icons/mob/inhands/items_lefthand.dmi differ
diff --git a/icons/mob/inhands/items_righthand.dmi b/icons/mob/inhands/items_righthand.dmi
index 0ff81ae8c86..5489dbcec68 100644
Binary files a/icons/mob/inhands/items_righthand.dmi and b/icons/mob/inhands/items_righthand.dmi differ
diff --git a/icons/obj/weapons.dmi b/icons/obj/weapons.dmi
index df38b2e2f7c..291db24a4e3 100644
Binary files a/icons/obj/weapons.dmi and b/icons/obj/weapons.dmi differ