123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- extends Node2D
- onready var PheromoneMap := .get_parent().get_parent().get_node("Pheromones")
- onready var intenfityBar = .get_node("HSplitContainer/intensity")
- onready var close2homeBar = .get_node("HSplitContainer/close2home")
- var created = 0
- var lifetime = 10
- var intensity = 1.0
- var decay = 0.8
- var closeToHome = 0
- var type = "search"
- var dir := Vector2()
- var tilePos := Vector2()
- # meta creator
- var _timer
- func _ready():
- created = OS.get_unix_time()
- position = PheromoneMap.map_to_world(tilePos)
- get_node("dir").add_point(Vector2())
- get_node("dir").add_point(dir*10)
-
- _timer = Timer.new()
- add_child(_timer)
-
- if .get_meta("type") == "food":
- lifetime = 60
- decay = 0.99
- _timer.connect("timeout", self, "_on_Timer_timeout")
- _timer.set_wait_time(1.0)
- _timer.set_one_shot(false) # Make sure it loops
- _timer.start()
-
- func _on_Timer_timeout():
- intensity = intensity * decay
- # Called every frame. 'delta' is the elapsed time since the previous frame.
- func _process(delta):
- intenfityBar.value=intensity * 100
- if intensity <= 0.1:
- .get_parent().removePheromone(self)
- queue_free()
- close2homeBar.value = closeToHome*100
|