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