11 Commits

Author SHA1 Message Date
0ef5b94651 suppression des ambiances de camion #99 2025-11-22 12:41:52 +01:00
278277488e ajout du sample de recharge #51 2025-11-17 21:20:39 +01:00
9c79bd8700 ajout du morceau de phase 4 #7 2025-11-17 20:34:03 +01:00
ba44506ef3 dernières modifications des morceaux #7 2025-11-16 22:25:06 +01:00
58fc3f73f9 nouveau format des pistes d'ambiance #77 #99 2025-11-16 21:13:09 +01:00
b03b199b4b ajout des nouveaux morceaux #7 2025-11-16 19:54:41 +01:00
b9a0a33ac7 ajout de la musique provisoire de phase 3 #7 2025-11-09 15:56:42 +01:00
1179e04956 rework l'ui et équilibrage général 2025-11-09 15:56:09 +01:00
a8bb09407e ajout de la traduction #70
* Fix de l'inspection de l'inventaire
* Suppression des assets d'objectifs
2025-11-07 17:36:18 +01:00
ed675ed532 ajout du déblocage/évolutions des plantes (#89) et fix divers 2025-11-07 13:26:04 +01:00
Altaezio
11ae967845 localization init 2025-11-06 10:21:06 +01:00
177 changed files with 1713 additions and 1921 deletions

View File

@@ -0,0 +1,135 @@
keys,en,fr
STORY_TEXT,"[b]You are a lone robot, sent on a contaminated planet.[/b]
Your job : planting seeds to restore life on the planet. Each seed has different effects and grant you garden points, [b]you have to reach a certain garden score each 7 days to continue[/b].
Be careful, [b]you can only plant in the decontamined zone[/b], but some plants can decontaminate your garden.
[b]Good luck![/b]","[b]Vous êtes un robot, envoyé seul sur une planète contaminée.[/b]
Votre mission : planter des graines pour redonner vie à cette planète. Chaque graine a des effets uniques et vous octroie des points de jardin, [b]vous devrez atteindre un certain score de jardin tous les 7 jours pour continuer[/b].
Attention, [b]vous ne pouvez planter que dans la zone décontaminée[/b], mais certaines plantes peuvent décontaminer votre jardin.
[b]Bonne chance ![/b]"
CONTROLS_TEXT,"Directional Arrows/Right Click : Move
Left Click : Interact/Pick up
Mouse Wheel : Change held item
X : Drop Item","Flèches directionnelles/Clic droit : Se déplacer
Clic Gauche : Interagir/Ramasser
Molette : Changer l'objet en main
X : Lâcher lobjet"
STORY,Story,Histoire
OK,Ok,Ok
COMMA,", ",","
OR," or "," ou "
PAUSE,Pause,Pause
CONTROLS,Controls,Contrôles
RESUME_GAME,Resume,Reprendre
RESTART,Restart,Recommencer
QUIT,Quit,Quitter
SEED,Seed,Graine
TAKE,Take,Prendre
PACKAGE,Crate,Caisse de matériel
DESCRIPTION,Description,Description
USE,Use,Utiliser
ON_MATURE,On maturation,Une fois mature
WHEN_HARVESTED,When harvested,A la récolte
EACH_DAY_WHEN_MATURE,"Each day, when mature,","Chaque jour, après maturation,"
COMMON,Common,Commun
RARE,Rare,Rare
VERY_RARE,Very rare,Très rare
IMPOSSIBLE,Impossible,Impossible
EFFECT,Effect,Effet
MATURE,Mature,Mature
GROWING,Growing,En train de pousser
DECONTAMINATE,Decontaminate,Décontamine
%d_DAY_LEFT,%d days left,%d jours restants
NEW_QUOTA,New Quota,Nouveau Quota
REACH_%d_GARDEN_SCORE_BEFORE_%d_DAYS,Reach %d garden score before %d days,Atteins un score de jardin de %d avant %d jours
LAST_DAY_FOR_REACHING_QUOTA,Last day to reach the quota,Dernier jour pour atteindre le quota
RECHARGE_%d_ENERGY,Recharge %d energy,Recharge %d dénergie
%d_DAYS_BEFORE_CHARGE,%d days before being charged,%d jours avant dêtre chargé
1_DAY_BEFORE_CHARGE,1 day before being charged,1 jour avant avant dêtre chargé
CHARGED,Charged,Chargé
WHEN_FILLED,When filled,Si rempli
GIVE_THE_FOLLOWING_ITEM_%s,Give the following item : [b]%s[/b],Donne lobjet suivant : [b]%s[/b]
UPGRADE_MAX_ENERGY,Increases maximum energy,Augmente lénergie maximum
UPGRADE_MAX_INVENTORY_SIZE,Increases inventory size,Augmente la taille de linventaire
DECONTAMINATE_%d_UNIT_AROUND_IT,Decontaminate %d unit around it,Décontamine %d unités autour delle
SEED_PRODUCTION,Seed Production,Production de graines
PRODUCE_%s_SEEDS,Produce %s seeds,Produit %s graines
DAY_%d,Day [b]%d[/b],Jour [b]%d[/b]
MATURE_ON_DAY_%d,Mature on day [b]%d[/b],Mature au jour [b]%d[/b]
%d_SCORE_WHEN_MATURE,Grants [b]%d[/b] garden points when mature,Donne [b]%d[/b] points de jardin une fois mature
ABSURD,[rainbow]Absurd[/rainbow],[rainbow]Absurde[rainbow]
GROW_IN_%d,Grow in [b]%d[/b] days,Mature dans [b]%d[/b] jours
%s_SCORE_WHEN_MATURE,Grants [b]%s[/b] garden points when mature,Donne [b]%s[/b] points de jardin une fois mature
DISCOVER_%s,Discover %s,Découvre %s
EVOLVE_%s,Upgrade %s,Améliore %s
%s_SEEDS_CAN_NOW_BE_FOUND,%s seeds can now be found,Des graines de %s peuvent maintenant être trouvées
%s_SCORE_EVOLUTION,%s score evolution,Évolution de score de %s
ADD_%s_TO_THE_DEFAULT_SCORE_OF_THE_PLANT,Add [b]%s[/b] to the default score of the plant,Améliore le score de jardin de la plante de [b]%s[/b]
%s_EVOLUTION,%s evolution,Évolution de %s
UPGRADE_THE_LEVEL_OF_%s_EFFECT_OF_%d_LEVEL,Upgrade the level of %s effect of %d level,Améliore l'effet %s de %d niveau
ANCIENT,Ancient,Ancien
ANCIENT_EFFECT_TEXT_LEVEL_%d,"When mature, grants [b]1[/b] garden points each [b]%d[/b] days","Une fois mature, donne [b]1[/b] points de jardin tous les [b]%d[/b] jours"
ELITIST,Elitist,Élitiste
ELITIST_EFFECT_TEXT_LEVEL_%d,"When mature, grants [b]%d[/b] garden points for each plant of the same species around, but do not give any points if it is alone.","Une fois mature, donne [b]%d[/b] points de jardin pour chaque plante de la même espèce aux alentours, mais nen donne aucun si elle est seule."
ERMIT,Hermit,Ermite
ERMIT_EFFECT_TEXT_LEVEL_%d,"Multiply the garden score by [b]%d[/b] if no plants are nearby, otherwise, set it to 0.","Multiplie le score de jardin par [b]%d[/b] si aucune plante nest proche, sinon le score est nul."
PRECOCIOUS,Precocious,Précoce
PRECOCIOUS_EFFECT_TEXT_LEVEL_%d,Grants [b]%d[/b] garden points while the plant is growing,Donne [b]%d[/b] points de jardin pendant que la plante grandit
QUALITY,Quality,Qualité
QUALITY_EFFECT_TEXT_LEVEL_%d,Grants [b]%d[/b] garden points if the plant is mature.,Donne [b]%d[/b] points de jardin si la plante est mature.
QUICK,Quick,Rapide
QUICK_EFFECT_TEXT_LEVEL_%d,Reduce the growing time by %d,Réduit le temps de maturation de %d
SOCIABLE,Outgoing,Sociable
SOCIABLE_EFFECT_TEXT_LEVEL_%d,"When mature, grants [b]%d[/b] garden points if it is nearby %d other plants","Une fois mature, donne [b]%d[/b] points de jardin si elle est à côté de %d autres plantes"
STRONG,Strong,Fort
STRONG_EFFECT_TEXT_LEVEL_%d,Plus [b]%d[/b] % of the score,Augmente le score de [b]%d[/b] %
COST_%d_ENERGY,Cost %d energy,Coûte %d dénergie
ONE_TIME_USE,Single use,Usage unique
BUILD_%s,Build %s,Construit %s
FORK,Fork,Fourche
FORK_DESC_TEXT,"Use it to [b]harvest mature plants[/b].","Utilise-la pour [b]récolter les plantes mature[/b]."
HARVEST,Harvest,Récolter
KNIFE,Knife,Couteau
KNIFE_DESC_TEXT,"Use it to [b]harvest mature plants[/b]. Does not consume energy.",Utilise-le pour [b]récolter les plantes mature[/b]. Ne consomme pas dénergie.
SHOVEL,Shovel,Pelle
SHOVEL_DESC_TEXT,"Use it to [b]dig up seeds[/b] and [b]harvest mature plants[/b].","Utilise-la pour [b]déterrer les graines[/b] et pour [b]récolter les plantes mature[/b]."
TROWEL,Trowel,Truelle
TROWEL_DESC_TEXT,"Use it to [b]harvest mature plants[/b]. Can grant a [b]bonus seed[/b].","Utilise-la pour [b]récolter les plantes mature[/b]. Peut donner une [b]graine supplémentaire[/b]."
DIG,Dig,Creuser
OPEN,Open,Ouvrir
%s_SEED,%s Seed,Graine de %s
PLANT_%s_MUST_BE_USED_IN_DECONTAMINATED_ZONE,Plant [b]%s[/b]. Must be used in the decontamined zone.,Plante [b]%s[/b]. Doit être utilisée dans la zone décontaminée.
PLANT_%s,Plant [b]%s[/b],Planter [b]%s[/b]
BURIED_SEEDS,Buried seeds,Graines enterrées
BURIED_SEEDS_DESC_TEXT,"Contain some random seeds. [b]Dig it with a shovel.[/b]","Contient des graines enterrées. [b]Peuvent être déterrées avec une pelle[/b]"
TAKE_THE_SHOVEL,Take the shovel,Prend la pelle
DIG_UNDERGROUND_LOOT,Dig up the buried resources,Déterre les graines enterrées
TAKE_A_SEED,Take a seed,Prend une graine
PLANT_THE_SEED_IN_DECONTAMINED_ZONE,Plant the seed in the decontamined zone,Plante la graine dans la zone décontaminée
RECHARGE_TO_PASS_DAYS,Recharge to pass the day,Recharge-toi pour passer la journée
HARVEST_MATURE_PLANTS_WITH_SHOVEL,Harvest mature plants with the shovel,Récolte les plantes matures avec la pelle
SCORE_%d,Score : %d,Score : %d
SOLAR_PANNEL,Solar panel,Panneau solaire
SOLAR_PANNEL_DESCRIPTION_TEXT,Grants energy when charged. Take several days to recharge,Donne de lénergie quand chargé. Prend plusieurs jours à se recharger
TRUCK_ENTRANCE,Truck entrance,Entrée du camion
ENTER_TRUCK,Enter truck,Entrer dans le camion
EXIT,Exit,Sortie
EXIT_TRUCK,Exit truck,Sortir du camion
LADDER_DESC_TEXT,A good old ladder,Une bonne vieille échelle
RECHARGE_STATION,Recharge station,Station de recharge
RECHARGE,Recharge,Recharger
RECHARGE_STATION_DESC_TEXT,"[b]You can recharge yourself here.[/b] When recharging, time pass and plants grow.","[b]Tu peux te recharger ici.[/b] Pendant la recharge, le temps passe et les plantes grandissent."
COMPOST,Compost,Compost
PLACE_SEED,Place seed,Placer la graine
COMPOST_DESC_TEXT,This research station can provide some bonuses when filled with seeds,Cette station de recherche peut offrir certains avantages une fois remplie de graines
CHOOSE_A_REWARD,Choose a reward,Choisis une récompense
REWARD_SCREEN_TEXT,Discover new plants or upgrade already discovered ones,Découvre de nouvelles plantes ou améliore celles déjà découvertes
THANKS_FOR_PLAYING,Thanks for playing !,Merci davoir joué !
WIN_SCREEN_TEXT,We need your feedback ! Give us your thoughts on the game on our Discord or in the comments section of this page !,Nous avons besoin de ton retour ! Donne-le nous sur notre Discord ou dans la section commentaire de cette page !
JOIN_OUR_DISCORD,Join our Discord,Rejoins-nous
ART,Art,Art
DEV_AND_GAME_DESIGN,Development and Game Design,Développement et Game Design
MUSIC,Music,Musique
START,Start,Commencer
CHOOSE_A_LANGUAGE,Choose a language,Choisissez une langue
NO_ENERGY_LEFT," (no energy left)", " (pas d'énergie restante)"
%d_GARDEN_SCORE_LEFT,"%d garden score left","%d score de jardin restant"
1 keys en fr
2 STORY_TEXT [b]You are a lone robot, sent on a contaminated planet.[/b] Your job : planting seeds to restore life on the planet. Each seed has different effects and grant you garden points, [b]you have to reach a certain garden score each 7 days to continue[/b]. Be careful, [b]you can only plant in the decontamined zone[/b], but some plants can decontaminate your garden. [b]Good luck![/b] [b]Vous êtes un robot, envoyé seul sur une planète contaminée.[/b] Votre mission : planter des graines pour redonner vie à cette planète. Chaque graine a des effets uniques et vous octroie des points de jardin, [b]vous devrez atteindre un certain score de jardin tous les 7 jours pour continuer[/b]. Attention, [b]vous ne pouvez planter que dans la zone décontaminée[/b], mais certaines plantes peuvent décontaminer votre jardin. [b]Bonne chance ![/b]
3 CONTROLS_TEXT Directional Arrows/Right Click : Move Left Click : Interact/Pick up Mouse Wheel : Change held item X : Drop Item Flèches directionnelles/Clic droit : Se déplacer Clic Gauche : Interagir/Ramasser Molette : Changer l'objet en main X : Lâcher l’objet
4 STORY Story Histoire
5 OK Ok Ok
6 COMMA , ,
7 OR or ou
8 PAUSE Pause Pause
9 CONTROLS Controls Contrôles
10 RESUME_GAME Resume Reprendre
11 RESTART Restart Recommencer
12 QUIT Quit Quitter
13 SEED Seed Graine
14 TAKE Take Prendre
15 PACKAGE Crate Caisse de matériel
16 DESCRIPTION Description Description
17 USE Use Utiliser
18 ON_MATURE On maturation Une fois mature
19 WHEN_HARVESTED When harvested A la récolte
20 EACH_DAY_WHEN_MATURE Each day, when mature, Chaque jour, après maturation,
21 COMMON Common Commun
22 RARE Rare Rare
23 VERY_RARE Very rare Très rare
24 IMPOSSIBLE Impossible Impossible
25 EFFECT Effect Effet
26 MATURE Mature Mature
27 GROWING Growing En train de pousser
28 DECONTAMINATE Decontaminate Décontamine
29 %d_DAY_LEFT %d days left %d jours restants
30 NEW_QUOTA New Quota Nouveau Quota
31 REACH_%d_GARDEN_SCORE_BEFORE_%d_DAYS Reach %d garden score before %d days Atteins un score de jardin de %d avant %d jours
32 LAST_DAY_FOR_REACHING_QUOTA Last day to reach the quota Dernier jour pour atteindre le quota
33 RECHARGE_%d_ENERGY Recharge %d energy Recharge %d d’énergie
34 %d_DAYS_BEFORE_CHARGE %d days before being charged %d jours avant d’être chargé
35 1_DAY_BEFORE_CHARGE 1 day before being charged 1 jour avant avant d’être chargé
36 CHARGED Charged Chargé
37 WHEN_FILLED When filled Si rempli
38 GIVE_THE_FOLLOWING_ITEM_%s Give the following item : [b]%s[/b] Donne l’objet suivant : [b]%s[/b]
39 UPGRADE_MAX_ENERGY Increases maximum energy Augmente l’énergie maximum
40 UPGRADE_MAX_INVENTORY_SIZE Increases inventory size Augmente la taille de l’inventaire
41 DECONTAMINATE_%d_UNIT_AROUND_IT Decontaminate %d unit around it Décontamine %d unités autour d’elle
42 SEED_PRODUCTION Seed Production Production de graines
43 PRODUCE_%s_SEEDS Produce %s seeds Produit %s graines
44 DAY_%d Day [b]%d[/b] Jour [b]%d[/b]
45 MATURE_ON_DAY_%d Mature on day [b]%d[/b] Mature au jour [b]%d[/b]
46 %d_SCORE_WHEN_MATURE Grants [b]%d[/b] garden points when mature Donne [b]%d[/b] points de jardin une fois mature
47 ABSURD [rainbow]Absurd[/rainbow] [rainbow]Absurde[rainbow]
48 GROW_IN_%d Grow in [b]%d[/b] days Mature dans [b]%d[/b] jours
49 %s_SCORE_WHEN_MATURE Grants [b]%s[/b] garden points when mature Donne [b]%s[/b] points de jardin une fois mature
50 DISCOVER_%s Discover %s Découvre %s
51 EVOLVE_%s Upgrade %s Améliore %s
52 %s_SEEDS_CAN_NOW_BE_FOUND %s seeds can now be found Des graines de %s peuvent maintenant être trouvées
53 %s_SCORE_EVOLUTION %s score evolution Évolution de score de %s
54 ADD_%s_TO_THE_DEFAULT_SCORE_OF_THE_PLANT Add [b]%s[/b] to the default score of the plant Améliore le score de jardin de la plante de [b]%s[/b]
55 %s_EVOLUTION %s evolution Évolution de %s
56 UPGRADE_THE_LEVEL_OF_%s_EFFECT_OF_%d_LEVEL Upgrade the level of %s effect of %d level Améliore l'effet %s de %d niveau
57 ANCIENT Ancient Ancien
58 ANCIENT_EFFECT_TEXT_LEVEL_%d When mature, grants [b]1[/b] garden points each [b]%d[/b] days Une fois mature, donne [b]1[/b] points de jardin tous les [b]%d[/b] jours
59 ELITIST Elitist Élitiste
60 ELITIST_EFFECT_TEXT_LEVEL_%d When mature, grants [b]%d[/b] garden points for each plant of the same species around, but do not give any points if it is alone. Une fois mature, donne [b]%d[/b] points de jardin pour chaque plante de la même espèce aux alentours, mais n’en donne aucun si elle est seule.
61 ERMIT Hermit Ermite
62 ERMIT_EFFECT_TEXT_LEVEL_%d Multiply the garden score by [b]%d[/b] if no plants are nearby, otherwise, set it to 0. Multiplie le score de jardin par [b]%d[/b] si aucune plante n’est proche, sinon le score est nul.
63 PRECOCIOUS Precocious Précoce
64 PRECOCIOUS_EFFECT_TEXT_LEVEL_%d Grants [b]%d[/b] garden points while the plant is growing Donne [b]%d[/b] points de jardin pendant que la plante grandit
65 QUALITY Quality Qualité
66 QUALITY_EFFECT_TEXT_LEVEL_%d Grants [b]%d[/b] garden points if the plant is mature. Donne [b]%d[/b] points de jardin si la plante est mature.
67 QUICK Quick Rapide
68 QUICK_EFFECT_TEXT_LEVEL_%d Reduce the growing time by %d Réduit le temps de maturation de %d
69 SOCIABLE Outgoing Sociable
70 SOCIABLE_EFFECT_TEXT_LEVEL_%d When mature, grants [b]%d[/b] garden points if it is nearby %d other plants Une fois mature, donne [b]%d[/b] points de jardin si elle est à côté de %d autres plantes
71 STRONG Strong Fort
72 STRONG_EFFECT_TEXT_LEVEL_%d Plus [b]%d[/b] % of the score Augmente le score de [b]%d[/b] %
73 COST_%d_ENERGY Cost %d energy Coûte %d d’énergie
74 ONE_TIME_USE Single use Usage unique
75 BUILD_%s Build %s Construit %s
76 FORK Fork Fourche
77 FORK_DESC_TEXT Use it to [b]harvest mature plants[/b]. Utilise-la pour [b]récolter les plantes mature[/b].
78 HARVEST Harvest Récolter
79 KNIFE Knife Couteau
80 KNIFE_DESC_TEXT Use it to [b]harvest mature plants[/b]. Does not consume energy. Utilise-le pour [b]récolter les plantes mature[/b]. Ne consomme pas d’énergie.
81 SHOVEL Shovel Pelle
82 SHOVEL_DESC_TEXT Use it to [b]dig up seeds[/b] and [b]harvest mature plants[/b]. Utilise-la pour [b]déterrer les graines[/b] et pour [b]récolter les plantes mature[/b].
83 TROWEL Trowel Truelle
84 TROWEL_DESC_TEXT Use it to [b]harvest mature plants[/b]. Can grant a [b]bonus seed[/b]. Utilise-la pour [b]récolter les plantes mature[/b]. Peut donner une [b]graine supplémentaire[/b].
85 DIG Dig Creuser
86 OPEN Open Ouvrir
87 %s_SEED %s Seed Graine de %s
88 PLANT_%s_MUST_BE_USED_IN_DECONTAMINATED_ZONE Plant [b]%s[/b]. Must be used in the decontamined zone. Plante [b]%s[/b]. Doit être utilisée dans la zone décontaminée.
89 PLANT_%s Plant [b]%s[/b] Planter [b]%s[/b]
90 BURIED_SEEDS Buried seeds Graines enterrées
91 BURIED_SEEDS_DESC_TEXT Contain some random seeds. [b]Dig it with a shovel.[/b] Contient des graines enterrées. [b]Peuvent être déterrées avec une pelle[/b]
92 TAKE_THE_SHOVEL Take the shovel Prend la pelle
93 DIG_UNDERGROUND_LOOT Dig up the buried resources Déterre les graines enterrées
94 TAKE_A_SEED Take a seed Prend une graine
95 PLANT_THE_SEED_IN_DECONTAMINED_ZONE Plant the seed in the decontamined zone Plante la graine dans la zone décontaminée
96 RECHARGE_TO_PASS_DAYS Recharge to pass the day Recharge-toi pour passer la journée
97 HARVEST_MATURE_PLANTS_WITH_SHOVEL Harvest mature plants with the shovel Récolte les plantes matures avec la pelle
98 SCORE_%d Score : %d Score : %d
99 SOLAR_PANNEL Solar panel Panneau solaire
100 SOLAR_PANNEL_DESCRIPTION_TEXT Grants energy when charged. Take several days to recharge Donne de l’énergie quand chargé. Prend plusieurs jours à se recharger
101 TRUCK_ENTRANCE Truck entrance Entrée du camion
102 ENTER_TRUCK Enter truck Entrer dans le camion
103 EXIT Exit Sortie
104 EXIT_TRUCK Exit truck Sortir du camion
105 LADDER_DESC_TEXT A good old ladder Une bonne vieille échelle
106 RECHARGE_STATION Recharge station Station de recharge
107 RECHARGE Recharge Recharger
108 RECHARGE_STATION_DESC_TEXT [b]You can recharge yourself here.[/b] When recharging, time pass and plants grow. [b]Tu peux te recharger ici.[/b] Pendant la recharge, le temps passe et les plantes grandissent.
109 COMPOST Compost Compost
110 PLACE_SEED Place seed Placer la graine
111 COMPOST_DESC_TEXT This research station can provide some bonuses when filled with seeds Cette station de recherche peut offrir certains avantages une fois remplie de graines
112 CHOOSE_A_REWARD Choose a reward Choisis une récompense
113 REWARD_SCREEN_TEXT Discover new plants or upgrade already discovered ones Découvre de nouvelles plantes ou améliore celles déjà découvertes
114 THANKS_FOR_PLAYING Thanks for playing ! Merci d’avoir joué !
115 WIN_SCREEN_TEXT We need your feedback ! Give us your thoughts on the game on our Discord or in the comments section of this page ! Nous avons besoin de ton retour ! Donne-le nous sur notre Discord ou dans la section commentaire de cette page !
116 JOIN_OUR_DISCORD Join our Discord Rejoins-nous
117 ART Art Art
118 DEV_AND_GAME_DESIGN Development and Game Design Développement et Game Design
119 MUSIC Music Musique
120 START Start Commencer
121 CHOOSE_A_LANGUAGE Choose a language Choisissez une langue
122 NO_ENERGY_LEFT (no energy left) (pas d'énergie restante)
123 %d_GARDEN_SCORE_LEFT %d garden score left %d score de jardin restant

View File

@@ -0,0 +1,17 @@
[remap]
importer="csv_translation"
type="Translation"
uid="uid://dfymfpql8yxwt"
[deps]
files=["res://Translation/localization.en.translation", "res://Translation/localization.fr.translation"]
source_file="res://Translation/localization.csv"
dest_files=["res://Translation/localization.en.translation", "res://Translation/localization.fr.translation"]
[params]
compress=true
delimiter=0

View File

@@ -8,6 +8,8 @@ func _init():
@export var tutorial_done = false @export var tutorial_done = false
@export var settings : SettingsData = SettingsData.new()
@export var current_planet_data : PlanetData = PlanetData.new() : @export var current_planet_data : PlanetData = PlanetData.new() :
set(v): set(v):
current_planet_data = v current_planet_data = v
@@ -21,7 +23,6 @@ func _init():
@export var truck_data : TruckData = TruckData.new() @export var truck_data : TruckData = TruckData.new()
func set_default_unlocked(): func set_default_unlocked():
unlocked_plant_types = all_plant_types()
unlocked_plant_mutations = all_plant_mutations() unlocked_plant_mutations = all_plant_mutations()
unlocked_machines = all_machines() unlocked_machines = all_machines()
@@ -39,6 +40,25 @@ func reset_all():
reset_player() reset_player()
reset_truck() reset_truck()
unlocked_plant_types = []
func unlock_plant_type(new_plant_type : PlantType):
if not is_plant_type_unlocked(new_plant_type):
unlocked_plant_types.append(new_plant_type.duplicate_deep())
func get_locked_plant_types() -> Array[PlantType]:
var locked_plant_type : Array[PlantType] = []
for pt in GameInfo.game_data.all_plant_types():
if not is_plant_type_unlocked(pt):
locked_plant_type.append(pt)
return locked_plant_type
func is_plant_type_unlocked(new_plant_type : PlantType):
return unlocked_plant_types.find_custom(
func (upt : PlantType): return new_plant_type.name == upt.name
) != -1
func all_plant_types() -> Array[PlantType]: func all_plant_types() -> Array[PlantType]:

View File

@@ -0,0 +1,11 @@
extends Resource
class_name SettingsData
const AVAILABLE_LANGUAGES = [
"en",
"fr",
]
const AVAILABLE_LANGUAGES_LABEL = [
"English",
"Français",
]

View File

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

View File

@@ -12,8 +12,8 @@ dest_files=["res://.godot/imported/ambiance_phase_1.ogg-4ec046572bfe46745950c2c7
[params] [params]
loop=false loop=true
loop_offset=0 loop_offset=0.0
bpm=0 bpm=0.0
beat_count=0 beat_count=0
bar_beats=4 bar_beats=4

View File

@@ -12,7 +12,7 @@ dest_files=["res://.godot/imported/ambiance_phase_2.ogg-2260c3829d7e53dd94462ea7
[params] [params]
loop=false loop=true
loop_offset=0.0 loop_offset=0.0
bpm=0.0 bpm=0.0
beat_count=0 beat_count=0

View File

@@ -1,19 +0,0 @@
[remap]
importer="oggvorbisstr"
type="AudioStreamOggVorbis"
uid="uid://gjr7ruv7wfci"
path="res://.godot/imported/truck_ambience_phase_1.ogg-68cfb99a7f0a6b83abe32ff81d60f6ab.oggvorbisstr"
[deps]
source_file="res://common/music/assets/ambiance/truck_ambience_phase_1.ogg"
dest_files=["res://.godot/imported/truck_ambience_phase_1.ogg-68cfb99a7f0a6b83abe32ff81d60f6ab.oggvorbisstr"]
[params]
loop=false
loop_offset=0
bpm=0
beat_count=0
bar_beats=4

View File

@@ -1,19 +0,0 @@
[remap]
importer="oggvorbisstr"
type="AudioStreamOggVorbis"
uid="uid://car7b6j0ihi30"
path="res://.godot/imported/truck_ambience_phase_2.ogg-e62a693ce667406e511b7afb0da84f79.oggvorbisstr"
[deps]
source_file="res://common/music/assets/ambiance/truck_ambience_phase_2.ogg"
dest_files=["res://.godot/imported/truck_ambience_phase_2.ogg-e62a693ce667406e511b7afb0da84f79.oggvorbisstr"]
[params]
loop=false
loop_offset=0
bpm=0
beat_count=0
bar_beats=4

View File

@@ -1,19 +0,0 @@
[remap]
importer="oggvorbisstr"
type="AudioStreamOggVorbis"
uid="uid://dtcv4p3a03giu"
path="res://.godot/imported/truck_ambience_phase_3.ogg-9e9b82ea556ea85244bd2768bddbb340.oggvorbisstr"
[deps]
source_file="res://common/music/assets/ambiance/truck_ambience_phase_3.ogg"
dest_files=["res://.godot/imported/truck_ambience_phase_3.ogg-9e9b82ea556ea85244bd2768bddbb340.oggvorbisstr"]
[params]
loop=false
loop_offset=0
bpm=0
beat_count=0
bar_beats=4

View File

@@ -1,24 +0,0 @@
[remap]
importer="wav"
type="AudioStreamWAV"
uid="uid://clmnyg60wkdtq"
path="res://.godot/imported/bass_champ_arpeggio.wav-eefc85ecfb6e683cb056991c07a5882b.sample"
[deps]
source_file="res://common/music/assets/arpeges/bass_champ_arpeggio.wav"
dest_files=["res://.godot/imported/bass_champ_arpeggio.wav-eefc85ecfb6e683cb056991c07a5882b.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

@@ -1,24 +0,0 @@
[remap]
importer="wav"
type="AudioStreamWAV"
uid="uid://ceua3yhrecmwm"
path="res://.godot/imported/bass_chardi_arpeggio.wav-72420c7b155fad5db1f5667a4bfed73c.sample"
[deps]
source_file="res://common/music/assets/arpeges/bass_chardi_arpeggio.wav"
dest_files=["res://.godot/imported/bass_chardi_arpeggio.wav-72420c7b155fad5db1f5667a4bfed73c.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

@@ -1,24 +0,0 @@
[remap]
importer="wav"
type="AudioStreamWAV"
uid="uid://cjj28vtc1qskx"
path="res://.godot/imported/bass_maia_arpeggio.wav-042581fd552e8b60b8738ab60c5153f4.sample"
[deps]
source_file="res://common/music/assets/arpeges/bass_maia_arpeggio.wav"
dest_files=["res://.godot/imported/bass_maia_arpeggio.wav-042581fd552e8b60b8738ab60c5153f4.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

@@ -1,24 +0,0 @@
[remap]
importer="wav"
type="AudioStreamWAV"
uid="uid://cc6sax3jlhyas"
path="res://.godot/imported/bass_pili_arpeggio.wav-4401cd5fed95421e277c9ae5ba950192.sample"
[deps]
source_file="res://common/music/assets/arpeges/bass_pili_arpeggio.wav"
dest_files=["res://.godot/imported/bass_pili_arpeggio.wav-4401cd5fed95421e277c9ae5ba950192.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

@@ -1,24 +0,0 @@
[remap]
importer="wav"
type="AudioStreamWAV"
uid="uid://dh7peiybu2d1i"
path="res://.godot/imported/melodic_champ_arpeggio.wav-f51dd6e765d9612ccf4555e660cc9d60.sample"
[deps]
source_file="res://common/music/assets/arpeges/melodic_champ_arpeggio.wav"
dest_files=["res://.godot/imported/melodic_champ_arpeggio.wav-f51dd6e765d9612ccf4555e660cc9d60.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

@@ -1,24 +0,0 @@
[remap]
importer="wav"
type="AudioStreamWAV"
uid="uid://dwsrruj5pqadi"
path="res://.godot/imported/melodic_chardi_arpeggio.wav-591eae71ac0a68cd05aa804a988dacf1.sample"
[deps]
source_file="res://common/music/assets/arpeges/melodic_chardi_arpeggio.wav"
dest_files=["res://.godot/imported/melodic_chardi_arpeggio.wav-591eae71ac0a68cd05aa804a988dacf1.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

@@ -1,24 +0,0 @@
[remap]
importer="wav"
type="AudioStreamWAV"
uid="uid://c4lmd1t2kn7lu"
path="res://.godot/imported/melodic_maia_arpeggio.wav-d55d26a1120794aa6ce59f0df8b63f81.sample"
[deps]
source_file="res://common/music/assets/arpeges/melodic_maia_arpeggio.wav"
dest_files=["res://.godot/imported/melodic_maia_arpeggio.wav-d55d26a1120794aa6ce59f0df8b63f81.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

@@ -1,24 +0,0 @@
[remap]
importer="wav"
type="AudioStreamWAV"
uid="uid://18ov4d3r2wru"
path="res://.godot/imported/melodic_pili_arpeggio.wav-7acad74938f412860bb19b24566beef3.sample"
[deps]
source_file="res://common/music/assets/arpeges/melodic_pili_arpeggio.wav"
dest_files=["res://.godot/imported/melodic_pili_arpeggio.wav-7acad74938f412860bb19b24566beef3.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

@@ -1,24 +0,0 @@
[remap]
importer="wav"
type="AudioStreamWAV"
uid="uid://dmdr13bdsk6up"
path="res://.godot/imported/rythmic_champ_arpeggio.wav-db92c2bba77e4832cf2facc59860f8ae.sample"
[deps]
source_file="res://common/music/assets/arpeges/rythmic_champ_arpeggio.wav"
dest_files=["res://.godot/imported/rythmic_champ_arpeggio.wav-db92c2bba77e4832cf2facc59860f8ae.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

@@ -1,24 +0,0 @@
[remap]
importer="wav"
type="AudioStreamWAV"
uid="uid://dwpspwd6bnxm6"
path="res://.godot/imported/rythmic_chardi_arpeggio.wav-70af61051727e79d8f7b217950428d65.sample"
[deps]
source_file="res://common/music/assets/arpeges/rythmic_chardi_arpeggio.wav"
dest_files=["res://.godot/imported/rythmic_chardi_arpeggio.wav-70af61051727e79d8f7b217950428d65.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

@@ -1,24 +0,0 @@
[remap]
importer="wav"
type="AudioStreamWAV"
uid="uid://ilinwxk13d30"
path="res://.godot/imported/rythmic_maia_arpeggio.wav-d601bf458d9a1476f6ba913f1e918a91.sample"
[deps]
source_file="res://common/music/assets/arpeges/rythmic_maia_arpeggio.wav"
dest_files=["res://.godot/imported/rythmic_maia_arpeggio.wav-d601bf458d9a1476f6ba913f1e918a91.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

@@ -1,24 +0,0 @@
[remap]
importer="wav"
type="AudioStreamWAV"
uid="uid://dbv61dwqx82qk"
path="res://.godot/imported/rythmic_pili_arpeggio.wav-8a302b14f9e3981daf9642815a95a994.sample"
[deps]
source_file="res://common/music/assets/arpeges/rythmic_pili_arpeggio.wav"
dest_files=["res://.godot/imported/rythmic_pili_arpeggio.wav-8a302b14f9e3981daf9642815a95a994.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

@@ -13,7 +13,7 @@ dest_files=["res://.godot/imported/forest_phase_1.ogg-6bf54bf177c3c359a54aab9723
[params] [params]
loop=false loop=false
loop_offset=0 loop_offset=0.0
bpm=0 bpm=0.0
beat_count=0 beat_count=0
bar_beats=4 bar_beats=4

View File

@@ -13,7 +13,7 @@ dest_files=["res://.godot/imported/forest_phase_2.ogg-0fc72a5b1a0f8f7e98246db80e
[params] [params]
loop=false loop=false
loop_offset=0 loop_offset=0.0
bpm=0 bpm=0.0
beat_count=0 beat_count=0
bar_beats=4 bar_beats=4

View File

@@ -13,7 +13,7 @@ dest_files=["res://.godot/imported/forest_phase_3.ogg-55f42a1f5a8a4849a773f18490
[params] [params]
loop=false loop=false
loop_offset=0 loop_offset=0.0
bpm=0 bpm=0.0
beat_count=0 beat_count=0
bar_beats=4 bar_beats=4

Binary file not shown.

View File

@@ -0,0 +1,19 @@
[remap]
importer="oggvorbisstr"
type="AudioStreamOggVorbis"
uid="uid://bujnhms77eyha"
path="res://.godot/imported/forest_phase_4.ogg-797ea0a17aecbe5b6044051bebd8e1dc.oggvorbisstr"
[deps]
source_file="res://common/music/assets/morceaux/forest_phase_4.ogg"
dest_files=["res://.godot/imported/forest_phase_4.ogg-797ea0a17aecbe5b6044051bebd8e1dc.oggvorbisstr"]
[params]
loop=true
loop_offset=0.0
bpm=0.0
beat_count=0
bar_beats=4

Binary file not shown.

View File

@@ -0,0 +1,24 @@
[remap]
importer="wav"
type="AudioStreamWAV"
uid="uid://ckr8s80dqyo12"
path="res://.godot/imported/recharge.wav-aa73ba3e05aa83c0276eddf40b50b0ae.sample"
[deps]
source_file="res://common/music/assets/morceaux/recharge.wav"
dest_files=["res://.godot/imported/recharge.wav-aa73ba3e05aa83c0276eddf40b50b0ae.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

@@ -12,8 +12,8 @@ dest_files=["res://.godot/imported/truck_music.ogg-cb4f770bcd6358719b9d817459f5f
[params] [params]
loop=false loop=true
loop_offset=0 loop_offset=0.0
bpm=0 bpm=0.0
beat_count=0 beat_count=0
bar_beats=4 bar_beats=4

View File

@@ -1,4 +1,4 @@
[gd_scene load_steps=12 format=3 uid="uid://b6hscxcrj065q"] [gd_scene load_steps=13 format=3 uid="uid://b6hscxcrj065q"]
[ext_resource type="Script" uid="uid://2p5d6vogtn82" path="res://common/music/scripts/music.gd" id="1_ji160"] [ext_resource type="Script" uid="uid://2p5d6vogtn82" path="res://common/music/scripts/music.gd" id="1_ji160"]
[ext_resource type="AudioStream" uid="uid://diyefcv8tqa3r" path="res://common/music/assets/morceaux/forest_phase_1.ogg" id="1_stre8"] [ext_resource type="AudioStream" uid="uid://diyefcv8tqa3r" path="res://common/music/assets/morceaux/forest_phase_1.ogg" id="1_stre8"]
@@ -8,6 +8,7 @@
[ext_resource type="AudioStream" uid="uid://dftxjfdqgsbd3" path="res://common/music/assets/ambiance/ambiance_phase_3.ogg" id="6_i5lxw"] [ext_resource type="AudioStream" uid="uid://dftxjfdqgsbd3" path="res://common/music/assets/ambiance/ambiance_phase_3.ogg" id="6_i5lxw"]
[ext_resource type="AudioStream" uid="uid://brtjlgjqnrvcb" path="res://common/music/assets/morceaux/truck_music.ogg" id="7_a71a3"] [ext_resource type="AudioStream" uid="uid://brtjlgjqnrvcb" path="res://common/music/assets/morceaux/truck_music.ogg" id="7_a71a3"]
[ext_resource type="AudioStream" uid="uid://d4lqhgf0lhgge" path="res://common/music/assets/morceaux/forest_phase_3.ogg" id="7_i5lxw"] [ext_resource type="AudioStream" uid="uid://d4lqhgf0lhgge" path="res://common/music/assets/morceaux/forest_phase_3.ogg" id="7_i5lxw"]
[ext_resource type="AudioStream" uid="uid://bujnhms77eyha" path="res://common/music/assets/morceaux/forest_phase_4.ogg" id="8_i0tje"]
[sub_resource type="AudioStreamSynchronized" id="AudioStreamSynchronized_i5lxw"] [sub_resource type="AudioStreamSynchronized" id="AudioStreamSynchronized_i5lxw"]
stream_count = 3 stream_count = 3
@@ -18,14 +19,13 @@ stream_1/volume = -60.0
stream_2/stream = ExtResource("6_i5lxw") stream_2/stream = ExtResource("6_i5lxw")
stream_2/volume = -60.0 stream_2/volume = -60.0
[sub_resource type="AudioStreamSynchronized" id="AudioStreamSynchronized_i0tje"] [sub_resource type="AudioStreamPlaylist" id="AudioStreamPlaylist_i5lxw"]
stream_count = 3 loop = false
stream_0/stream = ExtResource("1_stre8") stream_count = 4
stream_0/volume = -60.0 stream_0 = ExtResource("1_stre8")
stream_1/stream = ExtResource("2_ji160") stream_1 = ExtResource("2_ji160")
stream_1/volume = -60.0 stream_2 = ExtResource("7_i5lxw")
stream_2/stream = ExtResource("7_i5lxw") stream_3 = ExtResource("8_i0tje")
stream_2/volume = -60.0
[sub_resource type="AudioStreamSynchronized" id="AudioStreamSynchronized_w0e2r"] [sub_resource type="AudioStreamSynchronized" id="AudioStreamSynchronized_w0e2r"]
stream_count = 1 stream_count = 1
@@ -53,7 +53,8 @@ unique_name_in_owner = true
[node name="Planet" type="AudioStreamPlayer" parent="Musics"] [node name="Planet" type="AudioStreamPlayer" parent="Musics"]
unique_name_in_owner = true unique_name_in_owner = true
stream = SubResource("AudioStreamSynchronized_i0tje") stream = SubResource("AudioStreamPlaylist_i5lxw")
volume_db = -3.0
autoplay = true autoplay = true
[node name="Truck" type="AudioStreamPlayer" parent="Musics"] [node name="Truck" type="AudioStreamPlayer" parent="Musics"]

View File

@@ -48,7 +48,6 @@ func get_all_audio_stream() -> Array[AudioStreamPlayer]:
var all_children = %Ambiance.get_children() var all_children = %Ambiance.get_children()
all_children.append_array(%Musics.get_children()) all_children.append_array(%Musics.get_children())
print(all_children)
for c in all_children: for c in all_children:
if c is AudioStreamPlayer: if c is AudioStreamPlayer:
all_audio_stream.append(c) all_audio_stream.append(c)
@@ -60,9 +59,9 @@ func _on_current_planet_data_updated(planet_data : PlanetData):
planet_data.updated.connect(update_garden_phase) planet_data.updated.connect(update_garden_phase)
func update_garden_phase(planet_data : PlanetData): func update_garden_phase(planet_data : PlanetData):
var phase : int = 0 var phase : int = garden_phase
for i in range(len(garden_phases_scores)): for i in range(len(garden_phases_scores)):
if planet_data.garden_score >= garden_phases_scores[i]: if planet_data.garden_score >= garden_phases_scores[i] and i > garden_phase:
phase = i phase = i
update_phase() update_phase()

View File

@@ -1,3 +0,0 @@
[gd_resource type="AudioBusLayout" format=3 uid="uid://br1p68sy17lcg"]
[resource]

View File

@@ -28,14 +28,14 @@ func pointer_text() -> String:
var name_suffix = "" var name_suffix = ""
if item is Seed: if item is Seed:
name_suffix = "Seed" name_suffix = tr("SEED")
if item is Package: if item is Package:
name_suffix = "Package" name_suffix = tr("PACKAGE")
return item.name + (" " + name_suffix if name_suffix else "") return item.name + (" " + name_suffix if name_suffix else "")
func interact_text(): func interact_text():
return "Take" return tr("TAKE")
func card_info() -> CardInfo: func card_info() -> CardInfo:
return item.card_info() return item.card_info()
@@ -54,6 +54,7 @@ func pickup_animation(player : Player):
tween.tween_property(self, "position", player.position, 0.2) tween.tween_property(self, "position", player.position, 0.2)
tween.tween_callback( tween.tween_callback(
func(): func():
Pointer.stop_inspect(self)
queue_free() queue_free()
) )
if object_sprite: if object_sprite:

View File

@@ -1,6 +1,8 @@
extends Machine extends Machine
class_name SolarPanel class_name SolarPanel
const ENERGY_ICON = preload("res://common/icons/bolt.svg")
var charged : bool = false var charged : bool = false
var recharge_days : int = 0 var recharge_days : int = 0
@@ -37,13 +39,44 @@ func set_charged(_charged = true, with_anim : bool = true):
%Flair.modulate = Color.WHITE if charged else Color.TRANSPARENT %Flair.modulate = Color.WHITE if charged else Color.TRANSPARENT
%Pannels.modulate = Color.WHITE if charged else Color("6c6c6c") %Pannels.modulate = Color.WHITE if charged else Color("6c6c6c")
func card_info() -> CardInfo:
var info = CardInfo.new(
pointer_text()
)
if default_info_desc != "":
var desc_section = CardSectionInfo.new(
tr("DESCRIPTION"),
default_info_desc
)
desc_section.title_icon = DESC_ICON
info.sections.append(
desc_section
)
var charged_text = tr("CHARGED")
if not charged and (get_days_to_recharge() - recharge_days) == 1:
charged_text = tr("1_DAY_BEFORE_CHARGE")
elif not charged and (get_days_to_recharge() - recharge_days) > 1:
charged_text = tr("%d_DAYS_BEFORE_CHARGE") % (get_days_to_recharge() - recharge_days)
info.stats.append(
CardStatInfo.new(
charged_text,
ENERGY_ICON
)
)
return info
func setup_machine_sprite(): func setup_machine_sprite():
# %Base.self_modulate = Machine.get_level_color(level) # %Base.self_modulate = Machine.get_level_color(level)
pass pass
func interact_text(): func interact_text():
return "Recharge " + str(get_energy_production()) + " energy" return tr("RECHARGE_%d_ENERGY") % get_energy_production()
func can_interact(_p : Player) -> bool: func can_interact(_p : Player) -> bool:
return charged return charged

View File

@@ -5,7 +5,7 @@
[resource] [resource]
script = ExtResource("1_ctita") script = ExtResource("1_ctita")
name = "Solar Pannel" name = "SOLAR_PANNEL"
scene = ExtResource("1_naexs") scene = ExtResource("1_naexs")
description = "Charge every 2 days. When charged, can be used to recharge player energy." description = "SOLAR_PANNEL_DESCRIPTION_TEXT"
metadata/_custom_type_script = "uid://bepx311a3f0o" metadata/_custom_type_script = "uid://bepx311a3f0o"

View File

@@ -70,6 +70,9 @@ _data = {
[node name="SolarPannel" type="Area2D"] [node name="SolarPannel" type="Area2D"]
script = ExtResource("1_t4vnu") script = ExtResource("1_t4vnu")
default_interact_text = "USE"
default_info_title = "SOLAR_PANNEL"
default_info_desc = "SOLAR_PANNEL_DESCRIPTION_TEXT"
metadata/_custom_type_script = "uid://du7qppxobx5nd" metadata/_custom_type_script = "uid://du7qppxobx5nd"
[node name="Sprites" type="Node2D" parent="."] [node name="Sprites" type="Node2D" parent="."]

View File

@@ -78,9 +78,9 @@ _data = {
[node name="Compost" type="Area2D"] [node name="Compost" type="Area2D"]
script = ExtResource("1_ux0j5") script = ExtResource("1_ux0j5")
default_interact_text = "Place Seed" default_interact_text = "PLACE_SEED"
default_info_title = "Compost" default_info_title = "COMPOST"
default_info_desc = "This research station can provide some bonus if filled with seeds." default_info_desc = "COMPOST_DESC_TEXT"
[node name="CollisionShape2D" type="CollisionShape2D" parent="."] [node name="CollisionShape2D" type="CollisionShape2D" parent="."]
position = Vector2(0, -3) position = Vector2(0, -3)

View File

@@ -49,7 +49,7 @@ func card_info() -> CardInfo:
if default_info_desc != "": if default_info_desc != "":
var desc_section = CardSectionInfo.new( var desc_section = CardSectionInfo.new(
"Description", tr("DESCRIPTION"),
default_info_desc default_info_desc
) )
desc_section.title_icon = DESC_ICON desc_section.title_icon = DESC_ICON
@@ -58,7 +58,7 @@ func card_info() -> CardInfo:
) )
var reward_section = CardSectionInfo.new( var reward_section = CardSectionInfo.new(
"When filled", tr("WHEN_FILLED"),
reward.desc() reward.desc()
) )
reward_section.title_icon = FILLED_ICON reward_section.title_icon = FILLED_ICON

View File

@@ -14,7 +14,7 @@ func reward(p: Player):
p.pick_item(item) p.pick_item(item)
func desc() -> String: func desc() -> String:
return "Give the following item : [b]%s[/b]. %s" % [item.name, item.description] return tr("GIVE_THE_FOLLOWING_ITEM_%s") % tr(item.name) + ". " + tr(item.description)
func icon() -> Texture: func icon() -> Texture:
return item.icon return item.icon

View File

@@ -4,7 +4,7 @@ func reward(p: Player):
p.upgrade_max_energy(1) p.upgrade_max_energy(1)
func desc() -> String: func desc() -> String:
return "Upgrade max energy" return tr("UPGRADE_MAX_ENERGY")
func icon() -> Texture: func icon() -> Texture:
return preload("res://common/icons/bolt.svg") return preload("res://common/icons/bolt.svg")

View File

@@ -5,7 +5,7 @@ func reward(p: Player):
p.upgrade_inventory_size() p.upgrade_inventory_size()
func desc() -> String: func desc() -> String:
return "Upgrade max inventory size" return tr("UPGRADE_MAX_INVENTORY_SIZE")
func icon() -> Texture: func icon() -> Texture:
return preload("res://common/icons/backpack.svg") return preload("res://common/icons/backpack.svg")

View File

@@ -14,9 +14,9 @@ region = Rect2(205, 157, 87, 208)
[node name="TruckLadder" type="Area2D"] [node name="TruckLadder" type="Area2D"]
script = ExtResource("1_26qdk") script = ExtResource("1_26qdk")
default_interact_text = "Enter Truck" default_interact_text = "ENTER_TRUCK"
default_info_title = "Truck Entrance" default_info_title = "TRUCK_ENTRANCE"
default_info_desc = "A good old ladder." default_info_desc = "LADDER_DESC_TEXT"
metadata/_custom_type_script = "uid://dyprcd68fjstf" metadata/_custom_type_script = "uid://dyprcd68fjstf"
[node name="CollisionShape2D" type="CollisionShape2D" parent="."] [node name="CollisionShape2D" type="CollisionShape2D" parent="."]

View File

@@ -14,9 +14,9 @@ region = Rect2(64, 161, 101, 205)
[node name="TruckRecharge" type="Area2D"] [node name="TruckRecharge" type="Area2D"]
script = ExtResource("1_ipgcv") script = ExtResource("1_ipgcv")
default_interact_text = "Recharge" default_interact_text = "RECHARGE"
default_info_title = "Recharge Station" default_info_title = "RECHARGE_STATION"
default_info_desc = "[b]You can recharge your robot here.[/b] When recharging, time will pass and plants may grow." default_info_desc = "RECHARGE_STATION_DESC_TEXT"
metadata/_custom_type_script = "uid://dyprcd68fjstf" metadata/_custom_type_script = "uid://dyprcd68fjstf"
[node name="CollisionShape2D" type="CollisionShape2D" parent="."] [node name="CollisionShape2D" type="CollisionShape2D" parent="."]

Binary file not shown.

Before

Width:  |  Height:  |  Size: 127 KiB

View File

@@ -1,40 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dbednu7eygtrf"
path="res://.godot/imported/arbre_mort.png-eea217ee3fbf6520e6fbde71f18bbeef.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://entities/objectives/assets/sprites/arbre_mort.png"
dest_files=["res://.godot/imported/arbre_mort.png-eea217ee3fbf6520e6fbde71f18bbeef.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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 49 KiB

View File

@@ -1,40 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://4iukrxpg34y4"
path="res://.godot/imported/herbe.png-0b71f9ccc1e3943af9b0f3a135d3651b.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://entities/objectives/assets/sprites/herbe.png"
dest_files=["res://.godot/imported/herbe.png-0b71f9ccc1e3943af9b0f3a135d3651b.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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

View File

@@ -1,40 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bsetwgt5tqv7v"
path="res://.godot/imported/herbe3.png-a47f3310ca32019ca3d036e811d21212.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://entities/objectives/assets/sprites/herbe3.png"
dest_files=["res://.godot/imported/herbe3.png-a47f3310ca32019ca3d036e811d21212.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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 40 KiB

View File

@@ -1,40 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://k4v52q6eejv"
path="res://.godot/imported/herbe4.png-c674d45256bbf00e0fd646fd55e2e33b.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://entities/objectives/assets/sprites/herbe4.png"
dest_files=["res://.godot/imported/herbe4.png-c674d45256bbf00e0fd646fd55e2e33b.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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 117 KiB

View File

@@ -1,40 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://ckb8w7hsfevvt"
path="res://.godot/imported/herbe8_glow.png-c4d058e6fea519767afa64e839e5f87f.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://entities/objectives/assets/sprites/herbe8_glow.png"
dest_files=["res://.godot/imported/herbe8_glow.png-c4d058e6fea519767afa64e839e5f87f.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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

View File

@@ -1,40 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://c4pv2o7crchc0"
path="res://.godot/imported/little_plant.png-e9ed84e9420c629c3911ff755b194643.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://entities/objectives/assets/sprites/little_plant.png"
dest_files=["res://.godot/imported/little_plant.png-e9ed84e9420c629c3911ff755b194643.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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

View File

@@ -1,40 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bxb13hfnhxpvv"
path="res://.godot/imported/plante_morte.png-308d7033b9ec4bc89434e061a168e35b.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://entities/objectives/assets/sprites/plante_morte.png"
dest_files=["res://.godot/imported/plante_morte.png-308d7033b9ec4bc89434e061a168e35b.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,255 +0,0 @@
[gd_scene load_steps=10 format=3 uid="uid://djl2le58ckgdx"]
[ext_resource type="Script" uid="uid://j8fpi8rd8eyy" path="res://entities/objectives/scripts/objective.gd" id="1_3hqw5"]
[ext_resource type="Texture2D" uid="uid://4iukrxpg34y4" path="res://entities/objectives/assets/sprites/herbe.png" id="2_047qm"]
[ext_resource type="Texture2D" uid="uid://bxb13hfnhxpvv" path="res://entities/objectives/assets/sprites/plante_morte.png" id="3_bvagy"]
[ext_resource type="Texture2D" uid="uid://k4v52q6eejv" path="res://entities/objectives/assets/sprites/herbe4.png" id="4_lrlky"]
[ext_resource type="Texture2D" uid="uid://ckb8w7hsfevvt" path="res://entities/objectives/assets/sprites/herbe8_glow.png" id="5_6uhem"]
[sub_resource type="Animation" id="Animation_v08i5"]
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("ArbreMort:modulate")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Color(0.627451, 0.85490197, 0.8980392, 1)]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("LittlePlant:visible")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [false]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("LittlePlant:scale")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector2(0.094358, 0.094358)]
}
tracks/3/type = "value"
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/path = NodePath("LittlePlant2:visible")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [false]
}
tracks/4/type = "value"
tracks/4/imported = false
tracks/4/enabled = true
tracks/4/path = NodePath("LittlePlant2:scale")
tracks/4/interp = 1
tracks/4/loop_wrap = true
tracks/4/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector2(0.094358, 0.094358)]
}
tracks/5/type = "value"
tracks/5/imported = false
tracks/5/enabled = true
tracks/5/path = NodePath("LittlePlant3:visible")
tracks/5/interp = 1
tracks/5/loop_wrap = true
tracks/5/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [false]
}
tracks/6/type = "value"
tracks/6/imported = false
tracks/6/enabled = true
tracks/6/path = NodePath("ArbreMort:scale")
tracks/6/interp = 1
tracks/6/loop_wrap = true
tracks/6/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector2(0.162791, 0.162791)]
}
tracks/7/type = "value"
tracks/7/imported = false
tracks/7/enabled = true
tracks/7/path = NodePath("LittlePlant3:scale")
tracks/7/interp = 1
tracks/7/loop_wrap = true
tracks/7/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector2(0.094358, 0.094358)]
}
[sub_resource type="Animation" id="Animation_6uhem"]
resource_name = "activate"
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("ArbreMort:modulate")
tracks/0/interp = 2
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 0.266667),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [Color(0.62835556, 0.85348916, 0.8974243, 1), Color(1, 1, 1, 1)]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("LittlePlant:visible")
tracks/1/interp = 2
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0.0333333),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [true]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("LittlePlant:scale")
tracks/2/interp = 2
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0.433333, 0.6),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [Vector2(0, 0), Vector2(0.044, 0.044)]
}
tracks/3/type = "value"
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/path = NodePath("LittlePlant2:visible")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = {
"times": PackedFloat32Array(0.0333333),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [true]
}
tracks/4/type = "value"
tracks/4/imported = false
tracks/4/enabled = true
tracks/4/path = NodePath("LittlePlant2:scale")
tracks/4/interp = 2
tracks/4/loop_wrap = true
tracks/4/keys = {
"times": PackedFloat32Array(0.6, 0.8),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [Vector2(0, 0), Vector2(0.044, 0.044)]
}
tracks/5/type = "value"
tracks/5/imported = false
tracks/5/enabled = true
tracks/5/path = NodePath("LittlePlant3:visible")
tracks/5/interp = 1
tracks/5/loop_wrap = true
tracks/5/keys = {
"times": PackedFloat32Array(0.0333333),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [true]
}
tracks/6/type = "value"
tracks/6/imported = false
tracks/6/enabled = true
tracks/6/path = NodePath("ArbreMort:scale")
tracks/6/interp = 2
tracks/6/loop_wrap = true
tracks/6/keys = {
"times": PackedFloat32Array(0, 0.1, 0.266667, 0.4),
"transitions": PackedFloat32Array(1, 1, 1, 1),
"update": 0,
"values": [Vector2(0.162791, 0.162791), Vector2(0.183, 0.093), Vector2(0.123, 0.178), Vector2(0.162791, 0.162791)]
}
tracks/7/type = "value"
tracks/7/imported = false
tracks/7/enabled = true
tracks/7/path = NodePath("LittlePlant3:scale")
tracks/7/interp = 2
tracks/7/loop_wrap = true
tracks/7/keys = {
"times": PackedFloat32Array(0.4, 0.533333),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [Vector2(0, 0), Vector2(0.054, 0.054)]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_047qm"]
_data = {
&"RESET": SubResource("Animation_v08i5"),
&"activate": SubResource("Animation_6uhem")
}
[sub_resource type="CapsuleShape2D" id="CapsuleShape2D_bvagy"]
radius = 15.0
height = 68.0
[node name="Objective" type="Area2D"]
script = ExtResource("1_3hqw5")
metadata/_custom_type_script = "uid://d3bk52402ylvl"
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
unique_name_in_owner = true
libraries = {
&"": SubResource("AnimationLibrary_047qm")
}
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
position = Vector2(-1, -16)
rotation = 1.5708
shape = SubResource("CapsuleShape2D_bvagy")
[node name="LittlePlant" type="Sprite2D" parent="."]
visible = false
position = Vector2(-15, -25)
scale = Vector2(0.094358, 0.094358)
texture = ExtResource("2_047qm")
[node name="ArbreMort" type="Sprite2D" parent="."]
modulate = Color(0.627451, 0.85490197, 0.8980392, 1)
position = Vector2(0, -17)
scale = Vector2(0.162791, 0.162791)
texture = ExtResource("3_bvagy")
offset = Vector2(0, -85.55)
[node name="LittlePlant2" type="Sprite2D" parent="."]
visible = false
position = Vector2(21, -22)
scale = Vector2(0.094358, 0.094358)
texture = ExtResource("4_lrlky")
[node name="LittlePlant3" type="Sprite2D" parent="."]
visible = false
position = Vector2(0, -15.000002)
scale = Vector2(0.094358, 0.094358)
texture = ExtResource("5_6uhem")

View File

@@ -1,18 +0,0 @@
extends InspectableEntity
class_name Objective
const RANDOM_MAX_OBJECTIVE_INTERVAL = 1.
const DECONTAMINATION_ICON = preload("res://common/icons/skull.svg")
var completed : bool = false
@export var reward : ObjectiveReward = null
func pointer_text() -> String:
return "Contamination Objective"
func _end_pass_day():
if planet and not completed:
if not planet.garden.is_there_contamination(global_position):
reward.reward(self)
%AnimationPlayer.play("activate")
completed = true

View File

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

View File

@@ -1,14 +0,0 @@
extends Resource
class_name ObjectiveReward
func reward(_objective : Objective):
pass
func get_icon() -> Texture:
return null
func get_text() -> String:
return ""
func get_description() -> String:
return ""

View File

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

View File

@@ -1,25 +0,0 @@
extends ObjectiveReward
class_name LootItemReward
const REWARD_ITEM_RANDOM_DISPLACEMENT_FACTOR = 100
@export var item : Item
func _init(i : Item):
item = i
func get_icon() -> Texture:
return preload("res://common/icons/package.svg")
func get_text() -> String:
return ""
func get_description() -> String:
return "Loot the following item: [b]%s[/b]. %s" % [item.name, item.description]
func reward(objective : Objective):
objective.terrain.drop_item(
item,
objective.global_position,
REWARD_ITEM_RANDOM_DISPLACEMENT_FACTOR
)

View File

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

View File

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

View File

@@ -1,26 +0,0 @@
extends ObjectiveReward
class_name LootRandomSeedsReward
const REWARD_SEED_RANDOM_DISPLACEMENT_FACTOR = 100
@export var seeds_number : int
func _init(number : int):
seeds_number = number
func get_icon() -> Texture:
return preload("res://common/icons/seedling.svg")
func get_text() -> String:
return str(seeds_number)
func get_description() -> String:
return "Loot " + str(seeds_number) + " random seeds."
func reward(objective : Objective):
for i in range(seeds_number):
objective.terrain.drop_item(
Seed.new(GameInfo.game_data.unlocked_plant_types.pick_random()),
objective.global_position,
REWARD_SEED_RANDOM_DISPLACEMENT_FACTOR
)

View File

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

View File

@@ -1,19 +0,0 @@
extends ObjectiveReward
class_name RechargePlayerReward
@export var recharge_amount = 1
func _init(_recharge_amount : int = 1):
recharge_amount = _recharge_amount
func reward(objective : Objective):
objective.terrain.player.recharge(recharge_amount)
func get_icon() -> Texture:
return preload("res://common/icons/bolt.svg")
func get_text() -> String:
return "+"+str(recharge_amount)+" "
func get_description() -> String:
return "Recharge player energy by " + str(recharge_amount) + "."

View File

@@ -1 +0,0 @@
uid://4ak4kre3emnd

View File

@@ -1,19 +0,0 @@
extends ObjectiveReward
class_name UpgradePlayerMaxEnergyReward
@export var upgrade_amount = 1
func _init(_upgrade_amount : int = 1):
upgrade_amount = _upgrade_amount
func reward(objective : Objective):
objective.terrain.player.upgrade_max_energy(upgrade_amount)
func get_icon() -> Texture:
return preload("res://common/icons/bolt.svg")
func get_text() -> String:
return "+"+str(upgrade_amount)+" max"
func get_description() -> String:
return "Increase player max energy by " + str(upgrade_amount) + "."

View File

@@ -1,19 +0,0 @@
extends ObjectiveReward
class_name UpgradePlayerInventorySizeReward
@export var upgrade_amount = 1
func _init(_upgrade_amount : int = 1):
upgrade_amount = _upgrade_amount
func reward(objective : Objective):
objective.terrain.player.upgrade_inventory_size(upgrade_amount)
func get_icon() -> Texture:
return preload("res://common/icons/backpack.svg")
func get_text() -> String:
return "+"+str(upgrade_amount)+" max"
func get_description() -> String:
return "Increase player inventory size by " + str(upgrade_amount) + "."

View File

@@ -24,5 +24,5 @@ default_growing_time = 3
seed_texture = SubResource("AtlasTexture_my6by") seed_texture = SubResource("AtlasTexture_my6by")
growing_texture = ExtResource("2_l2hi3") growing_texture = ExtResource("2_l2hi3")
mature_texture = ExtResource("3_y8qve") mature_texture = ExtResource("3_y8qve")
default_mature_effects = Array[ExtResource("1_l2hi3")]([SubResource("Resource_cf34j")]) mature_effects = Array[ExtResource("1_l2hi3")]([SubResource("Resource_cf34j")])
metadata/_custom_type_script = "uid://jnye5pe1bgqw" metadata/_custom_type_script = "uid://jnye5pe1bgqw"

View File

@@ -13,7 +13,7 @@ script = ExtResource("2_prk5s")
level = 2 level = 2
metadata/_custom_type_script = "uid://ceqx5va1ormau" metadata/_custom_type_script = "uid://ceqx5va1ormau"
[sub_resource type="Resource" id="Resource_k7yib"] [sub_resource type="Resource" id="Resource_ajihu"]
script = ExtResource("3_ajihu") script = ExtResource("3_ajihu")
level = 1 level = 1
metadata/_custom_type_script = "uid://cgscbuxe4dawb" metadata/_custom_type_script = "uid://cgscbuxe4dawb"
@@ -29,6 +29,6 @@ description = "This fern use the bas component of the ground to grow."
seed_texture = SubResource("AtlasTexture_qt76e") seed_texture = SubResource("AtlasTexture_qt76e")
growing_texture = ExtResource("1_prk5s") growing_texture = ExtResource("1_prk5s")
mature_texture = ExtResource("3_40c3e") mature_texture = ExtResource("3_40c3e")
default_harvest_effects = Array[ExtResource("1_40c3e")]([SubResource("Resource_40c3e")]) harvest_effects = Array[ExtResource("1_40c3e")]([SubResource("Resource_40c3e")])
default_mature_effects = Array[ExtResource("1_40c3e")]([SubResource("Resource_k7yib")]) mature_effects = Array[ExtResource("1_40c3e")]([SubResource("Resource_ajihu")])
metadata/_custom_type_script = "uid://jnye5pe1bgqw" metadata/_custom_type_script = "uid://jnye5pe1bgqw"

View File

@@ -8,12 +8,12 @@
[ext_resource type="Texture2D" uid="uid://bfj6wji21amgk" path="res://entities/plants/assets/sprites/ferno/mature.png" id="5_er4cp"] [ext_resource type="Texture2D" uid="uid://bfj6wji21amgk" path="res://entities/plants/assets/sprites/ferno/mature.png" id="5_er4cp"]
[ext_resource type="Texture2D" uid="uid://pltmnkqd5ut2" path="res://entities/plants/assets/sprites/seeds/grille_seeds.png" id="7_0y7r8"] [ext_resource type="Texture2D" uid="uid://pltmnkqd5ut2" path="res://entities/plants/assets/sprites/seeds/grille_seeds.png" id="7_0y7r8"]
[sub_resource type="Resource" id="Resource_0ofiq"] [sub_resource type="Resource" id="Resource_rb4mq"]
script = ExtResource("2_rb4mq") script = ExtResource("2_rb4mq")
level = 2 level = 2
metadata/_custom_type_script = "uid://ceqx5va1ormau" metadata/_custom_type_script = "uid://ceqx5va1ormau"
[sub_resource type="Resource" id="Resource_7wddl"] [sub_resource type="Resource" id="Resource_s6g12"]
script = ExtResource("3_s6g12") script = ExtResource("3_s6g12")
level = 1 level = 1
metadata/_custom_type_script = "uid://cgscbuxe4dawb" metadata/_custom_type_script = "uid://cgscbuxe4dawb"
@@ -29,5 +29,5 @@ description = "This mysterious flower emmit a strong signal in the ground when h
seed_texture = SubResource("AtlasTexture_g1td4") seed_texture = SubResource("AtlasTexture_g1td4")
growing_texture = ExtResource("4_5qaoo") growing_texture = ExtResource("4_5qaoo")
mature_texture = ExtResource("5_er4cp") mature_texture = ExtResource("5_er4cp")
default_harvest_effects = Array[ExtResource("1_srjq6")]([SubResource("Resource_0ofiq"), SubResource("Resource_7wddl")]) harvest_effects = Array[ExtResource("1_srjq6")]([SubResource("Resource_rb4mq"), SubResource("Resource_s6g12")])
metadata/_custom_type_script = "uid://jnye5pe1bgqw" metadata/_custom_type_script = "uid://jnye5pe1bgqw"

View File

@@ -7,7 +7,7 @@
[ext_resource type="Texture2D" uid="uid://d3apfwbqsg5ha" path="res://entities/plants/assets/sprites/maias/mature.png" id="3_pi4ie"] [ext_resource type="Texture2D" uid="uid://d3apfwbqsg5ha" path="res://entities/plants/assets/sprites/maias/mature.png" id="3_pi4ie"]
[ext_resource type="Texture2D" uid="uid://pltmnkqd5ut2" path="res://entities/plants/assets/sprites/seeds/grille_seeds.png" id="6_mwrj8"] [ext_resource type="Texture2D" uid="uid://pltmnkqd5ut2" path="res://entities/plants/assets/sprites/seeds/grille_seeds.png" id="6_mwrj8"]
[sub_resource type="Resource" id="Resource_1llfc"] [sub_resource type="Resource" id="Resource_740j2"]
script = ExtResource("2_740j2") script = ExtResource("2_740j2")
level = 3 level = 3
metadata/_custom_type_script = "uid://ceqx5va1ormau" metadata/_custom_type_script = "uid://ceqx5va1ormau"
@@ -23,5 +23,5 @@ description = "This gorgeous flower produce a lot of seeds when harvested."
seed_texture = SubResource("AtlasTexture_sri3b") seed_texture = SubResource("AtlasTexture_sri3b")
growing_texture = ExtResource("1_vyplc") growing_texture = ExtResource("1_vyplc")
mature_texture = ExtResource("3_pi4ie") mature_texture = ExtResource("3_pi4ie")
default_harvest_effects = Array[ExtResource("1_740j2")]([SubResource("Resource_1llfc")]) harvest_effects = Array[ExtResource("1_740j2")]([SubResource("Resource_740j2")])
metadata/_custom_type_script = "uid://jnye5pe1bgqw" metadata/_custom_type_script = "uid://jnye5pe1bgqw"

View File

@@ -7,7 +7,7 @@
[ext_resource type="Texture2D" uid="uid://bj801geprrhfu" path="res://entities/plants/assets/sprites/philea/mature.png" id="4_cafy4"] [ext_resource type="Texture2D" uid="uid://bj801geprrhfu" path="res://entities/plants/assets/sprites/philea/mature.png" id="4_cafy4"]
[ext_resource type="Texture2D" uid="uid://pltmnkqd5ut2" path="res://entities/plants/assets/sprites/seeds/grille_seeds.png" id="6_oaspo"] [ext_resource type="Texture2D" uid="uid://pltmnkqd5ut2" path="res://entities/plants/assets/sprites/seeds/grille_seeds.png" id="6_oaspo"]
[sub_resource type="Resource" id="Resource_0x8ki"] [sub_resource type="Resource" id="Resource_jyjjp"]
script = ExtResource("2_jyjjp") script = ExtResource("2_jyjjp")
level = 1 level = 1
metadata/_custom_type_script = "uid://ceqx5va1ormau" metadata/_custom_type_script = "uid://ceqx5va1ormau"
@@ -25,5 +25,5 @@ default_plant_score = 3
seed_texture = SubResource("AtlasTexture_ogrgq") seed_texture = SubResource("AtlasTexture_ogrgq")
growing_texture = ExtResource("3_n0hvm") growing_texture = ExtResource("3_n0hvm")
mature_texture = ExtResource("4_cafy4") mature_texture = ExtResource("4_cafy4")
default_mature_effects = Array[ExtResource("1_mi4ef")]([SubResource("Resource_0x8ki")]) mature_effects = Array[ExtResource("1_mi4ef")]([SubResource("Resource_jyjjp")])
metadata/_custom_type_script = "uid://jnye5pe1bgqw" metadata/_custom_type_script = "uid://jnye5pe1bgqw"

Some files were not shown because too many files have changed in this diff Show More