Files
GS13NG/code/modules/vehicles/speedbike.dm
CitadelStationBot 7aff4f588e [MIRROR] refactors how vehicles use offsets + multiseat (#1128)
* refactors how vehicles use offsets + multiseat

* RIDE
2017-05-28 15:13:04 -07:00

71 lines
2.1 KiB
Plaintext

/obj/vehicle/space/speedbike
name = "Speedbike"
icon = 'icons/obj/bike.dmi'
icon_state = "speedbike_blue"
layer = LYING_MOB_LAYER
var/overlay_state = "cover_blue"
var/static/mutable_appearance/overlay
/obj/vehicle/space/speedbike/buckle_mob(mob/living/M, force = 0, check_loc = 1)
. = ..()
riding_datum = new/datum/riding/space/speedbike
/obj/vehicle/space/speedbike/New()
. = ..()
overlay = overlay || mutable_appearance(icon, overlay_state, ABOVE_MOB_LAYER)
add_overlay(overlay)
/obj/vehicle/space/speedbike/Move(newloc,move_dir)
if(has_buckled_mobs())
new /obj/effect/temp_visual/dir_setting/speedbike_trail(loc,move_dir)
. = ..()
/obj/vehicle/space/speedbike/red
icon_state = "speedbike_red"
overlay_state = "cover_red"
//BM SPEEDWAGON
/obj/vehicle/space/speedbike/speedwagon
name = "BM Speedwagon"
desc = "Push it to the limit, walk along the razor's edge."
icon = 'icons/obj/car.dmi'
icon_state = "speedwagon"
layer = LYING_MOB_LAYER
overlay_state = "speedwagon_cover"
max_buckled_mobs = 4
var/crash_all = FALSE //CHAOS
pixel_y = -48 //to fix the offset when Initialized()
pixel_x = -48
/obj/vehicle/space/speedbike/speedwagon/Bump(atom/movable/A)
. = ..()
if(A.density && has_buckled_mobs())
var/atom/throw_target = get_edge_target_turf(A, src.dir)
if(crash_all)
A.throw_at(throw_target, 4, 3)
visible_message("<span class='danger'>[src] crashes into [A]!</span>")
playsound(src, 'sound/effects/bang.ogg', 50, 1)
if(ishuman(A))
var/mob/living/carbon/human/H = A
H.Weaken(5)
H.adjustStaminaLoss(30)
H.apply_damage(rand(20,35), BRUTE)
if(!crash_all)
H.throw_at(throw_target, 4, 3)
visible_message("<span class='danger'>[src] crashes into [H]!</span>")
playsound(src, 'sound/effects/bang.ogg', 50, 1)
/obj/vehicle/space/speedbike/speedwagon/buckle_mob(mob/living/M, force = 0, check_loc = 1)
. = ..()
riding_datum = new/datum/riding/space/speedwagon
/obj/vehicle/space/speedbike/speedwagon/Moved()
. = ..()
if(src.has_buckled_mobs())
for(var/atom/A in range(2, src))
if(!(A in src.buckled_mobs))
Bump(A)