Exemplo n.º 1
0
    private void OnTriggerStay(Collider col)
    {
        switch (col.tag)
        {
        //case "":
        case "Player":
            if (flight && flight.activeSelf == true)
            {
                GameObject.Find("GameManager").GetComponent <RedAlert>().StateChage(RedAlert.AlertState.attacked);

                Debug.Log("::: 레이저랑 비행기 충돌 :::");
                //보호막이 있을때와 수리기능 있을때와 아무보호기능이 없을때를 순서대로 검사해서 그에 맞게 처리해줌//
                if (ValueDeliverScript.shieldEquip == true)     //보호막 있을때 처리//
                {
                    ValueDeliverScript.shieldEquip = false;
                    //상단 어시스트에 실드 아이콘이 보이는것 안보이게 처리//
                    GameObject.Find("AssistIcon").SetActive(false);
                    GameObject.Find("PC").GetComponent <PlayerMoveScript>().ShieldEquipStart();
                }
                //에너지가 얼마나 남았는지 검사하여 거기에 맞게 처리//
                else if (ValueDeliverScript.fuelSize > 0)
                {
                    Debug.Log("::: 비행기 폭파 :::");
                    fuelSlider.GetComponent <FuelSliderScript>().GageReduceVoid(crashDamage[ValueDeliverScript.portalUpLevel] * Time.deltaTime, true);
                    soundUiControlScript.PcExplo();                                                                     //폭발사운드. 적용.
                }
            }
            break;
        }

        if (isExplo == true)
        {
            switch (col.tag)
            {
            case "Bullet":
            case "Missile":
                GetComponent <AttackWhilteScript>().AttackWhilte();
                col.gameObject.SetActive(false);
                break;

            case "SuperPower":
            case "Bomb01":
            //case "Bomb":
            case "Bomb03":
            case "PcLaser":
                ExploEnd();
                break;
            }
        }
    }
Exemplo n.º 2
0
    void OnTriggerEnter(Collider col)
    {
        switch (col.tag)
        {
        case "Bullet":
        case "Missile":
            if (gameObject.activeSelf == true)
            {
                GetComponent <AttackWhilteScript>().AttackWhilte();
                col.gameObject.SetActive(false);
            }
            break;

        case "Player":
            if (flight && flight.activeSelf == true)
            {
                //보호막이 있을때와 수리기능 있을때와 아무보호기능이 없을때를 순서대로 검사해서 그에 맞게 처리해줌//
                if (ValueDeliverScript.shieldEquip) //보호막 있을때 처리//
                {
                    ValueDeliverScript.shieldEquip = false;
                    //상단 어시스트에 실드 아이콘이 보이는것 안보이게 처리//
                    GameObject.Find("AssistIcon").SetActive(false);
                    GameObject.Find("PC").GetComponent <PlayerMoveScript>().ShieldEquipStart();
                }
                //에너지가 얼마나 남았는지 검사하여 거기에 맞게 처리//
                else if (ValueDeliverScript.fuelSize > 0)
                {
                    fuelSlider.GetComponent <FuelSliderScript>().GageReduceVoid(crashDamage[ValueDeliverScript.portalUpLevel]);
                    soundUiControlScript.PcExplo();                                                                     //폭발사운드. 적용.
                }
            }
            break;

        case "SuperPower":
        case "Bomb01":
        //case "Bomb":
        case "Bomb03":
        case "PcLaser":
            ExploEnd();
            break;
        }
    }
