Inheritance: MonoBehaviour
Esempio n. 1
0
    public bool IsPathBlocked(List <Tile> tiles)
    {
        if (pathEnemy == null)
        {
            pathEnemy = pathEnemyObj.GetComponentInChildren <_Enemy>();
            pathEnemy.Init(pC, null, null);
        }

        foreach (var t in tiles)
        {
            t.ToggleTempBlocking(true);
        }

        var x = QPath.QPath.FindPath <Tile>(pC, pathEnemy, spawnTiles1[0], targetTiles1[0]);
        var y = QPath.QPath.FindPath <Tile>(pC, pathEnemy, spawnTiles2[0], targetTiles2[0]);

        foreach (var t in tiles)
        {
            t.ToggleTempBlocking(false);
        }

        if (x.Length == 0 || y.Length == 0)
        {
            Debug.Log("Path blocked");
            return(false);
        }

        return(true);
    }
Esempio n. 2
0
    //direct hit
    //TODO damage calculator for splash damage (explosions)
    //TODO damage calculator that accounts for range (shotgun?)
    public void DamageCalculator_TowerToEnemy(_Tower tower, _Enemy enemy)
    {
        float ap           = 100 - (enemy.Armour / tower.ArmourPeneration);
        float armourFactor = Mathf.Clamp(ap, 0.05f, 0.95f);

        float damage = tower.Damage * armourFactor;

        //Debug.Log("damage = " + damage);
        enemy.AdjustHp(damage);
    }
Esempio n. 3
0
    public void Init(PlayerController pC, _Tower tower, GameObject target)
    {
        this.pC      = pC;
        this.myTower = tower;

        this.targetObj = target;

        this.myEnemy   = target.GetComponent <_Enemy>();
        this.targetPos = target.transform.position;
    }
Esempio n. 4
0
    private void SpawnEnemy(GameObject prefabToRender)
    {
        Tile spawnTile  = pC.tileController.GetSpawnTile(WaveNumber);
        Tile targetTile = pC.tileController.GetTargetTile(WaveNumber);


        GameObject enemyObj = Instantiate(
            pC.prefabController.EnemyNormalPrefab,
            new Vector3(spawnTile.X, spawnTile.Y, 0),
            Quaternion.identity,
            pC.EnemyAnchorObj.transform
            );

        _Enemy enemy = enemyObj.GetComponentInChildren <_Enemy>();

        EnemiesList.Add(enemy);
        enemyToGoMap[enemy] = enemyObj;

        enemy.Init(pC, spawnTile, targetTile);
    }
Esempio n. 5
0
    void presentEnemy()     // 단순하게  고쳐라
    {
        string          filepath = Application.dataPath + "/rune31/Scripts/GameData/";
        List <_Dungeon> dungeon;

        dungeon = JsonConvert.DeserializeObject <_Dungeons>(File.ReadAllText(filepath + "DungeonData.json")).Dungeons;
        if (dungeon[0].enemy[areanum.ToString()] == null)
        {
            Destroy(gameObject);
        }
        else
        {
            AddEnemy();
            //Debug.Log("in Enemy"+enmTotalPool.totalPool.Keys.Count);
            _presentEnemy = enmTotalPool.totalPool[dungeon[0].enemy[areanum.ToString()]];

            List <_Magic> inhQuery =
                (from mgc in mgcTotalPool.totalList
                 where mgc.name == _presentEnemy.magic
                 select mgc).ToList();

            Debug.Log("in Enemy inhQuery" + "\n" + inhQuery.Count);

            if (inhQuery.Count != 0)
            {
                _inherentMagic = inhQuery[0];
            }

            _enemyImg = Resources.Load(String.Format("{0}", _presentEnemy.prefab), typeof(Sprite)) as Sprite;
            GetComponent <SpriteRenderer>().sprite = _enemyImg;

            _magicPenetration = _presentEnemy.magicPenetration;
            _magicResistance  = _presentEnemy.magicResistance;
            _health           = _presentEnemy.health;
            _attDmg           = _presentEnemy.attackDmg;
            _attRate          = _presentEnemy.attackRate;
            _mgcCool          = _presentEnemy.mgcCool;
            _maxDrop          = _presentEnemy.maxDrop;
            _reward           = _presentEnemy.reward;
        }
    }
Esempio n. 6
0
 public void AddEnemyToList(_Enemy enem)
 {
     enemies.Add(enem);
 }