From 9dbe696d96e2ae15782069486d9e4ef3225eda0a Mon Sep 17 00:00:00 2001 From: Geeves Date: Sat, 24 Jul 2021 20:51:48 +0200 Subject: [PATCH] Stronger Mechs (#12192) Mech ballistic and laser armor has been buffed, allowing them to function for longer in firefights. Combat armor melee armor has also been buffed. Fixed analyzing mechs not giving the correct integrity values. --- .../heavy_vehicle/components/_components.dm | 2 +- code/modules/heavy_vehicle/components/armor.dm | 18 +++++++++--------- code/modules/heavy_vehicle/components/arms.dm | 4 ++-- code/modules/heavy_vehicle/components/body.dm | 8 ++++---- code/modules/heavy_vehicle/components/head.dm | 6 +++--- code/modules/heavy_vehicle/components/legs.dm | 4 ++-- code/modules/heavy_vehicle/premade/military.dm | 1 + html/changelogs/geeves-stronger_mechs.yml | 7 +++++++ 8 files changed, 29 insertions(+), 21 deletions(-) create mode 100644 html/changelogs/geeves-stronger_mechs.yml 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