2018 ソフトウェア設計及び演習用の班Wiki
18::gr08::yoru
夜行動
yoru.js
-
moji(job)
- プレイヤーの役職に応じて文を表示
- 赤ずきん、パンずきん、サイコずきんは待機画面(stay_night.html)へ移動
- yoru(btn)
- ボタンが押されると確認ダイアログを表示
- サーバへプレイヤーの役職と押されたボタン番号を送信
- エスパーずきん、ゴーストずきんの場合は受信した情報をダイアログで表示
- 待機画面へ移動
夜行動 act_req (app.js)
受信した役職(j)とボタン番号(b)に応じて動く
-
エスパーずきん、ゴーストずきんの場合
- 押されたボタン番号に応じたプレイヤーの名前とウルフずきんかどうかを送信
- スーパーずきん、ウルフずきんの場合
- スーパーずきんがいないときはウルフずきんの選んだプレイヤーが脱落
- それぞれ違う番号が選ばれると、ウルフずきんの選んだプレイヤーが脱落
- 同じ番号が選ばれると、そのプレイヤーは生存
- ウルフずきんが複数いた場合、最初に押されたものが優先される
//夜行動 socket.on("act_req", function(data){ var j = data.act; var b = data.target; var uname, ujob; var x = live(); for(var i = 0; i < numOfuser; i++){ if(user[i].work == 5 && user[i].lod == 0){ knight++; } } if(j == 3){ //エスパー uname = user[b].name; if(user[b].work == 7){ ujob = "ウルフずきん"; }else{ ujob = "あかずきん陣営"; } io.to(socket.id).emit("esper", {uname: uname, ujob: ujob}); }else if(j == 4){ //ゴースト uname = user[b].name; if(user[b].work == 7){ ujob = "ウルフずきん"; }else{ ujob = "あかずきん陣営"; } io.to(socket.id).emit("ghost", {uname: uname, ujob: ujob}); }else if(j == 5){ //スーパー s = b; }else if(j == 7 && f == 0){ //ウルフ w = b; f++; } if(knight != 0){ //スーパーがいる if(s != 20 && w != 30){ //それぞれボタンが押されている if(s != w){ //違う番号 user[w].lod = 2; new_dead = user[w].name; nx = x-1; }else{ //同じ番号 nx = x; } } }else{ //スーパーがいない if(w != 30){ //ボタンが押されている user[w].lod = 2; new_dead = user[w].name; nx = x-1; } } });
最終更新日:2018/08/09 15:38:33