예제 #1
0
 public void CreateRyu()
 {
     //load prefabs
     PFAlberto = Resources.Load <CAlberto>("Prefabs/PFAlberto");
     PFSlime   = Resources.Load <CEnemy>("Prefabs/PFSlime");
     PFBobby   = Resources.Load <CEnemy>("Prefabs/PFBobby");
 }
예제 #2
0
    public void SpawnEnemy(Vector3 pos, int line, int sorting)
    {
        // Spawnea a un enemigo en la ubicacíon pasasda por paramentro
        // Y se agrega al manager de enemigos

        int pitch = Random.Range(0, 3);

        float posYOriginal = pos.y;

        pos = new Vector3(pos.x, pos.y + beatTempo + 30, pos.z);

        GameObject enemy = GameObject.Instantiate(CEnemyManager.Inst._enemyAsset, pos, Quaternion.identity);

        enemy.transform.parent = this.transform;
        enemy.GetComponent <SpriteRenderer>().sortingOrder = sorting;

        CEnemy enemyccc = enemy.GetComponent <CEnemy>();

        enemyccc.beatTempo = beatTempo;

        enemyccc._line  = line;
        enemyccc._pitch = pitch;
        enemyccc._lineY = posYOriginal;

        CEnemyManager.Inst.addEnemy(enemy.GetComponent <CEnemy>());
    }
예제 #3
0
 private void OnTriggerEnter2D(Collider2D collision)
 {
     if (flight_way < 0)
     {
         return;
     }
     if (collision.tag == "Enemy")
     {
         CEnemy enemy = collision.transform.GetComponent <CEnemy>();
         if (enemy != null)
         {
             enemy.SetHurtValue(Player.weapon.attack, flight_way);
         }
         if (test)
         {
             tutorialRequest.DoneHitEnemy();
         }
         flight_way = -1;
         gameObject.SetActive(false);
     }
     else if (collision.tag == "Wall")
     {
         flight_way = -1;
         gameObject.SetActive(false);
     }
 }
예제 #4
0
    public void OnUnitDestroyed(CUnit unit)
    {
        switch (unit.GetUnitType())
        {
        case UNIT_TYPE.PLAYER:
        {
            mPlayer = null;

            Debug.Log("on player destroyed");

            CUIManager.GetInstance().OnUnitDestroyed(unit);
        }
        break;

        case UNIT_TYPE.ENEMY:
        {
            mEnemy = null;

            Debug.Log("on enemy destroyed");

            CUIManager.GetInstance().OnUnitDestroyed(unit);
        }
        break;
        }
    }
예제 #5
0
    private void UpdateFirstEnemy()
    {
        for (int i = 0; i < _enemies.Count; i++)
        {
            if (_firstEnemy == null)
            {
                _firstEnemy = _enemies[i];
            }
            else
            {
                if (_enemies[i].transform.position.x < _firstEnemy.transform.position.x)
                {
                    _firstEnemy = _enemies[i];
                }
            }
        }

        Debug.Log("updating first enemy: " + _firstEnemy);

        if (_firstEnemy != null)
        {
            if (_firstEnemy._line == 2 && _firstEnemy._state == CEnemy._STATE_ON)
            {
                playEnemySfx();
            }
        }
    }
예제 #6
0
    public void spawnEnemy(float x, float y, int type = 0)
    {
        CEnemy enemy = new CEnemy();

        enemy.destroy();
        type = type == 0 ? CMath.randomIntBetween(1, 3) : type;

        switch (type)
        {
        case 1:
            enemy = (CEnemy) new CSalamandra(CSalamandra.TYPE_DONT_FALL);
            break;

        case 2:
            enemy = (CEnemy) new CGolemTierra(CGolemTierra.TYPE_DONT_FALL);
            break;

        case 3:
            enemy = (CEnemy) new CElementalAgua(CElementalAgua.TYPE_DONT_FALL);
            break;

        case 4:
            enemy = (CEnemy) new CBird(CBird.TYPE_DONT_FALL);
            break;
        }
        enemy.setState(CEnemy.STATE_FALLING);
        enemy.setXY(x - enemy.getWidth() / 2, y + enemy.getHeight() / 2);
        this.add(enemy);
    }
예제 #7
0
    // Use this for initialization
    void Start()
    {
        Debug.Log("CScenePlayGame.Start");

        mpUIPlayGame.SetScene(this);
        mpUIPlayGame.CreateMy();

        mpAlberto = Instantiate <CAlberto>(PFAlberto, Vector3.zero, Quaternion.identity);
        mpAlberto.SetScene(this);
        mpAlberto.CreateMy();


        mEnemyList = new List <CEnemy>();

        CEnemy tpEnemy = null;

        for (int i = 0; i < ENEMY_SLIME_COUNT; i++)
        {
            tpEnemy = Instantiate(PFSKeleton, new Vector3((3 + i * 0.5f), 0, 0), Quaternion.identity);
            tpEnemy.SetScene(this);
            tpEnemy.CreateMy();
            mEnemyList.Add(tpEnemy);
        }

        for (int i = 0; i < ENEMY_REDSLIME_COUNT; i++)
        {
            tpEnemy = Instantiate(PFRabbit, new Vector3(-(3 + i * 0.5f), 0, 0), Quaternion.identity);
            tpEnemy.SetScene(this);
            tpEnemy.CreateMy();
            mEnemyList.Add(tpEnemy);
        }
    }
