update game for all

This commit is contained in:
mrtoine 2025-09-30 19:22:13 +02:00
parent 423134a840
commit 429112c335
29 changed files with 175 additions and 139 deletions

BIN
Assets/_/.DS_Store vendored

Binary file not shown.

Binary file not shown.

Binary file not shown.

View file

@ -1,9 +1,16 @@
fileFormatVersion: 2
guid: eb6e63566bb4fd54887ce087e3fab573
AssetOrigin:
serializedVersion: 1
productId: 160253
packageName: Classic RPG GUI
packageVersion: 1.1
assetPath: Assets/Classic_RPG_GUI/Parts/mid_button.png
uploadId: 445012
TextureImporter:
fileIDToRecycleName: {}
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 9
serializedVersion: 13
mipmaps:
mipMapMode: 0
enableMipMap: 0
@ -20,9 +27,12 @@ TextureImporter:
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
flipGreenChannel: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMipmapLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
@ -31,9 +41,9 @@ TextureImporter:
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: -1
aniso: -1
mipBias: -100
filterMode: 0
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 1
@ -54,42 +64,87 @@ TextureImporter:
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 1
swizzle: 50462976
cookieLightType: 1
platformSettings:
- serializedVersion: 2
- serializedVersion: 4
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 0
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: Android
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: WebGL
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
customData:
physicsShape: []
bones: []
spriteID: 057928698b25d9f42a480ad4411a2d7f
internalID: 0
vertices: []
indices:
edges: []
weights: []
spritePackingTag:
secondaryTextures: []
spriteCustomMetadata:
entries: []
nameFileIdTable: {}
mipmapLimitGroupName:
pSDRemoveMatte: 0
pSDShowRemoveMatteOption: 0
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 160253
packageName: Classic RPG GUI
packageVersion: 1.1
assetPath: Assets/Classic_RPG_GUI/Parts/mid_button.png
uploadId: 445012

Binary file not shown.

View file

@ -1,3 +0,0 @@
fileFormatVersion: 2
guid: 63dfe4b7c9af434f94db602fd4797869
timeCreated: 1753909448

View file

