Dismemberment tweaks (#17453)

* Dismemberment tweaks

* Lowers some AP to address remies concerns

* Lowers the dualsaber AP again to prevent nonsense from occuring

* Adds HF blade

* Honk Dagger typo fix

* Lowers chaplain AP again
This commit is contained in:
KorPhaeron
2016-05-08 20:55:44 +01:00
committed by Remie Richards
parent 9b8ae47fac
commit 024df00cd9
15 changed files with 82 additions and 28 deletions
+3 -1
View File
@@ -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
if((sharpness || damtype == BURN) && w_class >= 3)
return 1
return 0
@@ -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)
slowdown = rand(-2, 2)
@@ -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
+33 -4
View File
@@ -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 << "<span class ='warning'>The [src] burns in your hands.</span>"
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("<span class='danger'>[owner] deflects [attack_text] with [src]!</span>")
playsound(src, pick("sound/weapons/bulletflyby.ogg","sound/weapons/bulletflyby2.ogg","sound/weapons/bulletflyby3.ogg"), 75, 1)
return 1
else
owner.visible_message("<span class='danger'>[owner] parries [attack_text] with [src]!</span>")
return 1
return 0
@@ -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("<span class='suicide'>[user] is falling on the [src.name]! It looks like \he's trying to commit suicide.</span>")
@@ -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("<span class='suicide'>[user] is slitting \his own throat with the [src.name]! It looks like \he's trying to commit suicide.</span>")
@@ -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
@@ -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))))
+1 -2
View File
@@ -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)
+4 -4
View File
@@ -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
@@ -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)
-2
View File
@@ -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."
Binary file not shown.

Before

Width:  |  Height:  |  Size: 96 KiB

After

Width:  |  Height:  |  Size: 96 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 113 KiB

After

Width:  |  Height:  |  Size: 115 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 110 KiB

After

Width:  |  Height:  |  Size: 113 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 44 KiB

After

Width:  |  Height:  |  Size: 44 KiB