Files
Bubberstation/code/modules/vehicles/lavaboat.dm
SkyratBot 5165d42c1c [MIRROR] Ridden vehicles pass bullets, checks for new incapacitation traits for whether or not you fall off (#1521)
* Ridden vehicles pass bullets, checks for new incapacitation traits for whether or not you fall off (#54376)

Ridden vehicles now pass any objects that normally pass tables. This includes bullets, thrown objects, and probably dwarves?

Ridden vehicles check for the various incapacitation traits instead of just usable hands for whether you fall off. Doesn't fix corpses buckled to these objects but that'll require more work to fix because it's all tied into relay_move.

This doesn't affect any ridden object that doesn't checks for hand availability. Like skateboards and wheelchairs (although how exactly your wheelchair is moving without hands or mechanical parts is beyond me).

* Ridden vehicles pass bullets, checks for new incapacitation traits for whether or not you fall off

Co-authored-by: necromanceranne <40847847+necromanceranne@users.noreply.github.com>
2020-10-30 17:28:08 +00:00

72 lines
2.2 KiB
Plaintext

//Boat
/obj/vehicle/ridden/lavaboat
name = "lava boat"
desc = "A boat used for traversing lava."
icon_state = "goliath_boat"
icon = 'icons/obj/lavaland/dragonboat.dmi'
var/allowed_turf = /turf/open/lava
resistance_flags = LAVA_PROOF | FIRE_PROOF
can_buckle = TRUE
rider_check_flags = REQUIRES_LEGS | REQUIRES_ARMS | UNBUCKLE_DISABLED_RIDER
/obj/vehicle/ridden/lavaboat/Initialize()
. = ..()
var/datum/component/riding/D = LoadComponent(/datum/component/riding)
D.keytype = /obj/item/oar
D.allowed_turf_typecache = typecacheof(allowed_turf)
/obj/item/oar
name = "oar"
icon = 'icons/obj/vehicles.dmi'
icon_state = "oar"
inhand_icon_state = "oar"
lefthand_file = 'icons/mob/inhands/misc/lavaland_lefthand.dmi'
righthand_file = 'icons/mob/inhands/misc/lavaland_righthand.dmi'
desc = "Not to be confused with the kind Research hassles you for."
force = 12
w_class = WEIGHT_CLASS_NORMAL
resistance_flags = LAVA_PROOF | FIRE_PROOF
/datum/crafting_recipe/oar
name = "Goliath Bone Oar"
result = /obj/item/oar
reqs = list(/obj/item/stack/sheet/bone = 2)
time = 15
category = CAT_PRIMAL
/datum/crafting_recipe/boat
name = "Goliath Hide Boat"
result = /obj/vehicle/ridden/lavaboat
reqs = list(/obj/item/stack/sheet/animalhide/goliath_hide = 3)
time = 50
category = CAT_PRIMAL
//Dragon Boat
/obj/item/ship_in_a_bottle
name = "ship in a bottle"
desc = "A tiny ship inside a bottle."
icon = 'icons/obj/lavaland/artefacts.dmi'
icon_state = "ship_bottle"
/obj/item/ship_in_a_bottle/attack_self(mob/user)
to_chat(user, "<span class='notice'>You're not sure how they get the ships in these things, but you're pretty sure you know how to get it out.</span>")
playsound(user.loc, 'sound/effects/glassbr1.ogg', 100, TRUE)
new /obj/vehicle/ridden/lavaboat/dragon(get_turf(src))
qdel(src)
/obj/vehicle/ridden/lavaboat/dragon
name = "mysterious boat"
desc = "This boat moves where you will it, without the need for an oar."
icon_state = "dragon_boat"
/obj/vehicle/ridden/lavaboat/dragon/Initialize()
. = ..()
var/datum/component/riding/D = LoadComponent(/datum/component/riding)
D.vehicle_move_delay = 1
D.set_riding_offsets(RIDING_OFFSET_ALL, list(TEXT_NORTH = list(1, 2), TEXT_SOUTH = list(1, 2), TEXT_EAST = list(1, 2), TEXT_WEST = list( 1, 2)))
D.keytype = null