feat: Introduce core game systems for special tile effects, power-up management, player movement, and initial UI screens.

This commit is contained in:
Yogi Wiguna
2026-03-09 17:49:50 +08:00
parent 0fb1397d11
commit aaf246d873
9 changed files with 54 additions and 17 deletions
+3 -3
View File
@@ -156,10 +156,10 @@ func try_push(target_pos: Vector2i, direction: Vector2i) -> bool:
NotificationManager.send_message(player, "Target is Immune!", NotificationManager.MessageType.WARNING)
return false
# === NEW LOGIC: Only allow push if in ATTACK MODE ===
if not player.get("is_attack_mode"):
# === NEW LOGIC: Only allow push if in ATTACK MODE and NOT GHOST ===
if not player.get("is_attack_mode") or player.get("is_invisible"):
# Standard bumping effect (Visual only)
print("[Move] Push blocked: Not in attack mode (%s trying to push %s)" % [player.name, other_player.name])
print("[Move] Push blocked: Not in attack mode or is Ghost (%s trying to push %s)" % [player.name, other_player.name])
if _can_rpc():
player.rpc("sync_bump", target_pos, true) # Soft bump
elif player.has_method("sync_bump"):