Esempio n. 1
0
    ///<summary>
    ///Load the characteristics of the monsters from a file
    ///</summary>
    void LoadFile()
    {
        string path = Application.dataPath + "/StreamingAssets/denis.json";

        string[] fileContent = File.ReadAllLines(path);
        var      enemies     = EnemyLibrary.instance.GetAllPossibleEnemiesPrefabs();

        foreach (var item in enemies)
        {
            monstersInfo.Add(item.name, new Dictionary <string, MonstersInfo>());
        }
        foreach (var item in monstersInfo)
        {
            foreach (var str in fileContent)
            {
                MonstersInfo obj = JsonUtility.FromJson <MonstersInfo>(str);
                if (obj.monsterName == item.Key)
                {
                    item.Value.Add(obj.tier, obj);
                }
            }
        }
        // foreach (var item in monstersInfo)
        // {
        //  Debug.Log(item.Key);
        //     foreach (var str in item.Value)
        //     {
        //      Debug.Log(str.Key);
        //     }
        // }
    }
Esempio n. 2
0
    void LoadFile()
    {
        string path = Application.dataPath + "/StreamingAssets/denis.json";

        string[] fileContent = File.ReadAllLines(path);
        foreach (var item in monstersInfo)
        {
            foreach (var str in fileContent)
            {
                MonstersInfo obj = JsonUtility.FromJson <MonstersInfo>(str);
                if (obj.monsterName == item.Key)
                {
                    item.Value.Add(obj.tier, obj);
                }
            }
        }
        // foreach (var item in monstersInfo)
        // {
        //  Debug.Log(item.Key);
        //     foreach (var str in item.Value)
        //     {
        //      Debug.Log(str.Key);
        //     }
        // }
    }
    private MonstersInfo AddEnemyToDic(GameObject enemy, string mName)
    {
        MonstersInfo monsterInfo = new MonstersInfo();

        if (enemy.name == "iceZombieTest")
        {
            monsterInfo = new MonstersInfo(enemy.name, mName, enemy.GetComponent <Thesis.Enemy.EnemyMovementTest>().stoppingDistanceToPlayer,
                                           enemy.GetComponent <Thesis.Enemy.EnemyMovementTest>().movementSpeed, enemy.GetComponent <IceZombieControllerTest>().timeBetweenAttacksInSecs,
                                           enemy.GetComponent <IceZombiePhysicalAttack>().DurationOfAttackInSecs, enemy.GetComponent <IceZombiePhysicalAttack>().attackFlightSpeed);
        }
        else
        {
            var enemyCharac = enemy.GetComponentInChildren <BulletSpawner>();
            monsterInfo = new MonstersInfo(enemy.name, mName, enemyCharac.numberOfBullets, enemyCharac.bulletSpeed, enemyCharac.numberOfWaves, enemyCharac.secondsBetweenWaves,
                                           enemyCharac.secondsBetweenShots, enemyCharac.angleToShootInDegrees, enemy.GetComponent <Thesis.Enemy.EnemyControllerTest>().attackDistance,
                                           enemy.GetComponent <Thesis.Enemy.EnemyMovementTest>().stoppingDistanceToPlayer, enemy.GetComponent <Thesis.Enemy.EnemyMovementTest>().movementSpeed,
                                           enemy.GetComponentInChildren <Thesis.Enemy.EnemyShootTest>().timeToWaitBeforeShootingAgain);
        }
        if (!monstersInfo[enemy.name].ContainsKey(mName))
        {
            monstersInfo[enemy.name].Add(mName, monsterInfo);
        }
        else
        {
            //update monster info
            monstersInfo[enemy.name].Remove(mName);
            monstersInfo[enemy.name].Add(mName, monsterInfo);
        }
        return(monsterInfo);
    }
    public void LoadData()
    {
        var    dic  = canvas.GetComponent <PopulateWithMonsters>().monstersInfo;
        string path = Application.dataPath + "/Resources/" + dropdown.options[selectedFile].text;

        Debug.Log(path);
        string[] fileContent = File.ReadAllLines(path);
        foreach (var item in dic)
        {
            item.Value.Clear();
        }
        foreach (var item in dic)
        {
            foreach (var str in fileContent)
            {
                MonstersInfo obj = JsonUtility.FromJson <MonstersInfo>(str);
                if (obj.monsterName == item.Key)
                {
                    item.Value.Add(obj.tier, obj);
                }
            }
        }
        canvas.GetComponent <PopulateWithMonsters>().monstersInfo = dic;
        canvas.GetComponent <PopulateWithMonsters>().DestroyMonster();
        canvas.GetComponent <PopulateWithMonsters>().UnselectBtn();
        canvas.GetComponent <PopulateWithMonsters>().Populate();
        popUp.gameObject.SetActive(true);
        StartCoroutine(DisablePopUp());
    }
    public void GetMonsterCharac(GameObject enemy, string mName)
    {
        var placeHolders = monsterCharac.GetComponentsInChildren <RectTransform>();

        if (monstersInfo[enemy.name].ContainsKey(mName))
        {
            mInfo = monstersInfo[enemy.name][mName];
            enemy.GetComponent <Thesis.Enemy.EnemyMovementTest>().stoppingDistanceToPlayer = mInfo.stoppingDistance;
            enemy.GetComponent <Thesis.Enemy.EnemyMovementTest>().movementSpeed            = mInfo.movementSpeed;
            if (enemy.name == "iceZombieTest")
            {
                enemy.GetComponent <IceZombieControllerTest>().timeBetweenAttacksInSecs = mInfo.timeBetweenAttacks;
                enemy.GetComponent <IceZombiePhysicalAttack>().DurationOfAttackInSecs   = mInfo.durationOfAttacks;
                enemy.GetComponent <IceZombiePhysicalAttack>().attackFlightSpeed        = mInfo.attackSpeed;
            }
            else
            {
                var enemyCharac = enemy.GetComponentInChildren <BulletSpawner>();
                enemyCharac.numberOfBullets       = (int)mInfo.numberBullets;
                enemyCharac.bulletSpeed           = (int)mInfo.bulletSpeed;
                enemyCharac.numberOfWaves         = (int)mInfo.numberOfWaves;
                enemyCharac.secondsBetweenWaves   = (int)mInfo.secBtwWaves;
                enemyCharac.secondsBetweenShots   = mInfo.secBtwShots;
                enemyCharac.angleToShootInDegrees = mInfo.angleToShoot;
                enemy.GetComponent <Thesis.Enemy.EnemyControllerTest>().attackDistance = mInfo.attackDistance;
                enemy.GetComponentInChildren <Thesis.Enemy.EnemyShootTest>().timeToWaitBeforeShootingAgain = mInfo.attackSpeed;
            }
        }
        else
        {
            mInfo = AddEnemyToDic(enemy, mName);
        }
        tierName.text = ": " + mInfo.monsterName + " " + mInfo.tier;
        foreach (var item in placeHolders)
        {
            if (item.name == "NBullets")
            {
                PopulatePlaceholder(item, 0, 30, mInfo.numberBullets, true);
            }
            if (item.name == "BulletSpeed")
            {
                PopulatePlaceholder(item, 0, 20, mInfo.bulletSpeed, false);
            }
            if (item.name == "NumberOfWaves")
            {
                PopulatePlaceholder(item, 0, 15, mInfo.numberOfWaves, true);
            }
            if (item.name == "SecBtwWaves")
            {
                PopulatePlaceholder(item, 0, 20, mInfo.secBtwWaves, true);
            }
            if (item.name == "SecBtwShoots")
            {
                PopulatePlaceholder(item, 0, 1, mInfo.secBtwShots, false);
            }
            if (item.name == "AngleToShoot")
            {
                PopulatePlaceholder(item, 0, 360, mInfo.angleToShoot, true);
            }
            if (item.name == "AttackDistance")
            {
                PopulatePlaceholder(item, 0, 20, mInfo.attackDistance, false);
                enemy.GetComponentInChildren <DrawAttackLine>().radius = enemy.GetComponent <Thesis.Enemy.EnemyControllerTest>().attackDistance;
            }
            if (item.name == "AttackSpeed")
            {
                PopulatePlaceholder(item, 0, 15, mInfo.attackSpeed, false);
            }
            if (item.name == "StoppingDistance")
            {
                PopulatePlaceholder(item, 0, 15, mInfo.stoppingDistance, false);
                enemy.GetComponentInChildren <DrawStopLine>().radius = enemy.GetComponent <Thesis.Enemy.EnemyMovementTest>().stoppingDistanceToPlayer;
            }
            if (item.name == "MovSpeed")
            {
                PopulatePlaceholder(item, 0, 15, mInfo.movementSpeed, false);
            }
            if (item.name == "TBetweenAttacks")
            {
                PopulatePlaceholder(item, 0, 15, mInfo.timeBetweenAttacks, false);
            }
            if (item.name == "DurationAttack")
            {
                PopulatePlaceholder(item, 0, 15, mInfo.durationOfAttacks, false);
            }
        }
        canChangeValue = true;
    }