예제 #8
0
    public CEnemy FindClosestEnemy()
    {
        Debug.Log("fIND CLOSEST ENEMY");
        float  distanceToClosestEnemy = Mathf.Infinity;
        CEnemy closestEnemy           = null;

        foreach (CEnemy currentEnemy in enemies)
        {
            if (currentEnemy.IsDead)
            {
                continue;
            }
            float distanceToEnemy = (currentEnemy.transform.position - this.transform.position).sqrMagnitude;
            if (distanceToEnemy < distanceToClosestEnemy)
            {
                distanceToClosestEnemy = distanceToEnemy;
                closestEnemy           = currentEnemy;
            }
        }

        Debug.Log(closestEnemy.gameObject.name);
        return(closestEnemy);

        Debug.DrawLine(this.transform.position, closestEnemy.transform.position);
    }
예제 #9
0
    void DoCreateEnemy()
    {
        int ti = 0;

        if (mEnemyList.Count < 5)
        {
            ti = mEnemyList.Count;
            CEnemy tpSlime = null;

            tpSlime = null;
            tpSlime = Instantiate <CEnemy>(CRyuGameDataMgr.GetInst().PFSlime, Vector3.zero, Quaternion.identity);
            tpSlime.transform.position = new Vector3(-1.0f * Mathf.Pow(-1, ti) * ti, 0, -1.0f * Mathf.Pow(-1, ti - 1) * ti);
            tpSlime.SetScene(this);

            mEnemyList.Add(tpSlime);
            CRyuSoundMgr.GetInst().Play(2);

            mEnemyList[ti].CreateAni();
        }
        else if (5 == mEnemyList.Count)
        {
            CEnemy tpBobby = null;
            tpBobby = null;
            tpBobby = Instantiate <CEnemy>(CRyuGameDataMgr.GetInst().PFBobby, Vector3.zero, Quaternion.identity);
            tpBobby.transform.position = new Vector3(-5, 0, 0);
            tpBobby.SetScene(this);
            tpBobby.SetAlberto(mpAlberto);
            mEnemyList.Add(tpBobby);
            CRyuSoundMgr.GetInst().Play(2);
        }
    }
예제 #10
0
    private void AimAtEnemy(CEnemy _enemy)
    {
        Vector3 enemyDirection = _enemy.transform.position - m_GunPivot.position;
        float step = AIM_VELOCITY * Time.deltaTime;

        /*
         * Tried, but even if camera is separated and has it's own script (with lookAt Player) effect is ugly...
        // Rotate if enemy is behind you
        if (m_RightDirected)
        {
            // Player is directed to right, but enemy is on the left
            if (_enemy.transform.position.x < 0)
            {
                this.transform.Rotate(Vector3.up, 180.0f);
                m_RightDirected = false;
            }
        }
        else
        {
            // Player is directed to left, but enemy is on the right
            if (_enemy.transform.position.x < 0)
            {
                this.transform.Rotate(Vector3.up, 180.0f);
                m_RightDirected = true;
            }
        }
        */

        Vector3 newDir = Vector3.RotateTowards(m_GunPivot.forward, enemyDirection, step, 0.0f);

        m_GunPivot.rotation = Quaternion.LookRotation(newDir);
    }
예제 #11
0
    private void Start()
    {
        CEnemy enemy;

        //boss獨立給玩家參照
        boss        = transform.GetChild(0).GetChild(2).GetComponent <CEnemy>();
        boss.player = Inplayer;
        boss.SetEnemySystem(this);
        //所有敵人分別給內外玩家參照
        for (int i = 0; i < freeEnemyIn.childCount; i++)
        {
            enemy        = freeEnemyIn.GetChild(i).GetComponent <CEnemy>();
            enemy.player = Inplayer;
            enemy.SetEnemySystem(this);
            // if (i == 1) InEnemys[i].gameObject.SetActive(true);
            //InEnemys[i].GetComponent<CEnemy>().attackDetect += Inplayer.OnHurt;
        }
        for (int i = 0; i < transform.GetChild(1).childCount; i++)
        {
            enemy = (transform.GetChild(1).GetChild(i)).GetComponent <CEnemy>();
            //OutEnemys.Add(enemy.transform);
            enemy.IsOut  = true;
            enemy.player = Outplayer;
            enemy.SetEnemySystem(this);
            //OutEnemys[i].GetComponent<CEnemy>().player = Outplayer.gameObject;
            // if (i == 1) OutEnemys[i].gameObject.SetActive(true);
            //InEnemys[i].GetComponent<CEnemy>().attackDetect += Outplayer.OnHurt;
        }
        if (test)
        {
            return;
        }
    }
예제 #12
0
    public void EnemyAttack(CEnemy a_oEnemy)
    {
        if (m_bIsAttack && a_oEnemy.m_bAttackEnable)
        {
            if (a_oEnemy.m_bIsDeath)
            {
                return;
            }

            var nSkillNumber  = Random.Range(1, 3);
            var oRandomPlayer = Random.Range(0, 3);
            if (m_oPlayers[oRandomPlayer].m_bIsDeath)
            {
                while (m_oPlayers[oRandomPlayer].m_bIsDeath)
                {
                    oRandomPlayer = Random.Range(0, 3);

                    if (!m_oPlayers[oRandomPlayer].m_bIsDeath)
                    {
                        break;
                    }
                }
            }
            a_oEnemy.MoveEnemy(nSkillNumber, m_oPlayerTransforms[oRandomPlayer].localPosition);


            m_bIsAttack = false;
        }
    }
예제 #13
0
    public void SpawnEnemy(float x, float y)
    {
        GameObject obj = Instantiate(mEnemyPrefab);

        obj.transform.parent = mUnitRootTransform;

        CEnemy enemy = obj.GetComponent <CEnemy>();

        enemy.SetPos(x, y);
    }
