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
This commit is contained in:
DeltaFire
2022-05-23 02:16:45 +02:00
parent 18599a274c
commit 9c2da5bcf4
7 changed files with 16 additions and 10 deletions
+6 -2
View File
@@ -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. /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) 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 step_energy_drain = normal_step_energy_drain
else else
normal_step_energy_drain = 500 normal_step_energy_drain = 500
@@ -641,6 +641,9 @@
if(!Process_Spacemove(direction)) if(!Process_Spacemove(direction))
return FALSE return FALSE
if(!has_charge(step_energy_drain)) if(!has_charge(step_energy_drain))
if(TIMER_COOLDOWN_CHECK(src, COOLDOWN_MECHA_MESSAGE))
to_chat(occupants, "[icon2html(src, occupants)]<span class='warning'>Insufficient power to move!</span>")
TIMER_COOLDOWN_START(src, COOLDOWN_MECHA_MESSAGE, 2 SECONDS)
return FALSE return FALSE
if(zoom_mode) if(zoom_mode)
to_chat(occupants, "[icon2html(src, occupants)]<span class='warning'>Unable to move while in zoom mode!</span>") to_chat(occupants, "[icon2html(src, occupants)]<span class='warning'>Unable to move while in zoom mode!</span>")
@@ -651,7 +654,7 @@
if(!scanmod || !capacitor) if(!scanmod || !capacitor)
to_chat(occupants, "[icon2html(src, occupants)]<span class='warning'>Missing [scanmod? "capacitor" : "scanning module"].</span>") to_chat(occupants, "[icon2html(src, occupants)]<span class='warning'>Missing [scanmod? "capacitor" : "scanning module"].</span>")
return FALSE return FALSE
if(lavaland_only && is_mining_level(z)) if(lavaland_only && !is_mining_level(z))
to_chat(occupants, "[icon2html(src, occupants)]<span class='warning'>Invalid Environment.</span>") to_chat(occupants, "[icon2html(src, occupants)]<span class='warning'>Invalid Environment.</span>")
return FALSE return FALSE
@@ -683,6 +686,7 @@
return TRUE return TRUE
set_glide_size(DELAY_TO_GLIDE_SIZE(movedelay)) set_glide_size(DELAY_TO_GLIDE_SIZE(movedelay))
use_power(step_energy_drain)
//Otherwise just walk normally //Otherwise just walk normally
. = step(src,direction, dir) . = step(src,direction, dir)
+5 -3
View File
@@ -9,12 +9,13 @@
deflect_chance = 5 deflect_chance = 5
armor = list(MELEE = 25, BULLET = 20, LASER = 30, ENERGY = 15, BOMB = 0, BIO = 0, RAD = 0, FIRE = 100, ACID = 100) armor = list(MELEE = 25, BULLET = 20, LASER = 30, ENERGY = 15, BOMB = 0, BIO = 0, RAD = 0, FIRE = 100, ACID = 100)
max_temperature = 25000 max_temperature = 25000
leg_overload_coeff = 80 leg_overload_coeff = 300
overload_step_energy_drain_min = 300
force = 25 force = 25
wreckage = /obj/structure/mecha_wreckage/gygax wreckage = /obj/structure/mecha_wreckage/gygax
internal_damage_threshold = 35 internal_damage_threshold = 35
max_equip = 3 max_equip = 3
step_energy_drain = 3 normal_step_energy_drain = 3
/obj/vehicle/sealed/mecha/combat/gygax/dark /obj/vehicle/sealed/mecha/combat/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 appears to have some modifications."
@@ -24,7 +25,8 @@
deflect_chance = 20 deflect_chance = 20
armor = list(MELEE = 40, BULLET = 40, LASER = 50, ENERGY = 35, BOMB = 20, BIO = 0, RAD =20, FIRE = 100, ACID = 100) armor = list(MELEE = 40, BULLET = 40, LASER = 50, ENERGY = 35, BOMB = 20, BIO = 0, RAD =20, FIRE = 100, ACID = 100)
max_temperature = 35000 max_temperature = 35000
leg_overload_coeff = 70 leg_overload_coeff = 100
overload_step_energy_drain_min = 100
force = 30 force = 30
operation_req_access = list(ACCESS_SYNDICATE) operation_req_access = list(ACCESS_SYNDICATE)
internals_req_access = list(ACCESS_SYNDICATE) internals_req_access = list(ACCESS_SYNDICATE)
@@ -11,7 +11,7 @@
max_temperature = 25000 max_temperature = 25000
wreckage = /obj/structure/mecha_wreckage/odysseus wreckage = /obj/structure/mecha_wreckage/odysseus
internal_damage_threshold = 35 internal_damage_threshold = 35
step_energy_drain = 6 normal_step_energy_drain = 6
infra_luminosity = 6 infra_luminosity = 6
internals_req_access = list(ACCESS_ROBOTICS, ACCESS_MEDICAL) internals_req_access = list(ACCESS_ROBOTICS, ACCESS_MEDICAL)
+1 -1
View File
@@ -4,7 +4,7 @@
icon_state = "phazon" icon_state = "phazon"
movedelay = 2 movedelay = 2
dir_in = 2 //Facing South. dir_in = 2 //Facing South.
step_energy_drain = 3 normal_step_energy_drain = 3
max_integrity = 200 max_integrity = 200
deflect_chance = 30 deflect_chance = 30
armor = list(MELEE = 30, BULLET = 30, LASER = 30, ENERGY = 30, BOMB = 30, BIO = 0, RAD = 50, FIRE = 100, ACID = 100) armor = list(MELEE = 30, BULLET = 30, LASER = 30, ENERGY = 30, BOMB = 30, BIO = 0, RAD = 50, FIRE = 100, ACID = 100)
@@ -14,7 +14,7 @@
mecha_flags = CANSTRAFE | IS_ENCLOSED | HAS_LIGHTS mecha_flags = CANSTRAFE | IS_ENCLOSED | HAS_LIGHTS
internal_damage_threshold = 25 internal_damage_threshold = 25
max_equip = 2 max_equip = 2
step_energy_drain = 3 normal_step_energy_drain = 3
color = "#87878715" color = "#87878715"
stepsound = null stepsound = null
turnsound = null turnsound = null
@@ -9,7 +9,7 @@
wreckage = /obj/structure/mecha_wreckage/odysseus wreckage = /obj/structure/mecha_wreckage/odysseus
internal_damage_threshold = 35 internal_damage_threshold = 35
deflect_chance = 15 deflect_chance = 15
step_energy_drain = 6 normal_step_energy_drain = 6
internals_req_access = list(ACCESS_ROBOTICS, ACCESS_MEDICAL) internals_req_access = list(ACCESS_ROBOTICS, ACCESS_MEDICAL)
/obj/vehicle/sealed/mecha/medical/odysseus/moved_inside(mob/living/carbon/human/H) /obj/vehicle/sealed/mecha/medical/odysseus/moved_inside(mob/living/carbon/human/H)
@@ -96,7 +96,7 @@
movedelay = 4 movedelay = 4
lights_power = 7 lights_power = 7
wreckage = /obj/structure/mecha_wreckage/ripley/deathripley wreckage = /obj/structure/mecha_wreckage/ripley/deathripley
step_energy_drain = 0 normal_step_energy_drain = 0
enclosed = TRUE enclosed = TRUE
enter_delay = 40 enter_delay = 40
silicon_icon_state = null silicon_icon_state = null