Exemplo n.º 3
0
    void Update()
    {
        //아직 이펙트가 시작하지 않았으면 아래 내용을 실행하지 않는다.
        if (isFinishFx == false)
        {
            return;
        }
        //블랙홀이 작동을 시작하고 BalckHallActive() 메소드가 시작하지 않으면 이 아래 부분을 실행한다//
        if (BlackHoleBombScript.blackHallOn == true)
        {
            if (isBalckHallActive == false)
            {
                //한번 들어왔은 다시는 이 조건문 안으로 못들어오게 막아준다//
                isBalckHallActive = true;
                //골든웜홀 파괴모드로 들어간다//
                DestroyUfo();
            }
        }
        else if (isAttacked == true && megaCoin == false)
        {
            if (lerpTime < 1f)
            {
                lerpTime += Time.deltaTime * lrMoveSpeed;
                bPos      = Vector3.Slerp(nowPosition, nextPosition, lerpTime);
                //Debug.Log("움직인다!!! ::: 첫 위치 ::: " + nowPosition + " ::: 나중위치 ::: " + nextPosition + " ::: 러프 ::: " + lerpTime);
            }
            else
            {
                bPos = nowPosition = nextPosition;

                NextPosition();
                isAttacked = false;
                lerpTime   = 0;
            }
        }

        if (Mathf.Abs(transform.position.x) > 35)
        { // 지정된 좌우 범위를 넘어서면 사라지게 함.
            instanceMissionScript.NewMission();
            instanceMission.animation.Play("InstanceMissionApearAnim01");
            ValueDeliverScript.enemyInGame.Remove(this.gameObject);
            gameObject.SetActive(false);
        }

        if (megaCoin)
        { //처치시 동전 드랍. 폭발.시작.
            animation.Stop("GoldenWhole01");
            if (coinTime + 0.05f <= Time.timeSinceLevelLoad)
            {
                activate.CoinActivation(transform.position, coinLevel); //3은 코인레벨. 격추시 3개짜리 동전만 출현해줌.
                coinCount++;
                coinTime = Time.timeSinceLevelLoad;
            }

            if (coinCount >= megaCoinCount)
            {
                soundUiControlScript.PcExplo();                              //폭발사운드. 적용.
                activate.ExploActivation(transform.position, 01, "WingBox"); //폭발이펙트 켜짐.
                isFirst = false;

                ValueDeliverScript.enemyInGame.Remove(this.gameObject);
                gameObject.SetActive(false);
            }

            transform.position += new Vector3(Random.Range(-0.3f, 0.3f), Random.Range(-0.3f, 0.3f), Random.Range(-0.3f, 0.3f));
        }

        spendTime += Time.deltaTime;

        //10초가 지나면 골든웜홀을 화면 밖으로 사라지게 해준다.
        if (spendTime > 10f && isOutPosition == false)
        {
            isOutPosition = true;
            OutPosition();
        }
    }
