Equilibrage, amélioration du tutoriel et de la clarté des éléments de gameplay

* Rajout d'une région supplémentaire pour finir le jeu, et renommage de la dernière map en "Base Borea"
* Amélioration de la clarté du détecteur
* Les objectifs du tutoriel et les indications de jeu apparaissent désormais en haut de l'écran
* Changement des étapes du tutoriel
* Amélioration de la lisibilité du voyage dans le vaisseau (avec un décompte de distance jusqu'à la fin du jeu)
* Changement de la génération de map : la zone fertile est désormais uniquement au centre de la carte, les chunks sont également plus petits
* Changement des objectifs à réaliser ainsi que des recharges, seule 8 par région désormais
* Les modificateurs de région n'évoluent plus
This commit is contained in:
2026-03-21 18:59:39 +01:00
parent 03fbf72ee9
commit 4a46492598
26 changed files with 470 additions and 271 deletions

View File

@@ -2,8 +2,12 @@
extends Node2D
class_name DetectorSignal
const SIGNAL_DURATION = 1
const PARTICLES_DISTANCE = 100
const SIGNAL_DURATION = 1.2
const PARTICLES_DISTANCE = 180
const ICON_SIZE = 40
const POINT_ICON_SIZE = 30
const POINT_ICON_SHIFT = 0.2
const POINT_ICON = preload("res://common/icons/caret-down.svg")
const DEFAULT_ICON = preload("res://common/icons/north-star.svg")
const ENERGY_ICON = preload("res://common/icons/bolt.svg")
const DOOR_ICON = preload("res://common/icons/logout.svg")
@@ -21,15 +25,17 @@ func _init(region : Region, pos : Vector2):
signals.append(
DetectorSignalIndividual.new(
(pos - e.global_position).normalized().angle(),
ENERGY_ICON
ENERGY_ICON,
Color("ffa617ff")
)
)
if e is Door and e.available:
signals.append(
DetectorSignalIndividual.new(
(pos - e.global_position).normalized().angle(),
DOOR_ICON
)
DOOR_ICON,
Color("ffa617ff")
),
)
if e is Plant:
signals.append(
@@ -49,11 +55,26 @@ func _draw():
5.
)
for s in signals:
draw_texture(
draw_texture_rect(
s.icon,
Vector2.ZERO - DEFAULT_ICON.get_size()/2 + Vector2.LEFT.rotated(s.angle) * started_time/SIGNAL_DURATION * PARTICLES_DISTANCE,
Rect2(
Vector2.ZERO - (Vector2.ONE * ICON_SIZE)/2 + Vector2.LEFT.rotated(s.angle) * started_time/SIGNAL_DURATION * PARTICLES_DISTANCE,
Vector2.ONE * ICON_SIZE
),
false,
Color(s.color.r,s.color.g,s.color.b,1-started_time/SIGNAL_DURATION)
)
draw_set_transform(Vector2.ZERO,s.angle + PI/2, Vector2.ONE)
draw_texture_rect(
POINT_ICON,
Rect2(
Vector2.ZERO - (Vector2.ONE * POINT_ICON_SIZE)/2 + Vector2.DOWN * (started_time/SIGNAL_DURATION + POINT_ICON_SHIFT) * PARTICLES_DISTANCE,
Vector2.ONE * POINT_ICON_SIZE
),
false,
Color(1.,1.,1.,1-started_time/SIGNAL_DURATION)
)
draw_set_transform(Vector2.ZERO,0., Vector2.ONE)
func _process(delta):
if started_time < SIGNAL_DURATION:
@@ -65,11 +86,14 @@ func _process(delta):
class DetectorSignalIndividual:
var angle : float
var icon : Texture
var color : Color
func _init(
_angle : float = 0.,
_icon : Texture = DEFAULT_ICON
_icon : Texture = DEFAULT_ICON,
_color : Color = Color.WHITE,
):
angle = _angle
icon = _icon
color = _color