예제 #14
0
    public void CreateRyu()
    {
        //툴에서 연결하지 않고 소스코드상에서 연결한다.
        mpUI    = FindObjectOfType <CUI> ();
        mpActor = FindObjectOfType <CActor> ();
        mpEnemy = FindObjectOfType <CEnemy> ();


        mpUI.CreateRyu();
        mpUI.SetScene(this);
    }
예제 #15
0
    // Use this for initialization
    void Start()
    {
        mpUIPlayGame = GameObject.FindObjectOfType <CUIPlayGame>();
        //findObjectOfType 하이어라키 상의 오브젝트를 불러옴
        mpUIPlayGame.SetScene(this);

        //mpAlberto = Instantiate<CAlberto>(PFAlberto, Vector3.zero, Quaternion.identity);
        //mpSlime = Instantiate<CEnemy>(PFSlime, Vector3.zero, Quaternion.identity);

        mpAlberto = Instantiate <CAlberto>(CRyuGameDataMgr.GetInst().PFAlberto, Vector3.zero, Quaternion.identity);
        mpSlime   = Instantiate <CEnemy>(CRyuGameDataMgr.GetInst().PFSlime, Vector3.zero, Quaternion.identity);
    }
예제 #16
0
 public void OnTriggerEnter2D(Collider2D other)
 {
     if (other.CompareTag("Enemy"))
     {
         CEnemy enemy = other.GetComponent <CEnemy>();
         Destroy(gameObject);
         if (enemy.Immunity != elementString)
         {
             enemy.ReceiveSpellDamage(1, element);
         }
     }
 }
예제 #17
0
    public void CreateRyu()
    {
        //load prefabs
        PFAlberto      = Resources.Load <CAlberto>("Prefabs/PFAlberto");
        PFSlime        = Resources.Load <CEnemy>("Prefabs/PFSlime");
        PFBobby        = Resources.Load <CEnemy>("Prefabs/PFBobby");
        PFEnemy_1      = Resources.Load <CEnemy_1>("Prefabs/PFEnemy_1");
        PFBulletSphere = Resources.Load <CBullet>("Prefabs/PFBulletSphere");

        CreateWithLanguageType();

        CreateWithStageData();
    }
예제 #18
0
    public void ImOut(CEnemy it)
    {
        _enemyDeaths += 1;

        _enemies.Remove(it);

        if (it == _firstEnemy)
        {
            _firstEnemy = null;

            UpdateFirstEnemy();
        }
    }
    private void CreateEnemy(int aIndex)
    {
        if (aIndex < 0 || aIndex >= CLevelManager.Inst._enemies.Count)
        {
            return;
        }
        GameObject enemy = Instantiate(CLevelManager.Inst._enemies[aIndex].prefab, transform);

        _currentEnemy            = enemy.GetComponent <CEnemy>();
        enemy.transform.position = _enemySpawnPonint.position;
        _currentEnemy._attackAnim._initialPos = _enemySpawnPonint.localPosition;
        _currentEnemy._attackAnim._endPos     = _enemyEndPonint.localPosition;
    }
예제 #20
0
    public void ReturnEnemy(CEnemy a_oEnemy)
    {
        a_oEnemy.ReturnEnemy();

        for (int i = 0; i < m_oPlayers.Length; ++i)
        {
            if (!m_oPlayers[i].m_bIsDeath)
            {
                return;
            }
        }

        m_bIsPlayerOver = true;
    }
예제 #21
0
    public void addEnemy(CEnemy newEnemy)
    {
        _enemies.Add(newEnemy);

        if (_firstEnemy == null)
        {
            _firstEnemy = newEnemy;

            if (_firstEnemy._line == 2 && _firstEnemy._state == CEnemy._STATE_ON)
            {
                playEnemySfx();
            }
        }
    }
예제 #22
0
        public void setEnemiesProlog()
        {
            visitedEnemies = new List <int>();
            Random rand = new Random();

            enemies = new CEnemy[3];
            for (int x = 0; x < enemies.Length; x++)
            {
                enemies[x] = new CEnemy {
                    Left = rand.Next(1, 500), Top = rand.Next(100, 250)
                };
                enemies[x].Update(enemies[x].Left, enemies[x].Top);
            }
        }
예제 #23
0
    /// <summary>
    /// Check if this beam hit something
    /// </summary>
    void CheckHit()
    {
        // Throws a raycast
        RaycastHit hit;

        if (Physics.Raycast(this.transform.position, v3Direction, out hit, Mathf.Infinity, 1 << 9))
        {
            // Ok, we have hit an enemy. So, what was his color?
            CEnemy enemyScript = hit.transform.parent.gameObject.GetComponent <CEnemy>();
            enemyScript.HitBy(myColor, fDamage);

            // DEBUG
            Debug.Log(this.transform + " Hit in " + hit.transform);
        }
    }
예제 #24
0
    /* -----------------------------------------------------------------------------------------------------------
     * POPULATE
     * -----------------------------------------------------------------------------------------------------------
     */
    /// <summary>
    /// Add the first enemies in the game, for testing purposes
    /// </summary>
    void PopulateLevelWithEnemies(int nNumberOfEnemies)
    {
        float fMinAltitude = 35.0f;
        float fMaxAltitude = 42.0f;

        for (int n = 0; n < nNumberOfEnemies; n++)
        {
            // Instantiate a new enemy
            GameObject goEnemy     = Spawner.Spawn(enemyPrefab, Vector3.zero, Quaternion.identity) as GameObject;
            CEnemy     scriptEnemy = goEnemy.GetComponent <CEnemy>();

            int nRandomColor = UnityEngine.Random.Range(0, ColorWheel.Length);
            scriptEnemy.Setup(ColorWheel[nRandomColor], UnityEngine.Random.Range(fMinAltitude, fMaxAltitude), UnityEngine.Random.Range(0.0f, 60.0f));
        }
    }
