Esempio n. 1
0
    // Use this for initialization
    void Start()
    {
        this.player      = GameObject.FindGameObjectWithTag("Player");
        playerStay       = false;
        this.toNextStage = false;
        //canvas.gameObject.SetActive(false);
        GetComponent <LongPressDetector>();
        GetComponent <LongPressDetector>().OnLongPressTrigger += (e) => {
            Debug.Log("stay " + playerStay);
            //this.canvas.gameObject.SetActive(false);
            this.toNextStage = true;

            if (playerStay == true)
            {
                //現在のステージ番号を保存
                string currentScene       = SceneManager.GetActiveScene().name;
                int    currentStageNumber = StageNumber.GetStageNumber(currentScene);
                StageDataPrefs.SaveStageNumber(++currentStageNumber);
                //チェックポイントのデータの削除
                StageDataPrefs.DeleteCheckPoint();
                SceneChanger.Instance().Change(nextSceneName, new FadeData(1, 1, Color.black));
            }
        };

        player.GetComponent <Status>().onDamage.Subscribe((e) => {
            //ここにダメージ受けた時の処理
            GetComponent <LongPressDetector>().Cancel();
            //ActivateCanvas(false);
        });
    }
Esempio n. 2
0
    /// <summary>
    /// 吸生
    /// </summary>
    /// <returns></returns>
    private IEnumerator PierceAndHeakCoroutine()
    {
        state = PlayerState.Pierce;
        var audioNames = new AudioName[] { AudioName.kaede_hun_kyusei_10, AudioName.kaede_kurae_kyusei_11 };

        AudioManager.Instance.PlayPlayerSE(audioNames[Random.Range(0, audioNames.Length)].String());
        EnemyAI nearEnemy = MostNearEnemy();
        var     isBoss    = nearEnemy.GetComponent <BossMarker>() != null;

        playerAnimation.StopWalkAnimation();
        //敵のほうを向くまで待機
        yield return(StartCoroutine(RotateToTarget(nearEnemy.waistPosition, 5.0f)));

        status.Heal(pierceHealHP);
        //吸生終了まで待機
        playerAnimation.StartKyuuseiAnimation();
        yield return(new WaitForSeconds(2.0f));

        playerAnimation.StopKyuuseiAnimation();
        FarEnemy(nearEnemy);
        nearEnemy.UsedHeal();
        state = PlayerState.Idle;

        if (isBoss)
        {
            SceneChanger.Instance().Change(nextSceneName, new FadeData(1, 1, Color.black));
        }
    }
    // Update is called once per frame
    void Update()
    {
        if (!Input.GetButton(InputMap.Type.AButton.GetInputName()) ||
            triggered)
        {
            return;
        }

        var selected = menu.selected;
        var fadeData = new FadeData(1f, 1f, Color.black);

        this.triggered = true;

        if (selected == 0)
        {
            //最後のチェックポイントから
            StageManager.Resume(fadeData);
        }
        else if (selected == 1)
        {
            //タイトルに戻る
            SceneChanger.Instance().Change(SceneName.Title, fadeData);
        }
        else if (selected == 2)
        {
            //ゲーム終了
            Application.Quit();
        }
    }
 // PlayableTrack再生時実行
 public override void OnBehaviourPlay(Playable playable, FrameData info)
 {
     if (Application.isPlaying)
     {
         SceneChanger.Instance().Change(nextScene, sceneFade);
     }
 }
Esempio n. 5
0
    public static void Resume(FadeData fadeData)
    {
        StageManager.resum = true;
        int    currentStageNumber = StageDataPrefs.GetStageNumber();
        string stage = StageNumber.GetStageName(currentStageNumber);

        SceneChanger.Instance().Change(SceneNameManager.GetKeyByValue(stage), fadeData);
    }
Esempio n. 6
0
 public IEnumerator OnExecute()
 {
     SceneChanger.Instance().Change(sceneName, fade);
     while (true)
     {
         yield return(null);
     }
 }
 // Update is called once per frame
 void Update()
 {
     foreach (var key in sceneChangerKeys)
     {
         if (Input.GetKeyDown(key))
         {
             SceneChanger.Instance().Change(next);
         }
     }
 }
