- Introduced explicit typing to variables and functions across multiple scripts for better code clarity. - Specified 'void' as the return type for functions that do not return a value. - Removed redundant code in some scripts.
42 lines
No EOL
1 KiB
GDScript
42 lines
No EOL
1 KiB
GDScript
extends Node2D
|
|
class_name Flowers
|
|
|
|
@onready var outline : Sprite2D = $AreaHighlight
|
|
|
|
@export var health : int = 100
|
|
|
|
var spawn_snails : bool = false
|
|
|
|
@onready var spawn_area : CollisionShape2D = $FlowerCollectionArea/CollisionShape2D
|
|
@onready var snail : Snail = $Snail
|
|
|
|
func _ready() -> void:
|
|
hide_outline()
|
|
|
|
## Check if this level is spawning snails or not
|
|
if GameState.spawn_snails:
|
|
Log.pr("Going to be spawning snails!")
|
|
spawn_snails = true
|
|
|
|
Log.pr(get_random_snail_spawn())
|
|
snail.global_position = get_random_snail_spawn()
|
|
|
|
|
|
func show_outline() -> void:
|
|
outline.visible = true
|
|
|
|
func hide_outline() -> void:
|
|
outline.visible = false
|
|
|
|
|
|
func get_random_snail_spawn() -> Vector2:
|
|
var circle_radius : float = spawn_area.shape.radius
|
|
var random_angle : float = randf_range(0, TAU)
|
|
|
|
var x : float = circle_radius * cos(random_angle)
|
|
var y : float = circle_radius * sin(random_angle)
|
|
|
|
var circle_center : Vector2 = spawn_area.global_position
|
|
var random_point : Vector2 = circle_center + Vector2(x, y)
|
|
|
|
return random_point |