@ -1,65 +0,0 @@
<localization>
<!-- TITLE SCREEN -->
<game_name>Guild Tycoon</game_name>
<continue_game>Continue</continue_game>
<new_game>New Game</new_game>
<load_game>Load</load_game>
<settings_game>Settings</settings_game>
<exit_game>Quit to Desktop</exit_game>
<!-- New Game -->
<new_game_desc>7th day of spring in the year 1165,&#10;&#10;A former apprentice of the guild order, you have decided to take the plunge and create your own.&#10;&#10;After some research, you stop at the place that seems the best place to start.&#10;Will a campfire, some supplies, and your eloquence allow you to become the best guild leader ?</new_game_desc>
<create_guild>Create!</create_guild>
<!-- GENERIC BUTTONS -->
<button_accept>Accept</button_accept>
<!-- BOARD GAME -->
<!-- Info Panel -->
<level_guild>Level</level_guild>
<!-- Quest Panel -->
<quests_list>Quests</quests_list>
<launch_quest_button>Launch Quest !</launch_quest_button>
<objective_label>Objective(s)</objective_label>
<!-- Quests Board Panel -->
<quests_board>Quests board</quests_board>
<!-- Inventory Panel -->
<inventory>Inventory</inventory>
<!-- Heroes Panel -->
<heroes_list>Heroes</heroes_list>
<new_recruit_button>New recruit</new_recruit_button>
<!-- Recruit Panel -->
<recruit_list>New recruits</recruit_list>
<!-- Info Adventurer Panel -->
<available_title>Available(s)</available_title>
<in_qg>On QG</in_qg>
<in_quest>In mission</in_quest>
<!-- QUESTS -->
<quests.1.title>Rats Invasion</quests.1.title>
<quests.1.desc>A cry of alarm rang out from the fields of old Marnel, a farmer living on the outskirts of a hamlet.\n\nFor several nights, his home has been besieged by a horde of aggressive rats, larger and more intelligent than average. Their eyes glow in the darkness, and their teeth gnaw through even the thickest beams of the barn. Tired, frightened, and at a loss for solutions, Marnel begs the guild for help.</quests.1.desc>
<quests.1.objective>Clean the farmer's house of these rodent invaders!</quests.1.objective>
<quests.2.title>Hamlet Troll</quests.2.title>
<quests.2.desc>A troll has gotten lost near a small hamlet. We must stop it from causing harm!</quests.2.desc>
<quests.2.objective>Kill a Troll</quests.2.objective>
<!-- EVENTS -->
<!-- Events quests -->
<!--<quests.events.rats.infection.1>While scouting the barn, an adventurer notices claw marks forming a crude arrow on the floor, pointing deeper into the hay.</quests.events.rats.infection.1>
<quests.events.rats.infection.2>The team stumbles upon a circle of rats standing unnaturally still. As the adventurers approach, the rats silently disperse… in perfect synchrony.</quests.events.rats.infection.2>
<quests.events.rats.infection.3>One rat, larger than the rest, pauses at the edge of the forest and turns to stare at the adventurers. It bares its teeth, then vanishes into the mist.</quests.events.rats.infection.3>-->
<quests.events.rats.infection.1>En inspectant la grange, un aventurier remarque des traces de griffes formant une flèche grossière sur le sol, pointant vers un tas de foin.</quests.events.rats.infection.1>
<quests.events.rats.infection.2>Le groupe tombe sur un cercle de rats immobiles, figés dans une étrange posture. À leur approche, les rongeurs se dispersent silencieusement… dans une synchronisation parfaite.</quests.events.rats.infection.2>
<quests.events.rats.infection.3>Un rat, plus gros que les autres, sarrête à la lisière de la forêt et fixe les aventuriers. Il montre les dents, puis disparaît dans la brume.</quests.events.rats.infection.3>
<!-- Randoms -->
<event.plain.narrative.1>Les aventuriers trouvent une mystérieuse meule de fromage. Lun deux jure quelle lui parle.</event.plain.narrative.1>
<event.plain.narrative.2>En marchant, un héros trébuche... sur absolument rien. Dignité -1.</event.plain.narrative.2>
<event.plain.narrative.3>Un gobelin tente de vendre au groupe des « ongles de pied de dragon authentiques ». Un héros en achète un.</event.plain.narrative.3>
<event.plain.narrative.4>Un débat houleux éclate : la soupe, cest un plat ou une boisson ? Le groupe se divise, 2 contre 2.</event.plain.narrative.4>
<!-- ITEMS -->
<item_gold>Gold</item_gold>
<item_gold_desc>Description for golds.</item_gold_desc>
<healing_potion>Healing Potion</healing_potion>
<healing_potion_desc>Simple healing potion.</healing_potion_desc>
</localization>

View file

@ -1,3 +0,0 @@
fileFormatVersion: 2
guid: e86ba54c49144c61a1e523d437ecbf58
timeCreated: 1753909462

View file

