gros dev pre proto

* Changement de l'UI, ajouts de l'inspecteur par carte et changement de police
* Ajout d'un semblant d'exploration
* Ajout de la sauvegarde des entités
* Restructuration mineure de l'arborescence
* Fix divers et réécriture des textes
This commit is contained in:
2025-10-31 13:52:45 +01:00
parent ceae7af589
commit ed7a8bcb6e
167 changed files with 2665 additions and 1201 deletions

View File

@@ -0,0 +1,7 @@
extends Resource
class_name TruckData
@export var rewards : Array[Reward] = []
@export var rewarded_times : int = 0
@export var compost_containing_seeds : Array[int] = []
@export var entities_saved_data : Array[EntityData] = []

View File

@@ -0,0 +1 @@
uid://dyx17r0phlodb

View File

@@ -1,53 +1,69 @@
extends Terrain
class_name TruckInterior
const PLANET_RUN_PATH = "res://stages/planet_run/planet_run.tscn"
@export var composts : Array[Compost]
var rewarded_times = 0
signal player_exited(player : Player)
@onready var spawn_position : Node2D = %SpawnPosition
@onready var camera : Camera = %Camera
@onready var data : TruckData = GameInfo.game_data.truck_data
func _on_exit_interacted(p: Player):
player_exited.emit(p)
func _on_exit_interacted(_p : Player):
data.entities_saved_data = save_entities()
get_tree().change_scene_to_file(PLANET_RUN_PATH)
func _ready():
for c in composts:
c.reward = generate_reward()
c.rewarded.connect(_on_compost_rewarded)
load_entities(data.entities_saved_data)
while len(data.compost_containing_seeds) < len(composts):
data.compost_containing_seeds.append(0)
for i in range(len(composts)):
var compost = composts[i]
compost.containing_seed = data.compost_containing_seeds[i]
compost.filled.connect(func (c: Compost): data.compost_containing_seeds[i] = c.containing_seed)
if i < len(data.rewards):
compost.reward = data.rewards[i]
else:
var new_reward = generate_reward()
compost.reward = new_reward
data.rewards.append(new_reward)
compost.rewarded.connect(_on_compost_rewarded)
func _on_compost_rewarded(c: Compost):
rewarded_times += 1
c.reward = generate_reward()
data.rewarded_times += 1
c.reward = generate_reward()
func get_compost_rewards() -> Array[Compost.Reward]:
var rewards : Array[Compost.Reward] = []
for c in composts:
if c.reward:
rewards.append(c.reward)
return rewards
func get_compost_rewards() -> Array[Reward]:
var rewards : Array[Reward] = []
for c in composts:
if c.reward:
rewards.append(c.reward)
return rewards
func get_random_reward_cost() -> int:
return randi_range(1 + rewarded_times * 2, 2 + rewarded_times * 2)
return randi_range(1 + data.rewarded_times * 2, 2 + data.rewarded_times * 2)
func get_possible_rewards() -> Array[Compost.Reward]:
return [
Compost.UpgradeMaxEnergyReward.new(get_random_reward_cost() + 5),
Compost.UpgradeMaxInventoryReward.new(get_random_reward_cost()),
Compost.GiveItemReward.new(
get_random_reward_cost(),
Blueprint.new(preload("res://entities/interactables/machines/solar_pannel/solar_pannel.tres"))
),
Compost.GiveItemReward.new(
get_random_reward_cost(),
Knife.new()
),
Compost.GiveItemReward.new(
get_random_reward_cost(),
Trowel.new()
)
]
func get_possible_rewards() -> Array[Reward]:
return [
UpgradeMaxEnergyReward.new(get_random_reward_cost() + 2),
UpgradeMaxInventoryReward.new(get_random_reward_cost()),
GiveItemReward.new(
get_random_reward_cost(),
Blueprint.new(preload("res://entities/interactables/machines/solar_pannel/solar_pannel.tres"))
),
GiveItemReward.new(
get_random_reward_cost(),
Knife.new()
),
GiveItemReward.new(
get_random_reward_cost(),
Trowel.new()
)
]
func generate_reward() -> Compost.Reward:
return get_possible_rewards().pick_random()
func generate_reward() -> Reward:
var max_tries = 3
var reward = get_possible_rewards().pick_random()
while get_compost_rewards().map(func(r): return r.desc()).find(reward.desc()) != -1 and max_tries > 0:
max_tries -= 1
reward = get_possible_rewards().pick_random()
return reward

