この関数群は魔法などの影響を受けなかったので、1対1の殴りあいと変わらない。
// ユーザーが「戦闘開始」をクリックしたときに、敵味方の攻撃順が指定してあるか調べる function click_combat_start() { add_msg("戦闘開始をクリックした。"); if (enemy_party.exist === true) { combat.onCombat = true; combat.turn_num = 0; if (Pip.quick !== enemy_party.quick) { combat.compare_quick(); } else { combat.roll_Pip_quick(); } } else { add_msg("敵がいないので何も起こらない。"); } }
// ピップの素早さを決めるサイコロを振る combat.roll_Pip_quick = function (){ add_msg("ピップの素早さのサイコロを1個振れ。"); dice.start(1, "combat.get_Pip_quick()"); }
// サイコロの目をピップの素早さに代入する combat.get_Pip_quick = function () { Pip.quick = dice.die1pip; add_msg("ピップの素早さは" + Pip.quick); combat.do_next = "roll_enemy_quick"; combat.roll_enemy_quick(); }
// 敵の素早さを決めるサイコロを振る combat.roll_enemy_quick = function (){ add_msg(enemy_party.name + "の素早さのサイコロを1個振れ。"); window.setTimeout('dice.start(1, "combat.get_enemy_quick()");', combat.wait_time); }
// サイコロの目を敵の素早さに代入する combat.get_enemy_quick = function () { enemy_party.quick = dice.die1pip; add_msg(enemy_party.name + "の素早さは" + enemy_party.quick); window.setTimeout(combat.compare_quick, combat.wait_time); }
// ピップと敵のどちらが先攻するか決める combat.compare_quick = function () { if (Pip.quick === enemy_party.quick) { Pip.quick = 0; enemy_party.quick = 0; combat.do_next = "roll_Pip_quick"; add_msg("ピップと" + enemy_party.name + "は同じ目を出した。サイコロを振り直しだ。"); dice.start(1, "combat.get_Pip_quick()"); } else if (Pip.quick > enemy_party.quick) { Pip.first_strike = true; enemy_party.first_strike = false; add_msg("ピップが先手を取った。"); combat.turn_num = 0; combat.Pip_select(); } else { Pip.first_strike = false; enemy_party.first_strike = true; add_msg(enemy_party.name + "が先手を取った。"); combat.turn_num = 0; combat.enemy_select(0); } }