Exemplo n.º 4
0
    void OnTriggerEnter(Collider col)
    {
        if (isUfoLife == false)
        {
            return;                     //초기화가 되지 않으면 피탄 계산 자체를 하지 않는다.
        }
        float spinballDamPercent = 0;

        if (ufoName == "UfoSpinball")
        {
            spinballDamPercent = ValueDeliverScript.spinballDamagePercent;
        }


        if (ValueDeliverScript.isdamageAddChance)
        {
            int chance = Random.Range(0, 10000);
            if (chance < ValueDeliverScript.damageAddChance)
            {
                damageAddPercent = ValueDeliverScript.damageAddPercent;
            }
        }


        switch (col.tag)
        {
            #region SuperPower PcLaser Bomb01
        case "SuperPower":
        case "PcLaser":
        case "Bomb01":
            soundUiControlScript.UfoAttacked();
            ufoLife = 0;
            if (ufoType != 3)
            {
                activate.ExploActivation(transform.position + addPosition, 02, gameObject.name);     //피탄 이펙트 켜짐.
            }
            else
            {
                activate.ExploActivation(transform.GetChild(0).position + addPosition, 02, gameObject.name);     //피탄 이펙트 켜짐.
            }
            break;
            #endregion

            #region LevelChangeBomb
        case "LevelChangeBomb":
            soundUiControlScript.UfoAttacked();
            ufoLife = 0;
            if (ufoType != 3)
            {
                activate.ExploActivation(transform.position + addPosition, 02, gameObject.name);     //피탄 이펙트 켜짐.
            }
            else
            {
                activate.ExploActivation(transform.GetChild(0).position + addPosition, 02, gameObject.name);     //피탄 이펙트 켜짐.
            }
            isLevelChangeBomb01 = true;
            ExploEnd();
            break;
            #endregion

            #region Bullet Missile
        case "Bullet":
        case "Missile":
            bulletDamage     = col.gameObject.GetComponent <BulletInfoScript>().bulletDamageF;
            skin02_05Effect1 = 0f;

            if (ValueDeliverScript.nowPortalLevel >= ValueDeliverScript.applyPortalLevel)
            {
                skin02_05Effect1 = ValueDeliverScript.skin02_05Effect1;
            }

            ExeDemage();
            attackDamage = (int)(bulletDamage * exelDamage * ufoTypeDamage * (1 + fAttackPo + incrBoAttackPer + AttackPoPer + damageAddPercent + spinballDamPercent + itemMagEf + skin02_04Effect + skin02_05Effect1) + addAttackAbil * 5);

            switch (col.tag)
            {
            case "Bullet":
                if (gameObject.activeSelf)
                {
                    ufoObj.GetComponent <AttackWhilteScript>().AttackWhilte();
                }
                soundUiControlScript.UfoAttacked();
                ufoLife -= attackDamage;
                if (ValueDeliverScript.flightNumber == 1 && gameObject.name.ToString().Contains("Seed"))
                {
                    ufoLife -= (int)(bulletDamage * 0.2f);
                }

                if (ufoType != 3)
                {
                    activate.ExploActivation(transform.position + addPosition, 02, gameObject.name);         //피탄 이펙트 켜짐.
                }
                else
                {
                    activate.ExploActivation(transform.GetChild(0).position + addPosition, 02, gameObject.name);         //피탄 이펙트 켜짐.
                }
                col.gameObject.SetActive(false);
                break;

            case "Missile":
                if (gameObject.activeSelf)
                {
                    ufoObj.GetComponent <AttackWhilteScript>().AttackWhilte();
                }
                soundUiControlScript.UfoAttacked();
                ufoLife -= attackDamage;

                if (ufoType != 3)
                {
                    activate.ExploActivation(transform.position + addPosition, 02, gameObject.name);         //피탄 이펙트 켜짐.
                }
                else
                {
                    activate.ExploActivation(transform.GetChild(0).position + addPosition, 02, gameObject.name);         //피탄 이펙트 켜짐.
                }
                col.gameObject.SetActive(false);
                break;
            }
            break;
            #endregion

            #region SkillBullet Player
        case "SkillBullet":
            soundUiControlScript.UfoAttacked();
            int skillDamage = col.gameObject.GetComponent <BulletInfoScript>().bulletDamageF;
            ufoLife -= (int)(skillDamage * exelDamage * ufoTypeDamage * (1 + ValueDeliverScript.flightAttackPower));
            soundUiControlScript.UfoAttacked();
            //Debug.Log("Skill Shot !   :::::::::::" + col.name);
            if (ufoType != 3)
            {
                activate.ExploActivation(transform.position + addPosition, 02, gameObject.name);                   //피탄 이펙트 켜짐.
            }
            else
            {
                activate.ExploActivation(transform.GetChild(0).position + addPosition, 02, gameObject.name);      //피탄 이펙트 켜짐.
            }
            break;

        case "Player":
            if (flight == null && flight.activeSelf == false)
            {
                break;
            }


            //ufo 폭발이펙트 형태를 정해줌//
            if (ufoType != 3)
            {
                activate.ExploActivation(transform.position, 01, gameObject.name);                   //폭발이펙트 켜짐.
            }
            else
            {
                activate.ExploActivation(transform.GetChild(0).position, 01, gameObject.name);      //피탄 이펙트 켜짐.
            }
            //ufo 폭발이펙트 형태를 정해줌//

            //보호막이 있을때와 수리기능 있을때와 아무보호기능이 없을때를 순서대로 검사해서 그에 맞게 처리해줌//
            if (ValueDeliverScript.shieldEquip)     //보호막 있을때 처리//
            {
                ValueDeliverScript.shieldEquip = false;
                GameObject.Find("AssistIcon").SetActive(false);    //자석 아이템 안보이게 끔.
                GameObject.Find("PC").GetComponent <PlayerMoveScript>().ShieldEquipStart();
            }

            //수리기능이 있는지 여부를 검사//
            else if (ValueDeliverScript.fuelSize > 0)
            {
                fuelSlider.GetComponent <FuelSliderScript>().GageReduceVoid(crashDamage);
                soundUiControlScript.PcExplo();                                                                         //폭발사운드. 적용.
                ufoLife = 0;
            }

            //화면에 유리깨짐 효과를 만듬//

            gameManager.GetComponent <RedAlert>().StateChage(RedAlert.AlertState.attacked);
            break;
            #endregion
        }

        if (ufoLife <= 0 && gameObject.activeSelf == true)
        {
            StartCoroutine(DestroyUfoIE(col.tag));
        }
    }