fix post-proto

* ajout d'un fondu de musique au changement de phase
* résolution de bugs en tout genre
This commit is contained in:
2025-11-14 16:43:52 +01:00
parent d3ea21e212
commit dbe8f03531
37 changed files with 411 additions and 147 deletions

View File

@@ -1,7 +1,8 @@
extends Resource
class_name TruckData
@export var rewards_given : Array[Reward] = []
@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] = []
@export var entities_saved_data : Array[EntityData] = []

View File

@@ -21,7 +21,10 @@ func _ready():
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)
compost.filled.connect(
func (c: Compost):
data.compost_containing_seeds[i] = c.containing_seed
)
if i < len(data.rewards):
compost.reward = data.rewards[i]
@@ -35,6 +38,7 @@ func _ready():
func _on_compost_rewarded(c: Compost):
data.rewarded_times += 1
data.rewards_given.append(c.reward)
c.reward = generate_reward()
func get_compost_rewards() -> Array[Reward]:
@@ -45,26 +49,41 @@ func get_compost_rewards() -> Array[Reward]:
return rewards
func get_random_reward_cost() -> int:
return randi_range(1 + data.rewarded_times * 2, 2 + data.rewarded_times * 2)
return randi_range(data.rewarded_times + 1, data.rewarded_times + 2)
func get_possible_rewards() -> Array[Reward]:
return [
var possible_rewards : Array[Reward] = [
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()
)
]
if data.rewards_given.find_custom(
func(r : Reward):
return r is GiveItemReward and r.item is Trowel
) == -1:
possible_rewards.append(
GiveItemReward.new(
get_random_reward_cost(),
Knife.new()
)
)
if data.rewards_given.find_custom(
func(r : Reward):
return r is GiveItemReward and r.item is Knife
) == -1:
possible_rewards.append(
GiveItemReward.new(
get_random_reward_cost(),
Trowel.new()
)
)
return possible_rewards
func generate_reward() -> Reward:
var max_tries = 3
var reward = get_possible_rewards().pick_random()