34 lines
1.1 KiB
GDScript3
34 lines
1.1 KiB
GDScript3
![]() |
extends "res://Scripts/animationBase.gd"
|
||
|
|
||
|
@export var startPrimaryLoc: Vector2
|
||
|
@export var startSecondaryLoc: Vector2
|
||
|
@export var fullSize: float = 1
|
||
|
@onready var ballofayr: AnimatedSprite2D = $Path2D/PathFollow2D/AnimatedSprite2D
|
||
|
@onready var path: PathFollow2D = $Path2D/PathFollow2D
|
||
|
var dir: int = 1
|
||
|
var timer: float = 0
|
||
|
var size: Vector2 = Vector2(0, 0)
|
||
|
|
||
|
# Called when the node enters the scene tree for the first time.
|
||
|
func _ready():
|
||
|
if inverted:
|
||
|
dir = -1
|
||
|
ballofayr.position = startSecondaryLoc
|
||
|
|
||
|
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
||
|
func _process(delta):
|
||
|
if (targetProg / finalProg < 0.3):
|
||
|
timer = clampf(timer + delta, 0, clampf(targetProg / finalProg, 0, 0.17))
|
||
|
path.progress_ratio = timer
|
||
|
if (targetProg / finalProg < 0.9):
|
||
|
var dim: float = clampf(ballofayr.scale.x + delta, 0, targetProg / finalProg)
|
||
|
ballofayr.scale = Vector2(dim * fullSize, dim * fullSize)
|
||
|
if (targetProg / finalProg >= 0.9):
|
||
|
timer = clampf(timer + delta, 0, targetProg / finalProg)
|
||
|
path.progress_ratio = timer
|
||
|
if path.progress_ratio == 1:
|
||
|
self.free()
|
||
|
|
||
|
func castFailed():
|
||
|
pass
|