DEVLOG#3 Arreglando "Tu Benedict te dejó y perdiste 88 puntos de contemptment.


En este script, me encontré con el problema de que no estoy contento con el resultado del popup dentro de LifeEventGenerator. 

Lleno de bugs, debido a que el script que se había escrito tenía demasiadas abstracciones numéricas  con posiciones de strings, 

algo completamente difícil de leer y entender. Por ende, me decidí hoy a debugear. 

Lo que hice fué agregar un evento en el Update, if (Input.GetKeyDown(KeyCode.G)) GenerateRandomLifeEvent();

De esta manera, puedo lanzar el Popup en cualquier momento. El script funcionando sin el bug, finalmente quedó de esta forma:


using System.Collections.Generic;

using UnityEngine;

using TMPro;

public class LifeEventGenerator : MonoBehaviour

{

    public RuntimeGameData runtimeGameData;

    public TextMeshProUGUI randomLifeEventTxt;

    public GameObject lifeEventModal;

    public RandomFamilyAssignator randomFamilyAssignator;

    public RandomNPCNameSurnameGenerator randomNPCNameSurnameGenerator;

    private List<string> lifeEventTemplates = new List<string>()

    {

        "Encontraste un tesoro escondido y ahora tienes ",

        "Conociste a una nueva amiga llamada ",

Etc.

    };

    void Start()

    {

        GeneratePlayerBornEvent();

        //GenerateRandomLifeEvent();

    }

    public void Update()

    {

        if (Input.GetKeyDown(KeyCode.G)) GenerateRandomLifeEvent();

    }

    public void GenerateRandomLifeEvent()

    {

        int randomIndex = Random.Range(0, lifeEventTemplates.Count);

        string eventTemplate = lifeEventTemplates[randomIndex];

        string randomName = GenerateRandomName();

        int randomValue = Random.Range(10, 100);

        string randomPlace = GenerateRandomPlace();

        string randomRole = GenerateRandomRole();

        string lifeEvent = "";

        switch (randomIndex)

        {

            case 0:

                lifeEvent = eventTemplate + randomValue + " monedas de oro.";

                runtimeGameData.playerGold += randomValue;

                break;

            case 1:

                lifeEvent = eventTemplate + randomName + " en el mercado del pueblo.";

                break;

Etc.          

        }

        ApplyLifeEvent(lifeEvent);

    }

    private void GeneratePlayerBornEvent()

    {

        string randomPlace = GenerateRandomPlace();

        string randomCircumstances = GenerateRandomCircumstances();

        lifeEventModal.SetActive(true);

        randomFamilyAssignator.AssignPlayerFamily();

        randomLifeEventTxt.text = "Naciste de tus padres, que son Father " + runtimeGameData.playerFatherName +

            " y Mother " + runtimeGameData.playerMotherName + " en " + randomPlace + ", " + randomCircumstances + ".";

    }

    private string GenerateRandomCircumstances()

    {

        string[] circumstances =

        {

            "un lugar tranquilo y seguro", "un lugar horrible", "un lugar sereno", "un lugar acogedor",

         Etc.

        };

        return circumstances[Random.Range(0, circumstances.Length)];

    }

    private void ApplyLifeEvent(string lifeEvent)

    {

        Debug.Log(lifeEvent);

        randomLifeEventTxt.text = lifeEvent;

        lifeEventModal.SetActive(true);

    }

    private string GenerateRandomName()

    {

        string[] names =

        {

            "Alejandro", "Isabella", "Lancelot", "Guinevere", "Arthur", "Morgana", "Tristan", 

Etc.

        };

        return names[Random.Range(0, names.Length)];

    }

    private string GenerateRandomPlace()

    {

        string[] places =

        {

            "la ciudad encantada", "el bosque mágico", "la aldea tranquila", "el castillo del rey",

Etc

        };

        return places[Random.Range(0, places.Length)];

    }

    private string GenerateRandomRole()

    {

        string[] roles =

        {

            "Caballero", "Escudero", "Hechicero", "Alquimista", "Arquero", "Asesino", "Ladrón",

Etc.

    }

}


Finalmente en unos tests, funciona mejor:


Si te apasionan los juegos con una rica narrativa y un diseño profundo, no te pierdas el desarrollo de Medieval Life Sim 2D. ¡Pronto habrá más actualizaciones en el DevLog, que se están poniendo más entretenidas que desarrollar en una cueva! ¡Nos vemos en la próxima entrega!

Get Medieval Life Simulator 2D Pre Alpha

Download NowName your own price

Leave a comment

Log in with itch.io to leave a comment.