mirror of
https://github.com/VOREStation/VOREStation.git
synced 2026-07-19 11:05:50 +01:00
Merge pull request #12048 from Verkister/ponyshow2
Fixes riding offsets not counting rider size
This commit is contained in:
@@ -8,6 +8,7 @@
|
||||
var/key_name = "the keys" // What the 'keys' for the thing being rided on would be called.
|
||||
var/atom/movable/ridden = null // The thing that the datum is attached to.
|
||||
var/only_one_driver = FALSE // If true, only the person in 'front' (first on list of riding mobs) can drive.
|
||||
var/rider_size = 1 // VOREStation Edit to figure out offsets for rider.
|
||||
|
||||
/datum/riding/New(atom/movable/_ridden)
|
||||
ridden = _ridden
|
||||
|
||||
@@ -208,12 +208,13 @@
|
||||
/datum/riding/dogborg/get_offsets(pass_index) // list(dir = x, y, layer)
|
||||
var/mob/living/L = ridden
|
||||
var/scale = L.size_multiplier
|
||||
var/scale_difference = (L.size_multiplier - rider_size) * 10
|
||||
|
||||
var/list/values = list(
|
||||
"[NORTH]" = list(0, 10*scale, ABOVE_MOB_LAYER),
|
||||
"[SOUTH]" = list(0, 10*scale, BELOW_MOB_LAYER),
|
||||
"[EAST]" = list(-5*scale, 10*scale, ABOVE_MOB_LAYER),
|
||||
"[WEST]" = list(5*scale, 10*scale, ABOVE_MOB_LAYER))
|
||||
"[NORTH]" = list(0, 10*scale + scale_difference, ABOVE_MOB_LAYER),
|
||||
"[SOUTH]" = list(0, 10*scale + scale_difference, BELOW_MOB_LAYER),
|
||||
"[EAST]" = list(-5*scale, 10*scale + scale_difference, ABOVE_MOB_LAYER),
|
||||
"[WEST]" = list(5*scale, 10*scale + scale_difference, ABOVE_MOB_LAYER))
|
||||
|
||||
return values
|
||||
|
||||
@@ -254,6 +255,7 @@
|
||||
|
||||
. = ..()
|
||||
if(.)
|
||||
riding_datum.rider_size = M.size_multiplier
|
||||
buckled_mobs[M] = "riding"
|
||||
|
||||
/mob/living/silicon/robot/MouseDrop_T(mob/living/M, mob/living/user) //Prevention for forced relocation caused by can_buckle. Base proc has no other use.
|
||||
|
||||
@@ -301,12 +301,13 @@
|
||||
/datum/riding/simple_mob/get_offsets(pass_index) // list(dir = x, y, layer)
|
||||
var/mob/living/simple_mob/L = ridden
|
||||
var/scale = L.size_multiplier
|
||||
var/scale_difference = (L.size_multiplier - rider_size) * 10
|
||||
|
||||
var/list/values = list(
|
||||
"[NORTH]" = list(0, L.mount_offset_y*scale, ABOVE_MOB_LAYER),
|
||||
"[SOUTH]" = list(0, L.mount_offset_y*scale, BELOW_MOB_LAYER),
|
||||
"[EAST]" = list(-L.mount_offset_x*scale, L.mount_offset_y*scale, ABOVE_MOB_LAYER),
|
||||
"[WEST]" = list(L.mount_offset_x*scale, L.mount_offset_y*scale, ABOVE_MOB_LAYER))
|
||||
"[NORTH]" = list(0, L.mount_offset_y*scale + scale_difference, ABOVE_MOB_LAYER),
|
||||
"[SOUTH]" = list(0, L.mount_offset_y*scale + scale_difference, BELOW_MOB_LAYER),
|
||||
"[EAST]" = list(-L.mount_offset_x*scale, L.mount_offset_y*scale + scale_difference, ABOVE_MOB_LAYER),
|
||||
"[WEST]" = list(L.mount_offset_x*scale, L.mount_offset_y*scale + scale_difference, ABOVE_MOB_LAYER))
|
||||
|
||||
return values
|
||||
|
||||
@@ -333,6 +334,7 @@
|
||||
|
||||
. = ..()
|
||||
if(.)
|
||||
riding_datum.rider_size = H.size_multiplier
|
||||
buckled_mobs[H] = "riding"
|
||||
|
||||
/mob/living/simple_mob/attack_hand(mob/user as mob)
|
||||
|
||||
@@ -26,14 +26,15 @@
|
||||
//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/scale_x = L.icon_scale_x * L.size_multiplier //VOREStation Edit Start
|
||||
var/scale_y = L.icon_scale_y * L.size_multiplier
|
||||
var/scale_difference = (L.size_multiplier - rider_size) * 10
|
||||
|
||||
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))
|
||||
"[NORTH]" = list(0, 8*scale_y + scale_difference, ABOVE_MOB_LAYER),
|
||||
"[SOUTH]" = list(0, 8*scale_y + scale_difference, BELOW_MOB_LAYER),
|
||||
"[EAST]" = list(-10*scale_x, 8*scale_y + scale_difference, ABOVE_MOB_LAYER),
|
||||
"[WEST]" = list(10*scale_x, 8*scale_y + scale_difference, ABOVE_MOB_LAYER)) //VOREStation Edit End
|
||||
|
||||
return values
|
||||
|
||||
@@ -74,6 +75,7 @@
|
||||
|
||||
. = ..()
|
||||
if(.)
|
||||
riding_datum.rider_size = M.size_multiplier
|
||||
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.
|
||||
|
||||
Reference in New Issue
Block a user