mirror of
https://github.com/csd4ni3l/fishy-fingers.git
synced 2026-03-10 17:09:15 +01:00
73 lines
2.5 KiB
GDScript
73 lines
2.5 KiB
GDScript
extends Node2D
|
|
@onready var fish_parent: Node2D = $fish_parent
|
|
@onready var coinText: RichTextLabel = $Control/coins_label
|
|
@onready var audio_player = $"ClickSoundManager"
|
|
var last_bubble = Time.get_ticks_msec()
|
|
|
|
func _input(event):
|
|
if event is InputEventMouseButton and event.pressed:
|
|
Globals.all_hit += 1
|
|
|
|
func play_sound(path: String):
|
|
var player = AudioStreamPlayer.new()
|
|
add_child(player)
|
|
player.stream = load(path)
|
|
player.play()
|
|
player.finished.connect(player.queue_free)
|
|
|
|
func spawn_blahaj() -> void:
|
|
var new_blahaj: Area2D = $blahaj_area2d.duplicate(15)
|
|
new_blahaj.set_meta("is_original", false)
|
|
var new_blahaj_size = new_blahaj.get_child(0).texture.get_size() * new_blahaj.get_child(0).scale
|
|
new_blahaj.position = Vector2(
|
|
randf_range(DisplayServer.window_get_size().x * 0.1, Globals.spawn_area.x - new_blahaj_size.x),
|
|
randf_range(DisplayServer.window_get_size().y * 0.1, Globals.spawn_area.y - new_blahaj_size.y)
|
|
)
|
|
|
|
add_child(new_blahaj)
|
|
|
|
func spawn_toucan() -> void:
|
|
var new_toucan: Area2D = $toucan_area2d.duplicate(15)
|
|
new_toucan.set_meta("is_original", false)
|
|
var new_toucan_size = new_toucan.get_child(0).texture.get_size()
|
|
new_toucan.position = Vector2(
|
|
randf_range(DisplayServer.window_get_size().x * 0.1, Globals.spawn_area.x - new_toucan_size.x),
|
|
-new_toucan_size.y * 2
|
|
)
|
|
|
|
add_child(new_toucan)
|
|
|
|
func spawn_bubble() -> void:
|
|
var new_bubble: Sprite2D = $bubble_to_clone.duplicate(15)
|
|
new_bubble.set_meta("is_original", false)
|
|
var new_bubble_size = new_bubble.texture.get_size()
|
|
new_bubble.position = Vector2(
|
|
randf_range(0, DisplayServer.window_get_size().x - new_bubble_size.x),
|
|
DisplayServer.window_get_size().y
|
|
)
|
|
add_child(new_bubble)
|
|
|
|
func _ready() -> void:
|
|
audio_player.play()
|
|
Globals.init_button($fish_parent/fish_area2d)
|
|
get_viewport().size_changed.connect(_on_window_resized)
|
|
|
|
var spawn_time: float = (1.0 / (4.0 + Globals.spawn_speed_upgrades))
|
|
$spawn_timer.wait_time = spawn_time
|
|
|
|
for i in Globals.blahaj_upgrades:
|
|
spawn_blahaj()
|
|
|
|
for i in Globals.toucan_upgrades:
|
|
spawn_toucan()
|
|
|
|
func _on_window_resized() -> void:
|
|
Globals.spawn_area = DisplayServer.window_get_size()
|
|
|
|
func _process(_delta: float) -> void:
|
|
coinText.text = "Coins: {coins}\nFish per second: {fish_per_second}\nHit rate: {hit_rate}%".format({"coins": Globals.coins, "fish_per_second": round(Globals.last_fish_per_second / 3.0), "hit_rate": round(Globals.last_hit_percent)})
|
|
|
|
if Time.get_ticks_msec() - last_bubble >= 100:
|
|
last_bubble = Time.get_ticks_msec()
|
|
spawn_bubble()
|