diff --git a/code/modules/mining/mine_items.dm b/code/modules/mining/mine_items.dm index b11ba11dc6b..951b821a0f1 100644 --- a/code/modules/mining/mine_items.dm +++ b/code/modules/mining/mine_items.dm @@ -586,14 +586,13 @@ key = null var/image/I = new(icon = 'icons/obj/cart.dmi', icon_state = "[icon_state]_overlay", layer = src.layer + 0.2) //over mobs add_overlay(I) - turn_off() //so engine verbs are correctly set + turn_off() /obj/vehicle/train/cargo/engine/mining/attackby(obj/item/W, mob/user) if(istype(W, /obj/item/key/minecarts)) if(!key) user.drop_from_inventory(W, src) key = W - verbs += /obj/vehicle/train/cargo/engine/verb/remove_key return ..() diff --git a/code/modules/vehicles/bike.dm b/code/modules/vehicles/bike.dm index e6dfe96cdd1..8d59df8b494 100644 --- a/code/modules/vehicles/bike.dm +++ b/code/modules/vehicles/bike.dm @@ -1,7 +1,7 @@ /obj/vehicle/bike name = "space-bike" desc = "Space wheelies! Woo!" - desc_info = "Drag yourself onto the bike to mount it, toggle the engine to be able to drive around. Deploy the kickstand to prevent movement by driving and dragging. Drag it onto yourself to access its mounted storage. Resist to get off. Use ctrl-click to quickly toggle the engine if you're adjacent (only when vehicle is stationary). Alt-click will similarly toggle the kickstand." + desc_info = "Click on the bike, click resist, or type resist into the red bar below to get off. Drag yourself onto the bike to mount it, toggle the engine to be able to drive around. Deploy the kickstand to prevent movement by driving and dragging. Drag it onto yourself to access its mounted storage. Resist to get off. Use ctrl-click to quickly toggle the engine if you're adjacent (only when vehicle is stationary). Alt-click will similarly toggle the kickstand." icon = 'icons/obj/bike.dmi' icon_state = "bike_off" dir = SOUTH @@ -25,8 +25,8 @@ var/kickstand = TRUE var/can_hover = TRUE -/obj/vehicle/bike/Initialize() - . = ..() +/obj/vehicle/bike/setup_vehicle() + ..() ion = new(src) turn_off() add_overlay(image('icons/obj/bike.dmi', "[icon_state]_off_overlay", MOB_LAYER + 1)) @@ -36,16 +36,13 @@ /obj/vehicle/bike/CtrlClick(var/mob/user) if(Adjacent(user) && anchored) - toggle() + toggle_engine(user) else return ..() -/obj/vehicle/bike/verb/toggle() - set name = "Toggle Engine" - set category = "Vehicle" - set src in view(0) - - if(usr.incapacitated()) return +/obj/vehicle/bike/proc/toggle_engine(var/mob/user) + if(use_check_and_message(user)) + return if(!on) turn_on() @@ -61,23 +58,20 @@ else return ..() -/obj/vehicle/bike/verb/kickstand() - set name = "Toggle Kickstand" - set category = "Vehicle" - set src in view(0) - - if(usr.incapacitated()) return +/obj/vehicle/bike/proc/kickstand(var/mob/user) + if(use_check_and_message(user)) + return if(kickstand) - usr.visible_message("\The [usr] puts up \the [src]'s kickstand.", "You put up \the [src]'s kickstand.", "You hear a thunk.") + user.visible_message("\The [user] puts up \the [src]'s kickstand.", "You put up \the [src]'s kickstand.", "You hear a thunk.") playsound(src, 'sound/misc/bike_stand_up.ogg', 50, 1) else if(isturf(loc)) var/turf/T = loc if (T.is_hole) - to_chat(usr, "You don't think kickstands work here.") + to_chat(user, "You don't think kickstands work here.") return - usr.visible_message("\The [usr] puts down \the [src]'s kickstand.", "You put down \the [src]'s kickstand.", "You hear a thunk.") + user.visible_message("\The [user] puts down \the [src]'s kickstand.", "You put down \the [src]'s kickstand.", "You hear a thunk.") playsound(src, 'sound/misc/bike_stand_down.ogg', 50, 1) if(pulledby) pulledby.stop_pulling() diff --git a/code/modules/vehicles/cargo_train.dm b/code/modules/vehicles/cargo_train.dm index 83281d62c94..9d8d0a795b1 100644 --- a/code/modules/vehicles/cargo_train.dm +++ b/code/modules/vehicles/cargo_train.dm @@ -1,7 +1,7 @@ /obj/vehicle/train/cargo/engine name = "cargo train tug" desc = "A ridable electric car designed for pulling cargo trolleys." - desc_info = "Use ctrl-click to quickly toggle the engine if you're adjacent (only when vehicle is stationary). Alt-click will grab the keys, if present." + desc_info = "Click resist, or type resist into the red bar below to get off. Use ctrl-click to quickly toggle the engine if you're adjacent (only when vehicle is stationary). Alt-click will grab the keys, if present. If latched, you can use a wrench to unlatch." icon = 'icons/obj/vehicles.dmi' icon_state = "cargo_engine" on = 0 @@ -27,6 +27,7 @@ /obj/vehicle/train/cargo/trolley name = "cargo train trolley" + desc_info = "You can use a wrench to unlatch this." icon = 'icons/obj/vehicles.dmi' icon_state = "cargo_trailer" anchored = 0 @@ -41,13 +42,16 @@ //------------------------------------------- // Standard procs //------------------------------------------- -/obj/vehicle/train/cargo/engine/Initialize() - . = ..() +/obj/vehicle/train/cargo/engine/setup_vehicle() + ..() + setup_engine() + +/obj/vehicle/train/cargo/engine/proc/setup_engine() cell = new /obj/item/cell/high(src) key = new(src) var/image/I = new(icon = icon, icon_state = "[icon_state]_overlay", layer = src.layer + 0.2) //over mobs add_overlay(I) - turn_off() //so engine verbs are correctly set + turn_off() /obj/vehicle/train/cargo/engine/attack_hand(mob/user) if(use_check_and_message(user)) @@ -93,11 +97,11 @@ if(href_list["toggle_engine"]) if(!on) - start_engine() + start_engine(usr) else - stop_engine() + stop_engine(usr) if(href_list["key"]) - do_remove_key(usr) + remove_key(usr) if(href_list["unlatch"]) tow.unattach(usr) SSvueui.check_uis_for_change(src) @@ -131,7 +135,6 @@ user.drop_from_inventory(W, src) key = W to_chat(user, SPAN_NOTICE("You slide the key into the ignition.")) - verbs += /obj/vehicle/train/cargo/engine/verb/remove_key else to_chat(user, SPAN_WARNING("\The [src] already has a key inserted.")) return @@ -186,25 +189,6 @@ ..() update_stats() - verbs -= /obj/vehicle/train/cargo/engine/verb/stop_engine - verbs -= /obj/vehicle/train/cargo/engine/verb/start_engine - - if(on) - verbs += /obj/vehicle/train/cargo/engine/verb/stop_engine - else - verbs += /obj/vehicle/train/cargo/engine/verb/start_engine - -/obj/vehicle/train/cargo/engine/turn_off() - ..() - - verbs -= /obj/vehicle/train/cargo/engine/verb/stop_engine - verbs -= /obj/vehicle/train/cargo/engine/verb/start_engine - - if(!on) - verbs += /obj/vehicle/train/cargo/engine/verb/start_engine - else - verbs += /obj/vehicle/train/cargo/engine/verb/stop_engine - /obj/vehicle/train/cargo/RunOver(var/mob/living/carbon/human/H) var/list/parts = list(BP_HEAD, BP_CHEST, BP_L_LEG, BP_R_LEG, BP_L_ARM, BP_R_ARM) @@ -262,77 +246,51 @@ /obj/vehicle/train/cargo/engine/CtrlClick(var/mob/user) if(Adjacent(user)) if(on) - stop_engine() + stop_engine(usr) else - start_engine() + start_engine(usr) else return ..() /obj/vehicle/train/cargo/engine/AltClick(var/mob/user) if(Adjacent(user)) - remove_key() + remove_key(user) else return ..() -/obj/vehicle/train/cargo/engine/verb/start_engine() - set name = "Start engine" - set category = "Vehicle" - set src in view(0) - - if(!ishuman(usr)) - return - +/obj/vehicle/train/cargo/engine/proc/start_engine(var/mob/user) if(on) - to_chat(usr, "The engine is already running.") + to_chat(user, SPAN_WARNING("The engine is already running.")) return turn_on() if(on) - to_chat(usr, "You start [src]'s engine.") + to_chat(user, SPAN_NOTICE("You start \the [src]'s engine.")) else if(cell.charge < charge_use) - to_chat(usr, "[src] is out of power.") - -/obj/vehicle/train/cargo/engine/verb/stop_engine() - set name = "Stop engine" - set category = "Vehicle" - set src in view(0) - - if(!istype(usr, /mob/living/carbon/human)) - return + to_chat(user, SPAN_WARNING("\The [src] is out of power.")) +/obj/vehicle/train/cargo/engine/proc/stop_engine(var/mob/user) if(!on) - to_chat(usr, "The engine is already stopped.") + to_chat(user, SPAN_WARNING("The engine is already stopped.")) return turn_off() - if (!on) - to_chat(usr, "You stop [src]'s engine.") - -/obj/vehicle/train/cargo/engine/verb/remove_key() - set name = "Remove key" - set category = "Vehicle" - set src in view(0) - - if(!istype(usr, /mob/living/carbon/human)) - return + if(!on) + to_chat(user, SPAN_NOTICE("You stop [src]'s engine.")) +/obj/vehicle/train/cargo/engine/proc/remove_key(var/mob/user) if(!key) to_chat(usr, SPAN_WARNING("\The [src] doesn't have a key inserted!")) return if(load && load != usr) return - do_remove_key(usr) - -/obj/vehicle/train/cargo/engine/proc/do_remove_key(var/mob/user) if(on) turn_off() user.put_in_hands(key) key = null - verbs -= /obj/vehicle/train/cargo/engine/verb/remove_key - /obj/vehicle/train/cargo/engine/emag_act(var/remaining_charges, mob/user) . = ..() if(.) diff --git a/code/modules/vehicles/pussywagon.dm b/code/modules/vehicles/pussywagon.dm index daca0d8c3da..98369c5195b 100644 --- a/code/modules/vehicles/pussywagon.dm +++ b/code/modules/vehicles/pussywagon.dm @@ -18,13 +18,11 @@ icon_state = "keys" w_class = ITEMSIZE_TINY -/obj/vehicle/train/cargo/engine/pussywagon/Initialize() - . = ..() +/obj/vehicle/train/cargo/engine/pussywagon/setup_engine() cell = new /obj/item/cell/high(src) key = null - verbs -= /obj/vehicle/train/cargo/engine/verb/remove_key update_icon() - turn_off() //so engine verbs are correctly set + turn_off() /obj/vehicle/train/cargo/engine/pussywagon/vueui_data_change(list/data, mob/user, datum/vueui/ui) data = ..() @@ -52,12 +50,12 @@ return if(href_list["toggle_hoover"]) - toggle_hoover() + toggle_hoover(usr) if(href_list["empty_hoover"]) var/obj/vehicle/train/cargo/trolley/pussywagon/PT = tow PT.empty_hoover(usr) if(href_list["toggle_mops"]) - toggle_mop() + toggle_mop(usr) SSvueui.check_uis_for_change(src) /obj/vehicle/train/cargo/engine/pussywagon/attackby(obj/item/W as obj, mob/user as mob) @@ -66,7 +64,6 @@ user.drop_from_inventory(W, src) key = W to_chat(user, SPAN_NOTICE("You slide the key into the ignition.")) - verbs += /obj/vehicle/train/cargo/engine/verb/remove_key else to_chat(user, SPAN_WARNING("\The [src] already has a key inserted.")) return @@ -80,9 +77,6 @@ ..() update_stats() - verbs += /obj/vehicle/train/cargo/engine/pussywagon/verb/toggle_mop - verbs += /obj/vehicle/train/cargo/engine/pussywagon/verb/toggle_hoover - /obj/vehicle/train/cargo/engine/pussywagon/turn_off() ..() @@ -91,31 +85,17 @@ var/obj/vehicle/train/cargo/trolley/pussywagon/PW = tow PW.engine_off() - verbs -= /obj/vehicle/train/cargo/engine/pussywagon/verb/toggle_mop - verbs -= /obj/vehicle/train/cargo/engine/pussywagon/verb/toggle_hoover - -/obj/vehicle/train/cargo/engine/pussywagon/verb/toggle_mop() - set name = "Toggle Mop-o-matic" - set category = "Vehicle" - set src in view(0) - - if(usr.incapacitated()) - return - +/obj/vehicle/train/cargo/engine/pussywagon/proc/toggle_mop(var/mob/user) if(on && tow) if(istype(tow,/obj/vehicle/train/cargo/trolley/pussywagon)) var/obj/vehicle/train/cargo/trolley/pussywagon/PW = tow if(!PW.bucket) - to_chat(usr, SPAN_WARNING("You must insert a reagent container first!")) + to_chat(user, SPAN_WARNING("You must insert a reagent container first!")) return PW.mop_toggle() -/obj/vehicle/train/cargo/engine/pussywagon/verb/toggle_hoover() - set name = "Toggle Space Hoover" - set category = "Vehicle" - set src in view(0) - - if(usr.incapacitated()) +/obj/vehicle/train/cargo/engine/pussywagon/proc/toggle_hoover(var/mob/user) + if(use_check_and_message(user)) return if(on && tow) @@ -161,6 +141,7 @@ /obj/vehicle/train/cargo/trolley/pussywagon name = "janicart deluxe trolley" desc = "The trolley of the janicart deluxe, equipped with dual rotary mop and a NT-X1 Vacuum Cleaner." + desc_info = "You can unlatch this from the control console of the janicart." icon = 'icons/obj/vehicles.dmi' icon_state = "jantrolley" diff --git a/code/modules/vehicles/train.dm b/code/modules/vehicles/train.dm index 76b6f9149f3..039c5390398 100644 --- a/code/modules/vehicles/train.dm +++ b/code/modules/vehicles/train.dm @@ -23,8 +23,8 @@ //------------------------------------------- // Standard procs //------------------------------------------- -/obj/vehicle/train/Initialize() - . = ..() +/obj/vehicle/train/setup_vehicle() + ..() for(var/obj/vehicle/train/T in orange(1, src)) latch(T) @@ -119,20 +119,12 @@ else if(load) unload(user) //unload if loaded -/obj/vehicle/train/verb/unlatch_v() - set name = "Unlatch" - set desc = "Unhitches this train from the one in front of it." - set category = "Vehicle" - set src in view(1) - - if(!istype(usr, /mob/living/carbon/human)) +/obj/vehicle/train/attackby(obj/item/W, mob/user) + if(W.iswrench()) + playsound(loc, W.usesound, 70, FALSE) + unattach(user) return - - if(!usr.canmove || usr.stat || usr.restrained() || !Adjacent(usr)) - return - - unattach(usr) - + return ..() //------------------------------------------- // Latching/unlatching procs diff --git a/code/modules/vehicles/vehicle.dm b/code/modules/vehicles/vehicle.dm index 2a29f4a50a1..6b155441264 100644 --- a/code/modules/vehicles/vehicle.dm +++ b/code/modules/vehicles/vehicle.dm @@ -42,12 +42,11 @@ //------------------------------------------- // Standard procs //------------------------------------------- -/obj/vehicle/New() - ..() - //spawn the cell you want in each vehicle - /obj/vehicle/Initialize() . = ..() + setup_vehicle() + +/obj/vehicle/proc/setup_vehicle() LAZYADD(can_buckle, /mob/living) /obj/vehicle/Move() diff --git a/html/changelogs/geeves-non_lag_vehicles.yml b/html/changelogs/geeves-non_lag_vehicles.yml new file mode 100644 index 00000000000..0324b90d569 --- /dev/null +++ b/html/changelogs/geeves-non_lag_vehicles.yml @@ -0,0 +1,7 @@ +author: Geeves + +delete-after: True + +changes: + - tweak: "Vehicle actions are no longer done via verbs in the top right, or the right click menu. Check the extra examine info for instructions on how to operate vehicles." + - tweak: "You now use wrenches to unlatch vehicles." \ No newline at end of file