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:
@@ -10,16 +10,15 @@ var score_mirror :
|
||||
score_mirror = v
|
||||
score_update(true)
|
||||
|
||||
var objective_text : String = "" : set = set_objective_text
|
||||
|
||||
func _ready():
|
||||
GameInfo.game_data.current_region_data.updated.connect(_on_region_updated)
|
||||
GameInfo.game_data.player_data.updated.connect(_on_player_updated)
|
||||
GameInfo.game_data.current_region_data.pass_day_ended.connect(_on_region_pass_day_ended)
|
||||
|
||||
|
||||
%ObjectiveProgressBar.visible = not "tutorial" in GameInfo.game_data.current_region_data.flags
|
||||
%SimplePlantPointScore.visible = "tutorial" in GameInfo.game_data.current_region_data.flags
|
||||
|
||||
charge_update(GameInfo.game_data.current_region_data)
|
||||
state_update(GameInfo.game_data.current_region_data)
|
||||
player_update(GameInfo.game_data.player_data, false)
|
||||
%EnergyInfo.reset_size()
|
||||
@@ -28,6 +27,7 @@ func _ready():
|
||||
score_mirror = GameInfo.game_data.current_region_data.get_score()
|
||||
for p : PlantData in GameInfo.game_data.current_region_data.plants:
|
||||
score_by_plant[str(p.random_seed)] = p.get_score()
|
||||
set_objective_text()
|
||||
|
||||
func _on_player_updated(player_data : PlayerData):
|
||||
player_update(player_data)
|
||||
@@ -48,8 +48,6 @@ func player_update(player_data : PlayerData, with_animation = true):
|
||||
else:
|
||||
%NoEnergyVignette.modulate.a = 1. if player_data.energy == 0 else 0.
|
||||
|
||||
|
||||
|
||||
func _on_region_updated(region_data : RegionData):
|
||||
await get_tree().create_timer(0.1).timeout
|
||||
if score_mirror != region_data.get_score():
|
||||
@@ -70,23 +68,19 @@ func _on_region_updated(region_data : RegionData):
|
||||
score_mirror -= score_by_plant[key]
|
||||
score_by_plant.erase(key)
|
||||
|
||||
charge_update(region_data)
|
||||
state_update(region_data)
|
||||
|
||||
func _on_give_up_pressed():
|
||||
GameInfo.game_data.give_up()
|
||||
SceneManager.change_to_scene_id('ASTRA')
|
||||
|
||||
func charge_update(region_data : RegionData):
|
||||
%RechargesLeftLabel.text = tr("%d_CHARGE_LEFT") % (region_data.charges)
|
||||
|
||||
func score_update(with_animation = true):
|
||||
var objective_progression : float
|
||||
var objective = GameInfo.game_data.current_region_data.objective
|
||||
if GameInfo.game_data.current_region_data.state == RegionData.State.SUCCEEDED:
|
||||
objective_progression = 1.
|
||||
%ObjectiveProgressBar.text = tr("FULL")
|
||||
%ObjectiveProgressBar.text = tr("FULL") + " %d" % [score_mirror]
|
||||
else:
|
||||
var objective = GameInfo.game_data.current_region_data.objective
|
||||
objective_progression = (float(score_mirror) / max(float(objective), 1))
|
||||
%ObjectiveProgressBar.text = "%d/%d" % [score_mirror, objective]
|
||||
|
||||
@@ -107,17 +101,11 @@ func score_update(with_animation = true):
|
||||
|
||||
func state_update(region_data : RegionData):
|
||||
if region_data.state == RegionData.State.SUCCEEDED:
|
||||
%Alert.text = "SHIP_IS_READY_TO_TAKE_OFF"
|
||||
objective_text = "SHIP_IS_READY_TO_TAKE_OFF"
|
||||
if "tutorial" in region_data.flags:
|
||||
%Alert.text = "TUTORIAL_FINISHED"
|
||||
%Alert.modulate = Color("ffa617ff")
|
||||
%Alert.appear()
|
||||
objective_text = "PASS_THE_MYSTERIOUS_DOOR"
|
||||
elif region_data.state == RegionData.State.FAILED:
|
||||
%Alert.text = "NO_RECHARGE_LEFT"
|
||||
%Alert.modulate = Color("FF006E")
|
||||
%Alert.appear()
|
||||
else:
|
||||
%Alert.disappear()
|
||||
objective_text = "NO_RECHARGE_LEFT"
|
||||
%GiveUpButton.visible = region_data.state == RegionData.State.FAILED
|
||||
|
||||
func plant_changing_score(plant_data: PlantData, amount : int):
|
||||
@@ -167,16 +155,16 @@ func spawn_score_particle(
|
||||
sprite_particle.queue_free()
|
||||
|
||||
|
||||
func set_objective_text(v : String = objective_text):
|
||||
objective_text = v
|
||||
if is_node_ready():
|
||||
if (objective_text != "" and objective_text != %ObjectiveLabel.text):
|
||||
%ObjectiveAnimationPlayer.play("bump")
|
||||
AudioManager.play_sfx("Screen_interaction")
|
||||
%ObjectiveLabel.text = v
|
||||
|
||||
func _on_player_action_tried_without_energy():
|
||||
$AnimationPlayer.play("no_energy_left")
|
||||
|
||||
func _on_player_upgraded():
|
||||
$EffectAnimation.play("upgrade")
|
||||
|
||||
func _on_region_pass_day_ended(region:Region):
|
||||
if region.data.charges == 1:
|
||||
%Announce.announce(
|
||||
tr("LAST_RECHARGE"),
|
||||
tr("%d_GARDEN_SCORE_LEFT") % [region.data.objective - region.garden.get_score()],
|
||||
Announce.RED_COLOR
|
||||
)
|
||||
$EffectAnimation.play("upgrade")
|
||||
Reference in New Issue
Block a user