From c4587bf2aff2c76f527e614d84cbb42363a12b17 Mon Sep 17 00:00:00 2001 From: githubuser4141 <61243846+githubuser4141@users.noreply.github.com> Date: Thu, 6 Jun 2024 21:46:39 +1200 Subject: [PATCH] Centcom/Nukie mechs receive better innate armor but cannot be upgraded (#83580) ## About The Pull Request QoL for antag mechs: no longer are you expected to sit around station Robotics with a [materials] [inducer] [experiment scanner] to upgrade your antag mechs, they are now appropriately armoured out of the box! Unfortunately, this high end armour cannot accept third party upgrade modules. Also good because of incoming (hopefully) sprite upgrades, maulers should become more attractive to buy. Inspired by maplestation.. NOTE: WEB-EDITED! NOT TESTED! ## Why It's Good For The Game Antags like Centcom or Syndicates don't have no time to sit around in the station robotics bay trying to upgrade their mechs - and it's insane to expect them to do so. This is especially poor for newer players who aren't aware of mech mechanics - such as a basic chainsaw or fireaxe dealing 15 or over damage to their mech when a upgraded Durand isn't affected by this. Makes antag/centcom mechs good 'against most threats' out of the box, so better for newbies and less stressful for experienced players who won't have to literally _do station jobs_ to get a good mech. Did you know: mech mechanics aren't even explained at all in-game? Balance wise, it's "good against everything" and loses the ability to be super-specialized against a single thing, while retaining higher-then-normal grades on everything else. Station mechs still have the ability to specialize in one armor, say, melee, but have much worse grades on bullet/laser/EMP, and often have less health. Previously, a trip to Robotics could get a D-GYGAX up to 85% melee while still retaining 40%/50% of bullet/laser which imo is a biit *too* good. The difference between say - 70% and 85% is fairly significant - 9 damage / 13.5 damage for 70% melee vs 4.5 / 6.7 damage for 85%, so twice as good. NOTE: Some of the mechs receive better bomb/energy armors, which weren't affected by armor upgrades. ## Changelog :cl: balance: Antag/Centcom mechs now have top notch un-upgradeable armor out of the box. You can't add armor to centcom or nukie mechs anymore, but their default armor rating is a lot higher. /:cl: --- code/modules/vehicles/mecha/combat/gygax.dm | 12 ++--- .../modules/vehicles/mecha/combat/marauder.dm | 45 ++++++++++++++----- 2 files changed, 39 insertions(+), 18 deletions(-) diff --git a/code/modules/vehicles/mecha/combat/gygax.dm b/code/modules/vehicles/mecha/combat/gygax.dm index 82fd77f2289..0284f10d23d 100644 --- a/code/modules/vehicles/mecha/combat/gygax.dm +++ b/code/modules/vehicles/mecha/combat/gygax.dm @@ -34,7 +34,7 @@ acid = 100 /obj/vehicle/sealed/mecha/gygax/dark - desc = "A lightweight exosuit, painted in a dark scheme. This model appears to have some modifications." + desc = "A lightweight exosuit, painted in a dark scheme. This model's armor has been upgraded with a cutting-edge armor composite, resulting in greater protection and performance at the cost of modularity." name = "\improper Dark Gygax" ui_theme = "syndicate" icon_state = "darkgygax" @@ -53,21 +53,21 @@ MECHA_R_ARM = 1, MECHA_UTILITY = 4, MECHA_POWER = 1, - MECHA_ARMOR = 3, + MECHA_ARMOR = 0, ) equip_by_category = list( MECHA_L_ARM = /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/scattershot, MECHA_R_ARM = null, MECHA_UTILITY = list(/obj/item/mecha_parts/mecha_equipment/radio, /obj/item/mecha_parts/mecha_equipment/air_tank/full, /obj/item/mecha_parts/mecha_equipment/thrusters/ion), MECHA_POWER = list(), - MECHA_ARMOR = list(/obj/item/mecha_parts/mecha_equipment/armor/anticcw_armor_booster, /obj/item/mecha_parts/mecha_equipment/armor/antiproj_armor_booster), + MECHA_ARMOR = list(), ) destruction_sleep_duration = 20 /datum/armor/gygax_dark - melee = 40 - bullet = 40 - laser = 50 + melee = 70 + bullet = 50 + laser = 55 energy = 35 bomb = 20 fire = 100 diff --git a/code/modules/vehicles/mecha/combat/marauder.dm b/code/modules/vehicles/mecha/combat/marauder.dm index 750223a85d7..3cc73214fca 100644 --- a/code/modules/vehicles/mecha/combat/marauder.dm +++ b/code/modules/vehicles/mecha/combat/marauder.dm @@ -1,5 +1,5 @@ /obj/vehicle/sealed/mecha/marauder - desc = "Heavy-duty, combat exosuit, developed after the Durand model. Rarely found among civilian populations." + desc = "Heavy-duty, combat exosuit, developed after the Durand model. Rarely found among civilian populations. Its bleeding edge armour ensures maximum usability and protection at the cost of some modularity." name = "\improper Marauder" icon_state = "marauder" base_icon_state = "marauder" @@ -20,16 +20,16 @@ MECHA_R_ARM = 1, MECHA_UTILITY = 5, MECHA_POWER = 1, - MECHA_ARMOR = 3, + MECHA_ARMOR = 0, ) bumpsmash = TRUE /datum/armor/mecha_marauder - melee = 50 - bullet = 55 - laser = 40 + melee = 70 + bullet = 60 + laser = 60 energy = 30 - bomb = 30 + bomb = 50 fire = 100 acid = 100 @@ -44,7 +44,7 @@ MECHA_R_ARM = /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/missile_rack, MECHA_UTILITY = list(/obj/item/mecha_parts/mecha_equipment/radio, /obj/item/mecha_parts/mecha_equipment/air_tank/full, /obj/item/mecha_parts/mecha_equipment/thrusters/ion), MECHA_POWER = list(), - MECHA_ARMOR = list(/obj/item/mecha_parts/mecha_equipment/armor/antiproj_armor_booster), + MECHA_ARMOR = list(), ) /obj/vehicle/sealed/mecha/marauder/loaded/populate_parts() @@ -92,6 +92,7 @@ accesses = list(ACCESS_CENT_SPECOPS) movedelay = 3 max_integrity = 550 + armor_type = /datum/armor/mecha_seraph wreckage = /obj/structure/mecha_wreckage/seraph force = 55 max_equip_by_category = list( @@ -99,22 +100,33 @@ MECHA_R_ARM = 1, MECHA_UTILITY = 5, MECHA_POWER = 1, - MECHA_ARMOR = 3, + MECHA_ARMOR = 0, ) equip_by_category = list( MECHA_L_ARM = /obj/item/mecha_parts/mecha_equipment/weapon/energy/pulse, MECHA_R_ARM = /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/missile_rack, MECHA_UTILITY = list(/obj/item/mecha_parts/mecha_equipment/radio, /obj/item/mecha_parts/mecha_equipment/air_tank/full, /obj/item/mecha_parts/mecha_equipment/thrusters/ion), MECHA_POWER = list(), - MECHA_ARMOR = list(/obj/item/mecha_parts/mecha_equipment/armor/antiproj_armor_booster), + MECHA_ARMOR = list(), ) +/datum/armor/mecha_seraph + melee = 80 + bullet = 65 + laser = 65 + energy = 50 + bomb = 50 + fire = 100 + acid = 100 + + /obj/vehicle/sealed/mecha/marauder/mauler - desc = "Heavy-duty, combat exosuit, developed off of the existing Marauder model." + desc = "Heavy-duty, combat exosuit, developed off of the existing Marauder model, its hardened exterior prevents the use of add-on armor packages." name = "\improper Mauler" ui_theme = "syndicate" icon_state = "mauler" base_icon_state = "mauler" + armor_type = /datum/armor/mecha_mauler accesses = list(ACCESS_SYNDICATE) wreckage = /obj/structure/mecha_wreckage/mauler mecha_flags = ID_LOCK_ON | CAN_STRAFE | IS_ENCLOSED | HAS_LIGHTS | MMI_COMPATIBLE @@ -123,7 +135,7 @@ MECHA_R_ARM = 1, MECHA_UTILITY = 4, MECHA_POWER = 1, - MECHA_ARMOR = 4, + MECHA_ARMOR = 0, ) equip_by_category = list( MECHA_L_ARM = null, @@ -134,13 +146,22 @@ ) destruction_sleep_duration = 20 +/datum/armor/mecha_mauler + melee = 80 + bullet = 60 + laser = 50 + energy = 30 + bomb = 50 + fire = 100 + acid = 100 + /obj/vehicle/sealed/mecha/marauder/mauler/loaded equip_by_category = list( MECHA_L_ARM = /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/lmg, MECHA_R_ARM = /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/missile_rack, MECHA_UTILITY = list(/obj/item/mecha_parts/mecha_equipment/radio, /obj/item/mecha_parts/mecha_equipment/air_tank/full, /obj/item/mecha_parts/mecha_equipment/thrusters/ion), MECHA_POWER = list(), - MECHA_ARMOR = list(/obj/item/mecha_parts/mecha_equipment/armor/antiproj_armor_booster), + MECHA_ARMOR = list(), ) /obj/vehicle/sealed/mecha/marauder/mauler/loaded/Initialize(mapload)