diff --git a/code/entities/player.lua b/code/entities/player.lua index 186d4a8..d9a6698 100644 --- a/code/entities/player.lua +++ b/code/entities/player.lua @@ -34,10 +34,7 @@ function Player:new(x,y) -- hook values o.hook_swing_speed = math.rad(0.05) - o.hook_anchor = { - x = nil, - y = nil - } + o.hook_anchor = nil -- walljump values o.walljump_nodrift_amount = 12 @@ -166,7 +163,7 @@ function Player:doLogic() if self.is_hooked then self:unhook() else - local anchor = self:checkNearest("HookAnchor",self.hook_distance) + local anchor = self:checkNearest("HookAnchor","hook_specific") if anchor then self.is_hooked = true self.hook_distance = anchor.hook_distance @@ -359,6 +356,7 @@ end function Player:unhook() self.is_hooked = false self.hook_anchor = nil + self.hook_distance = nil end function Player:debug() diff --git a/code/entity.lua b/code/entity.lua index 1f317b5..9c09fa1 100644 --- a/code/entity.lua +++ b/code/entity.lua @@ -44,6 +44,8 @@ function Entity:checkNearest(type,maxdistance) local distance_y = entity.pos.y - self.pos.y local distance = math.sqrt(distance_x ^ 2 + distance_y ^ 2) + if maxdistance == "hook_specific" then maxdistance = entity.hook_distance end + if not maxdistance or distance < maxdistance then if shortest == -1 or distance < shortest then shortest = distance