mirror of
https://github.com/PolarisSS13/Polaris.git
synced 2026-01-06 07:22:42 +00:00
Merge pull request #8788 from Atermonera/nerf_mech_armor
Nerfs mech armor
This commit is contained in:
@@ -1,24 +1,16 @@
|
||||
|
||||
/obj/item/mecha_parts/component/armor
|
||||
name = "mecha plating"
|
||||
icon = 'icons/mecha/mech_component.dmi'
|
||||
icon_state = "armor"
|
||||
w_class = ITEMSIZE_HUGE
|
||||
origin_tech = list(TECH_DATA = 1, TECH_ENGINEERING = 2)
|
||||
|
||||
component_type = MECH_ARMOR
|
||||
|
||||
start_damaged = FALSE
|
||||
|
||||
emp_resistance = 4
|
||||
|
||||
required_type = null // List, if it exists. Exosuits meant to use the component.
|
||||
|
||||
integrity_danger_mod = 0.4 // Multiplier for comparison to max_integrity before problems start.
|
||||
max_integrity = 120
|
||||
|
||||
internal_damage_flag = MECHA_INT_TEMP_CONTROL
|
||||
|
||||
step_delay = 1
|
||||
|
||||
var/deflect_chance = 10
|
||||
@@ -33,53 +25,42 @@
|
||||
"rad"= 1
|
||||
)
|
||||
|
||||
var/damage_minimum = 10
|
||||
var/minimum_penetration = 0
|
||||
var/fail_penetration_value = 0.66
|
||||
|
||||
/obj/item/mecha_parts/component/armor/mining
|
||||
name = "blast-resistant mecha plating"
|
||||
|
||||
step_delay = 2
|
||||
max_integrity = 80
|
||||
|
||||
damage_absorption = list(
|
||||
"brute"=0.8,
|
||||
"fire"=0.8,
|
||||
"bullet"=1.2,
|
||||
"laser"=1.2,
|
||||
"energy"=1,
|
||||
"bomb"=0.5,
|
||||
"bio"=1,
|
||||
"rad"=1
|
||||
)
|
||||
"brute"=0.8,
|
||||
"fire"=0.8,
|
||||
"bullet"=1.2,
|
||||
"laser"=1.2,
|
||||
"energy"=1,
|
||||
"bomb"=0.5,
|
||||
"bio"=1,
|
||||
"rad"=1
|
||||
)
|
||||
|
||||
/obj/item/mecha_parts/component/armor/lightweight
|
||||
name = "lightweight mecha plating"
|
||||
|
||||
max_integrity = 50
|
||||
step_delay = 0
|
||||
|
||||
damage_absorption = list(
|
||||
"brute"=1,
|
||||
"fire"=1.4,
|
||||
"bullet"=1.1,
|
||||
"laser"=1.2,
|
||||
"energy"=1,
|
||||
"bomb"=1,
|
||||
"bio"=1,
|
||||
"rad"=1
|
||||
)
|
||||
"brute"=1,
|
||||
"fire"=1.4,
|
||||
"bullet"=1.1,
|
||||
"laser"=1.2,
|
||||
"energy"=1,
|
||||
"bomb"=1,
|
||||
"bio"=1,
|
||||
"rad"=1
|
||||
)
|
||||
|
||||
/obj/item/mecha_parts/component/armor/reinforced
|
||||
name = "reinforced mecha plating"
|
||||
|
||||
step_delay = 4
|
||||
|
||||
max_integrity = 80
|
||||
|
||||
minimum_penetration = 10
|
||||
|
||||
damage_absorption = list(
|
||||
"brute"=0.7,
|
||||
"fire"=1,
|
||||
@@ -91,18 +72,10 @@
|
||||
|
||||
/obj/item/mecha_parts/component/armor/military
|
||||
name = "military grade mecha plating"
|
||||
|
||||
step_delay = 4
|
||||
|
||||
step_delay = 6
|
||||
max_integrity = 100
|
||||
|
||||
emp_resistance = 2
|
||||
|
||||
required_type = list(/obj/mecha/combat)
|
||||
|
||||
damage_minimum = 15
|
||||
minimum_penetration = 25
|
||||
|
||||
damage_absorption = list(
|
||||
"brute"=0.5,
|
||||
"fire"=1.1,
|
||||
@@ -127,19 +100,11 @@
|
||||
|
||||
/obj/item/mecha_parts/component/armor/marshal
|
||||
name = "marshal mecha plating"
|
||||
|
||||
step_delay = 3
|
||||
|
||||
max_integrity = 100
|
||||
|
||||
emp_resistance = 3
|
||||
|
||||
deflect_chance = 15
|
||||
|
||||
minimum_penetration = 10
|
||||
|
||||
required_type = list(/obj/mecha/combat)
|
||||
|
||||
damage_absorption = list(
|
||||
"brute"=0.75,
|
||||
"fire"=1,
|
||||
@@ -164,9 +129,7 @@
|
||||
|
||||
/obj/item/mecha_parts/component/armor/marshal/reinforced
|
||||
name = "blackops mecha plating"
|
||||
|
||||
step_delay = 5
|
||||
|
||||
damage_absorption = list(
|
||||
"brute"=0.6,
|
||||
"fire"=0.8,
|
||||
@@ -178,19 +141,11 @@
|
||||
|
||||
/obj/item/mecha_parts/component/armor/military/marauder
|
||||
name = "cutting edge mecha plating"
|
||||
|
||||
step_delay = 4
|
||||
|
||||
max_integrity = 150
|
||||
|
||||
emp_resistance = 3
|
||||
|
||||
required_type = list(/obj/mecha/combat/marauder)
|
||||
|
||||
deflect_chance = 25
|
||||
damage_minimum = 30
|
||||
minimum_penetration = 25
|
||||
|
||||
damage_absorption = list(
|
||||
"brute"=0.5,
|
||||
"fire"=0.7,
|
||||
|
||||
@@ -1132,20 +1132,14 @@
|
||||
var/obj/item/mecha_parts/component/armor/ArmC = internal_components[MECH_ARMOR]
|
||||
|
||||
var/temp_deflect_chance = deflect_chance
|
||||
var/temp_damage_minimum = damage_minimum
|
||||
var/temp_minimum_penetration = minimum_penetration
|
||||
var/temp_fail_penetration_value = fail_penetration_value
|
||||
|
||||
if(!ArmC)
|
||||
temp_deflect_chance = 0
|
||||
temp_damage_minimum = 0
|
||||
temp_minimum_penetration = 0
|
||||
temp_fail_penetration_value = 1
|
||||
|
||||
else
|
||||
temp_deflect_chance = round(ArmC.get_efficiency() * ArmC.deflect_chance + (defence_mode ? 25 : 0))
|
||||
temp_damage_minimum = round(ArmC.get_efficiency() * ArmC.damage_minimum)
|
||||
temp_minimum_penetration = round(ArmC.get_efficiency() * ArmC.minimum_penetration)
|
||||
temp_fail_penetration_value = round(ArmC.get_efficiency() * ArmC.fail_penetration_value)
|
||||
|
||||
if(istype(A, /obj/item/mecha_parts/mecha_tracking))
|
||||
@@ -1165,12 +1159,12 @@
|
||||
|
||||
var/pass_damage = O.throwforce
|
||||
var/pass_damage_reduc_mod
|
||||
if(pass_damage <= temp_damage_minimum)//Too little to go through.
|
||||
if(pass_damage <= damage_minimum)//Too little to go through.
|
||||
src.occupant_message("<span class='notice'>\The [A] bounces off the armor.</span>")
|
||||
src.visible_message("\The [A] bounces off \the [src] armor")
|
||||
return
|
||||
|
||||
else if(O.armor_penetration < temp_minimum_penetration) //If you don't have enough pen, you won't do full damage
|
||||
else if(O.armor_penetration < minimum_penetration) //If you don't have enough pen, you won't do full damage
|
||||
src.occupant_message("<span class='notice'>\The [A] struggles to bypass \the [src] armor.</span>")
|
||||
src.visible_message("\The [A] struggles to bypass \the [src] armor")
|
||||
pass_damage_reduc_mod = temp_fail_penetration_value //This will apply to reduce damage to 2/3 or 66% by default
|
||||
@@ -1206,20 +1200,14 @@
|
||||
var/obj/item/mecha_parts/component/armor/ArmC = internal_components[MECH_ARMOR]
|
||||
|
||||
var/temp_deflect_chance = deflect_chance
|
||||
var/temp_damage_minimum = damage_minimum
|
||||
var/temp_minimum_penetration = minimum_penetration
|
||||
var/temp_fail_penetration_value = fail_penetration_value
|
||||
|
||||
if(!ArmC)
|
||||
temp_deflect_chance = 0
|
||||
temp_damage_minimum = 0
|
||||
temp_minimum_penetration = 0
|
||||
temp_fail_penetration_value = 1
|
||||
|
||||
else
|
||||
temp_deflect_chance = round(ArmC.get_efficiency() * ArmC.deflect_chance + (defence_mode ? 25 : 0))
|
||||
temp_damage_minimum = round(ArmC.get_efficiency() * ArmC.damage_minimum)
|
||||
temp_minimum_penetration = round(ArmC.get_efficiency() * ArmC.minimum_penetration)
|
||||
temp_fail_penetration_value = round(ArmC.get_efficiency() * ArmC.fail_penetration_value)
|
||||
|
||||
if(prob(temp_deflect_chance))
|
||||
@@ -1241,12 +1229,12 @@
|
||||
for(var/obj/item/mecha_parts/mecha_equipment/ME in equipment)
|
||||
pass_damage = ME.handle_projectile_contact(Proj, pass_damage)
|
||||
|
||||
if(pass_damage < temp_damage_minimum)//too pathetic to really damage you.
|
||||
if(pass_damage < damage_minimum)//too pathetic to really damage you.
|
||||
src.occupant_message("<span class='notice'>The armor deflects incoming projectile.</span>")
|
||||
src.visible_message("The [src.name] armor deflects\the [Proj]")
|
||||
return
|
||||
|
||||
else if(Proj.armor_penetration < temp_minimum_penetration) //If you don't have enough pen, you won't do full damage
|
||||
else if(Proj.armor_penetration < minimum_penetration) //If you don't have enough pen, you won't do full damage
|
||||
src.occupant_message("<span class='notice'>\The [Proj] struggles to pierce \the [src] armor.</span>")
|
||||
src.visible_message("\The [Proj] struggles to pierce \the [src] armor")
|
||||
pass_damage_reduc_mod = temp_fail_penetration_value //This will apply to reduce damage to 2/3 or 66% by default
|
||||
@@ -1362,20 +1350,14 @@
|
||||
var/obj/item/mecha_parts/component/armor/ArmC = internal_components[MECH_ARMOR]
|
||||
|
||||
var/temp_deflect_chance = deflect_chance
|
||||
var/temp_damage_minimum = damage_minimum
|
||||
var/temp_minimum_penetration = minimum_penetration
|
||||
var/temp_fail_penetration_value = fail_penetration_value
|
||||
|
||||
if(!ArmC)
|
||||
temp_deflect_chance = 0
|
||||
temp_damage_minimum = 0
|
||||
temp_minimum_penetration = 0
|
||||
temp_fail_penetration_value = 1
|
||||
|
||||
else
|
||||
temp_deflect_chance = round(ArmC.get_efficiency() * ArmC.deflect_chance + (defence_mode ? 25 : 0))
|
||||
temp_damage_minimum = round(ArmC.get_efficiency() * ArmC.damage_minimum)
|
||||
temp_minimum_penetration = round(ArmC.get_efficiency() * ArmC.minimum_penetration)
|
||||
temp_fail_penetration_value = round(ArmC.get_efficiency() * ArmC.fail_penetration_value)
|
||||
|
||||
if(prob(temp_deflect_chance)) //Does your attack get deflected outright.
|
||||
@@ -1383,12 +1365,12 @@
|
||||
to_chat(user, "<span class='danger'>\The [W] bounces off [src.name].</span>")
|
||||
src.log_append_to_last("Armor saved.")
|
||||
|
||||
else if(W.force < temp_damage_minimum) //Is your attack too PATHETIC to do anything. 3 damage to a person shouldn't do anything to a mech.
|
||||
else if(W.force < damage_minimum) //Is your attack too PATHETIC to do anything. 3 damage to a person shouldn't do anything to a mech.
|
||||
src.occupant_message("<span class='notice'>\The [W] bounces off the armor.</span>")
|
||||
src.visible_message("\The [W] bounces off \the [src] armor")
|
||||
return
|
||||
|
||||
else if(W.armor_penetration < temp_minimum_penetration) //If you don't have enough pen, you won't do full damage
|
||||
else if(W.armor_penetration < minimum_penetration) //If you don't have enough pen, you won't do full damage
|
||||
src.occupant_message("<span class='notice'>\The [W] struggles to bypass \the [src] armor.</span>")
|
||||
src.visible_message("\The [W] struggles to bypass \the [src] armor")
|
||||
pass_damage_reduc_mod = temp_fail_penetration_value //This will apply to reduce damage to 2/3 or 66% by default
|
||||
@@ -2762,15 +2744,12 @@
|
||||
var/obj/item/mecha_parts/component/armor/ArmC = internal_components[MECH_ARMOR]
|
||||
|
||||
var/temp_deflect_chance = deflect_chance
|
||||
var/temp_damage_minimum = damage_minimum
|
||||
|
||||
if(!ArmC)
|
||||
temp_deflect_chance = 1
|
||||
temp_damage_minimum = 0
|
||||
|
||||
else
|
||||
temp_deflect_chance = round(ArmC.get_efficiency() * ArmC.deflect_chance + (defence_mode ? 25 : 0))
|
||||
temp_damage_minimum = round(ArmC.get_efficiency() * ArmC.damage_minimum)
|
||||
|
||||
user.setClickCooldown(user.get_attack_speed())
|
||||
if(!damage)
|
||||
@@ -2786,7 +2765,7 @@
|
||||
user.attack_log += text("\[[time_stamp()]\] <font color='red'>attacked [src.name]</font>")
|
||||
playsound(src, 'sound/weapons/slash.ogg', 50, 1, -1)
|
||||
|
||||
else if(damage < temp_damage_minimum)//Pathetic damage levels just don't harm MECH.
|
||||
else if(damage < damage_minimum)//Pathetic damage levels just don't harm MECH.
|
||||
src.occupant_message("<span class='notice'>\The [user]'s doesn't dent \the [src] paint.</span>")
|
||||
src.visible_message("\The [user]'s attack doesn't dent \the [src] armor")
|
||||
src.log_append_to_last("Armor saved.")
|
||||
|
||||
Reference in New Issue
Block a user