예제 #1
0
 public void Resume()
 {
     TWAudioController.PlaySFX("UI", "click");
     pauseMenuUI.SetActive(false);
     GameTime.GlobalTimeScale = 1f;
     isPaused = false;
 }
    public void TakeDamage()
    {
        if (!(GameVariables.PLAYER_IMMUNE || GameVariables.EFFECT_IMMUNE))
        {
            TWAudioController.PlaySFX("SFX_PLAYER", "player_damaged");
            sprite.material = whiteflash;
            DOVirtual.DelayedCall(flashDelay, () => { sprite.material = defaultMaterial; }).timeScale = GameTime.PlayerTimeScale;

            if (data.Hp >= 1)
            {
                GameVariables.PLAYER_IMMUNE = true;
                DOTween.Kill("ImmuneDamage");
                DOVirtual.DelayedCall(2f, () => { GameVariables.PLAYER_IMMUNE = false; }).SetId("ImmuneDamage").timeScale = GameTime.PlayerTimeScale;

                if (data.Shield > 0)
                {
                    data.Shield -= 1;
                    TrainingUI.instance.UpdateShield();
                }
                else
                {
                    data.Hp -= 1;
                }

                TrainingUI.instance.UpdateLive();

                if (data.Hp < 1)
                {
                    trainingManager.RestartActiveTrainingSection();
                }
            }
        }
    }
예제 #3
0
 public void Restart(string name)
 {
     GameTime.GlobalTimeScale = 1f;
     TWAudioController.PlaySFX("UI", "click");
     TWTransition.ScreenTransition(TWTransition.TransitionType.DEFAULT_IN, .5f, () => TWLoading.LoadScene(name));
     TWAudioController.PlaySFX("UI", "transition");
 }
 /*private int i;*/
 private void Start()
 {
     joystick = FindObjectOfType <Joystick>();
     TWAudioController.PlayBGM("InGame");
     Init();
     move = true;
 }
예제 #5
0
 public override void TakeDamage()
 {
     activeGerbong.dead = true;
     TWAudioController.PlaySFX("SFX_BOSS", "helicopter_damage");
     if (health > 1)
     {
         explosions.transform.position = activeGerbong.gerbong.transform.position;
         explosions.Play();
         CameraShake.instance.Shake(explosion.main.duration, 3, 10);
         DOTween.Sequence()
         .AppendCallback(() => { TWTransition.ScreenFlash(1, 0.2f); })
         .AppendInterval(0.1f)
         .AppendCallback(() => {
             DestroyGerbong();
         });
         health -= 1;
         InGameUI.instance.UpdateHpBos(health);
     }
     else
     {
         TWTransition.ScreenFlash(1, .2f);
         health -= 1;
         if (health < 1)
         {
             InGameUI.instance.UpdateHpBos(health);
             DOTween.Kill("BM_Missile");
             Die();
         }
     }
 }
예제 #6
0
    public void Launch(GameObject projectile, float timeToLaunch, bool activeMissile = true)
    {
        ParticleSystem smoke = projectile.transform.GetChild(2).GetComponent <ParticleSystem>();

        smoke.Play();
        deactiveMissileDashed = false;
        collider = GetComponent <Collider2D>();
        alertProjectileSprite = GetComponent <SpriteRenderer>();

        collider.enabled = false;
        alertProjectileSprite.enabled = true;

        this.projectile    = projectile;
        this.activeMissile = activeMissile;
        if (activeMissile)
        {
            projectile.GetComponent <Collider2D>().enabled = false;
        }
        else
        {
            projectile.GetComponent <Collider2D>().enabled = true;
        }

        alertProjectileSprite.DOFade(0.2f, 0.5f).SetLoops(-1, LoopType.Yoyo).SetId("Alert" + transform.GetInstanceID());
        TWAudioController.PlaySFX("SFX_BOSS", "rocket_launch");
        DOVirtual.DelayedCall(timeToLaunch, OnEnter_State);
    }
