update
This commit is contained in:
@@ -64,15 +64,17 @@ func grab_item(grid_position: Vector2i) -> bool:
|
||||
# Apply changes locally first, server will validate/sync
|
||||
enhanced_gridmap.set_cell_item(cell, -1) # Remove item visually immediately
|
||||
|
||||
# Check if grabbed item is a holo tile (11-14) - add to powerup instead of triggering effect
|
||||
var is_holo = item >= 11 and item <= 14
|
||||
if is_holo:
|
||||
# Add holo pickup to power-up manager (4 pickups = 1 bar)
|
||||
var powerup_manager = player.get_node_or_null("PowerUpManager")
|
||||
if powerup_manager:
|
||||
powerup_manager.add_holo_pickup()
|
||||
# Convert holo tile to normal tile (11->7, 12->8, 13->9, 14->10)
|
||||
item = item - 4
|
||||
# Handle Power-Up / Holo Tiles
|
||||
# Holo Matrix: 11->7 (Heart), 12->8 (Diamond), 13->9 (Star), 14->10 (Coin)
|
||||
if item >= 11 and item <= 14:
|
||||
item = item - 4 # Convert to normal tile ID
|
||||
|
||||
# Check if it's a power up tile (7-10)
|
||||
if item >= 7 and item <= 10:
|
||||
var special_tiles_manager = player.get_node_or_null("SpecialTilesManager")
|
||||
if special_tiles_manager:
|
||||
# Add to inventory
|
||||
special_tiles_manager.add_powerup_from_item(item)
|
||||
|
||||
player.playerboard[target_slot] = item # Add to playerboard immediately
|
||||
|
||||
@@ -83,7 +85,7 @@ func grab_item(grid_position: Vector2i) -> bool:
|
||||
|
||||
# Check if goal is completed after grabbing
|
||||
_check_goal_completion()
|
||||
|
||||
|
||||
# === Server Sync ===
|
||||
if multiplayer.is_server():
|
||||
# HOST/SERVER: Broadcast to all clients
|
||||
@@ -207,12 +209,16 @@ func bot_try_grab_item() -> bool:
|
||||
var empty_slot = player.playerboard.find(-1)
|
||||
if empty_slot != -1:
|
||||
if player.is_multiplayer_authority():
|
||||
# Check if grabbed item is a holo tile (11-14) - add to powerup
|
||||
# Convert Holo (11-14)
|
||||
if item >= 11 and item <= 14:
|
||||
var powerup_manager = player.get_node_or_null("PowerUpManager")
|
||||
if powerup_manager:
|
||||
powerup_manager.add_holo_pickup()
|
||||
item = item - 4 # Convert to normal tile
|
||||
item = item - 4
|
||||
|
||||
# Inventory Add
|
||||
if item >= 7 and item <= 10:
|
||||
var special_tiles_manager = player.get_node_or_null("SpecialTilesManager")
|
||||
if special_tiles_manager:
|
||||
special_tiles_manager.add_powerup_from_item(item)
|
||||
|
||||
player.playerboard[empty_slot] = item
|
||||
player.rpc("sync_grid_item", current_cell.x, current_cell.y, current_cell.z, -1)
|
||||
player.rpc("sync_playerboard", player.playerboard)
|
||||
|
||||
Reference in New Issue
Block a user