correct some mistakes

This commit is contained in:
tocque 2018-09-14 08:01:35 +08:00
parent eedbd3d457
commit 59976bbb0c
8 changed files with 358 additions and 202 deletions

View File

@ -91,14 +91,14 @@ comment_c456ea59_6018_45ef_8bcc_211a24c627dc =
"_type": "textarea",
"_string": true,
"_lint": true,
"_data": "cls为tools或contants时的使用物品效果。"
"_data": "cls为tools或constants时的使用物品效果。"
},
"canUseItemEffect": {
"_leaf": true,
"_type": "textarea",
"_string": true,
"_lint": true,
"_data": "cls为tools或contants时对当前能否使用该物品的判断。"
"_data": "cls为tools或constants时对当前能否使用该物品的判断。"
}
}
},

View File

@ -1244,36 +1244,33 @@ actions.prototype.clickToolbox = function(x,y) {
return;
}
*/
// 当前页面
var page = parseInt((core.status.event.selection%1000)/12)+1;
var toolsPage = core.status.event.data.toolsPage;
var constantsPage = core.status.event.data.constantsPage
// 上一页
if ((x == 3 || x == 4) && y == 12) {
if (page>1) {
core.ui.drawToolbox(core.status.event.selection-12);
}
if (x == 3 || x == 4) {
if ( y == 7 && toolsPage>1)
core.status.event.data.toolsPage--;
if ( y == 12 && constantsPage>1)
core.status.event.data.constantsPage--;
core.ui.drawToolbox(core.status.event.selection)
return;
}
// 下一页
if ((x == 8 || x == 9) && y == 12) {
var toolPage = Math.ceil(Object.keys(core.status.hero.items.tools).length/12),
constantPage = Math.ceil(Object.keys(core.status.hero.items.constants).length/12);
if (page<toolPage) {
core.ui.drawToolbox(12*page);
}
else if (page<constantPage) {
core.ui.drawToolbox(1000+12*page);
}
if ((x == 8 || x == 9)) {
if (( y == 7 && toolsPage<Math.ceil(Object.keys(core.status.hero.items.tools).length/12)))
core.status.event.data.toolsPage++;
if ( y == 12 && constantsPage<Math.ceil(Object.keys(core.status.hero.items.constants).length/12))
core.status.event.data.constantsPage++;
core.ui.drawToolbox(core.status.event.selection);
return;
}
var index=parseInt(12*(page-1)+x/2);
var index=parseInt(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;
else if (y==9) index+=12;
else if (y==11) index+=18;
else index =-1;
if (index>=0)
this.clickToolboxIndex(index);
@ -1282,17 +1279,19 @@ actions.prototype.clickToolbox = function(x,y) {
////// 选择工具栏界面中某个Index后的操作 //////
actions.prototype.clickToolboxIndex = function(index) {
var items = null;
var ii=index;
if (ii<1000)
var select;
if (index<12) {
select = index + 12 * (core.status.event.data.toolsPage-1);
items = Object.keys(core.status.hero.items.tools).sort();
}
else {
ii-=1000;
select = index%12 + 12 * (core.status.event.data.constantsPage-1);
items = Object.keys(core.status.hero.items.constants).sort();
}
if (items==null) return;
if (ii>=items.length) return;
var itemId=items[ii];
if (itemId==core.status.event.data) {
if (select>=items.length) return;
var itemId=items[select];
if (itemId==core.status.event.data.selectId) {
core.events.useItem(itemId);
}
else {
@ -1306,67 +1305,83 @@ 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;
var index = core.status.event.selection;
var toolsPage = core.status.event.data.toolsPage;
var constantsPage = core.status.event.data.constantsPage;
var toolsTotalPage = Math.ceil(tools.length/12);
var constantsTotalPage = Math.ceil(constants.length/12);
if (keycode==37) { // left
if ((index>0 && index<1000) || index>1000) {
this.clickToolboxIndex(index-1);
return;
}
if (index==1000 && tools.length>0) {
this.clickToolboxIndex(tools.length-1);
return;
}
if (index==0) // 处理向前翻页
if (toolsPage>1) {
core.status.event.data.toolsPage--;
index = 11;
}
else return; // 第一页不向前翻
else if (index==12)
if (constantsPage>1) {
core.status.event.data.constantsPage--;
index = 23;
}
else return;
else index -= 1 ;
this.clickToolboxIndex(index);
return;
}
if (keycode==38) { // up
if ((index>offset+5 && index<1000) || index>offset+1005) {
this.clickToolboxIndex(index-6);
return;
}
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>offset) {
this.clickToolboxIndex(Math.min(tools.length-1, index-1000));
}
return;
if (toolsPage==toolsTotalPage&&index<18&&index>11) { // 进入tools
if (toolsTotalPage==0) return;
if (tools.length%12<=6 && tools.length%12>index%12) index -= 12;
else if (tools.length%12>6 && tools.length%6>index%12) index -= 6;
else index = tools.length%12-1;
}
else if (index<6) return; // 第一行没有向上
else index -= 6;
this.clickToolboxIndex(index);
return;
}
if (keycode==39) { // right
if ((index<tools.length-1) || (index>=1000 && index<constants.length+1000)) {
this.clickToolboxIndex(index+1);
return;
if (toolsPage<toolsTotalPage && index==11) {
core.status.event.data.toolsPage++;
index = 0;
}
if (index==tools.length-1 && constants.length>0) {
this.clickToolboxIndex(1000);
return;
else if (constantsPage<constantsTotalPage && index==23) {
core.status.event.data.constantsPage++;
index = 12;
}
else if((toolsPage==toolsTotalPage && index==tools.length%12-1) ||
(constantsPage==constantsTotalPage && index==constants.length%12+11)) // 一个物品无操作
return;
else index +=1;
this.clickToolboxIndex(index);
return;
}
if (keycode==40) { // down
if (index<=offset+5) {
if (tools.length>offset+6) {
this.clickToolboxIndex(Math.min(tools.length-1, index+6));
}
else if (constants.length>offset) {
this.clickToolboxIndex(1000+Math.min(constants.length-1, index));
}
return;
}
if (index>offset+5 && index<offset+1000 && constants.length>offset) {
this.clickToolboxIndex(1000+Math.min(constants.length-1, index-6));
return;
}
if (index>=offset+1000 && index<=offset+1005 && constants.length>offset+6) {
this.clickToolboxIndex(Math.min(1000+constants.length-1, index+6));
return;
if ((index>5 || (toolsPage==toolsTotalPage && tools.length%12<=6)) && index<12) {// 进入constant
if (constantsTotalPage == 0) return;
if (constantsTotalPage == constantsPage && constants.length%12<(index%6+1))
index = constants.length%12+11;
else if (index<6) index += 12;
else index += 6;
}
else if (toolsPage==toolsTotalPage && tools.length%12>6 && index > tools.length%6 &&index<6)
index = tools.length%12-1;
else if (constantsPage==constantsTotalPage && constants.length%12>6 && index>constants.length%6+11 && index<18)
index = constants.length%12+11;
else if (index>17 || (constantsPage==constantsTotalPage && constants.length%12<=6 && index>11)) return;//最后一行无操作
else index += 6;
this.clickToolboxIndex(index);
return;
}
}
////// 工具栏界面时,放开某个键的操作 //////
actions.prototype.keyUpToolbox = function (keycode) {
if (keycode==81){
core.ui.closePanel();
core.openEquipbox();
return;
}
if (keycode==84 || keycode==27 || keycode==88) {
core.ui.closePanel();
return;
@ -1410,12 +1425,13 @@ actions.prototype.clickEquipbox = function(x,y) {
}
// 当前页面
var page = parseInt((core.status.event.selection%1000)/12)+1;
var page = core.status.event.data.page;
// 上一页
if ((x == 3 || x == 4) && y == 12) {
if (page>1) {
core.ui.drawEquipbox(core.status.event.selection-12);
core.status.event.data.page--;
core.ui.drawEquipbox(core.status.event.selection);
}
return;
}
@ -1423,17 +1439,17 @@ actions.prototype.clickEquipbox = function(x,y) {
if ((x == 8 || x == 9) && y == 12) {
var lastPage = Math.ceil(Object.keys(core.status.hero.items.equips).length/12);
if (page<lastPage)
core.ui.drawEquipbox(1000+12*page);
core.status.event.data.page++;
core.ui.drawEquipbox(core.status.event.selection);
return;
}
var index;
if (y<7) index=parseInt(x/4);
else index=parseInt(12*(page-1)+x/2);
index=parseInt(x/2);
if (y==4) index+=0;
else if (y==6) index+=3;
else if (y==9) index+=1000;
else if (y==11) index+=1006;
else if (y==6) index+=6;
else if (y==9) index+=12;
else if (y==11) index+=18;
else index=-1;
if (index>=0)
@ -1442,7 +1458,7 @@ actions.prototype.clickEquipbox = function(x,y) {
////// 选择装备栏界面中某个Index后的操作 //////
actions.prototype.clickEquipboxIndex = function(index) {
if (index<1000) {
if (index<12) {
if (index>=core.status.hero.equipment.length) return;
if (index==core.status.event.selection && core.status.hero.equipment[index] != "blank") {
core.unloadEquip(index);
@ -1452,9 +1468,9 @@ actions.prototype.clickEquipboxIndex = function(index) {
var equips = null;
equips = Object.keys(core.status.hero.items.equips).sort();
if (equips==null) return;
if (index>=equips.length+1000) return;
if (index>=equips.length+12) return;
if (index==core.status.event.selection) {
var equipId = equips[index-1000];
var equipId = equips[index-12];
core.loadEquip(equipId);
equips = Object.keys(core.status.hero.items.equips).sort();
if ( equips.length == 0)
@ -1468,10 +1484,75 @@ actions.prototype.clickEquipboxIndex = function(index) {
actions.prototype.keyDownEquipbox = function (keycode) {
if (!core.isset(core.status.event.data)) return;
var equipCapacity = core.status.hero.equipment.length;
var ownEquipment = Object.keys(core.status.hero.items.equips).sort();
var index = core.status.event.selection;
var page = core.status.event.data.page;
var totalPage = Math.ceil(ownEquipment.length/12);
if (keycode==37) { // left
if (index==0) return;
if (index==12)
if (page>1) {
core.status.event.data.page--;
index = 23;
}
else if (page==1)
index = equipCapacity-1;
else return;
else index -= 1;
this.clickEquipboxIndex(index);
return;
}
if (keycode==38) { // up
if (index<18 && index>11) { // 进入当前装备
index = Math.ceil((index-12)/2);
if (equipCapacity<=3 && equipCapacity>index) index += 0;
else if (equipCapacity>3 && equipCapacity>index) index += 3;
else index = equipCapacity-1;
}
else if (index<3) return; // 第一行没有向上
else if (index<12) index -= 3;
else index -= 6;
this.clickEquipboxIndex(index);
return;
}
if (keycode==39) { // right
if (page<totalPage && index==23) {
core.status.event.data.page++;
index = 12;
}
else if (index==equipCapacity-1 && totalPage>0)
index = 12;
else if (page==totalPage && index==ownEquipment.length%12+11)
return;
else index += 1;
this.clickEquipboxIndex(index);
return;
}
if (keycode==40) { // down
if ((index>2 || equipCapacity<=3) && index<12) {// 进入拥有装备
index = (index%3)*2+13;
if (totalPage == 0) return;
if (totalPage == page && ownEquipment.length%12<(index%6+1))
index = ownEquipment.length%12+11;
}
else if (equipCapacity>3 && equipCapacity%3<index &&index<3)
index = equipCapacity-1;
else if (totalPage == page && ownEquipment.length%12>6 && index>ownEquipment.length%6+11 && index<18)
index = ownEquipment.length%12+11;
else if (index>17 || (totalPage==page && ownEquipment.length%12<=6 && index>11)) return;//最后一行无操作
else if (index<12) index += 3;
else index += 6;
this.clickEquipboxIndex(index);
return;
}
/*if (!core.isset(core.status.event.data)) return;
var equipCapacity = core.status.hero.equipment.length;
var ownEquipment = Object.keys(core.status.hero.items.equips).sort();
var index=core.status.event.selection;
var page=parseInt(index%1000/12), offset=12*page;
var offset=12*(core.status.event.data.page-1);
if (keycode==37) { // left
if ((index>0 && index<1000) || index>1000) {
@ -1535,7 +1616,7 @@ actions.prototype.keyDownEquipbox = function (keycode) {
}
}
}
}
}*/
}
////// 装备栏界面时,放开某个键的操作 //////
@ -1549,7 +1630,7 @@ actions.prototype.keyUpEquipbox = function (keycode) {
core.ui.closePanel();
return;
}
if (!core.isset(core.status.event.data)) return;
if (!core.isset(core.status.event.data.selectId)) return;
if (keycode==13 || keycode==32 || keycode==67) {
this.clickEquipboxIndex(core.status.event.selection);

View File

@ -1945,35 +1945,49 @@ control.prototype.replay = function () {
var tools = Object.keys(core.status.hero.items.tools).sort();
var constants = Object.keys(core.status.hero.items.constants).sort();
var index;
if ((index=tools.indexOf(itemId))>=0 || (index=constants.indexOf(itemId)+1000)>=1000) {
core.ui.drawToolbox(index);
if ((index=tools.indexOf(itemId))>=0) {
core.status.event.data = {"toolsPage":Math.floor(index/12)+1, "constantsPage":1, "selectId":null}
index = index%12;
}
else if (index=constants.indexOf(itemId)>=0) {
core.status.event.data = {"toolsPage":1, "constantsPage":Math.floor(index/12)+1, "selectId":null}
index = index%12+12;
}
else return;
core.ui.drawToolbox(index);
setTimeout(function () {
core.ui.closePanel();
core.useItem(itemId, function () {
core.replay();
});
}, 750 / Math.max(1, core.status.replay.speed));
}
return;
}
}
else if (action.indexOf("unEquip:")==0) {
var equipId = action.substring(8);
var unloadEquipId = action.substring(8);
var equipType = core.material.items[unloadEquipId].equipType;
core.ui.drawEquipbox(equipType);
setTimeout(function () {
core.ui.closePanel();
core.unloadEquip(equipId, function () {
core.unloadEquip(equipType, function () {
core.replay();
});
}, 750 / Math.max(1, core.status.replay.speed));
return;
}
else if (action.indexOf("equip:")==0) {
var equipType = action.substring(6);
var equipId = action.substring(6);
var ownEquipment = Object.keys(core.status.hero.items.equips).sort();
var index = ownEquipment.indexOf(equipId);
core.status.event.data = {"page":Math.floor(index/12)+1, "selectId":null}
index = index%12+12;
core.ui.drawEquipbox(index);
setTimeout(function () {
core.ui.closePanel();
core.loadEquip(equipType, function () {
core.loadEquip(equipId, function () {
core.replay();
});
});
}, 750 / Math.max(1, core.status.replay.speed));
return;
}

View File

@ -829,8 +829,8 @@ core.prototype.hasItem = function (itemId) {
}
////// 是否装备某件装备 //////
core.prototype.hasEquipment = function (itemId) {
return core.items.hasEquipment(itemId);
core.prototype.hasEquip = function (equipId) {
return core.items.hasEquip(equipId);
}
////// 设置某个物品的个数 //////
@ -863,6 +863,11 @@ core.prototype.unloadEquip = function (equipType, callback) {
core.items.unloadEquip(equipType,callback);
}
////// 比较某件装备与当前装备 //////
core.prototype.compareEquipment = function (equipId, beComparedEquipId) {
return core.items.compareEquipment(equipId, beComparedEquipId);
}
////// 增加某个物品的个数 //////
core.prototype.addItem = function (itemId, itemNum) {
core.items.addItem(itemId, itemNum);

View File

@ -97,9 +97,8 @@ items.prototype.hasItem = function (itemId) {
}
////// 是否装备某件装备 //////
items.prototype.hasEquipment = function (itemId) {
var equiptype = core.material.items[itemId].equiptype;
return core.status.hero.equipment[equiptype] == itemId;
items.prototype.hasEquip = function (equipId) {
return core.status.hero.equipment.indexOf(equipId) != -1 ;
}
////// 设置某个物品的个数 //////
@ -151,27 +150,17 @@ items.prototype.addItem = function (itemId, itemNum) {
items.prototype.loadEquip = function (equipId, callback) {
core.playSound('equip.mp3');
var loadEquip = core.material.items[equipId];
var loadEquipType = loadEquip.equipType;
var unloadEquipId = core.status.hero.equipment[loadEquipType];
var unloadEquip = core.material.items[unloadEquipId];
// 处理能力值改变
if (core.isset(loadEquip.equipEffect.atk))
core.status.hero.atk += loadEquip.equipEffect.atk
if (core.isset(loadEquip.equipEffect.def))
core.status.hero.def += loadEquip.equipEffect.def
if (core.isset(loadEquip.equipEffect.mdef))
core.status.hero.mdef += loadEquip.equipEffect.mdef
if (unloadEquip.cls != "blank") {
if (core.isset(unloadEquip.equipEffect.atk))
core.status.hero.atk -= unloadEquip.equipEffect.atk
if (core.isset(unloadEquip.equipEffect.def))
core.status.hero.def -= unloadEquip.equipEffect.def
if (core.isset(unloadEquip.equipEffect.mdef))
core.status.hero.mdef -= unloadEquip.equipEffect.mdef
}
// 比较能力值
var result = core.compareEquipment(equipId,unloadEquipId);
core.status.hero.atk += result.atk;
core.status.hero.def += result.def;
core.status.hero.mdef += result.mdef;
// 更新装备状态
core.status.hero.equipment[loadEquipType] = equipId;
@ -215,10 +204,29 @@ items.prototype.unloadEquip = function (equipType, callback) {
core.updateStatusBar();
// 记录路线
core.status.route.push("unEquip:"+equipType);
core.status.route.push("unEquip:"+unloadEquipId);
// 装备更换完毕:增加卸下的装备
core.addItem(unloadEquipId, 1);
if (core.isset(callback)) callback();
}
items.prototype.compareEquipment = function (compareEquipId, beComparedEquipId) {
var compareEquip = core.material.items[compareEquipId];
var beComparedEquip = core.material.items[beComparedEquipId];
var compareAtk = 0, compareDef = 0, compareMdef = 0;
if (core.isset(compareEquip.equipEffect.atk))
compareAtk += compareEquip.equipEffect.atk;
if (core.isset(compareEquip.equipEffect.def))
compareDef += compareEquip.equipEffect.def;
if (core.isset(compareEquip.equipEffect.mdef))
compareMdef += compareEquip.equipEffect.mdef;
if (core.isset(beComparedEquip.equipEffect.atk))
compareAtk -= beComparedEquip.equipEffect.atk;
if (core.isset(beComparedEquip.equipEffect.def))
compareDef -= beComparedEquip.equipEffect.def;
if (core.isset(beComparedEquip.equipEffect.mdef))
compareMdef -= beComparedEquip.equipEffect.mdef;
return {"atk":compareAtk,"def":compareDef,"mdef":compareMdef};
}

View File

@ -1205,7 +1205,8 @@ ui.prototype.drawReplay = function () {
}
////// 绘制分页 //////
ui.prototype.drawPagination = function (page, totalPage) {
ui.prototype.drawPagination = function (page, totalPage, top) {
if (totalPage <= 1) return;
core.setFont('ui', 'bold 15px Verdana');
core.setFillStyle('ui', '#DDDDDD');
@ -1213,17 +1214,13 @@ ui.prototype.drawPagination = function (page, totalPage) {
var length = core.canvas.ui.measureText(page + " / " + page).width;
core.canvas.ui.textAlign = 'left';
core.fillText('ui', page + " / " + totalPage, parseInt((416 - length) / 2), 403);
core.fillText('ui', page + " / " + totalPage, parseInt((416 - length) / 2), top*32+19);
core.canvas.ui.textAlign = 'center';
if (page > 1)
core.fillText('ui', '上一页', 208 - 80, 403);
core.fillText('ui', '上一页', 208 - 80, top*32+19);
if (page < totalPage)
core.fillText('ui', '下一页', 208 + 80, 403);
// 退出
core.fillText('ui', '返回游戏', 370, 403);
core.fillText('ui', '下一页', 208 + 80, top*32+19);
}
////// 绘制键盘光标 //////
@ -1391,7 +1388,9 @@ ui.prototype.drawBook = function (index) {
}
core.drawBoxAnimate();
this.drawPagination(page, totalPage);
this.drawPagination(page, totalPage, 12);
// 退出
core.fillText('ui', '返回游戏', 370, 403,'#DDDDDD', 'bold 15px Verdana');
}
////// 绘制怪物属性的详细信息 //////
@ -1583,35 +1582,45 @@ ui.prototype.drawMaps = function (index, x, y) {
////// 绘制道具栏 //////
ui.prototype.drawToolbox = function(index) {
// 设定eventdata
if (!core.isset(core.status.event.data))
core.status.event.data = {"toolsPage":1, "constantsPage":1, "selectId":null}
// 获取物品列表
var tools = Object.keys(core.status.hero.items.tools).sort();
var constants = Object.keys(core.status.hero.items.constants).sort();
// 处理页数
var toolsPage = core.status.event.data.toolsPage;
var constantsPage = core.status.event.data.constantsPage;
var toolsTotalPage = Math.ceil(tools.length/12);
var constantsTotalPage = Math.ceil(constants.length/12);
// 处理index
if (!core.isset(index)) {
if (tools.length>0) index=0;
else if (constants.length>0) index=1000;
else if (constants.length>0) index=12;
else index=0;
}
core.status.event.selection=index;
// 确认选择对象
var select;
var selectId;
if (index<1000) {
if (index>=tools.length) index=Math.max(0, tools.length-1);
selectId = tools[index];
if (index<12) {
select = index + (toolsPage-1)*12;
if (select>=tools.length) select=Math.max(0, tools.length-1);
selectId = tools[select];
}
else {
if (index-1000>=constants.length) index=1000+Math.max(0, constants.length-1);
selectId = constants[index-1000];
select = index%12 + (constantsPage-1)*12;
if (select>=constants.length) select=Math.max(0, constants.length-1);
selectId = constants[select];
}
var page = parseInt((index%1000)/12)+1;
var totalPage = Math.ceil(Math.max(tools.length, constants.length)/12);
if (!core.hasItem(selectId)) selectId=null;
core.status.event.data.selectId=selectId;
core.status.event.data=selectId;
// 绘制
core.clearMap('ui');
core.setAlpha('ui', 0.85);
core.fillRect('ui', 0, 0, 416, 416, '#000000');
@ -1673,52 +1682,38 @@ ui.prototype.drawToolbox = function(index) {
core.canvas.ui.textAlign = 'right';
var images = core.material.images.items;
// 消耗道具
// 消耗道具
for (var i=0;i<12;i++) {
var tool=tools[12*(page-1)+i];
var tool=tools[12*(toolsPage-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-ydelta, 32, 32)
// 个数
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-ydelta, 40, 40, '#FFD700');
}
else {
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-ydelta, '#FFFFFF', "bold 14px Verdana");
if (selectId == tool)
core.strokeRect('ui', 16*(4*(i-6)+1)+1, 144+64+1-ydelta, 40, 40, '#FFD700');
}
core.canvas.ui.drawImage(images, 0, icon*32, 32, 32, 16*(4*(i%6)+1)+5, 144+Math.floor(i/6)*64+5-ydelta, 32, 32)
// 个数
core.fillText('ui', core.itemCount(tool), 16*(4*(i%6)+1)+40, 144+Math.floor(i/6)*64+38-ydelta, '#FFFFFF', "bold 14px Verdana");
if (selectId == tool)
core.strokeRect('ui', 16*(4*(i%6)+1)+1, 144+Math.floor(i/6)*64+1-ydelta, 40, 40, '#FFD700');
}
// 永久道具
for (var i=0;i<12;i++) {
var constant=constants[12*(page-1)+i];
var constant=constants[12*(constantsPage-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-ydelta, 32, 32)
if (selectId == constant)
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-ydelta, 32, 32)
if (selectId == constant)
core.strokeRect('ui', 16*(4*(i-6)+1)+1, 304+64+1-ydelta, 40, 40, '#FFD700');
}
core.canvas.ui.drawImage(images, 0, icon*32, 32, 32, 16*(4*(i%6)+1)+5, 304+Math.floor(i/6)*64+5-ydelta, 32, 32)
if (selectId == constant)
core.strokeRect('ui', 16*(4*(i%6)+1)+1, 304+Math.floor(i/6)*64+1-ydelta, 40, 40, '#FFD700');
}
this.drawPagination(page, totalPage);
// 分页
this.drawPagination(toolsPage, toolsTotalPage, 7);
this.drawPagination(constantsPage, constantsTotalPage, 12);
core.canvas.ui.textAlign = 'center';
// 道具栏
// 装备栏
if (core.flags.equipment)
core.fillText('ui', '装备栏', 370, 19,'#DDDDDD', 'bold 15px Verdana');
core.fillText('ui', '装备栏', 370, 19,'#DDDDDD', 'bold 15px Verdana');
// core.fillText('ui', '删除道具', 370, 32,'#DDDDDD', 'bold 15px Verdana');
// 退出
core.fillText('ui', '返回游戏', 370, 403,'#DDDDDD', 'bold 15px Verdana');
@ -1726,33 +1721,35 @@ ui.prototype.drawToolbox = function(index) {
////// 绘制装备界面 //////
ui.prototype.drawEquipbox = function(index) {
// 设定eventdata
if (!core.isset(core.status.event.data))
core.status.event.data = {"page":1, "selectId":null}
var equipEquipment = core.status.hero.equipment;
var ownEquipment = Object.keys(core.status.hero.items.equips).sort();
var page = core.status.event.data.page;
var totalPage = Math.ceil(ownEquipment.length/12);
// 处理index
if (!core.isset(index)) {
if (equipEquipment.length>0) index=0;
else if (ownEquipment.length>0) index=1000;
else if (ownEquipment.length>0) index=12;
else index=0;
}
core.status.event.selection=index;
var selectId;
if (index<1000) {
if (index<12) {
if (index>=equipEquipment.length) index=Math.max(0, equipEquipment.length-1);
selectId = equipEquipment[index];
}
else {
if (index-1000>=ownEquipment.length) index=1000+Math.max(0, ownEquipment.length-1);
selectId = ownEquipment[index-1000];
if (index-12>=ownEquipment.length) index=12+Math.max(0, ownEquipment.length-1);
selectId = ownEquipment[index-12];
if (!core.hasItem(selectId)) selectId=null;
}
var page = parseInt((index%1000)/12)+1;
var totalPage = Math.ceil(ownEquipment.length/12);
core.status.event.data=selectId;
core.status.event.data.selectId=selectId;
core.clearMap('ui', 0, 0, 416, 416);
core.setAlpha('ui', 0.85);
@ -1804,14 +1801,60 @@ ui.prototype.drawEquipbox = function(index) {
var text = equip.text||"该装备暂无描述。";
var lines = core.splitLines('ui', text, 406, '17px Verdana');
core.fillText('ui', lines[0], 10, 62, '#FFFFFF', '17px Verdana');
core.fillText('ui', lines[0], 10, 62, '#FFFFFF', '17px Verdana');
// 比较属性
if (lines.length==1) {
if (index<1000) {
core.fillText('ui', '<继续点击该装备即可卸下>', 10, 89, '#CCCCCC', '14px Verdana');
}
var compare;
if (index<12) compare = core.compareEquipment("blank", selectId);
else {
core.fillText('ui', '<继续点击该装备即可换上>', 10, 89, '#CCCCCC', '14px Verdana');
compare = core.compareEquipment(selectId, equipEquipment[equip.equipType]);
}
// 绘制
var drawList; //= [['攻击',atk],['防御',def],['魔防',mdef]];var draw;
var drawPointer = 0;
var color;
/*for (var printer = 0; printer<drawList.length; printer++)
if (compare[drawList[printer][1]]!=0) {
if (compare[printer]>0)
color = '#00FF00'
else color = '#FF0000'
draw = drawList[printer][0]+' '+core.status.hero[drawList[printer][1]]+'->'+(core.status.hero[drawList[printer][1]]+compare[drawList[printer][1]])+' ';
drawPointer += draw.length;
core.fillText('ui', draw, 10+drawPointer, 89, color, '14px Verdana');
}*/
if (compare.atk!=0) {
if (compare.atk>0) color = '#00FF00';
else color = '#FF0000';
drawList = '攻击 '+core.status.hero.atk+'->';
core.fillText('ui', drawList, 10+drawPointer, 89, '#CCCCCC', 'bold 14px Verdana');
drawPointer += core.canvas.ui.measureText(drawList).width;
drawList = (core.status.hero.atk+compare.atk)+' ';
core.fillText('ui', drawList, 10+drawPointer, 89, color, 'bold 14px Verdana');
drawPointer += core.canvas.ui.measureText(drawList).width;
}
if (compare.def!=0) {
if (compare.def>0) color = '#00FF00';
else color = '#FF0000';
drawList = '防御 '+core.status.hero.atk+'->';
core.fillText('ui', drawList, 10+drawPointer, 89, '#CCCCCC', 'bold 14px Verdana');
drawPointer += core.canvas.ui.measureText(drawList).width;
drawList = (core.status.hero.atk+compare.def)+' ';
core.fillText('ui', drawList, 10+drawPointer, 89, color, 'bold 14px Verdana');
drawPointer += core.canvas.ui.measureText(drawList).width;
}
if (compare.mdef!=0) {
if (compare.mdef>0) color = '#00FF00';
else color = '#FF0000';
drawList = '魔防 '+core.status.hero.atk+'->';
core.fillText('ui', drawList, 10+drawPointer, 89, '#CCCCCC', 'bold 14px Verdana');
drawPointer += core.canvas.ui.measureText(drawList).width;
drawList = (core.status.hero.atk+compare.mdef)+' ';
core.fillText('ui', drawList, 10+drawPointer, 89, color, 'bold 14px Verdana');
drawPointer += core.canvas.ui.measureText(drawList).width;
}
}
else {
@ -1848,19 +1891,15 @@ ui.prototype.drawEquipbox = function(index) {
var ownEquip=ownEquipment[12*(page-1)+i];
if (!core.isset(ownEquip)) break;
var icon=core.material.icons.items[ownEquip];
if (i<6) {
core.canvas.ui.drawImage(images, 0, icon*32, 32, 32, 16*(4*i+1)+5, 304+5-ydelta, 32, 32)
if (selectId == ownEquip)
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-ydelta, 32, 32)
if (selectId == ownEquip)
core.strokeRect('ui', 16*(4*(i-6)+1)+1, 304+64+1-ydelta, 40, 40, '#FFD700');
}
core.canvas.ui.drawImage(images, 0, icon*32, 32, 32, 16*(4*(i%6)+1)+5, 304+Math.floor(i/6)*64+5-ydelta, 32, 32)
// 个数
if (core.itemCount(ownEquip)>1)
core.fillText('ui', core.itemCount(ownEquip), 16*(4*(i%6)+1)+40, 304+Math.floor(i/6)*64+38-ydelta, '#FFFFFF', "bold 14px Verdana");
if (selectId == ownEquip)
core.strokeRect('ui', 16*(4*(i%6)+1)+1, 304+Math.floor(i/6)*64+1-ydelta, 40, 40, '#FFD700');
}
this.drawPagination(page, totalPage);
this.drawPagination(page, totalPage, 12);
// 道具栏
core.canvas.ui.textAlign = 'center';
core.fillText('ui', '道具栏', 370, 19,'#DDDDDD', 'bold 15px Verdana');
@ -1951,7 +1990,9 @@ ui.prototype.drawSLPanel = function(index, refresh) {
}
else drawAll();
this.drawPagination(page+1, max_page);
this.drawPagination(page+1, max_page, 12);
// 退出
core.fillText('ui', '返回游戏', 370, 403,'#DDDDDD', 'bold 15px Verdana');
if (core.status.event.selection)
core.setFillStyle('ui', '#FF6A6A');

View File

@ -324,6 +324,10 @@ utils.prototype.encodeRoute = function (route) {
}
if (t.indexOf('item:')==0)
ans+="I"+t.substring(5)+":";
else if (t.indexOf('unEquip:')==0)
ans+="u"+t.substring(8)+":";
else if (t.indexOf('equip:')==0)
ans+="e"+t.substring(6)+":";
else if (t.indexOf('fly:')==0)
ans+="F"+t.substring(4)+":";
else if (t.indexOf('choices:')==0)
@ -383,7 +387,7 @@ utils.prototype.decodeRoute = function (route) {
while (index<route.length) {
var c=route.charAt(index++);
var nxt=(c=='I'||c=='F'||c=='S'||c=='Q'||c=='t')?getString():getNumber();
var nxt=(c=='I'|| c=='u' || c=='e' ||c=='F'||c=='S'||c=='Q'||c=='t')?getString():getNumber();
var mp = {
"U": "up",
@ -395,6 +399,8 @@ utils.prototype.decodeRoute = function (route) {
switch (c) {
case "U": case "D": case "L": case "R": for (var i=0;i<nxt;i++) ans.push(mp[c]); break;
case "I": ans.push("item:"+nxt); break;
case "u": ans.push("unEquip:"+nxt); break;
case "e": ans.push("equip:"+nxt); break;
case "F": ans.push("fly:"+nxt); break;
case "C": ans.push("choices:"+nxt); break;
case "S": ans.push("shop:"+nxt+":"+getNumber(true)); break;

View File

@ -273,6 +273,7 @@ items_296f5d02_12fd_4166_a7c1_b5e830c9ee3a =
"cls": "blank",
"name": " ",
"text": " ",
"equipEffect": {},
"animate": "hand"
},
},