0.0.8-alpha3
・ キーの入力待ち処理にミスがあったので修正
@@ -363,7 +363,7 @@ | ||
363 | 363 | } |
364 | 364 | THIEF.html.addDebugMessage('...' + obj.get(THIEF.PROP.displayName) + 'を' + this.get(THIEF.PROP.displayName) + 'のインベントリ座標[' + objX + ', ' + objY + ']から除外完了。'); |
365 | 365 | |
366 | - if(this.type === 'level' && obj.active){ | |
366 | + if (this.type === 'level' && obj.active) { | |
367 | 367 | THIEF.html.addDebugMessage('アクティブリストから除外'); |
368 | 368 | this[THIEF.PROP.actObjectList].remove(obj); |
369 | 369 | } |
@@ -421,7 +421,7 @@ | ||
421 | 421 | this.inventory[i][j].push(obj); |
422 | 422 | THIEF.html.addDebugMessage('[' + i + ', ' + j + ']に' + obj.get(THIEF.PROP.alphabet) + 'として追加'); |
423 | 423 | |
424 | - if(this.type === 'level' && obj.active){ | |
424 | + if (this.type === 'level' && obj.active) { | |
425 | 425 | THIEF.html.addDebugMessage('アクティブリストに追加'); |
426 | 426 | this[THIEF.PROP.actObjectList].push(obj); |
427 | 427 | } |
@@ -581,7 +581,7 @@ | ||
581 | 581 | THIEF.html.addDebugMessage('死亡処理を開始...'); |
582 | 582 | THIEF.html.addMessage(THIEF.util.getText(THIEF.Data.Text.killBy, this.get(THIEF.PROP.displayName), obj.get(THIEF.PROP.displayName))); |
583 | 583 | THIEF.global.actLV.removeFromInventory(this); |
584 | - this.next = function() { | |
584 | + this.action = function() { | |
585 | 585 | return true |
586 | 586 | }; |
587 | 587 | THIEF.html.addDebugMessage('...死亡処理を完了。') |
@@ -863,19 +863,14 @@ | ||
863 | 863 | }; |
864 | 864 | |
865 | 865 | THIEF.func.method.inputWait = function () { |
866 | - this.next = THIEF.func.method.manual; | |
866 | + this.action = THIEF.func.method.action; | |
867 | 867 | THIEF.html.addDebugMessage('入力待ち'); |
868 | 868 | THIEF.html.addMessage(); // 改行 |
869 | 869 | return false; |
870 | 870 | }; |
871 | 871 | |
872 | -// 基本は AI 処理とする | |
873 | -THIEF.func.method.next = function() { | |
874 | - return this.cpu(); | |
875 | -}; | |
872 | +THIEF.func.method.getObjectList = function(compObj, recursive) { | |
876 | 873 | |
877 | -THIEF.func.method.getObjectList = function(compObj, recursive){ | |
878 | - | |
879 | 874 | var list = []; |
880 | 875 | if (typeof this.inventory !== "undefined") { |
881 | 876 | var width = this.get(THIEF.PROP.inventoryWidth); |
@@ -892,8 +887,8 @@ | ||
892 | 887 | for (var z = 0; z < depth; z++) { |
893 | 888 | |
894 | 889 | var result = true; |
895 | - for(var name in compObj){ | |
896 | - if(this.inventory[x][y][z][name] === compObj[name]){ | |
890 | + for (var name in compObj) { | |
891 | + if (this.inventory[x][y][z][name] === compObj[name]) { | |
897 | 892 | |
898 | 893 | } else { |
899 | 894 | result = false; |
@@ -900,10 +895,10 @@ | ||
900 | 895 | break; |
901 | 896 | } |
902 | 897 | } |
903 | - if(result){ | |
898 | + if (result) { | |
904 | 899 | list.push(this.inventory[x][y][z]); |
905 | 900 | } |
906 | - if(recursive){ | |
901 | + if (recursive) { | |
907 | 902 | // 持ち物の持ち物も検索 |
908 | 903 | list = list.concat(this.inventory[x][y][z].getObjectList(compObj, recursive)); |
909 | 904 | } |
@@ -915,21 +910,21 @@ | ||
915 | 910 | return list; |
916 | 911 | }; |
917 | 912 | |
918 | -THIEF.func.method.execActiveObjects = function(){ | |
913 | +THIEF.func.method.execActiveObjects = function() { | |
919 | 914 | var result = true; |
920 | 915 | |
921 | 916 | if (this[THIEF.PROP.actObjectList]) { |
922 | 917 | // アクティブリストを降順にソート |
923 | - this[THIEF.PROP.actObjectList].sort(function(a, b){ | |
918 | + this[THIEF.PROP.actObjectList].sort(function(a, b) { | |
924 | 919 | return b.ct - a.ct; |
925 | 920 | }); |
926 | - | |
927 | - while(this[THIEF.PROP.actObjectList][0] && this[THIEF.PROP.actObjectList][0].ct >= 100){ | |
921 | + | |
922 | + while (this[THIEF.PROP.actObjectList][0] && this[THIEF.PROP.actObjectList][0].ct >= 100) { | |
928 | 923 | var obj = this[THIEF.PROP.actObjectList][0]; |
929 | - if(obj.ct >= 100){ | |
924 | + if (obj.ct >= 100) { | |
930 | 925 | THIEF.html.addDebugMessage(obj.get(THIEF.PROP.displayName) + ' の処理を開始...'); |
931 | 926 | result = obj.action(); |
932 | - if(result){ | |
927 | + if (result) { | |
933 | 928 | THIEF.html.addDebugMessage('...処理を完了'); |
934 | 929 | } else { |
935 | 930 | THIEF.html.addDebugMessage('...' + obj.get(THIEF.PROP.displayName) + ' は処理が完了しなかった。'); |
@@ -938,7 +933,7 @@ | ||
938 | 933 | } |
939 | 934 | |
940 | 935 | // アクティブリストを降順にソート |
941 | - this[THIEF.PROP.actObjectList].sort(function(a, b){ | |
936 | + this[THIEF.PROP.actObjectList].sort(function(a, b) { | |
942 | 937 | return b.ct - a.ct; |
943 | 938 | }); |
944 | 939 | } |
@@ -949,7 +944,13 @@ | ||
949 | 944 | THIEF.func.method.action = function() { |
950 | 945 | |
951 | 946 | THIEF.html.addDebugMessage(this.get(THIEF.PROP.displayName) + ' の行動を開始...'); |
952 | - var result = this.next(); | |
947 | + var result; | |
948 | + if (this.isManual) { | |
949 | + result = this.manual(); | |
950 | + } else { | |
951 | + result = this.cpu(); | |
952 | + } | |
953 | + | |
953 | 954 | THIEF.html.addDebugMessage('... ' + this.get(THIEF.PROP.displayName) + ' の行動を完了。 (result = ' + result + ')'); |
954 | 955 | |
955 | 956 | return result; |
@@ -973,7 +974,7 @@ | ||
973 | 974 | var finish; |
974 | 975 | var code = THIEF.global.keycode; |
975 | 976 | |
976 | - if (code === 0) { | |
977 | + if (code === 0 || isNaN(code)) { | |
977 | 978 | finish = false; |
978 | 979 | THIEF.html.addDebugMessage('無効なキー入力のため、何の処理もしない。') |
979 | 980 | } else { |
@@ -996,7 +997,7 @@ | ||
996 | 997 | THIEF.html.addDebugMessage('...' + String.fromCharCode(code) + '(' + code + ')の入力に対する処理を完了。(return : ' + finish + ')'); |
997 | 998 | |
998 | 999 | if (finish) { |
999 | - this.next = THIEF.func.method.inputWait; | |
1000 | + this.action = THIEF.func.method.inputWait; | |
1000 | 1001 | } |
1001 | 1002 | } |
1002 | 1003 |
@@ -1136,6 +1137,7 @@ | ||
1136 | 1137 | }; |
1137 | 1138 | |
1138 | 1139 | THIEF.func.command.rest = function() { |
1140 | + this.ct = 99; | |
1139 | 1141 | return true; |
1140 | 1142 | }; |
1141 | 1143 |
@@ -1564,6 +1566,7 @@ | ||
1564 | 1566 | THIEF.global.adventurer.inventoryWidth = 10; |
1565 | 1567 | THIEF.global.adventurer.inventoryCellSize = 1; |
1566 | 1568 | THIEF.global.adventurer.ct = 100; |
1569 | + THIEF.global.adventurer.isManual = true; | |
1567 | 1570 | var point = THIEF.global.actLV.getInventoryRandomFreeSpace(THIEF.global.adventurer); |
1568 | 1571 | THIEF.global.actLV.addToInventory(THIEF.global.adventurer, point.x, point.y); |
1569 | 1572 |
@@ -1589,24 +1592,23 @@ | ||
1589 | 1592 | //noinspection DynamicallyGeneratedCodeJS |
1590 | 1593 | setTimeout(THIEF.util.next, 100); |
1591 | 1594 | } |
1592 | - | |
1593 | - // 毎ターンの終了時、または中断時(ユーザの入力待ち)に、画面の更新を行う | |
1594 | - //THIEF.html.addMessage(); | |
1595 | - | |
1596 | 1595 | }; |
1597 | 1596 | |
1598 | 1597 | THIEF.util.step = function () { |
1599 | 1598 | var completion = true; |
1600 | 1599 | var compCounter = 15; |
1600 | + //var lock = false; | |
1601 | 1601 | |
1602 | 1602 | return function () { |
1603 | + //if(!lock){ | |
1604 | + //lock = true; | |
1603 | 1605 | if (completion) { |
1604 | 1606 | THIEF.global.turn++; |
1605 | 1607 | THIEF.html.addDebugMessage('<em>ターン:' + THIEF.global.turn + ' を開始</em>...'); |
1606 | 1608 | THIEF.html.addDebugMessage('CT の増減を開始...'); |
1607 | - for(var i=0; i<THIEF.global.actLV[THIEF.PROP.actObjectList].length; i++){ | |
1609 | + for (var i = 0; i < THIEF.global.actLV[THIEF.PROP.actObjectList].length; i++) { | |
1608 | 1610 | var obj = THIEF.global.actLV[THIEF.PROP.actObjectList][i]; |
1609 | - if(obj.dex){ | |
1611 | + if (obj.dex) { | |
1610 | 1612 | obj.ct += obj.dex * 4; |
1611 | 1613 | } else { |
1612 | 1614 | obj.ct = 100; |
@@ -1644,7 +1646,8 @@ | ||
1644 | 1646 | THIEF.html.addDebugMessage('...ターン:' + THIEF.global.turn + ' を中断。(ユーザからの入力待ち)'); |
1645 | 1647 | THIEF.html.addDebugMessage(); |
1646 | 1648 | } |
1647 | - | |
1649 | + //} | |
1650 | + //lock = false; | |
1648 | 1651 | return completion; |
1649 | 1652 | }; |
1650 | 1653 | }(); |