prototype vibe
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
extends Node
|
||||
|
||||
const TARGET_RANGE := 20.0
|
||||
const TARGET_RANGE := 100.0
|
||||
|
||||
var mouse_press_pos: Vector2 = Vector2.ZERO
|
||||
|
||||
@@ -29,15 +29,28 @@ func _try_target_under_mouse(mouse_pos: Vector2) -> void:
|
||||
var result := space.intersect_ray(query)
|
||||
if result:
|
||||
var hit_target := result.collider.get_parent() as Node3D
|
||||
EventBus.target_requested.emit(player, hit_target)
|
||||
else:
|
||||
EventBus.target_requested.emit(player, null)
|
||||
if hit_target and hit_target.is_in_group("tavern"):
|
||||
EventBus.target_requested.emit(player, null)
|
||||
return
|
||||
if hit_target and (hit_target.is_in_group("enemies") or hit_target.is_in_group("portals")):
|
||||
EventBus.target_requested.emit(player, hit_target)
|
||||
return
|
||||
EventBus.target_requested.emit(player, null)
|
||||
|
||||
func _cycle_target() -> void:
|
||||
var targets := get_tree().get_nodes_in_group("enemies") + get_tree().get_nodes_in_group("portals")
|
||||
var enemies := get_tree().get_nodes_in_group("enemies")
|
||||
var portals := get_tree().get_nodes_in_group("portals")
|
||||
var targets: Array = []
|
||||
for e in enemies:
|
||||
if is_instance_valid(e):
|
||||
targets.append(e)
|
||||
for p in portals:
|
||||
if is_instance_valid(p):
|
||||
targets.append(p)
|
||||
if targets.is_empty():
|
||||
EventBus.target_requested.emit(player, null)
|
||||
return
|
||||
targets.sort_custom(func(a, b): return player.global_position.distance_squared_to(a.global_position) < player.global_position.distance_squared_to(b.global_position))
|
||||
var current: Node3D = PlayerData.target
|
||||
if current == null or current not in targets:
|
||||
EventBus.target_requested.emit(player, targets[0])
|
||||
|
||||
Reference in New Issue
Block a user