예제 #7
0
    protected override void OnExit_State()
    {
        base.OnExit_State();
        isBusyDash   = true;
        sign.enabled = false;

        DOVirtual.DelayedCall(0.2f, () =>
        {
            alertProjectileSprite.enabled = false;
        });
        projectile.GetComponent <SpriteRenderer>().enabled = false;
        ParticleSystem particle = projectile.transform.GetChild(0).GetComponent <ParticleSystem>();

        particle.Play();

        TWAudioController.PlaySFX("SFX_BOSS", "bigrocket_explosion");
        CameraShake.instance.Shake(duration, strength, vibrato);
        //exploded = true;
        spawnAreaData.platform.SetActive(true);
        spawnAreaData.cannon.TakeDamage();

        if (CheckIsCloseDistance())
        {
            CharaController.instance.TakeDamage();
        }

        onExplodeCallback.Invoke();

        DOVirtual.DelayedCall(particle.main.startLifetimeMultiplier, () =>
        {
            Destroy(projectile);
        });
    }
예제 #8
0
    public void BGMStop()
    {
        switch (GameData.ActiveBoss)
        {
        case GameData.BossType.GATEKEEPER:
            TWAudioController.StopBGMPlayed("BGM_BOSS", true);

            break;

        case GameData.BossType.TERRORCOPTER:
            TWAudioController.StopBGMPlayed("ENGINE_COPTER", true);
            TWAudioController.StopBGMPlayed("BGM_BOSS", true);
            break;

        case GameData.BossType.UNHOLYCHARIOT:
            TWAudioController.StopBGMPlayed("ENGINE_BIKE", true);
            TWAudioController.StopBGMPlayed("ENGINE_TRAIN", true);
            TWAudioController.StopBGMPlayed("BGM_ADVANCED", true);
            break;

        case GameData.BossType.TIDEMASTER:
            TWAudioController.StopBGMPlayed("BGM_BOSS", true);
            TWAudioController.StopBGMPlayed("ENGINE_SHIP", true);
            break;
        }
    }
    protected override void Attack()
    {
        attack.SetBool("attack", true);
        int     indexToMove = moveToRight ? 1 : 0;
        Vector2 helicopterOffset;

        if (moveToRight)
        {
            TWAudioController.PlaySFX("BOSS_SFX", "helicopter_strafing");
            helicopterOffset = new Vector2(swipeAreaPosition[1].x, birdMask.transform.position.y);
            birdMask.transform.DORotate(Vector3.forward * -25, 0.5f);
        }
        else
        {
            TWAudioController.PlaySFX("BOSS_SFX", "helicopter_strafing");
            helicopterOffset = new Vector2(swipeAreaPosition[0].x, birdMask.transform.position.y);
            birdMask.transform.DORotate(Vector3.forward * 25, 0.5f);
        }

        Sound("machine_gun");
        birdMask.transform.DOMove(helicopterOffset, timeToMove).SetEase(Ease.Linear);
        swipeObject.DOLocalMove(swipeAreaPosition[indexToMove], timeToMove).SetEase(Ease.Linear).OnComplete(() =>
        {
            DOTween.Kill("MachineGun_Sound");
            base.Attack();
        });
    }
예제 #10
0
 public void Pause()
 {
     TWAudioController.PlaySFX("click");
     pause.SetActive(true);
     Time.timeScale = 0f;
     isPause        = true;
 }
예제 #11
0
    public void OnPointerEnter(PointerEventData eventData)
    {
        transform.DOScale(Vector3.one * scaleValue, 0.1f).SetEase(Ease.InBounce);
        TWAudioController.PlaySFX("UI", "hover");

        onEnterEvent?.Invoke();
    }
예제 #12
0
 public void Resume()
 {
     TWAudioController.PlaySFX("click");
     pause.SetActive(false);
     Time.timeScale = 1f;
     isPause        = false;
 }
 public void startLevel(string level)
 {
     //AudioController.PlaySFX("Button_Click");
     //AudioController.PlaySFX("Scene_Transition");
     TWAudioController.StopBGMPlayed();
     TWTransition.FadeIn(() => TWLoading.LoadScene(level));
 }
