diff --git a/code/game/objects/items/weapons/scrolls.dm b/code/game/objects/items/weapons/scrolls.dm index 309e66f503..7d5c5f07cb 100644 --- a/code/game/objects/items/weapons/scrolls.dm +++ b/code/game/objects/items/weapons/scrolls.dm @@ -73,25 +73,26 @@ L+=T if(!L.len) - to_chat(user, "The spell matrix was unable to locate a suitable teleport destination for an unknown reason. Sorry.") + to_chat(user, span_warning("The spell matrix was unable to locate a suitable teleport destination for an unknown reason. Sorry.")) return if(user && user.buckled) - user.buckled.unbuckle_mob() + user.buckled.unbuckle_mob( user, TRUE) var/list/tempL = L var/attempt = null var/success = 0 while(tempL.len) attempt = pick(tempL) - success = user.Move(attempt) + success = user.forceMove(attempt) if(!success) tempL.Remove(attempt) else break if(!success) - user.loc = pick(L) + to_chat(user, span_warning("The spell matrix was unable to locate a suitable teleport destination, because the destination area is entirely obstructed. Sorry.")) + user.forceMove(pick(L)) smoke.start() src.uses -= 1 diff --git a/code/modules/spells/aoe_turf/blink.dm b/code/modules/spells/aoe_turf/blink.dm index f78572a3ba..79a70b8df4 100644 --- a/code/modules/spells/aoe_turf/blink.dm +++ b/code/modules/spells/aoe_turf/blink.dm @@ -20,7 +20,7 @@ var/turf/starting = get_turf(user) if(T) if(user.buckled) - user.buckled = null + user.buckled.unbuckle_mob( user, TRUE) user.forceMove(T) var/datum/effect/effect/system/smoke_spread/smoke = new /datum/effect/effect/system/smoke_spread() diff --git a/code/modules/spells/aoe_turf/conjure/forcewall.dm b/code/modules/spells/aoe_turf/conjure/forcewall.dm index 5472a00f24..636e479d1b 100644 --- a/code/modules/spells/aoe_turf/conjure/forcewall.dm +++ b/code/modules/spells/aoe_turf/conjure/forcewall.dm @@ -33,7 +33,6 @@ opacity = 0 density = TRUE unacidable = TRUE - invisibility = INVISIBILITY_ABSTRACT /obj/effect/forcefield/bullet_act(var/obj/item/projectile/Proj, var/def_zone) var/turf/T = get_turf(src.loc) @@ -46,6 +45,7 @@ icon_state = "empty" name = "invisible wall" desc = "You have a bad feeling about this." + invisibility = INVISIBILITY_ABSTRACT /obj/effect/forcefield/cultify() new /obj/effect/forcefield/cult(get_turf(src)) diff --git a/code/modules/spells/general/area_teleport.dm b/code/modules/spells/general/area_teleport.dm index 38b8397222..cb2e250106 100644 --- a/code/modules/spells/general/area_teleport.dm +++ b/code/modules/spells/general/area_teleport.dm @@ -51,11 +51,11 @@ L+=T if(!L.len) - to_chat(user, "The spell matrix was unable to locate a suitable teleport destination for an unknown reason. Sorry.") + to_chat(user, span_warning("The spell matrix was unable to locate a suitable teleport destination for an unknown reason. Sorry.")) return if(user && user.buckled) - user.buckled = null + user.buckled.unbuckle_mob( user, TRUE) var/attempt = null var/success = 0 @@ -68,7 +68,8 @@ break if(!success) - user.loc = pick(L) + to_chat(user, span_warning("The spell matrix was unable to locate a suitable teleport destination, because the destination area is entirely obstructed. Sorry.")) + user.forceMove(pick(L)) return diff --git a/code/modules/spells/targeted/ethereal_jaunt.dm b/code/modules/spells/targeted/ethereal_jaunt.dm index 28a0404967..09b9a633df 100644 --- a/code/modules/spells/targeted/ethereal_jaunt.dm +++ b/code/modules/spells/targeted/ethereal_jaunt.dm @@ -17,7 +17,8 @@ /spell/targeted/ethereal_jaunt/cast(list/targets) //magnets, so mostly hardcoded for(var/mob/living/target in targets) target.transforming = 1 //protects the mob from being transformed (replaced) midjaunt and getting stuck in bluespace - if(target.buckled) target.buckled = null + if(target.buckled) + target.buckled.unbuckle_mob( target, TRUE) spawn(0) var/mobloc = get_turf(target.loc) var/obj/effect/dummy/spell_jaunt/holder = new /obj/effect/dummy/spell_jaunt( mobloc ) @@ -31,7 +32,7 @@ animation.master = holder target.ExtinguishMob() if(target.buckled) - target.buckled = null + target.buckled.unbuckle_mob( target, TRUE) jaunt_disappear(animation, target) target.loc = holder target.transforming=0 //mob is safely inside holder now, no need for protection. diff --git a/code/modules/spells/targeted/targeted.dm b/code/modules/spells/targeted/targeted.dm index 847d4cbfa5..6c6312ad90 100644 --- a/code/modules/spells/targeted/targeted.dm +++ b/code/modules/spells/targeted/targeted.dm @@ -136,8 +136,8 @@ Targeted spells have two useful flags: INCLUDEUSER and SELECTABLE. These are exp target.Paralyse(amt_paralysis) target.Stun(amt_stunned) if(amt_weakened || amt_paralysis || amt_stunned) - if(target.buckled) - target.buckled = null + if(target && target.buckled) + target.buckled.unbuckle_mob( target, TRUE) target.Blind(amt_eye_blind) target.eye_blurry += amt_eye_blurry target.make_dizzy(amt_dizziness) diff --git a/code/modules/vore/eating/stumblevore_vr.dm b/code/modules/vore/eating/stumblevore_vr.dm index 1ebdf226d9..4c1555902d 100644 --- a/code/modules/vore/eating/stumblevore_vr.dm +++ b/code/modules/vore/eating/stumblevore_vr.dm @@ -31,7 +31,8 @@ /mob/living/stumble_into(mob/living/M) var/mob/living/carbon/human/S = src - + if(S.buckled || M.buckled) + return playsound(src, "punch", 25, 1, -1) M.Weaken(4) M.stop_flying() diff --git a/code/modules/vore/resizing/resize_vr.dm b/code/modules/vore/resizing/resize_vr.dm index dfdb3c3c61..9312a37333 100644 --- a/code/modules/vore/resizing/resize_vr.dm +++ b/code/modules/vore/resizing/resize_vr.dm @@ -204,6 +204,8 @@ var/mob/living/simple_mob/SA = M if(!SA.has_hands) return 0 + if(mob_size < MOB_SMALL && src == M) + return 0 if(size_diff >= 0.50 || mob_size < MOB_SMALL || size_diff >= get_effective_size() || ignore_size) if(buckled) to_chat(src,span_notice("You have to unbuckle \the [src] before you pick them up."))