* Structure de l'histoire principale
* Line sur le perso principal
* Agrandissement de la zone de détection des cellules
* Ajout du spray de Talion (+1 points de plante de base)
* Ajout de feedback sur l'usage des cellules d'énergie
This commit is contained in:
2026-07-06 23:05:39 +02:00
parent d0446e8826
commit 22b753c6a9
78 changed files with 1464 additions and 208 deletions

View File

@@ -3,6 +3,7 @@
[ext_resource type="Script" uid="uid://b25sqd4v2i3v2" path="res://entities/interactables/energy_cell/scripts/energy_cell.gd" id="1_nheea"]
[ext_resource type="Texture2D" uid="uid://ds65vxsiitxit" path="res://entities/interactables/energy_cell/assets/sprites/energy_cell_on.png" id="2_fnyaf"]
[ext_resource type="Texture2D" uid="uid://dh6jdqoy2xu65" path="res://entities/interactables/energy_cell/assets/sprites/energy_cell_off.png" id="3_t6ydv"]
[ext_resource type="Texture2D" uid="uid://dcgnamu7sb3ov" path="res://common/icons/bolt.svg" id="4_fnyaf"]
[sub_resource type="CircleShape2D" id="CircleShape2D_ylpt4"]
radius = 39.115215
@@ -100,3 +101,10 @@ shape = SubResource("CircleShape2D_ylpt4")
[node name="AnimationPlayer" type="AnimationPlayer" parent="." unique_id=1320210428]
unique_name_in_owner = true
libraries/ = SubResource("AnimationLibrary_d2c63")
[node name="CanvasLayer" type="CanvasLayer" parent="." unique_id=1285579466]
[node name="EnergyParticle" type="Sprite2D" parent="CanvasLayer" unique_id=786670396]
unique_name_in_owner = true
position = Vector2(100, 100)
texture = ExtResource("4_fnyaf")

View File

@@ -1,4 +1,3 @@
@tool
extends Interactable
class_name EnergyCell
@@ -8,6 +7,7 @@ const GIVEN_ENERGY = 1
func _ready():
set_used()
%EnergyParticle.visible = false
func set_used(v = used):
used = v
@@ -18,6 +18,11 @@ func set_used(v = used):
%SpriteOff.visible = used
%SpriteOn.visible = not used
func pointer_text() -> String:
if used:
return tr("%s_USED") % tr(default_info_title)
return default_info_title
func can_interact(p : Player) -> bool:
return p.data.energy < p.data.max_energy
@@ -26,13 +31,30 @@ func interact(p : Player) -> bool:
used = true
available = false
await spawn_energy_particle()
p.data.energy += GIVEN_ENERGY
interacted.emit(p)
region.data.used_objects.append(name)
AudioManager.play_sfx("Recharge1")
return true
return false
func spawn_energy_particle():
var screen_size = get_viewport().get_visible_rect().size
%EnergyParticle.visible = true
%EnergyParticle.position = (
(global_position - region.camera.global_position) * get_viewport().get_camera_2d().zoom
+ ((screen_size) / 2)
)
var tween = create_tween()
tween.set_trans(Tween.TransitionType.TRANS_SPRING)
tween.tween_property(%EnergyParticle,"position",Vector2(100,100),1.)
await tween.finished
AudioManager.play_sfx("Recharge1")
%EnergyParticle.visible = false