Dev de la démo
* Modification de l'apparence de l'UI des dialogues * Changement de l'ordre de déblocage des mutations * Ajout d'une confirmation pour l'abandon * Ajout de la scène de fin avec la base Boréa, en tant que fin de démo * Modification des icône de durée de vie, temps de pousse, et de mort * Ajout d'un icône au dessus du joueur quand il n'a plus d'énergie * Amélioration des dialogues du jeu * Changement du modèle du téléphone * Ajout de cellule d'énergie et de cellule de talion trouvable sur la carte * Il est à nouveau possible de se recharger après la fin d'une région * Buff des mutations ancien sociale et solide * Modification de la mutation fertile (ne donne de gain de graine qu'à la maturation) * Ajout d'une récupération automatique des graines * Ajout de deux cartons de tutoriel ainsi qu'une option pour les revoir dans l'aide de jeu * Amélioration générale du tutoriel * Ajout d'un écran titre digne de ce nom * Lors de l'arrivée à destination, ne téléporte plus le joueur sur une map vide, mais directement dans les lieux de cinématique * Ajout graphique de plus de pattern de mousse et de roche * Le talion apparait maintenant sur toute la carte * La roche peut désormais apparaitre sur la zone de départ * Ajout dud modificateur de région Canyon * Equilibrage général * Fix de bugs en tout genre
This commit is contained in:
@@ -6,6 +6,7 @@ const MAX_REACH = 100
|
||||
const HOLDING_ITEM_SPRITE_SIZE = 20.
|
||||
const TURN_ANIMATION_MINIMUM_THRESHOLD = 0.2
|
||||
const SPEED = 350
|
||||
const JUST_DROPPED_ITEM_UPDATE_INTERVAL = 1.
|
||||
|
||||
signal player_updated(player: Player)
|
||||
signal upgraded
|
||||
@@ -30,15 +31,22 @@ var instruction : Instruction = null :
|
||||
if instruction and is_node_ready():
|
||||
instruction.spawn_indicator(self)
|
||||
|
||||
var just_dropped_item_objects : Array = []
|
||||
var last_just_dropped_item_objects_updated := 0.
|
||||
|
||||
var elapsed_time := 0.
|
||||
|
||||
@onready var preview_zone : ActionZone = await setup_action_zone(Vector2.ZERO, null)
|
||||
@onready var action_zone : ActionZone = await setup_action_zone(Vector2.ZERO, null)
|
||||
|
||||
func _ready():
|
||||
data = GameInfo.game_data.player_data
|
||||
data.updated.connect(_on_data_changed)
|
||||
data.inventory.updated.connect(_on_inventory_updated)
|
||||
player_updated.emit(self)
|
||||
Pointer.player = self
|
||||
setup_preview_zone(data.inventory.get_item())
|
||||
%NoEnergyLeftIcon.visible = data.energy == 0
|
||||
|
||||
func appear(with_falling_animation = true):
|
||||
if with_falling_animation:
|
||||
@@ -70,6 +78,7 @@ func _end_pass_day():
|
||||
controlling_player = true
|
||||
|
||||
func _process(delta):
|
||||
elapsed_time += delta
|
||||
last_action_area_movement_timer += delta
|
||||
if controlling_player:
|
||||
|
||||
@@ -99,12 +108,39 @@ func _process(delta):
|
||||
elif velocity != Vector2.ZERO and %MovementAudioStreamPlayer.playing == false:
|
||||
%MovementAudioStreamPlayer.play()
|
||||
|
||||
# print("-----")
|
||||
# print(elapsed_time)
|
||||
# print(last_just_dropped_item_objects_updated)
|
||||
if elapsed_time > last_just_dropped_item_objects_updated + JUST_DROPPED_ITEM_UPDATE_INTERVAL:
|
||||
update_just_dropped_item_objects()
|
||||
|
||||
take_surrounding_seeds()
|
||||
|
||||
move_and_slide()
|
||||
|
||||
func _on_data_changed(pd : PlayerData):
|
||||
%NoEnergyLeftIcon.visible = pd.energy == 0
|
||||
|
||||
func _on_inventory_updated(_inventory: Inventory):
|
||||
setup_preview_zone(data.inventory.get_item())
|
||||
emit_signal("player_updated", self)
|
||||
|
||||
func update_just_dropped_item_objects():
|
||||
last_just_dropped_item_objects_updated = elapsed_time
|
||||
var overlapping_areas = (%InteractArea2D as Area2D).get_overlapping_areas()
|
||||
just_dropped_item_objects = just_dropped_item_objects.filter(
|
||||
func (i : ItemObject): return i in overlapping_areas
|
||||
)
|
||||
|
||||
func take_surrounding_seeds():
|
||||
var overlapping_areas = (%InteractArea2D as Area2D).get_overlapping_areas()
|
||||
|
||||
if not data.inventory.is_full():
|
||||
for area in overlapping_areas:
|
||||
if area is ItemObject and not area in just_dropped_item_objects:
|
||||
area.interact(self)
|
||||
return
|
||||
|
||||
func calculate_direction_instruction_direction() -> Vector2:
|
||||
if (
|
||||
instruction
|
||||
@@ -189,7 +225,8 @@ func drop_item():
|
||||
|
||||
var item_to_drop : Item = data.inventory.pop_item(ind_to_drop)
|
||||
if item_to_drop and item_to_drop.type != Item.ItemType.TOOL_ITEM:
|
||||
terrain.drop_item(item_to_drop, global_position)
|
||||
var dropped_item_object = terrain.drop_item(item_to_drop, global_position)
|
||||
just_dropped_item_objects.append(dropped_item_object)
|
||||
AudioManager.play_sfx("Drop")
|
||||
region.save()
|
||||
|
||||
|
||||
@@ -10,7 +10,7 @@ const DEFAULT_INVENTORY_SIZE = 3
|
||||
|
||||
@export var energy : int = DEFAULT_MAX_ENERGY :
|
||||
set(v):
|
||||
energy = v
|
||||
energy = min(v,max_energy)
|
||||
updated.emit(self)
|
||||
|
||||
@export var inventory := Inventory.new(DEFAULT_INVENTORY_SIZE)
|
||||
|
||||
Reference in New Issue
Block a user