mirror of
https://github.com/yogstation13/Yogstation.git
synced 2025-02-26 09:04:50 +00:00
Fixes a ton of shit with riding_datums
This commit is contained in:
@@ -9,6 +9,13 @@
|
|||||||
var/slowed = FALSE
|
var/slowed = FALSE
|
||||||
var/slowvalue = 1
|
var/slowvalue = 1
|
||||||
|
|
||||||
|
/datum/riding/New(atom/movable/_ridden)
|
||||||
|
ridden = _ridden
|
||||||
|
|
||||||
|
/datum/riding/Destroy()
|
||||||
|
ridden = null
|
||||||
|
return ..()
|
||||||
|
|
||||||
/datum/riding/proc/handle_vehicle_layer()
|
/datum/riding/proc/handle_vehicle_layer()
|
||||||
if(ridden.dir != NORTH)
|
if(ridden.dir != NORTH)
|
||||||
ridden.layer = ABOVE_MOB_LAYER
|
ridden.layer = ABOVE_MOB_LAYER
|
||||||
|
|||||||
@@ -911,8 +911,7 @@
|
|||||||
M.visible_message("<span class='warning'>[M] really can't seem to mount [src]...</span>")
|
M.visible_message("<span class='warning'>[M] really can't seem to mount [src]...</span>")
|
||||||
return
|
return
|
||||||
if(!riding_datum)
|
if(!riding_datum)
|
||||||
riding_datum = new /datum/riding/human
|
riding_datum = new /datum/riding/human(src)
|
||||||
riding_datum.ridden = src
|
|
||||||
if(buckled_mobs && ((M in buckled_mobs) || (buckled_mobs.len >= max_buckled_mobs)))
|
if(buckled_mobs && ((M in buckled_mobs) || (buckled_mobs.len >= max_buckled_mobs)))
|
||||||
return
|
return
|
||||||
if(buckled) //NO INFINITE STACKING!!
|
if(buckled) //NO INFINITE STACKING!!
|
||||||
|
|||||||
@@ -55,6 +55,9 @@
|
|||||||
//End bloody footprints
|
//End bloody footprints
|
||||||
|
|
||||||
S.step_action()
|
S.step_action()
|
||||||
|
|
||||||
|
/mob/living/carbon/human/Moved()
|
||||||
|
. = ..()
|
||||||
if(buckled_mobs && buckled_mobs.len && riding_datum)
|
if(buckled_mobs && buckled_mobs.len && riding_datum)
|
||||||
riding_datum.on_vehicle_move()
|
riding_datum.on_vehicle_move()
|
||||||
|
|
||||||
|
|||||||
@@ -31,6 +31,7 @@
|
|||||||
ranged_ability.remove_ranged_ability(src)
|
ranged_ability.remove_ranged_ability(src)
|
||||||
if(buckled)
|
if(buckled)
|
||||||
buckled.unbuckle_mob(src,force=1)
|
buckled.unbuckle_mob(src,force=1)
|
||||||
|
QDEL_NULL(riding_datum)
|
||||||
|
|
||||||
for(var/mob/living/simple_animal/drone/D in player_list)
|
for(var/mob/living/simple_animal/drone/D in player_list)
|
||||||
for(var/image/I in staticOverlays)
|
for(var/image/I in staticOverlays)
|
||||||
@@ -915,3 +916,8 @@
|
|||||||
"[C] topples over [src]!", \
|
"[C] topples over [src]!", \
|
||||||
"[C] leaps out of [src]'s way!")]</span>")
|
"[C] leaps out of [src]'s way!")]</span>")
|
||||||
C.Weaken(2)
|
C.Weaken(2)
|
||||||
|
|
||||||
|
/mob/living/post_buckle_mob(mob/living/M)
|
||||||
|
if(riding_datum)
|
||||||
|
riding_datum.handle_vehicle_offsets()
|
||||||
|
riding_datum.handle_vehicle_layer()
|
||||||
|
|||||||
@@ -75,3 +75,5 @@
|
|||||||
|
|
||||||
var/list/implants = null
|
var/list/implants = null
|
||||||
var/tesla_ignore = FALSE
|
var/tesla_ignore = FALSE
|
||||||
|
|
||||||
|
var/datum/riding/riding_datum
|
||||||
@@ -1010,8 +1010,7 @@
|
|||||||
M.visible_message("<span class='warning'>[M] really can't seem to mount the [src]...</span>")
|
M.visible_message("<span class='warning'>[M] really can't seem to mount the [src]...</span>")
|
||||||
return
|
return
|
||||||
if(!riding_datum)
|
if(!riding_datum)
|
||||||
riding_datum = new /datum/riding/cyborg
|
riding_datum = new /datum/riding/cyborg(src)
|
||||||
riding_datum.ridden = src
|
|
||||||
if(buckled_mobs)
|
if(buckled_mobs)
|
||||||
if(buckled_mobs.len >= max_buckled_mobs)
|
if(buckled_mobs.len >= max_buckled_mobs)
|
||||||
return
|
return
|
||||||
|
|||||||
@@ -540,11 +540,10 @@
|
|||||||
if(tame && riding_datum)
|
if(tame && riding_datum)
|
||||||
riding_datum.handle_ride(user, direction)
|
riding_datum.handle_ride(user, direction)
|
||||||
|
|
||||||
/mob/living/simple_animal/Move(NewLoc,Dir=0,step_x=0,step_y=0)
|
/mob/living/simple_animal/Moved()
|
||||||
. = ..()
|
. = ..()
|
||||||
if(riding_datum)
|
if(riding_datum)
|
||||||
riding_datum.handle_vehicle_layer()
|
riding_datum.on_vehicle_move()
|
||||||
riding_datum.handle_vehicle_offsets()
|
|
||||||
|
|
||||||
|
|
||||||
/mob/living/simple_animal/buckle_mob(mob/living/buckled_mob, force = 0, check_loc = 1)
|
/mob/living/simple_animal/buckle_mob(mob/living/buckled_mob, force = 0, check_loc = 1)
|
||||||
|
|||||||
@@ -963,8 +963,3 @@ var/next_mob_id = 0
|
|||||||
if ("attack_log")
|
if ("attack_log")
|
||||||
return debug_variable(var_name, attack_log, 0, src, FALSE)
|
return debug_variable(var_name, attack_log, 0, src, FALSE)
|
||||||
. = ..()
|
. = ..()
|
||||||
|
|
||||||
/mob/post_buckle_mob(mob/living/M)
|
|
||||||
if(riding_datum)
|
|
||||||
riding_datum.handle_vehicle_offsets()
|
|
||||||
riding_datum.handle_vehicle_layer()
|
|
||||||
|
|||||||
@@ -146,5 +146,4 @@
|
|||||||
var/list/observers = null //The list of people observing this mob.
|
var/list/observers = null //The list of people observing this mob.
|
||||||
|
|
||||||
var/list/progressbars = null //for stacking do_after bars
|
var/list/progressbars = null //for stacking do_after bars
|
||||||
var/datum/riding/riding_datum
|
|
||||||
var/list/can_ride_typecache = list()
|
var/list/can_ride_typecache = list()
|
||||||
|
|||||||
@@ -15,6 +15,10 @@
|
|||||||
var/view_range = 7
|
var/view_range = 7
|
||||||
var/datum/riding/riding_datum = null
|
var/datum/riding/riding_datum = null
|
||||||
|
|
||||||
|
/obj/vehicle/Destroy()
|
||||||
|
QDEL_NULL(riding_datum)
|
||||||
|
return ..()
|
||||||
|
|
||||||
/obj/vehicle/update_icon()
|
/obj/vehicle/update_icon()
|
||||||
return
|
return
|
||||||
|
|
||||||
@@ -53,7 +57,7 @@
|
|||||||
riding_datum.handle_ride(user, direction)
|
riding_datum.handle_ride(user, direction)
|
||||||
|
|
||||||
|
|
||||||
/obj/vehicle/Move(NewLoc,Dir=0,step_x=0,step_y=0)
|
/obj/vehicle/Moved()
|
||||||
. = ..()
|
. = ..()
|
||||||
if(riding_datum)
|
if(riding_datum)
|
||||||
riding_datum.handle_vehicle_layer()
|
riding_datum.handle_vehicle_layer()
|
||||||
|
|||||||
Reference in New Issue
Block a user