Beispiel #1
0
 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);
 }
Beispiel #2
0
    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());
    }
Beispiel #3
0
    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!");
        }
    }
Beispiel #4
0
 public void SetEnemyPosition(EnemyVisual visual, Vector2 position)
 {
     visual.position           = position;
     visual.transform.position = CanvasToWorld(position);
 }