Armor overhaul, phase 1.

Armor protection rates are now handled by checking the var I added to obj/item/clothing instead of static percentile chances in the robusting code. What this means for the future is armors that differ in more than just bodyparts protected.

 Currently, all armors/helmets are running off the same set of protective values, which are roughly identical to the old hardcoded ones. a future phase will juggle these numbers around.

 What this means for right now:
  *Melee attacks to the chest/groin are slightly more likely to succeed than before. (80%-force block chance instead of 90%-force)
  *Bullets are slightly more likely to penetrate armor than before. (60% block/30% partial instead of 70%/40%)
  *Alien spit/e-crossbow bolts have a 10% chance of being blocked by armor.

Lasers/Pulse Rifles/Tasers have unchanged values, as do melee head/arm/leg/hand/foot shots.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@1561 316c924e-a436-60f5-8080-3fe189b3f50e
This commit is contained in:
n3ophyt3
2011-05-10 00:13:04 +00:00
parent d438ce2def
commit 7a2647afb4
5 changed files with 53 additions and 53 deletions
+3 -3
View File
@@ -201,7 +201,7 @@
if (M.mutations & COLD_RESISTANCE)
f_dam = 0
if (def_zone == "head")
if (b_dam && H.isarmored(affecting) && prob(80 - src.force))
if (b_dam && prob(H.isarmored(affecting, "melee") - src.force))
if (prob(20))
affecting.take_damage(power, 0)
else
@@ -246,7 +246,7 @@
user2.w_uniform.add_blood(H)
affecting.take_damage(b_dam, f_dam)
else if (def_zone == "chest" || def_zone == "groin")
if (b_dam && H.isarmored(affecting) && prob(90 - src.force))
if (b_dam && prob(H.isarmored(affecting, "melee") - src.force))
H.show_message("\red You have been protected from a hit to the [affecting.name].")
return
if (b_dam && ((istype(H.r_hand, /obj/item/weapon/shield/riot))) && prob(90 - src.force))
@@ -290,7 +290,7 @@
user2.w_uniform.add_blood(H)
affecting.take_damage(b_dam, f_dam)
else
if (b_dam && H.isarmored(affecting) && prob(80 - src.force))
if (b_dam && prob(H.isarmored(affecting, "melee") - src.force))
H.show_message("\red You have been protected from a hit to the [affecting.name].")
return
if (b_dam && prob(25 + (b_dam * 2)))