Exemplo n.º 1
0
    public EnemyBody BuildEnemyBody()
    {
        EnemyBody enemyBody = EnemyBodyPool.Get() as EnemyBody;

        enemyBody.gameObject.SetActive(true);
        return(enemyBody);
    }
Exemplo n.º 2
0
 /*
  * For now main combat loop:
  * -MainCombatLoop -- checks which turn it is
  * -Enemy Turn || PlayerTurn
  * -Rotate Order -- calls CheckForKo
  * -MainCombatLoop
  */
 private void MainCombatLoop()
 {
     activeEnemy = turnOrder[0].GetComponent <EnemyBody>();
     if (!playerTurn)
     {
         StartCoroutine(EnemyTurn());
     }
 }
Exemplo n.º 3
0
    private void Start()
    {
        InitializeController();

        enemyMovement      = GetComponent <EnemyMovement>();
        characterState     = GetComponent <EnemyState>();
        enemyBody          = GetComponent <EnemyBody>();
        characterInventory = GetComponent <EnemyInventory>();
        enemyAI            = GetComponent <EnemyAI>();
    }
Exemplo n.º 4
0
    public void Target(int index)
    {
        targetIndex = index;
        target      = turnOrder[index].GetComponent <EnemyBody>();

        ClearEnemyColor();
        target.GetComponent <Image>().color = Color.blue;

        StartCoroutine(PrepareAttack());
    }
Exemplo n.º 5
0
    public override List <EnemyBody> GetAnyRequiredEnemies(Level level)
    {
        var spawnLoc = GetBossSpawnLocation();

        Boss      = EnemySpawner.SpawnBoss(spawnLoc).GetComponent <EnemyBody>();
        Boss.xPos = spawnLoc.x;
        Boss.zPos = spawnLoc.y;
        (Boss.AI as BossBrain).BossRoom = this;
        return(new List <EnemyBody> {
            Boss.GetComponent <EnemyBody>()
        });
    }
Exemplo n.º 6
0
    public EnemyAI(int direction, float moverate, EnemyBody someEnemy = null)
    {
        MoveRate = moverate;
        GameManager.instanse.Iteration += OnItteration;

        this.direction = (Direction)(direction % 4);
        someobject     = someEnemy;
        if (someEnemy)
        {
            someobject.DestroySelf += ObjectDestroyed;
        }
    }
Exemplo n.º 7
0
 public void PlaceBoss(EnemyBody boss)
 {
     for (int i = -1; i <= 1; i++)
     {
         for (int j = -1; j <= 1; j++)
         {
             var x = boss.xPos + i;
             var z = boss.zPos + j;
             map[x, z].tileEntityType = Roguelike.Tile.TileEntityType.boss;
             walkCostsMap[x, z]       = map[x, z].GetPathfindingCost();
         }
     }
     walkGrid.UpdateGrid(walkCostsMap);
 }
Exemplo n.º 8
0
 private void Start()
 {
     if (originalBody == null)
     {
         GameObject _parent = Instantiate(parentPrefab, transform.position, Quaternion.identity);
         originalBody = (EnemyBody)_parent.GetComponent <Enemy>().body.Clone();
         Destroy(_parent);
     }
     if (originalBody == null)
     {
         originalBody = new TriangleEnemyBody(5, bulletPrefab, parentPrefab, corpsePrefab);
     }
     originalBody.sprite   = GetComponent <SpriteRenderer>().sprite;
     originalBody.material = GetComponent <SpriteRenderer>().material;
 }
Exemplo n.º 9
0
 public virtual void TakeDamage(int _damage)
 {
     body.hp -= _damage;
     if (body.hp <= 0)
     {
         EnemyBody _newBody = (EnemyBody)body.Clone();
         _newBody.hp = _newBody.startingHp;
         if (Random.Range(0f, 1f) <= bodySpawnChance)
         {
             GameObject corpse = Instantiate(corpsePrefab, transform.position, Quaternion.identity);
             corpse.GetComponent <Corpse>().originalBody = _newBody;
             corpse.transform.rotation = Quaternion.Euler(transform.rotation.x, transform.rotation.y, rb.rotation);
         }
         Destroy(gameObject);
     }
 }
Exemplo n.º 10
0
    public void Interact(PlayerController _player)
    {
        Material  _newMaterial = new Material(originalBody.material);
        EnemyBody _newBody     = (EnemyBody)originalBody.Clone();

        _newBody.parent    = _player.gameObject;
        _newMaterial.color = _player.originalMaterial.color;
        if (_player.body != null)
        {
            _player.body.Discard(_player);
        }
        _player.body = _newBody;
        _player.GetComponent <SpriteRenderer>().sprite   = originalBody.sprite;
        _player.GetComponent <SpriteRenderer>().material = _newMaterial;
        _player.transform.position = transform.position;
        _player.transform.rotation = transform.rotation;
        Destroy(gameObject);
    }
Exemplo n.º 11
0
    public static EnemyData SaveEnemy(EnemyBody body)
    {
        var data = new EnemyData()
        {
            location  = new SerializableVector2Int(body.xPos, body.zPos),
            health    = body.Health.CurrentHealth,
            maxHealth = body.Health.MaxHealth,
            type      = body.Type
        };
        var ai = body.AI as BasicEnemyAI;

        if (ai != null)
        {
            data.state        = ai.currentAIState;
            data.engaged      = ai.engagedTarget != null;
            data.wonderTarget = ai.wanderTarget;
        }

        return(data);
    }
Exemplo n.º 12
0
    void OnTriggerEnter2D(Collider2D _collider)
    {
        /*
         * if (m_strTargetTag == "player")
         * {
         *      Debug.Log(_collider.gameObject.tag);
         * }
         */

        if (_collider.gameObject.tag == m_strTargetTag)
        {
            if (history.Contains(_collider.gameObject) == false)
            {
                if (m_strTargetTag == "enemy")
                {
                    EnemyBody eb = _collider.gameObject.GetComponent <EnemyBody>();
                    if (eb != null)
                    {
                        eb.enemy.Damage(m_data, m_skill, m_weapon);
                    }
                    if (m_skill != null && m_skill.type == "brow")
                    {
                        eb.enemy.m_animatorBody.enabled = false;
                        eb.IsAir = true;
                        Rigidbody2D rb2 = eb.gameObject.GetComponent <Rigidbody2D>();
                        rb2.AddForce(new Vector2(1.0f, 0.5f) * 250);
                    }
                }
                else if (m_strTargetTag == "player")
                {
                    CharaBody ch = _collider.gameObject.GetComponent <CharaBody>();
                    if (ch != null)
                    {
                        ch.game_chara_main.Damage(m_data, m_skill);
                    }
                }
                history.Add(_collider.gameObject);
            }
        }
    }
Exemplo n.º 13
0
 public void Start()
 {
     Body = GetComponent <EnemyBody>();
 }