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)