extends Node2D @export var max_activation_dist = 20: set(value): max_activation_dist = value $activation_area/shape.shape.radius = $planet_v2.planet_radius + max_activation_dist var block_trigger = false @export var button_color: String: set(value): button_color = value for i in ["Orange", "Green", "Pink"]: get_node("Color/"+str(i)).visible = false get_node("Color/"+str(value).capitalize()).visible = true @export var size_scale := 1.0: set(value): size_scale = value $planet_v2.size_scale = value @export var planet_type: GlobalVariables.planets: set(value): planet_type = value $planet_v2.planet_type = value @export var win_planet := false: set(value): win_planet = value $planet_v2.win_planet = value @export var win_message := "You reached the goal": set(value): win_message = value $planet_v2.win_message = value @export var death_message_overwrite: String: set(value): death_message_overwrite = value $planet_v2.death_message_overwrite = value @export var speed := 300: set(value): speed = value $planet_v2.speed = value @export var clockwise := true: set(value): clockwise = value $planet_v2.clockwise = value @export var collision_enabled := true: set(value): collision_enabled = value $planet_v2.collision_enabled = value func _ready() -> void: $planet_v2.size_scale = size_scale # for differentiating different planets $planet_v2.planet_type = planet_type $planet_v2.win_planet = win_planet $planet_v2.win_message = win_message $planet_v2.death_message_overwrite = death_message_overwrite $planet_v2.speed = speed $planet_v2.clockwise = clockwise $planet_v2.collision_enabled = collision_enabled # Base radius of everything: 192 # Wanted radius: (Planet_radius + max_activation_dist)*4 var base_radius = 192 var wanted_radius = ($planet_v2.planet_radius + max_activation_dist)*4 var scale_factor = wanted_radius/float(base_radius) #Scale Sprite $Color.scale = Vector2(scale_factor, scale_factor) #Scale Hitbox $activation_area/shape.scale = Vector2(scale_factor, scale_factor) $activation_area/shape.shape.radius = base_radius func _physics_process(_delta: float) -> void: #Check if player is orbiting this planet on low orbit if is_player_in_area(): if !block_trigger: GlobalVariables.toggle_button(button_color) block_trigger = true else: block_trigger = false func is_player_in_area() -> bool: for body in $activation_area.get_overlapping_areas(): if body.is_in_group("player"): return true return false