Enemies can't be targeted now if they are hidden. Also handle input on touch up.

This commit is contained in:
Relintai 2020-07-16 20:21:48 +02:00
parent e2fb52a3ff
commit ba5ef68239

View File

@ -183,33 +183,36 @@ func _unhandled_input(event: InputEvent) -> void:
get_tree().set_input_as_handled() get_tree().set_input_as_handled()
if event is InputEventScreenTouch and event.pressed: if event is InputEventScreenTouch:
if !target(event.position): if event.pressed:
var pos : Vector2 = world.make_canvas_position_local(event.position) pass
else:
pos -= transform.origin if !target(event.position):
var pos : Vector2 = world.make_canvas_position_local(event.position)
if pos.length() < tile_size / 2:
#wait
world.player_moved()
return
var mx : int = 0 pos -= transform.origin
var my : int = 0
if abs(pos.x) > tile_size / 2: if pos.length() < tile_size / 2:
if pos.x >= 0: #wait
mx = 1 world.player_moved()
else: return
mx = -1
var mx : int = 0
if abs(pos.y) > tile_size / 2: var my : int = 0
if pos.y >= 0:
my = 1 if abs(pos.x) > tile_size / 2:
else: if pos.x >= 0:
my = -1 mx = 1
else:
try_move(mx, my) mx = -1
if abs(pos.y) > tile_size / 2:
if pos.y >= 0:
my = 1
else:
my = -1
try_move(mx, my)
get_tree().set_input_as_handled() get_tree().set_input_as_handled()
@ -280,6 +283,9 @@ func target(position : Vector2) -> bool:
var enemy : Entity = world.get_enemy_at_tile(pos.x, pos.y) var enemy : Entity = world.get_enemy_at_tile(pos.x, pos.y)
if enemy: if enemy:
if !enemy.get_body().visible:
return false
if entity.getc_target() != enemy: if entity.getc_target() != enemy:
entity.target_crequest_change(enemy.get_path()) entity.target_crequest_change(enemy.get_path())
return true return true
@ -295,6 +301,9 @@ func cmouseover(position : Vector2):
var enemy : Entity = world.get_enemy_at_tile(pos.x, pos.y) var enemy : Entity = world.get_enemy_at_tile(pos.x, pos.y)
if enemy: if enemy:
if !enemy.get_body().visible:
return false
if last_mouse_over != null and last_mouse_over != entity: if last_mouse_over != null and last_mouse_over != entity:
if is_instance_valid(last_mouse_over): if is_instance_valid(last_mouse_over):
last_mouse_over.notification_cmouse_exit() last_mouse_over.notification_cmouse_exit()