예제 #25
0
    public void Kick()
    {
        RaycastHit2D hit = Physics2D.Raycast(_trHitPosition.position, Vector2.zero);

        if (hit.collider != null && hit.collider.tag == "Enemy")
        {
            CEnemy enemy = hit.transform.gameObject.GetComponent <CEnemy>();

            if (enemy._eType == CEnemy.ENEMY_TYPE.KICK)
            {
                enemy.TakeDamaged();
                AudioSource.PlayClipAtPoint(_soundHit, CGameManager._pInstance.transform.position);
                StartCoroutine(HitEffect());
            }
        }
    }
예제 #26
0
 void SetCondition(CEnemy.Condition cond_, int cond_num_)
 {
     if (state_cond[cond_num_] == null)
     {
         switch (cond_)
         {
             case Condition.NULL:
                 state_cond[cond_num_] = new ConditionChecker(OnThisState);
                 break;
             case Condition.CheckTime:
                 state_cond[cond_num_] = new ConditionChecker(CheckTime);
                 break;
             case Condition.CheckOneFrame:
                 state_cond[cond_num_] = new ConditionChecker(CheckOneFrame);
                 break;
             case Condition.CheckLeftSide:
                 state_cond[cond_num_] = new ConditionChecker(CheckLeftSide);
                 break;
             case Condition.CheckRightSide:
                 state_cond[cond_num_] = new ConditionChecker(CheckRightSide);
                 break;
             case Condition.CheckUpperSide:
                 state_cond[cond_num_] = new ConditionChecker(CheckUpperSide);
                 break;
             case Condition.CheckLowerSide:
                 state_cond[cond_num_] = new ConditionChecker(CheckLowerSide);
                 break;
             case Condition.CheckDistance:
                 state_cond[cond_num_] = new ConditionChecker(CheckDistance);
                 break;
             case Condition.CheckDistanceX:
                 state_cond[cond_num_] = new ConditionChecker(CheckDistanceX);
                 break;
             case Condition.CheckDistanceY:
                 state_cond[cond_num_] = new ConditionChecker(CheckDistanceY);
                 break;
             case Condition.CheckRadius:
                 state_cond[cond_num_] = new ConditionChecker(CheckRadius);
                 break;
             case Condition.CheckHP:
                 state_cond[cond_num_] = new ConditionChecker(CheckHP);
                 break;
             default:
                 break;
         }
     }
 }
예제 #27
0
    public void Initialize(EnemyStatus enemy_,
                           CEnemy.AI AI_type_)
    {
        max_HP = enemy_.HP;
        HP = max_HP;
        ATK = enemy_.ATK;
        speed = enemy_.SPD;
        DEF = enemy_.DEF;
        coin_amount = enemy_.coin_amount;
        score = enemy_.score;
        ai_phase = 0;
        current_animation = AnimationName.normal;

        SetShooter();

        SetAI(AI_type_);
    }
예제 #28
0
    IEnumerator RegenEnemy()
    {
        yield return(new WaitForSeconds(3f));

        while (true)
        {
            int randEnemyIdx = Random.Range(0, _prefEnemys.Length);

            CEnemy enemy = Instantiate(_prefEnemys[randEnemyIdx],
                                       _trEnemyRegenPos[randEnemyIdx].position, Quaternion.identity).GetComponent <CEnemy>();

            enemy.DoInit();
            enemy.transform.SetParent(_trEnemyPrent);

            yield return(new WaitForSeconds(2f));
        }
    }
