diff --git a/code/datums/components/ducttape.dm b/code/datums/components/ducttape.dm index 49931db8edc..b41066d375d 100644 --- a/code/datums/components/ducttape.dm +++ b/code/datums/components/ducttape.dm @@ -47,23 +47,30 @@ return if(!isturf(target)) return - if(!user.unEquip(I)) - return var/turf/source_turf = get_turf(I) var/turf/target_turf = target - var/list/clickparams = params2list(params) - var/x_offset = text2num(clickparams["icon-x"]) - 16 - var/y_offset = text2num(clickparams["icon-y"]) - 16 + var/x_offset + var/y_offset if(target_turf != get_turf(I)) //Trying to stick it on a wall, don't move it to the actual wall or you can move the item through it. Instead set the pixels as appropriate var/target_direction = get_dir(source_turf, target_turf)//The direction we clicked + // Snowflake diagonal handling + if(target_direction in GLOB.diagonals) + to_chat(user, "You cant reach [target_turf].") + return if(target_direction & EAST) - x_offset += 32 + x_offset = 16 + y_offset = rand(-12, 12) else if(target_direction & WEST) - x_offset -= 32 - if(target_direction & NORTH) - y_offset += 32 + x_offset = -16 + y_offset = rand(-12, 12) + else if(target_direction & NORTH) + x_offset = rand(-12, 12) + y_offset = 16 else if(target_direction & SOUTH) - y_offset -= 32 + x_offset = rand(-12, 12) + y_offset = -16 + if(!user.unEquip(I)) + return to_chat(user, "You stick [I] to [target_turf].") I.pixel_x = x_offset I.pixel_y = y_offset