Dev pour la beta 1.4
* Changements de la texture des cristaux de Talion dans tous les assets 3D pour correspondre aux assets 2D * Ajout d'un évenement en fin de région, une résurgence de Talion qui décontamine et fait looter les plantes mature aux alentours * Ajout d'un path finding sur le mouvement du robot * Modification du flow des actions à la souris : ajout d'un nouveau son, d'un icône à l'emplacement de l'action * Modification du nombre et de l'ordre de mutation débloquées * Augmentation de la valeur maximale de zoom * Modification des scores à atteindre dans les premières régions * Modification de l'interface du vaisseau, laissant apparaitre une roadmap plus claire, et laissant inspecter l'inventaire actuel * Modification de l'icône d'action dans les scènes 3D * Augmentation de la zone d'écart entre les plantes, et augmentation du taux de zone fertile en conséquence * La station de recharge devient inutilisable après la fin de la région * Ajout d'une transparence lors de la sélection d'objets derrières d'autres objets * Les plantes juvéniles donneront toujours une graine si coupées * Ajout d'un bouclage sur les couleurs des mutations * Fix des hitbox des plantes pour l'inspection à la souris * Fix de plusieurs bugs sur la manipulation de l'inventaire * Ajout de nombreux screenshots d'utilisation des outils lors du tutoriel * Amélioration mineure de la traduction/wording
This commit is contained in:
@@ -1,29 +1,52 @@
|
||||
extends Camera2D
|
||||
class_name Camera
|
||||
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()
|
||||
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:
|
||||
zoom = Vector2.ONE * settings.zoom
|
||||
global_position = following.global_position
|
||||
if following and should_follow:
|
||||
zoom = Vector2.ONE * settings.zoom
|
||||
global_position = following.global_position
|
||||
|
||||
func _process(_delta):
|
||||
if following:
|
||||
global_position = following.global_position.lerp(global_position, MOVE_LERP_WEIGHT)
|
||||
|
||||
zoom = zoom.lerp(Vector2.ONE * settings.zoom, MOVE_LERP_WEIGHT)
|
||||
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.:
|
||||
print(shake_noise.get_noise_2d(shake_active_time * SHAKE_SPEED, 0) * SHAKE_INTENSITY)
|
||||
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
|
||||
|
||||
Reference in New Issue
Block a user