@ -1,71 +0,0 @@
<localization>
<!-- ÉCRAN TITRE -->
<game_name>Guild Tycoon</game_name>
<continue_game>Continuer</continue_game>
<new_game>Nouvelle partie</new_game>
<load_game>Charger</load_game>
<settings_game>Paramètres</settings_game>
<exit_game>Quitter le jeu</exit_game>
<!-- Nouvelle Partie -->
<new_game_desc>7e jour du printemps de lan 1165,&#10;&#10;Ancien apprenti de lordre des guildes, vous avez décidé de vous lancer et de fonder la vôtre.&#10;&#10;Après quelques recherches, vous vous arrêtez à lendroit qui semble le plus propice.&#10;Un feu de camp, quelques provisions et votre éloquence suffiront-ils à faire de vous le meilleur chef de guilde ?</new_game_desc>
<create_guild>Fonder la guilde !</create_guild>
<!-- BOUTONS GÉNÉRIQUES -->
<button_accept>Accepter</button_accept>
<!-- JEU PRINCIPAL -->
<!-- Panneau dinfos -->
<level_guild>Niveau</level_guild>
<!-- Panneau des quêtes -->
<quests_list>Quêtes</quests_list>
<launch_quest_button>Lancer la quête !</launch_quest_button>
<objective_label>Objectif(s)</objective_label>
<recap.quest>Récap quête</recap.quest>
<!-- Panneau du tableau de quêtes -->
<quests_board>Tableau des quêtes</quests_board>
<!-- Panneau de l'inventaire -->
<inventory>Inventaire</inventory>
<!-- Panneau des héros -->
<heroes_list>Héros</heroes_list>
<new_recruit_button>Nouvelle recrue</new_recruit_button>
<!-- Panneau de recrutement -->
<recruit_list>Nouvelles recrues</recruit_list>
<!-- Panneau d'infos aventurier -->
<available_title>Disponible(s)</available_title>
<in_qg>Au QG</in_qg>
<in_quest>En mission</in_quest>
<!-- QUÊTES -->
<quests.1.title>Invasion de Rats</quests.1.title>
<quests.1.desc>Un cri dalarme retentit depuis les champs du vieux Marnel, un fermier vivant à la lisière dun hameau.\n\nDepuis plusieurs nuits, sa maison est assiégée par une horde de rats agressifs, plus gros et plus intelligents que la moyenne. Leurs yeux brillent dans lobscurité, et leurs dents rongent même les poutres les plus épaisses de la grange. Épuisé, effrayé, et à court de solutions, Marnel supplie la guilde de laider.</quests.1.desc>
<quests.1.objective>Nettoyez la maison du fermier de ces envahisseurs rongeurs !</quests.1.objective>
<quests.2.title>Troll du Hameau</quests.2.title>
<quests.2.desc>Un troll sest égaré près dun petit hameau. Il faut larrêter avant quil ne fasse des dégâts !</quests.2.desc>
<quests.2.objective>Tuez un Troll</quests.2.objective>
<!-- ÉVÉNEMENTS -->
<!-- Événements liés aux quêtes -->
<quests.events.rats.infection.1>En inspectant la grange, un aventurier remarque des traces de griffes formant une flèche grossière sur le sol, pointant vers un tas de foin.</quests.events.rats.infection.1>
<quests.events.rats.infection.2>Le groupe tombe sur un cercle de rats immobiles, figés dans une étrange posture. À leur approche, les rongeurs se dispersent silencieusement… dans une synchronisation parfaite.</quests.events.rats.infection.2>
<quests.events.rats.infection.3>Un rat, plus gros que les autres, sarrête à la lisière de la forêt et fixe les aventuriers. Il montre les dents, puis disparaît dans la brume.</quests.events.rats.infection.3>
<!-- ÉVÉNEMENTS ALÉATOIRES -->
<event.plain.narrative.1>Les aventuriers trouvent une mystérieuse meule de fromage. Lun deux jure quelle lui parle.</event.plain.narrative.1>
<event.plain.narrative.2>En marchant, un héros trébuche... sur absolument rien. Dignité -1.</event.plain.narrative.2>
<event.plain.narrative.3>Un gobelin tente de vendre au groupe des « ongles de pied de dragon authentiques ». Un héros en achète un.</event.plain.narrative.3>
<event.plain.narrative.4>Un débat houleux éclate : la soupe, cest un plat ou une boisson ? Le groupe se divise, 2 contre 2.</event.plain.narrative.4>
<event.plain.narrative.5>Un coffre est posé là, devant le groupe, à l'écart des teux indiscrets. Ils décident à l'unamité (ou presque...) de l'ouvrir. Bingo! Ils ont trouvés 100 or !!</event.plain.narrative.5>
<event.plain.narrative.6>La curiosité est un vilain défaut. Vos aventuriers l'ont appris à leur dépend... Quelque choses brillait au loin, et ils ont eu la mauvaise idée de savoir quoi. Ils ont pu fuir de justesse ce groupe de gobelin au dents aiguisées.</event.plain.narrative.6>
<event.plain.narrative.7>Rien de particulier. Ah si ! Un des aventuriers à la gastro.. foudroyante !</event.plain.narrative.7>
<event.plain.fight.1>Un groupe de bandit demandent un droit de passage au abord d'un pont. Vous êtes contraint de pay... de les abattre. Après un combat acharné, vos aventuriers l'emporte !</event.plain.fight.1>
<!-- OBJETS -->
<item_gold>Or</item_gold>
<item_gold_desc>Or.</item_gold_desc>
<healing_potion>Potion de soin</healing_potion>
<healing_potion_desc>Potion de soin simple.</healing_potion_desc>
</localization>

