50 lines
1.2 KiB
GDScript
50 lines
1.2 KiB
GDScript
extends Area2D
|
|
|
|
@onready var collectArea = $CollectArea
|
|
@onready var animatedSprite = $AnimatedSprite2D
|
|
|
|
func _ready() -> void:
|
|
animatedSprite.play("default")
|
|
|
|
func _physics_process(delta: float) -> void:
|
|
for i in get_overlapping_bodies():
|
|
if i.is_in_group("Player"):
|
|
if G.isStormThreshold():
|
|
moveTowardsCenter(i)
|
|
for i in get_overlapping_areas():
|
|
if i.is_in_group("Object"):
|
|
if not i.isCarryied():
|
|
moveTowardsCenter(i)
|
|
else:
|
|
scale = Vector2(1,1)
|
|
#cashInObject()
|
|
|
|
func cashInObject():
|
|
for i in collectArea.get_overlapping_areas():
|
|
if not i.isCarryied():
|
|
G.addMoney(i.getValue())
|
|
i.queue_free()
|
|
|
|
|
|
func moveTowardsCenter(object : Node2D):
|
|
object.global_position.y = move_toward(object.global_position.y, global_position.y, 2)
|
|
|
|
object.global_position.x = move_toward(object.global_position.x, global_position.x, 2)
|
|
|
|
object.scale.y -= 0.01
|
|
object.scale.x -= 0.01
|
|
|
|
func extractPlayer():
|
|
G.extractPlayer()
|
|
|
|
|
|
func _on_collect_area_area_entered(area: Area2D) -> void:
|
|
if area.is_in_group("Object"):
|
|
cashInObject()
|
|
|
|
|
|
func _on_collect_area_body_entered(body: Node2D) -> void:
|
|
|
|
if G.isStormThreshold():
|
|
if body.is_in_group("Player"):
|
|
extractPlayer()
|