/// <summary>
    /// Hpの更新処理とエネミーの破壊確認処理
    /// </summary>
    /// <param name="bullet"></param>
    private void UpdateHP(Bullet bullet) //受け取る情報用の引数を追加
    {
        //Enemyの体力を減らす
        enemyHp -= bullet.bulletPower; //Bulletスクリプトが管理しているpublic情報であるbulletPower変数を利用する

        //Hpの値の上限・下限を確認して範囲内に制限
        enemyHp = Mathf.Clamp(enemyHp, minHP, maxHP);

        //Hpゲージの表示更新
        DisplayHpGauge();

        //体力が0以下になったら
        if (enemyHp <= 0)
        {
            enemyHp = 0;

            //BOssの場合
            if (enemyData.enemyType == EnemyType.Boss)
            {
                //Boss討伐済みの状態にする
                enemyGenerator.SwitchBossDestroyed(true);
            }

            //ExpをTotalExpに加算
            GameData.instance.UpdateToatalExp(enemyData.exp);

            //最新のTotalExpを利用して表示更新
            enemyGenerator.PreparateDisplayTotalExp(enemyData.exp);

            //Enemy破壊
            Destroy(this.gameObject);
        }
        else
        {
            Debug.Log("残り HP :" + enemyHp);
        }
    }
Пример #2
0
    /// <summary>
    /// Hpの更新処理とエネミーーの破壊確認処理
    /// </summary>
    /// <param name="bullet"></param>
    private void UpdateHP(Bullet bullet)
    {
        //ダメージ確定用
        int bulletPower = 0;

        //弱点判定用。弱点nの場合には、trueに切り替える
        bool isWeekness = false;

        //バレットの属性とエネミーの属性の情報を利用して相性を判定
        if (ElementCompatibilityHelper.GetElementCompatibility(bullet.bulletData.elementType, enemyData.elementType) == true)
        {
            Debug.Log("Element 相性 良");

            //バレットの攻撃力をダメージ倍率分掛けた値にして、計算結果を切り上げてint型にする
            bulletPower = Mathf.FloorToInt(bullet.bulletData.bulletPower * GameData.instance.DamageRatio);

            isWeekness = true;
        }
        else
        {
            //バレットの攻撃力をそのまま利用する
            bulletPower = bullet.bulletData.bulletPower;
        }



        //バレットの攻撃力値用のフロート表示の生成
        CreateFloatingMessageToBulletPower(bulletPower, isWeekness);

        //hpの減算処理
        hp -= bulletPower;

        //HPの上下限の設定
        maxHp = Mathf.Clamp(maxHp, 0, maxHp);

        DisplayHpGauge();

        //hpが0以下になったら
        if (hp <= 0)
        {
            hp = 0;

            //ボスの場合
            if (enemyData.enemyType == EnemyType.Boss)
            {
                //ボス討伐済みのフラグをたてる
                enemyGenerator.SwitchBossDestroyed(true);

                SoundManager.instance.PlaySE(SoundDataSO.SeType.GameClear);
                SoundManager.instance.PlayVoice(SoundDataSO.VoiceType.Win);
            }

            //ExpをTotaExpに加算
            GameData.instance.UpDateTotalExp(enemyData.exp);

            //最新のTotalExpを利用して表示更新
            enemyGenerator.PreparateDisplayTotalExp(enemyData.exp);


            Destroy(gameObject);
        }

        //ノーマル弾の場合
        if (bullet.bulletData.bulletType == BulletDataSO.BulletType.Player_Normal || bullet.bulletData.bulletType == BulletDataSO.BulletType.Player_5ways_Normal)
        {
            Destroy(bullet.gameObject);
        }
    }