extends CanvasLayer ## Ekranın altında geçici bildirim. @onready var container: VBoxContainer = $Anchor/VBox func _ready() -> void: add_to_group("toast") GameState.harvest_succeeded.connect(_on_harvest) GameState.level_up.connect(_on_level_up) GameState.item_used.connect(_on_item_used) func _on_item_used(p: Dictionary) -> void: show_toast("🍵 %s kullanıldı +%d adım" % [p.get("item_name", ""), int(p.get("effect_amount", 0))], Color(0.5, 0.85, 1.0)) func _on_harvest(p: Dictionary) -> void: var skill_tr := {"mining": "Madencilik", "fishing": "Balıkçılık", "foraging": "Bitki Toplama", "woodcutting": "Ağaç Kesme", "hunting": "Avcılık"} var skill: String = str(skill_tr.get(p.get("skill", ""), str(p.get("skill", "")))) show_toast("+1 %s +%d %s XP" % [p.get("item_name", ""), int(p.get("xp_gained", 0)), skill], Color(0.4, 0.8, 0.4)) func _on_level_up(kind: String, lvl: int) -> void: if kind == "character": show_toast("🎉 Karakter Level %d!" % lvl, Color(1.0, 0.85, 0.2)) else: show_toast("⭐ Skill Level %d!" % lvl, Color(0.5, 0.85, 1.0)) func show_toast(text: String, color: Color = Color.WHITE, dur: float = 2.5) -> void: var panel := PanelContainer.new() var sb := StyleBoxFlat.new() sb.bg_color = Color(0.1, 0.12, 0.15, 0.92) sb.set_corner_radius_all(8) sb.set_content_margin_all(12) panel.add_theme_stylebox_override("panel", sb) var label := Label.new() label.text = text label.add_theme_color_override("font_color", color) label.add_theme_font_size_override("font_size", 16) panel.add_child(label) container.add_child(panel) panel.modulate.a = 0.0 var tw := create_tween() tw.tween_property(panel, "modulate:a", 1.0, 0.15) tw.tween_interval(dur) tw.tween_property(panel, "modulate:a", 0.0, 0.3) tw.tween_callback(panel.queue_free)