Files
ludum_dare_46/src/Boss/SlimeBoss/States/BossState.gd
2020-04-21 00:51:42 +02:00

40 lines
954 B
GDScript

extends "res://Overlap/StateMachine/State.gd"
onready var animation_player = owner.get_node("AnimationPlayer")
func play_directional_animation(name, vec):
var anim_name = name + get_nearest_diretion(vec)
if animation_player.current_animation != anim_name:
animation_player.play(anim_name)
func get_base_anim_name(name):
var base_name = name[0]
for i in range(1, len(name)):
if name[i] == name[i].to_upper():
return base_name
base_name += name[i]
func get_nearest_diretion(vec):
var directions = {
"Up": Vector2(0, -1.1),
"Down": Vector2(0, 1.1),
"Left": Vector2(-1.0, 0),
"Right": Vector2(1.0, 0)
}
var nearest_direction = "Left"
var smallest_distance = 999999999
for direction in directions.keys():
var vector = directions.get(direction)
var distance = vec.distance_to(vector)
if distance < smallest_distance:
nearest_direction = direction
smallest_distance = distance
return nearest_direction