diff --git a/code/modules/heavy_vehicle/components/_components.dm b/code/modules/heavy_vehicle/components/_components.dm
index 4923c10dad6..c7196b7981f 100644
--- a/code/modules/heavy_vehicle/components/_components.dm
+++ b/code/modules/heavy_vehicle/components/_components.dm
@@ -46,7 +46,7 @@
/obj/item/mech_component/proc/return_diagnostics(var/mob/user)
to_chat(user, SPAN_NOTICE("[capitalize_first_letters(src.name)]:"))
- to_chat(user, SPAN_NOTICE(" - Integrity: [round(((max_damage - total_damage) / max_damage)) * 100]%" ))
+ to_chat(user, SPAN_NOTICE(" - Integrity: [round(((max_damage - total_damage) / max_damage) * 100, 0.1)]%" ))
/obj/item/mech_component/proc/prebuild()
return
diff --git a/code/modules/heavy_vehicle/components/armor.dm b/code/modules/heavy_vehicle/components/armor.dm
index 3f98705761e..f2a4b4e2895 100644
--- a/code/modules/heavy_vehicle/components/armor.dm
+++ b/code/modules/heavy_vehicle/components/armor.dm
@@ -3,8 +3,8 @@
desc = "A pair of flexible armor plates, used to protect the internals of exosuits and its pilot."
armor = list(
melee = ARMOR_MELEE_MAJOR,
- bullet = ARMOR_BALLISTIC_PISTOL,
- laser = ARMOR_LASER_PISTOL,
+ bullet = ARMOR_BALLISTIC_MEDIUM,
+ laser = ARMOR_LASER_MEDIUM,
energy = ARMOR_ENERGY_MINOR,
bomb = ARMOR_BOMB_PADDED,
bio = ARMOR_BIO_SHIELDED,
@@ -23,8 +23,8 @@
icon_state_broken = "armor_r_broken"
armor = list(
melee = ARMOR_MELEE_RESISTANT,
- bullet = ARMOR_BALLISTIC_PISTOL,
- laser = ARMOR_LASER_PISTOL,
+ bullet = ARMOR_BALLISTIC_MEDIUM,
+ laser = ARMOR_LASER_MEDIUM,
energy = ARMOR_ENERGY_MINOR,
bomb = ARMOR_BOMB_PADDED,
bio = ARMOR_BIO_SHIELDED,
@@ -39,8 +39,8 @@
icon_state_broken = "armor_e_broken"
armor = list(
melee = ARMOR_MELEE_RESISTANT ,
- bullet = ARMOR_BALLISTIC_SMALL,
- laser = ARMOR_LASER_SMALL,
+ bullet = ARMOR_BALLISTIC_PISTOL,
+ laser = ARMOR_LASER_PISTOL,
energy = ARMOR_ENERGY_SHIELDED,
bomb = ARMOR_BOMB_MINOR,
bio = ARMOR_BIO_SHIELDED,
@@ -54,9 +54,9 @@
icon_state = "armor_c"
icon_state_broken = "armor_c_broken"
armor = list(
- melee = ARMOR_MELEE_MAJOR,
- bullet = ARMOR_BALLISTIC_MEDIUM,
- laser = ARMOR_LASER_PISTOL,
+ melee = ARMOR_MELEE_VERY_HIGH,
+ bullet = ARMOR_BALLISTIC_REVOLVER,
+ laser = ARMOR_LASER_RIFLE,
energy = ARMOR_ENERGY_MINOR,
bomb = ARMOR_BOMB_RESISTANT,
bio = ARMOR_BIO_SHIELDED
diff --git a/code/modules/heavy_vehicle/components/arms.dm b/code/modules/heavy_vehicle/components/arms.dm
index b7d1dfabc51..623280e28f2 100644
--- a/code/modules/heavy_vehicle/components/arms.dm
+++ b/code/modules/heavy_vehicle/components/arms.dm
@@ -31,9 +31,9 @@
/obj/item/mech_component/manipulators/return_diagnostics(mob/user)
..()
if(motivator)
- to_chat(user, SPAN_NOTICE(" Actuator Integrity: [round(((motivator.max_dam - motivator.total_dam) / motivator.max_dam)) * 100]%"))
+ to_chat(user, SPAN_NOTICE(" - Actuator Integrity: [round(((motivator.max_dam - motivator.total_dam) / motivator.max_dam) * 100, 0.1)]%"))
else
- to_chat(user, SPAN_WARNING(" Actuator Missing or Non-functional."))
+ to_chat(user, SPAN_WARNING(" - Actuator Missing or Non-functional."))
/obj/item/mech_component/manipulators/ready_to_install()
return motivator
diff --git a/code/modules/heavy_vehicle/components/body.dm b/code/modules/heavy_vehicle/components/body.dm
index bfef6f2e344..c3419dee5bc 100644
--- a/code/modules/heavy_vehicle/components/body.dm
+++ b/code/modules/heavy_vehicle/components/body.dm
@@ -69,13 +69,13 @@
/obj/item/mech_component/chassis/return_diagnostics(mob/user)
..()
if(diagnostics)
- to_chat(user, SPAN_NOTICE(" Diagnostics Unit Integrity: [round(((diagnostics.max_dam - diagnostics.total_dam) / diagnostics.max_dam)) * 100]%"))
+ to_chat(user, SPAN_NOTICE(" - Diagnostics Unit Integrity: [round(((diagnostics.max_dam - diagnostics.total_dam) / diagnostics.max_dam) * 100, 0.1)]%"))
else
- to_chat(user, SPAN_WARNING(" Diagnostics Unit Missing or Non-functional."))
+ to_chat(user, SPAN_WARNING(" - Diagnostics Unit Missing or Non-functional."))
if(mech_armor)
- to_chat(user, SPAN_NOTICE(" Armor Integrity: [round(((mech_armor.max_dam - mech_armor.total_dam) / mech_armor.max_dam)) * 100]%"))
+ to_chat(user, SPAN_NOTICE(" - Armor Integrity: [round(((mech_armor.max_dam - mech_armor.total_dam) / mech_armor.max_dam) * 100, 0.1)]%"))
else
- to_chat(user, SPAN_WARNING(" Armor Missing or Non-functional."))
+ to_chat(user, SPAN_WARNING(" - Armor Missing or Non-functional."))
/obj/item/mech_component/chassis/Initialize()
. = ..()
diff --git a/code/modules/heavy_vehicle/components/head.dm b/code/modules/heavy_vehicle/components/head.dm
index 318deebfa68..2f998fe1fc2 100644
--- a/code/modules/heavy_vehicle/components/head.dm
+++ b/code/modules/heavy_vehicle/components/head.dm
@@ -47,11 +47,11 @@
for(var/exosystem_software in software.installed_software)
to_chat(user, SPAN_NOTICE(" - [capitalize_first_letters(exosystem_software)]"))
else
- to_chat(user, SPAN_WARNING(" Control Module Missing or Non-functional."))
+ to_chat(user, SPAN_WARNING(" - Control Module Missing or Non-functional."))
if(radio)
- to_chat(user, SPAN_NOTICE(" Radio Integrity: [round(((radio.max_dam - radio.total_dam) / radio.max_dam)) * 100]%"))
+ to_chat(user, SPAN_NOTICE(" - Radio Integrity: [round(((radio.max_dam - radio.total_dam) / radio.max_dam) * 100, 0.1)]%"))
else
- to_chat(user, SPAN_WARNING(" Radio Missing or Non-functional."))
+ to_chat(user, SPAN_WARNING(" - Radio Missing or Non-functional."))
/obj/item/mech_component/sensors/prebuild()
radio = new(src)
diff --git a/code/modules/heavy_vehicle/components/legs.dm b/code/modules/heavy_vehicle/components/legs.dm
index 3245b615ae4..279ce38f92c 100644
--- a/code/modules/heavy_vehicle/components/legs.dm
+++ b/code/modules/heavy_vehicle/components/legs.dm
@@ -30,9 +30,9 @@
/obj/item/mech_component/propulsion/return_diagnostics(mob/user)
..()
if(motivator)
- to_chat(user, SPAN_NOTICE(" Actuator Integrity: [round(((motivator.max_dam - motivator.total_dam) / motivator.max_dam)) * 100]%"))
+ to_chat(user, SPAN_NOTICE(" - Actuator Integrity: [round(((motivator.max_dam - motivator.total_dam) / motivator.max_dam) * 100, 0.1)]%"))
else
- to_chat(user, SPAN_WARNING(" Actuator Missing or Non-functional."))
+ to_chat(user, SPAN_WARNING(" - Actuator Missing or Non-functional."))
/obj/item/mech_component/propulsion/ready_to_install()
return motivator
diff --git a/code/modules/heavy_vehicle/premade/military.dm b/code/modules/heavy_vehicle/premade/military.dm
index ab3ec8e54c1..06bd8252448 100644
--- a/code/modules/heavy_vehicle/premade/military.dm
+++ b/code/modules/heavy_vehicle/premade/military.dm
@@ -46,6 +46,7 @@
/obj/item/mech_component/chassis/superheavy/prebuild()
. = ..()
+ QDEL_NULL(cell)
cell = new /obj/item/cell/super(src)
mech_armor = new /obj/item/robot_parts/robot_component/armor/mech/combat(src)
diff --git a/html/changelogs/geeves-stronger_mechs.yml b/html/changelogs/geeves-stronger_mechs.yml
new file mode 100644
index 00000000000..14df01d6aa2
--- /dev/null
+++ b/html/changelogs/geeves-stronger_mechs.yml
@@ -0,0 +1,7 @@
+author: Geeves
+
+delete-after: True
+
+changes:
+ - tweak: "Mech ballistic and laser armor has been buffed, allowing them to function for longer in firefights. Combat armor melee armor has also been buffed."
+ - bugfix: "Fixed analyzing mechs not giving the correct integrity values."
\ No newline at end of file