Example #1
0
    private void SpawnEnemy(int lane)
    {
        GameObject tmp    = null;
        EnemyType  result = RandomSpawnFunc(laneDataList[lane].mainType);

        if (result.Equals(EnemyType.Null) || continuousLock[lane] == 2 || btLock[lane] > 0)
        {
            continuousLock[lane] = 0;
            btLock[lane]--;
            return;
        }

        if (result.Equals(laneDataList[lane].mainType))
        {
            tmp = Instantiate(laneDataList[lane].prefab, laneDataList[lane].spawnPoint, Quaternion.identity);
        }
        else if (result.Equals(EnemyType.Healthy))
        {
            tmp = Instantiate(prefabHealthy, laneDataList[lane].spawnPoint, Quaternion.identity);
        }
        else if (result.Equals(EnemyType.BT))
        {
            tmp          = Instantiate(prefabBT, laneDataList[lane].spawnPoint, Quaternion.identity);
            btLock[lane] = btBlockCount;
        }

        continuousLock[lane]++;

        tmp.name = lane.ToString();
        tmp.GetComponent <EnemyController>().OnEnemyStopInteract += RemoveStack;
        laneDataList[lane].enemyStack.Enqueue(tmp.GetComponent <EnemyController>());
    }
Example #2
0
    void Update()
    {
        if (haveSoul && jumpTime <= Time.time)
        {
            if (Input.GetButtonDown("Fire1"))    /*Jump Attack*/
            {
                if (type.Equals(EnemyType.Jump))
                {
                    jumpAttack(direction);
                }
                else if (type.Equals(EnemyType.Slash))
                {
                }
            }

            if (Input.GetButtonDown("Fire2"))
            {
                prefab = Instantiate(soul, transform.position, transform.rotation);
                prefab.SendMessage("SetDirection", direction);
                haveSoul            = false;
                this.gameObject.tag = "Enemy";
                moveDirection       = Vector2.zero;
            }
        }
    }
Example #3
0
 void OnCollisionEnter2D(Collision2D collision)
 {
     if (collision.gameObject.tag == "Bullet")
     {
         hitPoints--;
         if (hitPoints == 0)
         {
             animator.SetTrigger("die");
         }
     }
     else if (collision.gameObject.tag == "Player")
     {
         collision.gameObject.GetComponent <CharacterController2D>().GetHit();
     }
     else if (collision.gameObject.tag == "Pet")
     {
         if (type.Equals(EnemyType.MONSTER))
         {
             collision.gameObject.GetComponent <PetController>().GetHit();
         }
         else if (type.Equals(EnemyType.GHOST_FOOD) || type.Equals(EnemyType.GHOST_HEALTH) || type.Equals(EnemyType.GHOST_MIND))
         {
             collision.gameObject.GetComponent <PossessionController>().Possess(type);
             animator.SetTrigger("possess");
         }
     }
 }
Example #4
0
 public void SetEnemyTypeAndIndex(EnemyType type, int index = 0)
 {
     enemyType = type;
     if (enemyType.Equals(EnemyType.Normal))
     {
         enemyIndex = index;
     }
 }
