rework l'ui et équilibrage général

This commit is contained in:
Zacharie Guet 2025-11-09 15:56:09 +01:00
parent a8bb09407e
commit 1179e04956
24 changed files with 405 additions and 364 deletions

View File

@ -1,120 +1,135 @@
keys,en,fr
STORY_TEXT,"[b]You are a robot who was sended in a barren and contaminated planet.[/b]
Your job : plant seeds to repopulate this planet. Each seed has different effects and score,and [b]youll have to meet a garden score each 7 days to continue[/b].
Be carefull, [b]you can only plant in decontamined zone[/b], but some plants can help decontaminate your garden.
[b]Good luck![/b]","[b]Vous êtes un robot envoyé sur une planète stérile et contaminée.[/b]
Votre mission : planter des graines pour repeupler cette planète. Chaque graine a des effets et un score différents, et [b]vous devrez atteindre un certain score de jardin tous les 7 jours pour continuer[/b].
Attention, [b]vous ne pouvez planter que dans les zones décontaminées[/b], mais certaines plantes peuvent aider à décontaminer votre jardin.
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/Pickup Items
Mouse Wheel : Change current item
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'item sélectionné
X : Lâcher l'item"
Molette : Changer l'objet en main
X : Lâcher lobjet"
STORY,Story,Histoire
OK,Ok,Ok
COMMA,", ",
OR," or ",
COMMA,", ",","
OR," or "," ou "
PAUSE,Pause,Pause
CONTROLS,Controls,Contrôles
RESUME_GAME,Resume Game, Reprendre
RESUME_GAME,Resume,Reprendre
RESTART,Restart,Recommencer
QUIT,Quit,Quitter
SEED,Seed,
TAKE,Take,
PACKAGE,Package,
DESCRIPTION, Description,
USE, Use,
ON_MATURE,"On mature",
WHEN_HARVESTED,"When harvested",
EACH_DAY_WHEN_MATURE,"Each day when mature",
COMMON,"Common",
RARE,"Rare",
VERY_RARE,"Very rare",
IMPOSSIBLE,"Impossible",
EFFECT,"Effect",
MATURE,"Mature",
GROWING,Growing,
DECONTAMINATE,"Decontaminate",
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,
LAST_DAY_FOR_REACHING_QUOTA,Last day for reaching quota,
RECHARGE_%d_ENERGY,Recharge %d energy,
%d_DAYS_BEFORE_CHARGE, %d days before charge,
1_DAY_BEFORE_CHARGE, 1 days before charge,
CHARGED, Charged,
WHEN_FILLED,"When filled",
GIVE_THE_FOLLOWING_ITEM_%s,"Give the following item : [b]%s[/b]",
UPGRADE_MAX_ENERGY,"Upgrade max energy",
UPGRADE_MAX_INVENTORY_SIZE,"Upgrade max inventory size",
DECONTAMINATE_%d_UNIT_AROUND_IT,"Decontaminate %d unit around it",
SEED_PRODUCTION,"Seed Production",
PRODUCE_%s_SEEDS,"Produce %s seeds",
DAY_%d,"Day [b]%d[/b]",
MATURE_ON_DAY_%d,"Mature on day [b]%d[/b]",
%d_SCORE_WHEN_MATURE,"[b]%d[/b] score when mature",
ABSURD,"[rainbow]Absurd[/rainbow]",
GROW_IN_%d,"Grow in [b]%d[/b]",
%s_SCORE_WHEN_MATURE,"[b]%d[/b] score when mature",
DISCOVER_%s,"Discover %s",
EVOLVE_%s,"Evolve %s",
%s_SEEDS_CAN_NOW_BE_FOUND,"%s seeds can now be found",
%s_SCORE_EVOLUTION,"%s score evolution",
ADD_%s_TO_THE_DEFAULT_SCORE_OF_THE_PLANT,"Add [b]%s[/b] to the default score of the plant",
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",
ANCIENT_EFFECT_TEXT_LEVEL_%d,"When mature, add [b]1[/b] to the score for each [b]%d[/b] days passed",
ELITIST,"Elitist",
ELITIST_EFFECT_TEXT_LEVEL_%d,"When mature, add [b]%d[/b] to the score for each plant of the same species around, but score become 0 if none is around.",
ERMIT,"Ermit",
ERMIT_EFFECT_TEXT_LEVEL_%d,"Multiply the score by [b]%d[/b] if no plant is near, but set it to 0 otherwise.",
PRECOCIOUS,"Precocious",
PRECOCIOUS_EFFECT_TEXT_LEVEL_%d,"Add [b]%d[/b] to the score while the plant is growing",
QUALITY,"Quality",
QUALITY_EFFECT_TEXT_LEVEL_%d,"Add [b]%d[/b] to the score if the plant is mature.",
QUICK,"Quick",
QUICK_EFFECT_TEXT_LEVEL_%d,"Reduce the grow time by %d",
SOCIABLE,"Sociable",
SOCIABLE_EFFECT_TEXT_LEVEL_%d,"When mature, add [b]%d[/b] to the score if near %d other plants",
STRONG,"Strong",
STRONG_EFFECT_TEXT_LEVEL_%d,"Plus [b]%d[/b] percent of the score",
COST_%d_ENERGY,"Cost %d energy",
ONE_TIME_USE,"One time use",
BUILD_%s,"Build %s",
FORK,"Fork",
FORK_DESC_TEXT,"Use it to harvest mature plants.",
HARVEST,Harvest,
KNIFE,"Knife",
KNIFE_DESC_TEXT,"Use it to harvest mature plants. Do not cost energy.",
SHOVEL,"Shovel",
SHOVEL_DESC_TEXT,"Can dig up buried seeds and can be used to harvest mature plants.",
TROWEL, Trowel,
TROWEL_DESC_TEXT,"Use it to harvest mature plants, can get a [b]bonus seed[/b] from each plant.",
DIG, Dig,
OPEN,Open,
%s_SEED,"%s Seed",
PLANT_%s_MUST_BE_USED_IN_DECONTAMINATED_ZONE,"Plant [b]%s[/b]. Must be used in decontamined zone.",
PLANT_%s,"Plant [b]%s[/b]",
BURIED_LOOT,"Buried Loot",
TAKE_THE_SHOVEL,"Take the Shovel",
DIG_UNDERGROUND_LOOT,"Dig Underground Loot",
TAKE_A_SEED,"Take a seed",
PLANT_THE_SEED_IN_DECONTAMINED_ZONE,"Plant the seed in decontamined zone",
RECHARGE_TO_PASS_DAYS,"Recharge to pass days",
HARVEST_MATURE_PLANTS_WITH_SHOVEL,"Harvest mature plants with shovel",
SCORE_%d,"Score : %d",
SOLAR_PANNEL, Solar Panel,
SOLAR_PANNEL_DESCRIPTION_TEXT, "Can give energy when charged. Take several days to recharge",
TRUCK_ENTRANCE,Truck Entrance,
ENTER_TRUCK,Enter Truck,
LADDER_DESC_TEXT,A good old ladder,
RECHARGE_STATION,Recharge Station,
RECHARGE,Recharge,
RECHARGE_STATION_DESC_TEXT,"[b]You can recharge your robot here.[/b] When recharging, time will pass and plants may grow.",
COMPOST,Compost,
PLACE_SEED,Place Seed,
COMPOST_DESC_TEXT,This research station can provide some bonus if filled with seeds,
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 robot who was sended in a barren and contaminated planet.[/b] Your job : plant seeds to repopulate this planet. Each seed has different effects and score,and [b]you’ll have to meet a garden score each 7 days to continue[/b]. Be carefull, [b]you can only plant in decontamined zone[/b], but some plants can help decontaminate your garden. [b]Good luck![/b] [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é sur une planète stérile et contaminée.[/b] Votre mission : planter des graines pour repeupler cette planète. Chaque graine a des effets et un score différents, et [b]vous devrez atteindre un certain score de jardin tous les 7 jours pour continuer[/b]. Attention, [b]vous ne pouvez planter que dans les zones décontaminées[/b], mais certaines plantes peuvent aider à décontaminer votre jardin. [b]Bonne chance ![/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/Pickup Items Mouse Wheel : Change current item X : Drop Item 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'item sélectionné X : Lâcher l'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 Game Resume Reprendre
11 RESTART Restart Recommencer
12 QUIT Quit Quitter
13 SEED Seed Graine
14 TAKE Take Prendre
15 PACKAGE Package Crate Caisse de matériel
16 DESCRIPTION Description Description
17 USE Use Utiliser
18 ON_MATURE 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 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 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 charge %d days before being charged %d jours avant d’être chargé
35 1_DAY_BEFORE_CHARGE 1 days 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 Upgrade max energy Increases maximum energy Augmente l’énergie maximum
40 UPGRADE_MAX_INVENTORY_SIZE 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 [b]%d[/b] 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] Grow in [b]%d[/b] days Mature dans [b]%d[/b] jours
49 %s_SCORE_WHEN_MATURE [b]%d[/b] 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 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, add [b]1[/b] to the score for each [b]%d[/b] days passed 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, add [b]%d[/b] to the score for each plant of the same species around, but score become 0 if none is around. 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 Ermit Hermit Ermite
62 ERMIT_EFFECT_TEXT_LEVEL_%d Multiply the score by [b]%d[/b] if no plant is near, but set it to 0 otherwise. 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 Add [b]%d[/b] to the score while the plant is growing 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 Add [b]%d[/b] to the score if the plant is mature. 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 grow time by %d Reduce the growing time by %d Réduit le temps de maturation de %d
69 SOCIABLE Sociable Outgoing Sociable
70 SOCIABLE_EFFECT_TEXT_LEVEL_%d When mature, add [b]%d[/b] to the score if near %d other plants 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] percent of the score 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 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 harvest mature plants. 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 harvest mature plants. Do not cost energy. 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 Can dig up buried seeds and can be used to harvest mature plants. 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 harvest mature plants, can get a [b]bonus seed[/b] from each plant. 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 decontamined 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_LOOT BURIED_SEEDS Buried Loot Buried seeds Graines enterrées
91 TAKE_THE_SHOVEL BURIED_SEEDS_DESC_TEXT Take the Shovel 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 DIG_UNDERGROUND_LOOT TAKE_THE_SHOVEL Dig Underground Loot Take the shovel Prend la pelle
93 TAKE_A_SEED DIG_UNDERGROUND_LOOT Take a seed Dig up the buried resources Déterre les graines enterrées
94 PLANT_THE_SEED_IN_DECONTAMINED_ZONE TAKE_A_SEED Plant the seed in decontamined zone Take a seed Prend une graine
95 RECHARGE_TO_PASS_DAYS PLANT_THE_SEED_IN_DECONTAMINED_ZONE Recharge to pass days Plant the seed in the decontamined zone Plante la graine dans la zone décontaminée
96 HARVEST_MATURE_PLANTS_WITH_SHOVEL RECHARGE_TO_PASS_DAYS Harvest mature plants with shovel Recharge to pass the day Recharge-toi pour passer la journée
97 SCORE_%d HARVEST_MATURE_PLANTS_WITH_SHOVEL Score : %d Harvest mature plants with the shovel Récolte les plantes matures avec la pelle
98 SOLAR_PANNEL SCORE_%d Solar Panel Score : %d Score : %d
99 SOLAR_PANNEL_DESCRIPTION_TEXT SOLAR_PANNEL Can give energy when charged. Take several days to recharge Solar panel Panneau solaire
100 TRUCK_ENTRANCE SOLAR_PANNEL_DESCRIPTION_TEXT Truck Entrance Grants energy when charged. Take several days to recharge Donne de l’énergie quand chargé. Prend plusieurs jours à se recharger
101 ENTER_TRUCK TRUCK_ENTRANCE Enter Truck Truck entrance Entrée du camion
102 LADDER_DESC_TEXT ENTER_TRUCK A good old ladder Enter truck Entrer dans le camion
103 RECHARGE_STATION EXIT Recharge Station Exit Sortie
104 RECHARGE EXIT_TRUCK Recharge Exit truck Sortir du camion
105 RECHARGE_STATION_DESC_TEXT LADDER_DESC_TEXT [b]You can recharge your robot here.[/b] When recharging, time will pass and plants may grow. A good old ladder Une bonne vieille échelle
106 COMPOST RECHARGE_STATION Compost Recharge station Station de recharge
107 PLACE_SEED RECHARGE Place Seed Recharge Recharger
108 COMPOST_DESC_TEXT RECHARGE_STATION_DESC_TEXT This research station can provide some bonus if filled with seeds [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
124
125
126
127
128
129
130
131
132
133
134
135

View File

@ -5,7 +5,7 @@
[resource]
script = ExtResource("1_ctita")
name = "Solar Pannel"
name = "SOLAR_PANNEL"
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"

View File

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

View File

@ -18,6 +18,9 @@ func get_description() -> String:
return machine_type.description
return ""
func get_energy_used() -> int:
return 0
func get_icon() -> Texture2D:
return preload("res://common/icons/cube-3d-sphere.svg")

View File

@ -7,7 +7,7 @@ const LOOTED_ITEM_RANDOM_RANGE = 50
@export var item_number : int = 1
func pointer_text() -> String:
return tr("BURIED_LOOT")
return tr("BURIED_SEEDS")
func generate_collision_shape() -> CollisionShape2D:
var collision = CollisionShape2D.new()

View File

@ -8,8 +8,8 @@ radius = 20.09975
[node name="UndergroundLootSprites" type="Area2D"]
script = ExtResource("1_knus5")
default_info_title = "Buried Seeds"
default_info_desc = "Contain some random seeds. [b]Dig it with a shovel.[/b]"
default_info_title = "BURIED_SEEDS"
default_info_desc = "BURIED_SEEDS_DESC_TEXT"
metadata/_custom_type_script = "uid://d3bk52402ylvl"
[node name="Sprite2D" type="Sprite2D" parent="."]

View File

@ -1,74 +1,16 @@
[gd_scene load_steps=29 format=3 uid="uid://12nak7amd1uq"]
[gd_scene load_steps=23 format=3 uid="uid://12nak7amd1uq"]
[ext_resource type="Script" uid="uid://cqao7n800qy40" path="res://gui/game/scripts/game_gui.gd" id="1_udau0"]
[ext_resource type="Theme" uid="uid://bgcmd213j6gk1" path="res://gui/ressources/default_theme.tres" id="2_nq5i2"]
[ext_resource type="Texture2D" uid="uid://cm3ehinvvj52i" path="res://gui/game/assets/texture/Interface sans boutons.png" id="3_n4kem"]
[ext_resource type="PackedScene" uid="uid://fnv0qhkh40mv" path="res://gui/game/announce/announce.tscn" id="4_h6540"]
[ext_resource type="Texture2D" uid="uid://dcgnamu7sb3ov" path="res://common/icons/bolt.svg" id="4_k4juk"]
[ext_resource type="LabelSettings" uid="uid://dqwayi8yjwau2" path="res://gui/ressources/title_label_settings.tres" id="4_ujg5r"]
[ext_resource type="FontFile" uid="uid://qt80w6o01q5s" path="res://gui/ressources/fonts/TitanOne-Regular.ttf" id="5_2wykm"]
[ext_resource type="Script" uid="uid://0dhj8sdpil7q" path="res://gui/tools/control_animation_player.gd" id="6_id0t5"]
[ext_resource type="Texture2D" uid="uid://bt3g5bmar0icf" path="res://common/icons/growth.svg" id="7_id0t5"]
[ext_resource type="Texture2D" uid="uid://b5cuxgisrsfgt" path="res://common/icons/player-pause.svg" id="9_2wykm"]
[ext_resource type="PackedScene" uid="uid://clicjf8ts51h8" path="res://gui/game/inventory_gui/inventory_gui.tscn" id="9_id0t5"]
[sub_resource type="Gradient" id="Gradient_id0t5"]
interpolation_mode = 1
offsets = PackedFloat32Array(0, 0.115169, 0.41573, 0.620786, 0.924157)
colors = PackedColorArray(1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1)
[sub_resource type="GradientTexture2D" id="GradientTexture2D_ykapk"]
gradient = SubResource("Gradient_id0t5")
fill_to = Vector2(1, 1)
repeat = 1
[sub_resource type="Animation" id="Animation_l73to"]
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath(".:modulate")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Color(0.950568, 0, 0.346412, 1)]
}
[sub_resource type="Animation" id="Animation_p6blc"]
resource_name = "default"
loop_mode = 1
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath(".:modulate")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 0.5, 1.03333),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 0,
"values": [Color(0.950568, 0, 0.346412, 1), Color(0.999996, 0.39403, 0.49625, 1), Color(0.950568, 0, 0.346412, 1)]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_l3q4a"]
_data = {
&"RESET": SubResource("Animation_l73to"),
&"default": SubResource("Animation_p6blc")
}
[sub_resource type="Gradient" id="Gradient_dr1y2"]
interpolation_mode = 1
offsets = PackedFloat32Array(0, 0.697674)
colors = PackedColorArray(1, 1, 1, 1, 1, 1, 1, 0)
[sub_resource type="GradientTexture2D" id="GradientTexture2D_h6540"]
gradient = SubResource("Gradient_dr1y2")
width = 50
height = 50
fill = 1
fill_from = Vector2(0.504274, 0.5)
[sub_resource type="Gradient" id="Gradient_2wykm"]
offsets = PackedFloat32Array(0, 0.279476, 1)
colors = PackedColorArray(1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1)
@ -181,34 +123,10 @@ _data = {
[sub_resource type="Animation" id="Animation_mbdxg"]
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("NoEnergyLeft:position")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector2(0, -100)]
}
[sub_resource type="Animation" id="Animation_w16yr"]
resource_name = "no_energy_left_appear"
length = 0.5
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("NoEnergyLeft:position")
tracks/0/interp = 2
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0.0666667, 0.5),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [Vector2(0, -100), Vector2(0, 0)]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_p0xoq"]
_data = {
@ -216,58 +134,23 @@ _data = {
&"no_energy_left_appear": SubResource("Animation_w16yr")
}
[node name="GameGui" type="Control"]
[node name="GameGui" type="CanvasLayer"]
script = ExtResource("1_udau0")
[node name="ScoreParticles" type="Control" parent="."]
unique_name_in_owner = true
layout_mode = 3
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
size_flags_horizontal = 3
size_flags_vertical = 3
mouse_filter = 1
script = ExtResource("1_udau0")
[node name="NoEnergyLeft" type="VBoxContainer" parent="."]
unique_name_in_owner = true
visible = false
modulate = Color(0.950568, 0, 0.346412, 1)
layout_mode = 1
anchors_preset = 10
anchor_right = 1.0
offset_top = -100.0
offset_bottom = 2.0
grow_horizontal = 2
theme = ExtResource("2_nq5i2")
theme_override_constants/separation = 12
[node name="TextureRect" type="TextureRect" parent="NoEnergyLeft"]
custom_minimum_size = Vector2(0, 40)
layout_mode = 2
texture = SubResource("GradientTexture2D_ykapk")
expand_mode = 1
stretch_mode = 1
[node name="Label" type="Label" parent="NoEnergyLeft"]
layout_mode = 2
theme = ExtResource("2_nq5i2")
text = "No energy left"
label_settings = ExtResource("4_ujg5r")
horizontal_alignment = 1
vertical_alignment = 1
[node name="BlinkAnimation" type="AnimationPlayer" parent="NoEnergyLeft"]
libraries = {
&"": SubResource("AnimationLibrary_l3q4a")
}
autoplay = "default"
mouse_filter = 2
[node name="Announce" parent="." instance=ExtResource("4_h6540")]
unique_name_in_owner = true
layout_mode = 1
[node name="MarginContainer" type="MarginContainer" parent="."]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
@ -276,75 +159,86 @@ grow_vertical = 2
mouse_filter = 2
theme = ExtResource("2_nq5i2")
[node name="PlayerInfo" type="Control" parent="MarginContainer"]
custom_minimum_size = Vector2(337, 160)
[node name="EnergyInfo" type="HBoxContainer" parent="MarginContainer"]
unique_name_in_owner = true
layout_mode = 2
size_flags_vertical = 0
theme_override_constants/separation = 0
metadata/_edit_use_anchors_ = true
[node name="EnergyAnimationPlayer" type="Node" parent="MarginContainer/EnergyInfo"]
unique_name_in_owner = true
script = ExtResource("6_id0t5")
metadata/_custom_type_script = "uid://0dhj8sdpil7q"
[node name="MarginContainer" type="MarginContainer" parent="MarginContainer/EnergyInfo"]
layout_mode = 2
size_flags_horizontal = 0
size_flags_vertical = 0
theme_override_constants/margin_left = 0
theme_override_constants/margin_top = -25
theme_override_constants/margin_right = 0
theme_override_constants/margin_bottom = -15
[node name="Background" type="TextureRect" parent="MarginContainer/PlayerInfo"]
[node name="EnergyCount" type="RichTextLabel" parent="MarginContainer/EnergyInfo/MarginContainer"]
unique_name_in_owner = true
layout_mode = 2
theme = ExtResource("2_nq5i2")
theme_override_fonts/normal_font = ExtResource("5_2wykm")
theme_override_fonts/bold_font = ExtResource("5_2wykm")
theme_override_fonts/bold_italics_font = ExtResource("5_2wykm")
theme_override_fonts/italics_font = ExtResource("5_2wykm")
theme_override_font_sizes/normal_font_size = 30
theme_override_font_sizes/bold_font_size = 100
bbcode_enabled = true
text = "[b]X[/b] / X"
fit_content = true
autowrap_mode = 0
horizontal_alignment = 1
vertical_alignment = 1
[node name="Icon" type="TextureRect" parent="MarginContainer/EnergyInfo"]
custom_minimum_size = Vector2(50, 50)
layout_mode = 2
size_flags_horizontal = 4
size_flags_vertical = 8
texture = ExtResource("4_k4juk")
expand_mode = 4
stretch_mode = 5
[node name="VBoxContainer" type="VBoxContainer" parent="MarginContainer"]
layout_mode = 2
size_flags_horizontal = 4
[node name="DayCount" type="Label" parent="MarginContainer/VBoxContainer"]
unique_name_in_owner = true
layout_mode = 2
size_flags_horizontal = 4
size_flags_vertical = 0
text = "Day 0"
label_settings = ExtResource("4_ujg5r")
horizontal_alignment = 1
vertical_alignment = 1
[node name="QuotaProgressBar" type="ProgressBar" parent="MarginContainer/VBoxContainer"]
unique_name_in_owner = true
custom_minimum_size = Vector2(400, 50)
layout_mode = 2
theme = ExtResource("2_nq5i2")
rounded = true
show_percentage = false
[node name="HBoxContainer" type="HBoxContainer" parent="MarginContainer/VBoxContainer/QuotaProgressBar"]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("3_n4kem")
expand_mode = 2
stretch_mode = 5
[node name="EnergyInfo" type="HBoxContainer" parent="MarginContainer/PlayerInfo"]
unique_name_in_owner = true
layout_mode = 1
anchors_preset = -1
anchor_left = 0.27299702
anchor_top = 0.453125
anchor_right = 0.27299702
anchor_bottom = 0.496875
offset_left = -44.0
offset_top = -12.5
offset_right = 44.0
offset_bottom = 12.5
grow_horizontal = 2
grow_vertical = 2
theme_override_constants/separation = 0
metadata/_edit_use_anchors_ = true
[node name="Icon" type="TextureRect" parent="MarginContainer/PlayerInfo/EnergyInfo"]
custom_minimum_size = Vector2(36.64, 0)
layout_mode = 2
texture = ExtResource("4_k4juk")
expand_mode = 2
stretch_mode = 5
[node name="EnergyCount" type="Label" parent="MarginContainer/PlayerInfo/EnergyInfo"]
unique_name_in_owner = true
layout_mode = 2
theme = ExtResource("2_nq5i2")
text = "X/X"
label_settings = ExtResource("4_ujg5r")
horizontal_alignment = 1
vertical_alignment = 1
[node name="QuotaInfo" type="CenterContainer" parent="MarginContainer/PlayerInfo"]
layout_mode = 0
offset_left = 176.0
offset_top = 83.0
offset_right = 247.0
offset_bottom = 133.0
[node name="QuotaProgressBar" type="TextureProgressBar" parent="MarginContainer/PlayerInfo/QuotaInfo"]
unique_name_in_owner = true
modulate = Color(0.1801, 0.349497, 0.456794, 1)
layout_mode = 2
fill_mode = 4
texture_progress = SubResource("GradientTexture2D_h6540")
[node name="HBoxContainer" type="HBoxContainer" parent="MarginContainer/PlayerInfo/QuotaInfo"]
layout_mode = 2
theme_override_constants/separation = 2
alignment = 1
[node name="QuotaProgressText" type="Label" parent="MarginContainer/PlayerInfo/QuotaInfo/HBoxContainer"]
[node name="QuotaProgressText" type="Label" parent="MarginContainer/VBoxContainer/QuotaProgressBar/HBoxContainer"]
unique_name_in_owner = true
layout_mode = 2
text = "X"
@ -352,7 +246,7 @@ label_settings = ExtResource("4_ujg5r")
horizontal_alignment = 1
vertical_alignment = 1
[node name="TextureRect" type="TextureRect" parent="MarginContainer/PlayerInfo/QuotaInfo/HBoxContainer"]
[node name="TextureRect" type="TextureRect" parent="MarginContainer/VBoxContainer/QuotaProgressBar/HBoxContainer"]
custom_minimum_size = Vector2(30, 30)
layout_mode = 2
texture = ExtResource("7_id0t5")
@ -365,15 +259,6 @@ size_flags_horizontal = 8
size_flags_vertical = 0
alignment = 1
[node name="DayCount" type="Label" parent="MarginContainer/TopRightContent"]
unique_name_in_owner = true
layout_mode = 2
size_flags_horizontal = 8
size_flags_vertical = 0
text = "Day 0"
label_settings = ExtResource("4_ujg5r")
vertical_alignment = 1
[node name="Pause" type="Button" parent="MarginContainer/TopRightContent"]
layout_mode = 2
size_flags_horizontal = 8
@ -390,7 +275,6 @@ size_flags_vertical = 8
[node name="PassDayFade" type="ColorRect" parent="."]
physics_interpolation_mode = 0
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
@ -401,7 +285,6 @@ color = Color(0.0627451, 0.0588235, 0.168627, 0)
[node name="Effect" type="TextureRect" parent="."]
modulate = Color(1, 1, 1, 0)
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0

View File

@ -118,14 +118,14 @@ alignment = 1
[node name="Label" type="Label" parent="RewardChoiceContainer/Choice/VSplitContainer"]
layout_mode = 2
theme = SubResource("Theme_7fpy7")
text = "Choose a reward"
text = "CHOOSE_A_REWARD"
label_settings = ExtResource("4_trw0e")
horizontal_alignment = 1
[node name="Label2" type="Label" parent="RewardChoiceContainer/Choice/VSplitContainer"]
layout_mode = 2
theme = ExtResource("3_x2kx4")
text = "Discover new plants or evolve discovered ones"
text = "REWARD_SCREEN_TEXT"
horizontal_alignment = 1
[node name="ChoicesContainer" type="HBoxContainer" parent="RewardChoiceContainer/Choice/VSplitContainer"]

View File

@ -1,32 +1,38 @@
extends Control
extends CanvasLayer
class_name GameGui
const SCORE_ICON : Texture = preload("res://common/icons/growth.svg")
@export var quota_reward : QuotaReward
func _ready():
GameInfo.game_data.current_planet_data.updated.connect(_on_planet_updated)
GameInfo.game_data.current_planet_data.plant_gaining_score.connect(_on_plant_gaining_score)
GameInfo.game_data.current_planet_data.new_quota_started.connect(_on_planet_new_quota_started)
GameInfo.game_data.player_data.updated.connect(_on_player_updated)
GameInfo.game_data.player_data.inventory.updated.connect(_on_inventory_updated)
planet_update(GameInfo.game_data.current_planet_data)
player_update(GameInfo.game_data.player_data)
planet_update(GameInfo.game_data.current_planet_data, false)
player_update(GameInfo.game_data.player_data, false)
inventory_update(GameInfo.game_data.player_data.inventory)
if not GameInfo.game_data.current_planet_data.is_quota_announced:
await quota_reward.reward_chosen
announce_quota(GameInfo.game_data.current_planet_data)
GameInfo.game_data.current_planet_data.is_quota_announced = true
%EnergyInfo.update_minimum_size()
func _on_player_updated(player_data : PlayerData):
player_update(player_data)
func player_update(player_data : PlayerData):
%EnergyCount.text = "%d/%d" % [player_data.energy, player_data.max_energy]
%EnergyInfo.modulate = Color.WHITE if player_data.energy > 0 else Color.RED
func player_update(player_data : PlayerData, with_animation = true):
var energy_count_text = "[b]%d[/b] / %d" % [player_data.energy, player_data.max_energy]
update_no_energy_left_info(player_data.energy)
if energy_count_text != %EnergyCount.text and with_animation:
%EnergyAnimationPlayer.bounce()
%EnergyCount.text = energy_count_text
%EnergyInfo.modulate = Color.WHITE if player_data.energy > 0 else Color.RED
func _on_inventory_updated(inventory : Inventory):
inventory_update(inventory)
@ -37,26 +43,67 @@ func inventory_update(inventory : Inventory):
func _on_planet_updated(planet_data : PlanetData):
planet_update(planet_data)
func planet_update(planet_data : PlanetData):
func planet_update(planet_data : PlanetData, with_animation = true):
if planet_data:
%DayCount.text = tr("%d_DAY_LEFT") % (planet_data.quota_days)
var quota_progression_percent : float = (float(planet_data.garden_score) / float(planet_data.get_quota_score())) * 100
%QuotaProgressText.text = "%d/%d" % [planet_data.garden_score, planet_data.get_quota_score()]
get_tree().create_tween().tween_property(
%QuotaProgressBar,
"value",
quota_progression_percent,
0.5,
if with_animation:
get_tree().create_tween().tween_property(
%QuotaProgressBar,
"value",
quota_progression_percent,
0.5,
)
else: %QuotaProgressBar.value = quota_progression_percent
func _on_plant_gaining_score(plant: Plant, amount : int):
for i in range(amount):
var camera = get_viewport().get_camera_2d()
var screen_size = get_viewport().get_visible_rect().size
spawn_score_particle(
plant.global_position - camera.global_position + screen_size / 2,
%QuotaProgressBar.global_position + %QuotaProgressBar.size / 2,
0.8
)
await get_tree().create_timer(0.3).timeout
func spawn_score_particle(
from_position,
to_position,
duration
):
var sprite_particle = Sprite2D.new()
sprite_particle.texture = SCORE_ICON
%ScoreParticles.add_child(sprite_particle)
sprite_particle.position = from_position
var tween = get_tree().create_tween()
tween.set_trans(Tween.TransitionType.TRANS_SPRING)
tween.tween_property(
sprite_particle,
"position",
to_position,
duration
)
await tween.finished
sprite_particle.queue_free()
func _on_player_action_tried_without_energy():
$AnimationPlayer.play("no_energy_left")
func _on_pause_pressed():
Pause.pause = true
func _on_player_upgraded():
$EffectAnimation.play("upgrade")
@ -66,14 +113,6 @@ func _on_planet_pass_day_started(planet):
await $PassDayAnimation.animation_finished
$PassDayAnimation.speed_scale = 1
func update_no_energy_left_info(energy):
if energy == 0 and not %NoEnergyLeft.visible:
%NoEnergyLeft.visible = true
$NoEnergyLeftAnimation.play("no_energy_left_appear")
elif energy != 0 and %NoEnergyLeft.visible:
%NoEnergyLeft.visible = false
func _on_planet_new_quota_started(planet_data : PlanetData):
planet_update(planet_data)
await quota_reward.reward_chosen
@ -91,6 +130,6 @@ func _on_planet_pass_day_ended(planet:Planet):
if planet.data.quota_days == 1:
%Announce.announce(
tr("LAST_DAY_FOR_REACHING_QUOTA"),
str(roundi(planet.data.get_quota_score() - planet.garden.get_score())) + " garden score left",
tr("%d_GARDEN_SCORE_LEFT") % [planet.data.get_quota_score() - planet.garden.get_score()],
Announce.RED_COLOR
)

View File

@ -8,7 +8,7 @@ func _ready():
func win(planet : Planet):
visible = true
get_tree().paused = true
%WinTitle.text = tr("SCORE_%d") % str(roundi(planet.garden.get_score()))
%WinTitle.text = tr("SCORE_%d") % roundi(planet.garden.get_score())
func _on_restart_pressed():
GameInfo.game_data.reset_all()

View File

@ -63,13 +63,13 @@ horizontal_alignment = 1
[node name="ThanksTitle" type="Label" parent="Tutorial/VBoxContainer"]
layout_mode = 2
text = "Thanks for playing"
text = "THANKS_FOR_PLAYING"
label_settings = ExtResource("3_0b3c6")
horizontal_alignment = 1
[node name="ThanksText" type="Label" parent="Tutorial/VBoxContainer"]
layout_mode = 2
text = "We need your feedback! Give us your thoughts on the game on our Discord or in the comments section of the Itch page."
text = "WIN_SCREEN_TEXT"
horizontal_alignment = 1
[node name="HBoxContainer2" type="HBoxContainer" parent="Tutorial/VBoxContainer"]
@ -80,7 +80,7 @@ alignment = 1
layout_mode = 2
theme = ExtResource("1_cl67j")
theme_override_font_sizes/font_size = 24
text = "Join our Discord"
text = "JOIN_OUR_DISCORD"
uri = "https://discord.gg/VTFKvEvgfz"
[node name="HBoxContainer" type="HBoxContainer" parent="Tutorial/VBoxContainer"]
@ -89,12 +89,12 @@ alignment = 1
[node name="Restart" type="Button" parent="Tutorial/VBoxContainer/HBoxContainer"]
layout_mode = 2
text = "Restart"
text = "RESTART"
icon = ExtResource("4_8p3aj")
[node name="Quit" type="Button" parent="Tutorial/VBoxContainer/HBoxContainer"]
layout_mode = 2
text = "Quit"
text = "QUIT"
icon = ExtResource("5_j3wid")
[connection signal="pressed" from="Tutorial/VBoxContainer/HBoxContainer/Restart" to="." method="_on_restart_pressed"]

View File

@ -7,4 +7,6 @@ func _ready():
func _on_start_pressed():
GameInfo.game_data.current_planet_data = PlanetData.new()
var preferred_language = OS.get_locale_language()
TranslationServer.set_locale(preferred_language)
get_tree().change_scene_to_file(start_scene_path)

View File

@ -30,10 +30,10 @@ process_mode = 3
script = ExtResource("1_1pe2k")
default_cursor = ExtResource("2_q4bvb")
[node name="CanvasLayer" type="CanvasLayer" parent="."]
[node name="InspectorCanvasLayer" type="CanvasLayer" parent="."]
layer = 128
[node name="Inspector" type="Control" parent="CanvasLayer"]
[node name="Inspector" type="Control" parent="InspectorCanvasLayer"]
unique_name_in_owner = true
layout_mode = 3
anchors_preset = 0
@ -41,7 +41,7 @@ offset_right = 40.0
offset_bottom = 40.0
mouse_filter = 2
[node name="Container" type="VBoxContainer" parent="CanvasLayer/Inspector"]
[node name="Container" type="VBoxContainer" parent="InspectorCanvasLayer/Inspector"]
layout_mode = 0
offset_left = 28.0
offset_right = 134.0
@ -50,25 +50,25 @@ size_flags_horizontal = 0
size_flags_vertical = 0
mouse_filter = 2
[node name="Action" type="HBoxContainer" parent="CanvasLayer/Inspector/Container"]
[node name="Action" type="HBoxContainer" parent="InspectorCanvasLayer/Inspector/Container"]
unique_name_in_owner = true
custom_minimum_size = Vector2(0, 20)
layout_mode = 2
[node name="MouseImage" type="TextureRect" parent="CanvasLayer/Inspector/Container/Action"]
[node name="MouseImage" type="TextureRect" parent="InspectorCanvasLayer/Inspector/Container/Action"]
layout_mode = 2
texture = ExtResource("3_pshoq")
expand_mode = 2
stretch_mode = 5
[node name="ActionEnergyImage" type="TextureRect" parent="CanvasLayer/Inspector/Container/Action"]
[node name="ActionEnergyImage" type="TextureRect" parent="InspectorCanvasLayer/Inspector/Container/Action"]
unique_name_in_owner = true
layout_mode = 2
texture = ExtResource("4_b4uwv")
expand_mode = 2
stretch_mode = 5
[node name="ActionText" type="RichTextLabel" parent="CanvasLayer/Inspector/Container/Action"]
[node name="ActionText" type="RichTextLabel" parent="InspectorCanvasLayer/Inspector/Container/Action"]
unique_name_in_owner = true
layout_mode = 2
bbcode_enabled = true
@ -77,17 +77,17 @@ fit_content = true
scroll_active = false
autowrap_mode = 0
[node name="ActionZone" type="Sprite2D" parent="CanvasLayer/Inspector"]
[node name="ActionZone" type="Sprite2D" parent="InspectorCanvasLayer/Inspector"]
unique_name_in_owner = true
z_index = 4096
script = ExtResource("5_b4uwv")
opacity = 0.4
metadata/_custom_type_script = "uid://c60a1bjcuj4hd"
[node name="CardsCanvasLayer" type="CanvasLayer" parent="."]
[node name="CardCanvasLayer" type="CanvasLayer" parent="."]
layer = 2
[node name="CardPosition" type="Control" parent="CardsCanvasLayer"]
[node name="CardPosition" type="Control" parent="CardCanvasLayer"]
unique_name_in_owner = true
layout_mode = 3
anchors_preset = 8
@ -99,7 +99,7 @@ grow_horizontal = 2
grow_vertical = 2
mouse_filter = 2
[node name="MarginContainer" type="MarginContainer" parent="CardsCanvasLayer/CardPosition"]
[node name="MarginContainer" type="MarginContainer" parent="CardCanvasLayer/CardPosition"]
layout_mode = 1
anchors_preset = 7
anchor_left = 0.5
@ -117,7 +117,7 @@ theme_override_constants/margin_top = 0
theme_override_constants/margin_right = 0
theme_override_constants/margin_bottom = 0
[node name="CardVisualiser" parent="CardsCanvasLayer/CardPosition/MarginContainer" instance=ExtResource("6_7j4mj")]
[node name="CardVisualiser" parent="CardCanvasLayer/CardPosition/MarginContainer" instance=ExtResource("6_7j4mj")]
unique_name_in_owner = true
modulate = Color(1, 1, 1, 0.5003133)
material = SubResource("ShaderMaterial_6eft6")

View File

@ -133,7 +133,7 @@ func update_inspector():
%ActionEnergyImage.visible = current_inspect.interaction_cost(player) != 0
elif current_selected_item and current_selected_item.use_text() != "":
%Action.visible = true
%ActionText.text = current_selected_item.use_text() + (" (no energy left)" if not have_energy_to_use_item else "")
%ActionText.text = current_selected_item.use_text() + (tr("NO_ENERGY_LEFT") if not have_energy_to_use_item else "")
if can_use_item:
%Action.modulate = DEFAULT_ACTION_COLOR if current_selected_item.energy_usage == 0 else ENERGY_ACTION_COLOR
else :

View File

@ -1,4 +1,4 @@
[gd_resource type="Theme" load_steps=11 format=3 uid="uid://bgcmd213j6gk1"]
[gd_resource type="Theme" load_steps=13 format=3 uid="uid://bgcmd213j6gk1"]
[ext_resource type="FontFile" uid="uid://qt80w6o01q5s" path="res://gui/ressources/fonts/TitanOne-Regular.ttf" id="1_g7s0b"]
[ext_resource type="FontFile" uid="uid://c7k6ssq6ocwdk" path="res://gui/ressources/fonts/Ubuntu/Ubuntu-M.ttf" id="2_ab4w8"]
@ -45,6 +45,20 @@ corner_radius_bottom_left = 5
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_g7s0b"]
bg_color = Color(0.0627451, 0.05882353, 0.16862746, 1)
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_ab4w8"]
bg_color = Color(0.03, 0.03, 0.03, 0.42745098)
corner_radius_top_left = 5
corner_radius_top_right = 5
corner_radius_bottom_right = 5
corner_radius_bottom_left = 5
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_36amo"]
bg_color = Color(1, 0.6509804, 0.09019608, 1)
corner_radius_top_left = 5
corner_radius_top_right = 5
corner_radius_bottom_right = 5
corner_radius_bottom_left = 5
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_hv6r3"]
[resource]
@ -62,6 +76,8 @@ MarginContainer/constants/margin_left = 15
MarginContainer/constants/margin_right = 15
MarginContainer/constants/margin_top = 15
Panel/styles/panel = SubResource("StyleBoxFlat_g7s0b")
ProgressBar/styles/background = SubResource("StyleBoxFlat_ab4w8")
ProgressBar/styles/fill = SubResource("StyleBoxFlat_36amo")
RichTextLabel/font_sizes/bold_font_size = 12
RichTextLabel/font_sizes/bold_italics_font_size = 12
RichTextLabel/font_sizes/italics_font_size = 12

View File

@ -0,0 +1,63 @@
@tool
extends Node
class_name ControlAnimationPlayer
@onready var target : Control = get_parent()
@export_tool_button("Test Shake", "Callable") var shake_action = shake
@export_tool_button("Test Bounce", "Callable") var bounce_action = bounce
func bounce(
duration : float = 0.4,
amount : float = 10,
direction : Vector2 = Vector2.UP,
transition_type: Tween.TransitionType = Tween.TransitionType.TRANS_BOUNCE,
):
await add_tween(
"position",
target.position + direction * amount,
duration/2,
transition_type
).finished
await add_tween(
"position",
target.position - direction * amount,
duration/2,
transition_type
).finished
func shake(
duration : float = 0.3,
amount : float = 10,
transition_type: Tween.TransitionType = Tween.TransitionType.TRANS_LINEAR,
):
await add_tween(
"position",
target.position + Vector2.RIGHT * amount/2,
duration/3,
transition_type
).finished
await add_tween(
"position",
target.position + Vector2.LEFT * amount,
duration/3,
transition_type
).finished
await add_tween(
"position",
target.position + Vector2.RIGHT * amount/2,
duration/3,
transition_type
).finished
func add_tween(
property : String,
value : Variant,
seconds: float = 1.,
transition_type: Tween.TransitionType = Tween.TransitionType.TRANS_LINEAR
) -> Tween:
var tween : Tween = get_tree().create_tween()
tween.set_trans(transition_type)
tween.tween_property(target, property, value, seconds)
return tween

View File

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

View File

@ -80,7 +80,7 @@ size_flags_horizontal = 4
size_flags_vertical = 4
theme = ExtResource("4_gd4vy")
theme_override_font_sizes/font_size = 33
text = "Start"
text = "START"
icon = ExtResource("7_qwhpj")
[node name="Credits" type="VBoxContainer" parent="CanvasLayer/MarginContainer/GridContainer"]
@ -92,7 +92,7 @@ size_flags_vertical = 4
layout_mode = 2
size_flags_horizontal = 3
theme = ExtResource("4_gd4vy")
text = "Art"
text = "ART"
label_settings = ExtResource("8_bf3um")
horizontal_alignment = 1
@ -109,7 +109,7 @@ horizontal_alignment = 1
layout_mode = 2
size_flags_horizontal = 3
theme = ExtResource("4_gd4vy")
text = "Development / Game Design"
text = "DEV_AND_GAME_DESIGN"
label_settings = ExtResource("8_bf3um")
horizontal_alignment = 1
@ -125,7 +125,7 @@ horizontal_alignment = 1
layout_mode = 2
size_flags_horizontal = 3
theme = ExtResource("4_gd4vy")
text = "Music"
text = "MUSIC"
label_settings = ExtResource("8_bf3um")
horizontal_alignment = 1

View File

@ -25,7 +25,7 @@ alignment = 1
[node name="Label" type="Label" parent="LanguageChoose/CenterContainer"]
layout_mode = 2
text = "Choose a language"
text = "CHOOSE_A_LANGUAGE"
label_settings = ExtResource("3_mi20s")
horizontal_alignment = 1
@ -36,6 +36,7 @@ theme = ExtResource("1_u726n")
alignment = 1
[node name="Story" type="CanvasLayer" parent="."]
visible = false
script = ExtResource("5_tg2p4")
[node name="CenterContainer2" type="CenterContainer" parent="Story"]

View File

@ -46,8 +46,14 @@ func generate_contamination_terrain_sprite() -> Polygon2D:
func get_score():
var score = 0
for p in plants:
score += p.calculate_plant_score()
planet_data.score_by_plant.resize(len(plants))
for i in range(len(plants)):
var plant_score = plants[i].calculate_plant_score()
score += plant_score
var old_score = 0 if planet_data.score_by_plant[i] == null else planet_data.score_by_plant[i]
if old_score < plant_score:
planet_data.plant_has_gained_score(plants[i], plant_score - old_score)
planet_data.score_by_plant[i] = plant_score
return score
func plant(
@ -62,7 +68,6 @@ func plant(
plants.append(new_plant)
new_plant.harvested.connect(_on_plant_harvested)
new_plant.state_changed.connect(_on_plant_state_changed)
update_garden_score()
return new_plant
func _on_plant_state_changed(_p: Plant):

View File

@ -116,6 +116,7 @@ func plant(
if garden.is_in_garden(plant_position):
var new_plant = garden.plant(type, plant_mutations)
add_entity(new_plant, plant_position)
garden.update_garden_score()
return true
return false
@ -166,6 +167,7 @@ func reach_quota():
data.quota += 1
quota_reward.trigger_reward()
await quota_reward.reward_chosen
garden.update_garden_score()
if data.garden_score >= data.get_quota_score():
reach_quota()
data.quota_days = data.get_quota_duration()

View File

@ -2,6 +2,7 @@ extends Resource
class_name PlanetData
signal new_quota_started(planet_data : PlanetData)
signal plant_gaining_score(p : Plant, amount : int)
signal contamination_updated(decontamination_surface : float)
signal updated(planet_data : PlanetData)
@ -27,6 +28,7 @@ const DEFAULT_GARDEN_SIZE = Vector2(1500,1500)
quota_days = v
updated.emit(self)
@export var entities_saved_data : Array[EntityData] = []
@export var score_by_plant : Array[int] = []
@export var generated_chunk_entities : Array[Vector2i]
@export var tutorial_step : int = 0
@ -41,7 +43,7 @@ func _init(_base_size : Vector2 = DEFAULT_GARDEN_SIZE):
)
contamination_updated.emit(get_decontamination_surface())
#region ------------------ Contamination ------------------
func impact_contamination(position : Vector2, impact_radius : float, to_value : float = 1.):
garden_contamination.draw_circle(
position,
@ -66,6 +68,8 @@ func get_decontamination_coverage() -> float:
func get_decontamination_surface() -> float:
return garden_contamination.get_value_surface()
#endregion
#region ------------------ Quotas ------------------
func get_quota_score(q : int = quota) -> int:
var first_quotas = [
@ -85,4 +89,11 @@ func get_quota_duration(_q = quota) -> int:
return 7
#endregion
#region ------------------ Score ------------------
func plant_has_gained_score(plant : Plant, amount : int):
plant_gaining_score.emit(plant, amount)
#endregion

View File

@ -23,7 +23,7 @@ func draw_random_zone(
var noise: Noise = FastNoiseLite.new()
noise.seed = random_seed
noise.noise_type = FastNoiseLite.TYPE_CELLULAR
noise.frequency = 0.3
noise.frequency = 0.1
var noise_image_size : Vector2i = Vector2i.ONE * (image_size)
var noise_image_center = noise_image_size / 2

View File

@ -39,9 +39,9 @@ scale = Vector2(0.5539248, 0.5539248)
position = Vector2(47, 497.00003)
scale = Vector2(0.5539248, 0.5539248)
script = ExtResource("3_fk6sc")
default_interact_text = "Exit the truck"
default_info_title = "Exit"
default_info_desc = "A good old ladder."
default_interact_text = "EXIT_TRUCK"
default_info_title = "EXIT"
default_info_desc = "LADDER_DESC_TEXT"
metadata/_custom_type_script = "uid://dyprcd68fjstf"
[node name="Bolt" type="Sprite2D" parent="Exit"]