View file

@ -1,3 +0,0 @@
fileFormatVersion: 2
guid: 87d08d1de4a84268b15de081ce35ed32
timeCreated: 1754346388

View file

@ -1 +0,0 @@
LE CODE

View file

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: 316f69e8b296f2045901b9fbc5e1a35c
TextScriptImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View file

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 7aeca2c5510942e5a3c45ff5272bc040
timeCreated: 1759234532

View file

@ -0,0 +1,8 @@
namespace Core.Runtime.Enums
{
public enum EnumLanguage
{
English,
French,
}
}

View file

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: a1f020b6f635444c89c9d8b30acec48b
timeCreated: 1759234549

View file

@ -1,6 +1,7 @@
using System;
using System.Collections;
using System.Collections.Generic;
using Core.Runtime.Enums;
using UnityEngine;
using UnityEngine.SceneManagement;
@ -58,7 +59,7 @@ namespace Core.Runtime
set => _canPause = value;
}
public string CurrentLanguage
public EnumLanguage CurrentLanguage
{
get
{
@ -130,15 +131,25 @@ namespace Core.Runtime
m_gameFacts = new FactDictionnary();
_localTexts = new Dictionary<string, string>();
LoadFacts("GeneralSettings");
_fact = m_gameFacts;
CurrentLanguage = m_gameFacts.GetFact<string>("language");
if (!m_gameFacts.FactExists<string>("language", out _))
// Chargement ou création des paramètres
if (m_gameFacts.SaveFileExists("GeneralSettings"))
{
m_gameFacts.SetFact("language", "fr", FactPersistence.Persistent);
Debug.Log("<color=green>GeneralSettings exist</color>");
LoadFacts("GeneralSettings");
}
LocalizationSystem.Instance.LoadLanguage();
else
{
Debug.Log("<color=orange>GeneralSettings does not exist</color>");
GeneralSettings settings = new GeneralSettings
{
Language = EnumLanguage.English,
};
SetFact("GeneralSettings", settings, FactPersistence.Persistent);
SaveFacts("GeneralSettings");
}
CurrentLanguage = GetFact<GeneralSettings>("GeneralSettings").Language;
LocalizationSystem.Instance.LoadLanguage(CurrentLanguage);
}
#endregion
@ -192,13 +203,13 @@ namespace Core.Runtime
#region Privates and Protected
private bool isOnPause = false;
private SceneLoader _sceneLoader;
private FactDictionnary _fact;
private bool _canPause;
private string _profile;
private string _currentLanguage = "en";
private Dictionary<string, string> _localTexts;
bool isOnPause = false;
SceneLoader _sceneLoader;
FactDictionnary _fact;
bool _canPause;
string _profile;
EnumLanguage _currentLanguage;
Dictionary<string, string> _localTexts;
bool _launchedTime;
int _currentGameTime = 0;
GameTime _gameTime;

View file

@ -1,4 +1,6 @@
using System;
using System.IO;
using Core.Runtime.Enums;
using TMPro;
using UnityEngine;
@ -59,23 +61,18 @@ namespace Core.Runtime
SetFact<string>("language", newLanguage, FactPersistence.Persistent);
}
public void LoadLanguage()
public void LoadLanguage(EnumLanguage langReceived)
{
/*if (!FactExists<string>("language", out var language))
string lang = langReceived.ToString();
if (Enum.TryParse(lang, out EnumLanguage parsedLang))
{
SetFact("language", language, FactPersistence.Persistent);
}*/
string lang = GetLanguage();
GameManager.Instance.CurrentLanguage = lang;
string langFile = GetLanguageFile();
if (!string.IsNullOrEmpty(langFile))
{
GameManager.Instance.GetLocalTexts = XmlLoader.LoadDictionary(GetLanguageFile());
GameManager.Instance.GetLocalTexts = XmlLoader.LoadDictionary(GetLanguageFile(parsedLang));
}
else
{
Debug.LogError($"Language {lang} not found");
return;
}
}
@ -90,15 +87,16 @@ namespace Core.Runtime
return file.Split('/')[file.Split('/').Length - 1].Split('.')[0];
}
private string GetLanguageFile()
private string GetLanguageFile(EnumLanguage lang = EnumLanguage.French)
{
string filename = Application.dataPath + "/_/Database/Localization/" + GetFact<string>("language") + ".xml";
string filename = $"Localization/{lang}.xml";
string filepath = Path.Combine(Application.streamingAssetsPath, filename);
if (File.Exists(filename))
if (File.Exists(filepath))
{
return filename;
return filepath;
}
return "";
return Path.Combine(Application.streamingAssetsPath, "French.xml");
}
#endregion