Example #5
0
    public GameObject CreateBoss(Vector3 spawnPosition, string enemyTag, int enemyLayer, Vector3 enemyScale, float colliderRadius, int animationNumber,
                                 bool enemyCounter, EnemyType enemyType, int[] enemyItem, int enemyNumber, float[] enemyHP)
    {
        GameObject enemy = enemyPool.GetChild(0).gameObject;

        enemy.SetActive(true);
        enemy.transform.position = spawnPosition;
        enemy.gameObject.tag     = enemyTag;
        enemy.gameObject.layer   = enemyLayer;
        enemy.transform.SetParent(enemyParent);
        enemy.transform.localScale = enemyScale;

        CircleCollider2D circleCollider2D = enemy.GetComponent <CircleCollider2D>();

        circleCollider2D.enabled = true;
        circleCollider2D.radius  = colliderRadius;

        Animator animator = enemy.GetComponent <Animator>();

        animator.runtimeAnimatorController = characterAnimatorController[animationNumber];

        EnemyStatus enemyStatus = enemy.GetComponent <EnemyStatus>();

        enemyStatus.SetCounter(enemyCounter);
        enemyStatus.SetEnemyType(enemyType);
        enemyStatus.SetEnemyItem(enemyItem);
        if (enemyType.Equals(EnemyType.ENEMYTYPE_BOSS))
        {
            enemyStatus.SetEnemyNumber(0);
            enemyStatus.SetEnemyBossNumber(enemyNumber);
        }
        else if (enemyType.Equals(EnemyType.ENEMYTYPE_NONE))
        {
            enemyStatus.SetEnemyNumber(0);
            enemyStatus.SetEnemyBossNumber(0);
        }
        else
        {
            enemyStatus.SetEnemyNumber(enemyNumber);
            enemyStatus.SetEnemyBossNumber(0);
        }
        enemyStatus.SetEnemyMaxHPArray(enemyHP);
        enemyStatus.SetEnemyCurrentHP(enemyStatus.GetEnemyMaxHPArray()[0]);

        return(enemy);
    }
Example #6
0
    private void Start()
    {
        rb     = GetComponent <Rigidbody2D>();
        sprite = GetComponentInChildren <SpriteRenderer>();

        player = GameManager.instance.player.gameObject;

        playerCombat = player.GetComponent <PlayerCombat>();

        maxHealth = health;

        startcolor = GetComponentInChildren <SpriteRenderer>().color;

        if (type.Equals(EnemyType.Patrol))
        {
            InvokeRepeating("ChangeDirection", changeDirectionTime, changeDirectionTime);
        }
    }
Example #7
0
    // Use this for initialization when manager is enabled with "setActive"
    void OnEnable()
    {
        Debug.Log("OnEnabled BattleManager");

        // Prevent to init on very first start of the game
        if (GameManager.instance != null && GameManager.instance.isBattle)
        {
            WordsRepository = XmlManager.Deserialize <WordsRepository>();
            WordLevel wordLevel = EmotionMenager.GetInstance().WordLevelDifficulty();
            ActiveWord = new WordToType(WordsRepository.GetRandomWord(wordLevel), WordSpawner.SpawnWord());

            // get random enemy from prefabs
            Debug.Log("Init enemy:");
            EnemyType enemyType = getEnemyType();
            Debug.Log(enemyType);
            if (enemyType.Equals(EnemyType.Wolf))
            {
                Debug.Log("Loading Wolf.");
                enemy = Instantiate(Resources.Load("Prefabs/WolfBattle", typeof(GameObject)), enemyPosition.position, Quaternion.identity) as GameObject;
            }
            else if (enemyType.Equals(EnemyType.Zombie))
            {
                Debug.Log("Loading Zombie.");
                enemy = Instantiate(Resources.Load("Prefabs/Zombie1Battle", typeof(GameObject)), enemyPosition.position, Quaternion.identity) as GameObject;
            }
            Debug.Log(enemy);
            // enemy.transform.parent = enemyPosition;
            //set up player&enemy health text
            Debug.Log("Player health: ");
            Debug.Log(playerInBattle.GetComponent <PlayerInBattle>().health);
            Debug.Log("Enemy health: ");
            Debug.Log(enemy.GetComponent <EnemyInBattle>().health);
            maxEnemyHealth    = enemy.GetComponent <EnemyInBattle>().health;
            playerHealth.text = playerInBattle.GetComponent <PlayerInBattle>().health + "/" + Player.maxHealth;
            enemyHealth.text  = enemy.GetComponent <EnemyInBattle>().health + "/" + enemy.GetComponent <EnemyInBattle>().health;
            headline.text     = "Fight!";
        }
    }
Example #8
0
        public void increaseScore(EnemyType enemyType)
        {
            if (enemyType.Equals(EnemyType.BIG_FISH))
            {
                highScore += 1;
            }
            else
            {
                highScore += 3;
            }

            ScoreBoard.score = highScore;
            if (highScore >= prevBestScore)
            {
                prevBestScore = highScore;
            }
        }
