1
Fork 0
mirror of https://github.com/Steffo99/pineapple-surf.git synced 2024-11-25 01:04:18 +00:00
pineapple-surf/island/Temple.gd
Stefano Pigozzi 23747addd1
Implement many post-jam details
- 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
2023-01-14 22:31:02 +01:00

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()