Esempio n. 8
0
    public override IEnumerator Action()
    {
        var wait = new WaitForSeconds(1f);

        if (!isSetuna && !SceneChanger.Instance().isChanging)
        {
            AudioManager.Instance.PlayEnemySE(AudioName.oni_oaa_preAttack_03.String());
            yield return(wait);
        }
        yield return(enemyAttack.Attack());
    }
 // Update is called once per frame
 void Update()
 {
     if (change)
     {
         return;
     }
     if (Input.GetButton(type.GetInputName()))
     {
         this.change = true;
         SceneChanger.Instance().Change(sceneName, new FadeData(1f, 1f, Color.black));
     }
 }
Esempio n. 10
0
    private void Update()
    {
        if (isPause)
        {
            return;
        }

        if (Input.GetButtonDown(InputMap.GetInputName(InputMap.Type.StartButton)) &&
            !Fade.Instance().isFading&&
            !SceneChanger.Instance().isChanging)
        {
            Pause();
        }
    }
Esempio n. 11
0
    private IEnumerator MovieUpdate()
    {
        foreach (var part in parts)
        {
            if (part == null)
            {
                continue;
            }
            yield return(part.MovieUpdate());
        }
        yield return(new WaitForSeconds(1f));

        SceneChanger.Instance().Change(scene, fadedata);
    }
    // Update is called once per frame
    void Update()
    {
        if (kirinuke.isRunning || rengeki.turnNow || rengeki.actionNow || rengeki.moveNow)
        {
            return;
        }
        if (SceneChanger.Instance().isChanging)
        {
            return;
        }
        if (inputDisableElapsed < inputDisableSeconds)
        {
            inputDisableElapsed += Time.deltaTime;
            return;
        }

        if (pauseManager.isPause)
        {
            return;
        }

        //スタミナ回復(ガード中は回復しない)
        if (!Input.GetButton(InputMap.Type.LButton.GetInputName()))
        {
            staminaTimeElapsed += Slow.Instance.PlayerDeltaTime();

            if (staminaTimeElapsed >= staminaHealTime)
            {
                status.RecoveryStamina();
                staminaTimeElapsed = 0;
            }
        }

        //Debug.Log(status.GetStamina());
        DashOrAvoid();

        //if (pressButton > 20) pressButton = 0;
        //        Debug.Log(pressButton);
        if (!action.IsAvoid())
        {
            Guard();
            Move();
            Attack();
            PierceAndHeal();
        }

        //Avoid();
    }
Esempio n. 13
0
    /// <summary>
    /// 攻撃を受けた時の処理
    /// </summary>
    /// <param name="damageSource"></param>
    public void OnHit(DamageSource damageSource)
    {
        if (SceneChanger.Instance().isChanging)
        {
            return;
        }

        /*
         * //回避中に攻撃が当たってしまうのでとりあえずコメントアウト
         * if (!damageSource.canCounter)
         * {
         *  //Debug.Log("player damaged");
         *  Damage(damageSource);
         *      AudioManager.Instance.PlayPlayerSE(AudioName.kaede_ku_guard_05.String());
         *      return;
         * }
         * //*/
        if (state == PlayerState.Defence)
        {
            //防御中
            if (damageSource.attackCharacter is Thunder)
            {
                Debug.Log("player damaged");
                Damage(damageSource);
            }
            else
            {
                AudioManager.Instance.PlayPlayerSE(AudioName.kaede_ku_guard_05.String());
                status.DecreaseStamina(damageSource.damage);
                //ノックバックされる
                BeKnockedBack(damageSource);
            }
        }
        else if (state == PlayerState.Avoid)
        {
        }
        else if (state == PlayerState.Counter)
        {
            DoCounter(damageSource);
        }
        else
        {
            Debug.Log("player damaged");
            Damage(damageSource);
        }
    }
