diff --git a/code/modules/vehicle/janicart.dm b/code/modules/vehicle/janicart.dm index df595da50a7..c25254cf303 100644 --- a/code/modules/vehicle/janicart.dm +++ b/code/modules/vehicle/janicart.dm @@ -44,9 +44,14 @@ var/turf/tile = loc if(isturf(tile)) tile.clean_blood() + if(istype(tile, /turf/simulated/floor)) + var/turf/simulated/floor/F = tile + F.dirt = 0 for(var/A in tile) - if(is_cleanable(A)) - qdel(A) + if(istype(A, /obj/effect)) + if(is_cleanable(A)) + qdel(A) + /obj/vehicle/janicart/examine(mob/user) diff --git a/code/modules/vehicle/speedbike.dm b/code/modules/vehicle/speedbike.dm index 20dfc32e9a6..7d46114fb63 100644 --- a/code/modules/vehicle/speedbike.dm +++ b/code/modules/vehicle/speedbike.dm @@ -2,27 +2,25 @@ name = "Speedbike" icon = 'icons/obj/bike.dmi' icon_state = "speedbike_blue" - layer = OBJ_LAYER + layer = MOB_LAYER - 0.1 keytype = null vehicle_move_delay = 0 var/overlay_state = "cover_blue" var/image/overlay = null - var/datum/effect/system/ion_trail_follow/space_trail/ion_trail /obj/vehicle/space/speedbike/New() ..() overlay = image("icons/obj/bike.dmi", overlay_state) overlay.layer = MOB_LAYER + 0.1 overlays += overlay - ion_trail = new /datum/effect/system/ion_trail_follow/space_trail() - ion_trail.set_up(src) - ion_trail.start() /obj/effect/overlay/temp/speedbike_trail name = "speedbike trails" + icon = 'icons/effects/effects.dmi' icon_state = "ion_fade" - duration = 20 + duration = 10 randomdir = 0 + layer = MOB_LAYER - 0.2 /obj/effect/overlay/temp/speedbike_trail/New(loc,move_dir) ..() diff --git a/code/modules/vehicle/vehicle.dm b/code/modules/vehicle/vehicle.dm index 0d6de9677d6..bb112440944 100644 --- a/code/modules/vehicle/vehicle.dm +++ b/code/modules/vehicle/vehicle.dm @@ -12,6 +12,7 @@ var/next_vehicle_move = 0 //used for move delays var/vehicle_move_delay = 2 //tick delay between movements, lower = faster, higher = slower var/auto_door_open = TRUE + var/needs_gravity = 0//To allow non-space vehicles to move in no gravity or not, mostly for adminbus //Pixels var/generic_pixel_x = 0 //All dirs show this pixel_x for the driver @@ -83,6 +84,10 @@ handle_vehicle_offsets() +/obj/vehicle/bullet_act(obj/item/projectile/Proj) + if(buckled_mob) + buckled_mob.bullet_act(Proj) + //MOVEMENT /obj/vehicle/relaymove(mob/user, direction) if(user.incapacitated()) @@ -99,6 +104,15 @@ buckled_mob.buckled = null //Temporary, so Move() succeeds. buckled_mob.buckled = src //Restoring + if(istype(src.loc, /turf/simulated)) + var/turf/simulated/T = src.loc + if(T.wet == TURF_WET_LUBE) //Lube! Fall off! + playsound(src, 'sound/misc/slip.ogg', 50, 1, -3) + buckled_mob.Stun(7) + buckled_mob.Weaken(7) + unbuckle_mob() + step(src, dir) + handle_vehicle_layer() handle_vehicle_offsets() else @@ -133,6 +147,9 @@ if(pulledby) return 1 + if(needs_gravity) + return 1 + return 0 /obj/vehicle/space