From 9c2da5bcf4e2481095d2a2bca17b3709f493f28a Mon Sep 17 00:00:00 2001 From: DeltaFire Date: Mon, 23 May 2022 02:16:45 +0200 Subject: [PATCH] power pass mechs actually use power when moving mining z check isn't falsely inverted actuator overload cost returned to pre accidental buff levels correct value for step energy cost now on mechs parts are now less wacky nor broken for energy cost --- code/modules/vehicles/mecha/_mecha.dm | 8 ++++++-- code/modules/vehicles/mecha/combat/gygax.dm | 8 +++++--- code/modules/vehicles/mecha/combat/medigax.dm | 2 +- code/modules/vehicles/mecha/combat/phazon.dm | 2 +- code/modules/vehicles/mecha/combat/reticence.dm | 2 +- code/modules/vehicles/mecha/medical/odysseus.dm | 2 +- code/modules/vehicles/mecha/working/ripley.dm | 2 +- 7 files changed, 16 insertions(+), 10 deletions(-) diff --git a/code/modules/vehicles/mecha/_mecha.dm b/code/modules/vehicles/mecha/_mecha.dm index 99020ec7df..f1e4d4468b 100644 --- a/code/modules/vehicles/mecha/_mecha.dm +++ b/code/modules/vehicles/mecha/_mecha.dm @@ -272,7 +272,7 @@ /obj/vehicle/sealed/mecha/proc/update_part_values() ///Updates the values given by scanning module and capacitor tier, called when a part is removed or inserted. if(scanmod) - normal_step_energy_drain = 20 - (5 * scanmod.rating) //10 is normal, so on lowest part its worse, on second its ok and on higher its real good up to 0 on best + normal_step_energy_drain = initial(normal_step_energy_drain) * (1.5 / (scanmod.rating - 0.5)) //movement power cost is 3x of default at T1, 1x at T2, 0.6x at T3 and 0.4x at T4 step_energy_drain = normal_step_energy_drain else normal_step_energy_drain = 500 @@ -641,6 +641,9 @@ if(!Process_Spacemove(direction)) return FALSE if(!has_charge(step_energy_drain)) + if(TIMER_COOLDOWN_CHECK(src, COOLDOWN_MECHA_MESSAGE)) + to_chat(occupants, "[icon2html(src, occupants)]Insufficient power to move!") + TIMER_COOLDOWN_START(src, COOLDOWN_MECHA_MESSAGE, 2 SECONDS) return FALSE if(zoom_mode) to_chat(occupants, "[icon2html(src, occupants)]Unable to move while in zoom mode!") @@ -651,7 +654,7 @@ if(!scanmod || !capacitor) to_chat(occupants, "[icon2html(src, occupants)]Missing [scanmod? "capacitor" : "scanning module"].") return FALSE - if(lavaland_only && is_mining_level(z)) + if(lavaland_only && !is_mining_level(z)) to_chat(occupants, "[icon2html(src, occupants)]Invalid Environment.") return FALSE @@ -683,6 +686,7 @@ return TRUE set_glide_size(DELAY_TO_GLIDE_SIZE(movedelay)) + use_power(step_energy_drain) //Otherwise just walk normally . = step(src,direction, dir) diff --git a/code/modules/vehicles/mecha/combat/gygax.dm b/code/modules/vehicles/mecha/combat/gygax.dm index 29746a5fc7..ae7f846142 100644 --- a/code/modules/vehicles/mecha/combat/gygax.dm +++ b/code/modules/vehicles/mecha/combat/gygax.dm @@ -9,12 +9,13 @@ deflect_chance = 5 armor = list(MELEE = 25, BULLET = 20, LASER = 30, ENERGY = 15, BOMB = 0, BIO = 0, RAD = 0, FIRE = 100, ACID = 100) max_temperature = 25000 - leg_overload_coeff = 80 + leg_overload_coeff = 300 + overload_step_energy_drain_min = 300 force = 25 wreckage = /obj/structure/mecha_wreckage/gygax internal_damage_threshold = 35 max_equip = 3 - step_energy_drain = 3 + normal_step_energy_drain = 3 /obj/vehicle/sealed/mecha/combat/gygax/dark desc = "A lightweight exosuit, painted in a dark scheme. This model appears to have some modifications." @@ -24,7 +25,8 @@ deflect_chance = 20 armor = list(MELEE = 40, BULLET = 40, LASER = 50, ENERGY = 35, BOMB = 20, BIO = 0, RAD =20, FIRE = 100, ACID = 100) max_temperature = 35000 - leg_overload_coeff = 70 + leg_overload_coeff = 100 + overload_step_energy_drain_min = 100 force = 30 operation_req_access = list(ACCESS_SYNDICATE) internals_req_access = list(ACCESS_SYNDICATE) diff --git a/code/modules/vehicles/mecha/combat/medigax.dm b/code/modules/vehicles/mecha/combat/medigax.dm index 6b2f54a976..ec38dd37db 100644 --- a/code/modules/vehicles/mecha/combat/medigax.dm +++ b/code/modules/vehicles/mecha/combat/medigax.dm @@ -11,7 +11,7 @@ max_temperature = 25000 wreckage = /obj/structure/mecha_wreckage/odysseus internal_damage_threshold = 35 - step_energy_drain = 6 + normal_step_energy_drain = 6 infra_luminosity = 6 internals_req_access = list(ACCESS_ROBOTICS, ACCESS_MEDICAL) diff --git a/code/modules/vehicles/mecha/combat/phazon.dm b/code/modules/vehicles/mecha/combat/phazon.dm index c964b17e36..fad2b0783c 100644 --- a/code/modules/vehicles/mecha/combat/phazon.dm +++ b/code/modules/vehicles/mecha/combat/phazon.dm @@ -4,7 +4,7 @@ icon_state = "phazon" movedelay = 2 dir_in = 2 //Facing South. - step_energy_drain = 3 + normal_step_energy_drain = 3 max_integrity = 200 deflect_chance = 30 armor = list(MELEE = 30, BULLET = 30, LASER = 30, ENERGY = 30, BOMB = 30, BIO = 0, RAD = 50, FIRE = 100, ACID = 100) diff --git a/code/modules/vehicles/mecha/combat/reticence.dm b/code/modules/vehicles/mecha/combat/reticence.dm index b0c8b07aaf..300023b7ab 100644 --- a/code/modules/vehicles/mecha/combat/reticence.dm +++ b/code/modules/vehicles/mecha/combat/reticence.dm @@ -14,7 +14,7 @@ mecha_flags = CANSTRAFE | IS_ENCLOSED | HAS_LIGHTS internal_damage_threshold = 25 max_equip = 2 - step_energy_drain = 3 + normal_step_energy_drain = 3 color = "#87878715" stepsound = null turnsound = null diff --git a/code/modules/vehicles/mecha/medical/odysseus.dm b/code/modules/vehicles/mecha/medical/odysseus.dm index bd415cd64f..dd693f9dbb 100644 --- a/code/modules/vehicles/mecha/medical/odysseus.dm +++ b/code/modules/vehicles/mecha/medical/odysseus.dm @@ -9,7 +9,7 @@ wreckage = /obj/structure/mecha_wreckage/odysseus internal_damage_threshold = 35 deflect_chance = 15 - step_energy_drain = 6 + normal_step_energy_drain = 6 internals_req_access = list(ACCESS_ROBOTICS, ACCESS_MEDICAL) /obj/vehicle/sealed/mecha/medical/odysseus/moved_inside(mob/living/carbon/human/H) diff --git a/code/modules/vehicles/mecha/working/ripley.dm b/code/modules/vehicles/mecha/working/ripley.dm index 965cdbedd9..40b2e61402 100644 --- a/code/modules/vehicles/mecha/working/ripley.dm +++ b/code/modules/vehicles/mecha/working/ripley.dm @@ -96,7 +96,7 @@ movedelay = 4 lights_power = 7 wreckage = /obj/structure/mecha_wreckage/ripley/deathripley - step_energy_drain = 0 + normal_step_energy_drain = 0 enclosed = TRUE enter_delay = 40 silicon_icon_state = null