mirror of
https://github.com/Steffo99/pineapple-surf.git
synced 2024-11-21 23:34:21 +00:00
Stefano Pigozzi
23747addd1
- Do not kick to the main menu after reaching the goal - Display the current player in yellow on the scoreboard - Add a new leafpile on the sand islands - Add timer and speedometer
63 lines
1.6 KiB
GDScript
63 lines
1.6 KiB
GDScript
extends Node3D
|
|
class_name Temple
|
|
|
|
var score: int = 0
|
|
var time: float = 0.0
|
|
var is_exploded: bool = false
|
|
|
|
@export var size_per_prayer: float = 0.05
|
|
@export var pitch_per_prayer: float = 0.02
|
|
@export var explode_at: int = 150
|
|
@export var explosion_scene: PackedScene = preload("res://island/FunnyExplosion.tscn")
|
|
|
|
@onready var prayer_area: Area3D = $PrayerArea
|
|
@onready var pineglasses: MeshInstance3D = $Pineglasses
|
|
@onready var pineglasses_sound: AudioStreamPlayer3D = $Pineglasses/Growth
|
|
|
|
|
|
func try_to_collect_fruit():
|
|
var player = Singletons.player
|
|
if prayer_area.overlaps_body(player):
|
|
if player.collected_fruit > 0:
|
|
if not pineglasses_sound.playing:
|
|
pineglasses_sound.play()
|
|
player.collected_fruit -= 1
|
|
score += 1
|
|
pineglasses.scale += Vector3(size_per_prayer, size_per_prayer, size_per_prayer)
|
|
pineglasses_sound.pitch_scale += pitch_per_prayer
|
|
else:
|
|
if pineglasses_sound.playing:
|
|
pineglasses_sound.stop()
|
|
else:
|
|
if pineglasses_sound.playing:
|
|
pineglasses_sound.stop()
|
|
|
|
|
|
# "is it gonna explode tho"
|
|
# --Ichi
|
|
func try_to_explode():
|
|
if not is_exploded and score >= explode_at:
|
|
is_exploded = true
|
|
var explosion = explosion_scene.instantiate()
|
|
var explosion_sound = explosion.get_node("ExplosionSound")
|
|
explosion.position = pineglasses.position + Vector3.UP
|
|
explosion.scale = pineglasses.scale
|
|
explosion_sound.connect("finished", win)
|
|
add_child(explosion)
|
|
|
|
|
|
func win():
|
|
print("YOU WIN!")
|
|
print("Time: ", time)
|
|
$"/root/BaseScene/ScoreboardContainer".upload_score(time)
|
|
queue_free()
|
|
|
|
|
|
func _process(delta):
|
|
if not is_exploded:
|
|
time += delta
|
|
|
|
|
|
func _physics_process(_delta):
|
|
try_to_collect_fruit()
|
|
try_to_explode()
|