diff --git a/Assets/Scripts/Game/DataCollection/DungeonDataController.cs b/Assets/Scripts/Game/DataCollection/DungeonDataController.cs index 5c62488c3..5a3d3ccb3 100644 --- a/Assets/Scripts/Game/DataCollection/DungeonDataController.cs +++ b/Assets/Scripts/Game/DataCollection/DungeonDataController.cs @@ -11,6 +11,7 @@ using UnityEngine; using Overlord.ProfileAnalyst; using Topdown.Overlord.NarrativeGenerator; +using Overlord.NarrativeGenerator.Quests.QuestGrammarTerminals; namespace Game.DataCollection { diff --git a/Assets/Scripts/Game/DataCollection/PlayerDataController.cs b/Assets/Scripts/Game/DataCollection/PlayerDataController.cs index d0e013c2b..771f4251e 100644 --- a/Assets/Scripts/Game/DataCollection/PlayerDataController.cs +++ b/Assets/Scripts/Game/DataCollection/PlayerDataController.cs @@ -1,4 +1,4 @@ -using Game.Dialogues; +using Overlord.NarrativeGenerator.Quests; using Game.Events; using Game.GameManager; using Game.GameManager.Player; @@ -15,6 +15,7 @@ using System; using UnityEngine; using Topdown.Overlord.ProfileAnalyst; +using Overlord.NarrativeGenerator.Quests.QuestGrammarTerminals; namespace Game.DataCollection { diff --git a/Assets/Scripts/Game/DataCollection/RoomData.cs b/Assets/Scripts/Game/DataCollection/RoomData.cs index 56ceda1c8..c3a886c1a 100644 --- a/Assets/Scripts/Game/DataCollection/RoomData.cs +++ b/Assets/Scripts/Game/DataCollection/RoomData.cs @@ -1,4 +1,4 @@ -using Game.EnemyManager; +using Overlord.NarrativeGenerator.EnemyRelatedNarrative; using Game.LevelManager; using System; using UnityEditor; diff --git a/Assets/Scripts/Game/Dialogues/Quest/QuestDialogueInteraction.cs b/Assets/Scripts/Game/Dialogues/Quest/QuestDialogueInteraction.cs index 5b5bd30a1..975453230 100644 --- a/Assets/Scripts/Game/Dialogues/Quest/QuestDialogueInteraction.cs +++ b/Assets/Scripts/Game/Dialogues/Quest/QuestDialogueInteraction.cs @@ -8,6 +8,7 @@ using Game.Quests; using UnityEngine; using ScriptableObjects; +using Overlord.NarrativeGenerator.Quests; #if UNITY_EDITOR using MyBox; diff --git a/Assets/Scripts/Game/Events/EnterRoomEvent.cs b/Assets/Scripts/Game/Events/EnterRoomEvent.cs index 7253fc49f..a3f63f5c1 100644 --- a/Assets/Scripts/Game/Events/EnterRoomEvent.cs +++ b/Assets/Scripts/Game/Events/EnterRoomEvent.cs @@ -1,5 +1,5 @@ using Game.DataCollection; -using Game.EnemyManager; +using Overlord.NarrativeGenerator.EnemyRelatedNarrative; using Game.LevelManager; using System; using UnityEngine; diff --git a/Assets/Scripts/Game/Events/NPCDialogue/ItemTradeEventArgs.cs b/Assets/Scripts/Game/Events/NPCDialogue/ItemTradeEventArgs.cs index e5c07bab6..62124971a 100644 --- a/Assets/Scripts/Game/Events/NPCDialogue/ItemTradeEventArgs.cs +++ b/Assets/Scripts/Game/Events/NPCDialogue/ItemTradeEventArgs.cs @@ -1,4 +1,4 @@ -using Game.NarrativeGenerator.ItemRelatedNarrative; +using Overlord.NarrativeGenerator.ItemRelatedNarrative; using ScriptableObjects; namespace Game.Events diff --git a/Assets/Scripts/Game/ExperimentControllers/ArenaController.cs b/Assets/Scripts/Game/ExperimentControllers/ArenaController.cs index cfdf983b3..e6490799f 100644 --- a/Assets/Scripts/Game/ExperimentControllers/ArenaController.cs +++ b/Assets/Scripts/Game/ExperimentControllers/ArenaController.cs @@ -4,9 +4,9 @@ using Game.LevelManager; using Game.LevelManager.DungeonLoader; using Game.LevelManager.DungeonManager; -using Game.NarrativeGenerator.EnemyRelatedNarrative; -using Game.NarrativeGenerator.ItemRelatedNarrative; -using Game.NarrativeGenerator.Quests; +using Overlord.NarrativeGenerator.EnemyRelatedNarrative; +using Overlord.NarrativeGenerator.ItemRelatedNarrative; +using Overlord.NarrativeGenerator.Quests; using Game.NPCs; using MyBox; using ScriptableObjects; diff --git a/Assets/Scripts/Game/GameManager/EnemyLoader.cs b/Assets/Scripts/Game/GameManager/EnemyLoader.cs index bcd1a9b37..ae1c1b44b 100644 --- a/Assets/Scripts/Game/GameManager/EnemyLoader.cs +++ b/Assets/Scripts/Game/GameManager/EnemyLoader.cs @@ -1,7 +1,8 @@ using Game.EnemyManager; using Game.LevelManager.DungeonLoader; using Game.Maestro; -using Game.NarrativeGenerator.EnemyRelatedNarrative; +using Overlord.NarrativeGenerator.EnemyRelatedNarrative; +using Overlord.RulesGenerator.EnemyGeneration; using Game.NarrativeGenerator.Quests; using ScriptableObjects; using System; @@ -17,15 +18,12 @@ namespace Game.GameManager [Serializable] public class EnemyLoader : MonoBehaviour { - private static List _enemyListForCurrentDungeon; - [field: SerializeField] public GameObject EnemyPrefab { get; set; } [field: SerializeField] public GameObject BareHandEnemyPrefab { get; set; } [field: SerializeField] public GameObject ShooterEnemyPrefab { get; set; } [field: SerializeField] public GameObject BomberEnemyPrefab { get; set; } [field: SerializeField] public GameObject HealerEnemyPrefab { get; set; } - public static void DistributeEnemiesInDungeon(Map map, QuestLineList questLines) { var enemiesInQuestByType = new EnemiesByType(questLines.EnemyParametersForQuestLines.TotalByType); @@ -59,20 +57,13 @@ private static EnemiesByType SelectWeaponTypesForRoom(DungeonRoom dungeonRoom, E public static void LoadEnemies(List enemyList) { - _enemyListForCurrentDungeon = EnemySelector.FilterEnemies(enemyList); + EnemiesForCurrentDungeon.UpdateEnemiesForCurrentDungeon(enemyList); ApplyDelegates(); } - - public static EnemySO GetRandomEnemyOfType(WeaponTypeSo enemyType) - { - List currentEnemies = GetEnemiesFromType(enemyType); - Debug.Log("ENEMY COUNT: " + currentEnemies.Count); - return currentEnemies[RandomSingleton.GetInstance().Next(0, currentEnemies.Count)]; - } - + public GameObject InstantiateEnemyWithType(Vector3 position, Quaternion rotation, WeaponTypeSo enemyType, int questId) { - EnemySO currentEnemy = GetRandomEnemyOfType(enemyType); + EnemySO currentEnemy = EnemiesForCurrentDungeon.GetRandomEnemyOfType(enemyType); GameObject enemy; if (currentEnemy.weapon.Type == WeaponTypeEnum.BareHand) { @@ -125,18 +116,11 @@ public virtual GameObject InstantiateEnemyFromScriptableObject(Vector3 position, return enemy; } - private static List GetEnemiesFromType(WeaponTypeSo weaponType) - { - Debug.Log(weaponType.ToString()); - //TODO create these lists only once per type on dungeon load - return _enemyListForCurrentDungeon.Where(enemy => enemy.weapon == weaponType).ToList(); - } - private static void ApplyDelegates() { - if (_enemyListForCurrentDungeon != null) + if (EnemiesForCurrentDungeon.CurrentEnemies != null) { - foreach (var movement in _enemyListForCurrentDungeon.Select(x => x.movement)) + foreach (var movement in EnemiesForCurrentDungeon.CurrentEnemies.Select(x => x.movement)) { movement.movementType = GetMovementType(movement.enemyMovementIndex); } diff --git a/Assets/Scripts/Game/GameManager/Player/InventoryController.cs b/Assets/Scripts/Game/GameManager/Player/InventoryController.cs index c4f5fdc6e..d0e7df3e5 100644 --- a/Assets/Scripts/Game/GameManager/Player/InventoryController.cs +++ b/Assets/Scripts/Game/GameManager/Player/InventoryController.cs @@ -1,6 +1,6 @@ using Game.Events; using Game.LevelManager.DungeonManager; -using Game.NarrativeGenerator.ItemRelatedNarrative; +using Overlord.NarrativeGenerator.ItemRelatedNarrative; using Game.NPCs; using ScriptableObjects; using UnityEngine; diff --git a/Assets/Scripts/Game/Items/ReadableItemController.cs b/Assets/Scripts/Game/Items/ReadableItemController.cs index 9898f822e..1d93166dd 100644 --- a/Assets/Scripts/Game/Items/ReadableItemController.cs +++ b/Assets/Scripts/Game/Items/ReadableItemController.cs @@ -1,8 +1,10 @@ +using Fog.Dialogue; +using Overlord.NarrativeGenerator; using ScriptableObjects; using System; -using Fog.Dialogue; -using Game.GameManager; +using Topdown.Overlord.NarrativeGenerator; using UnityEngine; +using static Util.Enums; namespace Game { @@ -13,6 +15,15 @@ public class ReadableItemController : MonoBehaviour [SerializeField] private QuestDialogueInteraction _questDialogue; private ReadableItemSo itemSo; + private Language _language; + + private void Awake() + { + var questGeneratorManager = FindObjectOfType(); + if (questGeneratorManager == null) + questGeneratorManager = FindObjectOfType(); + _language = questGeneratorManager.language; + } private void OnEnable() { @@ -27,7 +38,7 @@ private void OnDisable() public void SetItemInfo(ReadableItemSo item, int questId) { _questDialogue.DialogueObj = item; - _questDialogue.DialogueLine = item.SetRandomText(GameManagerSingleton.Instance.IsInPortuguese); + _questDialogue.DialogueLine = item.SetRandomText(_language); _questDialogue.QuestId = questId; itemSprite.sprite = item.sprite; diff --git a/Assets/Scripts/Game/LevelGenerator/EvolutionaryAlgorithm/IndividualJsonList.cs b/Assets/Scripts/Game/LevelGenerator/EvolutionaryAlgorithm/IndividualJsonList.cs index af9d97631..4d5f9dde2 100644 --- a/Assets/Scripts/Game/LevelGenerator/EvolutionaryAlgorithm/IndividualJsonList.cs +++ b/Assets/Scripts/Game/LevelGenerator/EvolutionaryAlgorithm/IndividualJsonList.cs @@ -2,7 +2,7 @@ using System.Collections.Generic; using System.IO; using System.Linq; -using Game.NarrativeGenerator.Quests.QuestGrammarTerminals; +using Overlord.NarrativeGenerator.Quests.QuestGrammarTerminals; using UnityEngine; namespace Game.LevelGenerator.EvolutionaryAlgorithm diff --git a/Assets/Scripts/Game/LevelGenerator/LevelSOs.meta b/Assets/Scripts/Game/LevelGenerator/LevelSOs.meta index d8f6ef382..cbd6ea02b 100644 --- a/Assets/Scripts/Game/LevelGenerator/LevelSOs.meta +++ b/Assets/Scripts/Game/LevelGenerator/LevelSOs.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 4d56aed0eb028114d90da504d2d1770a +guid: 9665fc5f6ad50a841b7a711f86b6fa7c folderAsset: yes DefaultImporter: externalObjects: {} diff --git a/Assets/Scripts/Game/LevelManager/DungeonLoader/DungeonRoom.cs b/Assets/Scripts/Game/LevelManager/DungeonLoader/DungeonRoom.cs index 4aab94bdb..14f918a94 100644 --- a/Assets/Scripts/Game/LevelManager/DungeonLoader/DungeonRoom.cs +++ b/Assets/Scripts/Game/LevelManager/DungeonLoader/DungeonRoom.cs @@ -1,7 +1,7 @@ using System; using System.Collections.Generic; -using Game.NarrativeGenerator.EnemyRelatedNarrative; -using Game.NarrativeGenerator.ItemRelatedNarrative; +using Overlord.NarrativeGenerator.EnemyRelatedNarrative; +using Overlord.NarrativeGenerator.ItemRelatedNarrative; using Game.NPCs; using UnityEngine; using Util; diff --git a/Assets/Scripts/Game/LevelManager/DungeonLoader/ItemDispenser.cs b/Assets/Scripts/Game/LevelManager/DungeonLoader/ItemDispenser.cs index b6f0b5f64..2f460c07c 100644 --- a/Assets/Scripts/Game/LevelManager/DungeonLoader/ItemDispenser.cs +++ b/Assets/Scripts/Game/LevelManager/DungeonLoader/ItemDispenser.cs @@ -1,4 +1,4 @@ -using Game.NarrativeGenerator.ItemRelatedNarrative; +using Overlord.NarrativeGenerator.ItemRelatedNarrative; using Unity.Mathematics; using Util; diff --git a/Assets/Scripts/Game/LevelManager/DungeonLoader/Map.cs b/Assets/Scripts/Game/LevelManager/DungeonLoader/Map.cs index c37897c85..823951b3e 100644 --- a/Assets/Scripts/Game/LevelManager/DungeonLoader/Map.cs +++ b/Assets/Scripts/Game/LevelManager/DungeonLoader/Map.cs @@ -2,8 +2,8 @@ using System.Collections.Generic; using Game.ExperimentControllers; using Game.LevelGenerator.LevelSOs; -using Game.NarrativeGenerator.ItemRelatedNarrative; -using Game.NarrativeGenerator.EnemyRelatedNarrative; +using Overlord.NarrativeGenerator.ItemRelatedNarrative; +using Overlord.NarrativeGenerator.EnemyRelatedNarrative; using ScriptableObjects; using UnityEngine; using Util; diff --git a/Assets/Scripts/Game/LevelManager/DungeonManager/RoomBhv.cs b/Assets/Scripts/Game/LevelManager/DungeonManager/RoomBhv.cs index 51d88e72a..8b0df27ef 100644 --- a/Assets/Scripts/Game/LevelManager/DungeonManager/RoomBhv.cs +++ b/Assets/Scripts/Game/LevelManager/DungeonManager/RoomBhv.cs @@ -5,7 +5,7 @@ using Game.Events; using Game.GameManager; using Game.LevelManager.DungeonLoader; -using Game.NarrativeGenerator.Quests; +using Overlord.NarrativeGenerator.Quests; using Game.NPCs; using ScriptableObjects; using UnityEngine; @@ -13,6 +13,7 @@ using Game.Quests; using UnityEngine.Tilemaps; using PlatformGame.Player; +using Overlord.NarrativeGenerator.EnemyRelatedNarrative; namespace Game.LevelManager.DungeonManager { diff --git a/Assets/Scripts/Game/Maestro/EnemySelector.cs b/Assets/Scripts/Game/Maestro/EnemySelector.cs index 12b415d22..de927ae76 100644 --- a/Assets/Scripts/Game/Maestro/EnemySelector.cs +++ b/Assets/Scripts/Game/Maestro/EnemySelector.cs @@ -1,5 +1,5 @@ using System.Collections.Generic; -using Game.NarrativeGenerator.EnemyRelatedNarrative; +using Overlord.NarrativeGenerator.EnemyRelatedNarrative; using Game.LevelManager.DungeonLoader; using Game.GameManager; using ScriptableObjects; diff --git a/Assets/Scripts/Game/NPCs/DialogueGenerator/DialogueQuestCheckpoint.cs b/Assets/Scripts/Game/NPCs/DialogueGenerator/DialogueQuestCheckpoint.cs index 88f068578..0ffdd5b8f 100644 --- a/Assets/Scripts/Game/NPCs/DialogueGenerator/DialogueQuestCheckpoint.cs +++ b/Assets/Scripts/Game/NPCs/DialogueGenerator/DialogueQuestCheckpoint.cs @@ -1,7 +1,5 @@ -using System.Text; -using Game.NarrativeGenerator.Quests; -using Game.NarrativeGenerator.Quests.QuestGrammarTerminals; -using MyBox; +using Overlord.NarrativeGenerator.Quests; +using Overlord.NarrativeGenerator.Quests.QuestGrammarTerminals; using UnityEngine; namespace Game.NPCs diff --git a/Assets/Scripts/Game/NPCs/DialogueGenerator/DialogueQuestCloser.cs b/Assets/Scripts/Game/NPCs/DialogueGenerator/DialogueQuestCloser.cs index 538832cc2..bbc8b5ed6 100644 --- a/Assets/Scripts/Game/NPCs/DialogueGenerator/DialogueQuestCloser.cs +++ b/Assets/Scripts/Game/NPCs/DialogueGenerator/DialogueQuestCloser.cs @@ -1,7 +1,6 @@ using System.Text; -using Game.NarrativeGenerator.Quests; -using Game.NarrativeGenerator.Quests.QuestGrammarTerminals; -using MyBox; +using Overlord.NarrativeGenerator.Quests; +using Overlord.NarrativeGenerator.Quests.QuestGrammarTerminals; using UnityEngine; namespace Game.NPCs diff --git a/Assets/Scripts/Game/NPCs/DialogueGenerator/DialogueQuestOpener.cs b/Assets/Scripts/Game/NPCs/DialogueGenerator/DialogueQuestOpener.cs index 6a7ebd6f9..032ed6da9 100644 --- a/Assets/Scripts/Game/NPCs/DialogueGenerator/DialogueQuestOpener.cs +++ b/Assets/Scripts/Game/NPCs/DialogueGenerator/DialogueQuestOpener.cs @@ -1,7 +1,5 @@ -using System.Text; -using Game.NarrativeGenerator.Quests; -using Game.NarrativeGenerator.Quests.QuestGrammarTerminals; -using MyBox; +using Overlord.NarrativeGenerator.Quests.QuestGrammarTerminals; +using Overlord.NarrativeGenerator.Quests; using UnityEngine; namespace Game.NPCs diff --git a/Assets/Scripts/Game/NPCs/DialogueGenerator/NpcDialogueGenerator.cs b/Assets/Scripts/Game/NPCs/DialogueGenerator/NpcDialogueGenerator.cs index 0575e553f..ace1b875c 100644 --- a/Assets/Scripts/Game/NPCs/DialogueGenerator/NpcDialogueGenerator.cs +++ b/Assets/Scripts/Game/NPCs/DialogueGenerator/NpcDialogueGenerator.cs @@ -2,7 +2,8 @@ using Game.NarrativeGenerator.Quests; using Game.NarrativeGenerator.Quests.QuestGrammarTerminals; using MyBox; -using UnityEngine; +using Overlord.NarrativeGenerator.Quests; +using Overlord.NarrativeGenerator.Quests.QuestGrammarTerminals; namespace Game.NPCs { diff --git a/Assets/Scripts/Game/NPCs/DialogueGenerator/PTBR_NpcDialogueGenerator.cs b/Assets/Scripts/Game/NPCs/DialogueGenerator/PTBR_NpcDialogueGenerator.cs index 2c0c6958f..8896eda16 100644 --- a/Assets/Scripts/Game/NPCs/DialogueGenerator/PTBR_NpcDialogueGenerator.cs +++ b/Assets/Scripts/Game/NPCs/DialogueGenerator/PTBR_NpcDialogueGenerator.cs @@ -2,7 +2,7 @@ using Game.NarrativeGenerator.Quests; using Game.NarrativeGenerator.Quests.QuestGrammarTerminals; using MyBox; -using UnityEngine; +using Overlord.NarrativeGenerator.Quests.QuestGrammarTerminals; namespace Game.NPCs.PTBR { diff --git a/Assets/Scripts/Game/NPCs/DialogueGenerator/QuestCheckpoints/ExchangeQuestCheckpoint.cs b/Assets/Scripts/Game/NPCs/DialogueGenerator/QuestCheckpoints/ExchangeQuestCheckpoint.cs index 35e199486..4118134a8 100644 --- a/Assets/Scripts/Game/NPCs/DialogueGenerator/QuestCheckpoints/ExchangeQuestCheckpoint.cs +++ b/Assets/Scripts/Game/NPCs/DialogueGenerator/QuestCheckpoints/ExchangeQuestCheckpoint.cs @@ -7,7 +7,7 @@ protected override string[] lowSocialDialogues { get { - if (GameManagerSingleton.Instance.IsInPortuguese) + if (_language == Util.Enums.Language.Portuguese) return new string[] { "Não quero nada que você tenha a oferecer. O quê? {questSo.GetOwnerNpc()} te enviou? Affe, ta bom então." }; @@ -21,7 +21,7 @@ protected override string[] averageSocialDialogues { get { - if (GameManagerSingleton.Instance.IsInPortuguese) + if (_language == Util.Enums.Language.Portuguese) return new string[] { "{questSo.GetOwnerNpc()} te enviou aqui pra trocar alguns itens comigo?" }; @@ -35,7 +35,7 @@ protected override string[] highSocialDialogues { get { - if (GameManagerSingleton.Instance.IsInPortuguese) + if (_language == Util.Enums.Language.Portuguese) return new string[] { "Uuuuuh, eu lembro sim do {questSo.GetOwnerNpc()} mencionando sobre uma troca. Eu fiquei tão animado que até esqueci o que ele ofereceu. Estou feliz que você está aqui pra ajudar c:" }; diff --git a/Assets/Scripts/Game/NPCs/DialogueGenerator/QuestCheckpoints/ListenQuestCheckPoint.cs b/Assets/Scripts/Game/NPCs/DialogueGenerator/QuestCheckpoints/ListenQuestCheckPoint.cs index e7a07420c..ad8e9f605 100644 --- a/Assets/Scripts/Game/NPCs/DialogueGenerator/QuestCheckpoints/ListenQuestCheckPoint.cs +++ b/Assets/Scripts/Game/NPCs/DialogueGenerator/QuestCheckpoints/ListenQuestCheckPoint.cs @@ -8,7 +8,7 @@ protected override string[] lowSocialDialogues { get { - if (GameManagerSingleton.Instance.IsInPortuguese) + if (_language == Util.Enums.Language.Portuguese) return new string[] { "Não acredito que {questSo.GetOwnerNpc()} está mandando bobalhões que nem você virem aqui tirar a minha paz." }; @@ -22,7 +22,7 @@ protected override string[] averageSocialDialogues { get { - if (GameManagerSingleton.Instance.IsInPortuguese) + if (_language == Util.Enums.Language.Portuguese) return new string[] { "{questSo.GetOwnerNpc()} te enviou aqui pra ouvir o que eu tenho a dizer?" }; @@ -36,7 +36,7 @@ protected override string[] highSocialDialogues { get { - if (GameManagerSingleton.Instance.IsInPortuguese) + if (_language == Util.Enums.Language.Portuguese) return new string[] { "{questSo.GetOwnerNpc()} disse pra você vir aqui?! Estou tão feliz! Adoro poder conversar :)" }; diff --git a/Assets/Scripts/Game/NPCs/DialogueGenerator/QuestCheckpoints/ReportQuestCheckpoint.cs b/Assets/Scripts/Game/NPCs/DialogueGenerator/QuestCheckpoints/ReportQuestCheckpoint.cs index 2db4f7d61..d3a5f0a66 100644 --- a/Assets/Scripts/Game/NPCs/DialogueGenerator/QuestCheckpoints/ReportQuestCheckpoint.cs +++ b/Assets/Scripts/Game/NPCs/DialogueGenerator/QuestCheckpoints/ReportQuestCheckpoint.cs @@ -7,7 +7,7 @@ protected override string[] lowSocialDialogues { get { - if (GameManagerSingleton.Instance.IsInPortuguese) + if (_language == Util.Enums.Language.Portuguese) return new string[] { "Eu não ligo pro que {questSo.GetOwnerNpc()} tem a \"reportar\". Diga pra {questSo.GetOwnerNpc()} não falar mais comigo." }; @@ -21,7 +21,7 @@ protected override string[] averageSocialDialogues { get { - if (GameManagerSingleton.Instance.IsInPortuguese) + if (_language == Util.Enums.Language.Portuguese) return new string[] { "Oh? Você está com informações vindas de {questSo.GetOwnerNpc()}? ... Entendo, muito bem. Você pode dizer que a mensagem foi recebida." }; @@ -35,7 +35,7 @@ protected override string[] highSocialDialogues { get { - if (GameManagerSingleton.Instance.IsInPortuguese) + if (_language == Util.Enums.Language.Portuguese) return new string[] { "{questSo.GetOwnerNpc()} disse o queeeee? Muito obrigada por me avisar! Pode dizer um muito obrigado a {questSo.GetOwnerNpc()} também!" }; diff --git a/Assets/Scripts/Game/NPCs/DialogueGenerator/QuestClosers/ExchangeQuestCloser.cs b/Assets/Scripts/Game/NPCs/DialogueGenerator/QuestClosers/ExchangeQuestCloser.cs index 8da800f53..7b225658c 100644 --- a/Assets/Scripts/Game/NPCs/DialogueGenerator/QuestClosers/ExchangeQuestCloser.cs +++ b/Assets/Scripts/Game/NPCs/DialogueGenerator/QuestClosers/ExchangeQuestCloser.cs @@ -8,7 +8,7 @@ protected override string[] lowSocialDialogues { get { - if (GameManagerSingleton.Instance.IsInPortuguese) + if (_language == Util.Enums.Language.Portuguese) { return new string[] { "Hmph. Acho que devo te agradecer por fazer essa tarefa. Você pegou a recompensa, certo? Não espere mais favores de mim.", @@ -46,7 +46,7 @@ protected override string[] averageSocialDialogues { get { - if (GameManagerSingleton.Instance.IsInPortuguese) + if (_language == Util.Enums.Language.Portuguese) return new string[] { "Obrigado por lidar com essa troca! {questSo.GetTargetNpc()} sempre dá boas recompensas, e tenho certeza de que você mereceu.", "Agradeço por cuidar disso! {questSo.GetTargetNpc()} nem sempre é fácil de lidar, mas aposto que a recompensa valeu a pena.", @@ -73,7 +73,7 @@ protected override string[] highSocialDialogues { get { - if (GameManagerSingleton.Instance.IsInPortuguese) + if (_language == Util.Enums.Language.Portuguese) return new string[] { "Você é incrível! Obrigado por ajudar com essa troca. {questSo.GetTargetNpc()} tem as melhores recompensas, não é? Espero que você tenha conseguido algo incrível!", "Não sei como te agradecer o suficiente por isso! {questSo.GetTargetNpc()} realmente sabe fazer um bom negócio, e tenho certeza de que te deram algo que valeu seu tempo!", diff --git a/Assets/Scripts/Game/NPCs/DialogueGenerator/QuestClosers/ExploreQuestCloser.cs b/Assets/Scripts/Game/NPCs/DialogueGenerator/QuestClosers/ExploreQuestCloser.cs index b9ff5c1d0..a577cce34 100644 --- a/Assets/Scripts/Game/NPCs/DialogueGenerator/QuestClosers/ExploreQuestCloser.cs +++ b/Assets/Scripts/Game/NPCs/DialogueGenerator/QuestClosers/ExploreQuestCloser.cs @@ -7,7 +7,7 @@ protected override string[] lowSocialDialogues { get { - if (GameManagerSingleton.Instance.IsInPortuguese) + if (_language == Util.Enums.Language.Portuguese) return new string[] { "Bem, você realmente fez isso. Acho que você não é completamente inútil, afinal. Obrigado pelo relatório.", "Huh, você explorou todas aquelas áreas. Certo, acho que você serve para alguma coisa. Obrigado, acho.", @@ -39,7 +39,7 @@ protected override string[] averageSocialDialogues { get { - if (GameManagerSingleton.Instance.IsInPortuguese) + if (_language == Util.Enums.Language.Portuguese) return new string[] { "Obrigado por explorar essas áreas e trazer as informações de volta. Elas serão inestimáveis para nossos próximos passos.", "Eu realmente aprecio você ter tirado o tempo para investigar essas áreas. Suas descobertas farão uma enorme diferença.", @@ -71,7 +71,7 @@ protected override string[] highSocialDialogues { get { - if (GameManagerSingleton.Instance.IsInPortuguese) + if (_language == Util.Enums.Language.Portuguese) return new string[] { "Oh, uau! Você realmente se superou! Explorou todas essas áreas e ainda trouxe todos os detalhes? Não consigo acreditar! Você é um verdadeiro tesouro, sabia disso?", "Muito obrigado por fazer isso! Você cobriu tantas áreas, e estou absolutamente empolgado para ouvir o que descobriu. Quero dizer, quem mais poderia ter feito isso?", diff --git a/Assets/Scripts/Game/NPCs/DialogueGenerator/QuestClosers/GatherQuestCloser.cs b/Assets/Scripts/Game/NPCs/DialogueGenerator/QuestClosers/GatherQuestCloser.cs index 515dc3efa..5cf98151a 100644 --- a/Assets/Scripts/Game/NPCs/DialogueGenerator/QuestClosers/GatherQuestCloser.cs +++ b/Assets/Scripts/Game/NPCs/DialogueGenerator/QuestClosers/GatherQuestCloser.cs @@ -7,7 +7,7 @@ protected override string[] lowSocialDialogues { get { - if (GameManagerSingleton.Instance.IsInPortuguese) + if (_language == Util.Enums.Language.Portuguese) return new string[] { "Huh. Você encontrou as coisas. Não achei que você conseguiria. Obrigado, acho.", "Bem, você conseguiu reunir tudo. Vou te dar crédito por isso. Agora, me deixe em paz.", @@ -33,7 +33,7 @@ protected override string[] averageSocialDialogues { get { - if (GameManagerSingleton.Instance.IsInPortuguese) + if (_language == Util.Enums.Language.Portuguese) return new string[] { "Você conseguiu! Eu realmente aprecio você ter reunido tudo isso. Isso será de grande ajuda daqui para frente.", "Você realmente se superou! Obrigado por conseguir tudo o que pedi—isso será muito útil.", @@ -57,7 +57,7 @@ protected override string[] highSocialDialogues { get { - if (GameManagerSingleton.Instance.IsInPortuguese) + if (_language == Util.Enums.Language.Portuguese) return new string[] { "Oh, uau, você realmente encontrou todos eles! Estou tão feliz que você conseguiu localizá-los! Você não faz ideia de como as coisas vão ficar mais fáceis agora. Você é um salvador!", "Olhe para tudo isso! Não acredito que você encontrou tudo—bem, na verdade, acredito, conhecendo você! Você realmente se superou, não é? Vou começar a usar isso imediatamente!", diff --git a/Assets/Scripts/Game/NPCs/DialogueGenerator/QuestClosers/GiveQuestCloser.cs b/Assets/Scripts/Game/NPCs/DialogueGenerator/QuestClosers/GiveQuestCloser.cs index 681517e30..557df7a78 100644 --- a/Assets/Scripts/Game/NPCs/DialogueGenerator/QuestClosers/GiveQuestCloser.cs +++ b/Assets/Scripts/Game/NPCs/DialogueGenerator/QuestClosers/GiveQuestCloser.cs @@ -7,7 +7,7 @@ protected override string[] lowSocialDialogues { get { - if (GameManagerSingleton.Instance.IsInPortuguese) + if (_language == Util.Enums.Language.Portuguese) return new string[] { "Bem, você realmente conseguiu. Encontrou o item e entregou para eles. Acho que isso vale um 'obrigado.'", "Huh. Você passou por todo esse trabalho e realmente entregou o item. Tudo bem, suponho que devo agradecer.", @@ -39,7 +39,7 @@ protected override string[] averageSocialDialogues { get { - if (GameManagerSingleton.Instance.IsInPortuguese) + if (_language == Util.Enums.Language.Portuguese) return new string[] { "Obrigado por pegar aquele item e entregá-lo a eles. Não posso dizer o quanto isso vai ajudar.", "Eu realmente aprecio você ter cuidado disso por mim. Entregar esse item para eles não foi uma tarefa pequena. Você fez um ótimo trabalho!", @@ -71,7 +71,7 @@ protected override string[] highSocialDialogues { get { - if (GameManagerSingleton.Instance.IsInPortuguese) + if (_language == Util.Enums.Language.Portuguese) return new string[] { "Uau, você realmente fez isso! Você reuniu o item e o entregou, nada menos! Quero dizer, eu sabia que você tinha isso em você, mas ainda assim! Foi uma tarefa e tanto, e estou tão grato que você fez acontecer!", "Oh meu Deus, você foi além, não foi? Não só reuniu o item, mas realmente o entregou! Você está facilitando a vida de todos por aqui. Muito obrigado!", diff --git a/Assets/Scripts/Game/NPCs/DialogueGenerator/QuestClosers/GoToQuestCloser.cs b/Assets/Scripts/Game/NPCs/DialogueGenerator/QuestClosers/GoToQuestCloser.cs index 09f322443..f0e5d02b6 100644 --- a/Assets/Scripts/Game/NPCs/DialogueGenerator/QuestClosers/GoToQuestCloser.cs +++ b/Assets/Scripts/Game/NPCs/DialogueGenerator/QuestClosers/GoToQuestCloser.cs @@ -7,7 +7,7 @@ protected override string[] lowSocialDialogues { get { - if (GameManagerSingleton.Instance.IsInPortuguese) + if (_language == Util.Enums.Language.Portuguese) return new string[] { "Bem, você realmente foi até lá e voltou. Acho que devo te agradecer por isso, mas não espere que eu fique todo animado.", "Você foi até aquelas coordenadas e voltou inteiro. Tudo bem, obrigado, acho. Agora não me faça pedir de novo.", @@ -39,7 +39,7 @@ protected override string[] averageSocialDialogues { get { - if (GameManagerSingleton.Instance.IsInPortuguese) + if (_language == Util.Enums.Language.Portuguese) return new string[] { "Você realmente foi até lá e voltou com as informações? Muito bem! Fico feliz que você tenha conseguido esse relatório. Era exatamente o que eu precisava!", "Não acredito que você foi até aquelas coordenadas e voltou em segurança! Você fez um trabalho fantástico, e eu agradeço pela atualização.", @@ -71,7 +71,7 @@ protected override string[] highSocialDialogues { get { - if (GameManagerSingleton.Instance.IsInPortuguese) + if (_language == Util.Enums.Language.Portuguese) return new string[] { "Uau, você realmente foi até lá? Quero dizer, eu sabia que você estava à altura da tarefa, mas não esperava que voltasse tão rápido! Não consigo dizer o quanto essas informações são úteis. Estamos mais perto de resolver isso!", "Você fez a jornada até aquelas coordenadas e voltou com todos os detalhes? Isso é impressionante! Vou admitir, não tinha certeza se você conseguiria, mas aqui estamos—obrigado! Essas informações são exatamente o que precisávamos.", diff --git a/Assets/Scripts/Game/NPCs/DialogueGenerator/QuestClosers/KillQuestCloser.cs b/Assets/Scripts/Game/NPCs/DialogueGenerator/QuestClosers/KillQuestCloser.cs index ec0161fbe..d9a5e8b1c 100644 --- a/Assets/Scripts/Game/NPCs/DialogueGenerator/QuestClosers/KillQuestCloser.cs +++ b/Assets/Scripts/Game/NPCs/DialogueGenerator/QuestClosers/KillQuestCloser.cs @@ -7,7 +7,7 @@ protected override string[] lowSocialDialogues { get { - if (GameManagerSingleton.Instance.IsInPortuguese) + if (_language == Util.Enums.Language.Portuguese) return new string[] { "Bem, você foi e matou eles. Não achei que fosse capaz, mas aqui está você. Obrigado, acho.", "Você matou os inimigos e voltou para relatar? Certo. Eu aceito. Só não me faça pedir de novo.", @@ -39,7 +39,7 @@ protected override string[] averageSocialDialogues { get { - if (GameManagerSingleton.Instance.IsInPortuguese) + if (_language == Util.Enums.Language.Portuguese) return new string[] { "Obrigado por lidar com aqueles inimigos. Eu não tinha certeza se você voltaria, mas conseguiu. Seu relatório é exatamente o que precisávamos.", "Não acredito que você realmente os derrotou e voltou com todas as informações! Ótimo trabalho—isso vai ajudar muito.", @@ -71,7 +71,7 @@ protected override string[] highSocialDialogues { get { - if (GameManagerSingleton.Instance.IsInPortuguese) + if (_language == Util.Enums.Language.Portuguese) return new string[] { "Ah, você realmente fez isso agora! Você foi lá, lidou com aqueles inimigos e voltou com todos os detalhes. Isso é mais do que eu poderia esperar. Honestamente, você nos salvou de muitas dores de cabeça. Eu te devo uma!", "Bem, bem, bem! Você realmente foi lá e matou aqueles inimigos sem suar, e depois voltou com um relatório completo. Você realmente se superou. Você tem talento para esse tipo de coisa, não é?", diff --git a/Assets/Scripts/Game/NPCs/DialogueGenerator/QuestClosers/ListenQuestCloser.cs b/Assets/Scripts/Game/NPCs/DialogueGenerator/QuestClosers/ListenQuestCloser.cs index acbdfc41e..aa846fe29 100644 --- a/Assets/Scripts/Game/NPCs/DialogueGenerator/QuestClosers/ListenQuestCloser.cs +++ b/Assets/Scripts/Game/NPCs/DialogueGenerator/QuestClosers/ListenQuestCloser.cs @@ -7,7 +7,7 @@ protected override string[] lowSocialDialogues { get { - if (GameManagerSingleton.Instance.IsInPortuguese) + if (_language == Util.Enums.Language.Portuguese) return new string[] { "Certo, tudo bem... obrigado por ouvir {questSo.GetTargetNpc()}. Isso me economiza o trabalho, eu acho.", "Hmph. Acho que devo te agradecer por lidar com {questSo.GetTargetNpc()}. {questSo.GetTargetNpc()} realmente fala demais, não?", @@ -35,7 +35,7 @@ protected override string[] averageSocialDialogues { get { - if (GameManagerSingleton.Instance.IsInPortuguese) + if (_language == Util.Enums.Language.Portuguese) return new string[] { "Obrigado por ouvir {questSo.GetTargetNpc()}. {questSo.GetTargetNpc()} precisavam disso, e eu sei que fez a diferença.", "Significa muito que você tenha ouvido {questSo.GetTargetNpc()}. Não muitos teriam dedicado seu tempo.", @@ -61,7 +61,7 @@ protected override string[] highSocialDialogues { get { - if (GameManagerSingleton.Instance.IsInPortuguese) + if (_language == Util.Enums.Language.Portuguese) return new string[] { "Oh, muito obrigado por ouvir {questSo.GetTargetNpc()}! Eles têm as histórias mais fascinantes, não têm?", "Você ouviu {questSo.GetTargetNpc()}? Maravilhoso! Não são uma verdadeira fonte de informações?", diff --git a/Assets/Scripts/Game/NPCs/DialogueGenerator/QuestClosers/ReadQuestCloser.cs b/Assets/Scripts/Game/NPCs/DialogueGenerator/QuestClosers/ReadQuestCloser.cs index b8f17a311..2fabbcf9f 100644 --- a/Assets/Scripts/Game/NPCs/DialogueGenerator/QuestClosers/ReadQuestCloser.cs +++ b/Assets/Scripts/Game/NPCs/DialogueGenerator/QuestClosers/ReadQuestCloser.cs @@ -7,7 +7,7 @@ protected override string[] lowSocialDialogues { get { - if (GameManagerSingleton.Instance.IsInPortuguese) + if (_language == Util.Enums.Language.Portuguese) return new string[] { "Hmph, eu não achava que você realmente ia se dar ao trabalho de ler isso. Mas, tudo bem. As informações sobre aquelas ruínas amaldiçoadas? Sim, é exatamente o que precisávamos. Agora podemos seguir em frente. Eu acho... obrigado.", "Você realmente leu isso? Não foi ruim. O pergaminho sobre criaturas mágicas? Tinha algumas informações boas. Fraquezas, hábitos, esse tipo de coisa. Enfim, obrigado, eu acho.", @@ -39,7 +39,7 @@ protected override string[] averageSocialDialogues { get { - if (GameManagerSingleton.Instance.IsInPortuguese) + if (_language == Util.Enums.Language.Portuguese) return new string[] { "Você realmente leu tudo isso? Impressionante! Os detalhes do livro sobre os rituais antigos são exatamente o que eu estava procurando. Isso vai facilitar muito nosso próximo passo—obrigado pelo seu esforço!", "Ah, você realmente leu isso! O pergaminho sobre criaturas mágicas tinha uns detalhes fascinantes, não tinha? Agora sabemos mais sobre suas fraquezas. Não tenho palavras para agradecer por isso.", @@ -71,7 +71,7 @@ protected override string[] highSocialDialogues { get { - if (GameManagerSingleton.Instance.IsInPortuguese) + if (_language == Util.Enums.Language.Portuguese) return new string[] { "Ah, então você realmente leu isso! Eu estava me perguntando o que você ia encontrar aí. As informações sobre artefatos antigos são exatamente o que eu precisava—obrigado por passar por todo esse trabalho!", "Uau, você realmente foi lá e leu isso! A história do antigo reino? Coisa fascinante, né? Eu tinha a sensação de que isso ia nos dar uma luz sobre nosso próximo passo. Eu realmente agradeço!", diff --git a/Assets/Scripts/Game/NPCs/DialogueGenerator/QuestClosers/ReportQuestCloser.cs b/Assets/Scripts/Game/NPCs/DialogueGenerator/QuestClosers/ReportQuestCloser.cs index fbd29c730..e50e21560 100644 --- a/Assets/Scripts/Game/NPCs/DialogueGenerator/QuestClosers/ReportQuestCloser.cs +++ b/Assets/Scripts/Game/NPCs/DialogueGenerator/QuestClosers/ReportQuestCloser.cs @@ -7,7 +7,7 @@ protected override string[] lowSocialDialogues { get { - if (GameManagerSingleton.Instance.IsInPortuguese) + if (_language == Util.Enums.Language.Portuguese) return new string[] { "Ugh, então você realmente fez isso... Bem, acho que o outro NPC já sabe agora. Não espere que eu seja todo agradecido, mas... tudo bem, obrigado.", "Demorou, né? Pelo menos agora a informação está com {questSo.GetTargetNpc()}. Eu não achei que você fosse seguir até o fim, mas aqui estamos.", @@ -39,7 +39,7 @@ protected override string[] averageSocialDialogues { get { - if (GameManagerSingleton.Instance.IsInPortuguese) + if (_language == Util.Enums.Language.Portuguese) return new string[] { "Obrigado por passar isso para {questSo.GetTargetNpc()}. Tenho certeza de que vai facilitar as coisas para todo mundo. Bom trabalho!", "Bom trabalho! {questSo.GetTargetNpc()} tem a informação agora. Agradeço por ter tirado um tempo para reportar isso.", @@ -71,7 +71,7 @@ protected override string[] highSocialDialogues { get { - if (GameManagerSingleton.Instance.IsInPortuguese) + if (_language == Util.Enums.Language.Portuguese) return new string[] { "Oh, fantástico! Você realmente fez um grande favor para nós, levando essa informação até {questSo.GetTargetNpc()}. Tenho certeza de que {questSo.GetTargetNpc()} adorou saber o que você descobriu. Ótimo trabalho!", "Olha só você! Passando informações importantes assim—agora {questSo.GetTargetNpc()} pode começar a trabalhar nisso. Tenho certeza de que vai ajudar muito. Milhões de muitos obrigados!", diff --git a/Assets/Scripts/Game/NPCs/DialogueGenerator/QuestDialogue.cs b/Assets/Scripts/Game/NPCs/DialogueGenerator/QuestDialogue.cs index e89c2ac85..ee7e9fc0e 100644 --- a/Assets/Scripts/Game/NPCs/DialogueGenerator/QuestDialogue.cs +++ b/Assets/Scripts/Game/NPCs/DialogueGenerator/QuestDialogue.cs @@ -1,14 +1,24 @@ -using System.Linq; +using Overlord.NarrativeGenerator; +using Overlord.NarrativeGenerator.Quests; using System.Text; -using Game.NarrativeGenerator.Quests; -using Game.NarrativeGenerator.Quests.QuestGrammarTerminals; -using MyBox; +using Topdown.Overlord.NarrativeGenerator; using UnityEngine; +using static Util.Enums; namespace Game.NPCs { - public class QuestDialogue + public class QuestDialogue : MonoBehaviour { + protected Language _language; + + protected void SetQuestLanguage() + { + var questGeneratorManager = FindObjectOfType(); + if (questGeneratorManager == null) + questGeneratorManager = FindObjectOfType(); + _language = questGeneratorManager.language; + } + protected virtual string [] lowSocialDialogues { get { return new string[0]; } } @@ -23,6 +33,7 @@ protected virtual string [] highSocialDialogues { public string CreateQuestDialogue(QuestSo closedQuest, NpcSo speaker) { + SetQuestLanguage(); switch (speaker.SocialFactor) { case < 3: @@ -37,7 +48,7 @@ public string CreateQuestDialogue(QuestSo closedQuest, NpcSo speaker) protected string GetQuestDialogue( string[] dialogues, QuestSo quest, NpcSo speaker ) { var createdDialogue = new StringBuilder(); - int randomDialogue = Random.Range( 0, dialogues.Length ); + int randomDialogue = UnityEngine.Random.Range( 0, dialogues.Length ); if ( dialogues.Length == 0 ) { @@ -50,12 +61,12 @@ protected string GetQuestDialogue( string[] dialogues, QuestSo quest, NpcSo spea .Replace("{speaker.NpcName}", speaker.NpcName) .Replace("{speaker.Job}", speaker.Job.ToString()) .Replace("{questSo.GetTargetNpc()}", quest.GetTargetNpc()) - .Replace("{questSo.GetItemAmountString()}", quest.GetItemAmountString()) + .Replace("{questSo.GetItemAmountString()}", quest.GetItemAmountString(_language)) .Replace("{questSo.GetItemString()}", quest.GetItemString()) .Replace("{questSo.GetRoomAmount()}", quest.GetRoomAmount()) .Replace("{questSo.GetRoomCoordinates()}", quest.GetRoomCoordinates()) - .Replace("{questSo.GetEnemyAmountString()}", quest.GetEnemyAmountString()) - .Replace("{questSo.GetEnemyString()}", quest.GetEnemyString()) + .Replace("{questSo.GetEnemyAmountString()}", quest.GetEnemyAmountString(_language)) + .Replace("{questSo.GetEnemyString()}", quest.GetEnemyString(_language)) .Replace("{questSo.GetOwnerNpc()}",quest.GetOwnerNpc()) ); return createdDialogue.ToString(); diff --git a/Assets/Scripts/Game/NPCs/DialogueGenerator/QuestOpeners/ExchangeQuestOpener.cs b/Assets/Scripts/Game/NPCs/DialogueGenerator/QuestOpeners/ExchangeQuestOpener.cs index 61e79aa00..a902975ab 100644 --- a/Assets/Scripts/Game/NPCs/DialogueGenerator/QuestOpeners/ExchangeQuestOpener.cs +++ b/Assets/Scripts/Game/NPCs/DialogueGenerator/QuestOpeners/ExchangeQuestOpener.cs @@ -7,7 +7,7 @@ public class ExchangeQuestOpener : QuestDialogue protected override string[] lowSocialDialogues { get { - if (GameManagerSingleton.Instance.IsInPortuguese) + if (_language == Util.Enums.Language.Portuguese) return new string [] { "Ugh, eu não tenho tempo para essa missão. Se faça útil e faça isso por mim. Vá trocar um {questSo.GetItemString()} com {questSo.GetTargetNpc()}. Talvez você ganhe algo em troca.", "Olha, eu não estou afim de lidar com {questSo.GetTargetNpc()} hoje. Você cuida da troca e {questSo.GetTargetNpc()} vai te recompensar. Tudo o que você precisa fazer é levar um {questSo.GetItemString()} até eles.", @@ -30,7 +30,7 @@ protected override string[] lowSocialDialogues protected override string[] averageSocialDialogues { get { - if (GameManagerSingleton.Instance.IsInPortuguese) + if (_language == Util.Enums.Language.Portuguese) return new string [] { "Se você topar, eu preciso que você troque um {questSo.GetItemString()} com {questSo.GetTargetNpc()}. Ele precisa disso para um novo feitiço que estão aprendendo e vai te recompensar generosamente por isso.", "Você estaria disposto a fazer uma troca para mim? Dê um {questSo.GetItemString()} para {questSo.GetTargetNpc()}, e ouvi dizer que ele tem uma boa recompensa pronta.", @@ -49,7 +49,7 @@ protected override string[] averageSocialDialogues protected override string[] highSocialDialogues { get { - if (GameManagerSingleton.Instance.IsInPortuguese) + if (_language == Util.Enums.Language.Portuguese) return new string [] { "Ah, você é exatamente a pessoa que eu preciso! Você poderia levar um {questSo.GetItemString()} até {questSo.GetTargetNpc()}? Tenho certeza de que vão te recompensar grandemente!", "Eu ouvi dizer que {questSo.GetTargetNpc()} está morrendo de vontade de colocar as mãos em um {questSo.GetItemString()}. Leve até ele, e ele vão ficar muito feliz — inclusive, acho que é de seu interesse saber que ele sempre dá as melhores recompensas!", diff --git a/Assets/Scripts/Game/NPCs/DialogueGenerator/QuestOpeners/ExploreQuestOpener.cs b/Assets/Scripts/Game/NPCs/DialogueGenerator/QuestOpeners/ExploreQuestOpener.cs index 0b1a76c52..0deaf20b2 100644 --- a/Assets/Scripts/Game/NPCs/DialogueGenerator/QuestOpeners/ExploreQuestOpener.cs +++ b/Assets/Scripts/Game/NPCs/DialogueGenerator/QuestOpeners/ExploreQuestOpener.cs @@ -5,7 +5,7 @@ public class ExploreQuestOpener : QuestDialogue { protected override string [] lowSocialDialogues{ get { - if (GameManagerSingleton.Instance.IsInPortuguese) + if (_language == Util.Enums.Language.Portuguese) return new string [] { "Já faz um tempo desde que deixei minhas funções aqui como {speaker.Job}. Nem sei se essa masmorra tem {questSo.GetRoomAmount()} cômodos. ... Você pode confirmar isso?", "Ótimo, outra coisa que eu não posso fazer. Vá procurar {questSo.GetRoomAmount()} cômodos nesta masmorra e me avise o que encontrou.", @@ -25,7 +25,7 @@ protected override string [] lowSocialDialogues{ protected override string [] averageSocialDialogues{ get { - if (GameManagerSingleton.Instance.IsInPortuguese) + if (_language == Util.Enums.Language.Portuguese) return new string [] { "Meu melhor amigo costumava ser cartógrafo. Ele vai me visitar em breve e eu estava pensando em preparar uma surpresa. Você pode ajudar? Eu queria fazer um mapa para explorarmos juntos, mas antes preciso confirmar o tamanho. Você poderia verificar se há pelo menos {questSo.GetRoomAmount()} cômodos aqui?", "Às vezes eu fico imaginando como seria ser cartógrafo. Talvez eu devesse tentar fazer um mapa para mim mesmo. Não sei se {questSo.GetRoomAmount()} seria um mapa muito grande... Você poderia explorar {questSo.GetRoomAmount()} cômodos e me contar como são para eu poder começar meu mapa?", @@ -45,7 +45,7 @@ protected override string [] averageSocialDialogues{ protected override string[] highSocialDialogues { get { - if (GameManagerSingleton.Instance.IsInPortuguese) + if (_language == Util.Enums.Language.Portuguese) return new string [] { "Ei, você poderia me fazer um pequeno favor e explorar {questSo.GetRoomAmount()} cômodos nesta área? Eu iria eu mesmo, mas quem sabe o que tem lá! Eu só ia entrar em pânico!", "Então, uma história engraçada—eu estava querendo olhar aqueles {questSo.GetRoomAmount()} cômodos, mas sempre aparece algo! Você pode cuidar disso para mim? Tenho certeza que são fascinantes!", diff --git a/Assets/Scripts/Game/NPCs/DialogueGenerator/QuestOpeners/GatherQuestOpener.cs b/Assets/Scripts/Game/NPCs/DialogueGenerator/QuestOpeners/GatherQuestOpener.cs index 14c58967b..bf3f48948 100644 --- a/Assets/Scripts/Game/NPCs/DialogueGenerator/QuestOpeners/GatherQuestOpener.cs +++ b/Assets/Scripts/Game/NPCs/DialogueGenerator/QuestOpeners/GatherQuestOpener.cs @@ -7,7 +7,7 @@ public class GatherQuestOpener : QuestDialogue protected override string[] lowSocialDialogues { get { - if (GameManagerSingleton.Instance.IsInPortuguese) + if (_language == Util.Enums.Language.Portuguese) return new string [] { "Nossa, eu me pergunto como esse lugar ficou tão bagunçado em primeiro lugar. Seja útil e colete os {questSo.GetItemAmountString()} que estão por aí.", "Eu preciso de {questSo.GetItemAmountString()} para um feitiço. Que feitiço? Não é da sua conta. Você pode até ficar com os {questSo.GetItemString()}.", @@ -30,7 +30,7 @@ protected override string[] lowSocialDialogues protected override string[] averageSocialDialogues { get { - if (GameManagerSingleton.Instance.IsInPortuguese) + if (_language == Util.Enums.Language.Portuguese) return new string [] { "Esse lugar está uma bagunça! Você poderia, por favor, coletar os {questSo.GetItemAmountString()} que estão por aí?", "Eu estou começando a estudar {questSo.GetItemString()}. Você poderia me trazer {questSo.GetItemAmountString()} para eu dar uma olhada? Você pode ficar com eles, eu só preciso estudar um pouco…", @@ -55,7 +55,7 @@ protected override string[] averageSocialDialogues protected override string[] highSocialDialogues { get { - if (GameManagerSingleton.Instance.IsInPortuguese) + if (_language == Util.Enums.Language.Portuguese) return new string [] { "Ah, sabe, eu venho pensando nisso há um tempo, e eu só preciso perguntar—você poderia coletar {questSo.GetItemAmountString()} para mim? Eles são tão brilhantes e raros! Eu faria isso, mas, bem, você é muito melhor nisso!", "Você não vai acreditar, mas eu ouvi dizer que existem exatamente {questSo.GetItemAmountString()} por aí, esperando para serem encontrados! Você se importaria de coletá-los para mim? Imagina as possibilidades quando tivermos eles!", diff --git a/Assets/Scripts/Game/NPCs/DialogueGenerator/QuestOpeners/GiveQuestOpener.cs b/Assets/Scripts/Game/NPCs/DialogueGenerator/QuestOpeners/GiveQuestOpener.cs index 731b789dd..e1390bea0 100644 --- a/Assets/Scripts/Game/NPCs/DialogueGenerator/QuestOpeners/GiveQuestOpener.cs +++ b/Assets/Scripts/Game/NPCs/DialogueGenerator/QuestOpeners/GiveQuestOpener.cs @@ -6,7 +6,7 @@ public class GiveQuestOpener : QuestDialogue { protected override string [] lowSocialDialogues{ get { - if (GameManagerSingleton.Instance.IsInPortuguese) + if (_language == Util.Enums.Language.Portuguese) return new string [] { "Leve {questSo.GetItemAmountString()} para {questSo.GetTargetNpc()}. Eu faria isso, mas tenho coisas mais importantes para fazer.", "Ugh, tá bom. Você está aqui, então seja útil e entregue {questSo.GetItemAmountString()} para {questSo.GetTargetNpc()}. Não perca.", @@ -36,7 +36,7 @@ protected override string [] lowSocialDialogues{ protected override string [] averageSocialDialogues{ get { - if (GameManagerSingleton.Instance.IsInPortuguese) + if (_language == Util.Enums.Language.Portuguese) return new string [] { "Você poderia levar {questSo.GetItemAmountString()} para {questSo.GetTargetNpc()} para mim? Ele está esperando isso, e eu ficaria grato pela ajuda!", "Aqui está um item que {questSo.GetTargetNpc()} precisa. Você pode entregá-lo para ele? Eu confio que você vai fazer isso com segurança.", @@ -58,7 +58,7 @@ protected override string [] averageSocialDialogues{ protected override string [] highSocialDialogues{ get { - if (GameManagerSingleton.Instance.IsInPortuguese) + if (_language == Util.Enums.Language.Portuguese) return new string [] { "Oh, oi! Justo a pessoa que eu esperava ver! Então, {questSo.GetTargetNpc()} me disse um tempo atrás que ele precisa de {questSo.GetItemAmountString()}. Mas, você sabe como é, eu sempre me distraio e esqueço no meio do caminho. Você pode entregar para ele por mim? Por favor?", "Ai meu Deus, eu estava querendo levar {questSo.GetItemAmountString()} para {questSo.GetTargetNpc()} há séculos! Bem, ok, talvez não séculos, mas parece que foi. Enfim, você pode entregar? Você é muito melhor nisso!", diff --git a/Assets/Scripts/Game/NPCs/DialogueGenerator/QuestOpeners/GoToQuestOpener.cs b/Assets/Scripts/Game/NPCs/DialogueGenerator/QuestOpeners/GoToQuestOpener.cs index 89e257527..8b7861cd9 100644 --- a/Assets/Scripts/Game/NPCs/DialogueGenerator/QuestOpeners/GoToQuestOpener.cs +++ b/Assets/Scripts/Game/NPCs/DialogueGenerator/QuestOpeners/GoToQuestOpener.cs @@ -7,7 +7,7 @@ public class GoToQuestOpener : QuestDialogue protected override string [] lowSocialDialogues { get { - if (GameManagerSingleton.Instance.IsInPortuguese) + if (_language == Util.Enums.Language.Portuguese) return new string[] { "Ugh, aquela área tem sido uma dor de cabeça para mim. Lá nas coordenadas {questSo.GetRoomCoordinates()}? Vai lá dar uma olhada e ver o que está causando todo esse alvoroço, pode ser?", "Aquele lugar em {questSo.GetRoomCoordinates()} ainda não foi explorado, e eu estou ocupado demais para lidar com isso. Acho que agora é seu problema.", @@ -30,7 +30,7 @@ protected override string [] lowSocialDialogues { protected override string [] averageSocialDialogues{ get { - if (GameManagerSingleton.Instance.IsInPortuguese) + if (_language == Util.Enums.Language.Portuguese) return new string[] { "Estou pensando em entrar em um concurso de pintura, mas ainda estou decidindo o que pintar. Ouvi dizer que há um lugar bonito nas coordenadas {questSo.GetRoomCoordinates()}. Você pode ir lá e dar uma olhada para mim?", "Você se importaria de dar uma olhada em uma área para mim? Ouvi dizer que há algo interessante nas coordenadas {questSo.GetRoomCoordinates()}, mas eu não posso ir pessoalmente.", @@ -62,7 +62,7 @@ protected override string [] averageSocialDialogues{ protected override string [] highSocialDialogues{ get { - if (GameManagerSingleton.Instance.IsInPortuguese) + if (_language == Util.Enums.Language.Portuguese) return new string [] { "Oh, você está aqui! Fantástico! Então, tem esse ponto nas coordenadas {questSo.GetRoomCoordinates()} que tem me incomodado de curiosidade há séculos. Você poderia dar uma olhada? Eu iria eu mesmo, mas, sabe, motivos!", "Ei, eu fiquei olhando esse mapa por horas, e tem algo intrigante nas coordenadas {questSo.GetRoomCoordinates()}. Você poderia explorar para mim? Ah, e não se esqueça de tirar umas notas—eu adoro detalhes!", diff --git a/Assets/Scripts/Game/NPCs/DialogueGenerator/QuestOpeners/KillQuestOpener.cs b/Assets/Scripts/Game/NPCs/DialogueGenerator/QuestOpeners/KillQuestOpener.cs index 50c77c1c3..3e9fd7bdf 100644 --- a/Assets/Scripts/Game/NPCs/DialogueGenerator/QuestOpeners/KillQuestOpener.cs +++ b/Assets/Scripts/Game/NPCs/DialogueGenerator/QuestOpeners/KillQuestOpener.cs @@ -5,7 +5,7 @@ public class KillQuestOpener : QuestDialogue { protected override string [] lowSocialDialogues{ get { - if (GameManagerSingleton.Instance.IsInPortuguese) + if (_language == Util.Enums.Language.Portuguese) return new string [] { "Não há nada que eu desgoste mais do que {questSo.GetEnemyString()}. Vou te dizer o que, se você se livrar de {questSo.GetEnemyAmountString()}, talvez eu te dê uma recompensa.", "Esses {questSo.GetEnemyString()} estão atrapalhando meu caminho. Seja útil e mate {questSo.GetEnemyAmountString()}.", @@ -35,7 +35,7 @@ protected override string [] lowSocialDialogues{ protected override string [] averageSocialDialogues{ get { - if (GameManagerSingleton.Instance.IsInPortuguese) + if (_language == Util.Enums.Language.Portuguese) return new string [] { "ATCHOOO, a-- ATCHOOO .... Oh, desculpe por isso. Na verdade, sou alérgico a {questSo.GetEnemyString()}. Como funciona isso, você pergunta? Bem, melhor perguntar para o meu médico do que para mim... Você poderia se livrar de {questSo.GetEnemyAmountString()}? Isso me ajudaria muito...", "Isso é um pouco embaraçoso, mas na verdade eu sou assustado com {questSo.GetEnemyString()}. Você poderia se livrar de alguns deles para mim? Acho que se você matar {questSo.GetEnemyAmountString()} eu me sentiria bem mais seguro!", @@ -63,7 +63,7 @@ protected override string [] averageSocialDialogues{ protected override string [] highSocialDialogues{ get { - if (GameManagerSingleton.Instance.IsInPortuguese) + if (_language == Util.Enums.Language.Portuguese) return new string [] { "Há muito tempo, um bando de {questSo.GetEnemyString()} matou minha mãe. Não sou muito fã de caçar monstros, mas acredito que devemos fazer algo para que as pessoas não se machuquem. Eu não tenho forças para isso, mas ficaria muito grato se você conseguisse se livrar de {questSo.GetEnemyAmountString()}.", "Estamos desesperados por ajuda. Os {questSo.GetEnemyString()} devem ser parados! Você pode lidar com {questSo.GetEnemyAmountString()} para nós?", diff --git a/Assets/Scripts/Game/NPCs/DialogueGenerator/QuestOpeners/ListenQuestOpener.cs b/Assets/Scripts/Game/NPCs/DialogueGenerator/QuestOpeners/ListenQuestOpener.cs index 27e810c52..c0463e3ec 100644 --- a/Assets/Scripts/Game/NPCs/DialogueGenerator/QuestOpeners/ListenQuestOpener.cs +++ b/Assets/Scripts/Game/NPCs/DialogueGenerator/QuestOpeners/ListenQuestOpener.cs @@ -5,7 +5,7 @@ public class ListenQuestOpener : QuestDialogue { protected override string [] lowSocialDialogues { get { - if (GameManagerSingleton.Instance.IsInPortuguese) + if (_language == Util.Enums.Language.Portuguese) return new string [] { "Chega de perguntas! {questSo.GetTargetNpc()} tem as respostas. Vai lá e escute o que ele tem a dizer.", "Ugh, vai lá ouvir {questSo.GetTargetNpc()}, vai? Ele não vai parar de falar até alguém ouvir.", @@ -43,7 +43,7 @@ protected override string [] lowSocialDialogues { protected override string [] averageSocialDialogues { get { - if (GameManagerSingleton.Instance.IsInPortuguese) + if (_language == Util.Enums.Language.Portuguese) return new string [] { "Você tem se perguntado sobre as origens dessa masmorra? Vai lá ouvir {questSo.GetTargetNpc()} — ele viu coisas que podem te ajudar a entender mais.", "Pode ser útil ouvir {questSo.GetTargetNpc()}. Ele tem conhecimentos que podem te ajudar.", @@ -65,7 +65,7 @@ protected override string [] averageSocialDialogues { protected override string [] highSocialDialogues { get { - if (GameManagerSingleton.Instance.IsInPortuguese) + if (_language == Util.Enums.Language.Portuguese) return new string [] { "Eu acho que seria útil você ouvir {questSo.GetTargetNpc()}. Ele tem uma sabedoria tranquila.", "Por favor, tire um tempo para ouvir {questSo.GetTargetNpc()}. Acho que você vai achar realmente proveitoso.", diff --git a/Assets/Scripts/Game/NPCs/DialogueGenerator/QuestOpeners/ReadQuestOpener.cs b/Assets/Scripts/Game/NPCs/DialogueGenerator/QuestOpeners/ReadQuestOpener.cs index 8448d3d4e..fd41c5fe3 100644 --- a/Assets/Scripts/Game/NPCs/DialogueGenerator/QuestOpeners/ReadQuestOpener.cs +++ b/Assets/Scripts/Game/NPCs/DialogueGenerator/QuestOpeners/ReadQuestOpener.cs @@ -5,7 +5,7 @@ public class ReadQuestOpener : QuestDialogue { protected override string [] lowSocialDialogues { get { - if (GameManagerSingleton.Instance.IsInPortuguese) + if (_language == Util.Enums.Language.Portuguese) return new string [] { "Tem um livro por aí que você precisa encontrar. Não me pergunte onde—apenas vá lá e leia.", "Eu não sou seu bibliotecário, mas tem um pergaminho que você precisa desenterrar e ler. Vai lá e encontra logo.", @@ -27,7 +27,7 @@ protected override string [] lowSocialDialogues { protected override string [] averageSocialDialogues{ get { - if (GameManagerSingleton.Instance.IsInPortuguese) + if (_language == Util.Enums.Language.Portuguese) return new string [] { "Você sabia que ao redor dessa masmorra há livros mágicos e escritos espalhados? Ouvi falar de um bem aqui perto. Você pode me dizer o que tem nele?", "Estou tentando dominar essa nova técnica mágica e ouvi dizer que tem um livro sobre isso. Se encontrar, pode me dizer o que ele diz?", @@ -61,7 +61,7 @@ protected override string [] averageSocialDialogues{ protected override string [] highSocialDialogues{ get { - if (GameManagerSingleton.Instance.IsInPortuguese) + if (_language == Util.Enums.Language.Portuguese) return new string [] { "Oh! Eu acabei de lembrar, tem esse livro fascinante—acho que está escondido na biblioteca—ou talvez nas antigas ruínas? Enfim, você tem que encontrar e ler! É muito importante!", "Então, tem esse pergaminho, antigo e misterioso, que dizem conter segredos que ninguém jamais entendeu totalmente! Você consegue encontrá-lo e lê-lo para mim? Eu mal posso esperar para saber o que diz!", diff --git a/Assets/Scripts/Game/NPCs/DialogueGenerator/QuestOpeners/ReportQuestOpener.cs b/Assets/Scripts/Game/NPCs/DialogueGenerator/QuestOpeners/ReportQuestOpener.cs index be005bf95..a5d03ae1d 100644 --- a/Assets/Scripts/Game/NPCs/DialogueGenerator/QuestOpeners/ReportQuestOpener.cs +++ b/Assets/Scripts/Game/NPCs/DialogueGenerator/QuestOpeners/ReportQuestOpener.cs @@ -6,7 +6,7 @@ public class ReportQuestOpener : QuestDialogue { protected override string [] lowSocialDialogues { get { - if (GameManagerSingleton.Instance.IsInPortuguese) + if (_language == Util.Enums.Language.Portuguese) return new string [] { "Eu odeio ser o portador de más notícias... Ou de qualquer notícia... Seja útil e entregue este envelope para {questSo.GetTargetNpc()}.", "O que {questSo.GetTargetNpc()} me pediu para fazer vai se atrasar. Se os ver por aí, avise-os. Não vou sair do meu caminho para fazer isso.", @@ -40,7 +40,7 @@ protected override string [] lowSocialDialogues { protected override string [] averageSocialDialogues { get { - if (GameManagerSingleton.Instance.IsInPortuguese) + if (_language == Util.Enums.Language.Portuguese) return new string [] { "Preciso que alguém avise {questSo.GetTargetNpc()} que não vou conseguir devolver o livro dele tão cedo. Você pode fazer esse favor e contar para ele?", "{questSo.GetTargetNpc()} me emprestou um livro mágico, mas acho que vou precisar de mais algumas semanas para aprender os feitiços. Se os ver por aí, você pode perguntar se está tudo bem?", @@ -74,7 +74,7 @@ protected override string [] averageSocialDialogues { protected override string [] highSocialDialogues { get { - if (GameManagerSingleton.Instance.IsInPortuguese) + if (_language == Util.Enums.Language.Portuguese) return new string [] { "PARE O MUNDO, A MAIOR FOFOCA ACABOU DE CHEGAR! Eu imploro, você pode contar para {questSo.GetTargetNpc()} sobre isso??", "Oh, você é exatamente a pessoa que eu preciso! Tenho essa informação vital, e realmente preciso que você a leve até {questSo.GetTargetNpc()}. Eles vão ficar tão gratos de ouvir isso de você!", diff --git a/Assets/Scripts/Game/NPCs/NpcController.cs b/Assets/Scripts/Game/NPCs/NpcController.cs index f4ce54564..4007962f8 100644 --- a/Assets/Scripts/Game/NPCs/NpcController.cs +++ b/Assets/Scripts/Game/NPCs/NpcController.cs @@ -5,11 +5,16 @@ using Game.Dialogues; using Game.Events; using Game.NarrativeGenerator.Quests; -using Game.NarrativeGenerator.Quests.QuestGrammarTerminals; using Game.Quests; using UnityEngine; using Game.NPCs.PTBR; -using Game.GameManager; +using Overlord.NarrativeGenerator.Quests; +using Overlord.NarrativeGenerator.Quests.QuestGrammarTerminals; +using static Util.Enums; +using Overlord.NarrativeGenerator; + +using Topdown.Overlord.NarrativeGenerator; + #if UNITY_EDITOR using MyBox; @@ -19,7 +24,6 @@ namespace Game.NPCs { - public class NpcController : QuestDialogueInteraction { // Just for debuging and easy seeing in inspector @@ -27,7 +31,7 @@ public class NpcController : QuestDialogueInteraction public bool IsMainQuestNpc = false; public static event EventHandler NpcInteraction; - private bool isInPortuguese = false; + private bool _isInPortuguese = false; [field: SerializeField] public NpcSo Npc { get; set; } public List ExchangeDataList { get; set; } public List GiveDataList { get; set; } @@ -37,7 +41,12 @@ public class NpcController : QuestDialogueInteraction protected override void Awake() { - isInPortuguese = GameManagerSingleton.Instance.IsInPortuguese; + var questGeneratorManager = FindObjectOfType(); + if (questGeneratorManager == null) + questGeneratorManager = FindObjectOfType(); + if (questGeneratorManager.language == Language.Portuguese) + _isInPortuguese = true; + base.Awake(); ExchangeDataList = new List(); GiveDataList = new List(); @@ -136,7 +145,7 @@ private void CreateQuestLineCompletedDialogue(object sender, NewQuestLineEventAr dialogue.StopDialogueFromQuest(-1); string closerLine; - if (isInPortuguese) + if (_isInPortuguese) closerLine = PTBR_NpcDialogueGenerator.CreateMainQuestLineCloser(eventArgs.QuestLine, Npc); else closerLine = NpcDialogueGenerator.CreateMainQuestLineCloser(eventArgs.QuestLine, Npc); @@ -163,7 +172,7 @@ private void CreateQuestLineOpenedDialogue(object sender, NewQuestLineEventArgs IsMainQuestNpc = true; string openerLine; - if (isInPortuguese) + if (_isInPortuguese) openerLine = PTBR_NpcDialogueGenerator.CreateMainQuestLineOpener(eventArgs.QuestLine, Npc); else openerLine = NpcDialogueGenerator.CreateMainQuestLineOpener(eventArgs.QuestLine, Npc); @@ -187,7 +196,7 @@ private void CreateExchangeDialogue(object sender, QuestElementEventArgs eventAr if (targetNpc != Npc) return; string openerLine; - if (isInPortuguese) + if (_isInPortuguese) openerLine = PTBR_NpcDialogueGenerator.CreateExchangeDialogue(exchangeEventArgs.ExchangeQuestData, Npc); else openerLine = NpcDialogueGenerator.CreateExchangeDialogue(exchangeEventArgs.ExchangeQuestData, Npc); @@ -204,7 +213,7 @@ private void CreateGiveDialogue(object sender, QuestElementEventArgs eventArgs) if (targetNpc != Npc) return; string openerLine; - if (isInPortuguese) + if (_isInPortuguese) openerLine = PTBR_NpcDialogueGenerator.CreateGiveDialogue(giveEventArgs.GiveQuestData, Npc); else openerLine = NpcDialogueGenerator.CreateGiveDialogue(giveEventArgs.GiveQuestData, Npc); @@ -246,7 +255,7 @@ public void Dev_CompleteQuest() protected override void CreateIntroDialogue() { - if (isInPortuguese) + if (_isInPortuguese) DialogueLine = PTBR_NpcDialogueGenerator.CreateGreeting(Npc); else DialogueLine = NpcDialogueGenerator.CreateGreeting(Npc); diff --git a/Assets/Scripts/Game/NarrativeGenerator/DropItemData.cs b/Assets/Scripts/Game/NarrativeGenerator/DropItemData.cs deleted file mode 100644 index 4088a0f26..000000000 --- a/Assets/Scripts/Game/NarrativeGenerator/DropItemData.cs +++ /dev/null @@ -1,13 +0,0 @@ -using ScriptableObjects; - -namespace Game.NarrativeGenerator -{ - public class DropItemData - { - public WeaponTypeSo Enemy { get; set; } - private ItemSo DropItem { get; set; } - private float DropChance { get; set; } - private int TotalItem { get; set; } - private bool IsActive { get; set; } - } -} \ No newline at end of file diff --git a/Assets/Scripts/Game/NarrativeGenerator/DropItemData.cs.meta b/Assets/Scripts/Game/NarrativeGenerator/DropItemData.cs.meta deleted file mode 100644 index 51d7dbd4a..000000000 --- a/Assets/Scripts/Game/NarrativeGenerator/DropItemData.cs.meta +++ /dev/null @@ -1,3 +0,0 @@ -fileFormatVersion: 2 -guid: a0ec0af38ea44ddba21dee522a9a2eef -timeCreated: 1633128739 \ No newline at end of file diff --git a/Assets/Scripts/Game/NarrativeGenerator/DungeonRelatedNarrative/QuestDungeonsParameters.cs b/Assets/Scripts/Game/NarrativeGenerator/DungeonRelatedNarrative/QuestDungeonsParameters.cs index cc1997cae..d566dd4e9 100644 --- a/Assets/Scripts/Game/NarrativeGenerator/DungeonRelatedNarrative/QuestDungeonsParameters.cs +++ b/Assets/Scripts/Game/NarrativeGenerator/DungeonRelatedNarrative/QuestDungeonsParameters.cs @@ -1,10 +1,11 @@ using Game.NarrativeGenerator.Quests; -using Game.NarrativeGenerator.Quests.QuestGrammarTerminals; +using Overlord.NarrativeGenerator.Quests.QuestGrammarTerminals; using System; using System.Collections.Generic; using System.Linq; using UnityEngine; using static Util.Enums; +using Overlord.NarrativeGenerator.Quests; namespace Game.NarrativeGenerator { diff --git a/Assets/Scripts/Game/NarrativeGenerator/EnemyRelatedNarrative/QuestEnemiesParameters.cs b/Assets/Scripts/Game/NarrativeGenerator/EnemyRelatedNarrative/QuestEnemiesParameters.cs index 24bc322ff..7bd74ba3c 100644 --- a/Assets/Scripts/Game/NarrativeGenerator/EnemyRelatedNarrative/QuestEnemiesParameters.cs +++ b/Assets/Scripts/Game/NarrativeGenerator/EnemyRelatedNarrative/QuestEnemiesParameters.cs @@ -1,13 +1,14 @@ using System; -using System.Collections.Generic; using System.Linq; +using System.Collections.Generic; using System.Text; using Game.NarrativeGenerator.Quests; -using Game.NarrativeGenerator.Quests.QuestGrammarTerminals; using Overlord.RulesGenerator.EnemyGeneration; using UnityEngine; +using Overlord.NarrativeGenerator.Quests; +using Overlord.NarrativeGenerator.Quests.QuestGrammarTerminals; -namespace Game.NarrativeGenerator.EnemyRelatedNarrative +namespace Overlord.NarrativeGenerator.EnemyRelatedNarrative { [Serializable] public class QuestEnemiesParameters @@ -50,14 +51,21 @@ public void CalculateDifficultyFromProfile(float masteryPreference) }; } + /* public void CalculateMonsterFromQuests(IEnumerable questLines) { foreach (var quest in questLines.SelectMany(questLine => questLine.Quests)) { AddEnemiesWhenEnemyQuest(quest); } + } + */ + + public void CalculateMonsterFromQuests(QuestSo quest) + { + AddEnemiesWhenEnemyQuest(quest); } - + private void AddEnemiesWhenEnemyQuest(QuestSo quest) { if (quest is KillQuestSo killQuestSo) diff --git a/Assets/Scripts/Game/NarrativeGenerator/LoadText.cs b/Assets/Scripts/Game/NarrativeGenerator/LoadText.cs deleted file mode 100644 index 5517c9d8c..000000000 --- a/Assets/Scripts/Game/NarrativeGenerator/LoadText.cs +++ /dev/null @@ -1,50 +0,0 @@ -using UnityEngine; -using TMPro; - -namespace Game.NarrativeGenerator -{ - public class LoadText : MonoBehaviour - { - public TextAsset jsonFile; - public TextMeshProUGUI missionSum; - public QuestManager manager; - - // Start is called before the first frame update - //TODO fix this, if it may be used in the future - /*void Start() - { - Quests questAux = JsonConvert.DeserializeObject(jsonFile.text); - missionSum.text = "Mission Sum:
"; - - // foreach (QuestSO q in questAux.graph) - // { - // switch (q.Tipo) - // { - // case 0: missionSum.text += "Find a treasure of type " + q.N1 + ".
"; manager.treasure = true; break; - // case 1: missionSum.text += "Find the dungeon's secret room.
"; manager.secretRoom = true; break; - // case 2: missionSum.text += "Kill " + q.N1 + " enemies of type 1,
" + q.N2 + " enemies of type 2 and
" + q.N3 + " of type 3.\n"; manager.totalEnemies += q.N1 + q.N2 + q.N3; break; - // case 3: missionSum.text += "Get " + q.N1 + " itens.
"; manager.totalItens += q.N1; break; - // case 4: missionSum.text += "Explore the dungeon's rooms.
"; break; - // case 5: missionSum.text += "Kill " + q.N1 + " enemies to get the same amount of itens dropped by them.
"; manager.totalEnemies += q.N1; break; - // case 6: missionSum.text += "Talk to the NPC " + q.N1 + ".
"; manager.totalNpcs += q.N1; break; - // } - // } - - Debug.Log(missionSum.text); - }*/ - - private void clearManager() - { - manager.totalEnemies = 0; - manager.totalItens = 0; - manager.totalNpcs = 0; - manager.secretRoom = false; - manager.treasure = false; - } - - public void CloseDialogue() - { - gameObject.SetActive(false); - } - } -} diff --git a/Assets/Scripts/Game/NarrativeGenerator/NarrativeExperimentRepository.cs b/Assets/Scripts/Game/NarrativeGenerator/NarrativeExperimentRepository.cs index 90267d0ab..e9a5cc9bd 100644 --- a/Assets/Scripts/Game/NarrativeGenerator/NarrativeExperimentRepository.cs +++ b/Assets/Scripts/Game/NarrativeGenerator/NarrativeExperimentRepository.cs @@ -5,6 +5,7 @@ using Overlord.ProfileAnalyst; using System.Collections.Generic; using UnityEditor; +using Util; namespace Overlord.NarrativeGenerator { @@ -14,13 +15,16 @@ public class NarrativeExperimentRepository private List _questLinesForProfile; private IPlayerProfile _playerProfile; private GeneratorSettings _generatorSettings; + private Enums.Language _language; public NarrativeExperimentRepository(IPlayerProfile playerProfile, - PlayerProfileToQuestLinesDictionarySo playerProfileToQuestLines, GeneratorSettings generatorSettings) + PlayerProfileToQuestLinesDictionarySo playerProfileToQuestLines, GeneratorSettings generatorSettings, + Enums.Language language) { _playerProfile = playerProfile; _playerProfileToQuestLines = playerProfileToQuestLines; _generatorSettings = generatorSettings; + _language = language; } public void Save(QuestLineList questLines, string profileName) @@ -41,7 +45,7 @@ public void Save(QuestLineList questLines, string profileName) private void SetQuestLineListForProfile(QuestLineList questLines) { - _questLinesForProfile = new List { Selector.CreateMissions(_generatorSettings) }; + _questLinesForProfile = new List { TopdownQuestSelector.CreateMissions(_generatorSettings, _language) }; /* if (_playerProfile is YeePlayerProfile playerProfile) { diff --git a/Assets/Scripts/Game/NarrativeGenerator/NpcRelatedNarrative/QuestNpcsParameters.cs b/Assets/Scripts/Game/NarrativeGenerator/NpcRelatedNarrative/QuestNpcsParameters.cs index a1232e88d..0baa897e9 100644 --- a/Assets/Scripts/Game/NarrativeGenerator/NpcRelatedNarrative/QuestNpcsParameters.cs +++ b/Assets/Scripts/Game/NarrativeGenerator/NpcRelatedNarrative/QuestNpcsParameters.cs @@ -3,9 +3,10 @@ using System.Linq; using System.Text; using Game.NarrativeGenerator.Quests; -using Game.NarrativeGenerator.Quests.QuestGrammarTerminals; +using Overlord.NarrativeGenerator.Quests.QuestGrammarTerminals; using Game.NPCs; using UnityEngine; +using Overlord.NarrativeGenerator.Quests; namespace Game.NarrativeGenerator.NpcRelatedNarrative { diff --git a/Assets/Scripts/Game/NarrativeGenerator/QuestManager.cs b/Assets/Scripts/Game/NarrativeGenerator/QuestManager.cs deleted file mode 100644 index bb58d1dd1..000000000 --- a/Assets/Scripts/Game/NarrativeGenerator/QuestManager.cs +++ /dev/null @@ -1,11 +0,0 @@ -using UnityEngine; - -namespace Game.NarrativeGenerator -{ - [CreateAssetMenu(fileName = "QuestManager", menuName = "ScriptableObjects/QuestManager")] - public class QuestManager : ScriptableObject - { - public int totalEnemies = 0, totalItens = 0, totalNpcs = 0; - public bool secretRoom = false, treasure = false; - } -} \ No newline at end of file diff --git a/Assets/Scripts/Game/NarrativeGenerator/QuestUI.cs b/Assets/Scripts/Game/NarrativeGenerator/QuestUI.cs deleted file mode 100644 index d1b7882f2..000000000 --- a/Assets/Scripts/Game/NarrativeGenerator/QuestUI.cs +++ /dev/null @@ -1,37 +0,0 @@ -using UnityEngine; -using Game.NarrativeGenerator.Quests; -using UnityEngine.UI; -using TMPro; -using System.Collections.Generic; -using System.Collections; -using Util; - -namespace Game.NarrativeGenerator -{ - public class QuestUI : MonoBehaviour - { - [SerializeField] private TextMeshProUGUI questList; - public void CreateQuestList ( QuestLineList narratives ) - { - // TODO: Rever este código - // string questDescription = ""; - // foreach ( QuestLine narrative in narratives.QuestLines ) - // { - // string nextQuest = narrative.graph[0].symbolType.ToString(); - // if ( narrative.graph[0].symbolType != Constants.EMPTY_QUEST ) - // questDescription += $" - {nextQuest}\n"; - // } - // questList.text = questDescription; - } - - public void CreateOpenQuestList ( QuestLine quests ) - { - // calls create quest list - } - - public void CreateClosedQuestList ( QuestLine quests ) - { - // calls create quest list - } - } -} \ No newline at end of file diff --git a/Assets/Scripts/Game/NarrativeGenerator/Quests/QuestGrammarTerminals/ItemQuestSo.cs b/Assets/Scripts/Game/NarrativeGenerator/Quests/QuestGrammarTerminals/ItemQuestSo.cs index 080911a4c..fb6af7433 100644 --- a/Assets/Scripts/Game/NarrativeGenerator/Quests/QuestGrammarTerminals/ItemQuestSo.cs +++ b/Assets/Scripts/Game/NarrativeGenerator/Quests/QuestGrammarTerminals/ItemQuestSo.cs @@ -2,7 +2,7 @@ using ScriptableObjects; using System; using System.Linq; -using Game.NarrativeGenerator.ItemRelatedNarrative; +using Overlord.NarrativeGenerator.ItemRelatedNarrative; using UnityEngine; using Util; diff --git a/Assets/Scripts/Game/NarrativeGenerator/Quests/QuestLine.cs b/Assets/Scripts/Game/NarrativeGenerator/Quests/QuestLine.cs index d0bfb6bc6..1628c3245 100644 --- a/Assets/Scripts/Game/NarrativeGenerator/Quests/QuestLine.cs +++ b/Assets/Scripts/Game/NarrativeGenerator/Quests/QuestLine.cs @@ -1,10 +1,9 @@ using System; using System.Collections.Generic; using System.Linq; -using Game.Overlord.ProfileAnalyst; using Game.ExperimentControllers; -using Game.LevelGenerator.LevelSOs; -using Game.NarrativeGenerator.Quests.QuestGrammarTerminals; +//using Game.LevelGenerator.LevelSOs; +using Overlord.NarrativeGenerator.Quests.QuestGrammarTerminals; using Game.NPCs; using Game.Quests; #if UNITY_EDITOR @@ -12,6 +11,9 @@ #endif using UnityEngine; using Util; +using static Util.Enums; +using Overlord.NarrativeGenerator.Quests; +using Game.LevelGenerator.LevelSOs; namespace Game.NarrativeGenerator.Quests { @@ -35,15 +37,23 @@ public class QuestLine : ScriptableObject, ISavableGeneratedContent public static event QuestElementEvent AllowCheckPointEventHandler; public static event QuestElementEvent AllowGiveEventHandler; + private Language _language; + public void Init() { Quests = new List(); CurrentQuestIndex = 0; } + public void Init(Language language) + { + Init(); + _language = language; + } + public void Init(QuestLine questLine) { - Quests = new List(); + Init(); foreach (var copyQuest in questLine.Quests.Select(quest => quest.Clone())) { if (Quests.Count > 0) @@ -59,7 +69,6 @@ public void Init(QuestLine questLine) RewardKeys.AddRange(questLine.RewardKeys); NpcInCharge = questLine.NpcInCharge; - CurrentQuestIndex = 0; } public void SaveAsset(string directory) @@ -195,12 +204,12 @@ public void PopulateQuestLine(in GeneratorSettings generatorSettings, NpcSo npcI while (questChain.GetLastSymbol().CanDrawNext) { var lastSelectedQuest = questChain.GetLastSymbol(); - lastSelectedQuest.NextSymbolChances = TopdownYeeProfileCalculator.StartSymbolWeights; + lastSelectedQuest.NextSymbolChances = YeeProfileCalculator.StartSymbolWeights; lastSelectedQuest.SetNextSymbol(questChain); var nonTerminalSymbol = questChain.GetLastSymbol(); nonTerminalSymbol.SetNextSymbol(questChain); - questChain.GetLastSymbol().DefineQuestSo(Quests, npcInCharge, in generatorSettings); + questChain.GetLastSymbol().DefineQuestSo(Quests, npcInCharge, in generatorSettings, _language); } } @@ -217,7 +226,7 @@ public void CompleteMissingQuests(in GeneratorSettings generatorSettings, NpcSo foreach (string missingQuest in missingQuests) { questChain.SetSymbol(missingQuest); - questChain.GetLastSymbol().DefineQuestSo(Quests, npcInCharge, in generatorSettings); + questChain.GetLastSymbol().DefineQuestSo(Quests, npcInCharge, in generatorSettings, _language); } } @@ -235,7 +244,7 @@ public void ConvertDataForCurrentDungeon(List dungeonParts) gotoQuest.SelectRoomCoordinates(dungeonParts); break; } - quest.CreateQuestString(); + quest.CreateQuestString(_language); } } } diff --git a/Assets/Scripts/Game/NarrativeGenerator/Quests/QuestLineList.cs b/Assets/Scripts/Game/NarrativeGenerator/Quests/QuestLineList.cs index efcb3c0ba..c9306dbbf 100644 --- a/Assets/Scripts/Game/NarrativeGenerator/Quests/QuestLineList.cs +++ b/Assets/Scripts/Game/NarrativeGenerator/Quests/QuestLineList.cs @@ -2,12 +2,14 @@ using System.Collections.Generic; using Game.LevelGenerator.LevelSOs; using Overlord.ProfileAnalyst; -using Game.NarrativeGenerator.EnemyRelatedNarrative; -using Game.NarrativeGenerator.ItemRelatedNarrative; +using Overlord.NarrativeGenerator.EnemyRelatedNarrative; +using Overlord.NarrativeGenerator.ItemRelatedNarrative; using Game.NPCs; using ScriptableObjects; using UnityEngine; using Util; +using System.Linq; + #if UNITY_EDITOR using UnityEditor; #endif @@ -109,27 +111,32 @@ public void CreateAssetsForEnemies(string directory) } } - public void CalculateDifficultyFromProfile(float masteryPreference) { EnemyParametersForQuestLines.CalculateDifficultyFromProfile(masteryPreference/100f); } - public void CalculateMonsterFromQuests() + public void CalculateItemsFromQuests() { - EnemyParametersForQuestLines.CalculateMonsterFromQuests(QuestLines); + foreach (var quest in QuestLines.SelectMany(QuestLines => QuestLines.Quests)) + { + ItemParametersForQuestLines.CalculateItemsFromQuests(quest); + } } - public void CalculateItemsFromQuests() + public void CalculateMonsterFromQuests() { - ItemParametersForQuestLines.CalculateItemsFromQuests(QuestLines); + foreach (var quest in QuestLines.SelectMany(QuestLines => QuestLines.Quests)) + { + EnemyParametersForQuestLines.CalculateMonsterFromQuests(quest); + } } public void CalculateDungeonParametersFromQuests(float explorationPreference, float achievementPreference) { DungeonParametersForQuestLines.CalculateDungeonParametersFromQuests(QuestLines , explorationPreference/100f, achievementPreference/100f); - } + } public void SetRandomMainQuest(List rewardedKeys) { diff --git a/Assets/Scripts/Game/NarrativeGenerator/TopdownQuestGeneratorManager.cs b/Assets/Scripts/Game/NarrativeGenerator/TopdownQuestGeneratorManager.cs index 7d8957254..24caa1aed 100644 --- a/Assets/Scripts/Game/NarrativeGenerator/TopdownQuestGeneratorManager.cs +++ b/Assets/Scripts/Game/NarrativeGenerator/TopdownQuestGeneratorManager.cs @@ -9,8 +9,8 @@ using Game.Maestro; using Game.GameManager; using Game.NarrativeGenerator; -using Game.NarrativeGenerator.EnemyRelatedNarrative; -using Game.NarrativeGenerator.ItemRelatedNarrative; +using Overlord.NarrativeGenerator.EnemyRelatedNarrative; +using Overlord.NarrativeGenerator.ItemRelatedNarrative; using Game.NarrativeGenerator.Quests; using MyBox; using ScriptableObjects; @@ -25,40 +25,36 @@ namespace Topdown.Overlord.NarrativeGenerator { [RequireComponent(typeof(TopdownPlayerProfileManager), typeof(TopdownEnemyGeneratorManager), typeof(LevelGeneratorManager))] - public class TopdownQuestGeneratorManager : MonoBehaviour + public class TopdownQuestGeneratorManager : QuestGeneratorManager { - [field:SerializeField] public bool MustCreateNarrative { get; set; } - [field: SerializeField, MustBeAssigned] public SelectedLevels SelectedLevels { get; set; } [field: SerializeField, MustBeAssigned] public GeneratorSettings CurrentGeneratorSettings { get; set; } + [field: SerializeField, MustBeAssigned] public SelectedLevels SelectedLevels { get; set; } - public static event ProfileSelectedEvent ProfileSelectedEventHandler; - public static event QuestLineCreatedEvent QuestLineCreatedEventHandler; - public static event ProfileSelectedEvent FixedLevelProfileEventHandler; + public static event ProfileSelectedEvent ProfileSelectedEventHandler; // Topdown event + public static event QuestLineCreatedEvent QuestLineCreatedEventHandler; // Topdown event + public static event ProfileSelectedEvent FixedLevelProfileEventHandler; // Topdown event [MustBeAssigned, SerializeReference, SerializeField] private PlayerProfileToQuestLinesDictionarySo _playerProfileToQuestLines; + [SerializeReference, SerializeField] private QuestLineList questLines; private TopdownEnemyGeneratorManager _enemyGeneratorManager; private LevelGeneratorManager _levelGeneratorManager; - public void OnEnable() - { - TopdownPlayerProfileManager.ProfileSelected += HandleProfileSelected; - } - - public void OnDisable() + private void Start() { - TopdownPlayerProfileManager.ProfileSelected -= HandleProfileSelected; + _enemyGeneratorManager = GetComponent(); + _levelGeneratorManager = GetComponent(); } - private async void HandleProfileSelected(IPlayerProfile profile) + protected override async void HandleProfileSelected(IPlayerProfile profile) { if (profile is YeePlayerProfile yeeProfile) { if (yeeProfile.IsFixedFromExperiment || MustCreateNarrative) { - questLines = Selector.CreateMissions(CurrentGeneratorSettings); + questLines = TopdownQuestSelector.CreateMissions(CurrentGeneratorSettings, language); await CreateNarrative(yeeProfile); } else @@ -67,14 +63,8 @@ private async void HandleProfileSelected(IPlayerProfile profile) } } } - - private void Start() - { - _enemyGeneratorManager = GetComponent(); - _levelGeneratorManager = GetComponent(); - } - private async Task CreateNarrative(YeePlayerProfile playerProfile) + protected override async Task CreateNarrative(YeePlayerProfile playerProfile) { CreateGeneratorParametersForQuestLine(playerProfile); questLines.TargetProfile = playerProfile; @@ -82,7 +72,7 @@ private async Task CreateNarrative(YeePlayerProfile playerProfile) #if UNITY_EDITOR if (!CurrentGeneratorSettings.GenerateInRealTime) { - var narrativeExperimentRepository = new NarrativeExperimentRepository(playerProfile, _playerProfileToQuestLines, CurrentGeneratorSettings); + var narrativeExperimentRepository = new NarrativeExperimentRepository(playerProfile, _playerProfileToQuestLines, CurrentGeneratorSettings, language); narrativeExperimentRepository.Save(questLines, playerProfile.PlayerProfileEnum.ToString()); } #endif diff --git a/Assets/Scripts/Game/NarrativeGenerator/Selector.cs b/Assets/Scripts/Game/NarrativeGenerator/TopdownQuestSelector.cs similarity index 92% rename from Assets/Scripts/Game/NarrativeGenerator/Selector.cs rename to Assets/Scripts/Game/NarrativeGenerator/TopdownQuestSelector.cs index 95392fbae..75f1c91f1 100644 --- a/Assets/Scripts/Game/NarrativeGenerator/Selector.cs +++ b/Assets/Scripts/Game/NarrativeGenerator/TopdownQuestSelector.cs @@ -3,24 +3,27 @@ using System; using Game.ExperimentControllers; using Game.NarrativeGenerator.Quests; -using Game.NarrativeGenerator.Quests.QuestGrammarTerminals; +using Overlord.NarrativeGenerator.Quests.QuestGrammarTerminals; using Game.NPCs; using MyBox; using UnityEngine; using Util; using System.Net.NetworkInformation; +using Overlord.NarrativeGenerator.Quests; namespace Game.NarrativeGenerator { - public static class Selector + public static class TopdownQuestSelector { private static Dictionary _wasQuestAdded; private static GeneratorSettings _generatorSettings; + private static Enums.Language _language; - public static QuestLineList CreateMissions(in GeneratorSettings generatorSettings) + public static QuestLineList CreateMissions(in GeneratorSettings generatorSettings, Enums.Language language) { _generatorSettings = generatorSettings; _wasQuestAdded = new Dictionary(); + _language = language; return DrawMissions(); } diff --git a/Assets/Scripts/Game/NarrativeGenerator/LoadText.cs.meta b/Assets/Scripts/Game/NarrativeGenerator/TopdownQuestSelector.cs.meta similarity index 83% rename from Assets/Scripts/Game/NarrativeGenerator/LoadText.cs.meta rename to Assets/Scripts/Game/NarrativeGenerator/TopdownQuestSelector.cs.meta index 526b75111..a2c02dd7b 100644 --- a/Assets/Scripts/Game/NarrativeGenerator/LoadText.cs.meta +++ b/Assets/Scripts/Game/NarrativeGenerator/TopdownQuestSelector.cs.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: afaa5f586e0dad24aa1d2d178c57b3bb +guid: 663e05c8e6862b349bc498ec0e1e4f0d MonoImporter: externalObjects: {} serializedVersion: 2 diff --git a/Assets/Scripts/Game/Quests/EventArgs/NewQuestEventArgs.cs b/Assets/Scripts/Game/Quests/EventArgs/NewQuestEventArgs.cs index e45515c9f..d6c0d5b02 100644 --- a/Assets/Scripts/Game/Quests/EventArgs/NewQuestEventArgs.cs +++ b/Assets/Scripts/Game/Quests/EventArgs/NewQuestEventArgs.cs @@ -1,5 +1,5 @@ -using Game.NarrativeGenerator.Quests; -using Game.NPCs; +using Game.NPCs; +using Overlord.NarrativeGenerator.Quests; namespace Game.Quests { diff --git a/Assets/Scripts/Game/Quests/EventArgs/QuestCheckpointEventArgs.cs b/Assets/Scripts/Game/Quests/EventArgs/QuestCheckpointEventArgs.cs index d94ce6ab6..90439ee67 100644 --- a/Assets/Scripts/Game/Quests/EventArgs/QuestCheckpointEventArgs.cs +++ b/Assets/Scripts/Game/Quests/EventArgs/QuestCheckpointEventArgs.cs @@ -1,4 +1,4 @@ -using Game.NarrativeGenerator.Quests; +using Overlord.NarrativeGenerator.Quests; namespace Game.Quests { diff --git a/Assets/Scripts/Game/Quests/EventArgs/QuestExchangeEventArgs.cs b/Assets/Scripts/Game/Quests/EventArgs/QuestExchangeEventArgs.cs index 6327395cd..ffe108deb 100644 --- a/Assets/Scripts/Game/Quests/EventArgs/QuestExchangeEventArgs.cs +++ b/Assets/Scripts/Game/Quests/EventArgs/QuestExchangeEventArgs.cs @@ -1,4 +1,4 @@ -using Game.NarrativeGenerator.Quests.QuestGrammarTerminals; +using Overlord.NarrativeGenerator.Quests.QuestGrammarTerminals; namespace Game.Quests { diff --git a/Assets/Scripts/Game/Quests/EventArgs/QuestGiveEventArgs.cs b/Assets/Scripts/Game/Quests/EventArgs/QuestGiveEventArgs.cs index d0e60e0a0..e0800d4e0 100644 --- a/Assets/Scripts/Game/Quests/EventArgs/QuestGiveEventArgs.cs +++ b/Assets/Scripts/Game/Quests/EventArgs/QuestGiveEventArgs.cs @@ -1,4 +1,4 @@ -using Game.NarrativeGenerator.Quests.QuestGrammarTerminals; +using Overlord.NarrativeGenerator.Quests.QuestGrammarTerminals; namespace Game.Quests { diff --git a/Assets/Scripts/Game/Quests/QuestController.cs b/Assets/Scripts/Game/Quests/QuestController.cs index f9f3c7010..a9a6d547f 100644 --- a/Assets/Scripts/Game/Quests/QuestController.cs +++ b/Assets/Scripts/Game/Quests/QuestController.cs @@ -4,7 +4,7 @@ using Game.LevelManager.DungeonLoader; using Game.LevelSelection; using Game.NarrativeGenerator.Quests; -using Game.NarrativeGenerator.Quests.QuestGrammarTerminals; +using Overlord.NarrativeGenerator.Quests.QuestGrammarTerminals; using Game.NPCs; using ScriptableObjects; using UnityEngine; diff --git a/Assets/Scripts/Game/Quests/UI/QuestUI.cs b/Assets/Scripts/Game/Quests/UI/QuestUI.cs index 73159a4e5..55860c606 100644 --- a/Assets/Scripts/Game/Quests/UI/QuestUI.cs +++ b/Assets/Scripts/Game/Quests/UI/QuestUI.cs @@ -1,11 +1,13 @@ using Game.NarrativeGenerator.Quests; using Game.Quests; +using Overlord.NarrativeGenerator; using System; using System.Collections.Generic; using System.Text.RegularExpressions; using UnityEngine; using UnityEngine.InputSystem; using UnityEngine.UIElements; +using Topdown.Overlord.NarrativeGenerator; public class QuestUI : MonoBehaviour { @@ -15,10 +17,14 @@ public class QuestUI : MonoBehaviour private VisualElement _root; private QuestLineList currentQuestLines; + private QuestGeneratorManager _questGeneratorManager; private void Awake() { QuestController questController = FindObjectOfType(); + _questGeneratorManager = FindObjectOfType(); + if ( _questGeneratorManager == null ) + _questGeneratorManager = FindObjectOfType(); if ( questController == null ) Destroy(gameObject); currentQuestLines = questController.QuestLines; @@ -57,7 +63,7 @@ public void PopulateLabels() { if (questLine.GetCurrentQuest() != null) { - questLine.GetCurrentQuest().CreateQuestString(); + questLine.GetCurrentQuest().CreateQuestString(_questGeneratorManager.language); //questContents[0] += "\n - "+questLine.GetCurrentQuest().GetType().Name.Replace("QuestSo", "") + " " + RemoveAngleBracketContent(questLine.GetCurrentQuest().ToString()); questContents[0] += "\n - " + " " + RemoveAngleBracketContent(questLine.GetCurrentQuest().ToString()); } diff --git a/Assets/Scripts/Game/NarrativeGenerator/Quests/ProfileQuests.meta b/Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm.meta similarity index 77% rename from Assets/Scripts/Game/NarrativeGenerator/Quests/ProfileQuests.meta rename to Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm.meta index 67023f80c..759d65569 100644 --- a/Assets/Scripts/Game/NarrativeGenerator/Quests/ProfileQuests.meta +++ b/Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 8b049af5656fee34daa4cc1ea6a7847a +guid: 5c70e1589961658499aa6e18abd1fbe6 folderAsset: yes DefaultImporter: externalObjects: {} diff --git a/Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/EnemyRelatedNarrative.meta b/Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/EnemyRelatedNarrative.meta new file mode 100644 index 000000000..7325aeba8 --- /dev/null +++ b/Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/EnemyRelatedNarrative.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 860fbfe4ec27e7a46822de94dcb72b6c +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Game/EnemyManager/EnemyByAmountDictionary.cs b/Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/EnemyRelatedNarrative/EnemyByAmountDictionary.cs similarity index 67% rename from Assets/Scripts/Game/EnemyManager/EnemyByAmountDictionary.cs rename to Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/EnemyRelatedNarrative/EnemyByAmountDictionary.cs index 79e129569..76a7910d3 100644 --- a/Assets/Scripts/Game/EnemyManager/EnemyByAmountDictionary.cs +++ b/Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/EnemyRelatedNarrative/EnemyByAmountDictionary.cs @@ -1,9 +1,9 @@ -using Game.NarrativeGenerator.Quests; +using Overlord.NarrativeGenerator.Quests; using ScriptableObjects; using ScriptableObjects.SerializableDictionaryLite; using System; -namespace Game.EnemyManager +namespace Overlord.NarrativeGenerator.EnemyRelatedNarrative { [Serializable] public class EnemyByAmountDictionary : SerializableDictionaryBase diff --git a/Assets/Scripts/Game/EnemyManager/EnemyByAmountDictionary.cs.meta b/Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/EnemyRelatedNarrative/EnemyByAmountDictionary.cs.meta similarity index 100% rename from Assets/Scripts/Game/EnemyManager/EnemyByAmountDictionary.cs.meta rename to Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/EnemyRelatedNarrative/EnemyByAmountDictionary.cs.meta diff --git a/Assets/Scripts/Game/NarrativeGenerator/EnemyRelatedNarrative/WeaponTypeAmountDictionary.cs b/Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/EnemyRelatedNarrative/WeaponTypeAmountDictionary.cs similarity index 89% rename from Assets/Scripts/Game/NarrativeGenerator/EnemyRelatedNarrative/WeaponTypeAmountDictionary.cs rename to Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/EnemyRelatedNarrative/WeaponTypeAmountDictionary.cs index 1199af5df..7f593d620 100644 --- a/Assets/Scripts/Game/NarrativeGenerator/EnemyRelatedNarrative/WeaponTypeAmountDictionary.cs +++ b/Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/EnemyRelatedNarrative/WeaponTypeAmountDictionary.cs @@ -1,7 +1,7 @@ using System; using ScriptableObjects; -namespace Game.NarrativeGenerator.EnemyRelatedNarrative +namespace Overlord.NarrativeGenerator.EnemyRelatedNarrative { [Serializable] public class WeaponTypeAmountDictionary : KeyByQuestIdsDictionary diff --git a/Assets/Scripts/Game/NarrativeGenerator/EnemyRelatedNarrative/WeaponTypeAmountDictionary.cs.meta b/Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/EnemyRelatedNarrative/WeaponTypeAmountDictionary.cs.meta similarity index 100% rename from Assets/Scripts/Game/NarrativeGenerator/EnemyRelatedNarrative/WeaponTypeAmountDictionary.cs.meta rename to Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/EnemyRelatedNarrative/WeaponTypeAmountDictionary.cs.meta diff --git a/Assets/Scripts/Game/NarrativeGenerator/ItemRelatedNarrative.meta b/Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/ItemRelatedNarrative.meta similarity index 100% rename from Assets/Scripts/Game/NarrativeGenerator/ItemRelatedNarrative.meta rename to Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/ItemRelatedNarrative.meta diff --git a/Assets/Scripts/Game/NarrativeGenerator/EnemyRelatedNarrative/EnemiesByType.cs b/Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/ItemRelatedNarrative/EnemiesByType.cs similarity index 92% rename from Assets/Scripts/Game/NarrativeGenerator/EnemyRelatedNarrative/EnemiesByType.cs rename to Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/ItemRelatedNarrative/EnemiesByType.cs index 2417a092e..0e918036a 100644 --- a/Assets/Scripts/Game/NarrativeGenerator/EnemyRelatedNarrative/EnemiesByType.cs +++ b/Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/ItemRelatedNarrative/EnemiesByType.cs @@ -1,14 +1,14 @@ using System; using System.Collections.Generic; using System.Linq; -using Game.EnemyManager; -using Game.GameManager; -using Game.NarrativeGenerator.Quests; +//using Game.GameManager; +using Overlord.NarrativeGenerator.Quests; using MyBox; using ScriptableObjects; using UnityEngine; +using Overlord.RulesGenerator.EnemyGeneration; -namespace Game.NarrativeGenerator.EnemyRelatedNarrative +namespace Overlord.NarrativeGenerator.EnemyRelatedNarrative { [Serializable] public class EnemiesByType @@ -65,7 +65,7 @@ public void RemoveCurrentTypeIfEmpty(WeaponTypeSo selectedType) EnemiesByTypeDictionary.Remove(selectedType); } } - + public EnemyByAmountDictionary GetEnemiesForRoom() { var enemiesBySo = new EnemyByAmountDictionary(); @@ -73,7 +73,7 @@ public EnemyByAmountDictionary GetEnemiesForRoom() { foreach (var questId in enemyType.Value.QuestIds) { - var selectedEnemy = EnemyLoader.GetRandomEnemyOfType(enemyType.Key); + var selectedEnemy = EnemiesForCurrentDungeon.GetRandomEnemyOfType(enemyType.Key); if (!enemiesBySo.ContainsKey(selectedEnemy)) { var questIdList = new QuestIdList(); @@ -83,7 +83,7 @@ public EnemyByAmountDictionary GetEnemiesForRoom() } } return enemiesBySo; - } + } public bool TryAddHealer(ref EnemiesByType enemies) { @@ -114,5 +114,6 @@ public void RemoveEnemyWithId(WeaponTypeSo weaponTypeSo, int questId) { EnemiesByTypeDictionary[weaponTypeSo].QuestIds.Remove(questId); } + } } \ No newline at end of file diff --git a/Assets/Scripts/Game/NarrativeGenerator/EnemyRelatedNarrative/EnemiesByType.cs.meta b/Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/ItemRelatedNarrative/EnemiesByType.cs.meta similarity index 100% rename from Assets/Scripts/Game/NarrativeGenerator/EnemyRelatedNarrative/EnemiesByType.cs.meta rename to Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/ItemRelatedNarrative/EnemiesByType.cs.meta diff --git a/Assets/Scripts/Game/NarrativeGenerator/ItemRelatedNarrative/ItemAmountDictionary.cs b/Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/ItemRelatedNarrative/ItemAmountDictionary.cs similarity index 90% rename from Assets/Scripts/Game/NarrativeGenerator/ItemRelatedNarrative/ItemAmountDictionary.cs rename to Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/ItemRelatedNarrative/ItemAmountDictionary.cs index 2fad3e9a3..56f165194 100644 --- a/Assets/Scripts/Game/NarrativeGenerator/ItemRelatedNarrative/ItemAmountDictionary.cs +++ b/Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/ItemRelatedNarrative/ItemAmountDictionary.cs @@ -1,7 +1,7 @@ using System; using ScriptableObjects; -namespace Game.NarrativeGenerator.ItemRelatedNarrative +namespace Overlord.NarrativeGenerator.ItemRelatedNarrative { [Serializable] // SerializableDictionaryBase -> -> > diff --git a/Assets/Scripts/Game/NarrativeGenerator/ItemRelatedNarrative/ItemAmountDictionary.cs.meta b/Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/ItemRelatedNarrative/ItemAmountDictionary.cs.meta similarity index 100% rename from Assets/Scripts/Game/NarrativeGenerator/ItemRelatedNarrative/ItemAmountDictionary.cs.meta rename to Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/ItemRelatedNarrative/ItemAmountDictionary.cs.meta diff --git a/Assets/Scripts/Game/NarrativeGenerator/ItemRelatedNarrative/ItemsAmount.cs b/Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/ItemRelatedNarrative/ItemsAmount.cs similarity index 95% rename from Assets/Scripts/Game/NarrativeGenerator/ItemRelatedNarrative/ItemsAmount.cs rename to Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/ItemRelatedNarrative/ItemsAmount.cs index def5f2b8f..0fd0261fa 100644 --- a/Assets/Scripts/Game/NarrativeGenerator/ItemRelatedNarrative/ItemsAmount.cs +++ b/Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/ItemRelatedNarrative/ItemsAmount.cs @@ -1,12 +1,12 @@ using System; using System.Collections.Generic; using System.Linq; -using Game.NarrativeGenerator.Quests; +using Overlord.NarrativeGenerator.Quests; using MyBox; using ScriptableObjects; using UnityEngine; -namespace Game.NarrativeGenerator.ItemRelatedNarrative +namespace Overlord.NarrativeGenerator.ItemRelatedNarrative { [Serializable] public class ItemsAmount : ICloneable diff --git a/Assets/Scripts/Game/NarrativeGenerator/ItemRelatedNarrative/ItemsAmount.cs.meta b/Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/ItemRelatedNarrative/ItemsAmount.cs.meta similarity index 100% rename from Assets/Scripts/Game/NarrativeGenerator/ItemRelatedNarrative/ItemsAmount.cs.meta rename to Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/ItemRelatedNarrative/ItemsAmount.cs.meta diff --git a/Assets/Scripts/Game/NarrativeGenerator/ItemRelatedNarrative/QuestItemsParameters.cs b/Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/ItemRelatedNarrative/QuestItemsParameters.cs similarity index 87% rename from Assets/Scripts/Game/NarrativeGenerator/ItemRelatedNarrative/QuestItemsParameters.cs rename to Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/ItemRelatedNarrative/QuestItemsParameters.cs index 7fab643af..38f6c77c9 100644 --- a/Assets/Scripts/Game/NarrativeGenerator/ItemRelatedNarrative/QuestItemsParameters.cs +++ b/Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/ItemRelatedNarrative/QuestItemsParameters.cs @@ -1,11 +1,12 @@ using System; using System.Collections.Generic; using System.Linq; -using Game.NarrativeGenerator.Quests; -using Game.NarrativeGenerator.Quests.QuestGrammarTerminals; +//using Game.NarrativeGenerator.Quests; using UnityEngine; +using Overlord.NarrativeGenerator.Quests; +using Overlord.NarrativeGenerator.Quests.QuestGrammarTerminals; -namespace Game.NarrativeGenerator.ItemRelatedNarrative +namespace Overlord.NarrativeGenerator.ItemRelatedNarrative { [Serializable] public class QuestItemsParameters @@ -23,6 +24,7 @@ public QuestItemsParameters() TotalItemValue = 0; } + /* public void CalculateItemsFromQuests(IEnumerable questLines) { foreach (var quest in questLines.SelectMany(questLine => questLine.Quests)) @@ -31,6 +33,13 @@ public void CalculateItemsFromQuests(IEnumerable questLines) AddItemWhenImmersionQuest(quest); } } + */ + + public void CalculateItemsFromQuests(QuestSo quest) + { + AddItemWhenAchievementQuest(quest); + AddItemWhenImmersionQuest(quest); + } private void AddItemWhenAchievementQuest(QuestSo quest) { diff --git a/Assets/Scripts/Game/NarrativeGenerator/ItemRelatedNarrative/QuestItemsParameters.cs.meta b/Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/ItemRelatedNarrative/QuestItemsParameters.cs.meta similarity index 100% rename from Assets/Scripts/Game/NarrativeGenerator/ItemRelatedNarrative/QuestItemsParameters.cs.meta rename to Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/ItemRelatedNarrative/QuestItemsParameters.cs.meta diff --git a/Assets/Scripts/Game/NarrativeGenerator/KeyByQuestIdsDictionary.cs b/Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/KeyByQuestIdsDictionary.cs similarity index 89% rename from Assets/Scripts/Game/NarrativeGenerator/KeyByQuestIdsDictionary.cs rename to Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/KeyByQuestIdsDictionary.cs index 0a516e8e0..9f2221bbf 100644 --- a/Assets/Scripts/Game/NarrativeGenerator/KeyByQuestIdsDictionary.cs +++ b/Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/KeyByQuestIdsDictionary.cs @@ -1,10 +1,8 @@ using System; -using System.Collections; -using System.Collections.Generic; -using Game.NarrativeGenerator.Quests; +using Overlord.NarrativeGenerator.Quests; using ScriptableObjects.SerializableDictionaryLite; -namespace Game.NarrativeGenerator +namespace Overlord.NarrativeGenerator { [Serializable] public class KeyByQuestIdsDictionary : SerializableDictionaryBase diff --git a/Assets/Scripts/Game/NarrativeGenerator/KeyByQuestIdsDictionary.cs.meta b/Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/KeyByQuestIdsDictionary.cs.meta similarity index 100% rename from Assets/Scripts/Game/NarrativeGenerator/KeyByQuestIdsDictionary.cs.meta rename to Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/KeyByQuestIdsDictionary.cs.meta diff --git a/Assets/Scripts/Game/NarrativeGenerator/Quests/MarkovChains.meta b/Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/MarkovChains.meta similarity index 100% rename from Assets/Scripts/Game/NarrativeGenerator/Quests/MarkovChains.meta rename to Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/MarkovChains.meta diff --git a/Assets/Scripts/Game/NarrativeGenerator/Quests/ISymbol.cs b/Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/MarkovChains/ISymbol.cs similarity index 74% rename from Assets/Scripts/Game/NarrativeGenerator/Quests/ISymbol.cs rename to Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/MarkovChains/ISymbol.cs index 410999906..8fb07d0c3 100644 --- a/Assets/Scripts/Game/NarrativeGenerator/Quests/ISymbol.cs +++ b/Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/MarkovChains/ISymbol.cs @@ -2,8 +2,9 @@ using System.Collections.Generic; using Game.ExperimentControllers; using Game.NPCs; +using static Util.Enums; -namespace Game.NarrativeGenerator.Quests +namespace Overlord.NarrativeGenerator.Quests { public interface ISymbol { @@ -11,6 +12,6 @@ public interface ISymbol public string SymbolType {get;} public bool CanDrawNext {get;} public void SetNextSymbol ( MarkovChain chain ); - public QuestSo DefineQuestSo (List questSos, NpcSo npcInCharge, in GeneratorSettings generatorSettings); + public QuestSo DefineQuestSo (List questSos, NpcSo npcInCharge, in GeneratorSettings generatorSettings, Language language); } } \ No newline at end of file diff --git a/Assets/Scripts/Game/NarrativeGenerator/Quests/ISymbol.cs.meta b/Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/MarkovChains/ISymbol.cs.meta similarity index 100% rename from Assets/Scripts/Game/NarrativeGenerator/Quests/ISymbol.cs.meta rename to Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/MarkovChains/ISymbol.cs.meta diff --git a/Assets/Scripts/Game/NarrativeGenerator/Quests/MarkovChains/MarkovChain.cs b/Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/MarkovChains/MarkovChain.cs similarity index 94% rename from Assets/Scripts/Game/NarrativeGenerator/Quests/MarkovChains/MarkovChain.cs rename to Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/MarkovChains/MarkovChain.cs index 2e2c75f66..93fbb1a6a 100644 --- a/Assets/Scripts/Game/NarrativeGenerator/Quests/MarkovChains/MarkovChain.cs +++ b/Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/MarkovChains/MarkovChain.cs @@ -1,11 +1,11 @@ using UnityEngine; using System.Collections.Generic; -using Game.NarrativeGenerator; -using Game.NarrativeGenerator.Quests.QuestGrammarTerminals; -using Game.NarrativeGenerator.Quests.QuestGrammarNonTerminals; +using Overlord.NarrativeGenerator; +using Overlord.NarrativeGenerator.Quests.QuestGrammarTerminals; +using Overlord.NarrativeGenerator.Quests.QuestGrammarNonTerminals; using Util; -namespace Game.NarrativeGenerator.Quests +namespace Overlord.NarrativeGenerator.Quests { public class MarkovChain { diff --git a/Assets/Scripts/Game/NarrativeGenerator/Quests/MarkovChains/MarkovChain.cs.meta b/Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/MarkovChains/MarkovChain.cs.meta similarity index 100% rename from Assets/Scripts/Game/NarrativeGenerator/Quests/MarkovChains/MarkovChain.cs.meta rename to Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/MarkovChains/MarkovChain.cs.meta diff --git a/Assets/Scripts/Game/NarrativeGenerator/Quests/MarkovChains/StartSymbol.cs b/Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/MarkovChains/StartSymbol.cs similarity index 73% rename from Assets/Scripts/Game/NarrativeGenerator/Quests/MarkovChains/StartSymbol.cs rename to Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/MarkovChains/StartSymbol.cs index 2cd634d60..17b403e91 100644 --- a/Assets/Scripts/Game/NarrativeGenerator/Quests/MarkovChains/StartSymbol.cs +++ b/Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/MarkovChains/StartSymbol.cs @@ -1,9 +1,4 @@ -using System.Collections.Generic; -using MyBox; -using ScriptableObjects; -using UnityEngine; - -namespace Game.NarrativeGenerator.Quests.QuestGrammarNonTerminals +namespace Overlord.NarrativeGenerator.Quests.QuestGrammarNonTerminals { public class StartSymbol : QuestSo { @@ -21,7 +16,7 @@ public override void RemoveElementWithId(T questElement, int questId) throw new System.NotImplementedException(); } - public override void CreateQuestString() + public override void CreateQuestString(Util.Enums.Language language) { throw new System.NotImplementedException(); } diff --git a/Assets/Scripts/Game/NarrativeGenerator/Quests/MarkovChains/StartSymbol.cs.meta b/Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/MarkovChains/StartSymbol.cs.meta similarity index 100% rename from Assets/Scripts/Game/NarrativeGenerator/Quests/MarkovChains/StartSymbol.cs.meta rename to Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/MarkovChains/StartSymbol.cs.meta diff --git a/Assets/Scripts/Game/NarrativeGenerator/Quests/QuestIdList.cs b/Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/QuestIdList.cs similarity index 92% rename from Assets/Scripts/Game/NarrativeGenerator/Quests/QuestIdList.cs rename to Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/QuestIdList.cs index 148ddb699..c65145371 100644 --- a/Assets/Scripts/Game/NarrativeGenerator/Quests/QuestIdList.cs +++ b/Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/QuestIdList.cs @@ -2,7 +2,7 @@ using System.Collections.Generic; using UnityEngine; -namespace Game.NarrativeGenerator.Quests +namespace Overlord.NarrativeGenerator.Quests { [Serializable] public class QuestIdList diff --git a/Assets/Scripts/Game/NarrativeGenerator/Quests/QuestIdList.cs.meta b/Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/QuestIdList.cs.meta similarity index 100% rename from Assets/Scripts/Game/NarrativeGenerator/Quests/QuestIdList.cs.meta rename to Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/QuestIdList.cs.meta diff --git a/Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/QuestSelector.cs b/Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/QuestSelector.cs new file mode 100644 index 000000000..d1253e6be --- /dev/null +++ b/Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/QuestSelector.cs @@ -0,0 +1,11 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +namespace Overlord.NarrativeGenerator.Quests +{ + public static class QuestSelector + { + + } +} \ No newline at end of file diff --git a/Assets/Scripts/Game/NarrativeGenerator/QuestManager.cs.meta b/Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/QuestSelector.cs.meta similarity index 83% rename from Assets/Scripts/Game/NarrativeGenerator/QuestManager.cs.meta rename to Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/QuestSelector.cs.meta index cbe4b3758..6069e0031 100644 --- a/Assets/Scripts/Game/NarrativeGenerator/QuestManager.cs.meta +++ b/Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/QuestSelector.cs.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: bea26ab2ba36b744091a456033a6278a +guid: ca240e93c8565ad4bb01fe84c9973d0e MonoImporter: externalObjects: {} serializedVersion: 2 diff --git a/Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/QuestsPerProfile.meta b/Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/QuestsPerProfile.meta new file mode 100644 index 000000000..125675442 --- /dev/null +++ b/Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/QuestsPerProfile.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 4f9ba739832f3884c831f8ff5761d6d2 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Game/NarrativeGenerator/Quests/ProfileQuests/Achievement.meta b/Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/QuestsPerProfile/Achievement.meta similarity index 100% rename from Assets/Scripts/Game/NarrativeGenerator/Quests/ProfileQuests/Achievement.meta rename to Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/QuestsPerProfile/Achievement.meta diff --git a/Assets/Scripts/Game/NarrativeGenerator/Quests/ProfileQuests/Achievement/AchievementQuestSo.cs b/Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/QuestsPerProfile/Achievement/AchievementQuestSo.cs similarity index 87% rename from Assets/Scripts/Game/NarrativeGenerator/Quests/ProfileQuests/Achievement/AchievementQuestSo.cs rename to Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/QuestsPerProfile/Achievement/AchievementQuestSo.cs index 29a4d9f70..a41560141 100644 --- a/Assets/Scripts/Game/NarrativeGenerator/Quests/ProfileQuests/Achievement/AchievementQuestSo.cs +++ b/Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/QuestsPerProfile/Achievement/AchievementQuestSo.cs @@ -8,10 +8,11 @@ using UnityEngine; using Game.NPCs; using MyBox; -using Game.NarrativeGenerator.ItemRelatedNarrative; -using Game.GameManager; +using Overlord.NarrativeGenerator.ItemRelatedNarrative; +//using Game.GameManager; +using static Util.Enums; -namespace Game.NarrativeGenerator.Quests.QuestGrammarTerminals +namespace Overlord.NarrativeGenerator.Quests.QuestGrammarTerminals { public class AchievementQuestSo : QuestSo { @@ -33,14 +34,14 @@ public override Dictionary> NextSymbolChances } } - public override QuestSo DefineQuestSo ( List questSos, NpcSo npcInCharge, in GeneratorSettings generatorSettings) + public override QuestSo DefineQuestSo ( List questSos, NpcSo npcInCharge, in GeneratorSettings generatorSettings, Language language) { switch ( SymbolType ) { case Constants.GatherQuest: - return CreateAndSaveGatherQuestSo(questSos, generatorSettings.Gemstones, generatorSettings.ItemsToGather, npcInCharge); + return CreateAndSaveGatherQuestSo(questSos, generatorSettings.Gemstones, generatorSettings.ItemsToGather, npcInCharge, language); case Constants.ExchangeQuest: - return CreateAndSaveExchangeQuestSo(questSos, generatorSettings.PlaceholderNpcs, generatorSettings.Gemstones, generatorSettings.Tools, npcInCharge); + return CreateAndSaveExchangeQuestSo(questSos, generatorSettings.PlaceholderNpcs, generatorSettings.Gemstones, generatorSettings.Tools, npcInCharge, language); default: Debug.LogError("help something went wrong! - Achievement doesn't contain symbol: "+SymbolType); break; @@ -59,12 +60,12 @@ public override void RemoveElementWithId(T questElement, int questId) throw new NotImplementedException(); } - public override void CreateQuestString() + public override void CreateQuestString(Language l) { throw new NotImplementedException(); } - private static GatherQuestSo CreateAndSaveGatherQuestSo( List questSos, TreasureRuntimeSetSo possibleItems, RangedInt itemRange, NpcSo npcInCharge) + private static GatherQuestSo CreateAndSaveGatherQuestSo( List questSos, TreasureRuntimeSetSo possibleItems, RangedInt itemRange, NpcSo npcInCharge, Language language) { var getItemQuest = CreateInstance(); var selectedItems = new ItemAmountDictionary(); @@ -75,7 +76,7 @@ private static GatherQuestSo CreateAndSaveGatherQuestSo( List questSos, { selectedItems.AddItemWithId(selectedItem, questId); } - getItemQuest.Init(ItemsToString(selectedItems), false, questSos.Count > 0 + getItemQuest.Init(ItemsToString(selectedItems, language), false, questSos.Count > 0 ? questSos[^1] : null, selectedItems); getItemQuest.NpcInCharge = npcInCharge; if (questSos.Count > 0) @@ -87,7 +88,7 @@ private static GatherQuestSo CreateAndSaveGatherQuestSo( List questSos, } private static ExchangeQuestSo CreateAndSaveExchangeQuestSo( List questSos, List possibleNpcSos, - TreasureRuntimeSetSo itemsToGive, TreasureRuntimeSetSo itemsToReceive, NpcSo npcInCharge) + TreasureRuntimeSetSo itemsToGive, TreasureRuntimeSetSo itemsToReceive, NpcSo npcInCharge, Language language) { var exchangeQuest = CreateInstance(); var exchangedItems = new ItemAmountDictionary(); @@ -101,10 +102,10 @@ private static ExchangeQuestSo CreateAndSaveExchangeQuestSo( List quest npcCopy.Remove(npcInCharge); var selectedNpc = npcCopy.GetRandom(); - - if (GameManagerSingleton.Instance.IsInPortuguese) + + if (language == Language.Portuguese) exchangeQuest.Init($"Troque o item {selectedItem} com {selectedNpc} para receber uma recompensa!", false, questSos.Count > 0 ? questSos[^1] : null, selectedNpc, exchangedItems, receivedItem); - else + else if (language == Language.English) exchangeQuest.Init($"Exchange {selectedItem} with {selectedNpc} for a reward!", false, questSos.Count > 0 ? questSos[^1] : null, selectedNpc, exchangedItems, receivedItem); exchangeQuest.NpcInCharge = npcInCharge; @@ -118,14 +119,14 @@ private static ExchangeQuestSo CreateAndSaveExchangeQuestSo( List quest } - private static string ItemsToString(ItemAmountDictionary selectedItems) + private static string ItemsToString(ItemAmountDictionary selectedItems, Language language) { var stringBuilder = new StringBuilder(); for (var i = 0; i < selectedItems.Count; i++) { var itemAmountPair = selectedItems.ElementAt(i); - if (GameManagerSingleton.Instance.IsInPortuguese) + if (language == Language.Portuguese) { stringBuilder.Append($"Junte {itemAmountPair.Value} {itemAmountPair.Key}"); if (itemAmountPair.Value.QuestIds.Count > 1) @@ -138,7 +139,7 @@ private static string ItemsToString(ItemAmountDictionary selectedItems) stringBuilder.Append(" e "); } } - else + else if (language == Language.English) { stringBuilder.Append($"$Gather {itemAmountPair.Value} {itemAmountPair.Key}"); if (itemAmountPair.Value.QuestIds.Count > 1) diff --git a/Assets/Scripts/Game/NarrativeGenerator/Quests/ProfileQuests/Achievement/AchievementQuestSo.cs.meta b/Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/QuestsPerProfile/Achievement/AchievementQuestSo.cs.meta similarity index 100% rename from Assets/Scripts/Game/NarrativeGenerator/Quests/ProfileQuests/Achievement/AchievementQuestSo.cs.meta rename to Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/QuestsPerProfile/Achievement/AchievementQuestSo.cs.meta diff --git a/Assets/Scripts/Game/NarrativeGenerator/Quests/ProfileQuests/Achievement/ExchangeQuestData.cs b/Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/QuestsPerProfile/Achievement/ExchangeQuestData.cs similarity index 85% rename from Assets/Scripts/Game/NarrativeGenerator/Quests/ProfileQuests/Achievement/ExchangeQuestData.cs rename to Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/QuestsPerProfile/Achievement/ExchangeQuestData.cs index f641f255f..e5386c196 100644 --- a/Assets/Scripts/Game/NarrativeGenerator/Quests/ProfileQuests/Achievement/ExchangeQuestData.cs +++ b/Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/QuestsPerProfile/Achievement/ExchangeQuestData.cs @@ -1,7 +1,7 @@ -using Game.NarrativeGenerator.ItemRelatedNarrative; +using Overlord.NarrativeGenerator.ItemRelatedNarrative; using ScriptableObjects; -namespace Game.NarrativeGenerator.Quests.QuestGrammarTerminals +namespace Overlord.NarrativeGenerator.Quests.QuestGrammarTerminals { public struct ExchangeQuestData { diff --git a/Assets/Scripts/Game/NarrativeGenerator/Quests/ProfileQuests/Achievement/ExchangeQuestData.cs.meta b/Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/QuestsPerProfile/Achievement/ExchangeQuestData.cs.meta similarity index 100% rename from Assets/Scripts/Game/NarrativeGenerator/Quests/ProfileQuests/Achievement/ExchangeQuestData.cs.meta rename to Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/QuestsPerProfile/Achievement/ExchangeQuestData.cs.meta diff --git a/Assets/Scripts/Game/NarrativeGenerator/Quests/ProfileQuests/Achievement/ExchangeQuestSo.cs b/Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/QuestsPerProfile/Achievement/ExchangeQuestSo.cs similarity index 93% rename from Assets/Scripts/Game/NarrativeGenerator/Quests/ProfileQuests/Achievement/ExchangeQuestSo.cs rename to Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/QuestsPerProfile/Achievement/ExchangeQuestSo.cs index d5b0bfaa2..32bb72dbe 100644 --- a/Assets/Scripts/Game/NarrativeGenerator/Quests/ProfileQuests/Achievement/ExchangeQuestSo.cs +++ b/Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/QuestsPerProfile/Achievement/ExchangeQuestSo.cs @@ -2,15 +2,15 @@ using Util; using System; using System.Text; -using Game.NarrativeGenerator.ItemRelatedNarrative; +using Overlord.NarrativeGenerator.ItemRelatedNarrative; using System.Collections.Generic; using UnityEngine; using Game.NPCs; -using Game.GameManager; +//using Game.GameManager; using System.Linq; +using static Util.Enums; - -namespace Game.NarrativeGenerator.Quests.QuestGrammarTerminals +namespace Overlord.NarrativeGenerator.Quests.QuestGrammarTerminals { public class ExchangeQuestSo : AchievementQuestSo { @@ -116,7 +116,7 @@ public override string GetTargetNpc() return Npc.NpcName; } - public override string GetItemAmountString() + public override string GetItemAmountString(Util.Enums.Language l) { var stringBuilder = new StringBuilder(); string spriteString; @@ -148,12 +148,11 @@ public override string GetItemString() return itemsToTrade; } - public override void CreateQuestString() + public override void CreateQuestString(Language language) { var stringBuilder = new StringBuilder(); - string spriteString; - if (GameManagerSingleton.Instance.IsInPortuguese) + if (language == Language.Portuguese) { stringBuilder.Append("Troque "); } @@ -171,7 +170,7 @@ public override void CreateQuestString() stringBuilder.Remove(stringBuilder.Length - 2, 2); } - if (GameManagerSingleton.Instance.IsInPortuguese) + if (language == Language.Portuguese) { stringBuilder.Append($" com {Npc.NpcName}.\n"); stringBuilder.Append($"Você receberá dele o {ExchangeData.ReceivedItem.ItemName}"); diff --git a/Assets/Scripts/Game/NarrativeGenerator/Quests/ProfileQuests/Achievement/ExchangeQuestSo.cs.meta b/Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/QuestsPerProfile/Achievement/ExchangeQuestSo.cs.meta similarity index 100% rename from Assets/Scripts/Game/NarrativeGenerator/Quests/ProfileQuests/Achievement/ExchangeQuestSo.cs.meta rename to Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/QuestsPerProfile/Achievement/ExchangeQuestSo.cs.meta diff --git a/Assets/Scripts/Game/NarrativeGenerator/Quests/ProfileQuests/Achievement/GatherQuestSo.cs b/Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/QuestsPerProfile/Achievement/GatherQuestSo.cs similarity index 90% rename from Assets/Scripts/Game/NarrativeGenerator/Quests/ProfileQuests/Achievement/GatherQuestSo.cs rename to Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/QuestsPerProfile/Achievement/GatherQuestSo.cs index 740d1b055..9d95bb725 100644 --- a/Assets/Scripts/Game/NarrativeGenerator/Quests/ProfileQuests/Achievement/GatherQuestSo.cs +++ b/Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/QuestsPerProfile/Achievement/GatherQuestSo.cs @@ -2,12 +2,11 @@ using Util; using System; using System.Text; -using System.Collections.Generic; -using Game.NarrativeGenerator.ItemRelatedNarrative; +using Overlord.NarrativeGenerator.ItemRelatedNarrative; using UnityEngine; -using Game.GameManager; +using static Util.Enums; -namespace Game.NarrativeGenerator.Quests.QuestGrammarTerminals +namespace Overlord.NarrativeGenerator.Quests.QuestGrammarTerminals { public class GatherQuestSo : AchievementQuestSo { @@ -57,10 +56,10 @@ public override QuestSo Clone() return cloneQuest; } - public override string GetItemAmountString() + public override string GetItemAmountString(Language language) { var stringBuilder = new StringBuilder(); - if (GameManagerSingleton.Instance.IsInPortuguese) + if (language == Language.Portuguese) { stringBuilder.Append("Colete um(a)"); } @@ -113,9 +112,9 @@ public override void RemoveElementWithId(T questElement, int questId) } } - public override void CreateQuestString() + public override void CreateQuestString(Util.Enums.Language l) { - QuestText = this.GetItemAmountString(); + QuestText = this.GetItemAmountString(l); } } } \ No newline at end of file diff --git a/Assets/Scripts/Game/NarrativeGenerator/Quests/ProfileQuests/Achievement/GatherQuestSo.cs.meta b/Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/QuestsPerProfile/Achievement/GatherQuestSo.cs.meta similarity index 100% rename from Assets/Scripts/Game/NarrativeGenerator/Quests/ProfileQuests/Achievement/GatherQuestSo.cs.meta rename to Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/QuestsPerProfile/Achievement/GatherQuestSo.cs.meta diff --git a/Assets/Scripts/Game/NarrativeGenerator/Quests/ProfileQuests/Creativity.meta b/Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/QuestsPerProfile/Creativity.meta similarity index 100% rename from Assets/Scripts/Game/NarrativeGenerator/Quests/ProfileQuests/Creativity.meta rename to Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/QuestsPerProfile/Creativity.meta diff --git a/Assets/Scripts/Game/NarrativeGenerator/Quests/ProfileQuests/Creativity/CreativityQuestSo.cs b/Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/QuestsPerProfile/Creativity/CreativityQuestSo.cs similarity index 82% rename from Assets/Scripts/Game/NarrativeGenerator/Quests/ProfileQuests/Creativity/CreativityQuestSo.cs rename to Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/QuestsPerProfile/Creativity/CreativityQuestSo.cs index fe3c66bf8..6122a963b 100644 --- a/Assets/Scripts/Game/NarrativeGenerator/Quests/ProfileQuests/Creativity/CreativityQuestSo.cs +++ b/Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/QuestsPerProfile/Creativity/CreativityQuestSo.cs @@ -1,14 +1,13 @@ -using ScriptableObjects; using Util; using System; using System.Collections.Generic; -using Game.GameManager; using Game.ExperimentControllers; using UnityEngine; using Game.NPCs; using MyBox; +using static Util.Enums; -namespace Game.NarrativeGenerator.Quests.QuestGrammarTerminals +namespace Overlord.NarrativeGenerator.Quests.QuestGrammarTerminals { public class CreativityQuestSo : QuestSo { @@ -28,14 +27,14 @@ public override Dictionary> NextSymbolChances } } - public override QuestSo DefineQuestSo (List questSos, NpcSo npcInCharge, in GeneratorSettings generatorSettings) + public override QuestSo DefineQuestSo(List questSos, NpcSo npcInCharge, in GeneratorSettings generatorSettings, Language language) { switch ( SymbolType ) { case Constants.ExploreQuest: - return CreateAndSaveExploreQuestSo(questSos, npcInCharge, generatorSettings.RoomsToExplore); + return CreateAndSaveExploreQuestSo(questSos, npcInCharge, generatorSettings.RoomsToExplore, language); case Constants.GotoQuest: - return CreateAndSaveGotoQuestSo(questSos, npcInCharge); + return CreateAndSaveGotoQuestSo(questSos, npcInCharge, language); default: Debug.LogError("help something went wrong! - Creativity doesn't contain symbol: "+SymbolType); break; @@ -54,20 +53,20 @@ public override void RemoveElementWithId(T questElement, int questId) throw new NotImplementedException(); } - public override void CreateQuestString() + public override void CreateQuestString(Enums.Language l) { throw new NotImplementedException(); } - private static ExploreQuestSo CreateAndSaveExploreQuestSo(List questSos, NpcSo npcInCharge, RangedInt roomsToExplore) + private static ExploreQuestSo CreateAndSaveExploreQuestSo(List questSos, NpcSo npcInCharge, RangedInt roomsToExplore, Language language) { var exploreQuest = CreateInstance(); var numOfRoomsToExplore = RandomSingleton.GetInstance().Random.Next(roomsToExplore.Max - roomsToExplore.Min) + roomsToExplore.Min; - if (GameManagerSingleton.Instance.IsInPortuguese) + if (language == Language.Portuguese) exploreQuest.Init($"Explore {numOfRoomsToExplore} salas", false, questSos.Count > 0 ? questSos[^1] : null, numOfRoomsToExplore); - else + else if (language == Language.English) exploreQuest.Init($"Explore {numOfRoomsToExplore} rooms", false, questSos.Count > 0 ? questSos[^1] : null, numOfRoomsToExplore); if (questSos.Count > 0) @@ -81,13 +80,13 @@ private static ExploreQuestSo CreateAndSaveExploreQuestSo(List questSos return exploreQuest; } - private static GotoQuestSo CreateAndSaveGotoQuestSo( List questSos, NpcSo npcInCharge ) + private static GotoQuestSo CreateAndSaveGotoQuestSo( List questSos, NpcSo npcInCharge, Language language) { var gotoQuest = CreateInstance(); - if (GameManagerSingleton.Instance.IsInPortuguese) + if (language == Language.Portuguese) gotoQuest.Init("Vá para a sala marcada", false, questSos.Count > 0 ? questSos[^1] : null); - else + else if (language == Language.English) gotoQuest.Init("Go to the marked room", false, questSos.Count > 0 ? questSos[^1] : null); if (questSos.Count > 0) diff --git a/Assets/Scripts/Game/NarrativeGenerator/Quests/ProfileQuests/Creativity/CreativityQuestSo.cs.meta b/Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/QuestsPerProfile/Creativity/CreativityQuestSo.cs.meta similarity index 100% rename from Assets/Scripts/Game/NarrativeGenerator/Quests/ProfileQuests/Creativity/CreativityQuestSo.cs.meta rename to Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/QuestsPerProfile/Creativity/CreativityQuestSo.cs.meta diff --git a/Assets/Scripts/Game/NarrativeGenerator/Quests/ProfileQuests/Creativity/ExploreQuestSo.cs b/Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/QuestsPerProfile/Creativity/ExploreQuestSo.cs similarity index 91% rename from Assets/Scripts/Game/NarrativeGenerator/Quests/ProfileQuests/Creativity/ExploreQuestSo.cs rename to Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/QuestsPerProfile/Creativity/ExploreQuestSo.cs index 9f9567390..15d382306 100644 --- a/Assets/Scripts/Game/NarrativeGenerator/Quests/ProfileQuests/Creativity/ExploreQuestSo.cs +++ b/Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/QuestsPerProfile/Creativity/ExploreQuestSo.cs @@ -1,8 +1,9 @@ using Util; using System; using System.Collections.Generic; +using static Util.Enums; -namespace Game.NarrativeGenerator.Quests.QuestGrammarTerminals +namespace Overlord.NarrativeGenerator.Quests.QuestGrammarTerminals { public class ExploreQuestSo : CreativityQuestSo { @@ -78,11 +79,11 @@ public override void RemoveElementWithId(T questElement, int questId) } } - public override void CreateQuestString() + public override void CreateQuestString(Language language) { - if (GameManager.GameManagerSingleton.Instance.IsInPortuguese) + if (language == Language.Portuguese) QuestText = $"Visite {NumOfRoomsToExplore} ou mais salas.\n"; - else + else if (language == Language.English) QuestText = $"Visit a total of {NumOfRoomsToExplore} rooms.\n"; } diff --git a/Assets/Scripts/Game/NarrativeGenerator/Quests/ProfileQuests/Creativity/ExploreQuestSo.cs.meta b/Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/QuestsPerProfile/Creativity/ExploreQuestSo.cs.meta similarity index 100% rename from Assets/Scripts/Game/NarrativeGenerator/Quests/ProfileQuests/Creativity/ExploreQuestSo.cs.meta rename to Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/QuestsPerProfile/Creativity/ExploreQuestSo.cs.meta diff --git a/Assets/Scripts/Game/NarrativeGenerator/Quests/ProfileQuests/Creativity/GotoQuestSo.cs b/Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/QuestsPerProfile/Creativity/GotoQuestSo.cs similarity index 91% rename from Assets/Scripts/Game/NarrativeGenerator/Quests/ProfileQuests/Creativity/GotoQuestSo.cs rename to Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/QuestsPerProfile/Creativity/GotoQuestSo.cs index dca21b8fb..fa7528555 100644 --- a/Assets/Scripts/Game/NarrativeGenerator/Quests/ProfileQuests/Creativity/GotoQuestSo.cs +++ b/Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/QuestsPerProfile/Creativity/GotoQuestSo.cs @@ -3,11 +3,10 @@ using System; using System.Linq; using Game.LevelGenerator.LevelSOs; -using Game.LevelManager.DungeonLoader; using MyBox; -using UnityEngine; +using static Util.Enums; -namespace Game.NarrativeGenerator.Quests.QuestGrammarTerminals +namespace Overlord.NarrativeGenerator.Quests.QuestGrammarTerminals { public class GotoQuestSo : CreativityQuestSo { @@ -71,11 +70,11 @@ public override void RemoveElementWithId(T questElement, int questId) IsCompleted = true; } - public override void CreateQuestString() + public override void CreateQuestString(Language language) { - if (GameManager.GameManagerSingleton.Instance.IsInPortuguese) + if (language == Language.Portuguese) QuestText = $"Vá para a sala marcada no mapa! "; - else + else if (language == Language.English) QuestText = $"Go to the room highlighted in the map! "; } diff --git a/Assets/Scripts/Game/NarrativeGenerator/Quests/ProfileQuests/Creativity/GotoQuestSo.cs.meta b/Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/QuestsPerProfile/Creativity/GotoQuestSo.cs.meta similarity index 100% rename from Assets/Scripts/Game/NarrativeGenerator/Quests/ProfileQuests/Creativity/GotoQuestSo.cs.meta rename to Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/QuestsPerProfile/Creativity/GotoQuestSo.cs.meta diff --git a/Assets/Scripts/Game/NarrativeGenerator/Quests/QuestGrammarTerminals/EmptyQuestSo.cs b/Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/QuestsPerProfile/EmptyQuestSo.cs similarity index 77% rename from Assets/Scripts/Game/NarrativeGenerator/Quests/QuestGrammarTerminals/EmptyQuestSo.cs rename to Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/QuestsPerProfile/EmptyQuestSo.cs index 16a313d3d..c84fda6ae 100644 --- a/Assets/Scripts/Game/NarrativeGenerator/Quests/QuestGrammarTerminals/EmptyQuestSo.cs +++ b/Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/QuestsPerProfile/EmptyQuestSo.cs @@ -1,12 +1,7 @@ -using UnityEngine; using System; -using System.Collections.Generic; -using Game.NarrativeGenerator; -using Game.NPCs; using Util; -using ScriptableObjects; -namespace Game.NarrativeGenerator.Quests +namespace Overlord.NarrativeGenerator.Quests.QuestGrammarTerminals { // [CreateAssetMenu(fileName = "Quest", menuName = "ScriptableObjects/GetQuest"), Serializable] public class EmptyQuestSo : QuestSo, ISymbol @@ -26,7 +21,7 @@ public override void RemoveElementWithId(T questElement, int questId) throw new NotImplementedException(); } - public override void CreateQuestString() + public override void CreateQuestString(Enums.Language l) { throw new NotImplementedException(); } diff --git a/Assets/Scripts/Game/NarrativeGenerator/Quests/QuestGrammarTerminals/EmptyQuestSo.cs.meta b/Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/QuestsPerProfile/EmptyQuestSo.cs.meta similarity index 100% rename from Assets/Scripts/Game/NarrativeGenerator/Quests/QuestGrammarTerminals/EmptyQuestSo.cs.meta rename to Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/QuestsPerProfile/EmptyQuestSo.cs.meta diff --git a/Assets/Scripts/Game/NarrativeGenerator/Quests/ProfileQuests/Immersion.meta b/Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/QuestsPerProfile/Immersion.meta similarity index 100% rename from Assets/Scripts/Game/NarrativeGenerator/Quests/ProfileQuests/Immersion.meta rename to Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/QuestsPerProfile/Immersion.meta diff --git a/Assets/Scripts/Game/NarrativeGenerator/Quests/ProfileQuests/Immersion/GiveQuestData.cs b/Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/QuestsPerProfile/Immersion/GiveQuestData.cs similarity index 92% rename from Assets/Scripts/Game/NarrativeGenerator/Quests/ProfileQuests/Immersion/GiveQuestData.cs rename to Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/QuestsPerProfile/Immersion/GiveQuestData.cs index 948843988..844d2faca 100644 --- a/Assets/Scripts/Game/NarrativeGenerator/Quests/ProfileQuests/Immersion/GiveQuestData.cs +++ b/Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/QuestsPerProfile/Immersion/GiveQuestData.cs @@ -1,7 +1,7 @@ using Game.NPCs; using ScriptableObjects; -namespace Game.NarrativeGenerator.Quests.QuestGrammarTerminals +namespace Overlord.NarrativeGenerator.Quests.QuestGrammarTerminals { public class GiveQuestData { diff --git a/Assets/Scripts/Game/NarrativeGenerator/Quests/ProfileQuests/Immersion/GiveQuestData.cs.meta b/Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/QuestsPerProfile/Immersion/GiveQuestData.cs.meta similarity index 100% rename from Assets/Scripts/Game/NarrativeGenerator/Quests/ProfileQuests/Immersion/GiveQuestData.cs.meta rename to Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/QuestsPerProfile/Immersion/GiveQuestData.cs.meta diff --git a/Assets/Scripts/Game/NarrativeGenerator/Quests/ProfileQuests/Immersion/GiveQuestSo.cs b/Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/QuestsPerProfile/Immersion/GiveQuestSo.cs similarity index 91% rename from Assets/Scripts/Game/NarrativeGenerator/Quests/ProfileQuests/Immersion/GiveQuestSo.cs rename to Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/QuestsPerProfile/Immersion/GiveQuestSo.cs index 3ef1ca212..61e463b93 100644 --- a/Assets/Scripts/Game/NarrativeGenerator/Quests/ProfileQuests/Immersion/GiveQuestSo.cs +++ b/Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/QuestsPerProfile/Immersion/GiveQuestSo.cs @@ -3,8 +3,10 @@ using System.Collections.Generic; using System; using Game.NPCs; +using Overlord.NarrativeGenerator.Quests; +using static Util.Enums; -namespace Game.NarrativeGenerator.Quests.QuestGrammarTerminals +namespace Overlord.NarrativeGenerator.Quests.QuestGrammarTerminals { public class GiveQuestSo : ImmersionQuestSo { @@ -68,7 +70,7 @@ public override string GetTargetNpc() return GiveQuestData.NpcToReceive.NpcName; } - public override string GetItemAmountString() + public override string GetItemAmountString(Util.Enums.Language l) { return " 1 "+GetItemString(); } @@ -100,11 +102,11 @@ public override void RemoveElementWithId(T questElement, int questId) HasItem = true; } - public override void CreateQuestString() + public override void CreateQuestString(Language language) { var spriteString = GiveQuestData.ItemToGive.GetToolSpriteString(); - if (Game.GameManager.GameManagerSingleton.Instance.IsInPortuguese) + if (language == Language.Portuguese) QuestText = $"Entregue o item {GiveQuestData.ItemToGive.ItemName} {spriteString} para {GiveQuestData.NpcToReceive.NpcName}.\n"; else QuestText = $"Give the item {GiveQuestData.ItemToGive.ItemName} {spriteString} to {GiveQuestData.NpcToReceive.NpcName}.\n"; diff --git a/Assets/Scripts/Game/NarrativeGenerator/Quests/ProfileQuests/Immersion/GiveQuestSo.cs.meta b/Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/QuestsPerProfile/Immersion/GiveQuestSo.cs.meta similarity index 100% rename from Assets/Scripts/Game/NarrativeGenerator/Quests/ProfileQuests/Immersion/GiveQuestSo.cs.meta rename to Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/QuestsPerProfile/Immersion/GiveQuestSo.cs.meta diff --git a/Assets/Scripts/Game/NarrativeGenerator/Quests/ProfileQuests/Immersion/ImmersionQuestSo.cs b/Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/QuestsPerProfile/Immersion/ImmersionQuestSo.cs similarity index 82% rename from Assets/Scripts/Game/NarrativeGenerator/Quests/ProfileQuests/Immersion/ImmersionQuestSo.cs rename to Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/QuestsPerProfile/Immersion/ImmersionQuestSo.cs index d61ced959..12e7b1313 100644 --- a/Assets/Scripts/Game/NarrativeGenerator/Quests/ProfileQuests/Immersion/ImmersionQuestSo.cs +++ b/Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/QuestsPerProfile/Immersion/ImmersionQuestSo.cs @@ -6,8 +6,9 @@ using Game.ExperimentControllers; using UnityEngine; using Game.NPCs; +using static Util.Enums; -namespace Game.NarrativeGenerator.Quests.QuestGrammarTerminals +namespace Overlord.NarrativeGenerator.Quests.QuestGrammarTerminals { public class ImmersionQuestSo : QuestSo { @@ -29,18 +30,18 @@ public override Dictionary> NextSymbolChances } } - public override QuestSo DefineQuestSo ( List questSos, NpcSo npcInCharge, in GeneratorSettings generatorSettings) + public override QuestSo DefineQuestSo (List questSos, NpcSo npcInCharge, in GeneratorSettings generatorSettings, Language language) { switch ( SymbolType ) { case Constants.ListenQuest: - return CreateAndSaveListenQuestSo(questSos, npcInCharge, generatorSettings.PlaceholderNpcs); + return CreateAndSaveListenQuestSo(questSos, npcInCharge, generatorSettings.PlaceholderNpcs, language); case Constants.ReadQuest: - return CreateAndSaveReadQuestSo(questSos, npcInCharge, generatorSettings.ReadableItems); + return CreateAndSaveReadQuestSo(questSos, npcInCharge, generatorSettings.ReadableItems, language); case Constants.GiveQuest: - return CreateAndSaveGiveQuestSo(questSos, npcInCharge, generatorSettings.PlaceholderNpcs, generatorSettings.Tools); + return CreateAndSaveGiveQuestSo(questSos, npcInCharge, generatorSettings.PlaceholderNpcs, generatorSettings.Tools, language); case Constants.ReportQuest: - return CreateAndSaveReportQuestSo(questSos, npcInCharge, generatorSettings.PlaceholderNpcs); + return CreateAndSaveReportQuestSo(questSos, npcInCharge, generatorSettings.PlaceholderNpcs, language); default: Debug.LogError("help something went wrong! - Immersion doesn't contain symbol: "+SymbolType); break; @@ -59,12 +60,12 @@ public override void RemoveElementWithId(T questElement, int questId) throw new NotImplementedException(); } - public override void CreateQuestString() + public override void CreateQuestString(Language l) { throw new NotImplementedException(); } - private static ListenQuestSo CreateAndSaveListenQuestSo (List questSos, NpcSo npcInCharge, List possibleNpcSos) + private static ListenQuestSo CreateAndSaveListenQuestSo (List questSos, NpcSo npcInCharge, List possibleNpcSos, Language language) { var listenQuest = CreateInstance(); NpcSo selectedNpc; @@ -73,9 +74,9 @@ private static ListenQuestSo CreateAndSaveListenQuestSo (List questSos, } while ( selectedNpc == npcInCharge && possibleNpcSos.Count != 1); - if (Game.GameManager.GameManagerSingleton.Instance.IsInPortuguese) + if (language == Language.Portuguese) listenQuest.Init("Fale com "+selectedNpc.NpcName, false, questSos.Count > 0 ? questSos[^1] : null, selectedNpc); - else + else if (language == Language.English) listenQuest.Init("Talk to " + selectedNpc.NpcName, false, questSos.Count > 0 ? questSos[^1] : null, selectedNpc); listenQuest.NpcInCharge = npcInCharge; if (questSos.Count > 0) @@ -87,14 +88,14 @@ private static ListenQuestSo CreateAndSaveListenQuestSo (List questSos, return listenQuest; } - private static ReadQuestSo CreateAndSaveReadQuestSo (List questSos, NpcSo npcInCharge, TreasureRuntimeSetSo possibleItems) + private static ReadQuestSo CreateAndSaveReadQuestSo (List questSos, NpcSo npcInCharge, TreasureRuntimeSetSo possibleItems, Language language) { var readQuest = CreateInstance(); var selectedItem = possibleItems.GetRandomItem(); - if (Game.GameManager.GameManagerSingleton.Instance.IsInPortuguese) + if (language == Language.Portuguese) readQuest.Init("Leia o conte�do do artefato "+selectedItem.ItemName, false, questSos.Count > 0 ? questSos[^1] : null, selectedItem); - else + else if (language == Language.English) readQuest.Init("Read " + selectedItem.ItemName, false, questSos.Count > 0 ? questSos[^1] : null, selectedItem); if (questSos.Count > 0) @@ -107,15 +108,15 @@ private static ReadQuestSo CreateAndSaveReadQuestSo (List questSos, Npc return readQuest; } - private static GiveQuestSo CreateAndSaveGiveQuestSo (List questSos, NpcSo npcInCharge, List possibleNpcSos, TreasureRuntimeSetSo possibleItems) + private static GiveQuestSo CreateAndSaveGiveQuestSo (List questSos, NpcSo npcInCharge, List possibleNpcSos, TreasureRuntimeSetSo possibleItems, Language language) { var giveQuest = CreateInstance(); var selectedNpc = possibleNpcSos.GetRandom(); var selectedItem = possibleItems.GetRandomItem(); - if (Game.GameManager.GameManagerSingleton.Instance.IsInPortuguese) - giveQuest.Init($"D� o item {selectedItem} para {selectedNpc.NpcName}", false, questSos.Count > 0 ? questSos[^1] : null, selectedNpc, selectedItem); - else + if (language == Language.Portuguese) + giveQuest.Init($"Dê o item {selectedItem} para {selectedNpc.NpcName}", false, questSos.Count > 0 ? questSos[^1] : null, selectedNpc, selectedItem); + else if (language == Language.English) giveQuest.Init($"Give {selectedItem} to {selectedNpc.NpcName}", false, questSos.Count > 0 ? questSos[^1] : null, selectedNpc, selectedItem); giveQuest.NpcInCharge = npcInCharge; @@ -128,7 +129,7 @@ private static GiveQuestSo CreateAndSaveGiveQuestSo (List questSos, Npc return giveQuest; } - private static ReportQuestSo CreateAndSaveReportQuestSo(List questSos, NpcSo npcInCharge, List possibleNpcSos) + private static ReportQuestSo CreateAndSaveReportQuestSo(List questSos, NpcSo npcInCharge, List possibleNpcSos, Language language) { var reportQuest = CreateInstance(); NpcSo selectedNpc; @@ -137,9 +138,9 @@ private static ReportQuestSo CreateAndSaveReportQuestSo(List questSos, } while ( selectedNpc == npcInCharge && possibleNpcSos.Count != 1); - if (Game.GameManager.GameManagerSingleton.Instance.IsInPortuguese) + if (language == Language.Portuguese) reportQuest.Init("Retorne e reporte para "+selectedNpc.NpcName, false, questSos.Count > 0 ? questSos[^1] : null, selectedNpc); - else + else if (language == Language.English) reportQuest.Init("Report back to " + selectedNpc.NpcName, false, questSos.Count > 0 ? questSos[^1] : null, selectedNpc); reportQuest.NpcInCharge = npcInCharge; if (questSos.Count > 0) diff --git a/Assets/Scripts/Game/NarrativeGenerator/Quests/ProfileQuests/Immersion/ImmersionQuestSo.cs.meta b/Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/QuestsPerProfile/Immersion/ImmersionQuestSo.cs.meta similarity index 100% rename from Assets/Scripts/Game/NarrativeGenerator/Quests/ProfileQuests/Immersion/ImmersionQuestSo.cs.meta rename to Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/QuestsPerProfile/Immersion/ImmersionQuestSo.cs.meta diff --git a/Assets/Scripts/Game/NarrativeGenerator/Quests/ProfileQuests/Immersion/ListenQuestSo.cs b/Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/QuestsPerProfile/Immersion/ListenQuestSo.cs similarity index 91% rename from Assets/Scripts/Game/NarrativeGenerator/Quests/ProfileQuests/Immersion/ListenQuestSo.cs rename to Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/QuestsPerProfile/Immersion/ListenQuestSo.cs index cd795d3c8..737ff789e 100644 --- a/Assets/Scripts/Game/NarrativeGenerator/Quests/ProfileQuests/Immersion/ListenQuestSo.cs +++ b/Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/QuestsPerProfile/Immersion/ListenQuestSo.cs @@ -1,11 +1,11 @@ -using Game.GameManager; using Game.NPCs; using System; using System.Collections.Generic; using System.Text; using Util; +using static Util.Enums; -namespace Game.NarrativeGenerator.Quests.QuestGrammarTerminals +namespace Overlord.NarrativeGenerator.Quests.QuestGrammarTerminals { public class ListenQuestSo : ImmersionQuestSo { @@ -73,11 +73,11 @@ public override void RemoveElementWithId(T questElement, int questId) IsCompleted = true; } - public override void CreateQuestString() + public override void CreateQuestString(Language language) { var stringBuilder = new StringBuilder(); - if (GameManagerSingleton.Instance.IsInPortuguese) + if (language == Language.Portuguese) { QuestText = $"Fale com {Npc.NpcName}.\n"; return; diff --git a/Assets/Scripts/Game/NarrativeGenerator/Quests/ProfileQuests/Immersion/ListenQuestSo.cs.meta b/Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/QuestsPerProfile/Immersion/ListenQuestSo.cs.meta similarity index 100% rename from Assets/Scripts/Game/NarrativeGenerator/Quests/ProfileQuests/Immersion/ListenQuestSo.cs.meta rename to Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/QuestsPerProfile/Immersion/ListenQuestSo.cs.meta diff --git a/Assets/Scripts/Game/NarrativeGenerator/Quests/ProfileQuests/Immersion/ReadQuestSo.cs b/Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/QuestsPerProfile/Immersion/ReadQuestSo.cs similarity index 91% rename from Assets/Scripts/Game/NarrativeGenerator/Quests/ProfileQuests/Immersion/ReadQuestSo.cs rename to Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/QuestsPerProfile/Immersion/ReadQuestSo.cs index 7551ed94d..4d69658b9 100644 --- a/Assets/Scripts/Game/NarrativeGenerator/Quests/ProfileQuests/Immersion/ReadQuestSo.cs +++ b/Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/QuestsPerProfile/Immersion/ReadQuestSo.cs @@ -2,9 +2,9 @@ using System.Collections.Generic; using Util; using System; -using Game.GameManager; +using static Util.Enums; -namespace Game.NarrativeGenerator.Quests.QuestGrammarTerminals +namespace Overlord.NarrativeGenerator.Quests.QuestGrammarTerminals { public class ReadQuestSo : ImmersionQuestSo { @@ -65,14 +65,13 @@ public override void RemoveElementWithId(T questElement, int questId) IsCompleted = true; } - public override void CreateQuestString() + public override void CreateQuestString(Language language) { - if (GameManagerSingleton.Instance.IsInPortuguese) + if (language == Language.Portuguese) { QuestText = $"Leia {ItemToRead.ItemName}.\n"; return; } - QuestText = $"Read the {ItemToRead.ItemName}.\n"; } } diff --git a/Assets/Scripts/Game/NarrativeGenerator/Quests/ProfileQuests/Immersion/ReadQuestSo.cs.meta b/Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/QuestsPerProfile/Immersion/ReadQuestSo.cs.meta similarity index 100% rename from Assets/Scripts/Game/NarrativeGenerator/Quests/ProfileQuests/Immersion/ReadQuestSo.cs.meta rename to Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/QuestsPerProfile/Immersion/ReadQuestSo.cs.meta diff --git a/Assets/Scripts/Game/NarrativeGenerator/Quests/ProfileQuests/Immersion/ReportQuestSo.cs b/Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/QuestsPerProfile/Immersion/ReportQuestSo.cs similarity index 91% rename from Assets/Scripts/Game/NarrativeGenerator/Quests/ProfileQuests/Immersion/ReportQuestSo.cs rename to Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/QuestsPerProfile/Immersion/ReportQuestSo.cs index d59a4dee0..1788983ba 100644 --- a/Assets/Scripts/Game/NarrativeGenerator/Quests/ProfileQuests/Immersion/ReportQuestSo.cs +++ b/Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/QuestsPerProfile/Immersion/ReportQuestSo.cs @@ -2,9 +2,9 @@ using System; using System.Collections.Generic; using Game.NPCs; -using Game.GameManager; +using static Util.Enums; -namespace Game.NarrativeGenerator.Quests.QuestGrammarTerminals +namespace Overlord.NarrativeGenerator.Quests.QuestGrammarTerminals { public class ReportQuestSo : ImmersionQuestSo { @@ -70,9 +70,9 @@ public override void RemoveElementWithId(T questElement, int questId) IsCompleted = true; } - public override void CreateQuestString() + public override void CreateQuestString(Language language) { - if (GameManagerSingleton.Instance.IsInPortuguese) + if (language == Language.Portuguese) { QuestText = $"Reporte para {Npc.NpcName}.\n"; return; diff --git a/Assets/Scripts/Game/NarrativeGenerator/Quests/ProfileQuests/Immersion/ReportQuestSo.cs.meta b/Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/QuestsPerProfile/Immersion/ReportQuestSo.cs.meta similarity index 100% rename from Assets/Scripts/Game/NarrativeGenerator/Quests/ProfileQuests/Immersion/ReportQuestSo.cs.meta rename to Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/QuestsPerProfile/Immersion/ReportQuestSo.cs.meta diff --git a/Assets/Scripts/Game/NarrativeGenerator/Quests/ProfileQuests/Mastery.meta b/Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/QuestsPerProfile/Mastery.meta similarity index 100% rename from Assets/Scripts/Game/NarrativeGenerator/Quests/ProfileQuests/Mastery.meta rename to Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/QuestsPerProfile/Mastery.meta diff --git a/Assets/Scripts/Game/NarrativeGenerator/Quests/ProfileQuests/Mastery/DamageQuestData.cs b/Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/QuestsPerProfile/Mastery/DamageQuestData.cs similarity index 89% rename from Assets/Scripts/Game/NarrativeGenerator/Quests/ProfileQuests/Mastery/DamageQuestData.cs rename to Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/QuestsPerProfile/Mastery/DamageQuestData.cs index 4848e6030..28c6bd30f 100644 --- a/Assets/Scripts/Game/NarrativeGenerator/Quests/ProfileQuests/Mastery/DamageQuestData.cs +++ b/Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/QuestsPerProfile/Mastery/DamageQuestData.cs @@ -1,6 +1,6 @@ using ScriptableObjects; -namespace Game.NarrativeGenerator.Quests.QuestGrammarTerminals +namespace Overlord.NarrativeGenerator.Quests.QuestGrammarTerminals { public class DamageQuestData { diff --git a/Assets/Scripts/Game/NarrativeGenerator/Quests/ProfileQuests/Mastery/DamageQuestData.cs.meta b/Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/QuestsPerProfile/Mastery/DamageQuestData.cs.meta similarity index 100% rename from Assets/Scripts/Game/NarrativeGenerator/Quests/ProfileQuests/Mastery/DamageQuestData.cs.meta rename to Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/QuestsPerProfile/Mastery/DamageQuestData.cs.meta diff --git a/Assets/Scripts/Game/NarrativeGenerator/Quests/ProfileQuests/Mastery/DamageQuestSo.cs b/Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/QuestsPerProfile/Mastery/DamageQuestSo.cs similarity index 80% rename from Assets/Scripts/Game/NarrativeGenerator/Quests/ProfileQuests/Mastery/DamageQuestSo.cs rename to Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/QuestsPerProfile/Mastery/DamageQuestSo.cs index 5cb664aa4..cfc4a644f 100644 --- a/Assets/Scripts/Game/NarrativeGenerator/Quests/ProfileQuests/Mastery/DamageQuestSo.cs +++ b/Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/QuestsPerProfile/Mastery/DamageQuestSo.cs @@ -3,9 +3,8 @@ using ScriptableObjects; using Util; using UnityEngine; -using Game.GameManager; -namespace Game.NarrativeGenerator.Quests.QuestGrammarTerminals +namespace Overlord.NarrativeGenerator.Quests.QuestGrammarTerminals { public class DamageQuestSo : MasteryQuestSo { @@ -69,12 +68,12 @@ public override void RemoveElementWithId(T questElement, int questId) } } - public override void CreateQuestString() + public override void CreateQuestString(Enums.Language language) { - if (Game.GameManager.GameManagerSingleton.Instance.IsInPortuguese) - QuestText = $"{DamageData.Enemy.RealTypeName( GameManagerSingleton.Instance.IsInPortuguese )} e cause {DamageData.Damage} de dano nele.\n"; - else - QuestText = $"{DamageData.Enemy.RealTypeName( GameManagerSingleton.Instance.IsInPortuguese )} and give {DamageData.Damage} damage to it.\n"; + if (language == Enums.Language.Portuguese) + QuestText = $"{DamageData.Enemy.RealTypeName(language)} e cause {DamageData.Damage} de dano nele.\n"; + else if (language == Enums.Language.English) + QuestText = $"{DamageData.Enemy.RealTypeName(language)} and give {DamageData.Damage} damage to it.\n"; } } } \ No newline at end of file diff --git a/Assets/Scripts/Game/NarrativeGenerator/Quests/ProfileQuests/Mastery/DamageQuestSo.cs.meta b/Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/QuestsPerProfile/Mastery/DamageQuestSo.cs.meta similarity index 100% rename from Assets/Scripts/Game/NarrativeGenerator/Quests/ProfileQuests/Mastery/DamageQuestSo.cs.meta rename to Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/QuestsPerProfile/Mastery/DamageQuestSo.cs.meta diff --git a/Assets/Scripts/Game/NarrativeGenerator/Quests/ProfileQuests/Mastery/KillQuestSo.cs b/Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/QuestsPerProfile/Mastery/KillQuestSo.cs similarity index 86% rename from Assets/Scripts/Game/NarrativeGenerator/Quests/ProfileQuests/Mastery/KillQuestSo.cs rename to Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/QuestsPerProfile/Mastery/KillQuestSo.cs index ec56a4a11..a2da1222b 100644 --- a/Assets/Scripts/Game/NarrativeGenerator/Quests/ProfileQuests/Mastery/KillQuestSo.cs +++ b/Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/QuestsPerProfile/Mastery/KillQuestSo.cs @@ -1,13 +1,13 @@ using System.Collections.Generic; -using Game.NarrativeGenerator.EnemyRelatedNarrative; -using Game.GameManager; +using Overlord.NarrativeGenerator.EnemyRelatedNarrative; using ScriptableObjects; using System; using System.Text; using Util; using UnityEngine; +using static Util.Enums; -namespace Game.NarrativeGenerator.Quests.QuestGrammarTerminals +namespace Overlord.NarrativeGenerator.Quests.QuestGrammarTerminals { [Serializable] public class KillQuestSo : MasteryQuestSo @@ -69,19 +69,19 @@ public override QuestSo Clone() return cloneQuest; } - public override string GetEnemyAmountString() + public override string GetEnemyAmountString(Language language) { - CreateQuestString(); + CreateQuestString(language); return QuestText; } - public override string GetEnemyString() + public override string GetEnemyString(Language language) { var stringBuilder = new StringBuilder(); foreach (var enemyByAmount in EnemiesToKillByType.EnemiesByTypeDictionary) { - var spriteString = enemyByAmount.Key.GetEnemySpriteString( GameManagerSingleton.Instance.IsInPortuguese ); - stringBuilder.Append($"{enemyByAmount.Key.RealTypeName( GameManagerSingleton.Instance.IsInPortuguese )}s {spriteString}, "); + var spriteString = enemyByAmount.Key.GetEnemySpriteString(language); + stringBuilder.Append($"{enemyByAmount.Key.RealTypeName(language)}s {spriteString}, "); } if (stringBuilder.Length == 0) @@ -114,23 +114,19 @@ public override void RemoveElementWithId(T questElement, int questId) } } - public override void CreateQuestString() + public override void CreateQuestString(Language language) { var stringBuilder = new StringBuilder(); - if (GameManagerSingleton.Instance.IsInPortuguese) - { + if (language == Language.Portuguese) stringBuilder.Append("Derrote "); - } else - { stringBuilder.Append("Kill "); - } foreach (var enemyByAmount in OriginalEnemiesToKillByType.EnemiesByTypeDictionary) { - var spriteString = enemyByAmount.Key.GetEnemySpriteString( GameManagerSingleton.Instance.IsInPortuguese ); - stringBuilder.Append($"{enemyByAmount.Value.QuestIds.Count} {enemyByAmount.Key.RealTypeName( GameManagerSingleton.Instance.IsInPortuguese )}s {spriteString}, "); + var spriteString = enemyByAmount.Key.GetEnemySpriteString(language); + stringBuilder.Append($"{enemyByAmount.Value.QuestIds.Count} {enemyByAmount.Key.RealTypeName(language)}s {spriteString}, "); } if (stringBuilder.Length == 0) diff --git a/Assets/Scripts/Game/NarrativeGenerator/Quests/ProfileQuests/Mastery/KillQuestSo.cs.meta b/Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/QuestsPerProfile/Mastery/KillQuestSo.cs.meta similarity index 100% rename from Assets/Scripts/Game/NarrativeGenerator/Quests/ProfileQuests/Mastery/KillQuestSo.cs.meta rename to Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/QuestsPerProfile/Mastery/KillQuestSo.cs.meta diff --git a/Assets/Scripts/Game/NarrativeGenerator/Quests/ProfileQuests/Mastery/MasteryQuestSo.cs b/Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/QuestsPerProfile/Mastery/MasteryQuestSo.cs similarity index 86% rename from Assets/Scripts/Game/NarrativeGenerator/Quests/ProfileQuests/Mastery/MasteryQuestSo.cs rename to Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/QuestsPerProfile/Mastery/MasteryQuestSo.cs index 10b109170..1d6e8c485 100644 --- a/Assets/Scripts/Game/NarrativeGenerator/Quests/ProfileQuests/Mastery/MasteryQuestSo.cs +++ b/Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/QuestsPerProfile/Mastery/MasteryQuestSo.cs @@ -4,14 +4,14 @@ using System.Collections.Generic; using UnityEngine; using Game.NPCs; -using Game.GameManager; using System.Linq; using System.Text; using Game.ExperimentControllers; -using Game.NarrativeGenerator.EnemyRelatedNarrative; +using Overlord.NarrativeGenerator.EnemyRelatedNarrative; using MyBox; +using static Util.Enums; -namespace Game.NarrativeGenerator.Quests.QuestGrammarTerminals +namespace Overlord.NarrativeGenerator.Quests.QuestGrammarTerminals { public class MasteryQuestSo : QuestSo { @@ -29,14 +29,14 @@ public override Dictionary> NextSymbolChances } } - public override QuestSo DefineQuestSo ( List questSos, NpcSo npcInCharge, in GeneratorSettings generatorSettings) + public override QuestSo DefineQuestSo ( List questSos, NpcSo npcInCharge, in GeneratorSettings generatorSettings, Language language) { switch ( SymbolType ) { case Constants.KillQuest: - return CreateAndSaveKillQuestSo(questSos, npcInCharge, generatorSettings.PossibleWeapons, generatorSettings.EnemiesToKill); + return CreateAndSaveKillQuestSo(questSos, npcInCharge, generatorSettings.PossibleWeapons, generatorSettings.EnemiesToKill, language); case Constants.DamageQuest: - return CreateAndSaveDamageQuestSo(questSos, npcInCharge, generatorSettings.PossibleWeapons); + return CreateAndSaveDamageQuestSo(questSos, npcInCharge, generatorSettings.PossibleWeapons, language); default: Debug.LogError("help something went wrong! - Mastery doesn't contain symbol: "+SymbolType); break; @@ -55,12 +55,12 @@ public override void RemoveElementWithId(T questElement, int questId) throw new NotImplementedException(); } - public override void CreateQuestString() + public override void CreateQuestString(Enums.Language l) { throw new NotImplementedException(); } - private static KillQuestSo CreateAndSaveKillQuestSo(List questSos, NpcSo npcInCharge, WeaponTypeRuntimeSetSO enemyTypes, RangedInt enemiesToKill) + private static KillQuestSo CreateAndSaveKillQuestSo(List questSos, NpcSo npcInCharge, WeaponTypeRuntimeSetSO enemyTypes, RangedInt enemiesToKill, Language language) { var killQuest = CreateInstance(); var selectedEnemyTypes = new EnemiesByType (); @@ -71,7 +71,7 @@ private static KillQuestSo CreateAndSaveKillQuestSo(List questSos, NpcS { selectedEnemyTypes.EnemiesByTypeDictionary.AddItemWithId(selectedEnemyType, questId); } - killQuest.Init(KillEnemyTypesToString(selectedEnemyTypes), false, questSos.Count > 0 + killQuest.Init(KillEnemyTypesToString(selectedEnemyTypes, language), false, questSos.Count > 0 ? questSos[^1] : null, selectedEnemyTypes); killQuest.NpcInCharge = npcInCharge; if (questSos.Count > 0) @@ -83,12 +83,12 @@ private static KillQuestSo CreateAndSaveKillQuestSo(List questSos, NpcS return killQuest; } - private static DamageQuestSo CreateAndSaveDamageQuestSo(List questSos, NpcSo npcInCharge, WeaponTypeRuntimeSetSO enemyTypes) + private static DamageQuestSo CreateAndSaveDamageQuestSo(List questSos, NpcSo npcInCharge, WeaponTypeRuntimeSetSO enemyTypes, Language language) { var damageQuest = ScriptableObject.CreateInstance(); var selectedEnemyType = enemyTypes.GetRandomItem(); var totalDamage = RandomSingleton.GetInstance().Random.Next(100) + 20; - damageQuest.Init(selectedEnemyType.RealTypeName( GameManagerSingleton.Instance.IsInPortuguese ), false, + damageQuest.Init(selectedEnemyType.RealTypeName(language), false, questSos.Count > 0 ? questSos[^1] : null, selectedEnemyType, totalDamage); if (questSos.Count > 0) @@ -100,16 +100,16 @@ private static DamageQuestSo CreateAndSaveDamageQuestSo(List questSos, return damageQuest; } - private static string KillEnemyTypesToString(EnemiesByType selectedEnemyTypes) + private static string KillEnemyTypesToString(EnemiesByType selectedEnemyTypes, Language language) { var stringBuilder = new StringBuilder(); for (var i = 0; i < selectedEnemyTypes.EnemiesByTypeDictionary.Count; i++) { var typeAmountPair = selectedEnemyTypes.EnemiesByTypeDictionary.ElementAt(i); - if (GameManagerSingleton.Instance.IsInPortuguese) + if (language == Language.Portuguese) stringBuilder.Append($"Derrote {typeAmountPair.Value} {typeAmountPair.Key}"); - else + else if (language == Language.English) stringBuilder.Append($"Kill {typeAmountPair.Value} {typeAmountPair.Key}"); if (typeAmountPair.Value.QuestIds.Count > 1) @@ -118,7 +118,7 @@ private static string KillEnemyTypesToString(EnemiesByType selectedEnemyTypes) } if (i < (selectedEnemyTypes.EnemiesByTypeDictionary.Count - 1)) { - if (GameManagerSingleton.Instance.IsInPortuguese) + if (language == Language.Portuguese) stringBuilder.Append(" e "); else stringBuilder.Append(" and "); diff --git a/Assets/Scripts/Game/NarrativeGenerator/Quests/ProfileQuests/Mastery/MasteryQuestSo.cs.meta b/Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/QuestsPerProfile/Mastery/MasteryQuestSo.cs.meta similarity index 100% rename from Assets/Scripts/Game/NarrativeGenerator/Quests/ProfileQuests/Mastery/MasteryQuestSo.cs.meta rename to Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/QuestsPerProfile/Mastery/MasteryQuestSo.cs.meta diff --git a/Assets/Scripts/Game/NarrativeGenerator/Quests/QuestSo.cs b/Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/QuestsPerProfile/QuestSo.cs similarity index 92% rename from Assets/Scripts/Game/NarrativeGenerator/Quests/QuestSo.cs rename to Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/QuestsPerProfile/QuestSo.cs index 66a58669d..db24ce0ee 100644 --- a/Assets/Scripts/Game/NarrativeGenerator/Quests/QuestSo.cs +++ b/Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/QuestsPerProfile/QuestSo.cs @@ -4,13 +4,13 @@ using UnityEngine; using Util; using Game.NPCs; - +using static Util.Enums; #if UNITY_EDITOR using UnityEditor; #endif -namespace Game.NarrativeGenerator.Quests +namespace Overlord.NarrativeGenerator.Quests { [CreateAssetMenu(fileName = "QuestSo", menuName = "Overlord-Project/QuestSo", order = 0)] @@ -45,8 +45,9 @@ public virtual bool CanDrawNext public string QuestName { get => questName; set => questName = value; } public bool EndsStoryLine { get => endsStoryLine; set => endsStoryLine = value; } public int Id { get; set; } + public Language Language { get; set; } - public virtual QuestSo DefineQuestSo (List questSos, NpcSo npcInCharge, in GeneratorSettings generatorSettings) + public virtual QuestSo DefineQuestSo (List questSos, NpcSo npcInCharge, in GeneratorSettings generatorSettings, Language language) { return null; } @@ -139,7 +140,7 @@ public virtual string GetItemString() return ""; } - public virtual string GetItemAmountString() + public virtual string GetItemAmountString(Language language) { Debug.LogWarning(" Called base quest so, this should never happen! _ get item amount string"); return ""; @@ -157,13 +158,13 @@ public virtual string GetRoomAmount() return ""; } - public virtual string GetEnemyAmountString() + public virtual string GetEnemyAmountString(Language language) { Debug.LogWarning(" Called base quest so, this should never happen! _ get enemy amount string"); return ""; } - public virtual string GetEnemyString() + public virtual string GetEnemyString(Language language) { Debug.LogWarning(" Called base quest so, this should never happen! _ get enemy string"); return ""; @@ -182,6 +183,6 @@ public override string ToString() public abstract bool HasAvailableElementWithId(T questElement, int questId); public abstract void RemoveElementWithId(T questElement, int questId); - public abstract void CreateQuestString(); + public abstract void CreateQuestString(Language language); } } \ No newline at end of file diff --git a/Assets/Scripts/Game/NarrativeGenerator/Quests/QuestSo.cs.meta b/Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/QuestsPerProfile/QuestSo.cs.meta similarity index 100% rename from Assets/Scripts/Game/NarrativeGenerator/Quests/QuestSo.cs.meta rename to Assets/Scripts/Overlord/NarrativeGenerator/QuestGenerationAlgorithm/QuestsPerProfile/QuestSo.cs.meta diff --git a/Assets/Scripts/Overlord/NarrativeGenerator/QuestGeneratorManager.cs b/Assets/Scripts/Overlord/NarrativeGenerator/QuestGeneratorManager.cs index 4d9efc946..f7c9cc1cf 100644 --- a/Assets/Scripts/Overlord/NarrativeGenerator/QuestGeneratorManager.cs +++ b/Assets/Scripts/Overlord/NarrativeGenerator/QuestGeneratorManager.cs @@ -1,19 +1,68 @@ +using Game.ExperimentControllers; +using MyBox; +using Overlord.ProfileAnalyst; +using Overlord.RulesGenerator.EnemyGeneration; +using System.Threading.Tasks; using UnityEngine; +using Util; +using static Util.Enums; namespace Overlord.NarrativeGenerator { + [RequireComponent(typeof(PlayerProfileManager), typeof(EnemyGeneratorManager)/*, typeof(LevelGeneratorManager)*/)] public class QuestGeneratorManager : MonoBehaviour { - // Start is called before the first frame update - void Start() + [field: SerializeField] public bool MustCreateNarrative { get; set; } + [SerializeField] + public Language language = Language.Portuguese; + + public void OnEnable() { + PlayerProfileManager.ProfileSelected += HandleProfileSelected; + } + public void OnDisable() + { + PlayerProfileManager.ProfileSelected -= HandleProfileSelected; } - // Update is called once per frame - void Update() + // Event handler for when a player profile is selected + // Put here anything that should happen when a profile is selected + protected virtual async void HandleProfileSelected(IPlayerProfile profile) { + /* + if (profile is YeePlayerProfile yeeProfile) + { + if (yeeProfile.IsFixedFromExperiment || MustCreateNarrative) + { + questLines = Selector.CreateMissions(CurrentGeneratorSettings); + await CreateNarrative(yeeProfile); + } + else + { + ProfileSelectedEventHandler?.Invoke(this, new ProfileSelectedEventArgs(yeeProfile)); + } + } + */ + } + protected virtual async Task CreateNarrative(YeePlayerProfile playerProfile) + { + /* + CreateGeneratorParametersForQuestLine(playerProfile); + questLines.TargetProfile = playerProfile; + await CreateContentsForQuestLine(); +#if UNITY_EDITOR + if (!CurrentGeneratorSettings.GenerateInRealTime) + { + var narrativeExperimentRepository = new NarrativeExperimentRepository(playerProfile, _playerProfileToQuestLines, CurrentGeneratorSettings); + narrativeExperimentRepository.Save(questLines, playerProfile.PlayerProfileEnum.ToString()); + } +#endif + SelectedLevels.Init(questLines); + FixedLevelProfileEventHandler?.Invoke(this, new ProfileSelectedEventArgs(playerProfile)); + QuestLineCreatedEventHandler?.Invoke(this, new QuestLineCreatedEventArgs(questLines)); + */ } } } diff --git a/Assets/Scripts/Overlord/Overlord.asmdef b/Assets/Scripts/Overlord/Overlord.asmdef index 22e43e473..b43e96065 100644 --- a/Assets/Scripts/Overlord/Overlord.asmdef +++ b/Assets/Scripts/Overlord/Overlord.asmdef @@ -4,7 +4,8 @@ "references": [ "GUID:2715b4b7e32907244ae6b3c27a78ae85", "GUID:a37419e4b8e996d4da23a301a44013e3", - "GUID:48c9f6afdac61634db0e0f241c7d4d51" + "GUID:48c9f6afdac61634db0e0f241c7d4d51", + "GUID:e889290e6f4967a4ba72b88171c97a6d" ], "includePlatforms": [], "excludePlatforms": [], diff --git a/Assets/Scripts/Overlord/ProfileAnalyst/PlayerProfileManager.cs b/Assets/Scripts/Overlord/ProfileAnalyst/PlayerProfileManager.cs index 20a15965a..39e668a62 100644 --- a/Assets/Scripts/Overlord/ProfileAnalyst/PlayerProfileManager.cs +++ b/Assets/Scripts/Overlord/ProfileAnalyst/PlayerProfileManager.cs @@ -23,7 +23,8 @@ protected void SetPlayerProfileFromManualPlayerProfileSO() protected void SetRandomPlayerProfile() { - + var playerProfile = _profileCalculator.GetRandomPlayerProfile(); + InvokeEventOnSelectedProfile(playerProfile); } protected virtual void InvokeEventOnSelectedProfile(IPlayerProfile profile) diff --git a/Assets/Scripts/OverlordData/NarrativeGenerator.meta b/Assets/Scripts/OverlordData/NarrativeGenerator.meta new file mode 100644 index 000000000..85e265f42 --- /dev/null +++ b/Assets/Scripts/OverlordData/NarrativeGenerator.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 1572da77e2cd6c541ac9b921a69c616c +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/OverlordData/OverlordData.asmdef b/Assets/Scripts/OverlordData/OverlordData.asmdef index c075ec0e6..1d3ed269a 100644 --- a/Assets/Scripts/OverlordData/OverlordData.asmdef +++ b/Assets/Scripts/OverlordData/OverlordData.asmdef @@ -3,7 +3,8 @@ "rootNamespace": "", "references": [ "GUID:48c9f6afdac61634db0e0f241c7d4d51", - "GUID:e889290e6f4967a4ba72b88171c97a6d" + "GUID:e889290e6f4967a4ba72b88171c97a6d", + "GUID:a37419e4b8e996d4da23a301a44013e3" ], "includePlatforms": [], "excludePlatforms": [], diff --git a/Assets/Scripts/OverlordData/RulesGenerator/EnemiesForCurrentDungeon.cs b/Assets/Scripts/OverlordData/RulesGenerator/EnemiesForCurrentDungeon.cs new file mode 100644 index 000000000..70812a3a2 --- /dev/null +++ b/Assets/Scripts/OverlordData/RulesGenerator/EnemiesForCurrentDungeon.cs @@ -0,0 +1,34 @@ +using ScriptableObjects; +using System.Collections; +using System.Collections.Generic; +using System.Linq; +using UnityEngine; +using Util; + +namespace Overlord.RulesGenerator.EnemyGeneration +{ + public static class EnemiesForCurrentDungeon + { + private static List _enemyListForCurrentDungeon; + public static List CurrentEnemies => _enemyListForCurrentDungeon; + + public static void UpdateEnemiesForCurrentDungeon(List enemyList) + { + _enemyListForCurrentDungeon = enemyList; + } + + public static EnemySO GetRandomEnemyOfType(WeaponTypeSo enemyType) + { + List currentEnemies = GetEnemiesFromType(enemyType); + Debug.Log("ENEMY COUNT: " + currentEnemies.Count); + return currentEnemies[RandomSingleton.GetInstance().Next(0, currentEnemies.Count)]; + } + + private static List GetEnemiesFromType(WeaponTypeSo weaponType) + { + Debug.Log(weaponType.ToString()); + //TODO create these lists only once per type on dungeon load + return CurrentEnemies.Where(enemy => enemy.weapon == weaponType).ToList(); + } + } +} \ No newline at end of file diff --git a/Assets/Scripts/Game/NarrativeGenerator/QuestUI.cs.meta b/Assets/Scripts/OverlordData/RulesGenerator/EnemiesForCurrentDungeon.cs.meta similarity index 83% rename from Assets/Scripts/Game/NarrativeGenerator/QuestUI.cs.meta rename to Assets/Scripts/OverlordData/RulesGenerator/EnemiesForCurrentDungeon.cs.meta index ed672aa6d..0b78106f0 100644 --- a/Assets/Scripts/Game/NarrativeGenerator/QuestUI.cs.meta +++ b/Assets/Scripts/OverlordData/RulesGenerator/EnemiesForCurrentDungeon.cs.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: d8048242634d20b4ab556628d28d80cf +guid: 670e8cf6407218045975ae114b2f3cb5 MonoImporter: externalObjects: {} serializedVersion: 2 diff --git a/Assets/Scripts/OverlordData/RulesGenerator/EnemyRoomList.cs b/Assets/Scripts/OverlordData/RulesGenerator/EnemyRoomList.cs new file mode 100644 index 000000000..438ac258b --- /dev/null +++ b/Assets/Scripts/OverlordData/RulesGenerator/EnemyRoomList.cs @@ -0,0 +1,14 @@ +using ScriptableObjects; +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +namespace Overlord.RulesGenerator.EnemyGeneration +{ + public class EnemyRoomList : MonoBehaviour + { + private static List _enemyListForCurrentDungeon; + + + } +} \ No newline at end of file diff --git a/Assets/Scripts/Game/NarrativeGenerator/Selector.cs.meta b/Assets/Scripts/OverlordData/RulesGenerator/EnemyRoomList.cs.meta similarity index 83% rename from Assets/Scripts/Game/NarrativeGenerator/Selector.cs.meta rename to Assets/Scripts/OverlordData/RulesGenerator/EnemyRoomList.cs.meta index bc03bdcae..07b6d313c 100644 --- a/Assets/Scripts/Game/NarrativeGenerator/Selector.cs.meta +++ b/Assets/Scripts/OverlordData/RulesGenerator/EnemyRoomList.cs.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 9c41cca684449a74dbbef8beb501cb90 +guid: c925171a7f71a284eae0238c6449e5e7 MonoImporter: externalObjects: {} serializedVersion: 2 diff --git a/Assets/Scripts/ScriptableObjects/LevelSOs.meta b/Assets/Scripts/ScriptableObjects/LevelSOs.meta new file mode 100644 index 000000000..d8f6ef382 --- /dev/null +++ b/Assets/Scripts/ScriptableObjects/LevelSOs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 4d56aed0eb028114d90da504d2d1770a +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Game/LevelGenerator/LevelSOs/DungeonRoomData.cs b/Assets/Scripts/ScriptableObjects/LevelSOs/DungeonRoomData.cs similarity index 100% rename from Assets/Scripts/Game/LevelGenerator/LevelSOs/DungeonRoomData.cs rename to Assets/Scripts/ScriptableObjects/LevelSOs/DungeonRoomData.cs diff --git a/Assets/Scripts/Game/LevelGenerator/LevelSOs/DungeonRoomData.cs.meta b/Assets/Scripts/ScriptableObjects/LevelSOs/DungeonRoomData.cs.meta similarity index 100% rename from Assets/Scripts/Game/LevelGenerator/LevelSOs/DungeonRoomData.cs.meta rename to Assets/Scripts/ScriptableObjects/LevelSOs/DungeonRoomData.cs.meta diff --git a/Assets/Scripts/ScriptableObjects/ReadableItemSo.cs b/Assets/Scripts/ScriptableObjects/ReadableItemSo.cs index 3038af0bd..b4ad162db 100644 --- a/Assets/Scripts/ScriptableObjects/ReadableItemSo.cs +++ b/Assets/Scripts/ScriptableObjects/ReadableItemSo.cs @@ -1,6 +1,7 @@ using System; using System.Text; using UnityEngine; +using static Util.Enums; namespace ScriptableObjects { @@ -23,6 +24,11 @@ public string GetScrollSpriteString() return stringBuilder.ToString(); } + public string SetRandomText(Language language) + { + return SetRandomText(language == Language.Portuguese); + } + public string SetRandomText(bool isInPortuguese) { int text = UnityEngine.Random.Range(0, 11); diff --git a/Assets/Scripts/ScriptableObjects/WeaponTypeSo.cs b/Assets/Scripts/ScriptableObjects/WeaponTypeSo.cs index 2af594d28..316a6309e 100644 --- a/Assets/Scripts/ScriptableObjects/WeaponTypeSo.cs +++ b/Assets/Scripts/ScriptableObjects/WeaponTypeSo.cs @@ -21,8 +21,6 @@ public class WeaponTypeSo : ScriptableObject [field: SerializeField] public bool HasSprite = true; [field: SerializeField] public bool IsPlatformGame = false; - - public string RealTypeName(bool isInPortuguese) { if (IsPlatformGame) @@ -63,6 +61,19 @@ public string RealTypeName(bool isInPortuguese) return EnemyTypeName; } + public string RealTypeName(Language language) + { + switch (language) + { + case Language.Portuguese: + return RealTypeName(true); + case Language.English: + return RealTypeName(false); + default: + return RealTypeName(false); + } + } + public bool IsHealer() { if (IsPlatformGame) @@ -103,5 +114,18 @@ public object GetEnemySpriteString(bool isInPortuguese) Debug.Log(stringBuilder.ToString()); return stringBuilder.ToString(); } + + public object GetEnemySpriteString(Language language) + { + switch (language) + { + case Language.Portuguese: + return GetEnemySpriteString(true); + case Language.English: + return GetEnemySpriteString(false); + default: + return GetEnemySpriteString(false); + } + } } } \ No newline at end of file diff --git a/Assets/Scripts/Util/Enums.cs b/Assets/Scripts/Util/Enums.cs index 52298ad14..b19266162 100644 --- a/Assets/Scripts/Util/Enums.cs +++ b/Assets/Scripts/Util/Enums.cs @@ -127,5 +127,11 @@ public enum GameType TopDown, Platformer } + + public enum Language + { + English, + Portuguese + } } } \ No newline at end of file