예제 #29
0
    public void  AddFreeList(Transform trans)
    {
        Debug.Log("recycle enemy" + enemyNumber);
        CEnemy temp = trans.GetComponent <CEnemy>();
        float  side = temp.whichSide;

        trans.parent = freeEnemyIn;
        trans.gameObject.SetActive(false);
        enemyNumber--;
        //deathNumber++;
        if (StageManager.currentStage < 7)
        {
            if (Mathf.Abs(side) > 0.5f)
            {    //如果回收的敵人有占住一個攻擊位置,把位置給其他人
                if (side > 0.1f)
                {
                    canAttackLoc[1] = true;
                }
                else if (side < -0.1f)
                {
                    canAttackLoc[0] = true;
                }
                for (int i = 0; i < UsedEnemyIn.childCount; i++)
                {
                    temp = UsedEnemyIn.GetChild(i).GetComponent <CEnemy>();
                    if (Mathf.Abs(temp.whichSide) < 0.2f)
                    {
                        Debug.Log("get position");
                        if (canAttackLoc[0])
                        {
                            Debug.Log("left");
                            temp.whichSide  = -1.0f;
                            canAttackLoc[0] = false;
                        }
                        else if (canAttackLoc[1])
                        {
                            Debug.Log("right");
                            temp.whichSide  = 1.0f;
                            canAttackLoc[1] = false;
                        }
                    }
                }
            }
        }
    }
 /// <summary>
 /// Called when the player succesfully completes a sequence.
 /// </summary>
 public void OnSequenceComplete()
 {
     if (_currentEnemy == null && _currentHeart == null)
     {
         return;
     }
     if (_currentHeart != null)
     {
         _currentHeart.SetState(CHeart.STATE_PICKED_UP);
         _currentHeart = null;
     }
     else
     {
         _currentEnemy.SetDead(true);
         _currentEnemy = null;
     }
     _elapsedTimeNoEnemy       = 0;
     _timeToWaitBetweenEnemies = CMath.RandomFloatBetween(CLevelManager.Inst.GetCurrentTimeEnemySpawn().x, CLevelManager.Inst.GetCurrentTimeEnemySpawn().y);
     _ui.SetSequence(new List <Runes>());
     _ui.SetClockValue(0);
     _mercenary.SetState(CMercenary.STATE_ATTACK);
 }
 private void Update()
 {
     if (GameData.IsPause)
     {
         return;
     }
     if (_currentEnemy == null && _currentHeart == null)
     {
         _elapsedTimeNoEnemy += Time.deltaTime;
         if (_elapsedTimeNoEnemy > _timeToWaitBetweenEnemies)
         {
             _elapsedTimeNoEnemy = 0;
             _ui.SetClockValue(0);
             _timeToWaitBetweenEnemies = CMath.RandomFloatBetween(CLevelManager.Inst.GetCurrentTimeEnemySpawn().x, CLevelManager.Inst.GetCurrentTimeEnemySpawn().y);
             SpawnEnemy();
             return;
         }
     }
     else
     {
         if (_currentEnemy != null && _currentEnemy.IsDead())
         {
             _currentEnemy       = null;
             _elapsedTimeNoEnemy = 0;
             _ui.SetClockValue(0);
             _timeToWaitBetweenEnemies = CMath.RandomFloatBetween(CLevelManager.Inst.GetCurrentTimeEnemySpawn().x, CLevelManager.Inst.GetCurrentTimeEnemySpawn().y);
         }
         if (_currentHeart != null && _currentHeart.IsDead())
         {
             _currentHeart       = null;
             _elapsedTimeNoEnemy = 0;
             _ui.SetClockValue(0);
             _timeToWaitBetweenEnemies = CMath.RandomFloatBetween(CLevelManager.Inst.GetCurrentTimeEnemySpawn().x, CLevelManager.Inst.GetCurrentTimeEnemySpawn().y);
         }
     }
 }
예제 #32
0
    void DoCreateEnemy()
    {
        int tSceneNum = CRyuGameDataMgr.GetInst().SceneLoadNum;

        mCount = mEnemyList.Count;

        if (mEnemyList.Count < CRyuGameDataMgr.GetInst().mStageInfoBundle.mStageInfoList[tSceneNum].mUnitInfoList.Count)
        {
            CEnemy tpSlime = null;
            tpSlime = Instantiate <CEnemy>(CRyuGameDataMgr.GetInst().PFSlime, Vector3.zero, Quaternion.identity);

            tpSlime.transform.position = new Vector3(CRyuGameDataMgr.GetInst().mStageInfoBundle.mStageInfoList[tSceneNum].mUnitInfoList[mCount].mX,
                                                     CRyuGameDataMgr.GetInst().mStageInfoBundle.mStageInfoList[tSceneNum].mUnitInfoList[mCount].mY,
                                                     CRyuGameDataMgr.GetInst().mStageInfoBundle.mStageInfoList[tSceneNum].mUnitInfoList[mCount].mZ);

            tpSlime.SetScene(this);

            mEnemyList.Add(tpSlime);
            mEnemyList[mCount].CreateAni();
            CRyuSoundMgr.GetInst().Play(2);
        }

        /*
         * int ti = 0;
         * if (mEnemyList.Count < 5)
         * {
         *  ti = mEnemyList.Count;
         *  CEnemy tpSlime = null;
         *
         *  tpSlime = null;
         *  tpSlime = Instantiate<CEnemy>(CRyuGameDataMgr.GetInst().PFSlime, Vector3.zero, Quaternion.identity);
         *  tpSlime.transform.position = new Vector3(-1.0f * Mathf.Pow(-1, ti) * ti, 0, -1.0f * Mathf.Pow(-1, ti - 1) * ti);
         *  tpSlime.SetScene(this);
         *
         *  mEnemyList.Add(tpSlime);
         *  CRyuSoundMgr.GetInst().Play(2);
         *
         *  mEnemyList[ti].CreateAni();
         * }
         * else if (5 == mEnemyList.Count)
         * {
         *  CEnemy tpBobby = null;
         *  tpBobby = null;
         *  tpBobby = Instantiate<CEnemy>(CRyuGameDataMgr.GetInst().PFBobby, Vector3.zero, Quaternion.identity);
         *  tpBobby.transform.position = new Vector3(-5, 0, 0);
         *  tpBobby.SetScene(this);
         *  tpBobby.SetAlberto(mpAlberto);
         *  mEnemyList.Add(tpBobby);
         *  CRyuSoundMgr.GetInst().Play(2);
         * }
         * else if(6==mEnemyList.Count)
         * {
         *  CEnemy_1 tpEnemy_1= null;
         *  tpEnemy_1 = null;
         *  tpEnemy_1 = Instantiate<CEnemy_1>(CRyuGameDataMgr.GetInst().PFEnemy_1, Vector3.zero, Quaternion.identity);
         *  tpEnemy_1.transform.position = new Vector3(-5, 0, 0);
         *  tpEnemy_1.SetScene(this);
         *  tpEnemy_1.SetAlberto(mpAlberto);
         *  mEnemyList.Add(tpEnemy_1);
         *  CRyuSoundMgr.GetInst().Play(2);
         *
         *
         *
         *
         * }
         */
    }
