équilibrages, fix et évolutions

* résolution du bug de disparition des items #94
* améliorations définitives dans le camion via compost #88
* ajout de plus d'aléatoire dans le zone de départ
* suppression des récompenses de quota (pour l'instant)
* équilibrage du gain en graine
* ajout de la clarté dans les actions
This commit is contained in:
2025-10-17 17:53:38 +02:00
parent 15175921c4
commit f1ef41323a
62 changed files with 709 additions and 369 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 999 KiB

View File

@@ -1,40 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://n7hhyqhhtx0q"
path="res://.godot/imported/compost.png-af443333eb9a31de9cc4cb40ab9c40c2.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://entities/interactables/machines/compost/assets/sprites/compost.png"
dest_files=["res://.godot/imported/compost.png-af443333eb9a31de9cc4cb40ab9c40c2.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

View File

@@ -1,73 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="54.516888mm"
height="71.574326mm"
viewBox="0 0 54.516888 71.574326"
version="1.1"
id="svg1"
inkscape:export-filename="compost.svg"
inkscape:export-xdpi="51.66227"
inkscape:export-ydpi="51.66227"
xml:space="preserve"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"><sodipodi:namedview
id="namedview1"
pagecolor="#505050"
bordercolor="#ffffff"
borderopacity="1"
inkscape:showpageshadow="0"
inkscape:pageopacity="0"
inkscape:pagecheckerboard="1"
inkscape:deskcolor="#505050"
inkscape:document-units="mm" /><defs
id="defs1" /><g
inkscape:label="Calque 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-20.067568,-29.766889)"><rect
style="fill:#c9c9c9;fill-opacity:1;stroke-width:0.264583;stroke-linecap:square"
id="rect5"
width="10.702703"
height="54.532818"
x="25.418919"
y="29.76689"
ry="4.1948323" /><rect
style="fill:#c9c9c9;fill-opacity:1;stroke-width:0.264583;stroke-linecap:square"
id="rect8"
width="43.814186"
height="44.307919"
x="25.418921"
y="39.991791"
ry="4.1948323" /><rect
style="fill:#ffffff;fill-opacity:1;stroke-width:0.264583;stroke-linecap:square"
id="rect3"
width="10.702703"
height="54.532818"
x="20.067568"
y="46.808395"
ry="4.1948323" /><rect
style="fill:#c9c9c9;fill-opacity:1;stroke-width:0.264583;stroke-linecap:square"
id="rect6"
width="10.702703"
height="54.532818"
x="58.530403"
y="29.76689"
ry="4.1948323" /><rect
style="fill:#ffffff;fill-opacity:1;stroke-width:0.264583;stroke-linecap:square"
id="rect4"
width="10.702703"
height="54.532818"
x="63.881756"
y="46.808395"
ry="4.1948323" /><rect
style="fill:#ffffff;fill-opacity:1;stroke-width:0.264583;stroke-linecap:square"
id="rect7"
width="43.814186"
height="44.307919"
x="25.418919"
y="57.033298"
ry="0" /></g></svg>

Before

Width:  |  Height:  |  Size: 2.3 KiB

View File

@@ -1,37 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://f2rte5jc0psp"
path="res://.godot/imported/compost.svg-f43ad0f7b40754d19aa7d5ea88e80cb8.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://entities/interactables/machines/compost/assets/sprites/compost.svg"
dest_files=["res://.godot/imported/compost.svg-f43ad0f7b40754d19aa7d5ea88e80cb8.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
svg/scale=1.0
editor/scale_with_editor_scale=false
editor/convert_colors_with_editor_theme=false

View File

@@ -1,10 +0,0 @@
[gd_resource type="Resource" script_class="MachineType" load_steps=3 format=3 uid="uid://cv2tf0tydqj5v"]
[ext_resource type="PackedScene" uid="uid://bkwh1ntvgkkrt" path="res://entities/interactables/machines/compost/compost_types/energy_compost.tscn" id="1_sy5wj"]
[ext_resource type="Script" uid="uid://bhncww816fjsb" path="res://entities/interactables/machines/scripts/machine_info.gd" id="2_m8wft"]
[resource]
script = ExtResource("2_m8wft")
name = "Energy Compost"
scene = ExtResource("1_sy5wj")
description = "Can generate temporary energy in exchange of seeds."

View File

@@ -1,65 +0,0 @@
[gd_scene load_steps=11 format=3 uid="uid://bkwh1ntvgkkrt"]
[ext_resource type="Script" uid="uid://bw2ckthka71y8" path="res://entities/interactables/machines/compost/scripts/energy_compost.gd" id="1_2s0lp"]
[ext_resource type="Texture2D" uid="uid://n7hhyqhhtx0q" path="res://entities/interactables/machines/compost/assets/sprites/compost.png" id="2_pi0jt"]
[ext_resource type="Texture2D" uid="uid://dcgnamu7sb3ov" path="res://common/icons/bolt.svg" id="3_85qj7"]
[ext_resource type="FontFile" uid="uid://cpnsnrqhfkj3k" path="res://gui/ressources/fonts/spincycle_ot.otf" id="3_y0cke"]
[sub_resource type="CircleShape2D" id="CircleShape2D_6kmun"]
radius = 51.884487
[sub_resource type="LabelSettings" id="LabelSettings_m2a0h"]
font = ExtResource("3_y0cke")
font_size = 23
[sub_resource type="Animation" id="Animation_r6435"]
length = 0.001
[sub_resource type="Animation" id="Animation_1758a"]
resource_name = "empty"
length = 0.5
[sub_resource type="Animation" id="Animation_etofw"]
resource_name = "fill"
length = 0.3
[sub_resource type="AnimationLibrary" id="AnimationLibrary_etofw"]
_data = {
&"RESET": SubResource("Animation_r6435"),
&"empty": SubResource("Animation_1758a"),
&"fill": SubResource("Animation_etofw")
}
[node name="EnergyCompost" type="Area2D"]
script = ExtResource("1_2s0lp")
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
shape = SubResource("CircleShape2D_6kmun")
[node name="Compost" type="Sprite2D" parent="."]
position = Vector2(1.9073486e-06, 15.999998)
scale = Vector2(0.11194731, 0.11194731)
texture = ExtResource("2_pi0jt")
[node name="ContainerCount" type="Label" parent="."]
unique_name_in_owner = true
modulate = Color(0.140831, 0.20012599, 0.3145095, 1)
offset_left = 18.0
offset_top = 37.0
offset_right = 59.051178
offset_bottom = 61.0
rotation = -0.48016798
text = "3/5"
label_settings = SubResource("LabelSettings_m2a0h")
[node name="Bolt" type="Sprite2D" parent="."]
modulate = Color(0.140831, 0.20012599, 0.3145095, 1)
z_index = 1
position = Vector2(-41.999996, 36)
scale = Vector2(0.5833337, 0.5833337)
texture = ExtResource("3_85qj7")
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
libraries = {
&"": SubResource("AnimationLibrary_etofw")
}

View File

@@ -1,11 +0,0 @@
[gd_resource type="Resource" script_class="MachineType" load_steps=3 format=3 uid="uid://bbaiexmnroxos"]
[ext_resource type="PackedScene" uid="uid://b13debm055r3t" path="res://entities/interactables/machines/compost/compost_types/seed_compost.tscn" id="1_vpkcm"]
[ext_resource type="Script" uid="uid://bhncww816fjsb" path="res://entities/interactables/machines/scripts/machine_info.gd" id="2_tfoq0"]
[resource]
script = ExtResource("2_tfoq0")
name = "Seed Compost"
scene = ExtResource("1_vpkcm")
description = "Give random seed if is filled with seeds."
metadata/_custom_type_script = "uid://bhncww816fjsb"

View File

@@ -1,65 +0,0 @@
[gd_scene load_steps=11 format=3 uid="uid://b13debm055r3t"]
[ext_resource type="Script" uid="uid://bw2ckthka71y8" path="res://entities/interactables/machines/compost/scripts/energy_compost.gd" id="1_s8eov"]
[ext_resource type="Texture2D" uid="uid://n7hhyqhhtx0q" path="res://entities/interactables/machines/compost/assets/sprites/compost.png" id="2_c0so3"]
[ext_resource type="Texture2D" uid="uid://b0wy3dbpxbnt7" path="res://common/icons/seedling.svg" id="3_s8eov"]
[ext_resource type="FontFile" uid="uid://cpnsnrqhfkj3k" path="res://gui/ressources/fonts/spincycle_ot.otf" id="3_sw66v"]
[sub_resource type="CircleShape2D" id="CircleShape2D_6kmun"]
radius = 51.884487
[sub_resource type="LabelSettings" id="LabelSettings_m2a0h"]
font = ExtResource("3_sw66v")
font_size = 23
[sub_resource type="Animation" id="Animation_r6435"]
length = 0.001
[sub_resource type="Animation" id="Animation_1758a"]
resource_name = "empty"
length = 0.5
[sub_resource type="Animation" id="Animation_etofw"]
resource_name = "fill"
length = 0.3
[sub_resource type="AnimationLibrary" id="AnimationLibrary_etofw"]
_data = {
&"RESET": SubResource("Animation_r6435"),
&"empty": SubResource("Animation_1758a"),
&"fill": SubResource("Animation_etofw")
}
[node name="SeedCompost" type="Area2D"]
script = ExtResource("1_s8eov")
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
shape = SubResource("CircleShape2D_6kmun")
[node name="Compost" type="Sprite2D" parent="."]
position = Vector2(1.9073486e-06, 15.999998)
scale = Vector2(0.11194731, 0.11194731)
texture = ExtResource("2_c0so3")
[node name="ContainerCount" type="Label" parent="."]
unique_name_in_owner = true
modulate = Color(0.140831, 0.20012599, 0.3145095, 1)
offset_left = 18.0
offset_top = 37.0
offset_right = 59.051178
offset_bottom = 61.0
rotation = -0.48016798
text = "3/5"
label_settings = SubResource("LabelSettings_m2a0h")
[node name="Bolt" type="Sprite2D" parent="."]
modulate = Color(0.140831, 0.20012599, 0.3145095, 1)
z_index = 1
position = Vector2(-41.999996, 36)
scale = Vector2(0.5833337, 0.5833337)
texture = ExtResource("3_s8eov")
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
libraries = {
&"": SubResource("AnimationLibrary_etofw")
}

View File

@@ -1,39 +0,0 @@
extends Machine
class_name Compost
@onready var containing_seed : int = 0 :
set(v):
containing_seed = v
%ContainerCount.text = str(containing_seed) + "/" + str(get_seed_needed())
func get_seed_needed(l : int = level) -> int:
match l:
1: return 5
2: return 4
3: return 3
_: return 2
func interact_text():
return "Put a seed ("+str(get_seed_needed() - containing_seed)+" left)"
func can_interact(p : Player) -> bool:
return p.inventory.get_item() and p.inventory.get_item() is Seed
func interact(p : Player) -> bool:
if not can_interact(p):
return false
p.play_sfx("harvest")
p.inventory.remove_current_item()
containing_seed += 1
if containing_seed >= get_seed_needed():
$AnimationPlayer.play("empty")
containing_seed = 0
product(p)
else:
$AnimationPlayer.play("fill")
return true
func product(player : Player):
pass

View File

@@ -1 +0,0 @@
uid://dw6jgsasb2fe1

View File

@@ -1,12 +0,0 @@
extends Compost
class_name EnergyCompost
func get_energy_production(l : int = level) -> int:
match l:
1: return 1
2: return 1
3: return 1
_: return 1
func product(player : Player):
player.recharge(get_energy_production())

View File

@@ -1 +0,0 @@
uid://bw2ckthka71y8

View File

@@ -1,17 +0,0 @@
extends Compost
class_name SeedCompost
func get_seeds_production(l : int = level) -> int:
match l:
1: return 2
2: return 2
3: return 2
_: return 1
func product(player : Player):
for i in range(get_seeds_production()):
player.terrain.drop_item(
Seed.new(GameInfo.game_data.unlocked_plant_types.pick_random()),
global_position,
100
)

View File

@@ -1 +0,0 @@
uid://d0yt8pd41j2os

View File

@@ -1,24 +0,0 @@
[remap]
importer="wav"
type="AudioStreamWAV"
uid="uid://cjo6ea86rfqbe"
path="res://.godot/imported/compost_level_up.wav-18f25f0720265f21705081af070ef8cd.sample"
[deps]
source_file="res://entities/interactables/machines/compost/sounds/compost_level_up.wav"
dest_files=["res://.godot/imported/compost_level_up.wav-18f25f0720265f21705081af070ef8cd.sample"]
[params]
force/8_bit=false
force/mono=false
force/max_rate=false
force/max_rate_hz=44100
edit/trim=false
edit/normalize=false
edit/loop_mode=0
edit/loop_begin=0
edit/loop_end=-1
compress/mode=2

View File

@@ -16,12 +16,12 @@ func setup_machine_info(machine_type : MachineType, _level : int = 1):
func setup_machine_sprite():
pass
func pointer_text():
func pointer_text() -> String:
return machine_name
func inspector_info() -> Inspector.Info:
return Inspector.Info.new(
pointer_text() + " level " + str(level),
pointer_text(),
machine_desc
)