ajout du déblocage/évolutions des plantes (#89) et fix divers

This commit is contained in:
2025-11-07 13:26:04 +01:00
parent 11ae967845
commit ed675ed532
54 changed files with 901 additions and 483 deletions

View File

@@ -108,12 +108,8 @@ func generate_walls():
func generate_loot(number : int = LOOT_NUMBER.pick_random()):
for i in range(number):
var loot = UndergroundLoot.new()
for j in range(LOOT_ITEM_NUMBER.pick_random()):
loot.loot.append(
Seed.new(GameInfo.game_data.unlocked_plant_types.pick_random())
)
var loot : UndergroundLoot = (UndergroundLootData.SCENE.instantiate() as UndergroundLoot)
loot.item_number = LOOT_ITEM_NUMBER.pick_random()
var max_placement_try = 10
var valid_coord = false

View File

@@ -17,6 +17,7 @@ var size = PlanetData.DEFAULT_GARDEN_SIZE
func _init(_planet_data : PlanetData, _initial_plants : Array[Plant] = []):
planet_data = _planet_data
plants = _initial_plants
update_garden_score()
func _ready():
contamination_sprite = generate_contamination_terrain_sprite()

View File

@@ -5,7 +5,6 @@ signal day_limit_exceed(planet : Planet)
signal pass_day_started(planet : Planet)
signal pass_day_proceeded(planet : Planet)
signal pass_day_ended(planet : Planet)
signal quota_reward_asked(planet : Planet, item1 : Item, item2 : Item)
const PASS_DAY_ANIMATION_TIME : float = 1.5
const DEFAULT_DAY_LIMIT : int = 7
@@ -14,7 +13,8 @@ const PLANET_TEXTURE_SCALE : float = 5.0
@export_group("Loot")
@export var first_loot_number : int = 3
@export var loot_item_number : Array[int] = [1,2]
@export var quota_reward : QuotaReward
var data : PlanetData
var contamination_texture : ImageTexture
@@ -37,6 +37,9 @@ func _ready():
garden = Garden.new(data, plants)
add_child(garden)
if len(GameInfo.game_data.unlocked_plant_types) == 0:
quota_reward.trigger_reward()
generate_first_entities()
Music.enter_planet()
@@ -146,11 +149,8 @@ func pass_day():
func generate_loot(number : int):
for i in range(number):
var loot = UndergroundLoot.new()
for j in range(loot_item_number.pick_random()):
loot.loot.append(
Seed.new(GameInfo.game_data.unlocked_plant_types.pick_random())
)
var loot : UndergroundLoot = (UndergroundLootData.SCENE.instantiate() as UndergroundLoot)
loot.item_number = loot_item_number.pick_random()
var loot_random_range = UndergroundLoot.LOOTED_ITEM_RANDOM_RANGE
@@ -164,21 +164,10 @@ func generate_loot(number : int):
func reach_quota():
data.quota += 1
quota_reward.trigger_reward()
await quota_reward.reward_chosen
if data.garden_score >= data.get_quota_score():
reach_quota()
data.quota_days = data.get_quota_duration()
func ask_quota_reward():
quota_reward_asked.emit(
self,
generate_quota_reward(),
generate_quota_reward()
)
func generate_quota_reward() -> Item:
var random_level = randi_range(
max(data.quota - 1, 1),
min(data.quota, Machine.MAX_MACHINE_LEVEL),
)
var random_machine_type = GameInfo.game_data.unlocked_machines.pick_random()
return Blueprint.new(random_machine_type, random_level)
#endregion

View File

@@ -88,7 +88,7 @@ func generate_objective_rewards(level = 0) -> Array[ObjectiveReward]:
#endregion
#region ------------------ Quotas ------------------
func get_quota_score(q = quota) -> int:
func get_quota_score(q : int = quota) -> int:
var first_quotas = [
4,
10,

View File

@@ -39,7 +39,7 @@ func draw_random_zone(
ImageTools.draw_circle(
noise_image,
noise_image_center,
80/UNIT_PER_PIXEL,
int(round(80./float(UNIT_PER_PIXEL))),
Color.WHITE,
)

View File

@@ -9,6 +9,9 @@ const PLANET_RUN_PATH = "res://stages/planet_run/planet_run.tscn"
func _on_exit_interacted(_p : Player):
data.entities_saved_data = save_entities()
data.rewards = []
for c in composts:
data.rewards.append(c.reward)
get_tree().change_scene_to_file(PLANET_RUN_PATH)
func _ready():