init
This commit is contained in:
20
general/enemy_counter/enemy_counter.gd
Normal file
20
general/enemy_counter/enemy_counter.gd
Normal file
@@ -0,0 +1,20 @@
|
||||
class_name EnemyCounter extends Node2D
|
||||
|
||||
signal enemies_defeated
|
||||
|
||||
func _ready() -> void:
|
||||
child_exiting_tree.connect(on_enemy_destroyed)
|
||||
pass
|
||||
|
||||
func on_enemy_destroyed(node: Node2D) -> void:
|
||||
if node is Enemy and enemy_count() <= 1:
|
||||
enemies_defeated.emit()
|
||||
print("ENEMIES DEFEATED")
|
||||
|
||||
func enemy_count() -> int:
|
||||
var count := 0
|
||||
for child in get_children():
|
||||
if child is Enemy:
|
||||
count += 1
|
||||
return count
|
||||
|
||||
1
general/enemy_counter/enemy_counter.gd.uid
Normal file
1
general/enemy_counter/enemy_counter.gd.uid
Normal file
@@ -0,0 +1 @@
|
||||
uid://bxyv7orhs7xw2
|
||||
6
general/enemy_counter/enemy_counter.tscn
Normal file
6
general/enemy_counter/enemy_counter.tscn
Normal file
@@ -0,0 +1,6 @@
|
||||
[gd_scene format=3 uid="uid://s54xni3yvek5"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://bxyv7orhs7xw2" path="res://general/enemy_counter/enemy_counter.gd" id="1_6ymjw"]
|
||||
|
||||
[node name="EnemyCounter" type="Node2D" unique_id=1225445185]
|
||||
script = ExtResource("1_6ymjw")
|
||||
13
general/hitbox/hitbox.gd
Normal file
13
general/hitbox/hitbox.gd
Normal file
@@ -0,0 +1,13 @@
|
||||
class_name Hitbox extends Area2D
|
||||
|
||||
signal damaged(hurtbox: Hurtbox)
|
||||
|
||||
func _ready() -> void:
|
||||
pass # Replace with function body.
|
||||
|
||||
|
||||
func _process(_delta: float) -> void:
|
||||
pass
|
||||
|
||||
func take_damage(hurtbox: Hurtbox) -> void:
|
||||
damaged.emit(hurtbox)
|
||||
1
general/hitbox/hitbox.gd.uid
Normal file
1
general/hitbox/hitbox.gd.uid
Normal file
@@ -0,0 +1 @@
|
||||
uid://cmdjqh873unve
|
||||
9
general/hitbox/hitbox.tscn
Normal file
9
general/hitbox/hitbox.tscn
Normal file
@@ -0,0 +1,9 @@
|
||||
[gd_scene format=3 uid="uid://cda6fr5vhb4ty"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://cmdjqh873unve" path="res://general/hitbox/hitbox.gd" id="1_4tnmp"]
|
||||
|
||||
[node name="Hitbox" type="Area2D" unique_id=1876591880]
|
||||
collision_layer = 256
|
||||
collision_mask = 0
|
||||
monitoring = false
|
||||
script = ExtResource("1_4tnmp")
|
||||
13
general/hurtbox/hurtbox.gd
Normal file
13
general/hurtbox/hurtbox.gd
Normal file
@@ -0,0 +1,13 @@
|
||||
class_name Hurtbox extends Area2D
|
||||
|
||||
@export var damage: int = 1
|
||||
|
||||
func _ready() -> void:
|
||||
area_entered.connect(hurtbox_entered)
|
||||
|
||||
func _process(_delta: float) -> void:
|
||||
pass
|
||||
|
||||
func hurtbox_entered(area: Area2D) -> void:
|
||||
if area is Hitbox:
|
||||
area.take_damage(self)
|
||||
1
general/hurtbox/hurtbox.gd.uid
Normal file
1
general/hurtbox/hurtbox.gd.uid
Normal file
@@ -0,0 +1 @@
|
||||
uid://c0fmav64y2rrk
|
||||
9
general/hurtbox/hurtbox.tscn
Normal file
9
general/hurtbox/hurtbox.tscn
Normal file
@@ -0,0 +1,9 @@
|
||||
[gd_scene format=3 uid="uid://mwyvk4gke34"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://c0fmav64y2rrk" path="res://general/hurtbox/hurtbox.gd" id="1_85hd5"]
|
||||
|
||||
[node name="Hurtbox" type="Area2D" unique_id=38213362]
|
||||
collision_layer = 0
|
||||
collision_mask = 2
|
||||
monitorable = false
|
||||
script = ExtResource("1_85hd5")
|
||||
BIN
general/item-dropper/dungeon_discovery.wav
Normal file
BIN
general/item-dropper/dungeon_discovery.wav
Normal file
Binary file not shown.
24
general/item-dropper/dungeon_discovery.wav.import
Normal file
24
general/item-dropper/dungeon_discovery.wav.import
Normal file
@@ -0,0 +1,24 @@
|
||||
[remap]
|
||||
|
||||
importer="wav"
|
||||
type="AudioStreamWAV"
|
||||
uid="uid://b7nup12qxtlh"
|
||||
path="res://.godot/imported/dungeon_discovery.wav-41484ca4e230435a886c5306ceaade95.sample"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://general/item-dropper/dungeon_discovery.wav"
|
||||
dest_files=["res://.godot/imported/dungeon_discovery.wav-41484ca4e230435a886c5306ceaade95.sample"]
|
||||
|
||||
[params]
|
||||
|
||||
force/8_bit=false
|
||||
force/mono=false
|
||||
force/max_rate=false
|
||||
force/max_rate_hz=44100
|
||||
edit/trim=false
|
||||
edit/normalize=false
|
||||
edit/loop_mode=0
|
||||
edit/loop_begin=0
|
||||
edit/loop_end=-1
|
||||
compress/mode=2
|
||||
46
general/item-dropper/item_dropper.gd
Normal file
46
general/item-dropper/item_dropper.gd
Normal file
@@ -0,0 +1,46 @@
|
||||
@tool
|
||||
class_name ItemDropper extends Node2D
|
||||
|
||||
const PICKUP = preload("res://items/item_pickup/item_pickup.tscn")
|
||||
|
||||
@export var item: ItemData : set = set_item_data
|
||||
|
||||
@onready var sprite: Sprite2D = $Sprite2D
|
||||
@onready var dropped_data: PersistentDataHandler = $PersistentDataHandler
|
||||
@onready var audio: AudioStreamPlayer = $AudioStreamPlayer
|
||||
|
||||
var dropped := false
|
||||
|
||||
func _ready() -> void:
|
||||
if Engine.is_editor_hint():
|
||||
update_texture()
|
||||
return
|
||||
sprite.visible = false
|
||||
dropped_data.data_loaded.connect(on_data_loaded)
|
||||
on_data_loaded()
|
||||
|
||||
func set_item_data(new_item: ItemData) -> void:
|
||||
item = new_item
|
||||
update_texture()
|
||||
|
||||
func update_texture() -> void:
|
||||
if !Engine.is_editor_hint():
|
||||
return
|
||||
if item and sprite:
|
||||
sprite.texture = item.texture
|
||||
|
||||
func on_data_loaded() -> void:
|
||||
dropped = dropped_data.value
|
||||
|
||||
func drop_item() -> void:
|
||||
if dropped:
|
||||
return
|
||||
dropped = true
|
||||
var drop = PICKUP.instantiate() as ItemPickup
|
||||
drop.item_data = item
|
||||
add_child(drop)
|
||||
drop.picked_up.connect(on_item_picked_up)
|
||||
audio.play()
|
||||
|
||||
func on_item_picked_up() -> void:
|
||||
dropped_data.set_value()
|
||||
1
general/item-dropper/item_dropper.gd.uid
Normal file
1
general/item-dropper/item_dropper.gd.uid
Normal file
@@ -0,0 +1 @@
|
||||
uid://ce3vhcig6dc4p
|
||||
26
general/item-dropper/item_dropper.tscn
Normal file
26
general/item-dropper/item_dropper.tscn
Normal file
@@ -0,0 +1,26 @@
|
||||
[gd_scene format=3 uid="uid://q756h6ku2kjn"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://ce3vhcig6dc4p" path="res://general/item-dropper/item_dropper.gd" id="1_yo2da"]
|
||||
[ext_resource type="Script" uid="uid://bej7822ail7o" path="res://general/persistent_data/persistent_data_handler.gd" id="2_syr8l"]
|
||||
[ext_resource type="AudioStream" uid="uid://b7nup12qxtlh" path="res://general/item-dropper/dungeon_discovery.wav" id="2_u0i1k"]
|
||||
|
||||
[node name="ItemDropper" type="Node2D" unique_id=1807553228]
|
||||
script = ExtResource("1_yo2da")
|
||||
|
||||
[node name="Sprite2D" type="Sprite2D" parent="." unique_id=1635927483]
|
||||
|
||||
[node name="Label" type="Label" parent="Sprite2D" unique_id=423753573]
|
||||
offset_left = -40.0
|
||||
offset_top = -24.0
|
||||
offset_right = 43.0
|
||||
offset_bottom = -1.0
|
||||
theme_override_colors/font_outline_color = Color(0, 0, 0, 1)
|
||||
theme_override_constants/outline_size = 6
|
||||
text = "Item Drop "
|
||||
|
||||
[node name="AudioStreamPlayer" type="AudioStreamPlayer" parent="." unique_id=855210117]
|
||||
stream = ExtResource("2_u0i1k")
|
||||
|
||||
[node name="PersistentDataHandler" type="Node" parent="." unique_id=213983155]
|
||||
script = ExtResource("2_syr8l")
|
||||
metadata/_custom_type_script = "uid://bej7822ail7o"
|
||||
18
general/persistent_data/persistent_data_handler.gd
Normal file
18
general/persistent_data/persistent_data_handler.gd
Normal file
@@ -0,0 +1,18 @@
|
||||
class_name PersistentDataHandler extends Node
|
||||
|
||||
signal data_loaded
|
||||
|
||||
var value := false
|
||||
|
||||
func _ready() -> void:
|
||||
get_value()
|
||||
|
||||
func set_value() -> void:
|
||||
SaveManager.add_persistent_value(get_data_name())
|
||||
|
||||
func get_value() -> void:
|
||||
value = SaveManager.check_persistent_value(get_data_name())
|
||||
data_loaded.emit()
|
||||
|
||||
func get_data_name() -> String:
|
||||
return "%s/%s/%s" % [get_tree().current_scene.scene_file_path, get_parent().name, name]
|
||||
1
general/persistent_data/persistent_data_handler.gd.uid
Normal file
1
general/persistent_data/persistent_data_handler.gd.uid
Normal file
@@ -0,0 +1 @@
|
||||
uid://bej7822ail7o
|
||||
6
general/persistent_data/persistent_data_handler.tscn
Normal file
6
general/persistent_data/persistent_data_handler.tscn
Normal file
@@ -0,0 +1,6 @@
|
||||
[gd_scene format=3 uid="uid://dqwuowiyehr7d"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://bej7822ail7o" path="res://general/persistent_data/persistent_data_handler.gd" id="1_72b1k"]
|
||||
|
||||
[node name="PersistentDataHandler" type="Node" unique_id=843808896]
|
||||
script = ExtResource("1_72b1k")
|
||||
Reference in New Issue
Block a user