Cleaned up skeleton script
This commit is contained in:
parent
6e2bc0c01d
commit
11f5d50964
|
@ -10,60 +10,46 @@ func apply_gravity(delta, modifier = 1):
|
|||
|
||||
func _physics_process(_delta):
|
||||
var dist = global_position.distance_to(Globals.player)
|
||||
if Globals.player != null:
|
||||
if $RayCast2D.get_collider() != null && $RayCast2D.get_collider().has_method("get_type") and $RayCast2D.get_collider().get_type() == "player":
|
||||
velocity = Vector2(0, 0)
|
||||
if ShootDelay.is_stopped():
|
||||
var temp = Spinning_Bone.instance()
|
||||
get_tree().current_scene.add_child(temp)
|
||||
temp.global_position = ProjectileSpawn.global_position
|
||||
temp.launch_left()
|
||||
ShootDelay.start()
|
||||
elif $RayCast2D2.get_collider() != null && $RayCast2D2.get_collider().has_method("get_type") and $RayCast2D2.get_collider().get_type() == "player":
|
||||
velocity = Vector2(0, 0)
|
||||
if ShootDelay.is_stopped():
|
||||
var temp = Spinning_Bone.instance()
|
||||
get_tree().current_scene.add_child(temp)
|
||||
temp.global_position = ProjectileSpawn.global_position
|
||||
temp.launch_right()
|
||||
ShootDelay.start()
|
||||
elif $RayCast2D3.get_collider() != null && $RayCast2D3.get_collider().has_method("get_type") and $RayCast2D3.get_collider().get_type() == "player":
|
||||
velocity = Vector2(0, 0)
|
||||
if ShootDelay.is_stopped():
|
||||
var temp = Spinning_Bone.instance()
|
||||
get_tree().current_scene.add_child(temp)
|
||||
temp.global_position = ProjectileSpawn.global_position
|
||||
temp.launch_upleft()
|
||||
ShootDelay.start()
|
||||
elif $RayCast2D4.get_collider() != null && $RayCast2D4.get_collider().has_method("get_type") and $RayCast2D4.get_collider().get_type() == "player":
|
||||
velocity = Vector2(0, 0)
|
||||
if ShootDelay.is_stopped():
|
||||
var temp = Spinning_Bone.instance()
|
||||
get_tree().current_scene.add_child(temp)
|
||||
temp.global_position = ProjectileSpawn.global_position
|
||||
temp.launch_upright()
|
||||
ShootDelay.start()
|
||||
else:
|
||||
apply_gravity(_delta)
|
||||
velocity.x *= speed
|
||||
velocity = move_and_slide(velocity, UP)
|
||||
if dist <= 400:
|
||||
velocity.x = position.direction_to(Globals.player).normalized().x
|
||||
else:
|
||||
if $RayCast2D.get_collider() != null && $RayCast2D.get_collider().has_method("get_type") and $RayCast2D.get_collider().get_type() == "player":
|
||||
velocity = Vector2(0, 0)
|
||||
throw_bone(Vector2.LEFT)
|
||||
elif $RayCast2D2.get_collider() != null && $RayCast2D2.get_collider().has_method("get_type") and $RayCast2D2.get_collider().get_type() == "player":
|
||||
velocity = Vector2(0, 0)
|
||||
throw_bone(Vector2.RIGHT)
|
||||
elif $RayCast2D3.get_collider() != null && $RayCast2D3.get_collider().has_method("get_type") and $RayCast2D3.get_collider().get_type() == "player":
|
||||
velocity = Vector2(0, 0)
|
||||
throw_bone(Vector2.UP + Vector2.LEFT)
|
||||
elif $RayCast2D4.get_collider() != null && $RayCast2D4.get_collider().has_method("get_type") and $RayCast2D4.get_collider().get_type() == "player":
|
||||
velocity = Vector2(0, 0)
|
||||
throw_bone(Vector2.UP + Vector2.RIGHT)
|
||||
else:
|
||||
apply_gravity(_delta)
|
||||
velocity.x *= speed
|
||||
velocity = move_and_slide(velocity, UP)
|
||||
|
||||
if dist <= 400:
|
||||
velocity.x = position.direction_to(Globals.player).normalized().x
|
||||
else:
|
||||
velocity = Vector2(0, 0)
|
||||
|
||||
if velocity.x > 0:
|
||||
$Skeleton.flip_h = false
|
||||
elif velocity.x < 0:
|
||||
$Skeleton.flip_h = true
|
||||
|
||||
# Kill
|
||||
if health <= 0:
|
||||
queue_free()
|
||||
|
||||
# Jump
|
||||
if is_on_wall() and is_on_floor():
|
||||
velocity.y = -150
|
||||
|
||||
func on_impact(collision):
|
||||
if collision.collider.has_method("get_type"):
|
||||
collision.collider.set_health(collision.collider.get_health() - 1)
|
||||
if health == 0:
|
||||
queue_free()
|
||||
func throw_bone(direction):
|
||||
if ShootDelay.is_stopped():
|
||||
var temp = Spinning_Bone.instance()
|
||||
get_tree().current_scene.add_child(temp)
|
||||
temp.global_position = ProjectileSpawn.global_position
|
||||
temp.launch_vector(direction)
|
||||
ShootDelay.start()
|
||||
|
||||
|
|
Loading…
Reference in a new issue