revo-jailbreak/objects/environment/exit/exit.gd
2023-09-08 20:47:33 -04:00

49 lines
1.6 KiB
GDScript

extends Node2D
export var cost = 0
onready var label = $Label
onready var anims = $AnimationPlayer
onready var map = get_owner()
func _ready():
anims.play("closed")
label.text = "" + str(cost)
func _physics_process(delta):
if Game.keys >= cost:
anims.play("open")
func _on_Area2D_area_entered(area):
if area.is_in_group("player_hitbox"):
#BONUSES
Game.final_score = Game.score
Game.bonuses = [0,0,0,0]
#Collection bonus
if Game.keys == 50: Game.Bonuses.Collection_Bonus += 500
if Game.shards == 5: Game.Bonuses.Collection_Bonus += 500
if Game.keys == 50 && Game.shards == 5:
Game.Bonuses.Collection_Bonus += 250
Game.shards_collected[5] = true
#Time bonus
if Game.keys == 50 && Game.shards == 5:
if Game.time < map.target_time_100:
Game.Bonuses.Time_Bonus += max(2500 - 2500 * int(Game.time / map.target_time_100), 0)
Game.shards_collected[6] = true
else:
if Game.time < map.target_time_any:
Game.Bonuses.Time_Bonus += max(2500 - 2500 * int(Game.time / map.target_time_any), 0)
Game.shards_collected[6] = true
#Life bonus
if Game.lives == 1: Game.Bonuses.Life_Bonus += 500
if Game.lives == 2:
Game.Bonuses.Life_Bonus += 1500
Game.shards_collected[7] = true
#Perfect bonus
if Game.lives == 2 && Game.keys == 50 && Game.shards == 5 && Game.time < map.target_time_100:
Game.Bonuses.Perfect_Bonus += 1000
for bonus in Game.bonuses:
Game.final_score += bonus
if Game.final_score > Game.high_final_score: Game.high_final_score = Game.final_score
Game.save()
Game.change_map(load("res://maps/level_select.tscn"))