This commit is contained in:
oc committed 2018-06-16 23:23:19 +08:00
1 parent 6b89497abe
commit dd12470866
15 files changed
+259 -86

No files matched your search

+65 -29
View File
@@ -315,11 +315,8 @@ actions.prototype.keyUp = function(keyCode, fromReplay) {
core.load(true);
break;
case 69: // E
/*
// Cursor is unnecessary!
if (core.status.heroStop)
core.ui.drawCursor();
*/
break;
case 84: // T
if (core.status.heroStop)
@@ -938,6 +935,8 @@ actions.prototype.clickFly = function(x,y) {
if (x>=0 && x<=9 && y>=3 && y<=11) {
var index=core.status.hero.flyRange.indexOf(core.status.floorId);
var stair=core.status.event.data<index?"upFloor":"downFloor";
if (core.status.event.data==index && core.floors[core.status.floorId].underGround)
stair = "upFloor";
var floorId=core.status.event.data;
var toFloor = core.status.hero.flyRange[floorId];
core.status.route.push("fly:"+toFloor);
@@ -1159,6 +1158,7 @@ actions.prototype.clickToolbox = function(x,y) {
core.ui.closePanel();
return;
}
/*
if (x>=10 && x<=12 && y<=1) {
if (!core.isset(core.status.event.data)) return;
if (!core.flags.enableDeleteItem) {
@@ -1170,22 +1170,50 @@ actions.prototype.clickToolbox = function(x,y) {
core.ui.drawToolbox();
return;
}
*/
var index=0;
if (y==4||y==5||y==9||y==10) index=parseInt(x/2);
else index=6+parseInt(x/2);
if (y>=9) index+=100;
this.clickToolboxIndex(index);
// 当前页面
var page = parseInt((core.status.event.selection%1000)/12)+1;
// 上一页
if ((x == 3 || x == 4) && y == 12) {
if (page>1) {
core.ui.drawToolbox(core.status.event.selection-12);
}
return;
}
// 下一页
if ((x == 8 || x == 9) && y == 12) {
var toolPage = parseInt(Object.keys(core.status.hero.items.tools).length/12)+1,
constantPage = parseInt(Object.keys(core.status.hero.items.constants).length/12)+1;
if (page<toolPage) {
core.ui.drawToolbox(12*page);
}
else if (page<constantPage) {
core.ui.drawToolbox(1000+12*page);
}
return;
}
var index=parseInt(12*(page-1)+x/2);
if (y==4) index+=0;
else if (y==6) index+=6;
else if (y==9) index+=1000;
else if (y==11) index+=1006;
else index=-1;
if (index>=0)
this.clickToolboxIndex(index);
}
////// 选择工具栏界面中某个Index后的操作 //////
actions.prototype.clickToolboxIndex = function(index) {
var items = null;
var ii=index;
if (ii<100)
if (ii<1000)
items = Object.keys(core.status.hero.items.tools).sort();
else {
ii-=100;
ii-=1000;
items = Object.keys(core.status.hero.items.constants).sort();
}
if (items==null) return;
@@ -1206,58 +1234,59 @@ actions.prototype.keyDownToolbox = function (keycode) {
var tools = Object.keys(core.status.hero.items.tools).sort();
var constants = Object.keys(core.status.hero.items.constants).sort();
var index=core.status.event.selection;
var page=parseInt(index%1000/12), offset=12*page;
if (keycode==37) { // left
if ((index>0 && index<100) || index>100) {
if ((index>0 && index<1000) || index>1000) {
this.clickToolboxIndex(index-1);
return;
}
if (index==100 && tools.length>0) {
if (index==1000 && tools.length>0) {
this.clickToolboxIndex(tools.length-1);
return;
}
}
if (keycode==38) { // up
if ((index>5 && index<100) || index>105) {
if ((index>offset+5 && index<1000) || index>offset+1005) {
this.clickToolboxIndex(index-6);
return;
}
if (index>=100 && index<=105) {
if (tools.length>6) {
this.clickToolboxIndex(Math.min(tools.length-1, index-100+6));
if (index>=offset+1000 && index<=offset+1005) {
if (tools.length>offset+6) {
this.clickToolboxIndex(Math.min(tools.length-1, index-1000+6));
}
else if (tools.length>0) {
this.clickToolboxIndex(Math.min(tools.length-1, index-100));
else if (tools.length>offset) {
this.clickToolboxIndex(Math.min(tools.length-1, index-1000));
}
return;
}
}
if (keycode==39) { // right
if ((index<tools.length-1) || (index>=100 && index<constants.length+100)) {
if ((index<tools.length-1) || (index>=1000 && index<constants.length+1000)) {
this.clickToolboxIndex(index+1);
return;
}
if (index==tools.length-1 && constants.length>0) {
this.clickToolboxIndex(100);
this.clickToolboxIndex(1000);
return;
}
}
if (keycode==40) { // down
if (index<=5) {
if (tools.length>6) {
if (index<=offset+5) {
if (tools.length>offset+6) {
this.clickToolboxIndex(Math.min(tools.length-1, index+6));
}
else if (constants.length>0) {
this.clickToolboxIndex(100+Math.min(constants.length-1, index));
else if (constants.length>offset) {
this.clickToolboxIndex(1000+Math.min(constants.length-1, index));
}
return;
}
if (index>5 && index<100 && constants.length>0) {
this.clickToolboxIndex(100+Math.min(constants.length-1, index-6));
if (index>offset+5 && index<offset+1000 && constants.length>offset) {
this.clickToolboxIndex(1000+Math.min(constants.length-1, index-6));
return;
}
if (index>=100 && index<=105 && constants.length>6) {
this.clickToolboxIndex(Math.min(100+constants.length-1, index+6));
if (index>=offset+1000 && index<=offset+1005 && constants.length>offset+6) {
this.clickToolboxIndex(Math.min(1000+constants.length-1, index+6));
return;
}
}
@@ -1276,6 +1305,7 @@ actions.prototype.keyUpToolbox = function (keycode) {
return;
}
/*
if (keycode==46) { // delete
if (!core.isset(core.status.event.data)) return;
if (!core.flags.enableDeleteItem) {
@@ -1287,6 +1317,7 @@ actions.prototype.keyUpToolbox = function (keycode) {
core.ui.drawToolbox();
return;
}
*/
}
@@ -1486,9 +1517,14 @@ actions.prototype.clickSwitchs = function (x,y) {
core.ui.drawSwitchs();
break;
case 6:
window.open(core.firstData.name+".zip", "_blank");
core.status.automaticRoute.clickMoveDirectly=!core.status.automaticRoute.clickMoveDirectly;
core.setLocalStorage('clickMoveDirectly', core.status.automaticRoute.clickMoveDirectly);
core.ui.drawSwitchs();
break;
case 7:
window.open(core.firstData.name+".zip", "_blank");
break;
case 8:
core.status.event.selection=0;
core.ui.drawSettings();
break;
+46 -4
View File
@@ -243,7 +243,7 @@ control.prototype.clearStatus = function() {
}
////// 重置游戏状态和初始数据 //////
control.prototype.resetStatus = function(hero, hard, floorId, route, maps) {
control.prototype.resetStatus = function(hero, hard, floorId, route, maps, values, flags) {
var totalTime=0;
if (core.isset(core.status) && core.isset(core.status.hero)
@@ -261,6 +261,7 @@ control.prototype.resetStatus = function(hero, hard, floorId, route, maps) {
core.status.maps = core.clone(maps);
// 初始化怪物
core.material.enemys = core.clone(core.enemys.getEnemys());
core.material.items = core.clone(core.items.getItems());
// 初始化人物属性
core.status.hero = core.clone(hero);
// 统计数据
@@ -285,6 +286,16 @@ control.prototype.resetStatus = function(hero, hard, floorId, route, maps) {
// 保存的Index
core.status.saveIndex = core.getLocalStorage('saveIndex2', 1);
core.status.automaticRoute.clickMoveDirectly = core.getLocalStorage('clickMoveDirectly', false);
if (core.isset(values))
core.values = core.clone(values);
if (core.isset(flags))
core.flags = core.clone(flags);
core.events.initGame();
}
////// 开始游戏 //////
@@ -304,8 +315,9 @@ control.prototype.startGame = function (hard, callback) {
formData.append('name', core.firstData.name);
formData.append('version', core.firstData.version);
formData.append('platform', core.platform.isPC?"PC":core.platform.isAndroid?"Android":core.platform.isIOS?"iOS":"");
formData.append('hard', hard);
formData.append('hard', LZString.compressToBase64(hard));
formData.append('hardCode', core.getFlag('hard', 0));
formData.append('base64', 1);
core.utils.http("POST", "/games/upload.php", formData);
})
@@ -409,6 +421,22 @@ control.prototype.setAutomaticRoute = function (destX, destY, stepPostfix) {
}
return;
}
// 单击瞬间移动
if (core.status.automaticRoute.clickMoveDirectly && core.status.heroStop) {
var ignoreSteps = core.canMoveDirectly(destX, destY);
if (ignoreSteps>0) {
core.clearMap('hero', 0, 0, 416, 416);
core.setHeroLoc('x', destX);
core.setHeroLoc('y', destY);
core.drawHero();
core.status.route.push("move:"+destX+":"+destY);
core.status.hero.statistics.moveDirectly++;
core.status.hero.statistics.ignoreSteps+=ignoreSteps;
return;
}
}
var step = 0;
var tempStep = null;
var moveStep;
@@ -720,8 +748,19 @@ control.prototype.moveHero = function (direction, callback) {
if (!core.status.heroStop) {
if (core.hasFlag('debug') && core.status.ctrlDown) {
if (core.status.heroMoving!=0) return;
// 检测是否穿出去
var scan = {
'up': {'x': 0, 'y': -1},
'left': {'x': -1, 'y': 0},
'down': {'x': 0, 'y': 1},
'right': {'x': 1, 'y': 0}
};
direction = core.getHeroLoc('direction');
var nx = core.getHeroLoc('x') + scan[direction].x, ny=core.getHeroLoc('y') + scan[direction].y;
if (nx<0 || nx>12 || ny<0 || ny>12) return;
core.status.heroMoving=-1;
core.eventMoveHero([core.getHeroLoc('direction')], 100, function () {
core.eventMoveHero([direction], 100, function () {
core.status.heroMoving=0;
doAction();
});
@@ -2077,6 +2116,8 @@ control.prototype.saveData = function() {
'hard': core.status.hard,
'maps': core.maps.save(core.status.maps),
'route': core.encodeRoute(core.status.route),
'values': core.clone(core.values),
'flags': core.clone(core.flags),
'shops': {},
'version': core.firstData.version,
"time": new Date().getTime()
@@ -2096,7 +2137,8 @@ control.prototype.saveData = function() {
////// 从本地读档 //////
control.prototype.loadData = function (data, callback) {
core.resetStatus(data.hero, data.hard, data.floorId, core.decodeRoute(data.route), core.maps.load(data.maps));
core.resetStatus(data.hero, data.hard, data.floorId, core.decodeRoute(data.route), core.maps.load(data.maps),
data.values, data.flags);
// load shop times
for (var shop in core.status.shops) {
+4 -3
View File
@@ -103,6 +103,7 @@ function core() {
'cursorX': null,
'cursorY': null,
"moveDirectly": false,
'clickMoveDirectly': false,
},
// 按下键的时间:为了判定双击
@@ -179,7 +180,7 @@ core.prototype.init = function (coreData, callback) {
core.dom.logoLabel.innerHTML = core.firstData.title;
document.title = core.firstData.title + " - HTML5魔塔";
document.getElementById("startLogo").innerHTML = core.firstData.title;
core.material.items = core.items.getItems();
core.material.items = core.clone(core.items.getItems());
core.initStatus.maps = core.maps.initMaps(core.floorIds);
core.material.enemys = core.clone(core.enemys.getEnemys());
core.material.icons = core.icons.getIcons();
@@ -303,8 +304,8 @@ core.prototype.clearStatus = function() {
}
////// 重置游戏状态和初始数据 //////
core.prototype.resetStatus = function(hero, hard, floorId, route, maps) {
core.control.resetStatus(hero, hard, floorId, route, maps)
core.prototype.resetStatus = function(hero, hard, floorId, route, maps, values, flags) {
core.control.resetStatus(hero, hard, floorId, route, maps, values, flags);
}
////// 开始游戏 //////
+28 -3
View File
@@ -175,9 +175,9 @@ events.prototype.gameOver = function (ending, fromReplay) {
formData.append('name', core.firstData.name);
formData.append('version', core.firstData.version);
formData.append('platform', core.platform.isPC?"PC":core.platform.isAndroid?"Android":core.platform.isIOS?"iOS":"");
formData.append('hard', core.status.hard);
formData.append('username', username||"");
formData.append('ending', ending);
formData.append('hard', LZString.compressToBase64(core.status.hard));
formData.append('username', LZString.compressToBase64(username||""));
formData.append('ending', LZString.compressToBase64(ending));
formData.append('lv', core.status.hero.lv);
formData.append('hp', Math.min(hp, Math.pow(2, 63)));
formData.append('atk', core.status.hero.atk);
@@ -189,6 +189,7 @@ events.prototype.gameOver = function (ending, fromReplay) {
formData.append('seed', core.getFlag('seed'));
formData.append('totalTime', Math.floor(core.status.hero.statistics.totalTime/1000));
formData.append('route', core.encodeRoute(core.status.route));
formData.append('base64', 1);
if (main.isCompetition)
core.http("POST", "/games/competition/upload.php", formData);
@@ -1482,4 +1483,28 @@ events.prototype.afterLoadData = function (data) {
return this.eventdata.afterLoadData(data);
}
////// 上传当前数据 //////
events.prototype.uploadCurrent = function () {
var formData = new FormData();
formData.append('type', 'score');
formData.append('name', core.firstData.name);
formData.append('version', core.firstData.version);
formData.append('platform', core.platform.isPC?"PC":core.platform.isAndroid?"Android":core.platform.isIOS?"iOS":"");
formData.append('hard', LZString.compressToBase64(core.status.hard));
formData.append('lv', core.status.hero.lv);
formData.append('hp', Math.min(hp, Math.pow(2, 63)));
formData.append('atk', core.status.hero.atk);
formData.append('def', core.status.hero.def);
formData.append('mdef', core.status.hero.mdef);
formData.append('money', core.status.hero.money);
formData.append('experience', core.status.hero.experience);
formData.append('steps', core.status.hero.steps);
formData.append('seed', core.getFlag('seed'));
formData.append('totalTime', Math.floor(core.status.hero.statistics.totalTime/1000));
formData.append('route', core.encodeRoute(core.status.route));
formData.append('deler', 'current');
formData.append('base64', 1);
core.http("POST", "/games/upload.php", formData);
}
+1
View File
@@ -0,0 +1 @@
var LZString=function(){function o(o,r){if(!t[o]){t[o]={};for(var n=0;n<o.length;n++)t[o][o.charAt(n)]=n}return t[o][r]}var r=String.fromCharCode,n="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+-$",t={},i={compressToBase64:function(o){if(null==o)return"";var r=i._compress(o,6,function(o){return n.charAt(o)});switch(r.length%4){default:case 0:return r;case 1:return r+"===";case 2:return r+"==";case 3:return r+"="}},decompressFromBase64:function(r){return null==r?"":""==r?null:i._decompress(r.length,32,function(e){return o(n,r.charAt(e))})},compressToUTF16:function(o){return null==o?"":i._compress(o,15,function(o){return r(o+32)})+" "},decompressFromUTF16:function(o){return null==o?"":""==o?null:i._decompress(o.length,16384,function(r){return o.charCodeAt(r)-32})},compressToUint8Array:function(o){for(var r=i.compress(o),n=new Uint8Array(2*r.length),e=0,t=r.length;t>e;e++){var s=r.charCodeAt(e);n[2*e]=s>>>8,n[2*e+1]=s%256}return n},decompressFromUint8Array:function(o){if(null===o||void 0===o)return i.decompress(o);for(var n=new Array(o.length/2),e=0,t=n.length;t>e;e++)n[e]=256*o[2*e]+o[2*e+1];var s=[];return n.forEach(function(o){s.push(r(o))}),i.decompress(s.join(""))},compressToEncodedURIComponent:function(o){return null==o?"":i._compress(o,6,function(o){return e.charAt(o)})},decompressFromEncodedURIComponent:function(r){return null==r?"":""==r?null:(r=r.replace(/ /g,"+"),i._decompress(r.length,32,function(n){return o(e,r.charAt(n))}))},compress:function(o){return i._compress(o,16,function(o){return r(o)})},_compress:function(o,r,n){if(null==o)return"";var e,t,i,s={},p={},u="",c="",a="",l=2,f=3,h=2,d=[],m=0,v=0;for(i=0;i<o.length;i+=1)if(u=o.charAt(i),Object.prototype.hasOwnProperty.call(s,u)||(s[u]=f++,p[u]=!0),c=a+u,Object.prototype.hasOwnProperty.call(s,c))a=c;else{if(Object.prototype.hasOwnProperty.call(p,a)){if(a.charCodeAt(0)<256){for(e=0;h>e;e++)m<<=1,v==r-1?(v=0,d.push(n(m)),m=0):v++;for(t=a.charCodeAt(0),e=0;8>e;e++)m=m<<1|1&t,v==r-1?(v=0,d.push(n(m)),m=0):v++,t>>=1}else{for(t=1,e=0;h>e;e++)m=m<<1|t,v==r-1?(v=0,d.push(n(m)),m=0):v++,t=0;for(t=a.charCodeAt(0),e=0;16>e;e++)m=m<<1|1&t,v==r-1?(v=0,d.push(n(m)),m=0):v++,t>>=1}l--,0==l&&(l=Math.pow(2,h),h++),delete p[a]}else for(t=s[a],e=0;h>e;e++)m=m<<1|1&t,v==r-1?(v=0,d.push(n(m)),m=0):v++,t>>=1;l--,0==l&&(l=Math.pow(2,h),h++),s[c]=f++,a=String(u)}if(""!==a){if(Object.prototype.hasOwnProperty.call(p,a)){if(a.charCodeAt(0)<256){for(e=0;h>e;e++)m<<=1,v==r-1?(v=0,d.push(n(m)),m=0):v++;for(t=a.charCodeAt(0),e=0;8>e;e++)m=m<<1|1&t,v==r-1?(v=0,d.push(n(m)),m=0):v++,t>>=1}else{for(t=1,e=0;h>e;e++)m=m<<1|t,v==r-1?(v=0,d.push(n(m)),m=0):v++,t=0;for(t=a.charCodeAt(0),e=0;16>e;e++)m=m<<1|1&t,v==r-1?(v=0,d.push(n(m)),m=0):v++,t>>=1}l--,0==l&&(l=Math.pow(2,h),h++),delete p[a]}else for(t=s[a],e=0;h>e;e++)m=m<<1|1&t,v==r-1?(v=0,d.push(n(m)),m=0):v++,t>>=1;l--,0==l&&(l=Math.pow(2,h),h++)}for(t=2,e=0;h>e;e++)m=m<<1|1&t,v==r-1?(v=0,d.push(n(m)),m=0):v++,t>>=1;for(;;){if(m<<=1,v==r-1){d.push(n(m));break}v++}return d.join("")},decompress:function(o){return null==o?"":""==o?null:i._decompress(o.length,32768,function(r){return o.charCodeAt(r)})},_decompress:function(o,n,e){var t,i,s,p,u,c,a,l,f=[],h=4,d=4,m=3,v="",w=[],A={val:e(0),position:n,index:1};for(i=0;3>i;i+=1)f[i]=i;for(p=0,c=Math.pow(2,2),a=1;a!=c;)u=A.val&A.position,A.position>>=1,0==A.position&&(A.position=n,A.val=e(A.index++)),p|=(u>0?1:0)*a,a<<=1;switch(t=p){case 0:for(p=0,c=Math.pow(2,8),a=1;a!=c;)u=A.val&A.position,A.position>>=1,0==A.position&&(A.position=n,A.val=e(A.index++)),p|=(u>0?1:0)*a,a<<=1;l=r(p);break;case 1:for(p=0,c=Math.pow(2,16),a=1;a!=c;)u=A.val&A.position,A.position>>=1,0==A.position&&(A.position=n,A.val=e(A.index++)),p|=(u>0?1:0)*a,a<<=1;l=r(p);break;case 2:return""}for(f[3]=l,s=l,w.push(l);;){if(A.index>o)return"";for(p=0,c=Math.pow(2,m),a=1;a!=c;)u=A.val&A.position,A.position>>=1,0==A.position&&(A.position=n,A.val=e(A.index++)),p|=(u>0?1:0)*a,a<<=1;switch(l=p){case 0:for(p=0,c=Math.pow(2,8),a=1;a!=c;)u=A.val&A.position,A.position>>=1,0==A.position&&(A.position=n,A.val=e(A.index++)),p|=(u>0?1:0)*a,a<<=1;f[d++]=r(p),l=d-1,h--;break;case 1:for(p=0,c=Math.pow(2,16),a=1;a!=c;)u=A.val&A.position,A.position>>=1,0==A.position&&(A.position=n,A.val=e(A.index++)),p|=(u>0?1:0)*a,a<<=1;f[d++]=r(p),l=d-1,h--;break;case 2:return w.join("")}if(0==h&&(h=Math.pow(2,m),m++),f[l])v=f[l];else{if(l!==d)return null;v=s+s.charAt(0)}w.push(v),f[d++]=s+v.charAt(0),h--,s=v,0==h&&(h=Math.pow(2,m),m++)}}};return i}();"function"==typeof define&&define.amd?define(function(){return LZString}):"undefined"!=typeof module&&null!=module&&(module.exports=LZString);
+51 -36
View File
@@ -737,6 +737,7 @@ ui.prototype.drawSwitchs = function() {
"怪物显伤: "+(core.flags.displayEnemyDamage ? "[ON]" : "[OFF]"),
"临界显伤: "+(core.flags.displayCritical ? "[ON]" : "[OFF]"),
"领域显伤: "+(core.flags.displayExtraDamage ? "[ON]" : "[OFF]"),
"单击瞬移: "+(core.status.automaticRoute.clickMoveDirectly ? "[ON]" : "[OFF]"),
"下载离线版本",
"返回主菜单"
];
@@ -1461,19 +1462,27 @@ ui.prototype.drawToolbox = function(index) {
if (!core.isset(index)) {
if (tools.length>0) index=0;
else if (constants.length>0) index=100;
else if (constants.length>0) index=1000;
else index=0;
}
core.status.event.selection=index;
var selectId;
if (index<100)
if (index<1000) {
if (index>=tools.length) index=Math.max(0, tools.length-1);
selectId = tools[index];
else
selectId = constants[index-100];
}
else {
if (index-1000>=constants.length) index=1000+Math.max(0, constants.length-1);
selectId = constants[index-1000];
}
var page = parseInt((index%1000)/12)+1;
var totalPage = parseInt(Math.max(tools.length, constants.length)/12)+1;
if (!core.hasItem(selectId)) selectId=null;
core.status.event.data=selectId;
core.clearMap('ui', 0, 0, 416, 416);
@@ -1485,34 +1494,37 @@ ui.prototype.drawToolbox = function(index) {
core.canvas.ui.lineWidth = 2;
core.canvas.ui.strokeWidth = 2;
var ydelta = 20;
// 画线
core.canvas.ui.beginPath();
core.canvas.ui.moveTo(0, 130);
core.canvas.ui.lineTo(416, 130);
core.canvas.ui.moveTo(0, 130-ydelta);
core.canvas.ui.lineTo(416, 130-ydelta);
core.canvas.ui.stroke();
core.canvas.ui.beginPath();
core.canvas.ui.moveTo(0,129);
core.canvas.ui.lineTo(0,105);
core.canvas.ui.lineTo(72,105);
core.canvas.ui.lineTo(102,129);
core.canvas.ui.moveTo(416,129-ydelta);
core.canvas.ui.lineTo(416,105-ydelta);
core.canvas.ui.lineTo(416-72,105-ydelta);
core.canvas.ui.lineTo(416-102,129-ydelta);
core.canvas.ui.fill();
core.canvas.ui.beginPath();
core.canvas.ui.moveTo(0, 290);
core.canvas.ui.lineTo(416, 290);
core.canvas.ui.moveTo(0, 290-ydelta);
core.canvas.ui.lineTo(416, 290-ydelta);
core.canvas.ui.stroke();
core.canvas.ui.beginPath();
core.canvas.ui.moveTo(0,289);
core.canvas.ui.lineTo(0,265);
core.canvas.ui.lineTo(72,265);
core.canvas.ui.lineTo(102,289);
core.canvas.ui.moveTo(416,289-ydelta);
core.canvas.ui.lineTo(416,265-ydelta);
core.canvas.ui.lineTo(416-72,265-ydelta);
core.canvas.ui.lineTo(416-102,289-ydelta);
core.canvas.ui.fill();
// 文字
core.canvas.ui.textAlign = 'left';
core.fillText('ui', "消耗道具", 5, 124, '#333333', "bold 16px Verdana");
core.fillText('ui', "永久道具", 5, 284);
core.canvas.ui.textAlign = 'right';
core.fillText('ui', "消耗道具", 411, 124-ydelta, '#333333', "bold 16px Verdana");
core.fillText('ui', "永久道具", 411, 284-ydelta);
core.canvas.ui.textAlign = 'left';
// 描述
if (core.isset(selectId)) {
var item=core.material.items[selectId];
@@ -1536,47 +1548,49 @@ ui.prototype.drawToolbox = function(index) {
var images = core.material.images.items;
// 消耗道具
for (var i=0;i<tools.length;i++) {
var tool=tools[i];
for (var i=0;i<12;i++) {
var tool=tools[12*(page-1)+i];
if (!core.isset(tool)) break;
var icon=core.material.icons.items[tool];
if (i<6) {
core.canvas.ui.drawImage(images, 0, icon*32, 32, 32, 16*(4*i+1)+5, 144+5, 32, 32)
core.canvas.ui.drawImage(images, 0, icon*32, 32, 32, 16*(4*i+1)+5, 144+5-ydelta, 32, 32)
// 个数
core.fillText('ui', core.itemCount(tool), 16*(4*i+1)+40, 144+38, '#FFFFFF', "bold 14px Verdana");
core.fillText('ui', core.itemCount(tool), 16*(4*i+1)+40, 144+38-ydelta, '#FFFFFF', "bold 14px Verdana");
if (selectId == tool)
core.strokeRect('ui', 16*(4*i+1)+1, 144+1, 40, 40, '#FFD700');
core.strokeRect('ui', 16*(4*i+1)+1, 144+1-ydelta, 40, 40, '#FFD700');
}
else {
core.canvas.ui.drawImage(images, 0, icon*32, 32, 32, 16*(4*(i-6)+1)+5, 144+64+5, 32, 32)
core.canvas.ui.drawImage(images, 0, icon*32, 32, 32, 16*(4*(i-6)+1)+5, 144+64+5-ydelta, 32, 32)
// 个数
core.fillText('ui', core.itemCount(tool), 16*(4*(i-6)+1)+40, 144+64+38, '#FFFFFF', "bold 14px Verdana");
core.fillText('ui', core.itemCount(tool), 16*(4*(i-6)+1)+40, 144+64+38-ydelta, '#FFFFFF', "bold 14px Verdana");
if (selectId == tool)
core.strokeRect('ui', 16*(4*(i-6)+1)+1, 144+64+1, 40, 40, '#FFD700');
core.strokeRect('ui', 16*(4*(i-6)+1)+1, 144+64+1-ydelta, 40, 40, '#FFD700');
}
}
// 永久道具
for (var i=0;i<constants.length;i++) {
var constant=constants[i];
for (var i=0;i<12;i++) {
var constant=constants[12*(page-1)+i];
if (!core.isset(constant)) break;
var icon=core.material.icons.items[constant];
if (i<6) {
core.canvas.ui.drawImage(images, 0, icon*32, 32, 32, 16*(4*i+1)+5, 304+5, 32, 32)
// core.fillText('ui', core.itemCount(constant), 16*(4*i+1)+40, 304+38, '#FFFFFF', "bold 16px Verdana")
core.canvas.ui.drawImage(images, 0, icon*32, 32, 32, 16*(4*i+1)+5, 304+5-ydelta, 32, 32)
if (selectId == constant)
core.strokeRect('ui', 16*(4*i+1)+1, 304+1, 40, 40, '#FFD700');
core.strokeRect('ui', 16*(4*i+1)+1, 304+1-ydelta, 40, 40, '#FFD700');
}
else {
core.canvas.ui.drawImage(images, 0, icon*32, 32, 32, 16*(4*(i-6)+1)+5, 304+64+5, 32, 32)
core.canvas.ui.drawImage(images, 0, icon*32, 32, 32, 16*(4*(i-6)+1)+5, 304+64+5-ydelta, 32, 32)
if (selectId == constant)
core.strokeRect('ui', 16*(4*(i-6)+1)+1, 304+64+1, 40, 40, '#FFD700');
core.strokeRect('ui', 16*(4*(i-6)+1)+1, 304+64+1-ydelta, 40, 40, '#FFD700');
}
}
// 退出
this.drawPagination(page, totalPage);
core.canvas.ui.textAlign = 'center';
core.fillText('ui', '删除道具', 370, 32,'#DDDDDD', 'bold 15px Verdana');
// core.fillText('ui', '删除道具', 370, 32,'#DDDDDD', 'bold 15px Verdana');
core.fillText('ui', '返回游戏', 370, 403,'#DDDDDD', 'bold 15px Verdana');
}
@@ -1941,6 +1955,7 @@ ui.prototype.drawHelp = function () {
"点状态栏中图标: 进行对应的操作\n"+
"点任意块: 寻路并移动\n"+
"点任意块并拖动: 指定寻路路线\n"+
"双击空地: 瞬间移动\n"+
"单击勇士: 转向\n"+
"双击勇士: 轻按(仅在轻按开关打开时有效)\n"+
"长按任意位置:跳过剧情对话或打开虚拟键盘\n"
+19 -4
View File
@@ -76,7 +76,7 @@ utils.prototype.unshift = function (a,b) {
////// 设置本地存储 //////
utils.prototype.setLocalStorage = function(key, value) {
try {
localStorage.setItem(core.firstData.name + "_" + key, JSON.stringify(value));
localStorage.setItem(core.firstData.name + "_" + key, LZString.compress(JSON.stringify(value)));
return true;
}
catch (e) {
@@ -87,9 +87,24 @@ utils.prototype.setLocalStorage = function(key, value) {
////// 获得本地存储 //////
utils.prototype.getLocalStorage = function(key, defaultValue) {
var value = localStorage.getItem(core.firstData.name+"_"+key);
if (core.isset(value)) return JSON.parse(value);
return defaultValue;
try {
var value = localStorage.getItem(core.firstData.name+"_"+key);
if (core.isset(value)) {
var output = LZString.decompress(value);
if (core.isset(output) && output.length>0) {
try {
return JSON.parse(output);
}
catch (ee) {}
}
return JSON.parse(value);
}
return defaultValue;
}
catch (e) {
console.log(e);
return defaultValue;
}
}
////// 移除本地存储 //////