diff --git a/code/__HELPERS/unsorted.dm b/code/__HELPERS/unsorted.dm index 9644b4348b3..930e8244eb6 100644 --- a/code/__HELPERS/unsorted.dm +++ b/code/__HELPERS/unsorted.dm @@ -1563,7 +1563,7 @@ var/mob/dview/dview_mob = new //pre_rotation: Chooses to rotate src 90 degress towards the orbit dir (clockwise/anticlockwise), useful for things to go "head first" like ghosts //lockinorbit: Forces src to always be on A's turf, otherwise the orbit cancels when src gets too far away (eg: ghosts) -/atom/movable/proc/orbit(atom/A, radius = 10, clockwise = FALSE, rotation_speed = 20, rotation_segments = 36, pre_rotation = TRUE, lockinorbit = FALSE) +/atom/movable/proc/orbit(atom/A, radius = 10, clockwise = FALSE, rotation_speed = 20, rotation_segments = 36, pre_rotation = TRUE, lockinorbit = FALSE, forceMove = FALSE) if(!istype(A)) return @@ -1595,7 +1595,10 @@ var/mob/dview/dview_mob = new var/targetloc = get_turf(A) if(!lockinorbit && loc != lastloc && loc != targetloc) break - loc = targetloc + if(forceMove) + forceMove(targetloc) + else + loc = targetloc lastloc = loc sleep(0.6) diff --git a/code/modules/mining/lavaland/loot/tendril_loot.dm b/code/modules/mining/lavaland/loot/tendril_loot.dm index a0ea548d0c0..ed8b400337a 100644 --- a/code/modules/mining/lavaland/loot/tendril_loot.dm +++ b/code/modules/mining/lavaland/loot/tendril_loot.dm @@ -33,6 +33,16 @@ if(bag) bag.loc = user bag.attackby(W, user, params) + +/obj/item/device/shared_storage/attack_self(mob/living/carbon/user) + if(!iscarbon(user)) + return + if(src == user.l_hand || src == user.r_hand) + if(bag) + bag.loc = user + bag.attack_hand(user) + else + ..() /obj/item/device/shared_storage/attack_hand(mob/living/carbon/user) if(!iscarbon(user)) @@ -51,7 +61,7 @@ if(!over_object) return - if (istype(usr.loc, /obj/mecha)) + if(istype(M.loc, /obj/mecha)) return if(!M.restrained() && !M.stat) @@ -61,8 +71,11 @@ if(!M.unEquip(src)) return M.put_in_active_hand(src) + else if(bag) + bag.loc = usr + bag.attack_hand(usr) - add_fingerprint(usr) + add_fingerprint(M) //Potion of Flight: as we do not have the "Angel" species this currently does not work. @@ -121,7 +134,7 @@ if(istype(next, /turf/unsimulated/floor/lava) || istype(current, /turf/unsimulated/floor/lava)) //We can move from land to lava, or lava to land, but not from land to land ..() else - to_chat(user, "Boats don't go on land!") + to_chat(user, "Boats don't go on land!") return 0 /obj/item/weapon/oar @@ -187,7 +200,7 @@ to_chat(user, "You release the wisp. It begins to bob around your head.") user.sight |= SEE_MOBS icon_state = "lantern" - wisp.orbit(user, 20) + wisp.orbit(user, 20, forceMove = TRUE) feedback_add_details("wisp_lantern","F") // freed else @@ -222,8 +235,9 @@ desc = "Happy to light your way." icon = 'icons/obj/lighting.dmi' icon_state = "orb" - luminosity = 7 layer = ABOVE_ALL_MOB_LAYER + light_power = 1 + light_range = 7 //Red/Blue Cubes @@ -356,6 +370,8 @@ user.visible_message("[user] pops back into reality!") Z.can_destroy = TRUE qdel(Z) + else + to_chat(user, "[src] is still recharging.") /obj/effect/immortality_talisman icon_state = "blank"