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); }
//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); }
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; }
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); }
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; } }
public void AddEnemyToList(_Enemy enem) { enemies.Add(enem); }