/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("[M] stops riding [ridden]!") //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,"This isn't a pony show! You need to be bigger for them to ride.") // 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,"Too many legs. TOO MANY LEGS!!") 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("[M] starts riding [name]!") /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"