cleanup
This commit is contained in:
parent
b4db4afd5f
commit
104e607cc7
2 changed files with 7 additions and 27 deletions
|
|
@ -170,7 +170,6 @@ func generate_map():
|
||||||
if from_valid and to_valid:
|
if from_valid and to_valid:
|
||||||
valid_connections.append(conn)
|
valid_connections.append(conn)
|
||||||
|
|
||||||
# Return the generated map
|
|
||||||
return {
|
return {
|
||||||
"nodes": valid_nodes,
|
"nodes": valid_nodes,
|
||||||
"connections": valid_connections,
|
"connections": valid_connections,
|
||||||
|
|
@ -178,14 +177,11 @@ func generate_map():
|
||||||
"seed": _rng.seed
|
"seed": _rng.seed
|
||||||
}
|
}
|
||||||
|
|
||||||
# Get a node type based on level - more shops and events in middle levels
|
|
||||||
func _get_random_room_type(level, total_levels):
|
func _get_random_room_type(level, total_levels):
|
||||||
# Chance of special rooms based on level
|
var boss_chance = 0.1 + (level / float(total_levels) * 0.1)
|
||||||
var boss_chance = 0.1 + (level / float(total_levels) * 0.1) # Higher chance in later levels
|
var shop_chance = 0.1 + (level / float(total_levels) * 0.05)
|
||||||
var shop_chance = 0.1 + (level / float(total_levels) * 0.05) # Higher chance in later levels
|
|
||||||
var event_chance = 0.05
|
var event_chance = 0.05
|
||||||
|
|
||||||
# Last non-final level should have more bosses
|
|
||||||
if level == total_levels - 2:
|
if level == total_levels - 2:
|
||||||
boss_chance += 0.3
|
boss_chance += 0.3
|
||||||
|
|
||||||
|
|
@ -200,14 +196,12 @@ func _get_random_room_type(level, total_levels):
|
||||||
else:
|
else:
|
||||||
return RoomType.NORMAL
|
return RoomType.NORMAL
|
||||||
|
|
||||||
# Check if a node is connected as a destination in any connection
|
|
||||||
func _is_node_connected_to(node_id, connections):
|
func _is_node_connected_to(node_id, connections):
|
||||||
for conn in connections:
|
for conn in connections:
|
||||||
if conn.to == node_id:
|
if conn.to == node_id:
|
||||||
return true
|
return true
|
||||||
return false
|
return false
|
||||||
|
|
||||||
# Get a unique ID for a new node
|
|
||||||
func _get_next_id():
|
func _get_next_id():
|
||||||
var id = _next_id
|
var id = _next_id
|
||||||
_next_id += 1
|
_next_id += 1
|
||||||
|
|
|
||||||
|
|
@ -182,25 +182,21 @@ func display_map():
|
||||||
max_x = max(max_x, x_pos)
|
max_x = max(max_x, x_pos)
|
||||||
min_y = min(min_y, y_pos)
|
min_y = min(min_y, y_pos)
|
||||||
max_y = max(max_y, y_pos)
|
max_y = max(max_y, y_pos)
|
||||||
|
|
||||||
# Add padding to container size
|
|
||||||
var map_width = max_x - min_x + NODE_SIZE.x * 2 + SCROLL_PADDING_LEFT + SCROLL_PADDING_RIGHT
|
var map_width = max_x - min_x + NODE_SIZE.x * 2 + SCROLL_PADDING_LEFT + SCROLL_PADDING_RIGHT
|
||||||
var map_height = max_y - min_y + NODE_SIZE.y * 2 + SCROLL_PADDING_TOP + SCROLL_PADDING_BOTTOM
|
var map_height = max_y - min_y + NODE_SIZE.y * 2 + SCROLL_PADDING_TOP + SCROLL_PADDING_BOTTOM
|
||||||
map_container.custom_minimum_size = Vector2(map_width, map_height)
|
map_container.custom_minimum_size = Vector2(map_width, map_height)
|
||||||
|
|
||||||
# Create a padding node at the top
|
|
||||||
var top_padding = Control.new()
|
var top_padding = Control.new()
|
||||||
top_padding.custom_minimum_size = Vector2(map_width, SCROLL_PADDING_TOP)
|
top_padding.custom_minimum_size = Vector2(map_width, SCROLL_PADDING_TOP)
|
||||||
top_padding.position = Vector2(0, 0)
|
top_padding.position = Vector2(0, 0)
|
||||||
map_container.add_child(top_padding)
|
map_container.add_child(top_padding)
|
||||||
|
|
||||||
# Create a padding node at the bottom
|
|
||||||
var bottom_padding = Control.new()
|
var bottom_padding = Control.new()
|
||||||
bottom_padding.custom_minimum_size = Vector2(map_width, SCROLL_PADDING_BOTTOM)
|
bottom_padding.custom_minimum_size = Vector2(map_width, SCROLL_PADDING_BOTTOM)
|
||||||
bottom_padding.position = Vector2(0, map_height - SCROLL_PADDING_BOTTOM)
|
bottom_padding.position = Vector2(0, map_height - SCROLL_PADDING_BOTTOM)
|
||||||
map_container.add_child(bottom_padding)
|
map_container.add_child(bottom_padding)
|
||||||
|
|
||||||
# Create padding nodes for left and right
|
|
||||||
var left_padding = Control.new()
|
var left_padding = Control.new()
|
||||||
left_padding.custom_minimum_size = Vector2(SCROLL_PADDING_LEFT, map_height)
|
left_padding.custom_minimum_size = Vector2(SCROLL_PADDING_LEFT, map_height)
|
||||||
left_padding.position = Vector2(0, 0)
|
left_padding.position = Vector2(0, 0)
|
||||||
|
|
@ -210,11 +206,7 @@ func display_map():
|
||||||
right_padding.custom_minimum_size = Vector2(SCROLL_PADDING_RIGHT, map_height)
|
right_padding.custom_minimum_size = Vector2(SCROLL_PADDING_RIGHT, map_height)
|
||||||
right_padding.position = Vector2(map_width - SCROLL_PADDING_RIGHT, 0)
|
right_padding.position = Vector2(map_width - SCROLL_PADDING_RIGHT, 0)
|
||||||
map_container.add_child(right_padding)
|
map_container.add_child(right_padding)
|
||||||
|
|
||||||
# Draw connections first (so they're behind nodes)
|
|
||||||
|
|
||||||
# Modify your display_map function to use the curved connections
|
|
||||||
# Replace your loop that draws connections with this:
|
|
||||||
|
|
||||||
# Draw connections first (so they're behind nodes)
|
# Draw connections first (so they're behind nodes)
|
||||||
for connection in map_connections:
|
for connection in map_connections:
|
||||||
|
|
@ -309,7 +301,6 @@ func highlight_current_node(button):
|
||||||
button.add_theme_stylebox_override("normal", style)
|
button.add_theme_stylebox_override("normal", style)
|
||||||
|
|
||||||
func _on_node_pressed(node_data):
|
func _on_node_pressed(node_data):
|
||||||
# Check if the node is accessible from current node
|
|
||||||
if is_node_accessible(node_data):
|
if is_node_accessible(node_data):
|
||||||
# Update current node
|
# Update current node
|
||||||
current_node = node_data
|
current_node = node_data
|
||||||
|
|
@ -326,7 +317,6 @@ func traversed_node(node_data):
|
||||||
traversed_map.append(node_data.id)
|
traversed_map.append(node_data.id)
|
||||||
|
|
||||||
func is_node_accessible(node_data):
|
func is_node_accessible(node_data):
|
||||||
# If no current node, only starting node is accessible
|
|
||||||
if current_node == null:
|
if current_node == null:
|
||||||
return node_data.type == RoomType.STARTING
|
return node_data.type == RoomType.STARTING
|
||||||
|
|
||||||
|
|
@ -351,7 +341,6 @@ func draw_curved_connection(from_node, to_node):
|
||||||
elif traversed_map.has(to_node.id) and (traversed_map.has(from_node.id) || from_node.id == 0):
|
elif traversed_map.has(to_node.id) and (traversed_map.has(from_node.id) || from_node.id == 0):
|
||||||
line.default_color = LINE_COLOR_SELECTED
|
line.default_color = LINE_COLOR_SELECTED
|
||||||
|
|
||||||
# Calculate start and end positions with padding adjustments
|
|
||||||
var start_pos = from_node.position * Vector2(NODE_SPACING_X, NODE_SPACING_Y) + Vector2(SCROLL_PADDING_LEFT, SCROLL_PADDING_TOP)
|
var start_pos = from_node.position * Vector2(NODE_SPACING_X, NODE_SPACING_Y) + Vector2(SCROLL_PADDING_LEFT, SCROLL_PADDING_TOP)
|
||||||
var end_pos = to_node.position * Vector2(NODE_SPACING_X, NODE_SPACING_Y) + Vector2(SCROLL_PADDING_LEFT, SCROLL_PADDING_TOP)
|
var end_pos = to_node.position * Vector2(NODE_SPACING_X, NODE_SPACING_Y) + Vector2(SCROLL_PADDING_LEFT, SCROLL_PADDING_TOP)
|
||||||
|
|
||||||
|
|
@ -360,7 +349,6 @@ func draw_curved_connection(from_node, to_node):
|
||||||
|
|
||||||
# If nodes are on different levels (y positions)
|
# If nodes are on different levels (y positions)
|
||||||
if from_node.position.y != to_node.position.y:
|
if from_node.position.y != to_node.position.y:
|
||||||
# Calculate control points for a curve
|
|
||||||
var mid_y = (start_pos.y + end_pos.y) / 2
|
var mid_y = (start_pos.y + end_pos.y) / 2
|
||||||
var control_offset = NODE_SPACING_Y * 0.5 * (1 + abs(from_node.position.x - to_node.position.x) * 0.2)
|
var control_offset = NODE_SPACING_Y * 0.5 * (1 + abs(from_node.position.x - to_node.position.x) * 0.2)
|
||||||
|
|
||||||
|
|
@ -399,7 +387,6 @@ func draw_curved_connection(from_node, to_node):
|
||||||
map_container.add_child(line)
|
map_container.add_child(line)
|
||||||
connection_lines.append(line)
|
connection_lines.append(line)
|
||||||
|
|
||||||
# Helper function for cubic bezier curve calculation
|
|
||||||
func cubic_bezier(p0: Vector2, p1: Vector2, p2: Vector2, p3: Vector2, t: float) -> Vector2:
|
func cubic_bezier(p0: Vector2, p1: Vector2, p2: Vector2, p3: Vector2, t: float) -> Vector2:
|
||||||
var q0 = p0.lerp(p1, t)
|
var q0 = p0.lerp(p1, t)
|
||||||
var q1 = p1.lerp(p2, t)
|
var q1 = p1.lerp(p2, t)
|
||||||
|
|
@ -410,7 +397,6 @@ func cubic_bezier(p0: Vector2, p1: Vector2, p2: Vector2, p3: Vector2, t: float)
|
||||||
|
|
||||||
return r0.lerp(r1, t)
|
return r0.lerp(r1, t)
|
||||||
|
|
||||||
# Helper function for quadratic bezier curve calculation
|
|
||||||
func quadratic_bezier(p0: Vector2, p1: Vector2, p2: Vector2, t: float) -> Vector2:
|
func quadratic_bezier(p0: Vector2, p1: Vector2, p2: Vector2, t: float) -> Vector2:
|
||||||
var q0 = p0.lerp(p1, t)
|
var q0 = p0.lerp(p1, t)
|
||||||
var q1 = p1.lerp(p2, t)
|
var q1 = p1.lerp(p2, t)
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue