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

🆑
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.
/🆑
This commit is contained in:
githubuser4141
2024-06-06 09:46:39 +00:00
committed by GitHub
parent 768ba2efc1
commit c4587bf2af
2 changed files with 39 additions and 18 deletions
+6 -6
View File
@@ -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
+33 -12
View File
@@ -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)