mirror of
https://github.com/VOREStation/VOREStation.git
synced 2026-08-21 19:19:12 +01:00
329 lines
9.7 KiB
Plaintext
329 lines
9.7 KiB
Plaintext
/datum/riding/taur
|
|
keytype = /obj/item/weapon/material/twohanded/riding_crop // Crack!
|
|
nonhuman_key_exemption = FALSE // If true, nonhumans who can't hold keys don't need them, like borgs and simplemobs.
|
|
key_name = "a riding crop" // What the 'keys' for the thing being rided on would be called.
|
|
only_one_driver = TRUE // If true, only the person in 'front' (first on list of riding mobs) can drive.
|
|
|
|
/datum/riding/taur/handle_vehicle_layer()
|
|
if(ridden.has_buckled_mobs())
|
|
ridden.layer = initial(ridden.layer)
|
|
else
|
|
var/mob/living/L = ridden
|
|
if(!(istype(L) && (L.status_flags & HIDING)))
|
|
ridden.layer = initial(ridden.layer)
|
|
|
|
/datum/riding/taur/ride_check(mob/living/M)
|
|
var/mob/living/L = ridden
|
|
if(L.stat)
|
|
force_dismount(M)
|
|
return FALSE
|
|
return TRUE
|
|
|
|
/datum/riding/taur/force_dismount(mob/M)
|
|
. = ..()
|
|
ridden.visible_message("<span class='notice'>[M] stops riding [ridden]!</span>")
|
|
|
|
//Hoooo boy.
|
|
/datum/riding/taur/get_offsets(pass_index) // list(dir = x, y, layer)
|
|
var/mob/living/L = ridden
|
|
var/scale_x = L.icon_scale_x * L.size_multiplier //VOREStation Edit
|
|
var/scale_y = L.icon_scale_y * L.size_multiplier //VOREStation Edit
|
|
|
|
var/list/values = list(
|
|
"[NORTH]" = list(0, 8*scale_y, ABOVE_MOB_LAYER),
|
|
"[SOUTH]" = list(0, 8*scale_y, BELOW_MOB_LAYER),
|
|
"[EAST]" = list(-10*scale_x, 8*scale_y, ABOVE_MOB_LAYER),
|
|
"[WEST]" = list(10*scale_x, 8*scale_y, ABOVE_MOB_LAYER))
|
|
|
|
return values
|
|
|
|
//Human overrides for taur riding
|
|
/mob/living/carbon/human
|
|
max_buckled_mobs = 1 //Yeehaw
|
|
can_buckle = TRUE
|
|
buckle_movable = TRUE
|
|
buckle_lying = FALSE
|
|
|
|
/mob/living/carbon/human/buckle_mob(mob/living/M, forced = FALSE, check_loc = TRUE)
|
|
if(forced)
|
|
return ..() // Skip our checks
|
|
if(!istaurtail(tail_style))
|
|
return FALSE
|
|
else
|
|
var/datum/sprite_accessory/tail/taur/taurtype = tail_style
|
|
if(!taurtype.can_ride)
|
|
return FALSE
|
|
if(lying)
|
|
return FALSE
|
|
if(!ishuman(M))
|
|
return FALSE
|
|
if(M in buckled_mobs)
|
|
return FALSE
|
|
// if(M.size_multiplier > size_multiplier * 1.2)
|
|
// to_chat(M,"<span class='warning'>This isn't a pony show! You need to be bigger for them to ride.</span>")
|
|
// return FALSE
|
|
if(M.loc != src.loc)
|
|
if(M.Adjacent(src))
|
|
M.forceMove(get_turf(src))
|
|
|
|
var/mob/living/carbon/human/H = M
|
|
|
|
if(istaurtail(H.tail_style))
|
|
to_chat(src,"<span class='warning'>Too many legs. TOO MANY LEGS!!</span>")
|
|
return FALSE
|
|
|
|
. = ..()
|
|
if(.)
|
|
buckled_mobs[M] = "riding"
|
|
|
|
/mob/living/carbon/human/MouseDrop_T(mob/living/M, mob/living/user) //Prevention for forced relocation caused by can_buckle. Base proc has no other use.
|
|
return
|
|
|
|
/mob/living/carbon/human/proc/taur_mount(var/mob/living/M in living_mobs(1))
|
|
set name = "Taur Mount/Dismount"
|
|
set category = "Abilities"
|
|
set desc = "Let people ride on you."
|
|
|
|
if(LAZYLEN(buckled_mobs))
|
|
var/datum/riding/R = riding_datum
|
|
for(var/rider in buckled_mobs)
|
|
R.force_dismount(rider)
|
|
return
|
|
if (stat != CONSCIOUS)
|
|
return
|
|
if(!can_buckle || !istype(M) || !M.Adjacent(src) || M.buckled)
|
|
return
|
|
if(buckle_mob(M))
|
|
visible_message("<span class='notice'>[M] starts riding [name]!</span>")
|
|
|
|
/mob/living/carbon/human/attack_hand(mob/user as mob)
|
|
if(LAZYLEN(buckled_mobs))
|
|
//We're getting off!
|
|
if(user in buckled_mobs)
|
|
riding_datum.force_dismount(user)
|
|
//We're kicking everyone off!
|
|
if(user == src)
|
|
for(var/rider in buckled_mobs)
|
|
riding_datum.force_dismount(rider)
|
|
else
|
|
. = ..()
|
|
|
|
/*
|
|
////////////////////////////
|
|
/ =--------------------= /
|
|
/ == Taur Definitions == /
|
|
/ =--------------------= /
|
|
////////////////////////////
|
|
*/
|
|
|
|
// Taur sprites are now a subtype of tail since they are mutually exclusive anyway.
|
|
|
|
/datum/sprite_accessory/tail/taur
|
|
name = "You should not see this..."
|
|
icon = 'icons/mob/human_races/sprite_accessories/taurs.dmi'
|
|
do_colouration = 1 // Yes color, using tail color
|
|
color_blend_mode = ICON_MULTIPLY // The sprites for taurs are designed for ICON_MULTIPLY
|
|
em_block = TRUE
|
|
|
|
var/icon/suit_sprites = null //File for suit sprites, if any.
|
|
var/icon/under_sprites = null
|
|
|
|
var/icon_sprite_tag // This is where we put stuff like _Horse, so we can assign icons easier.
|
|
|
|
var/can_ride = FALSE //whether we're real rideable taur or just in that category.
|
|
|
|
hide_body_parts = list(BP_L_LEG, BP_L_FOOT, BP_R_LEG, BP_R_FOOT) //Exclude pelvis just in case.
|
|
clip_mask_icon = 'icons/mob/human_races/sprite_accessories/taurs.dmi'
|
|
clip_mask_state = "taur_clip_mask_def" //Used to clip off the lower part of suits & uniforms.
|
|
|
|
// Species-unique long tails/taurhalves
|
|
|
|
// Tails/taurhalves for everyone
|
|
|
|
/datum/sprite_accessory/tail/taur/wolf
|
|
name = "Wolf (Taur)"
|
|
icon_state = "wolf_s"
|
|
under_sprites = 'icons/mob/taursuits_wolf.dmi'
|
|
suit_sprites = 'icons/mob/taursuits_wolf.dmi'
|
|
icon_sprite_tag = "wolf"
|
|
|
|
/datum/sprite_accessory/tail/taur/fatwolf
|
|
name = "Fat Wolf (Taur)"
|
|
icon_state = "fatwolf_s"
|
|
icon_sprite_tag = "wolf" //This could be modified later.
|
|
|
|
/datum/sprite_accessory/tail/taur/wolf/wolf_2c
|
|
name = "Wolf dual-color (Taur)"
|
|
icon_state = "wolf_s"
|
|
extra_overlay = "wolf_markings"
|
|
//icon_sprite_tag = "wolf2c"
|
|
|
|
/datum/sprite_accessory/tail/taur/wolf/fatwolf_2c
|
|
name = "Fat Wolf dual-color (Taur)"
|
|
icon_state = "fatwolf_s"
|
|
extra_overlay = "fatwolf_markings"
|
|
//icon_sprite_tag = "fatwolf2c"
|
|
|
|
/datum/sprite_accessory/tail/taur/wolf/synthwolf
|
|
name = "SynthWolf dual-color (Taur)"
|
|
icon_state = "synthwolf_s"
|
|
extra_overlay = "synthwolf_markings"
|
|
//icon_sprite_tag = "synthwolf"
|
|
|
|
/datum/sprite_accessory/tail/taur/naga
|
|
name = "Naga (Taur)"
|
|
icon_state = "naga_s"
|
|
suit_sprites = 'icons/mob/taursuits_naga.dmi'
|
|
//icon_sprite_tag = "naga"
|
|
|
|
/datum/sprite_accessory/tail/taur/naga/naga_2c
|
|
name = "Naga dual-color (Taur)"
|
|
icon_state = "naga_s"
|
|
extra_overlay = "naga_markings"
|
|
//icon_sprite_tag = "naga2c"
|
|
|
|
/datum/sprite_accessory/tail/taur/horse
|
|
name = "Horse (Taur)"
|
|
icon_state = "horse_s"
|
|
under_sprites = 'icons/mob/taursuits_horse.dmi'
|
|
suit_sprites = 'icons/mob/taursuits_horse.dmi'
|
|
icon_sprite_tag = "horse"
|
|
|
|
/datum/sprite_accessory/tail/taur/horse/synthhorse
|
|
name = "SynthHorse dual-color (Taur)"
|
|
icon_state = "synthhorse_s"
|
|
extra_overlay = "synthhorse_markings"
|
|
//icon_sprite_tag = "synthhorse"
|
|
|
|
/datum/sprite_accessory/tail/taur/cow
|
|
name = "Cow (Taur)"
|
|
icon_state = "cow_s"
|
|
suit_sprites = 'icons/mob/taursuits_cow.dmi'
|
|
icon_sprite_tag = "cow"
|
|
|
|
/datum/sprite_accessory/tail/taur/deer
|
|
name = "Deer dual-color (Taur)"
|
|
icon_state = "deer_s"
|
|
extra_overlay = "deer_markings"
|
|
suit_sprites = 'icons/mob/taursuits_deer.dmi'
|
|
icon_sprite_tag = "deer"
|
|
|
|
/datum/sprite_accessory/tail/taur/lizard
|
|
name = "Lizard (Taur)"
|
|
icon_state = "lizard_s"
|
|
suit_sprites = 'icons/mob/taursuits_lizard.dmi'
|
|
icon_sprite_tag = "lizard"
|
|
|
|
/datum/sprite_accessory/tail/taur/lizard/lizard_2c
|
|
name = "Lizard dual-color (Taur)"
|
|
icon_state = "lizard_s"
|
|
extra_overlay = "lizard_markings"
|
|
//icon_sprite_tag = "lizard2c"
|
|
|
|
/datum/sprite_accessory/tail/taur/lizard/synthlizard
|
|
name = "SynthLizard dual-color (Taur)"
|
|
icon_state = "synthlizard_s"
|
|
extra_overlay = "synthlizard_markings"
|
|
//icon_sprite_tag = "synthlizard"
|
|
|
|
/datum/sprite_accessory/tail/taur/spider
|
|
name = "Spider (Taur)"
|
|
icon_state = "spider_s"
|
|
suit_sprites = 'icons/mob/taursuits_spider.dmi'
|
|
icon_sprite_tag = "spider"
|
|
|
|
/datum/sprite_accessory/tail/taur/tents
|
|
name = "Tentacles (Taur)"
|
|
icon_state = "tent_s"
|
|
icon_sprite_tag = "tentacle"
|
|
can_ride = 0
|
|
|
|
/datum/sprite_accessory/tail/taur/feline
|
|
name = "Feline (Taur)"
|
|
icon_state = "feline_s"
|
|
suit_sprites = 'icons/mob/taursuits_feline.dmi'
|
|
icon_sprite_tag = "feline"
|
|
|
|
/datum/sprite_accessory/tail/taur/fatfeline
|
|
name = "Fat Feline (Taur)"
|
|
icon_state = "fatfeline_s"
|
|
//icon_sprite_tag = "fatfeline"
|
|
|
|
/datum/sprite_accessory/tail/taur/fatfeline_wag
|
|
name = "Fat Feline (Taur) (vwag)"
|
|
icon_state = "fatfeline_s"
|
|
ani_state = "fatfeline_w"
|
|
|
|
/datum/sprite_accessory/tail/taur/feline/feline_2c
|
|
name = "Feline dual-color (Taur)"
|
|
icon_state = "feline_s"
|
|
extra_overlay = "feline_markings"
|
|
//icon_sprite_tag = "feline2c"
|
|
|
|
/datum/sprite_accessory/tail/taur/feline/fatfeline_2c
|
|
name = "Fat Feline dual-color (Taur)"
|
|
icon_state = "fatfeline_s"
|
|
extra_overlay = "fatfeline_markings"
|
|
//icon_sprite_tag = "fatfeline2c"
|
|
|
|
/datum/sprite_accessory/tail/taur/feline/synthfeline
|
|
name = "SynthFeline dual-color (Taur)"
|
|
icon_state = "synthfeline_s"
|
|
extra_overlay = "synthfeline_markings"
|
|
//icon_sprite_tag = "synthfeline"
|
|
|
|
/datum/sprite_accessory/tail/taur/slug
|
|
name = "Slug (Taur)"
|
|
icon_state = "slug_s"
|
|
suit_sprites = 'icons/mob/taursuits_slug.dmi'
|
|
icon_sprite_tag = "slug"
|
|
|
|
/datum/sprite_accessory/tail/taur/frog
|
|
name = "Frog (Taur)"
|
|
icon_state = "frog_s"
|
|
icon_sprite_tag = "frog"
|
|
|
|
/datum/sprite_accessory/tail/taur/thicktentacles
|
|
name = "Thick Tentacles (Taur)"
|
|
icon_state = "tentacle_s"
|
|
can_ride = 0
|
|
icon_sprite_tag = "thick_tentacles"
|
|
|
|
/datum/sprite_accessory/tail/taur/drake //Enabling on request, no suit compatibility but then again see 2 above.
|
|
name = "Drake (Taur)"
|
|
icon_state = "drake_s"
|
|
extra_overlay = "drake_markings"
|
|
suit_sprites = 'icons/mob/taursuits_drake.dmi'
|
|
icon_sprite_tag = "drake"
|
|
|
|
/datum/sprite_accessory/tail/taur/otie
|
|
name = "Otie (Taur)"
|
|
icon_state = "otie_s"
|
|
extra_overlay = "otie_markings"
|
|
suit_sprites = 'icons/mob/taursuits_otie.dmi'
|
|
icon_sprite_tag = "otie"
|
|
|
|
/datum/sprite_accessory/tail/taur/alraune/alraune_2c
|
|
name = "Alraune (dual color)"
|
|
icon_state = "alraunecolor_s"
|
|
ani_state = "alraunecolor_closed_s"
|
|
ckeys_allowed = null
|
|
do_colouration = 1
|
|
extra_overlay = "alraunecolor_markings"
|
|
extra_overlay_w = "alraunecolor_closed_markings"
|
|
clip_mask_state = "taur_clip_mask_alraune"
|
|
icon_sprite_tag = "alraune"
|
|
|
|
/datum/sprite_accessory/tail/taur/wasp
|
|
name = "Wasp (dual color)"
|
|
icon_state = "wasp_s"
|
|
extra_overlay = "wasp_markings"
|
|
clip_mask_state = "taur_clip_mask_wasp"
|
|
icon_sprite_tag = "wasp"
|
|
|
|
/datum/sprite_accessory/tail/taur/mermaid
|
|
name = "Mermaid (Taur)"
|
|
icon_state = "mermaid_s"
|
|
can_ride = 0
|
|
icon_sprite_tag = "mermaid"
|