équilibrages, fix et évolutions

* résolution du bug de disparition des items #94
* améliorations définitives dans le camion via compost #88
* ajout de plus d'aléatoire dans le zone de départ
* suppression des récompenses de quota (pour l'instant)
* équilibrage du gain en graine
* ajout de la clarté dans les actions
This commit is contained in:
2025-10-17 17:53:38 +02:00
parent 15175921c4
commit f1ef41323a
62 changed files with 709 additions and 369 deletions

View File

@@ -71,7 +71,7 @@ func _ready():
days_on_last_quota = day
generate_loot(first_loot_number)
generate_objectives()
# generate_objectives()
planet_updated.emit(self)
new_quota_started.emit(self)
@@ -283,7 +283,7 @@ func reach_quota():
next_quota = planet_data.get_quota(planet_data.quota_number)
days_on_last_quota = day
ask_quota_reward()
# ask_quota_reward()
func ask_quota_reward():
quota_reward_asked.emit(

View File

@@ -1,6 +0,0 @@
extends Node2D
class_name TruckEntrance
var terrain : Terrain
var planet : Planet :
get(): return terrain if terrain is Planet else null

View File

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

View File

@@ -1,6 +1,8 @@
extends Terrain
class_name TruckInterior
@export var composts : Array[Compost]
var rewarded_times = 0
signal player_exited(player : Player)
@onready var spawn_position : Node2D = %SpawnPosition
@@ -8,3 +10,36 @@ signal player_exited(player : Player)
func _on_exit_interacted(p: Player):
player_exited.emit(p)
func _ready():
for c in composts:
c.reward = generate_reward()
c.rewarded.connect(_on_compost_rewarded)
func _on_compost_rewarded(c: Compost):
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_random_reward_cost() -> int:
return randi_range(1 + rewarded_times * 2, 3 + 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() + 2),
Compost.GiveItemReward.new(
get_random_reward_cost(),
Blueprint.new(preload("res://entities/interactables/machines/solar_pannel/solar_pannel.tres"))
)
]
func generate_reward() -> Compost.Reward:
return get_possible_rewards().pick_random()

View File

@@ -1,18 +1,20 @@
[gd_scene load_steps=7 format=3 uid="uid://ceplumcunebag"]
[gd_scene load_steps=8 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"]
radius = 69.76956
height = 376.0
[node name="TruckInterior" type="Node2D"]
[node name="TruckInterior" type="Node2D" node_paths=PackedStringArray("composts")]
position = Vector2(-40, -469)
script = ExtResource("1_fk6sc")
composts = [NodePath("Compost"), NodePath("Compost2")]
metadata/_custom_type_script = "uid://dfl1ijmbmw57r"
[node name="Sprite" type="Sprite2D" parent="."]
@@ -59,4 +61,10 @@ 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)
[node name="Compost2" parent="." instance=ExtResource("6_b7823")]
position = Vector2(536, 365)
[connection signal="interacted" from="Exit" to="." method="_on_exit_interacted"]