View File

@@ -0,0 +1,26 @@
[gd_scene load_steps=5 format=3 uid="uid://biwkti5cir5ut"]
[ext_resource type="PackedScene" uid="uid://ceplumcunebag" path="res://stages/terrain/truck/truck_interior.tscn" id="1_ycq4y"]
[ext_resource type="Script" uid="uid://d1nsr56bh1a1y" path="res://entities/camera/scripts/camera.gd" id="2_063c3"]
[ext_resource type="PackedScene" uid="uid://12nak7amd1uq" path="res://gui/game/game_gui.tscn" id="2_dw1sv"]
[ext_resource type="PackedScene" uid="uid://bgvbgeq46wee2" path="res://entities/player/player.tscn" id="5_dw1sv"]
[node name="Truck" type="Node2D"]
[node name="CanvasLayer" type="CanvasLayer" parent="."]
[node name="GameGui" parent="CanvasLayer" instance=ExtResource("2_dw1sv")]
[node name="TruckInterior" parent="." node_paths=PackedStringArray("import_entities_from_node") instance=ExtResource("1_ycq4y")]
position = Vector2(0, 0)
import_entities_from_node = NodePath("../Entities")
[node name="Camera" type="Camera2D" parent="."]
position = Vector2(385, 343)
script = ExtResource("2_063c3")
metadata/_custom_type_script = "uid://d1nsr56bh1a1y"
[node name="Entities" type="Node2D" parent="."]
[node name="Player" parent="Entities" instance=ExtResource("5_dw1sv")]
position = Vector2(51, 492)

View File

@@ -1,10 +1,9 @@
[gd_scene load_steps=8 format=3 uid="uid://ceplumcunebag"]
[gd_scene load_steps=7 format=3 uid="uid://ceplumcunebag"]
[ext_resource type="Texture2D" uid="uid://d2p7h0aga85tn" path="res://stages/terrain/truck/assets/sprite/truck_interior.png" id="1_5c5ey"]
[ext_resource type="Script" uid="uid://d0gmkwebxdptk" path="res://stages/terrain/truck/scripts/truck_interior.gd" id="1_fk6sc"]
[ext_resource type="Script" uid="uid://dyprcd68fjstf" path="res://entities/interactables/scripts/interactable.gd" id="3_fk6sc"]
[ext_resource type="Texture2D" uid="uid://dex283rx00fjb" path="res://common/icons/logout.svg" id="3_v18jm"]
[ext_resource type="Script" uid="uid://d1nsr56bh1a1y" path="res://entities/camera/scripts/camera.gd" id="4_5di8w"]
[ext_resource type="PackedScene" uid="uid://p2dkmy6xs31c" path="res://entities/interactables/truck/compost/compost.tscn" id="6_b7823"]
[sub_resource type="CapsuleShape2D" id="CapsuleShape2D_wi5be"]
@@ -54,13 +53,6 @@ texture = ExtResource("3_v18jm")
position = Vector2(9.026497, 81.2384)
shape = SubResource("CapsuleShape2D_wi5be")
[node name="Camera" type="Camera2D" parent="."]
unique_name_in_owner = true
position = Vector2(316, 340)
zoom = Vector2(1.18, 1.18)
script = ExtResource("4_5di8w")
metadata/_custom_type_script = "uid://d1nsr56bh1a1y"
[node name="Compost" parent="." instance=ExtResource("6_b7823")]
position = Vector2(358, 357)