Example #9
0
        public void increaseScore(EnemyType enemyType)
        {
            if (enemyType.Equals(EnemyType.BIG_FISH))
                highScore += 1;
            else
                highScore += 3;

            ScoreBoard.score = highScore;
            if (highScore >= prevBestScore)
            {
                prevBestScore = highScore;
            }
        }
Example #10
0
    public GameObject CreateMinion(Vector3 spawnPosition, string enemyTag, int enemyLayer, Vector3 enemyScale, float colliderRadius, int animationNumber,
                                   bool enemyCounter, EnemyType enemyType, int[] enemyItem, int enemyNumber, float enemyHP, int enemyPatternNumber, int enemyCounterPatternNumber,
                                   float enemyAttackWaitTime, float enemyAttackDelayTime, bool isPatternOnce, bool isPatternRepeat, int enemyFireCount, float enemyAttackRepeatTime,
                                   int enemyCustomPatternNumber = 0, bool isAutoDestroy = false, float waitTime = 0.0f)
    {
        GameObject enemy = enemyPool.GetChild(0).gameObject;

        enemy.SetActive(true);
        enemy.transform.position = spawnPosition;
        enemy.gameObject.tag     = enemyTag;
        enemy.gameObject.layer   = enemyLayer;
        enemy.transform.SetParent(enemyParent);
        enemy.transform.localScale = enemyScale;

        CircleCollider2D circleCollider2D = enemy.GetComponent <CircleCollider2D>();

        circleCollider2D.enabled = true;
        circleCollider2D.radius  = colliderRadius;

        Animator animator = enemy.GetComponent <Animator>();

        animator.runtimeAnimatorController = characterAnimatorController[animationNumber];

        EnemyStatus enemyStatus = enemy.GetComponent <EnemyStatus>();

        enemyStatus.SetCounter(enemyCounter);
        enemyStatus.SetEnemyType(enemyType);
        enemyStatus.SetEnemyItem(enemyItem);
        if (enemyType.Equals(EnemyType.ENEMYTYPE_BOSS))
        {
            enemyStatus.SetEnemyNumber(0);
            enemyStatus.SetEnemyBossNumber(enemyNumber);
        }
        else if (enemyType.Equals(EnemyType.ENEMYTYPE_NONE))
        {
            enemyStatus.SetEnemyNumber(0);
            enemyStatus.SetEnemyBossNumber(0);
        }
        else
        {
            enemyStatus.SetEnemyNumber(enemyNumber);
            enemyStatus.SetEnemyBossNumber(0);
        }
        enemyStatus.SetEnemyMaxHP(enemyHP);
        enemyStatus.SetEnemyCurrentHP(enemyStatus.GetEnemyMaxHP());

        EnemyFire enemyFire = enemy.GetComponent <EnemyFire>();

        enemyFire.SetEnemyPatternNumber(enemyPatternNumber);
        enemyFire.SetEnemyCounterPatternNumber(enemyCounterPatternNumber);
        enemyFire.SetEnemyAttackWaitTime(enemyAttackWaitTime);
        enemyFire.SetEnemyAttackDelayTime(enemyAttackDelayTime);
        enemyFire.SetEnemyPatternOnce(isPatternOnce);
        enemyFire.SetEnemyPatternRepeat(isPatternRepeat);
        enemyFire.SetEnemyFireCount(enemyFireCount);
        enemyFire.SetEnemyAttackRepeatTime(enemyAttackRepeatTime);
        enemyFire.SetEnemyCustomPatternNumber(enemyCustomPatternNumber);

        EnemyDestroy enemyDestroy = enemy.GetComponent <EnemyDestroy>();

        if (isAutoDestroy.Equals(true))
        {
            StartCoroutine(enemyDestroy.EnemyAutoDestroy(waitTime));
        }

        return(enemy);
    }