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