forked from team-sg/hero-mark-2
38 lines
1.1 KiB
GDScript
38 lines
1.1 KiB
GDScript
tool
|
|
extends "res://objects/enemy/enemy.gd"
|
|
|
|
## radius in tiles the ghost orbits around
|
|
export var radius: float = 0.0
|
|
## initital rotation offset in 8th circles
|
|
export var initial_angle: float = 0.0
|
|
## speed the ghost revolves in 8th cycles / second
|
|
export var speed: float = 0.0
|
|
|
|
onready var pivot: Node2D = $Pivot
|
|
onready var remote_transform: RemoteTransform2D = $Pivot/RemoteTransform
|
|
|
|
func _ready() -> void:
|
|
pivot.rotation = initial_angle * 0.785398 # TAU / 8.0
|
|
if Engine.editor_hint:
|
|
return
|
|
#Easy mode
|
|
if Game.is_easy_mode:
|
|
speed *= Game.easy_mode_speed_factor
|
|
|
|
func _physics_process(delta: float) -> void:
|
|
if Engine.editor_hint:
|
|
return
|
|
# update radius
|
|
remote_transform.position.x = radius * 8.0
|
|
# process rotation
|
|
pivot.rotation += speed * delta * 0.785398 # TAU / 8.0
|
|
|
|
func _process(delta: float) -> void:
|
|
if Engine.editor_hint and Engine.get_frames_drawn() % 10 == 0:
|
|
get_node("Pivot").rotation = initial_angle * 0.785398 # TAU / 8.0
|
|
get_node("Pivot/RemoteTransform").position.x = radius * 8.0
|
|
update()
|
|
|
|
func _draw() -> void:
|
|
if Engine.editor_hint:
|
|
draw_arc(Vector2(4.0, 4.0), radius * 8.0, 0.0, TAU, 17, Color(0.0, 1.0, 1.0, 0.1), 1.5)
|