diff --git a/code/game/atom_defense.dm b/code/game/atom_defense.dm index ee5ec782bb34..1789f00ceb2b 100644 --- a/code/game/atom_defense.dm +++ b/code/game/atom_defense.dm @@ -64,7 +64,7 @@ return round(atom_integrity / max_integrity, 0.01) ///returns the damage value of the attack after processing the atom's various armor protections -/atom/proc/run_atom_armor(damage_amount, damage_type, damage_flag = 0, attack_dir, armour_penetration = 0) +/atom/proc/run_atom_armor(damage_amount, damage_type, damage_flag = 0, attack_dir, armour_penetration = 0, armour_ignorance = 0) if(!uses_integrity) CRASH("/atom/proc/run_atom_armor was called on [src] without being implemented as a type that uses integrity!") if(damage_flag == MELEE && damage_amount < damage_deflection) @@ -75,7 +75,7 @@ if(damage_flag) armor_protection = get_armor_rating(damage_flag) if(armor_protection) //Only apply weak-against-armor/hollowpoint effects if there actually IS armor. - armor_protection = clamp(armor_protection - armour_penetration, min(armor_protection, 0), 100) + armor_protection = clamp(round((armor_protection * ((100 - armour_penetration) * 0.01)), 1) - armour_ignorance, min(armor_protection, 0), 100) //Armor penetration is now a percent reduction - I.E. 20 AP = armor is 20% *less* effective return round(damage_amount * (100 - armor_protection) * 0.01, DAMAGE_PRECISION) ///the sound played when the atom is damaged. diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index 9504cd1a31dd..eab49ffa2949 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -139,6 +139,8 @@ var/slowdown = 0 ///percentage of armour effectiveness to remove var/armour_penetration = 0 + ///flat armour pen, like the way old armour pen worked. Applied AFTER percentage pen + var/armour_ignorance = 0 ///Whether or not our object is easily hindered by the presence of armor var/weak_against_armour = FALSE /// The click cooldown given after attacking. Lower numbers means faster attacks diff --git a/code/game/objects/items/bear_armor.dm b/code/game/objects/items/bear_armor.dm index 9182f0b50478..d9c7ecc81a86 100644 --- a/code/game/objects/items/bear_armor.dm +++ b/code/game/objects/items/bear_armor.dm @@ -18,7 +18,7 @@ bear_target.armored = TRUE bear_target.maxHealth += 60 bear_target.health += 60 - bear_target.armour_penetration += 20 + bear_target.armour_penetration += 40 bear_target.melee_damage_lower += 3 bear_target.melee_damage_upper += 5 bear_target.wound_bonus += 5 diff --git a/code/game/objects/items/dualsaber.dm b/code/game/objects/items/dualsaber.dm index a7c0199410ce..f00e06f6ddca 100644 --- a/code/game/objects/items/dualsaber.dm +++ b/code/game/objects/items/dualsaber.dm @@ -16,7 +16,8 @@ sharpness = SHARP_EDGED w_class = WEIGHT_CLASS_SMALL hitsound = SFX_SWING_HIT - armour_penetration = 35 + armour_penetration = 75 + armour_ignorance = 5 light_system = OVERLAY_LIGHT light_outer_range = 6 //TWICE AS BRIGHT AS A REGULAR ESWORD light_color = LIGHT_COLOR_ELECTRIC_GREEN diff --git a/code/game/objects/items/melee/energy.dm b/code/game/objects/items/melee/energy.dm index 521ff825f2ca..0605862650b5 100644 --- a/code/game/objects/items/melee/energy.dm +++ b/code/game/objects/items/melee/energy.dm @@ -186,7 +186,8 @@ throwforce = 5 throw_speed = 3 throw_range = 5 - armour_penetration = 35 + armour_penetration = 60 + armour_ignorance = 5 block_chance = 50 block_sound = 'sound/weapons/block_blade.ogg' embedding = list("embed_chance" = 75, "impact_pain_mult" = 10) diff --git a/code/game/objects/items/melee/misc.dm b/code/game/objects/items/melee/misc.dm index f23925bd93bd..daa21b973153 100644 --- a/code/game/objects/items/melee/misc.dm +++ b/code/game/objects/items/melee/misc.dm @@ -168,7 +168,7 @@ throwforce = 10 attack_speed = CLICK_CD_RAPID block_chance = 20 - armour_penetration = 65 + armour_penetration = 100 attack_verb_continuous = list("slashes", "stings", "prickles", "pokes") attack_verb_simple = list("slash", "sting", "prickle", "poke") hitsound = 'sound/weapons/rapierhit.ogg' @@ -461,6 +461,6 @@ throwforce = 8 block_chance = 10 block_sound = 'sound/weapons/genhit.ogg' - armour_penetration = 50 + armour_penetration = 75 attack_verb_continuous = list("smacks", "strikes", "cracks", "beats") attack_verb_simple = list("smack", "strike", "crack", "beat") diff --git a/code/game/objects/items/mop.dm b/code/game/objects/items/mop.dm index c270624eaa9e..7cb956a70b13 100644 --- a/code/game/objects/items/mop.dm +++ b/code/game/objects/items/mop.dm @@ -139,7 +139,8 @@ throw_speed = 4 demolition_mod = 0.75 embedding = list("impact_pain_mult" = 2, "remove_pain_mult" = 4, "jostle_chance" = 2.5) - armour_penetration = 10 + armour_penetration = 20 + armour_ignorance = 10 attack_verb_continuous = list("mops", "stabs", "shanks", "jousts") attack_verb_simple = list("mop", "stab", "shank", "joust") sharpness = SHARP_EDGED //spears aren't pointy either. Just assume it's carved into a naginata-style blade diff --git a/code/game/objects/items/spear.dm b/code/game/objects/items/spear.dm index 665bca347778..5e9f49e779ff 100644 --- a/code/game/objects/items/spear.dm +++ b/code/game/objects/items/spear.dm @@ -13,7 +13,7 @@ throw_speed = 4 demolition_mod = 0.75 embedding = list("impact_pain_mult" = 2, "remove_pain_mult" = 4, "jostle_chance" = 2.5) - armour_penetration = 10 + armour_penetration = 30 custom_materials = list(/datum/material/iron = HALF_SHEET_MATERIAL_AMOUNT, /datum/material/glass= HALF_SHEET_MATERIAL_AMOUNT * 2) hitsound = 'sound/weapons/bladeslice.ogg' attack_verb_continuous = list("attacks", "pokes", "jabs", "tears", "lacerates", "gores") diff --git a/code/game/objects/items/weaponry.dm b/code/game/objects/items/weaponry.dm index faa398bf1743..06e6c9a7afee 100644 --- a/code/game/objects/items/weaponry.dm +++ b/code/game/objects/items/weaponry.dm @@ -111,7 +111,7 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301 throwforce = 20 throw_speed = 3 throw_range = 5 - armour_penetration = 35 + armour_penetration = 60 /obj/item/claymore/highlander //ALL COMMENTS MADE REGARDING THIS SWORD MUST BE MADE IN ALL CAPS desc = "THERE CAN BE ONLY ONE, AND IT WILL BE YOU!!!\nActivate it in your hand to point to the nearest victim." @@ -377,7 +377,7 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301 throwforce = 10 //10 + 2 (WEIGHT_CLASS_SMALL) * 4 (EMBEDDED_IMPACT_PAIN_MULTIPLIER) = 18 damage on hit due to guaranteed embedding throw_speed = 4 embedding = list("pain_mult" = 4, "embed_chance" = 100, "fall_chance" = 0) - armour_penetration = 40 + armour_penetration = 75 w_class = WEIGHT_CLASS_SMALL sharpness = SHARP_POINTY diff --git a/code/modules/antagonists/heretic/items/heretic_blades.dm b/code/modules/antagonists/heretic/items/heretic_blades.dm index ac2a6400ae56..8c48b662b2c7 100644 --- a/code/modules/antagonists/heretic/items/heretic_blades.dm +++ b/code/modules/antagonists/heretic/items/heretic_blades.dm @@ -19,7 +19,8 @@ toolspeed = 0.375 demolition_mod = 0.8 hitsound = 'sound/weapons/bladeslice.ogg' - armour_penetration = 35 + armour_penetration = 60 + armour_ignorance = 5 attack_verb_continuous = list("attacks", "slashes", "stabs", "slices", "tears", "lacerates", "rips", "dices", "rends") attack_verb_simple = list("attack", "slash", "stab", "slice", "tear", "lacerate", "rip", "dice", "rend") var/after_use_message = "" diff --git a/code/modules/antagonists/ninja/energy_katana.dm b/code/modules/antagonists/ninja/energy_katana.dm index 54c3c25ebf45..4144a74b2899 100644 --- a/code/modules/antagonists/ninja/energy_katana.dm +++ b/code/modules/antagonists/ninja/energy_katana.dm @@ -22,7 +22,7 @@ force = 30 throwforce = 30 block_chance = 50 - armour_penetration = 50 + armour_penetration = 90 w_class = WEIGHT_CLASS_NORMAL hitsound = 'sound/weapons/bladeslice.ogg' pickup_sound = 'sound/items/unsheath.ogg' diff --git a/code/modules/mob/living/basic/space_fauna/space_dragon/space_dragon.dm b/code/modules/mob/living/basic/space_fauna/space_dragon/space_dragon.dm index 34fb93acbb80..0b60e2adfbc9 100644 --- a/code/modules/mob/living/basic/space_fauna/space_dragon/space_dragon.dm +++ b/code/modules/mob/living/basic/space_fauna/space_dragon/space_dragon.dm @@ -37,7 +37,7 @@ melee_damage_lower = 35 melee_attack_cooldown = CLICK_CD_MELEE mob_size = MOB_SIZE_HUGE - armour_penetration = 30 + armour_penetration = 75 pixel_x = -16 base_pixel_x = -16 maptext_height = 64 diff --git a/code/modules/mob/living/basic/trooper/pirate.dm b/code/modules/mob/living/basic/trooper/pirate.dm index dba6c3e9f846..b7e43b032c4e 100644 --- a/code/modules/mob/living/basic/trooper/pirate.dm +++ b/code/modules/mob/living/basic/trooper/pirate.dm @@ -20,7 +20,7 @@ name = "Pirate Swashbuckler" melee_damage_lower = 30 melee_damage_upper = 30 - armour_penetration = 35 + armour_penetration = 75 attack_verb_continuous = "slashes" attack_verb_simple = "slash" attack_sound = 'sound/weapons/blade1.ogg' diff --git a/code/modules/mob/living/basic/trooper/syndicate.dm b/code/modules/mob/living/basic/trooper/syndicate.dm index a883a0fa27db..129719bbf3ec 100644 --- a/code/modules/mob/living/basic/trooper/syndicate.dm +++ b/code/modules/mob/living/basic/trooper/syndicate.dm @@ -68,7 +68,7 @@ attack_verb_continuous = "slashes" attack_verb_simple = "slash" attack_sound = 'sound/weapons/blade1.ogg' - armour_penetration = 35 + armour_penetration = 75 projectile_deflect_chance = 50 light_outer_range = 2 light_power = 2.5 diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/bubblegum.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/bubblegum.dm index 7a6750309572..caab02dcb529 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/bubblegum.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/bubblegum.dm @@ -43,7 +43,7 @@ Difficulty: Hard friendly_verb_simple = "stare down" icon = 'icons/mob/simple/lavaland/96x96megafauna.dmi' speak_emote = list("gurgles") - armour_penetration = 40 + armour_penetration = 60 melee_damage_lower = 40 melee_damage_upper = 40 speed = 5 diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm index 840c652dba5e..fd336b76b738 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm @@ -36,7 +36,7 @@ friendly_verb_simple = "stare down" icon = 'icons/mob/simple/lavaland/96x96megafauna.dmi' speak_emote = list("roars") - armour_penetration = 40 + armour_penetration = 60 melee_damage_lower = 40 melee_damage_upper = 40 speed = 10 @@ -184,7 +184,7 @@ name = "death bolt" icon_state = "chronobolt" damage = 25 - armour_penetration = 50 + armour_penetration = 85 speed = 2 damage_type = BRUTE pass_flags = PASSTABLE diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/drake.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/drake.dm index 6218c46124bd..3bd195d3733b 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/drake.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/drake.dm @@ -46,7 +46,7 @@ friendly_verb_continuous = "stares down" friendly_verb_simple = "stare down" speak_emote = list("roars") - armour_penetration = 40 + armour_penetration = 60 melee_damage_lower = 40 melee_damage_upper = 40 speed = 5 diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm index 3807ede11573..ba94bfe99dac 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm @@ -50,7 +50,7 @@ Difficulty: Hard icon = 'icons/mob/simple/lavaland/hierophant_new.dmi' faction = list(FACTION_BOSS) //asteroid mobs? get that shit out of my beautiful square house speak_emote = list("preaches") - armour_penetration = 50 + armour_penetration = 75 melee_damage_lower = 15 melee_damage_upper = 15 speed = 10 diff --git a/code/modules/projectiles/projectile.dm b/code/modules/projectiles/projectile.dm index 667931c5651d..6fae60dd91fb 100644 --- a/code/modules/projectiles/projectile.dm +++ b/code/modules/projectiles/projectile.dm @@ -161,6 +161,8 @@ var/armor_flag = BULLET ///How much armor this projectile pierces. var/armour_penetration = 0 + ///Flat armor ignorance, applied AFTER penetration has reduced the amount of armor by % + var/armour_ignorance = 0 ///Whether or not our bullet lacks penetrative power, and is easily stopped by armor. var/weak_against_armour = FALSE var/projectile_type = /obj/projectile @@ -209,6 +211,11 @@ var/wound_falloff_tile ///How much we want to drop the embed_chance value, if we can embed, per tile, for falloff purposes var/embed_falloff_tile + ///Stamina and damage dropoff over distance, for shotguns and the like + ///It is a flat value that is SUBTRACTED from damage for every tile it moves, I.E 5 dropoff means the projectile looses 5 damage for every tile it moves past the first tile + var/tile_dropoff = 0 + var/tile_dropoff_s = 0 + var/static/list/projectile_connections = list( COMSIG_ATOM_ENTERED = PROC_REF(on_entered), ) @@ -238,6 +245,12 @@ bare_wound_bonus = max(0, bare_wound_bonus + wound_falloff_tile) if(embedding) embedding["embed_chance"] += embed_falloff_tile + if(damage > 0) + damage -= tile_dropoff + if(stamina > 0) + stamina -= tile_dropoff_s + if(damage < 0 && stamina < 0) + qdel(src) SEND_SIGNAL(src, COMSIG_PROJECTILE_RANGE) if(range <= 0 && loc) on_range() diff --git a/code/modules/projectiles/projectile/beams.dm b/code/modules/projectiles/projectile/beams.dm index a7711fc1e4da..021fcd06ce90 100644 --- a/code/modules/projectiles/projectile/beams.dm +++ b/code/modules/projectiles/projectile/beams.dm @@ -79,7 +79,7 @@ damage = 15 /obj/projectile/beam/weak/penetrator - armour_penetration = 50 + armour_penetration = 80 /obj/projectile/beam/practice name = "practice laser" diff --git a/code/modules/projectiles/projectile/bullets/lmg.dm b/code/modules/projectiles/projectile/bullets/lmg.dm index feb8e167ce7f..b5ab0212c463 100644 --- a/code/modules/projectiles/projectile/bullets/lmg.dm +++ b/code/modules/projectiles/projectile/bullets/lmg.dm @@ -35,13 +35,14 @@ /obj/projectile/bullet/mm712x82 name = "7.12x82mm bullet" damage = 30 - armour_penetration = 5 + armour_penetration = 10 + armour_ignorance = 10 wound_bonus = -50 wound_falloff_tile = 0 /obj/projectile/bullet/mm712x82/ap name = "7.12x82mm armor-piercing bullet" - armour_penetration = 75 + armour_penetration = 85 speed = 0.3 //monke edit /obj/projectile/bullet/mm712x82/hp diff --git a/code/modules/projectiles/projectile/bullets/pistol.dm b/code/modules/projectiles/projectile/bullets/pistol.dm index ece260f92fbd..67c298010759 100644 --- a/code/modules/projectiles/projectile/bullets/pistol.dm +++ b/code/modules/projectiles/projectile/bullets/pistol.dm @@ -8,7 +8,7 @@ /obj/projectile/bullet/c9mm/ap name = "9mm armor-piercing bullet" damage = 27 - armour_penetration = 40 + armour_penetration = 75 embedding = null shrapnel_type = null @@ -31,7 +31,7 @@ /obj/projectile/bullet/c10mm/ap name = "10mm armor-piercing bullet" damage = 35 - armour_penetration = 40 + armour_penetration = 60 /obj/projectile/bullet/c10mm/hp name = "10mm hollow-point bullet" diff --git a/code/modules/projectiles/projectile/bullets/rifle.dm b/code/modules/projectiles/projectile/bullets/rifle.dm index 775d3e8e8a72..140850811abf 100644 --- a/code/modules/projectiles/projectile/bullets/rifle.dm +++ b/code/modules/projectiles/projectile/bullets/rifle.dm @@ -3,7 +3,7 @@ /obj/projectile/bullet/a556 name = "5.56mm bullet" damage = 35 - armour_penetration = 30 + armour_penetration = 75 wound_bonus = -40 /obj/projectile/bullet/a556/weak //centcom @@ -13,7 +13,7 @@ name = "5.56mm phasic bullet" icon_state = "gaussphase" damage = 20 - armour_penetration = 70 + armour_penetration = 80 projectile_phasing = PASSTABLE | PASSGLASS | PASSGRILLE | PASSCLOSEDTURF | PASSMACHINE | PASSSTRUCTURE | PASSDOORS // 7.62 (Nagant Rifle) @@ -21,14 +21,15 @@ /obj/projectile/bullet/a762 name = "7.62 bullet" damage = 60 - armour_penetration = 10 + armour_penetration = 0 + armour_ignorance = 10 wound_bonus = -45 wound_falloff_tile = 0 /obj/projectile/bullet/a762/surplus name = "7.62 surplus bullet" weak_against_armour = TRUE //this is specifically more important for fighting carbons than fighting noncarbons. Against a simple mob, this is still a full force bullet - armour_penetration = 0 + armour_ignorance = 0 /obj/projectile/bullet/a762/enchanted name = "enchanted 7.62 bullet" @@ -41,7 +42,7 @@ name = "harpoon" icon_state = "gauss" damage = 60 - armour_penetration = 50 + armour_penetration = 80 wound_bonus = -20 bare_wound_bonus = 80 embedding = list(embed_chance=100, fall_chance=3, jostle_chance=4, ignore_throwspeed_threshold=TRUE, pain_stam_pct=0.4, pain_mult=5, jostle_pain_mult=6, rip_time=10) @@ -54,7 +55,7 @@ damage = 30 speed = 0.4 dismemberment = 1 //because a 1 in 100 chance to just blow someones arm off is enough to be cool but also not enough to be reliable - armour_penetration = 10 + armour_penetration = 20 wound_bonus = -20 bare_wound_bonus = 20 embedding = list("embed_chance" = 60, "fall_chance" = 2, "jostle_chance" = 2, "ignore_throwspeed_threshold" = TRUE, "pain_stam_pct" = 0.4, "pain_mult" = 4, "jostle_pain_mult" = 2, "rip_time" = 10) @@ -70,7 +71,7 @@ damage = 55 speed = 0.4 dismemberment = 2 //It's a budget sniper rifle. - armour_penetration = 20 //A bit better versus armor. Gets past anti laser armor or a vest, but doesnt wound proc on sec armor. + armour_penetration = 40 //A bit better versus armor. wound_bonus = 10 bare_wound_bonus = 20 embedding = list("embed_chance" = 80, "fall_chance" = 1, "jostle_chance" = 3, "ignore_throwspeed_threshold" = TRUE, "pain_stam_pct" = 0.4, "pain_mult" = 3, "jostle_pain_mult" = 2, "rip_time" = 14) @@ -99,7 +100,7 @@ speed = 0.6 dismemberment = 0 //goes through clean. damage_type = BRUTE - armour_penetration = 30 //very pointy. + armour_penetration = 75 //very pointy. projectile_piercing = PASSMOB //felt this might have been a nice compromise for the lower damage for the difficulty of getting it wound_bonus = -15 bare_wound_bonus = 10 @@ -178,7 +179,7 @@ /obj/projectile/bullet/a223 name = ".223 bullet" damage = 35 - armour_penetration = 30 + armour_penetration = 40 wound_bonus = -40 /obj/projectile/bullet/a223/weak //centcom diff --git a/code/modules/projectiles/projectile/bullets/shotgun.dm b/code/modules/projectiles/projectile/bullets/shotgun.dm index 6c8ea970c1f7..b7b92d346f7f 100644 --- a/code/modules/projectiles/projectile/bullets/shotgun.dm +++ b/code/modules/projectiles/projectile/bullets/shotgun.dm @@ -18,16 +18,17 @@ /obj/projectile/bullet/shotgun_slug/apds name = "tungsten sabot-slug" icon_state = "gauss" - damage = 32 //18 less than slugs. Only better when bullet armor is 50+, primarily counters bulletproof armor. + damage = 30 //20 less than slugs. Only better when bullet armor is 50+, primarily counters bulletproof armor. speed = 0.25 //sub-caliber + lighter = speed. (Smaller number = faster) - armour_penetration = 25 //Tis a solid-tungsten penetrator, what do you expect? + armour_penetration = 75 //Tis a solid-tungsten penetrator, what do you expect? + wound_bonus = -25 ricochets_max = 2 //Unlike slugs which tend to squish on impact, these are hard enough to bounce rarely. ricochet_chance = 50 ricochet_auto_aim_range = 0 ricochet_incidence_leeway = 50 embedding = null - demolition_mod = 3 //High-velocity tungsten > steel doors + demolition_mod = 2 //High-velocity tungsten > steel doors projectile_piercing = PASSMOB @@ -39,7 +40,7 @@ if(damage > 10) // Lets just be safe with this one damage -= 7 - armour_penetration -= 10 + armour_penetration -= 25 return ..() //MONKE EDIT END @@ -90,17 +91,8 @@ /obj/projectile/bullet/pellet icon_state = "pellet" - var/tile_dropoff = 0.45 - var/tile_dropoff_s = 0.25 - -/obj/projectile/bullet/pellet/Range() - ..() - if(damage > 0) - damage -= tile_dropoff - if(stamina > 0) - stamina -= tile_dropoff_s - if(damage < 0 && stamina < 0) - qdel(src) + tile_dropoff = 0.45 + tile_dropoff_s = 0.25 /obj/projectile/bullet/pellet/shotgun_buckshot name = "buckshot pellet" diff --git a/code/modules/projectiles/projectile/bullets/smg.dm b/code/modules/projectiles/projectile/bullets/smg.dm index e9e8a6ff4b4d..55fdeae9f290 100644 --- a/code/modules/projectiles/projectile/bullets/smg.dm +++ b/code/modules/projectiles/projectile/bullets/smg.dm @@ -24,7 +24,7 @@ /obj/projectile/bullet/c45/ap name = ".45 armor-piercing bullet" - armour_penetration = 50 + armour_penetration = 75 /obj/projectile/bullet/incendiary/c45 name = ".45 incendiary bullet" diff --git a/code/modules/projectiles/projectile/bullets/sniper.dm b/code/modules/projectiles/projectile/bullets/sniper.dm index a43426708644..82861391a1a4 100644 --- a/code/modules/projectiles/projectile/bullets/sniper.dm +++ b/code/modules/projectiles/projectile/bullets/sniper.dm @@ -8,7 +8,8 @@ paralyze = 100 dismemberment = 50 catastropic_dismemberment = TRUE - armour_penetration = 50 + armour_penetration = 75 + armour_ignorance = 5 ///Determines object damage. var/object_damage = 80 ///Determines how much additional damage the round does to mechs. @@ -74,6 +75,7 @@ icon_state = "gauss" damage = 60 range = 50 + armour_ignorance = 15 projectile_piercing = PASSMOB|PASSVEHICLE projectile_phasing = ~(PASSMOB|PASSVEHICLE) phasing_ignore_direct_target = TRUE diff --git a/code/modules/projectiles/projectile/energy/thermal.dm b/code/modules/projectiles/projectile/energy/thermal.dm index 7409a008b05b..c30cf3fad222 100644 --- a/code/modules/projectiles/projectile/energy/thermal.dm +++ b/code/modules/projectiles/projectile/energy/thermal.dm @@ -4,7 +4,7 @@ damage = 20 damage_type = BURN armor_flag = ENERGY - armour_penetration = 10 + armour_penetration = 30 reflectable = NONE wound_bonus = 0 bare_wound_bonus = 10 @@ -28,7 +28,7 @@ icon_state = "cryoshot" damage = 20 damage_type = BRUTE - armour_penetration = 10 + armour_penetration = 30 armor_flag = ENERGY sharpness = SHARP_POINTY //it's a big ol' shard of ice reflectable = NONE diff --git a/monkestation/code/game/objects/items/caneswords.dm b/monkestation/code/game/objects/items/caneswords.dm index dca8c4e2b7d8..434cb6d8e6a9 100644 --- a/monkestation/code/game/objects/items/caneswords.dm +++ b/monkestation/code/game/objects/items/caneswords.dm @@ -19,7 +19,7 @@ demolition_mod = 0.75 //but not metal w_class = WEIGHT_CLASS_BULKY block_chance = 50 - armour_penetration = 75 + armour_penetration = 100 sharpness = SHARP_EDGED attack_verb_continuous = list("slashes", "cuts") attack_verb_simple = list("slash", "cut") @@ -44,6 +44,7 @@ w_class = WEIGHT_CLASS_BULKY block_chance = 50 armour_penetration = 75 + armour_ignorance = 10 sharpness = SHARP_EDGED attack_verb_continuous = list("slashes", "cuts") attack_verb_simple = list("slash", "cut") diff --git a/monkestation/code/game/objects/items/guns/crank_guns.dm b/monkestation/code/game/objects/items/guns/crank_guns.dm index 02332580e455..8822fafc7e0d 100644 --- a/monkestation/code/game/objects/items/guns/crank_guns.dm +++ b/monkestation/code/game/objects/items/guns/crank_guns.dm @@ -34,7 +34,7 @@ damage = 30 stamina = 65 weak_against_armour = FALSE - armour_penetration = 25 //less powerful than armor piercing rounds + armour_penetration = 45 //less powerful than armor piercing rounds wound_bonus = 10 debilitating = TRUE debilitate_mult = 2 diff --git a/monkestation/code/game/objects/items/implants/hardlight.dm b/monkestation/code/game/objects/items/implants/hardlight.dm index daa5078b77a4..4d19ced3d21a 100644 --- a/monkestation/code/game/objects/items/implants/hardlight.dm +++ b/monkestation/code/game/objects/items/implants/hardlight.dm @@ -175,7 +175,7 @@ force = 25 wound_bonus = -5 bare_wound_bonus = 20 - armour_penetration = 18 + armour_penetration = 40 block_chance = 0 sharpness = SHARP_POINTY w_class = WEIGHT_CLASS_HUGE diff --git a/monkestation/code/game/objects/items/miningweapons.dm b/monkestation/code/game/objects/items/miningweapons.dm index 306ff7a81335..8ce8abe6930b 100644 --- a/monkestation/code/game/objects/items/miningweapons.dm +++ b/monkestation/code/game/objects/items/miningweapons.dm @@ -17,7 +17,8 @@ slot_flags = ITEM_SLOT_BELT throwforce = 5 throw_speed = 4 - armour_penetration = 10 + armour_penetration = 0 + armour_ignorance = 10 custom_materials = list(/datum/material/iron=1150, /datum/material/glass=2075) hitsound = 'sound/weapons/bladeslice.ogg' attack_verb_continuous = list("slashes", "cuts", "cleaves", "chops", "swipes") @@ -61,7 +62,8 @@ slot_flags = ITEM_SLOT_BACK throwforce = 5 throw_speed = 4 - armour_penetration = 15 + armour_penetration = 20 + armour_ignorance = 10 custom_materials = list(/datum/material/iron=1150, /datum/material/glass=2075) hitsound = 'sound/weapons/bladeslice.ogg' attack_verb_continuous = list("pierces", "stabs", "impales", "pokes", "jabs") diff --git a/monkestation/code/modules/a_ship_in_need_of_breaking/tool/sledgehammer.dm b/monkestation/code/modules/a_ship_in_need_of_breaking/tool/sledgehammer.dm index af228691af44..a43079aa70d3 100644 --- a/monkestation/code/modules/a_ship_in_need_of_breaking/tool/sledgehammer.dm +++ b/monkestation/code/modules/a_ship_in_need_of_breaking/tool/sledgehammer.dm @@ -10,7 +10,8 @@ throwforce = 12 throw_range = 3 /// Doesn't throw very far demolition_mod = 6 // BREAK THINGS - armour_penetration = -20 + armour_penetration = 0 + armour_ignorance = -20 hitsound = 'sound/weapons/smash.ogg' /// Hitsound when thrown at someone attack_verb_continuous = list("slams", "crushes", "smashes", "flattens", "pounds") attack_verb_simple = list("slam", "crush", "smash", "flatten", "pound") diff --git a/monkestation/code/modules/blueshift/items/ammo.dm b/monkestation/code/modules/blueshift/items/ammo.dm index 17ee2e5dc395..5bf61850f0ee 100644 --- a/monkestation/code/modules/blueshift/items/ammo.dm +++ b/monkestation/code/modules/blueshift/items/ammo.dm @@ -389,7 +389,7 @@ name = ".35 Sol Short armor piercing bullet" damage = 13 bare_wound_bonus = -30 - armour_penetration = 20 + armour_penetration = 30 /obj/item/ammo_box/c35sol/pierce name = "ammo box (.35 Sol Short armor piercing)" @@ -511,7 +511,7 @@ speed = 0.5 damage = 15 - armour_penetration = 20 + armour_penetration = 40 wound_bonus = -30 bare_wound_bonus = -10 @@ -633,7 +633,7 @@ /obj/projectile/bullet/strilka310/ap name = ".310 armor-piercing bullet" damage = 45 - armour_penetration = 50 + armour_penetration = 60 wound_falloff_tile = -2 wound_bonus = -45 speed = 0.3 @@ -751,7 +751,7 @@ /obj/projectile/bullet/c27_54cesarzowa name = ".27-54 Cesarzowa piercing bullet" damage = 15 - armour_penetration = 15 + armour_penetration = 30 wound_bonus = -10 /obj/item/ammo_box/c27_54cesarzowa @@ -875,7 +875,7 @@ icon_state = "gaussphase" speed = 0.4 damage = 50 - armour_penetration = 50 + armour_penetration = 80 wound_bonus = 10 bare_wound_bonus = 10 demolition_mod = 1.8 diff --git a/monkestation/code/modules/blueshift/items/company_guns.dm b/monkestation/code/modules/blueshift/items/company_guns.dm index e097bc003100..fb07e8affa62 100644 --- a/monkestation/code/modules/blueshift/items/company_guns.dm +++ b/monkestation/code/modules/blueshift/items/company_guns.dm @@ -443,7 +443,7 @@ /obj/item/gun/ballistic/automatic/xhihao_smg/give_manufacturer_examine() AddElement(/datum/element/manufacturer_examine, COMPANY_XHIHAO) - AddComponent(/datum/component/automatic_fire, fire_delay) +/// AddComponent(/datum/component/automatic_fire, fire_delay) /obj/item/gun/ballistic/automatic/xhihao_smg/examine(mob/user) . = ..() diff --git a/monkestation/code/modules/blueshift/items/melee.dm b/monkestation/code/modules/blueshift/items/melee.dm index 07f7e15cdb40..f1796b997923 100644 --- a/monkestation/code/modules/blueshift/items/melee.dm +++ b/monkestation/code/modules/blueshift/items/melee.dm @@ -16,7 +16,7 @@ icon = 'monkestation/code/modules/blueshift/icons/obj/melee.dmi' force = 18 block_chance = 20 - armour_penetration = 10 + armour_penetration = 20 wound_bonus = 0 bare_wound_bonus = 15 diff --git a/monkestation/code/modules/blueshift/projectiles/__projectile_changes.dm b/monkestation/code/modules/blueshift/projectiles/__projectile_changes.dm index 722ee64b00dd..51ff7bd863ca 100644 --- a/monkestation/code/modules/blueshift/projectiles/__projectile_changes.dm +++ b/monkestation/code/modules/blueshift/projectiles/__projectile_changes.dm @@ -106,7 +106,7 @@ /obj/projectile/bullet/a223/ap name = ".277 armor-piercing bullet" - armour_penetration = 60 + armour_penetration = 75 /* * .34 ACP diff --git a/monkestation/code/modules/cybernetics/implant_items/weapons/mantis_blade.dm b/monkestation/code/modules/cybernetics/implant_items/weapons/mantis_blade.dm index 9959c98cc808..2cc4ee49e1f7 100644 --- a/monkestation/code/modules/cybernetics/implant_items/weapons/mantis_blade.dm +++ b/monkestation/code/modules/cybernetics/implant_items/weapons/mantis_blade.dm @@ -64,7 +64,7 @@ force = 15 block_chance = 20 bare_wound_bonus = 30 - armour_penetration = 35 + armour_penetration = 85 COOLDOWN_DECLARE(lunge) /obj/item/mantis_blade/syndicate/afterattack(atom/target, mob/user, proximity_flag, click_parameters) @@ -103,7 +103,7 @@ righthand_file = 'monkestation/code/modules/cybernetics/icons/swords_righthand.dmi' force = 12 wound_bonus = 10 - armour_penetration = 20 + armour_penetration = 40 attack_speed = 10 var/in_stance = FALSE //Toggle for the defensive stance. diff --git a/monkestation/code/modules/microfusion/code/projectiles.dm b/monkestation/code/modules/microfusion/code/projectiles.dm index 81aaa7cdf1de..c81602fa16ae 100644 --- a/monkestation/code/modules/microfusion/code/projectiles.dm +++ b/monkestation/code/modules/microfusion/code/projectiles.dm @@ -68,7 +68,7 @@ /obj/projectile/beam/laser/microfusion/penetrator name = "focused microfusion laser" damage = 20 - armour_penetration = 50 + armour_penetration = 75 /obj/projectile/beam/laser/microfusion/lance name = "lance microfusion laser" diff --git a/monkestation/code/modules/smithing/anvil/smithed_parts/axe_blade.dm b/monkestation/code/modules/smithing/anvil/smithed_parts/axe_blade.dm index e62c429d14fe..441864170b89 100644 --- a/monkestation/code/modules/smithing/anvil/smithed_parts/axe_blade.dm +++ b/monkestation/code/modules/smithing/anvil/smithed_parts/axe_blade.dm @@ -10,7 +10,7 @@ /obj/item/smithed_part/weapon_part/axe_blade/finish_weapon() sharpness = SHARP_EDGED embedding = list("pain_mult" = 4, "embed_chance" = 35, "fall_chance" = 10) - armour_penetration = 30 * (smithed_quality / 100) + armour_penetration = 50 * (smithed_quality / 100) tool_behaviour = TOOL_SAW diff --git a/monkestation/code/modules/smithing/anvil/smithed_parts/rapier_blade.dm b/monkestation/code/modules/smithing/anvil/smithed_parts/rapier_blade.dm index 0ccaa660172a..e89552846307 100644 --- a/monkestation/code/modules/smithing/anvil/smithed_parts/rapier_blade.dm +++ b/monkestation/code/modules/smithing/anvil/smithed_parts/rapier_blade.dm @@ -10,7 +10,7 @@ sharpness = SHARP_POINTY wound_bonus = 10 bare_wound_bonus = 25 - armour_penetration = 50 * (smithed_quality / 100) + armour_penetration = 75 * (smithed_quality / 100) AddComponent(/datum/component/multi_hit, icon_state = "stab", height = 2) attack_speed = CLICK_CD_LIGHT_WEAPON diff --git a/monkestation/code/modules/smithing/anvil/smithed_parts/spear_blade.dm b/monkestation/code/modules/smithing/anvil/smithed_parts/spear_blade.dm index b9cb98645314..4d98dd98991d 100644 --- a/monkestation/code/modules/smithing/anvil/smithed_parts/spear_blade.dm +++ b/monkestation/code/modules/smithing/anvil/smithed_parts/spear_blade.dm @@ -12,7 +12,7 @@ /obj/item/smithed_part/weapon_part/spear_blade/finish_weapon() sharpness = SHARP_POINTY embedding = list("impact_pain_mult" = 2, "remove_pain_mult" = 4, "embed_chance" = 65, "fall_chance" = 10, "ignore_throwspeed_threshold" = TRUE) - armour_penetration = 30 * (smithed_quality / 100) + armour_penetration = 60 * (smithed_quality / 100) reach = 2 AddComponent(/datum/component/multi_hit, icon_state = "stab", height = 2) diff --git a/monkestation/code/modules/smithing/anvil/smithed_parts/sword_blade.dm b/monkestation/code/modules/smithing/anvil/smithed_parts/sword_blade.dm index c5e68dd7a371..c278dfdb7702 100644 --- a/monkestation/code/modules/smithing/anvil/smithed_parts/sword_blade.dm +++ b/monkestation/code/modules/smithing/anvil/smithed_parts/sword_blade.dm @@ -13,7 +13,7 @@ sharpness = SHARP_EDGED wound_bonus = 15 bare_wound_bonus = 25 - armour_penetration = 25 * (smithed_quality / 100) + armour_penetration = 40 * (smithed_quality / 100) slot_flags = ITEM_SLOT_SUITSTORE | ITEM_SLOT_BACK