private void EnemyVisual_EnemyKilled(EnemyVisual visual) { //TODO give player loot Debug.Log(string.Format("{0} died!", visual.data.name)); Destroy(visual.gameObject); enemies.Remove(visual); }
public void SpawnEnemy(string enemy) { GameObject enemyObj = Instantiate(Resources.Load <GameObject>("prefabs/" + enemy)); EnemyVisual visual = enemyObj.GetComponent <EnemyVisual>(); visual.data = LoadEnemyData(enemy); visual.EntityTick += Visual_EntityTick; visual.EnemyAttacked += EnemyVisual_EnemyAttacked; visual.EnemyKilled += EnemyVisual_EnemyKilled; enemies.Add(visual); // gets a place to spawn it SetEnemyPosition(visual, dungeon.GetSpawnPosition()); }
private void EnemyVisual_EnemyAttacked(EnemyVisual enemy) { EnemyData enemyData = enemy.data; PlayerData playerData = player.data; Debug.Log(string.Format("{0} is being attacked!", enemyData.name)); bool hit = BattleCalculator.GetHit(playerData.stats, enemyData.stats); if (hit) { int damage = BattleCalculator.GetDamage(playerData.stats, enemyData.stats, TAttackType.Physical); Debug.Log(string.Format("{0} took {1} damage!", enemyData.name, damage)); enemy.ReceiveDamage(damage); Debug.Log(string.Format("{0} has {1} HP left!", enemyData.name, enemyData.Current(TStat.HP))); } else { Debug.Log("Player missed!"); } }
public void SetEnemyPosition(EnemyVisual visual, Vector2 position) { visual.position = position; visual.transform.position = CanvasToWorld(position); }