ajout du déblocage/évolutions des plantes (#89) et fix divers
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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,
|
||||
)
|
||||
|
||||
|
||||
@@ -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():
|
||||
|
||||
Reference in New Issue
Block a user