Esempio n. 14
0
    private IEnumerator LateChangeScene()
    {
        this.changeScene++;
        var listUI = controlInfoPanel.GetComponent <ListUI>();

        if (listUI.selected == 0)
        {
            //戻る
            controlInfoPanel.SetActive(false);
            SetEnabledButtons(true);
            //遅延させないとすぐに戻ってしまう
            yield return(new WaitForSecondsRealtime(1f));

            this.visibleControlInfo = false;
        }
        else if (listUI.selected == 1)
        {
            //タイトルへ
            Time.timeScale = 1;
            SceneChanger.Instance().Change(SceneName.Title, new FadeData(1, 1, Color.black));
        }

        this.changeScene--;
    }
    private IEnumerator LimitUpdate(float limitTime)
    {
        yield return(new WaitForSeconds(limitTime));

        SceneChanger.Instance().Change(next);
    }
Esempio n. 16
0
    private IEnumerator ChangeScene()
    {
        yield return(new WaitForSeconds(addWait));

        SceneChanger.Instance().Change(scene, fadeData);
    }
Esempio n. 17
0
 /// <summary>
 /// タイトルへ戻る
 /// </summary>
 public void ToTitle()
 {
     //シーンの切り替えにコルーチンを利用しているためtimescaleを戻す
     Time.timeScale = 1.0f;
     SceneChanger.Instance().Change(SceneName.Title, changeTitleFade);
 }
Esempio n. 18
0
    // Use this for initialization
    void Start()
    {
#if UNITY_EDITOR
        GameObject.Instantiate(terminalPrefab);
        TerminalRegistry.instance.Register("hello", (args) => {
            Debug.Log("hello");
        });
        TerminalRegistry.instance.Register("echo", (args) => {
            Debug.Log(args[0]);
        });
        TerminalRegistry.instance.Register("enemy-damage", (args) => {
            Debug.Log("enemy-damage");
            if (args.Length == 0 || args[0] == "near")
            {
                var player = GameObject.FindGameObjectWithTag(TagName.Player.String());
                var enemy  = Utilities.SearchMostNearEnemyInTheRange(player.transform.position, 100.0f, false);
                if (enemy != null)
                {
                    var status = enemy.GetComponent <Status>();
                    status.__SetHP(1);
                }
            }
            else if (args[0] == "all")
            {
                foreach (var enemy in GameObject.FindGameObjectsWithTag(TagName.Enemy.String()))
                {
                    var status = enemy.GetComponent <Status>();
                    status.__SetHP(1);
                }
            }
        });
        TerminalRegistry.instance.Register("enemy-heal", (args) => {
            Debug.Log("enemy-heal");
            if (args.Length == 0 || args[0] == "near")
            {
                var player = GameObject.FindGameObjectWithTag(TagName.Player.String());
                var enemy  = Utilities.SearchMostNearEnemyInTheRange(player.transform.position, 100.0f, false);
                if (enemy != null)
                {
                    var status = enemy.GetComponent <Status>();
                    status.__SetHP(status.__GetMaxHP());
                }
            }
            else if (args[0] == "all")
            {
                foreach (var enemy in GameObject.FindGameObjectsWithTag(TagName.Enemy.String()))
                {
                    var status = enemy.GetComponent <Status>();
                    status.__SetHP(status.__GetMaxHP());
                }
            }
        });
        TerminalRegistry.instance.Register("player-heal", (args) => {
            var player = GameObject.FindGameObjectWithTag(TagName.Player.String());
            var status = player.GetComponent <PlayerStatus>();
            status.__SetHP(status.__GetMaxHP());
            status.__SetStamina(status.__GetMaxStamina());
        });
        TerminalRegistry.instance.Register("warp", (args) => {
            var cp = Utilities.FindAny(
                "StageChangeArea01",
                "StageChangeArea02",
                "StageChangeArea03"
                );
            if (cp != null)
            {
                var player = GameObject.FindGameObjectWithTag(TagName.Player.String());
                player.transform.position = cp.transform.position;
            }
        });
        TerminalRegistry.instance.Register("movie-boss", (args) => {
            SceneChanger.Instance().Change(SceneName.LastBossMovie, new FadeData(1, 1, Color.black));
        });
#endif
    }