• R/O
  • SSH
  • HTTPS

thief: Commit


Commit MetaInfo

Revision26 (tree)
Time2011-11-26 02:43:19
Authorseussnu

Log Message

0.0.7-alpha5
・ 文字列の表示処理を修正

Change Summary

Incremental Difference

--- thief.js (revision 25)
+++ thief.js (revision 26)
@@ -587,9 +587,9 @@
587587 if(damage> 0){
588588 THIEF.html.addDebugMessage(this.get(THIEF.PROP.displayName) + ' HP : ' + this.get(THIEF.PROP.hp) + ' -> ' + (this.get(THIEF.PROP.hp) - damage) + 'とする。');
589589 this.hp -= damage;
590- THIEF.Data.Text.$(THIEF.Data.Text.attack, damage, this.get(THIEF.PROP.displayName), obj.get(THIEF.PROP.displayName) );
590+ THIEF.html.addMessage(THIEF.util.getText(THIEF.Data.Text.attack, damage, this.get(THIEF.PROP.displayName), obj.get(THIEF.PROP.displayName)));
591591 } else {
592- THIEF.Data.Text.$(THIEF.Data.Text.defence, this.get(THIEF.PROP.displayName), obj.get(THIEF.PROP.displayName));
592+ THIEF.html.addMessage(THIEF.util.getText(THIEF.Data.Text.defence, this.get(THIEF.PROP.displayName), obj.get(THIEF.PROP.displayName)));
593593 }
594594
595595 obj.ct -= 100;
@@ -596,7 +596,7 @@
596596
597597 if (this.get(THIEF.PROP.hp) <= 0) {
598598 THIEF.html.addDebugMessage('死亡処理を開始...');
599- THIEF.Data.Text.$(THIEF.Data.Text.killBy, this.get(THIEF.PROP.displayName), obj.get(THIEF.PROP.displayName));
599+ THIEF.html.addMessage(THIEF.util.getText(THIEF.Data.Text.killBy, this.get(THIEF.PROP.displayName), obj.get(THIEF.PROP.displayName)));
600600 THIEF.global.actLV.removeFromInventory(this);
601601 this.next = function() {
602602 return true
@@ -1042,7 +1042,7 @@
10421042 if (this.decayable) {
10431043 this.dp--;
10441044 if (this.dp <= 0) {
1045- THIEF.Data.Text.$(THIEF.Data.Text.decay, this.name);
1045+ THIEF.html.addMessage(THIEF.util.getText(THIEF.Data.Text.decay, this.name));
10461046 THIEF.global.actLV.delInventoryObject(this);
10471047 }
10481048 }
@@ -1142,9 +1142,9 @@
11421142 // 重量オーバなら拾えない様にすること
11431143 if (from.removeFromInventory(selected[i])) {
11441144 to.addToInventory(selected[i]);
1145- THIEF.Data.Text.$(THIEF.Data.Text.pickup, selected[i].get(THIEF.PROP.displayName), to.get(THIEF.PROP.displayName));
1145+ THIEF.html.addMessage(THIEF.util.getText(THIEF.Data.Text.pickup, selected[i].get(THIEF.PROP.displayName), to.get(THIEF.PROP.displayName)));
11461146 } else {
1147- THIEF.Data.Text.$(THIEF.Data.Text.canNotPickup, selected[i].get(THIEF.PROP.displayName), to.get(THIEF.PROP.displayName));
1147+ THIEF.html.addMessage(THIEF.util.getText(THIEF.Data.Text.canNotPickup, selected[i].get(THIEF.PROP.displayName), to.get(THIEF.PROP.displayName)));
11481148 }
11491149 }
11501150
@@ -1151,11 +1151,11 @@
11511151 return result;
11521152 };
11531153
1154- THIEF.Data.Text.$(THIEF.Data.Text.pickupWhich);
1154+ THIEF.html.addMessage(THIEF.util.getText(THIEF.Data.Text.pickupWhich));
11551155 this.action = THIEF.func.method.selecter(objs, exec, false, true);
11561156 finish = false;
11571157 } else {
1158- THIEF.Data.Text.$(THIEF.Data.Text.noItemHere);
1158+ THIEF.html.addMessage(THIEF.util.getText(THIEF.Data.Text.noItemHere));
11591159 }
11601160 return finish;
11611161 };
@@ -1201,15 +1201,15 @@
12011201 if(typeof from.slot !== 'undefined' && typeof from.slot[selected[i].slot] !== 'undefined'){
12021202 delete from.slot[selected[i].slot].equiped;
12031203 delete from.slot[selected[i].slot];
1204- THIEF.Data.Text.$(THIEF.Data.Text.equipNone, from.get(THIEF.PROP.displayName), selected[i].get(THIEF.PROP.slotName));
1204+ THIEF.html.addMessage(THIEF.util.getText(THIEF.Data.Text.equipNone, from.get(THIEF.PROP.displayName), selected[i].get(THIEF.PROP.slotName)));
12051205 from.ct -= 100;
12061206 }
12071207
12081208 to.addToInventory(selected[i], from.x, from.y);
12091209 from.ct -= 20;
1210- THIEF.Data.Text.$(THIEF.Data.Text.drop, selected[i].get(THIEF.PROP.displayName), from.get(THIEF.PROP.displayName), to.get(THIEF.PROP.displayName));
1210+ THIEF.html.addMessage(THIEF.util.getText(THIEF.Data.Text.drop, selected[i].get(THIEF.PROP.displayName), from.get(THIEF.PROP.displayName), to.get(THIEF.PROP.displayName)));
12111211 } else {
1212- THIEF.Data.Text.$(THIEF.Data.Text.canNotDrop, selected[i].get(THIEF.PROP.displayName), from.get(THIEF.PROP.displayName), to.get(THIEF.PROP.displayName));
1212+ THIEF.html.addMessage(THIEF.util.getText(THIEF.Data.Text.canNotDrop, selected[i].get(THIEF.PROP.displayName), from.get(THIEF.PROP.displayName), to.get(THIEF.PROP.displayName)));
12131213 }
12141214 }
12151215
@@ -1227,7 +1227,7 @@
12271227 //result = this.action();
12281228 //result = false;
12291229 } else {
1230- THIEF.Data.Text.$(THIEF.Data.Text.inventoryIsEmpty);
1230+ THIEF.html.addMessage(THIEF.util.getText(THIEF.Data.Text.inventoryIsEmpty));
12311231 }
12321232
12331233 return false;
@@ -1261,7 +1261,7 @@
12611261
12621262
12631263 if (list.length === 0) {
1264- THIEF.Data.Text.$(THIEF.Data.Text.inventoryIsEmpty);
1264+ THIEF.html.addMessage(THIEF.util.getText(THIEF.Data.Text.inventoryIsEmpty));
12651265 } else {
12661266 this.action = THIEF.func.method.selecter(list, THIEF.func.method.inputWait, true, false);
12671267 }
@@ -1393,7 +1393,7 @@
13931393 THIEF.global.keycode = 0;
13941394 finish = THIEF.Data.Keymap[target].cmd.call(this);
13951395 } else {
1396- THIEF.Data.Text.$(THIEF.Data.Text.commandNotFound, line);
1396+ THIEF.html.addMessage(THIEF.util.getText(THIEF.Data.Text.commandNotFound, line));
13971397 }
13981398 }
13991399
@@ -1456,11 +1456,11 @@
14561456 // 既に付けている装備を外す必要があるか
14571457 if(typeof selected[0] !== 'undefined' && typeof my.slot[selected[0].slot] !== 'undefined'){
14581458 if(selected[0] === my.slot[selected[0].slot]){
1459- THIEF.Data.Text.$(THIEF.Data.Text.equipAlready, selected[0].get(THIEF.PROP.displayName), my.get(THIEF.PROP.displayName));
1459+ THIEF.html.addMessage(THIEF.util.getText(THIEF.Data.Text.equipAlready, selected[0].get(THIEF.PROP.displayName), my.get(THIEF.PROP.displayName)));
14601460 selected[0] = undefined;
14611461 } else {
14621462 // 何も渡されないなら、手の装備を外す
1463- THIEF.Data.Text.$(THIEF.Data.Text.equipNone, my.get(THIEF.PROP.displayName), selected[0].get(THIEF.PROP.slotName));
1463+ THIEF.html.addMessage(THIEF.util.getText(THIEF.Data.Text.equipNone, my.get(THIEF.PROP.displayName), selected[0].get(THIEF.PROP.slotName)));
14641464 delete my.slot[selected[0].slot].equiped;
14651465 delete my.slot[selected[0].slot];
14661466 }
@@ -1470,7 +1470,7 @@
14701470 if(typeof selected[0] !== 'undefined'){
14711471 my.slot[selected[0].slot] = selected[0];
14721472 my.slot[selected[0].slot].equiped = true;
1473- THIEF.Data.Text.$(THIEF.Data.Text.equipItem, selected[0].get(THIEF.PROP.displayName), my.get(THIEF.PROP.displayName), selected[0].get(THIEF.PROP.slotName));
1473+ THIEF.html.addMessage(THIEF.util.getText(THIEF.Data.Text.equipItem, selected[0].get(THIEF.PROP.displayName), my.get(THIEF.PROP.displayName), selected[0].get(THIEF.PROP.slotName)));
14741474 THIEF.html.addDebugMessage(selected[0].get(THIEF.PROP.displayName) + ' を装備した。');
14751475 my.ct -= 100;
14761476 }
@@ -1480,7 +1480,7 @@
14801480
14811481 this.action = THIEF.func.method.selecter(list, exec, true, false);
14821482 } else {
1483- THIEF.Data.Text.$(THIEF.Data.Text.inventoryIsEmpty);
1483+ THIEF.html.addMessage(THIEF.util.getText(THIEF.Data.Text.inventoryIsEmpty));
14841484 }
14851485 };
14861486
@@ -1609,68 +1609,11 @@
16091609 };
16101610 }();
16111611
1612-
16131612 THIEF.util.updateStatus = function () {
16141613 // 何かが行動するたびにステータス表示を更新
16151614 THIEF.html.addDebugMessage('ステータス画面の更新開始...');
16161615 for (var i = 0; i < THIEF.conf.statusLineFormat.length; i++) {
1617-
1618- var line = THIEF.conf.statusLineFormat[i];
1619-
1620- // ${xxx} は動的変数として、内部の構文を解析する
1621- // 変数内部は、通常の変数のように ドット で区切る
1622- // %xxx@yyy@zzz% と表記されている部分は関数として処理する
1623- // @ で区切られた部分は関数の引数とする
1624- // 例:${THIEF.global.adventurer.%get@name%} &#x2665;:${THIEF.global.adventurer.%get@hp%}
1625-
1626-
1627- // 変数の取得
1628- var variables = THIEF.conf.statusLineFormat[i].match(/\$\{[A-Za-z0-9_$.%@]+\}/g);
1629- for (var j = 0; j < variables.length; j++) {
1630- // ${ と } を削除
1631- var variable = variables[j].slice(2, variables[j].length - 1);
1632- // ピリオドで分割
1633- var tree = variable.split('.');
1634-
1635- // 値格納用変数
1636- var val = THIEF;
1637-
1638- // 確認
1639- // 0 は THIEF なのでパス。(現在は一応確認)
1640- if (tree[0] !== 'THIEF') {
1641- alert('変数指定の方法が間違っています。');
1642- }
1643- for (var k = 1; k < tree.length; k++) {
1644-
1645- // 変数処理
1646- if (tree[k].search(/^%.+%$/) === -1) {
1647- //THIEF.html.addDebugMessage(val + ' -> ' + tree[k]);
1648- val = val[tree[k]];
1649- //THIEF.html.addDebugMessage(val)
1650-
1651- // 関数処理
1652- } else {
1653- // 前後の % を削除し、@で分割
1654- var arguments = tree[k].slice(1, tree[k].length - 1).split('@');
1655- var args = [];
1656- var func = arguments[0];
1657- for (var l = 1; l < arguments.length; l++) {
1658- args.push(arguments[l]);
1659- }
1660- val = val[func].apply(val, args);
1661-
1662- }
1663- }
1664-
1665- if (typeof val === 'undefined') {
1666- THIEF.html.addDebugMessage(variable + ' は定義されていない');
1667- } else {
1668- THIEF.html.addDebugMessage(variable + ' = ' + val.toString());
1669- }
1670- line = line.replace(variables[j], val);
1671- }
1672-
1673- document.getElementById(THIEF.conf.id + 'Status' + i).innerHTML = line;
1616+ document.getElementById(THIEF.conf.id + 'Status' + i).innerHTML = THIEF.util.getText(THIEF.conf.statusLineFormat[i]);
16741617 }
16751618 THIEF.html.addDebugMessage('...ステータス画面の更新完了。');
16761619 };
@@ -2543,7 +2486,111 @@
25432486 return revP[0];
25442487 };
25452488
2489+THIEF.util.getText = function() {
2490+ var text;
2491+ var i, j;
25462492
2493+ THIEF.html.addDebugMessage('テキスト変換処理を開始...');
2494+
2495+ if (arguments[0]) {
2496+
2497+ text = arguments[0];
2498+
2499+ // 言語が複数あれば選択
2500+ if (arguments[0][THIEF.conf.language]) {
2501+ text = arguments[0][THIEF.conf.language];
2502+ THIEF.html.addDebugMessage('言語設定はコンフィグ(' + THIEF.conf.language + ')とする。');
2503+ } else {
2504+ for (i = 0; i < THIEF.conf.languagePriolity.length; i++) {
2505+ if (arguments[0][THIEF.conf.languagePriolity[i]]) {
2506+ text = arguments[0][THIEF.conf.languagePriolity[i]];
2507+ THIEF.html.addDebugMessage('言語設定は、優先度 ' + i + ' の ' + THIEF.conf.languagePriolity[i] + ' とする。');
2508+ break;
2509+ }
2510+ }
2511+ }
2512+
2513+ // 書式選択
2514+ // 選択した言語に、複数の書式があるか確認
2515+ if (text.constructor === Array) {
2516+ var num = Math.floor(Math.random() * text.length);
2517+ THIEF.html.addDebugMessage(text.length + ' 個の選択肢から ' + num + ' 番目のテキストを選択');
2518+ text = text[num];
2519+ }
2520+
2521+ // 選択した書式が関数か確認
2522+ if (typeof text === 'function') {
2523+ text = text();
2524+ THIEF.html.addDebugMessage('関数処理を実施。');
2525+ }
2526+
2527+ // ${number} は引数パラメータとして扱う。
2528+ // ${0} をテキストフォーマットに使用しているので、1から開始
2529+ // $<> はエフェクトパラメータとする。(未実装)
2530+ var org = text;
2531+ for (i = 1; i < arguments.length; i++) {
2532+ THIEF.html.addDebugMessage('『' + org + '』の『${' + i + '}』を『' + arguments[i] + '』に置換。');
2533+ text = text.replace('${' + i + '}', arguments[i]);
2534+ }
2535+
2536+ // ${xxx} は動的変数として、内部の構文を解析する
2537+ // 変数内部は、通常の変数のように ドット で区切る
2538+ // %xxx@yyy@zzz% と表記されている部分は関数として処理する
2539+ // @ で区切られた部分は関数の引数とする
2540+ // 例:${THIEF.global.adventurer.%get@name%} &#x2665;:${THIEF.global.adventurer.%get@hp%}
2541+ var variables = text.match(/\$\{[A-Za-z0-9_$.%@]+\}/g);
2542+ if (variables !== null) {
2543+ for (i = 0; i < variables.length; i++) {
2544+ // ${ と } を削除
2545+ var variable = variables[i].slice(2, variables[i].length - 1);
2546+ // ピリオドで分割
2547+ var tree = variable.split('.');
2548+
2549+ // 値格納用変数
2550+ var val = THIEF;
2551+
2552+ // 確認
2553+ // 0 は THIEF なのでパス。(現在は一応確認)
2554+ if (tree[0] !== 'THIEF') {
2555+ alert('変数指定の方法が間違っています。');
2556+ }
2557+ for (j = 1; j < tree.length; j++) {
2558+
2559+ // 変数処理
2560+ if (tree[j].search(/^%.+%$/) === -1) {
2561+ //THIEF.html.addDebugMessage(val + ' -> ' + tree[i]);
2562+ val = val[tree[j]];
2563+ //THIEF.html.addDebugMessage(val)
2564+
2565+ // 関数処理
2566+ } else {
2567+ // 前後の % を削除し、@で分割
2568+ var arguments = tree[j].slice(1, tree[j].length - 1).split('@');
2569+ var args = [];
2570+ var func = arguments[0];
2571+ for (var l = 1; l < arguments.length; l++) {
2572+ args.push(arguments[l]);
2573+ }
2574+ val = val[func].apply(val, args);
2575+
2576+ }
2577+ }
2578+
2579+ if (typeof val === 'undefined') {
2580+ THIEF.html.addDebugMessage(variable + ' は定義されていない');
2581+ } else {
2582+ THIEF.html.addDebugMessage(variable + ' = ' + val.toString());
2583+ }
2584+ text = text.replace(variables[i], val);
2585+ }
2586+ }
2587+
2588+ }
2589+ THIEF.html.addDebugMessage('...テキスト変換処理を完了。');
2590+
2591+ return text;
2592+};
2593+
25472594 THIEF.html = {};
25482595
25492596 THIEF.html.setXy = function(x, y, text) {
@@ -2717,10 +2764,10 @@
27172764 });
27182765
27192766
2720- help += '<tr><td colspan=3>' + THIEF.Data.Keymap.$.ja + '</td></tr>\n';
2767+ help += '<tr><td colspan=3>' + THIEF.util.getText(THIEF.Data.Keymap.$) + '</td></tr>\n';
27212768
27222769 for (var i = 0; i < com.length; i++) {
2723- help += '<tr><td>' + String.fromCharCode(THIEF.Data.Keymap[com[i]].key) + '</td><td>' + com[i] + '</td><td>' + THIEF.Data.Keymap[com[i]].txt.ja + '</td></tr>\n';
2770+ help += '<tr><td>' + String.fromCharCode(THIEF.Data.Keymap[com[i]].key) + '</td><td>' + com[i] + '</td><td>' + THIEF.util.getText(THIEF.Data.Keymap[com[i]].txt) + '</td></tr>\n';
27242771 }
27252772 help += '</table>\n';
27262773 document.getElementById(THIEF.conf.id + 'Footer').innerHTML = help;
@@ -3451,6 +3498,14 @@
34513498 en : 'pickup items from your step.'
34523499 }
34533500 },
3501+ drop : {
3502+ cmd : THIEF.func.command.drop,
3503+ key : THIEF.KEY.d,
3504+ txt : {
3505+ ja : 'アイテムを置く',
3506+ en : 'drop your items.'
3507+ }
3508+ },
34543509 executeCommand : {
34553510 cmd : THIEF.func.command.extendedCommand,
34563511 key : THIEF.KEY.Sharp,
@@ -3461,58 +3516,8 @@
34613516 }
34623517 };
34633518
3519+// TODO
34643520 THIEF.Data.Text = {
3465- $ : function(){
3466- var text;
3467-
3468- THIEF.html.addDebugMessage('テキスト変換処理を開始...');
3469-
3470- // メッセージ ID の確認
3471- if(arguments[0]){
3472-
3473- // 言語選択
3474- if(arguments[0][THIEF.conf.language]){
3475- text = arguments[0][THIEF.conf.language];
3476- THIEF.html.addDebugMessage('言語設定はコンフィグ(' + THIEF.conf.language + ')とする。');
3477- } else {
3478- for (var i=0; i < THIEF.conf.languagePriolity.length; i++) {
3479- if(arguments[0][THIEF.conf.languagePriolity[i]]){
3480- text = arguments[0][THIEF.conf.languagePriolity[i]];
3481- THIEF.html.addDebugMessage('言語設定は、優先度 ' + i + ' の ' + THIEF.conf.languagePriolity[i] + ' とする。');
3482- break;
3483- }
3484- }
3485- }
3486-
3487- // 書式選択
3488- // 選択した言語に、複数の書式があるか確認
3489- if(text.constructor === Array ){
3490- var num = Math.floor(Math.random() * text. length);
3491- THIEF.html.addDebugMessage( text.length + ' 個の選択肢から ' + num + ' 番目のテキストを選択');
3492- text = text[num];
3493- }
3494-
3495- // 選択した書式が関数か確認
3496- if(typeof text === 'function'){
3497- text = text();
3498- THIEF.html.addDebugMessage('関数処理を実施。');
3499- }
3500-
3501- // ${number} は引数パラメータとして扱う。
3502- // ${0} をテキスト ID に使用しているので、1から開始
3503- // $<> はエフェクトパラメータとする。(未実装)
3504- var org = text;
3505- for(var j=1; j<arguments.length; j++){
3506- THIEF.html.addDebugMessage('『' + org + '』の『${' + j + '}』を『' + arguments[j] + '』に置換。');
3507- text = text.replace('${' + j + '}', arguments[j]);
3508- }
3509- }
3510-
3511- THIEF.html.addDebugMessage('...テキスト変換処理を完了。');
3512-
3513- THIEF.html.addMessage(text);
3514- },
3515-
35163521 attack : {
35173522 // 1 : damage
35183523 // 2 : subject
Show on old repository browser