예제 #14
0
    protected override void OnEnter_State()
    {
        base.OnEnter_State();
        projectile.transform.DOMove(transform.position, projectileTimeToMove).SetEase(Ease.InSine).OnComplete(() =>
        {
            DOTween.Kill("Alert" + transform.GetInstanceID());
            alertProjectileSprite.DOFade(1f, 0f);
            ParticleSystem smoke = projectile.transform.GetChild(2).GetComponent <ParticleSystem>();
            smoke.Stop();
            projectile.GetComponent <Animator>().SetTrigger("Jammed");
            TWAudioController.PlaySFX("SFX_BOSS", "bigrocket_impact");
            sign.enabled = true;
            projectile.GetComponent <SpriteRenderer>().sortingOrder = 13;

            CameraShake.instance.Shake(duration, strength, vibrato);

            DOVirtual.DelayedCall(timer, () =>
            {
                if (!deactiveMissileDashed)
                {
                    OnExit_State();
                }
            }).SetId("MissileTM");
        });
    }
예제 #15
0
 public void BackToPanelBoss()
 {
     GameVariables.DIALOG_START_MESSAGE = "BOSS_PANEL";
     TWAudioController.PlaySFX("UI", "click");
     TWTransition.ScreenTransition(TWTransition.TransitionType.DOWN_IN, .5f, () => TWLoading.LoadScene("dialogFungus"));
     TWAudioController.PlaySFX("UI", "transition");
 }
    protected override void Attack()
    {
        TWAudioController.PlaySFX("SFX_BOSS", "clockwise_flamethrower_firing");

        DOTween.Sequence()
        .AppendCallback(() =>
        {
            if (clockwise)
            {
                flameThowerParent.transform.DORotate(new Vector3(0, 0, -360), timeToRotate, RotateMode.FastBeyond360)
                .SetRelative().SetEase(Ease.Linear)
                .OnUpdate(() => bossBehaviour.RotateTank(flameThowerParent.transform.localEulerAngles.z));
            }
        })
        .AppendCallback(() =>
        {
            if (!clockwise)
            {
                flameThowerParent.transform.DORotate(new Vector3(0, 0, 360), timeToRotate, RotateMode.FastBeyond360)
                .SetRelative().SetEase(Ease.Linear)
                .OnUpdate(() => bossBehaviour.RotateTank(flameThowerParent.transform.localEulerAngles.z));
            }
        })
        .AppendCallback(() => { CameraShake.instance.Shake(1, 1, 2); }).SetLoops(-1).SetId("ShakeLaser")
        .AppendInterval(attackTime)
        .AppendCallback(() =>
        {
            DOTween.Kill("ShakeLaser", true);
            DOTween.Kill("tank_move", true);
            ActivateDamageAreaEffect(false);
            base.Attack();
        });
    }
예제 #17
0
 public void SelectItem()
 {
     TWAudioController.PlaySFX("UI", "click");
     index++;
     selectItem.SetActive(false);
     dialogUI.SetActive(true);
 }
    private void RenderDeathInfo()
    {
        deathInfoPanel.SetActive(true);
        TWAudioController.PlaySFX("SFX", "rating_appear");

        int targetCount  = GameTrackRate.DeathCount;
        int currentCount = -1;

        activeTween = DOVirtual.Float(0, targetCount, targetCount * timeCountPercentage, (time) =>
        {
            if ((int)time != currentCount)
            {
                currentCount = (int)time;

                deathCount.text = ": " + currentCount;
                TWAudioController.PlaySFX("SFX", "rating_count_step");
            }
        }).OnComplete(() =>
        {
            activeTween  = null;
            currentCount = targetCount;

            deathCount.text = ": " + currentCount;

            DOVirtual.DelayedCall(timePerStep, RenderItemScroll);
        })
                      .SetEase(Ease.Linear);
    }
    private void RenderRatingStamp()
    {
        ratingImagePanel.SetActive(true);

        int indexStamp = GetStampIndex();

        switch (indexStamp)
        {
        case 0:
            rateType = "rating_stamp_s";
            break;

        case 1:
            rateType = "rating_stamp_a";
            break;

        case 2:
            rateType = "rating_stamp_b";
            break;

        default:
            rateType = "rating_stamp_c";
            break;
        }

        ratingImage.sprite = rateStamps[indexStamp];
        CameraShake.instance.Shake(1, 3, 5);
        TWAudioController.PlaySFX("SFX", rateType);

        ratingPanel.DOShakeAnchorPos(1, 7, 9);

        nextButton.SetActive(true);
    }