예제 #33
0
    void SetAI(CEnemy.AI ai_type_)
    {

        switch (ai_type_) {
		case AI.Test:
			my_AI = new EventHandler (Test);
			break;
		case AI.Test2:
			my_AI = new EventHandler (Test2);
			break;
		case AI.Eye_Cross_L350:
			my_AI = new EventHandler (Eye_Cross_L350);
			break;
		case AI.Eye_Cross_R350:
			my_AI = new EventHandler (Eye_Cross_R350);
			break;
		case AI.Eye_Cross_L0:
			my_AI = new EventHandler (Eye_Cross_L0);
			break;
		case AI.Eye_Cross_R0:
			my_AI = new EventHandler (Eye_Cross_R0);
			break;
		case AI.Eye_Cross_L_Shooter:
			my_AI = new EventHandler (Eye_Cross_L_Shooter);
			break;
		case AI.Eye_Cross_R_Shooter:
			my_AI = new EventHandler (Eye_Cross_R_Shooter);
			break;
		case AI.Eye_Turn_L0:
			my_AI = new EventHandler (Eye_Turn_L0);
			break;
		case AI.Eye_Turn_L350:
			my_AI = new EventHandler (Eye_Turn_L350);
			break;
		case AI.Eye_Turn_R0:
			my_AI = new EventHandler (Eye_Turn_R0);
			break;
		case AI.Eye_Turn_R350:
			my_AI = new EventHandler (Eye_Turn_R350);
			break;
		case AI.Eye_Zig_L0:
			my_AI = new EventHandler (Eye_Zig_L0);
			break;
		case AI.Eye_Zig_R0:
			my_AI = new EventHandler (Eye_Zig_R0);
			break;
		case AI.Eye_Down:
			my_AI = new EventHandler (Eye_Down);
			break;
		case AI.Eye_Back:
			my_AI = new EventHandler (Eye_Back);
			break;
		case AI.Eye_Turn_L_Back:
			my_AI = new EventHandler (Eye_Turn_L_Back);
			break;
		case AI.Eye_Turn_R_Back:
			my_AI = new EventHandler (Eye_Turn_R_Back);
			break;
		case AI.Cloud_Down:
			my_AI = new EventHandler (Cloud_Down);
			break;
		case AI.Bat_Rush:
			my_AI = new EventHandler (Bat_Rush);
			break;
		case AI.Bee_Cross_L:
			my_AI = new EventHandler (Bee_Cross_L);
			break;
		case AI.Bee_Cross_R:
			my_AI = new EventHandler (Bee_Cross_R);
			break;
		case AI.Bee_Slide_L:
			my_AI = new EventHandler (Bee_Slide_L);
			break;
		case AI.Bee_Slide_R:
			my_AI = new EventHandler (Bee_Slide_R);
			break;
		case AI.Bee_SlideUp_L:
			my_AI = new EventHandler (Bee_SlideUp_L);
			break;
		case AI.Bee_SlideUp_R:
			my_AI = new EventHandler (Bee_SlideUp_R);
			break;
		case AI.Bee_Tic_R:
			my_AI = new EventHandler (Bee_Tic_R);
			break;
		case AI.Bee_Tic_L:
			my_AI = new EventHandler (Bee_Tic_L);
			break;
		case AI.Bee_Tic_T:
			my_AI = new EventHandler (Bee_Tic_T);
			break;
		case AI.Bird_Down_L:
			my_AI = new EventHandler (Bird_Down_L);
			break;
		case AI.Bird_Down_R:
			my_AI = new EventHandler (Bird_Down_R);
			break;
		case AI.Shielder2_Wat_L:
			my_AI = new EventHandler (Shielder2_Wat_L);
			break;
		case AI.Shielder2_Wat_R:
			my_AI = new EventHandler (Shielder2_Wat_R);
			break;
		case AI.Shielder2_Wat_T:
			my_AI = new EventHandler (Shielder2_Wat_T);
			break;
		case AI.Shielder1_Cross_L:
			my_AI = new EventHandler (Shielder1_Cross_L);
			break;
		case AI.Shielder1_Cross_R:
			my_AI = new EventHandler (Shielder1_Cross_R);
			break;
		case AI.Shielder1_Zig_L:
			my_AI = new EventHandler (Shielder1_Zig_L);
			break;
		case AI.Shielder1_Zig_R:
			my_AI = new EventHandler (Shielder1_Zig_R);
			break;
		case AI.Shooter1_Cross_L_1:
			my_AI = new EventHandler (Shooter1_Cross_L_1);
			break;
		case AI.Shooter1_Wat_L_1:
			my_AI = new EventHandler (Shooter1_Wat_L_1);
			break;
		case AI.Shooter1_Wat_R_1:
			my_AI = new EventHandler (Shooter1_Wat_R_1);
			break;
		case AI.Shooter1_Wat_T_1:
			my_AI = new EventHandler (Shooter1_Wat_T_1);
			break;
		case AI.Shooter1_Cross_R_1:
			my_AI = new EventHandler (Shooter1_Cross_R_1);
			break;
		case AI.Shooter1_Slide_L_1:
			my_AI = new EventHandler (Shooter1_Slide_L_1);
			break;
		case AI.Shooter1_Slide_R_1:
			my_AI = new EventHandler (Shooter1_Slide_R_1);
			break;
		case AI.Shooter1_SlideUp_L_1:
			my_AI = new EventHandler (Shooter1_SlideUp_L_1);
			break;
		case AI.Shooter1_SlideUp_R_1:
			my_AI = new EventHandler (Shooter1_SlideUp_R_1);
			break;
		case AI.Shooter2_FollowX:
			my_AI = new EventHandler (Shooter2_FollowX);
			break;
		case AI.Shooter2_DWait_L:
			my_AI = new EventHandler (Shooter2_DWait_L);
			break;
		case AI.Shooter2_DWait_R:
			my_AI = new EventHandler (Shooter2_DWait_R);
			break;
		case AI.Shooter2_Wait_L:
			my_AI = new EventHandler (Shooter2_DWait_L);
			break;
		case AI.Shooter2_Wait_R:
			my_AI = new EventHandler (Shooter2_DWait_R);
			break;
		case AI.Shooter2_Down:
			my_AI = new EventHandler (Shooter2_Down);
			break;
		case AI.Shooter3_Tic_T_1:
			my_AI = new EventHandler (Shooter3_Tic_T_1);
			break;
		case AI.Shooter3_Tic_T_2:
			my_AI = new EventHandler (Shooter3_Tic_T_2);
			break;
		case AI.Shooter3_Wat_T_1:
			my_AI = new EventHandler (Shooter3_Wat_T_1);
			break;
		case AI.Shooter3_Wat_T_2:
			my_AI = new EventHandler (Shooter3_Wat_T_2);
			break;
		case AI.Shooter3_Wat_L_1:
			my_AI = new EventHandler (Shooter3_Wat_L_1);
			break;
		case AI.Shooter3_Wat_L_2:
			my_AI = new EventHandler (Shooter3_Wat_L_2);
			break;
		case AI.Shooter3_Wat_R_1:
			my_AI = new EventHandler (Shooter3_Wat_R_1);
			break;
		case AI.Shooter3_Wat_R_2:
			my_AI = new EventHandler (Shooter3_Wat_R_2);
			break;
		case AI.Squirrel1_Wait_L:
			my_AI = new EventHandler (Squirrel1_Wait_L);
			break;
		case AI.Squirrel1_Wait_R:
			my_AI = new EventHandler (Squirrel1_Wait_R);
			break;
		case AI.Squirrel1_DWait_L:
			my_AI = new EventHandler (Squirrel1_DWait_L);
			break;
		case AI.Squirrel1_DWait_R:
			my_AI = new EventHandler (Squirrel1_DWait_R);
			break;
		case AI.Squirrel2_Wait_L:
			my_AI = new EventHandler (Squirrel2_Wait_L);
			break;
		case AI.Squirrel2_Wait_R:
			my_AI = new EventHandler (Squirrel2_Wait_R);
			break;
		case AI.Squirrel2_DWait_L:
			my_AI = new EventHandler (Squirrel2_DWait_L);
			break;
		case AI.Squirrel2_DWait_R:
			my_AI = new EventHandler (Squirrel2_DWait_R);
			break;
		case AI.Squirrel2_Wat_R:
			my_AI = new EventHandler (Squirrel2_Wat_R);
			break;
		case AI.Squirrel2_Wat_T:
			my_AI = new EventHandler (Squirrel2_Wat_T);
			break;
		case AI.Squirrel2_Wat_L:
			my_AI = new EventHandler (Squirrel2_Wat_L);
			break;
		case AI.Roselia_1:
			my_AI = new EventHandler (Roselia_1);
			break;
		case AI.Firebird_C:
			my_AI = new EventHandler (Firebird_C);
			break;
		case AI.Firebird_R:
			my_AI = new EventHandler (Firebird_R);
			break;
		case AI.Icebird_1:
			my_AI = new EventHandler (Icebird_1);
			break;
		case AI.Icebird_Long:
			my_AI = new EventHandler (Icebird_Long);
			break;
		case AI.Honglin_1:
			my_AI = new EventHandler (Honglin_1);
			break;
		case AI.Sullin_1:
			my_AI = new EventHandler (Sullin_1);
			break;
		case AI.Hedgehog_1:
			my_AI = new EventHandler (Hedgehog_1);
			break;
		case AI.IceTurtle_1:
			my_AI = new EventHandler (IceTurtle_1);
			break;
		case AI.Hedgehog_L:
			my_AI = new EventHandler (Hedgehog_L);
			break;
		case AI.IceTurtle_R:
			my_AI = new EventHandler (IceTurtle_R);
			break;
		case AI.ChampBat_F:
			my_AI = new EventHandler (ChampBat_F);
			break;
		case AI.QueenBee_1:
			my_AI = new EventHandler (QueenBee_1);
			break;
		case AI.BoyBee_1:
			my_AI = new EventHandler (BoyBee_1);
			break;
		case AI.GirlBee_1:
			my_AI = new EventHandler (GirlBee_1);
			break;
		case AI.Down:
			my_AI = new EventHandler (Down);
			break;
		case AI.Wat_T:
			my_AI = new EventHandler (Wat_T);
			break;
		case AI.Wat_R:
			my_AI = new EventHandler (Wat_R);
			break;
		case AI.Wat_L:
			my_AI = new EventHandler (Wat_L);
			break;
		case AI.Cross_L:
			my_AI = new EventHandler (Cross_L);
			break;
		case AI.Cross_R:
			my_AI = new EventHandler (Cross_R);
			break;
		case AI.Zig_L:
			my_AI = new EventHandler (Zig_L);
			break;
		case AI.Zig_R:
			my_AI = new EventHandler (Zig_R);
			break;
		case AI.Turn_L:
			my_AI = new EventHandler (Turn_L);
			break;
		case AI.Turn_R:
			my_AI = new EventHandler (Turn_R);
			break;
		case AI.Wait_L:
			my_AI = new EventHandler (Wait_L);
			break;
		case AI.Wait_R:
			my_AI = new EventHandler (Wait_R);
			break;
		case AI.DWait_L:
			my_AI = new EventHandler (DWait_L);
			break;
		case AI.DWait_R:
			my_AI = new EventHandler (DWait_R);
			break;
		case AI.Tic_L:
			my_AI = new EventHandler (Tic_L);
			break;
		case AI.Tic_R:
			my_AI = new EventHandler (Tic_R);
			break;
		case AI.Tic_T:
			my_AI = new EventHandler (Tic_T);
			break;
		case AI.Slide_L:
			my_AI = new EventHandler (Slide_L);
			break;
		case AI.Slide_R:
			my_AI = new EventHandler (Slide_R);
			break;
		case AI.Re_T:
			my_AI = new EventHandler (Re_T);
			break;
		default : 
			break;
		}
    }
