バトル時に敵キャラから狙われる対象をどうやって選択しているかは
jsフォルダ内のrpg_objects.jsのGame_Unit.randomTargetで決定しているようです。
rpg_objects.jsのGame_Unit.prototype.randomTarget
var tgrRand = Math.random() * this.tgrSum();
全ての生きている味方アクターの狙われ率を合算し、
0から合算までのランダムな値をtgrRandに代入しています。
this.aliveMembers().forEach(function(member) {
this.aliveMembers()で生きているアクターを取得し、
memberに代入して順番にループします。
tgrRand -= member.tgr;
狙われ率のランダムtgrRandを、それぞれ生きているアクターの狙われ率member.tgrで引きます。
if (tgrRand
tgrRandが-以下になり、かつターゲットが決まってない(target = null)場合は、
現在memberに入っているアクターがターゲットになります。
何でこの時点でループを抜けずに、最後までまわすのかはわかりません。
事はこれで終わりではなくて(むしろここからが個人的な疑問としては本番で)
次回は狙われ率が職業、武器、buffに設定されている場合は
どれが使われているのかを見たいと思います。
jsフォルダ内のrpg_objects.jsのGame_Unit.randomTargetで決定しているようです。
rpg_objects.jsのGame_Unit.prototype.randomTarget
var tgrRand = Math.random() * this.tgrSum();
全ての生きている味方アクターの狙われ率を合算し、
0から合算までのランダムな値をtgrRandに代入しています。
this.aliveMembers().forEach(function(member) {
this.aliveMembers()で生きているアクターを取得し、
memberに代入して順番にループします。
tgrRand -= member.tgr;
狙われ率のランダムtgrRandを、それぞれ生きているアクターの狙われ率member.tgrで引きます。
if (tgrRand
tgrRandが-以下になり、かつターゲットが決まってない(target = null)場合は、
現在memberに入っているアクターがターゲットになります。
何でこの時点でループを抜けずに、最後までまわすのかはわかりません。
事はこれで終わりではなくて(むしろここからが個人的な疑問としては本番で)
次回は狙われ率が職業、武器、buffに設定されている場合は
どれが使われているのかを見たいと思います。