diff --git a/code/modules/mob/living/carbon/human/human_movement.dm b/code/modules/mob/living/carbon/human/human_movement.dm index fad2b7cf259..a3cd39d2bfd 100644 --- a/code/modules/mob/living/carbon/human/human_movement.dm +++ b/code/modules/mob/living/carbon/human/human_movement.dm @@ -126,6 +126,11 @@ if(!buckled && shoes) // Shoes can make you go faster. . += shoes.slowdown + //VOREStation Addition Start + if(buckled && istype(buckled, /obj/machinery/power/rtg/d_type_reg)) + . += shoes.slowdown + //VOREStation Addition End + // Loop through some slots, and add up their slowdowns. // Includes slots which can provide armor, the back slot, and suit storage. for(var/obj/item/I in list(wear_suit, w_uniform, back, gloves, head, s_store)) diff --git a/code/modules/power/port_gen_vr.dm b/code/modules/power/port_gen_vr.dm index 4d688f3cbcb..10697ea2641 100644 --- a/code/modules/power/port_gen_vr.dm +++ b/code/modules/power/port_gen_vr.dm @@ -283,7 +283,7 @@ asplod() /obj/machinery/power/rtg/d_type_reg - name = "D-Type Rotary Electric Generator" + name = "d-type rotary electric generator" desc = "It looks kind of like a large hamster wheel." icon = 'icons/obj/power_vrx96.dmi' icon_state = "reg" @@ -301,9 +301,11 @@ /obj/machinery/power/rtg/d_type_reg/Initialize() . = ..() - dir = EAST //Otherwise the mobs will look funny pixel_x = -32 +/obj/machinery/power/rtg/d_type_reg/Destroy() + . = ..() + /obj/machinery/power/rtg/d_type_reg/user_buckle_mob(mob/living/M, mob/user, var/forced = FALSE, var/silent = TRUE) . = ..() M.pixel_y = 8 @@ -329,14 +331,14 @@ /obj/machinery/power/rtg/d_type_reg/update_icon() if(panel_open) icon_state = "reg-o" - else if(buckled_mobs.len >= 1) + else if(buckled_mobs && buckled_mobs.len > 0) icon_state = "reg-a" else icon_state = "reg" /obj/machinery/power/rtg/d_type_reg/process() ..() - if(buckled_mobs.len >= 1) + if(buckled_mobs && buckled_mobs.len > 0) for(var/mob/living/L in buckled_mobs) runner_process(L) else @@ -344,19 +346,27 @@ update_icon() /obj/machinery/power/rtg/d_type_reg/proc/runner_process(var/mob/living/runner) + if(runner.stat != CONSCIOUS) + unbuckle_mob(runner) + runner.visible_message("\The [runner], topples off of \the [src]!") + return var/cool_rotations if(ishuman(runner)) var/mob/living/carbon/human/R = runner - cool_rotations = 2 - R.species.slowdown + cool_rotations = R.movement_delay() else if (isanimal(runner)) var/mob/living/simple_mob/R = runner - cool_rotations = R.movement_cooldown + cool_rotations = R.movement_delay() + log_and_message_admins("I got [cool_rotations] from [runner]") if(cool_rotations <= 0) - cool_rotations = 1 + cool_rotations = 0.5 + log_and_message_admins("That's less than 1 so let's make it [cool_rotations]") cool_rotations = default_power_gen / cool_rotations + log_and_message_admins("I am dividing [default_power_gen] by that much.") switch(runner.nutrition) if(1000 to INFINITY) //VERY WELL FED, ZOOM!!!! cool_rotations *= (runner.nutrition * 0.001) + log_and_message_admins("[runner] is over fed so we are producing over 100%") if(500 to 1000) //Well fed! cool_rotations = cool_rotations if(400 to 500) @@ -372,9 +382,10 @@ runner.visible_message("\The [runner], panting and exhausted hops off of \the [src]!") if(part_mult > 1) cool_rotations += (cool_rotations * (part_mult - 1)) / 4 + log_and_message_admins("The part multiplier is [part_mult].") power_gen = cool_rotations + log_and_message_admins("We are outputting [cool_rotations].") runner.nutrition -- - runner.dir = dir /obj/machinery/power/rtg/d_type_reg/emp_act(severity) return