mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-07-21 12:04:48 +01:00
Pimpin' ride floor buffer now can be toggled on/off v2 (#20762)
* Pimpin' ride floor buffer now can be toggled * Early return
This commit is contained in:
@@ -5,6 +5,10 @@
|
||||
icon_state = "pussywagon"
|
||||
key_type = /obj/item/key/janitor
|
||||
var/obj/item/storage/bag/trash/mybag
|
||||
var/buffer_installed = FALSE
|
||||
/// How much speed the janicart loses while the buffer is active
|
||||
var/buffer_delay = 1
|
||||
/// Does it clean the tile under it?
|
||||
var/floorbuffer = FALSE
|
||||
|
||||
/obj/vehicle/janicart/Destroy()
|
||||
@@ -30,12 +34,10 @@
|
||||
buckled_mob.pixel_x = 12
|
||||
buckled_mob.pixel_y = 7
|
||||
|
||||
|
||||
/obj/item/key/janitor
|
||||
desc = "A keyring with a small steel key, and a pink fob reading \"Pussy Wagon\"."
|
||||
icon_state = "keyjanitor"
|
||||
|
||||
|
||||
/obj/item/janiupgrade
|
||||
name = "floor buffer upgrade"
|
||||
desc = "An upgrade for mobile janicarts."
|
||||
@@ -43,9 +45,41 @@
|
||||
icon_state = "upgrade"
|
||||
origin_tech = "materials=3;engineering=4"
|
||||
|
||||
/datum/action/floor_buffer
|
||||
name = "Toggle Floor Buffer"
|
||||
desc = "Movement speed is decreased while active."
|
||||
icon_icon = 'icons/obj/vehicles.dmi'
|
||||
button_icon_state = "upgrade"
|
||||
|
||||
/datum/action/floor_buffer/Trigger()
|
||||
. = ..()
|
||||
var/obj/vehicle/janicart/J = target
|
||||
if(!J.floorbuffer)
|
||||
J.floorbuffer = TRUE
|
||||
J.vehicle_move_delay += J.buffer_delay
|
||||
else
|
||||
J.floorbuffer = FALSE
|
||||
J.vehicle_move_delay -= J.buffer_delay
|
||||
to_chat(usr, "<span class='notice'>The floor buffer is now [J.floorbuffer ? "active" : "deactivated"].</span>")
|
||||
|
||||
/obj/vehicle/janicart/post_buckle_mob(mob/living/M)
|
||||
. = ..()
|
||||
if(!buffer_installed)
|
||||
return
|
||||
var/datum/action/floor_buffer/floorbuffer_action = new(src)
|
||||
if(has_buckled_mobs())
|
||||
floorbuffer_action.Grant(M)
|
||||
else
|
||||
floorbuffer_action.Remove(M)
|
||||
|
||||
/obj/vehicle/janicart/post_unbuckle_mob(mob/living/M)
|
||||
for(var/datum/action/floor_buffer/floorbuffer_action in M.actions)
|
||||
floorbuffer_action.Remove(M)
|
||||
return ..()
|
||||
|
||||
/obj/vehicle/janicart/Move(atom/OldLoc, Dir)
|
||||
. = ..()
|
||||
if(floorbuffer)
|
||||
if(floorbuffer && has_buckled_mobs())
|
||||
var/turf/tile = loc
|
||||
if(isturf(tile))
|
||||
tile.clean_blood()
|
||||
@@ -53,14 +87,11 @@
|
||||
if(E.is_cleanable())
|
||||
qdel(E)
|
||||
|
||||
|
||||
|
||||
/obj/vehicle/janicart/examine(mob/user)
|
||||
. = ..()
|
||||
if(floorbuffer)
|
||||
if(buffer_installed)
|
||||
. += "It has been upgraded with a floor buffer."
|
||||
|
||||
|
||||
/obj/vehicle/janicart/attackby(obj/item/I, mob/user, params)
|
||||
var/fail_msg = "<span class='notice'>There is already one of those in [src].</span>"
|
||||
|
||||
@@ -76,10 +107,10 @@
|
||||
update_icon(UPDATE_OVERLAYS)
|
||||
return
|
||||
if(istype(I, /obj/item/janiupgrade))
|
||||
if(floorbuffer)
|
||||
if(buffer_installed)
|
||||
to_chat(user, fail_msg)
|
||||
return
|
||||
floorbuffer = TRUE
|
||||
buffer_installed = TRUE
|
||||
qdel(I)
|
||||
to_chat(user,"<span class='notice'>You upgrade [src] with [I].</span>")
|
||||
update_icon(UPDATE_OVERLAYS)
|
||||
@@ -93,10 +124,9 @@
|
||||
. = ..()
|
||||
if(mybag)
|
||||
. += "cart_garbage"
|
||||
if(floorbuffer)
|
||||
if(buffer_installed)
|
||||
. += "cart_buffer"
|
||||
|
||||
|
||||
/obj/vehicle/janicart/attack_hand(mob/user)
|
||||
if(..())
|
||||
return TRUE
|
||||
|
||||
Reference in New Issue
Block a user