From 42fd207906585fa80513cc380b40b75e34c662be Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Torjus=20H=C3=A5kestad?= Date: Tue, 19 Aug 2025 15:31:32 +0200 Subject: [PATCH] game: add xp orbs --- scenes/enemies/enemy.gd | 7 +++++++ scenes/xp_orb.gd | 4 ++++ scenes/xp_orb.gd.uid | 1 + scenes/xp_orb.tscn | 10 ++++++++++ 4 files changed, 22 insertions(+) create mode 100644 scenes/xp_orb.gd create mode 100644 scenes/xp_orb.gd.uid create mode 100644 scenes/xp_orb.tscn diff --git a/scenes/enemies/enemy.gd b/scenes/enemies/enemy.gd index e9bede9..5a796cd 100644 --- a/scenes/enemies/enemy.gd +++ b/scenes/enemies/enemy.gd @@ -15,6 +15,7 @@ var max_health: float var god_mode: bool = false var is_dead: bool = false +var _xp_orb = preload("res://scenes/xp_orb.tscn") func _ready() -> void: move_speed = default_move_speed @@ -57,11 +58,17 @@ func die(): if is_dead: return is_dead = true + drop_xp_orb() target = null velocity = Vector2.ZERO animation_player.play("die") animation_player.animation_finished.connect(_on_die_anim_finished) +func drop_xp_orb() -> void: + var orb: XPOrb = _xp_orb.instantiate() + orb.value = 5 + orb.position = position + get_parent().add_child(orb) func cheer_anim(): if not animation_player.is_playing(): diff --git a/scenes/xp_orb.gd b/scenes/xp_orb.gd new file mode 100644 index 0000000..f84355a --- /dev/null +++ b/scenes/xp_orb.gd @@ -0,0 +1,4 @@ +class_name XPOrb +extends Node2D + +@export var value: float diff --git a/scenes/xp_orb.gd.uid b/scenes/xp_orb.gd.uid new file mode 100644 index 0000000..c2ee0b1 --- /dev/null +++ b/scenes/xp_orb.gd.uid @@ -0,0 +1 @@ +uid://bx43us4qd2vpf diff --git a/scenes/xp_orb.tscn b/scenes/xp_orb.tscn new file mode 100644 index 0000000..b8fbd33 --- /dev/null +++ b/scenes/xp_orb.tscn @@ -0,0 +1,10 @@ +[gd_scene load_steps=3 format=3 uid="uid://du4dqne3o0d5b"] + +[ext_resource type="Script" uid="uid://bx43us4qd2vpf" path="res://scenes/xp_orb.gd" id="1_me6n8"] +[ext_resource type="Texture2D" uid="uid://crty0t7ryksqn" path="res://assets/sprites/xp_orb.png" id="1_pkphv"] + +[node name="XPOrb" type="Node2D"] +script = ExtResource("1_me6n8") + +[node name="Sprite2D" type="Sprite2D" parent="."] +texture = ExtResource("1_pkphv")