예제 #34
0
 void DoAction(CEnemy.Action act_, Vector3 vector_)
 {
     switch (act_)
     {
         case Action.NULL:
             break;
         case Action.MoveDirction:
             if (MoveDirection(vector_))
             {
                 gameObject.transform.Translate(moved_pos,Space.World);
             }
             break;
         case Action.MovePosition:
             if (MovePosition(vector_))
             {
                 gameObject.transform.Translate(moved_pos,Space.World);
             }
             break;
         case Action.MoveKeepGoing:
             if (MoveKeepGoing(vector_))
             {
                 gameObject.transform.Translate(moved_pos, Space.World);
             }
             break;
         case Action.MoveAxisTrace:
             if (MoveAxisTrace(vector_))
             {
                 gameObject.transform.Translate(moved_pos, Space.World);
             }
             break;
          case Action.MoveTrace:
             if (MoveTrace(vector_))
             {
                 gameObject.transform.Translate(moved_pos, Space.World);
             }
             break;
         case Action.TurnShooter:
             if (ShootingAngle(false, vector_))
             {
                 TurnShooter(shooting_angle[(int)vector_.z], (int)vector_.z);
             }
             break;
         case Action.RotateShooter:
             if (ShootingAngle(true, vector_))
             {
                 RotateShooter(shooting_angle[(int)vector_.z], (int)vector_.z);
             }
             break;
         case Action.ShootOnce:
             if (!shoot_once[(int)vector_.z])
             {
                 if (SelectShooter((int)vector_.x, (int)vector_.y, (int)vector_.z))
                 {
                     ShootOnce((int)vector_.z);
                     shoot_once[(int)vector_.z] = true;
                 }
             }
             break;
         case Action.StartShooting:
             if (!shooting[(int)vector_.z])
             {
                 if (SelectShooter((int)vector_.x, (int)vector_.y, (int)vector_.z))
                 {
                     shooting[(int)vector_.z] = true;
                     StartShooting((int)vector_.z);
                 }
             }
             break;
         case Action.StopShooting:
             if (shooting[(int)vector_.z])
             {
                 shooting[(int)vector_.z] = false;
                 StopShooting((int)vector_.z);
             }
             break;
         case Action.PlayAnimation:
             if(CheckAnimation((int)vector_.z))
             {
                 PlayAnimation((AnimationName)(int)vector_.z);
             }
             break;
         default:
             break;
     }
 }
