Пример #1
0
    private void SetShootPatternByPhase(float[] percentage)
    {
        float Rand = UnityEngine.Random.Range(0, 100.0f);

        if (Rand < percentage[0])
        {
            if (eShootPattern != BossShoot.BOSS_SHOOT1)
            {
                eShootPattern = BossShoot.BOSS_SHOOT1;
            }
        }
        else if (Rand < percentage[1])
        {
            eShootPattern = BossShoot.BOSS_SHOOT2;
            bShoot        = true;
        }
        else if (Rand < percentage[2])
        {
            eShootPattern = BossShoot.BOSS_SHOOT4;
            bShoot        = false;
        }
        else if (Rand < percentage[3])
        {
            eShootPattern = BossShoot.BOSS_SHOOT5;
            bShoot        = true;
        }
        else
        {
            eShootPattern = BossShoot.BOSS_SHOOT6;
            animator.SetTrigger("Rush");
            //bShoot = true;
        }
    }
Пример #2
0
    protected void SetShootPattern()
    {
        fPatternTick = 0;
        float   DistanceToPlayer;
        Vector3 pos       = transform.position;
        Vector3 playerPos = Player.GetComponent <Transform>().position;

        DistanceToPlayer = Vector3.Distance(pos, playerPos);

        if (DistanceToPlayer < 4.0f)
        {
            eShootPattern = BossShoot.BOSS_SHOOT3;
            return;
        }

        float[] percentage = new float[5];
        // {테트리스, 표창, 광선, 몹 소환, 돌진}
        switch (iPhase)
        {
        case 1:
            percentage = new float[5] {
                70.0f, 100.0f, 0.0f, 0.0f, 0.0f
            };
            break;

        case 2:
            percentage = new float[5] {
                50.0f, 70.0f, 90.0f, 100.0f, 0.0f
            };
            break;

        case 3:
            percentage = new float[5] {
                40.0f, 60.0f, 80.0f, 90.0f, 100.0f
            };
            break;
        }
        SetShootPatternByPhase(percentage);
        if (CurrentBullet && eShootPattern != BossShoot.BOSS_SHOOT1)
        {
            GameObject.Destroy(CurrentBullet);
        }
    }
Пример #3
0
    // Start is called before the first frame update
    void Start()
    {
        GameObject userInfo = GameObject.Find("UserData");

        if (userInfo)
        {
            userInfo.GetComponent <UserInfo>().SetStage(2);
        }
        sound      = gameObject.GetComponent <BossSound>();
        animator   = GetComponent <Animator>();
        vMovingPos = new Vector3[26];
        for (int i = 0; i < 26; i++)
        {
            vMovingPos[i] = new Vector3(5.5f, -4.6f + 0.35f * i, 0);
        }
        Player        = GameObject.Find("Player");
        iCurrentHP    = iMaxHP;
        eMoveState    = BossMoveState.BOSS_MOVE_APPEAR;
        eShootPattern = BossShoot.BOSS_SHOOT_NONE;
    }