예제 #20
0
    protected virtual void OnPrepare_Attack()
    {
        //anim.gameObject.SetActive(true);
        if (anim != null)
        {
            DOTween.Sequence()
            .AppendCallback(() => { anim.gameObject.SetActive(true); })
            .AppendCallback(() => { TWAudioController.PlaySFX("BOSS_SFX", "boss_attack_telegraph"); })
            .AppendInterval(delay_animation)
            .AppendCallback(() => anim.gameObject.SetActive(false))
            .AppendInterval(delay_prepare)
            .AppendCallback(() => OnEnter_Attack());
        }
        else
        {
            DOTween.Sequence()
            .AppendInterval(delay_prepare)
            .AppendCallback(() => OnEnter_Attack());
        }


        //DOVirtual.DelayedCall(delay_prepare, () =>
        //{
        //    anim.gameObject.SetActive(false);
        //    OnEnter_Attack();
        //});
    }
 private void Start()
 {
     blurImage.material.SetFloat("_Size", 3.4f);
     TWAudioController.PlayBGM("InGame");
     TWLoading.OnSuccessLoad(() => TWTransition.FadeOut());
     Time.timeScale = 1f;
 }
예제 #22
0
 public void BackToMenu()
 {
     GameTime.GlobalTimeScale = 1f;
     TWAudioController.PlaySFX("UI", "click");
     TWTransition.ScreenTransition(TWTransition.TransitionType.DEFAULT_IN, .5f, () => TWLoading.LoadScene("EndingScene"));
     TWAudioController.PlaySFX("UI", "transition");
 }
예제 #23
0
 private void PlayBGMAmbient()
 {
     DOTween.Sequence()
     .AppendCallback(() => { TWAudioController.PlaySFX(audioSourceName, clipName); })
     .AppendInterval(delay_play)
     .SetLoops(-1, LoopType.Restart)
     .SetId("ambient");
 }
예제 #24
0
 public void EndTimeline()
 {
     if (TimelineManager.instance.Director.state != UnityEngine.Playables.PlayState.Playing)
     {
         TWTransition.ScreenTransition(TWTransition.TransitionType.DEFAULT_IN, 1f, () => TWLoading.LoadScene("Terrorcopter"));
         TWAudioController.PlaySFX("UI", "transition");
     }
 }
 public void GetDynamite()
 {
     onHand = true;
     DOTween.Kill("DropDynamite");
     TWAudioController.PlaySFX("SFX_PROJECTILE", "dynamite_obtained");
     ActivateTickDynamite();
     anim.SetTrigger("OnHand");
 }
예제 #26
0
 public void Pause()
 {
     UINavigation.instance.ActiveNavigation(true, "Pause");
     TWAudioController.PlaySFX("click");
     pause.SetActive(true);
     Time.timeScale = 0f;
     isPause        = true;
 }
예제 #27
0
 public void BackToMenu()
 {
     ItemManager.instance.ItemNull();
     GameTime.GlobalTimeScale = 1f;
     TWAudioController.PlaySFX("UI", "click");
     TWTransition.ScreenTransition(TWTransition.TransitionType.DOWN_IN, .5f, () => TWLoading.LoadScene("MainMenu"));
     TWAudioController.PlaySFX("UI", "transition");
 }
예제 #28
0
 public void PlayGame()
 {
     GameData.FirstPlay = true;
     GameVariables.DIALOG_START_MESSAGE = "MISSION_START";
     TWAudioController.PlaySFX("UI", "click");
     TWTransition.ScreenTransition(TWTransition.TransitionType.DEFAULT_IN, .5f, () => TWLoading.LoadScene("dialogFungus"));
     TWAudioController.PlaySFX("UI", "transition");
 }
예제 #29
0
 public void Resume()
 {
     TWAudioController.PlaySFX("click");
     UINavigation.instance.ActiveNavigation(false);
     pause.SetActive(false);
     Time.timeScale = 1f;
     isPause        = false;
 }
예제 #30
0
 public void BackToPanelItem()
 {
     GameTime.GlobalTimeScale           = 1f;
     GameVariables.DIALOG_START_MESSAGE = "ITEM_PANEL";
     TWAudioController.PlaySFX("UI", "click");
     TWTransition.ScreenTransition(TWTransition.TransitionType.DEFAULT_IN, .5f, () => TWLoading.LoadScene("dialogFungus"));
     TWAudioController.PlaySFX("UI", "transition");
 }