예제 #35
0
 // Use this for initialization
 void Awake()
 {
     enemy = transform.parent.GetComponent <CEnemy>();
 }
예제 #36
0
 bool StateAction(CEnemy.Condition cond_, float cond_param_, CEnemy.Action act_, Vector3 act_param_, int next_phase_, int cond_num_ = 0)
 {
     SetCondition(cond_,cond_num_);
     if (state_cond[cond_num_](cond_param_))
     {
         ai_phase = next_phase_;
         for (int i = 0; i < 5; i++)
         {
             state_cond[i] = null;
         }
         for (int i = 0; i < shooter_amount; i++)
         {
             shoot_once[i] = false;
         }
         return false;
     }
     else
     {
         DoAction(act_, act_param_);
         return true;
     }
 }
예제 #37
0
	IEnumerator SummonEnemy(int number_of_summon,
	                        EnemyStatus enemy_,
	                        CEnemy.AI AI_type,
	                        CEnemy.StartPosition start_position,
	                        float delay = 0.5f)
	{
		GameObject enemy;
		
		enemy = ResourceLoad.PickGameObject(enemy_.name.ToString());
		
		for (int formation = 0; formation < number_of_summon; formation++)
		{
			GameObject temp = (GameObject)Instantiate(enemy, CEnemy.GetStartPosition(start_position), Quaternion.identity);
			CEnemy temp_enemy = temp.GetComponent<CEnemy>();
            temp_enemy.Initialize(enemy_, AI_type);
			
			yield return new WaitForSeconds(delay);
		}
	}
예제 #38
0
    public IEnumerator SummonEnemy(float summon_time,
                                   int number_of_summon,
                                   EnemyStatus enemy_,
                                   CEnemy.AI AI_type_,
                                   CEnemy.StartPosition start_position,
                                   float delay = 0.5f)
    {
        GameObject enemy;

        enemy = ResourceLoad.PickGameObject(enemy_.name.ToString());

        yield return new WaitForSeconds(summon_time);

        level_difficulty = StageManager.LevelDifficulty;
        if (0 < level_difficulty)
        {
            enemy_.ATK *= (1 + (level_difficulty - 1) * 1.8f);
            enemy_.HP *= (1 + (level_difficulty - 1) * 1.1f);
            enemy_.score += (level_difficulty - 1) * 100;
        }

        for (int formation = 0; formation < number_of_summon; formation++)
        {
            GameObject temp = (GameObject)Instantiate(enemy, CEnemy.GetStartPosition(start_position), Quaternion.identity);
            CEnemy temp_enemy = temp.GetComponent<CEnemy>();
            temp_enemy.Initialize(enemy_, AI_type_);

            yield return new WaitForSeconds(delay);
        }
    }