feat: Implement initial main game scene with gridmap, player, and core managers.

This commit is contained in:
Yogi Wiguna
2026-03-12 12:30:29 +08:00
parent 412e7bdcdd
commit 3853962e4a
7 changed files with 1892 additions and 248 deletions
+4 -6
View File
@@ -260,8 +260,8 @@ func _execute_area_freeze(target_pos: Vector2i = Vector2i.ZERO):
var current_lvl = powerup_levels.get(SpecialEffect.AREA_FREEZE, 1)
if center_pos == Vector2i.ZERO:
# Updated: Always 3 tiles ahead as per user request
var distance = 3
# Updated: Always 4 tiles ahead as per user request
var distance = 4
print("[SpecialTiles] Area Freeze logic executing with distance: %d" % distance)
var movement = player.movement_manager
@@ -272,11 +272,9 @@ func _execute_area_freeze(target_pos: Vector2i = Vector2i.ZERO):
var last_dir = player.movement_manager.last_move_direction if movement else Vector2i(0, 1)
center_pos = player.current_position + last_dir * distance
# Allow spawning Area Freeze even out of bounds (user request)
if not enhanced_gridmap.is_position_valid(center_pos):
# Try a bit closer if out of bounds
center_pos = player.current_position + (center_pos - player.current_position).normalized() * 1.0
if not enhanced_gridmap.is_position_valid(center_pos):
return
print("[SpecialTiles] Spawning Area Freeze at out-of-bounds position: ", center_pos)
# 3. Determine Radius based on Level
var radius = 1