conditionの宣言位置は変更前でも自動勝利しませんでした
おや、確かに、clearされていないので敵自体は出てくるんですね。
必ず1回目の戦闘と同じ構成で出てきそうです。
空配列で初期化していたのは、参考にしていたコードがそう書いていたからそのまま真似しました。
意味がないというのを直ぐに理解できませんでした。
参考にされたのは RandomEnemies.js のコードでしょうか。
https://github.com/RexGit/Random-Enemies/blob/master/js/plugins/RandomEnemies.js
これはNoteTagの内容を配列で返すためだと思われますが、コード的に参考にしちゃいけない類です。インデントもロジックも現代アートの領域ですね。忘れてください。
意味がないというのは、初期化の際に代入している [] (空配列)が、直後に selectEnemyId の戻り値で上書きされて捨てられるためです。
82.js では var が消えてしまっているので、エラーで怒られそうな気がします。
凄く短くなりますね…
短くはなるが、可読性的にちょっとだけ微妙な感じになりそうです。
このくらい読めるじゃんという人と、ぱっと見わかりにくいという人に意見が分かれそうなコードだと思います。
以下のようにして Game_Enemy に渡す敵IDと、敵キャラを隠す条件を明示してあげるとやさしいコードになりそうです。
コード: 全て選択
var randomEnemyId = selectEnemyId($dataEnemies[member.enemyId]);
var enemyId = randomEnemyId || member.enemyId;
var enemy = new Game_Enemy(enemyId, member.x, member.y);
var hideEnemy = randomEnemyId === 0 || member.hidden;
if (hideEnemy) {
enemy.hide();
} else {
condition = false;
}
this._enemies.push(enemy);
冗長になることは確かなので、どちらを選ぶかは好み次第だとは思いますが。