2022-07-18 03:38:46 -04:00

70 lines
2.1 KiB
GDScript

extends Node2D
export var hp : int = 3 # Number of hits before dying
onready var fish = get_node("/root/Tank/Fish")
var moving = true
var dest_counter : int = 0
var next_dest = 60
var destination : Vector2
func _ready():
print("I liiiiive...!")
func _process(delta: float) -> void:
$SwordPivot.rotation_degrees += 1
if destination:
var v = get_global_mouse_position() - global_position
var angle = v.angle() + deg2rad(270)
# if global_position.x < get_global_mouse_position().x:
# $AnimatedSprite.flip_v = false
# else:
# $AnimatedSprite.flip_v = true
if rad2deg(angle) < 180 or rad2deg(angle) > 360:
$AnimatedSprite.flip_v = true
else:
$AnimatedSprite.flip_v = false
var rotation_speed = PI * 0.75 # PI = 180 degrees
var angle_delta = rotation_speed * delta
angle = lerp_angle(global_rotation, angle + 1.57, 1.0)
angle = clamp(angle, global_rotation - angle_delta, global_rotation + angle_delta)
global_rotation = angle
func _select_destination() -> Vector2:
var dest = Vector2(rand_range(200, 1500), rand_range(200, 880))
return dest
func _on_SwordHitbox_area_entered(area: Area2D) -> void:
if area.is_in_group("Fish"):
fish.belly_up("Piranha")
func _on_Blindzone_area_entered(area: Area2D) -> void:
if area.is_in_group("Fish"):
moving = false
$TweenSwim.stop_all()
func _on_Blindzone_area_exited(area):
if area.is_in_group("Fish"):
moving = true
func _on_Timer_timeout() -> void:
#destination.x = move_toward(position.x, fish.get_global_position().x)
#destination.y = move_toward(position.y, fish.get_global_position().y)
destination.x = move_toward(global_position.x, get_global_mouse_position().x, 100)
destination.y = move_toward(global_position.y, get_global_mouse_position().y, 100)
# if dest_counter >= next_dest:
# destination = _select_destination()
# next_dest = rand_range(60,1200) # second number lower = move more frequently
# dest_counter = 0
# else:
# dest_counter +=1
if moving:
$TweenSwim.interpolate_property(self, "position", position, destination, 0.85, Tween.TRANS_EXPO, Tween.EASE_OUT) #number lower = faster
$TweenSwim.start()