added vertical indicators to minimap

This commit is contained in:
derek
2025-05-09 10:50:14 -05:00
parent 93773aa4e2
commit b7ba727db5
7 changed files with 40 additions and 10 deletions

View File

@@ -48,7 +48,6 @@ func update_timer(label):
SignalBus.emit_signal("ui_timer_update",label,rounded_timer)
func check_killed_target(enemy):
print("ENEMY KILLED : ",enemy)
if enemy == target_enemy:
timer = time_to_kill
target_enemy = null

View File

@@ -1,7 +1,8 @@
extends Control
@export var hud : Node
@export var redraw_time : float = 1.0
@export var show_vertical_difference : bool = true
## SETTINGS
const MINIMAP_POINT_RADIUS :float = 10.0
@@ -9,7 +10,9 @@ const MINIMAP_DISPLAY_RADIUS : float = 200.0
const MINIMAP_MAX_OPACITY : float = .75
const ERASE_BUFFER_TIME = -10.0
const MAX_PRIORITY_SIZE = 4
const MAX_VERTICAL_TICK_LENGTH = 20
var redraw_timer = redraw_time
var draw_delta_time
func _process(delta: float) -> void:
@@ -31,6 +34,8 @@ func update_minimap():
var player_pos_h = Vector2(player.global_position.x,player.global_position.z)
var point_pos_h = Vector2(point["position"].x,point["position"].z)
var h_direction = player.global_transform.looking_at(point["position"],Vector3.UP).basis.get_euler().y
var v_direction = player.global_position.y - point["position"].y
var alpha_fade = clamp(MINIMAP_MAX_OPACITY * clamp(point["timer"],0,1),0,MINIMAP_MAX_OPACITY)
var color_modified = Color(point["color"].r,point["color"].g,point["color"].b,alpha_fade)
@@ -42,8 +47,18 @@ func update_minimap():
var point_pos = Vector2(x,y)
var priority_clamped = clamp(point["priority"],1,MAX_PRIORITY_SIZE)
var v_indicator_clamped = Vector2(0,clamp(v_direction * 5,-MAX_VERTICAL_TICK_LENGTH * priority_clamped,MAX_VERTICAL_TICK_LENGTH * priority_clamped))
var line_offset_dir
if v_indicator_clamped.y > 0:
line_offset_dir = 1
else:
line_offset_dir = -1
draw_circle(point_pos,MINIMAP_POINT_RADIUS * priority_clamped,color_modified,true)
var line_offset = Vector2(0,line_offset_dir * MINIMAP_POINT_RADIUS * priority_clamped)
if show_vertical_difference:
draw_line(point_pos + line_offset,point_pos + v_indicator_clamped,color_modified,4)
else:
if point["timer"] > ERASE_BUFFER_TIME:
point["timer"] -= draw_delta_time