0.0.7-alpha10
・ 階段の昇降処理を追加
@@ -45,7 +45,8 @@ | ||
45 | 45 | languagePriolity : ['en', 'ja'], |
46 | 46 | statusPosition : 'bottom', // top or bottom |
47 | 47 | statusLineFormat : [ |
48 | - '${THIEF.global.adventurer.%get@name%}' + | |
48 | + '${THIEF.global.actDG.%get@name%}:${THIEF.global.actDG.nowLV}' + | |
49 | + ' ${THIEF.global.adventurer.%get@name%}' + | |
49 | 50 | ' ♥:${THIEF.global.adventurer.%get@hp%}' + |
50 | 51 | ' STR:${THIEF.global.adventurer.%get@str%}' + |
51 | 52 | ' CON:${THIEF.global.adventurer.%get@con%}' + |
@@ -438,6 +439,29 @@ | ||
438 | 439 | return result; |
439 | 440 | }; |
440 | 441 | |
442 | +THIEF.func.method.getInventoryRandomFreeSpace = function (obj) { | |
443 | + var point; | |
444 | + var challenge = this.get(THIEF.PROP.inventoryWidth) * this.get(THIEF.PROP.inventoryHeight); | |
445 | + var counter = 0; | |
446 | + while (counter < challenge) { | |
447 | + counter++; | |
448 | + var x = Math.round(Math.random() * this.get(THIEF.PROP.inventoryWidth)); | |
449 | + var y = Math.round(Math.random() * this.get(THIEF.PROP.inventoryHeight)); | |
450 | + point = this.getInventoryFreeSpace(obj, x, y); | |
451 | + | |
452 | + if (typeof point !== 'undefined' && this.inventory[x][y].getLast().type === THIEF.Data.Obj.$Floor.type) { | |
453 | + //if (point.x === 'number' && typeof point.y === 'number') { | |
454 | + break; | |
455 | + } | |
456 | + } | |
457 | + // ランダムに見つからなければ、左上から順に検索 | |
458 | + if (typeof point.x !== 'number' && typeof point.y !== 'number') { | |
459 | + point = this.getInventoryFreeSpace(obj); | |
460 | + } | |
461 | + | |
462 | + return point; | |
463 | +}; | |
464 | + | |
441 | 465 | THIEF.func.method.getInventoryFreeSpace = function(obj, _x, _y) { |
442 | 466 | |
443 | 467 | var invCellSize = this.get(THIEF.PROP.inventoryCellSize) || 10; |
@@ -472,7 +496,6 @@ | ||
472 | 496 | if (this.inventory && this.inventory[targetX] && this.inventory[targetX][targetY]) { |
473 | 497 | if (this.inventory[targetX][targetY].length <= invDepth) { |
474 | 498 | var lastObj = this.inventory[targetX][targetY].getLast(); |
475 | - // TODO | |
476 | 499 | if (lastObj.type !== THIEF.Data.Obj.$Wall.type && (obj.get(THIEF.PROP.stackable) || typeof lastObj === 'undefined' || lastObj.get(THIEF.PROP.stackable)) /* || !lastObj.get(THIEF.PARAM.mergeable) */) { |
477 | 500 | if (lastObj) { |
478 | 501 | THIEF.html.addDebugMessage('[' + targetX + ', ' + targetY + ']にある' + lastObj.get(THIEF.PROP.displayName) + 'には重ねられる。'); |
@@ -1039,7 +1062,7 @@ | ||
1039 | 1062 | } |
1040 | 1063 | |
1041 | 1064 | if (typeof finish === 'undefined') { |
1042 | - if(code !== THIEF.KEY.Esc){ | |
1065 | + if (code !== THIEF.KEY.Esc) { | |
1043 | 1066 | THIEF.html.addMessage(THIEF.util.getText(THIEF.Data.Text.commandNotFound, String.fromCharCode(code))); |
1044 | 1067 | } |
1045 | 1068 | finish = false; |
@@ -1054,6 +1077,20 @@ | ||
1054 | 1077 | return finish; |
1055 | 1078 | }; |
1056 | 1079 | |
1080 | + | |
1081 | +THIEF.func.method.spawn = function (obj) { | |
1082 | + THIEF.html.addDebugMessage('湧き処理を開始...'); | |
1083 | + | |
1084 | + // 空きスペースの検索条件 | |
1085 | + var point = this.getInventoryRandomFreeSpace(obj); | |
1086 | + this.addToInventory(obj, point.x, point.y); | |
1087 | + THIEF.html.refreshXy(obj.x, obj.y); | |
1088 | + THIEF.html.addDebugMessage('...湧き処理を完了'); | |
1089 | + | |
1090 | + return obj; | |
1091 | +}; | |
1092 | + | |
1093 | + | |
1057 | 1094 | THIEF.func.command = {}; // マニュアルコマンドで実行して良いもの |
1058 | 1095 | THIEF.func.command.goUp = function() { |
1059 | 1096 | return this.move(0, -1); |
@@ -1461,13 +1498,12 @@ | ||
1461 | 1498 | return false; |
1462 | 1499 | }; |
1463 | 1500 | |
1464 | -// TODO | |
1465 | -THIEF.func.command.goUpTheStairs = function(){ | |
1501 | +THIEF.func.command.goUpTheStairs = function() { | |
1466 | 1502 | var floor = THIEF.global.actLV.getInventoryXyObjects(this.x, this.y); |
1467 | 1503 | var stairs; |
1468 | 1504 | var flag = false; |
1469 | - for(var i=0; i<floor.length; i++){ | |
1470 | - if(floor[i].symbol === THIEF.Data.Obj.UpStairs.symbol){ | |
1505 | + for (var i = 0; i < floor.length; i++) { | |
1506 | + if (floor[i].symbol === THIEF.Data.Obj.UpStairs.symbol) { | |
1471 | 1507 | flag = true; |
1472 | 1508 | stairs = floor[i]; |
1473 | 1509 | break; |
@@ -1474,22 +1510,48 @@ | ||
1474 | 1510 | } |
1475 | 1511 | } |
1476 | 1512 | |
1477 | - if(flag){ | |
1478 | - THIEF.html.addMessage(THIEF.Data.Text.goUpStairs); | |
1513 | + if (flag) { | |
1514 | + THIEF.html.addMessage(THIEF.util.getText(THIEF.Data.Text.goUpStairs, this.get(THIEF.PROP.displayName))); | |
1479 | 1515 | THIEF.util.createLevel(stairs.nextDun, stairs.nextLv); |
1480 | 1516 | THIEF.global.actLV.removeFromInventory(this); |
1481 | 1517 | THIEF.global.actDG = stairs.nextDun; |
1482 | - THIEF.global.actLV = stairs.nextLv; | |
1483 | - THIEF.global.actLV.addToInventory(this); | |
1518 | + THIEF.global.actDG.nowLV = stairs.nextLv; | |
1519 | + THIEF.global.actLV = stairs.nextDun[stairs.nextLv]; | |
1520 | + THIEF.global.actLV.addToInventory(this, THIEF.global.actLV.downStairsPoint.x, THIEF.global.actLV.downStairsPoint.y); | |
1521 | + THIEF.html.refresh(); | |
1484 | 1522 | } else { |
1485 | - THIEF.html.addMessage(THIEF.Data.Text.doesNotGoUpStairs); | |
1523 | + THIEF.html.addMessage(THIEF.util.getText(THIEF.Data.Text.doesNotGoUpStairs)); | |
1486 | 1524 | } |
1487 | 1525 | |
1488 | 1526 | return flag; |
1489 | 1527 | }; |
1490 | 1528 | |
1491 | -THIEF.func.command.goDownTheStairs = function(){ | |
1529 | +THIEF.func.command.goDownTheStairs = function() { | |
1530 | + var floor = THIEF.global.actLV.getInventoryXyObjects(this.x, this.y); | |
1531 | + var stairs; | |
1532 | + var flag = false; | |
1533 | + for (var i = 0; i < floor.length; i++) { | |
1534 | + if (floor[i].symbol === THIEF.Data.Obj.DownStairs.symbol) { | |
1535 | + flag = true; | |
1536 | + stairs = floor[i]; | |
1537 | + break; | |
1538 | + } | |
1539 | + } | |
1492 | 1540 | |
1541 | + if (flag) { | |
1542 | + THIEF.html.addMessage(THIEF.util.getText(THIEF.Data.Text.goDownStairs, this.get(THIEF.PROP.displayName))); | |
1543 | + THIEF.util.createLevel(stairs.nextDun, stairs.nextLv); | |
1544 | + THIEF.global.actLV.removeFromInventory(this); | |
1545 | + THIEF.global.actDG = stairs.nextDun; | |
1546 | + THIEF.global.actDG.nowLV = stairs.nextLv; | |
1547 | + THIEF.global.actLV = stairs.nextDun[stairs.nextLv]; | |
1548 | + THIEF.global.actLV.addToInventory(this, THIEF.global.actLV.upStairsPoint.x, THIEF.global.actLV.upStairsPoint.y); | |
1549 | + THIEF.html.refresh(); | |
1550 | + } else { | |
1551 | + THIEF.html.addMessage(THIEF.util.getText(THIEF.Data.Text.doesNotGoDownStairs)); | |
1552 | + } | |
1553 | + | |
1554 | + return flag; | |
1493 | 1555 | }; |
1494 | 1556 | |
1495 | 1557 | THIEF.util = {}; |
@@ -1545,10 +1607,9 @@ | ||
1545 | 1607 | THIEF.global.adventurer.inventoryWidth = 10; |
1546 | 1608 | THIEF.global.adventurer.inventoryCellSize = 1; |
1547 | 1609 | THIEF.global.adventurer.ct = 100; |
1610 | + var point = THIEF.global.actLV.getInventoryRandomFreeSpace(THIEF.global.adventurer); | |
1611 | + THIEF.global.actLV.addToInventory(THIEF.global.adventurer, point.x, point.y); | |
1548 | 1612 | |
1549 | - THIEF.global.actLV.addToInventory(THIEF.global.adventurer); | |
1550 | - | |
1551 | - | |
1552 | 1613 | var tmp; |
1553 | 1614 | tmp = THIEF.util.factory(THIEF.Data.Obj.DebugDagger); |
1554 | 1615 | tmp.alphabet = 'k'; |
@@ -1557,11 +1618,11 @@ | ||
1557 | 1618 | tmp.alphabet = 'r'; |
1558 | 1619 | THIEF.global.adventurer.addToInventory(tmp); |
1559 | 1620 | |
1560 | - THIEF.util.spawn(THIEF.Data.Obj.DebugDaemon); | |
1561 | - THIEF.util.spawn(THIEF.Data.Obj.DebugDaemon); | |
1562 | - THIEF.util.spawn(THIEF.Data.Obj.DebugDaemon); | |
1563 | - THIEF.util.spawn(THIEF.Data.Obj.DebugHighArmor); | |
1564 | - THIEF.util.spawn(THIEF.Data.Obj.DebugHighDagger); | |
1621 | + //THIEF.global.actLV.spawn(THIEF.util.factory(THIEF.Data.Obj.DebugDaemon)); | |
1622 | + //THIEF.global.actLV.spawn(THIEF.util.factory(THIEF.Data.Obj.DebugDaemon)); | |
1623 | + //THIEF.global.actLV.spawn(THIEF.util.factory(THIEF.Data.Obj.DebugDaemon)); | |
1624 | + THIEF.global.actLV.spawn(THIEF.util.factory(THIEF.Data.Obj.DebugHighArmor)); | |
1625 | + THIEF.global.actLV.spawn(THIEF.util.factory(THIEF.Data.Obj.DebugHighDagger)); | |
1565 | 1626 | |
1566 | 1627 | }; |
1567 | 1628 |
@@ -1591,7 +1652,7 @@ | ||
1591 | 1652 | |
1592 | 1653 | // 各レベルに実施させること |
1593 | 1654 | if (Math.random() > 0.9) { |
1594 | - THIEF.util.spawn(THIEF.Data.Obj.DebugDaemon); | |
1655 | + THIEF.global.actLV.spawn(THIEF.util.factory(THIEF.Data.Obj.DebugDaemon)); | |
1595 | 1656 | } |
1596 | 1657 | } else { |
1597 | 1658 | THIEF.html.addDebugMessage('<em>ターン:' + THIEF.global.turn + ' を再開</em>...'); |
@@ -1949,12 +2010,19 @@ | ||
1949 | 2010 | } |
1950 | 2011 | } |
1951 | 2012 | } |
2013 | + | |
2014 | + dun.get = THIEF.func.method.get; | |
2015 | + | |
1952 | 2016 | THIEF.html.addDebugMessage('...ダンジョンの作成を完了'); |
1953 | 2017 | }; |
1954 | 2018 | |
1955 | -// TODO | |
1956 | 2019 | THIEF.util.createLevel = function(dun, lvNum) { |
1957 | - THIEF.html.addDebugMessage(THIEF.func.method.get.call(dun, THIEF.PROP.name) + 'の第 ' + lvNum + ' レベルを作成...'); | |
2020 | + if (dun[lvNum] && dun[lvNum].created) { | |
2021 | + THIEF.html.addDebugMessage(THIEF.func.method.get.call(dun, THIEF.PROP.name) + 'の第 ' + lvNum + ' レベルは既に作成済み'); | |
2022 | + return; | |
2023 | + } else { | |
2024 | + THIEF.html.addDebugMessage(THIEF.func.method.get.call(dun, THIEF.PROP.name) + 'の第 ' + lvNum + ' レベルを作成...'); | |
2025 | + } | |
1958 | 2026 | |
1959 | 2027 | var level = THIEF.util.factory(THIEF.Data.Obj.$Level); |
1960 | 2028 | level[THIEF.PROP.inventoryWidth] = dun.width || THIEF.Data.Scenario.$.width || 60; |
@@ -1962,9 +2030,10 @@ | ||
1962 | 2030 | level[THIEF.PROP.inventoryDepth] = dun.depth || THIEF.Data.Scenario.$.depth || 256; |
1963 | 2031 | level.inventoryCellSize = 1; |
1964 | 2032 | |
2033 | + var template = {}; | |
2034 | + | |
1965 | 2035 | if (dun[lvNum]) { |
1966 | 2036 | THIEF.html.addDebugMessage('個別シナリオのテンプレート展開...'); |
1967 | - var template = {}; | |
1968 | 2037 | |
1969 | 2038 | // レベル系テンプレートの読み込み |
1970 | 2039 | if (dun[lvNum].level) { |
@@ -1985,49 +2054,56 @@ | ||
1985 | 2054 | // 特殊分岐実装予定 |
1986 | 2055 | } |
1987 | 2056 | |
1988 | - // テンプレートに基づいて処理を実行 | |
1989 | - // for (name in obj) は、オンオフの処理が後々面倒になりそうなので、 | |
1990 | - // ここで逐次処理にする | |
1991 | - if(template.map) { | |
1992 | - level.inventory = THIEF.util.mapParser(template.map); | |
1993 | - level[THIEF.PROP.inventoryWidth] = level.inventory.length; | |
1994 | - level[THIEF.PROP.inventoryHeight] = level.inventory[0].length; | |
1995 | - } else { | |
1996 | - level.inventory = THIEF.util.createMap(level[THIEF.PROP.inventoryWidth], level[THIEF.PROP.inventoryHeight]); | |
1997 | - } | |
1998 | 2057 | |
1999 | - var stairs; | |
2000 | - var point; | |
2001 | - if(template.upStairs){ | |
2058 | + THIEF.html.addDebugMessage('...展開完了。'); | |
2059 | + } else { | |
2060 | + // テンプレートがなければ、とりあえずマップサイズのみ指定 | |
2061 | + template.width = level[THIEF.PROP.inventoryWidth]; | |
2062 | + template.height = level[THIEF.PROP.inventoryHeight]; | |
2063 | + } | |
2002 | 2064 | |
2003 | - } else { | |
2065 | + | |
2066 | + // テンプレートに基づいて処理を実行 | |
2067 | + // for (name in obj) は、オンオフの処理が後々面倒になりそうなので、 | |
2068 | + // ここで逐次処理にする | |
2069 | + if (template.map) { | |
2070 | + level.inventory = THIEF.util.mapParser(template.map); | |
2071 | + level[THIEF.PROP.inventoryWidth] = level.inventory.length; | |
2072 | + level[THIEF.PROP.inventoryHeight] = level.inventory[0].length; | |
2073 | + } else { | |
2074 | + level.inventory = THIEF.util.createMap(level[THIEF.PROP.inventoryWidth], level[THIEF.PROP.inventoryHeight]); | |
2075 | + } | |
2076 | + | |
2077 | + var stairs; | |
2078 | + var point; | |
2079 | + | |
2080 | + if (template.upStairs) { | |
2081 | + | |
2082 | + } else { | |
2083 | + if (lvNum > 1) { | |
2004 | 2084 | stairs = THIEF.util.factory(THIEF.Data.Obj.UpStairs); |
2005 | 2085 | stairs.nextDun = THIEF.global.actDG; |
2006 | - stairs.nextLv = THIEF.global.actDG.nowLV +1; | |
2007 | - point = level.getInventoryFreeSpace(stairs); | |
2086 | + stairs.nextLv = lvNum - 1; | |
2087 | + point = level.getInventoryRandomFreeSpace(stairs); | |
2008 | 2088 | level.addToInventory(stairs, point.x, point.y); |
2089 | + level.upStairsPoint = point; | |
2009 | 2090 | } |
2091 | + } | |
2010 | 2092 | |
2011 | - if(template.downStairs){ | |
2093 | + if (template.downStairs) { | |
2012 | 2094 | |
2013 | - } else { | |
2095 | + } else { | |
2096 | + if (lvNum <= THIEF.global.actDG.levelNum) { | |
2014 | 2097 | stairs = THIEF.util.factory(THIEF.Data.Obj.DownStairs); |
2015 | 2098 | stairs.nextDun = THIEF.global.actDG; |
2016 | - stairs.nextLv = THIEF.global.actDG.nowLV -1; | |
2017 | - point = level.getInventoryFreeSpace(stairs); | |
2099 | + stairs.nextLv = lvNum + 1; | |
2100 | + point = level.getInventoryRandomFreeSpace(stairs); | |
2018 | 2101 | level.addToInventory(stairs, point.x, point.y); |
2102 | + level.downStairsPoint = point; | |
2019 | 2103 | } |
2020 | - | |
2021 | - THIEF.html.addDebugMessage('...展開完了。'); | |
2022 | - } else { | |
2023 | - // 個別シナリオがないのであれば自動生成 | |
2024 | - level.inventory = THIEF.util.createMap(level[THIEF.PROP.inventoryWidth], level[THIEF.PROP.inventoryHeight]); | |
2025 | 2104 | } |
2026 | 2105 | |
2027 | - if (dun[lvNum].branch) { | |
2028 | - | |
2029 | - } | |
2030 | - | |
2106 | + level.created = true; | |
2031 | 2107 | dun[lvNum] = level; |
2032 | 2108 | |
2033 | 2109 | THIEF.html.addDebugMessage('...レベルの作成を完了'); |
@@ -2394,25 +2470,25 @@ | ||
2394 | 2470 | return map; |
2395 | 2471 | }; |
2396 | 2472 | |
2397 | -THIEF.util.mapParser = function(fmt){ | |
2473 | +THIEF.util.mapParser = function(fmt) { | |
2398 | 2474 | var width = fmt[0].length; |
2399 | 2475 | var height = fmt.length; |
2400 | 2476 | var map = []; |
2401 | 2477 | |
2402 | - for(var h=0; h<height; h++){ | |
2403 | - for(var w=0; w<width; w++){ | |
2478 | + for (var h = 0; h < height; h++) { | |
2479 | + for (var w = 0; w < width; w++) { | |
2404 | 2480 | switch (fmt[h].charAt(w)) { |
2405 | 2481 | case '.': |
2406 | - if(typeof map[w] === 'undefined'){ | |
2482 | + if (typeof map[w] === 'undefined') { | |
2407 | 2483 | map[w] = []; |
2408 | 2484 | } |
2409 | - if(typeof map[w][h] === 'undefined'){ | |
2485 | + if (typeof map[w][h] === 'undefined') { | |
2410 | 2486 | map[w][h] = []; |
2411 | 2487 | } |
2412 | 2488 | map[w][h].push(THIEF.util.factory(THIEF.Data.Obj.LitFloor)); |
2413 | 2489 | break; |
2414 | 2490 | default: |
2415 | - THIEF.html.addDebugMessage( map[h].charAt(w) + 'はまだ対応していない。'); | |
2491 | + THIEF.html.addDebugMessage(map[h].charAt(w) + 'はまだ対応していない。'); | |
2416 | 2492 | break; |
2417 | 2493 | } |
2418 | 2494 | } |
@@ -2422,7 +2498,7 @@ | ||
2422 | 2498 | // 外枠を追加 |
2423 | 2499 | var left = []; |
2424 | 2500 | var right = []; |
2425 | - for(var i=0; i<height; i++){ | |
2501 | + for (var i = 0; i < height; i++) { | |
2426 | 2502 | left[i] = []; |
2427 | 2503 | right[i] = []; |
2428 | 2504 | left[i].push(THIEF.util.factory(THIEF.Data.Obj.NonDiggableWall)); |
@@ -2431,49 +2507,15 @@ | ||
2431 | 2507 | map.unshift(left); |
2432 | 2508 | map.push(right); |
2433 | 2509 | |
2434 | - for(var j=0; j<map.length; j++){ | |
2510 | + for (var j = 0; j < map.length; j++) { | |
2435 | 2511 | map[j].unshift([]); |
2436 | 2512 | map[j].push([]); |
2437 | 2513 | map[j][0].push(THIEF.util.factory(THIEF.Data.Obj.NonDiggableWall)); |
2438 | - map[j][height+1].push(THIEF.util.factory(THIEF.Data.Obj.NonDiggableWall)); | |
2514 | + map[j][height + 1].push(THIEF.util.factory(THIEF.Data.Obj.NonDiggableWall)); | |
2439 | 2515 | } |
2440 | 2516 | return map; |
2441 | 2517 | }; |
2442 | 2518 | |
2443 | -THIEF.util.spawn = function (obj) { | |
2444 | - THIEF.html.addDebugMessage('湧き処理を開始...'); | |
2445 | - | |
2446 | - var monster = null; | |
2447 | - THIEF.html.addDebugMessage('オブジェクトの複製'); | |
2448 | - if (typeof obj === 'undefined') { | |
2449 | - // 条件に応じた対象を選択すること | |
2450 | - monster = THIEF.util.factory(THIEF.Data.Obj.DebugDaemon); | |
2451 | - } else { | |
2452 | - monster = THIEF.util.factory(obj); | |
2453 | - } | |
2454 | - | |
2455 | - // 空きスペースの検索条件 | |
2456 | - var point; | |
2457 | - while (true) { | |
2458 | - var x = Math.round(Math.random() * THIEF.global.actLV.get(THIEF.PROP.inventoryWidth)); | |
2459 | - var y = Math.round(Math.random() * THIEF.global.actLV.get(THIEF.PROP.inventoryHeight)); | |
2460 | - point = THIEF.global.actLV.getInventoryFreeSpace(monster, x, y); | |
2461 | - | |
2462 | - if (typeof point !== 'undefined' && THIEF.global.actLV.inventory[x][y].getLast().isBasedOn(THIEF.Data.Obj.LitFloor)) { | |
2463 | - //if (point.x === 'number' && typeof point.y === 'number') { | |
2464 | - break; | |
2465 | - } | |
2466 | - | |
2467 | - } | |
2468 | - if (typeof point.x !== 'number' && typeof point.y !== 'number') { | |
2469 | - point = THIEF.global.actLV.getInventoryFreeSpace(monster); | |
2470 | - } | |
2471 | - | |
2472 | - THIEF.global.actLV.addToInventory(monster, point.x, point.y); | |
2473 | - THIEF.html.refreshXy(monster.x, monster.y); | |
2474 | - THIEF.html.addDebugMessage('...湧き処理を完了') | |
2475 | -}; | |
2476 | - | |
2477 | 2519 | THIEF.util.infixToRevP = function (val) { |
2478 | 2520 | //var val = '2d100 * (2 + 15) + Math.max(3, 4) + (Math.round(11.2) * Math.PI + 6)'; |
2479 | 2521 | //var val = '2d100*(2+15)+Math.max(3,4)+(Math.round(11.2)*Math.PI+6)'; |
@@ -2807,7 +2849,7 @@ | ||
2807 | 2849 | |
2808 | 2850 | |
2809 | 2851 | THIEF.html.refreshXy = function(x, y) { |
2810 | - if(THIEF.global.actLV.inventory[x] && THIEF.global.actLV.inventory[x][y]){ | |
2852 | + if (THIEF.global.actLV.inventory[x] && THIEF.global.actLV.inventory[x][y]) { | |
2811 | 2853 | var obj = THIEF.global.actLV.inventory[x][y].getLast(); |
2812 | 2854 | if (obj.color) { |
2813 | 2855 | THIEF.html.setXy(x, y, '<span style="color:' + obj.color + ';">' + obj.symbol + '</span>'); |
@@ -3909,6 +3951,14 @@ | ||
3909 | 3951 | cmd : THIEF.func.command.extendedCommand, |
3910 | 3952 | key : THIEF.KEY.Sharp, |
3911 | 3953 | text : THIEF.Data.Text.cmdExecuteCommandDesc |
3954 | + }, | |
3955 | + goUpStairs : { | |
3956 | + cmd : THIEF.func.command.goUpTheStairs, | |
3957 | + key : THIEF.KEY.LT | |
3958 | + }, | |
3959 | + goDownStairs : { | |
3960 | + cmd : THIEF.func.command.goDownTheStairs, | |
3961 | + key : THIEF.KEY.GT | |
3912 | 3962 | } |
3913 | 3963 | }; |
3914 | 3964 |