Armour Refactor (#18547)

* initial commit

* bullet fix + 100% armour pen

* equivalent armour values

* percentage armour pen

* updates bombing

* adds more defines

* i like armour too much

* review pass 1

* review pass 2

* updates with lavaland elites

* armour penetration value tweaks

* wt550 AP round change
This commit is contained in:
Edan
2022-08-01 20:23:49 +01:00
committed by GitHub
parent 6d3033df0a
commit 1d552ab0e4
95 changed files with 406 additions and 384 deletions
+7 -3
View File
@@ -112,9 +112,13 @@
* * user - The attacking user
*/
/obj/item/melee/classic_baton/proc/on_non_silicon_stun(mob/living/target, mob/living/user)
var/armour = target.run_armor_check("chest", armour_penetration = stamina_armour_pen) // returns a % of their chest melee armour
var/factor = (100 - armour) / 100 // converts the % into a decimal
target.adjustStaminaLoss(stamina_damage * factor)
var/armour = target.run_armor_check("chest", armour_penetration_percentage = stamina_armour_pen) // returns their chest melee armour
var/percentage_reduction = 0
if(ishuman(target))
percentage_reduction = (100 - ARMOUR_VALUE_TO_PERCENTAGE(armour)) / 100
else
percentage_reduction = (100 - armour) / 100 // converts the % into a decimal
target.adjustStaminaLoss(stamina_damage * percentage_reduction)
/**
* # Fancy Cane
@@ -26,7 +26,7 @@
/obj/item/grenade/frag/proc/embed_shrapnel(mob/living/carbon/human/H, amount)
for(var/i = 0, i < amount, i++)
if(prob(embed_prob - H.getarmor(null, BOMB)))
if(prob(embed_prob - ARMOUR_VALUE_TO_PERCENTAGE(H.getarmor(null, BOMB))))
var/obj/item/embedded/S = new embedded_type(src)
H.hitby(S, skipcatch = 1)
S.throwforce = 1
@@ -229,7 +229,7 @@
item_state = "scythe0"
desc = "Ask not for whom the bell tolls..."
w_class = WEIGHT_CLASS_BULKY
armour_penetration = 35
armour_penetration_flat = 30
slot_flags = SLOT_BACK
sharp = TRUE
attack_verb = list("chopped", "sliced", "cut", "reaped")
@@ -99,7 +99,7 @@
w_class_on = WEIGHT_CLASS_HUGE
hitsound = 'sound/weapons/bladeslice.ogg'
flags = CONDUCT
armour_penetration = 100
armour_penetration_percentage = 100
origin_tech = "combat=4;magnets=3"
attack_verb = list("attacked", "chopped", "cleaved", "torn", "cut")
attack_verb_on = list()
@@ -121,7 +121,8 @@
hitsound = "swing_hit"
embed_chance = 75
embedded_impact_pain_multiplier = 10
armour_penetration = 35
armour_penetration_percentage = 50
armour_penetration_flat = 10
origin_tech = "combat=3;magnets=4;syndicate=4"
block_chance = 50
sharp = TRUE
@@ -37,7 +37,7 @@
throwforce = 10
w_class = WEIGHT_CLASS_BULKY
block_chance = 50
armour_penetration = 75
armour_penetration_percentage = 75
sharp = TRUE
origin_tech = "combat=5"
attack_verb = list("lunged at", "stabbed")
@@ -116,7 +116,7 @@
hitsound = 'sound/weapons/rapierhit.ogg'
w_class = WEIGHT_CLASS_BULKY
force = 25
armour_penetration = 50
armour_penetration_flat = 50
block_chance = 50
///enchantment holder, gives it unique on hit effects.
var/datum/enchantment/enchant = null
+1 -1
View File
@@ -8,7 +8,7 @@
throw_speed = 1
throw_range = 5
w_class = WEIGHT_CLASS_SMALL
armour_penetration = 100
armour_penetration_percentage = 100
attack_verb = list("bludgeoned", "whacked", "disciplined")
resistance_flags = FLAMMABLE
+9 -6
View File
@@ -226,7 +226,8 @@
/obj/item/twohanded/fireaxe/energized
desc = "Someone with a love for fire axes decided to turn this one into a high-powered energy weapon. Seems excessive."
force_wielded = 35
armour_penetration = 20
armour_penetration_flat = 10
armour_penetration_percentage = 30
var/charge = 20
var/max_charge = 20
@@ -279,7 +280,8 @@
force_wielded = 34
wieldsound = 'sound/weapons/saberon.ogg'
unwieldsound = 'sound/weapons/saberoff.ogg'
armour_penetration = 35
armour_penetration_percentage = 50
armour_penetration_flat = 10
origin_tech = "magnets=4;syndicate=5"
attack_verb = list("attacked", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut")
block_chance = 75
@@ -392,7 +394,7 @@
force_wielded = 18
throwforce = 20
throw_speed = 4
armour_penetration = 10
armour_penetration_flat = 5
materials = list(MAT_METAL = 1150, MAT_GLASS = 2075)
hitsound = 'sound/weapons/bladeslice.ogg'
attack_verb = list("attacked", "poked", "jabbed", "torn", "gored")
@@ -443,7 +445,7 @@
force_unwielded = 11
force_wielded = 20 //I have no idea how to balance
throwforce = 22
armour_penetration = 15 //Enhanced armor piercing
armour_penetration_percentage = 15 //Enhanced armor piercing
icon_prefix = "bone_spear"
//GREY TIDE
@@ -576,7 +578,7 @@
/obj/item/twohanded/required/chainsaw/doomslayer
name = "OOOH BABY"
desc = "<span class='warning'>VRRRRRRR!!!</span>"
armour_penetration = 100
armour_penetration_percentage = 100
force_on = 30
/obj/item/twohanded/required/chainsaw/doomslayer/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK)
@@ -602,7 +604,8 @@
hitsound = null // Handled in the snowflaked attack proc
wieldsound = 'sound/weapons/chainsawstart.ogg'
hitsound = null
armour_penetration = 35
armour_penetration_percentage = 50
armour_penetration_flat = 10
origin_tech = "materials=6;syndicate=4"
attack_verb = list("sawed", "cut", "hacked", "carved", "cleaved", "butchered", "felled", "timbered")
sharp = TRUE