/// <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); } }
/// <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); } }