ajout du déblocage/évolutions des plantes (#89) et fix divers
This commit is contained in:
@@ -2,7 +2,7 @@
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://12nak7amd1uq" path="res://gui/game/game_gui.tscn" id="1_yy1uy"]
|
||||
[ext_resource type="PackedScene" uid="uid://v41hfc7haaye" path="res://gui/game/win/win.tscn" id="3_6guxm"]
|
||||
[ext_resource type="PackedScene" uid="uid://doxm7uab8i3tq" path="res://gui/game/reward_choice/reward_choice.tscn" id="4_fbkgs"]
|
||||
[ext_resource type="PackedScene" uid="uid://doxm7uab8i3tq" path="res://gui/game/quota_reward/quota_reward.tscn" id="4_fbkgs"]
|
||||
[ext_resource type="PackedScene" uid="uid://bgvbgeq46wee2" path="res://entities/player/player.tscn" id="4_g33f4"]
|
||||
[ext_resource type="PackedScene" uid="uid://dt6mptqg80dew" path="res://gui/game/tutorial/tutorial.tscn" id="5_orelw"]
|
||||
[ext_resource type="PackedScene" uid="uid://tsi5j1uxppa4" path="res://stages/terrain/planet/planet.tscn" id="8_t31p7"]
|
||||
@@ -12,13 +12,15 @@
|
||||
|
||||
[node name="PlanetRun" type="Node2D"]
|
||||
|
||||
[node name="Reward" parent="." instance=ExtResource("4_fbkgs")]
|
||||
layer = 2
|
||||
|
||||
[node name="CanvasLayer" type="CanvasLayer" parent="."]
|
||||
|
||||
[node name="RootGui" parent="CanvasLayer" instance=ExtResource("1_yy1uy")]
|
||||
[node name="RootGui" parent="CanvasLayer" node_paths=PackedStringArray("quota_reward") instance=ExtResource("1_yy1uy")]
|
||||
quota_reward = NodePath("../../Reward")
|
||||
metadata/_edit_use_anchors_ = true
|
||||
|
||||
[node name="RewardChoice" parent="CanvasLayer" instance=ExtResource("4_fbkgs")]
|
||||
|
||||
[node name="Win" parent="CanvasLayer" instance=ExtResource("3_6guxm")]
|
||||
visible = false
|
||||
|
||||
@@ -38,8 +40,9 @@ position = Vector2(33, -139)
|
||||
[node name="TruckRecharge" parent="Entities" instance=ExtResource("10_cnjsq")]
|
||||
position = Vector2(-36, -154)
|
||||
|
||||
[node name="Planet" parent="." node_paths=PackedStringArray("import_entities_from_node") instance=ExtResource("8_t31p7")]
|
||||
[node name="Planet" parent="." node_paths=PackedStringArray("quota_reward", "import_entities_from_node") instance=ExtResource("8_t31p7")]
|
||||
loot_item_number = Array[int]([1])
|
||||
quota_reward = NodePath("../Reward")
|
||||
import_entities_from_node = NodePath("../Entities")
|
||||
|
||||
[node name="Camera" parent="." node_paths=PackedStringArray("following") instance=ExtResource("16_m18ms")]
|
||||
@@ -49,4 +52,3 @@ following = NodePath("../Entities/Player")
|
||||
[connection signal="day_limit_exceed" from="Planet" to="CanvasLayer/Win" method="_on_planet_day_limit_exceed"]
|
||||
[connection signal="pass_day_ended" from="Planet" to="CanvasLayer/RootGui" method="_on_planet_pass_day_ended"]
|
||||
[connection signal="pass_day_started" from="Planet" to="CanvasLayer/RootGui" method="_on_planet_pass_day_started"]
|
||||
[connection signal="quota_reward_asked" from="Planet" to="CanvasLayer/RewardChoice" method="_on_planet_quota_reward_asked"]
|
||||
|
||||
@@ -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