public void Load(VillagerData villagerData)
    {
        //Debug.Log ("Villager Load");
        transform.position = new Vector3(villagerData.positionX, villagerData.positionY, villagerData.positionZ);

        SetTaskSkills(villagerData.taskSkills);
        characterInfo = villagerData.characterInfo;
        CalculateNextLevelExperience();

        SetCurrentHealth(villagerData.currentHealth);

        if (villagerData.equippedWeapon != null)
        {
            GetEquippedWeapon().Load(villagerData.equippedWeapon);
        }
        if (villagerData.offhandWeapon != null)
        {
            GetOffHandWeapon().Load(villagerData.offhandWeapon);
        }
        if (villagerData.equippedArmor != null)
        {
            GetEquippedArmor().Load(villagerData.equippedArmor);
        }

        onQuest = villagerData.onQuest;

        if (onQuest)
        {
            activeQuest = villagerData.questNumber;
            //manager.gameObject.GetComponent<QuestManager>().GetQuestList()[activeQuest].AddCharacter(this);
        }

        manager.GetCharacterDisplay().AddVillager(this.gameObject);
    }
    public VillagerData Save()
    {
        VillagerData villagerData = new VillagerData
        {
            positionX = transform.position.x,
            positionY = transform.position.y,
            positionZ = transform.position.z,

            taskSkills    = GetTaskSkills(),
            characterInfo = GetCharacterInfo(),

            currentHealth = GetCurrentHealth(),

            onQuest     = onQuest,
            questNumber = activeQuest
        };

        if (GetEquippedWeapon() != null)
        {
            villagerData.equippedWeapon = GetEquippedWeapon().Save();
        }
        if (GetOffHandWeapon() != null)
        {
            villagerData.offhandWeapon = GetOffHandWeapon().Save();
        }
        if (GetEquippedArmor() != null)
        {
            villagerData.equippedArmor = GetEquippedArmor().Save();
        }

        return(villagerData);
    }
Esempio n. 3
0
            public VillagerData GetData()
            {
                VillagerData newvillagerData = new VillagerData();

                newvillagerData.edad   = edad;
                newvillagerData.nombre = nombre;
                return(newvillagerData);
            }
 private void OnCollisionEnter(Collision collision)
 {
     if (collision.gameObject.tag == "Zombie")
     {
         ZombieData zombieData = collision.gameObject.GetComponent <Enemy.GenerarZombie>().zombieData;
         Debug.Log("Waaaaaarrr quiero comer" + zombieData.Gusto);
     }
     if (collision.gameObject.tag == "Aldeano")
     {
         VillagerData villagerData = collision.gameObject.GetComponent <Ally.GenerarAldeano>().villagerData;
         Debug.Log("Hola mi nombre es " + villagerData.name + " y tengo " + villagerData.Age + " años");
     }
 }
Esempio n. 5
0
    /// <summary>
    /// Se encarga de detectar la distancia con aldeanos y zombies con el fin de mostrar informacion en UI de la entidad
    /// </summary>
    void Update()
    {
        aldeanos = GameObject.FindGameObjectsWithTag("Aldeano");
        zombies  = GameObject.FindGameObjectsWithTag("Zombie");
        timer1  += Time.deltaTime;
        timer2  += Time.deltaTime;
        timer3  += Time.deltaTime;
        disparoDebug.maxValue = cd;
        disparoDebug.value    = timer3;
        if (timer3 > cd)
        {
            if (Input.GetKeyDown(KeyCode.Space))
            {
                Disparar();
                timer3 = 0;
            }
        }

        foreach (GameObject aldeano in aldeanos)
        {
            distanciaAldeano = Mathf.Sqrt(Mathf.Pow((aldeano.transform.position.x - transform.position.x), 2) + Mathf.Pow((aldeano.transform.position.y - transform.position.y), 2) + Mathf.Pow((aldeano.transform.position.z - transform.position.z), 2));
            if (distanciaAldeano < 5f)
            {
                timer1 = 0;
                VillagerData villagerData = aldeano.GetComponent <Aldeano.AldeanoScript>().GetData();
                textAldeano.text = "Hola soy " + villagerData.nombre + " y tengo " + villagerData.edad;
            }
        }

        foreach (GameObject zombie in zombies)
        {
            distanciaZombie = Mathf.Sqrt(Mathf.Pow((zombie.transform.position.x - transform.position.x), 2) + Mathf.Pow((zombie.transform.position.y - transform.position.y), 2) + Mathf.Pow((zombie.transform.position.z - transform.position.z), 2));
            if (distanciaZombie < 5f)
            {
                timer2 = 0;
                ZombieData zombieData = zombie.GetComponent <Zombie.ZombieScript>().GetData();
                textZombie.text = "Wraaaaarr quiero " + zombieData.gusto;
            }
        }
        if (timer1 > 5f)
        {
            textAldeano.text = "";
        }

        if (timer1 > 5f)
        {
            textZombie.text = "";
        }
    }
Esempio n. 6
0
 /// <summary>
 /// Almacena un struct recivido para enviarlo luego en collision
 /// </summary>
 /// <param name="villagerData">
 /// Informacion del objeto en un struct
 /// </param>
 public void TakeData(VillagerData villagerData)
 {
     villagerDat = villagerData;
 }