summaryrefslogtreecommitdiff
path: root/src/entities/food/scripts/food.gd
diff options
context:
space:
mode:
authorDavid Luevano Alvarado <david@luevano.xyz>2022-06-04 03:17:22 -0600
committerDavid Luevano Alvarado <david@luevano.xyz>2022-06-04 03:17:22 -0600
commit36874a535a3d5f7f2955f33e34aa1a4768b6fec1 (patch)
tree8f4eaa57d5e82d962719a8a399cfc210ced672e6 /src/entities/food/scripts/food.gd
parentf922fe4669080d1633e0a345a3f8981867c9e841 (diff)
added hud for snake size and grow progress
Diffstat (limited to 'src/entities/food/scripts/food.gd')
-rw-r--r--src/entities/food/scripts/food.gd59
1 files changed, 47 insertions, 12 deletions
diff --git a/src/entities/food/scripts/food.gd b/src/entities/food/scripts/food.gd
index e8b0261..2e00978 100644
--- a/src/entities/food/scripts/food.gd
+++ b/src/entities/food/scripts/food.gd
@@ -1,24 +1,59 @@
class_name Food
extends Area2D
-enum Type {
- APPLE
-}
+onready var _sprite: Sprite = $Sprite
-var _type_texture: Dictionary = {
- Type.APPLE: preload("res://entities/food/sprites/apple.png")
-}
+var texture: Dictionary
+var timer: Timer
-export(Type) var TYPE
-onready var _sprite: Sprite = $Sprite
-var location: Vector2
+var properties: Dictionary
+var points: int = 1
+var time_to_live: float = -1.0
func _ready():
+ randomize_stats()
+ _set_properties()
+ timer = Timer.new()
+ timer.one_shot = true
+
+ timer.connect("timeout", self, "_on_timer_timeout")
connect("body_entered", self, "_on_body_entered")
- _sprite.texture = _type_texture[TYPE]
+
+
+func set_type(type: int) -> void:
+ set_property("type", type)
+ _sprite.texture = texture[type]
+
+
+func set_location(loc: Vector2) -> void:
+ set_property("location", loc)
+
+
+func set_timer(time: float) -> void:
+ time_to_live = time
+ if time_to_live != -1.0:
+ timer.wait_time = time_to_live
+ timer.start()
+
+
+func set_property(property: String, value) -> void:
+ properties[property] = value
+
+
+func _set_properties() -> void:
+ set_property("points", points)
+
+
+func randomize_stats() -> void:
+ points = int(rand_range(1, 30))
func _on_body_entered(body: Node) -> void:
- Event.emit_signal("food_eaten", TYPE, location)
- queue_free() \ No newline at end of file
+ Event.emit_signal("food_eaten", properties)
+ queue_free()
+
+
+func _on_timer_timeout() -> void:
+ Event.emit_signal("food_timed_out", properties)
+ queue_free()