View file

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: c462b8bd55c644cd93431eff1f2da5d2
timeCreated: 1759234811

View file

@ -0,0 +1,26 @@
using Core.Runtime.Enums;
namespace Core.Runtime
{
public class GeneralSettings
{
#region Attributes
EnumLanguage _language;
#endregion
public EnumLanguage Language
{
get
{
return _language;
}
set
{
_language = value;
}
}
}
}

View file

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 45ead23d22c643d8be8bf9c1e34904fc
timeCreated: 1759234823

View file

@ -1,8 +0,0 @@
fileFormatVersion: 2
guid: 5ac3d52df8c674b6d8b4508eeb23d622
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View file

@ -1,8 +0,0 @@
fileFormatVersion: 2
guid: 0ced038fa2686a645995f62841bab076
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View file

@ -1,16 +0,0 @@
{
"name": "Template.Editor",
"rootNamespace": "Template.Editor",
"references": [],
"includePlatforms": [
"Editor"
],
"excludePlatforms": [],
"allowUnsafeCode": false,
"overrideReferences": false,
"precompiledReferences": [],
"autoReferenced": true,
"defineConstraints": [],
"versionDefines": [],
"noEngineReferences": false
}

View file

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: e71f3931e213bd349b00738e7d5376d0
AssemblyDefinitionImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View file

@ -1,34 +0,0 @@
using Core.Runtime;
using UnityEngine;
namespace TestFacts.Runtime
{
public class testLocalization : BaseMonobehaviour
{
private LocalizationSystem _localization = LocalizationSystem.Instance;
[ContextMenu("Current Language ?")]
public void GetCurrentLanguage()
{
_localization.LoadLanguage();
// Affichage de la langue courante
}
[ContextMenu("Mettre en anglais")]
public void SetEnglish()
{
GameManager.Instance.CurrentLanguage = "en";
_localization.SaveLanguage(GameManager.Instance.CurrentLanguage);
SaveFacts("GeneralSettings");
}
[ContextMenu("Mettre en français")]
public void SetFrench()
{
GameManager.Instance.CurrentLanguage = "fr";
_localization.SaveLanguage(GameManager.Instance.CurrentLanguage);
SaveFacts("GeneralSettings");
}
}
}

View file

@ -1,3 +0,0 @@
fileFormatVersion: 2
guid: 55ed85535e4d41bdadca7f7c2628ddff
timeCreated: 1752476966

View file

@ -1,4 +1,3 @@
using Codice.CM.Common;
using Core.Runtime;
using TMPro;
using UnityEngine;