* Modification de l'apparence de l'UI des dialogues * Changement de l'ordre de déblocage des mutations * Ajout d'une confirmation pour l'abandon * Ajout de la scène de fin avec la base Boréa, en tant que fin de démo * Modification des icône de durée de vie, temps de pousse, et de mort * Ajout d'un icône au dessus du joueur quand il n'a plus d'énergie * Amélioration des dialogues du jeu * Changement du modèle du téléphone * Ajout de cellule d'énergie et de cellule de talion trouvable sur la carte * Il est à nouveau possible de se recharger après la fin d'une région * Buff des mutations ancien sociale et solide * Modification de la mutation fertile (ne donne de gain de graine qu'à la maturation) * Ajout d'une récupération automatique des graines * Ajout de deux cartons de tutoriel ainsi qu'une option pour les revoir dans l'aide de jeu * Amélioration générale du tutoriel * Ajout d'un écran titre digne de ce nom * Lors de l'arrivée à destination, ne téléporte plus le joueur sur une map vide, mais directement dans les lieux de cinématique * Ajout graphique de plus de pattern de mousse et de roche * Le talion apparait maintenant sur toute la carte * La roche peut désormais apparaitre sur la zone de départ * Ajout dud modificateur de région Canyon * Equilibrage général * Fix de bugs en tout genre
52 lines
1.4 KiB
GDScript
52 lines
1.4 KiB
GDScript
extends Camera2D
|
|
class_name RegionCamera
|
|
|
|
const MOVE_LERP_WEIGHT = 0.9
|
|
const ZOOM_LERP_WEIGHT = 0.05
|
|
|
|
const SHAKE_INTENSITY = 10.0
|
|
const SHAKE_SPEED = 500.0
|
|
|
|
const ZOOM_STEP = 0.1
|
|
|
|
@export var following : Node2D
|
|
@export var should_follow : bool = true
|
|
@onready var settings = GameInfo.settings_data
|
|
|
|
@export var shake_active_time = -1
|
|
var shake_noise := FastNoiseLite.new()
|
|
|
|
func _input(_e):
|
|
if Input.is_action_just_pressed("zoom_in"):
|
|
settings.zoom = settings.zoom + ZOOM_STEP
|
|
GameInfo.save_settings()
|
|
if Input.is_action_just_pressed("zoom_out"):
|
|
settings.zoom = settings.zoom - ZOOM_STEP
|
|
GameInfo.save_settings()
|
|
|
|
func _ready():
|
|
if following and should_follow:
|
|
zoom = Vector2.ONE * settings.zoom
|
|
global_position = following.global_position
|
|
|
|
func _process(delta):
|
|
if following and should_follow:
|
|
global_position = following.global_position.lerp(global_position, MOVE_LERP_WEIGHT)
|
|
|
|
zoom = zoom.lerp(Vector2.ONE * settings.zoom, MOVE_LERP_WEIGHT)
|
|
|
|
if shake_active_time > 0.:
|
|
shake_active_time -= delta
|
|
|
|
offset = Vector2(
|
|
shake_noise.get_noise_2d(shake_active_time * SHAKE_SPEED, 0) * SHAKE_INTENSITY,
|
|
shake_noise.get_noise_2d(0, shake_active_time * SHAKE_SPEED) * SHAKE_INTENSITY,
|
|
)
|
|
else :
|
|
offset = lerp(offset, Vector2.ZERO, 10.5 * delta)
|
|
|
|
func shake(time := 5):
|
|
shake_noise.seed = randi()
|
|
|
|
shake_active_time = time
|