Merge pull request #31 from zhaouv/2.0-for-pr

Update v2.0
This commit is contained in:
Zhang Chen 2018-01-07 22:12:05 +08:00 committed by GitHub
commit 19f86f392f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
85 changed files with 216 additions and 118 deletions

27
_server/comment.js Normal file
View File

@ -0,0 +1,27 @@
comment_c456ea59_6018_45ef_8bcc_211a24c627dc =
{
"items" : {
'items':{
'cls': "只能取keys items constants tools\n$range(thiseval in ['keys','items','constants','tools'])$end",
'name': '名称',
'text': '道具在道具栏中显示的描述'
},
'itemEffect':'cls为items的即捡即用类物品的效果,执行时会对这里的字符串执行eval()',
'itemEffectTip':'cls为items的即捡即用类物品,在获得时左上角额外显示的文字,执行时会对这里的字符串执行eval()得到字符串'
},
"enemys" : {
'name': '名称',
'hp': '生命值',
'atk': '攻击力',
'def': '防御力',
'money': '金币',
'experience': '经验',
'special': '特殊属性\n1:先攻,2:魔攻,3:坚固,4:2连击,5:3连击,6:n连击,7:破甲,8:反击,9:净化,10:模仿,11:吸血,12:中毒,13:衰弱,14:诅咒,15:领域,16:夹击,17:仇恨,18:阻击,19:自爆,20:无敌\n多个属性例如用[1,4,11]表示先攻2连击吸血\n模仿怪的攻防设为0就好\n',
'value': '特殊属性的数值\n领域怪需要加value表示领域伤害的数值\n吸血怪需要在后面添加value代表吸血比例',
'zoneSquare': '领域怪zoneSquare代表是否九宫格伤害',
'range': 'range可选代表领域伤害的范围不加默认为1\n$range(thiseval==~~thiseval &&thiseval>0)$end',
'bomb':' 加入 "bomb": false 代表该怪物不可被炸弹或圣锤炸掉$range(thiseval in [true,false])$end',
'point': 'point可以在打败怪物后进行加点详见文档说明\n$range(thiseval==~~thiseval && thiseval>0)$end',
'n': '多连击需要在后面指定n代表是几连击\n$range(thiseval==~~thiseval &&thiseval>0)$end',
}
}

View File

@ -184,6 +184,9 @@ body{
top: 5px;
overflow: auto;
}
.egameCanvas {
position: absolute;
}
.gameCanvas {
position: absolute;
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -168,6 +168,7 @@ var clear = new Vue({
methods: {
clearMap: function(){
editor.mapInit();
editor.updateMap();
clearTimeout(editArea.formatTimer);
clearTimeout(tip.timer);
pout.value = '';

View File

@ -32,7 +32,7 @@
<div class="map" id="mapEdit">
<canvas class='gameCanvas' id='bg' width='416' height='416' style='z-index:1'></canvas>
<canvas class='gameCanvas' id='event' width='416' height='416' style='z-index:2'></canvas>
<canvas class='gameCanvas' id='eui' width='416' height='416' style='z-index:100'></canvas>
<canvas class='egameCanvas' id='eui' width='416' height='416' style='z-index:100'></canvas>
</div>
<div class="tools">
<div id="tip" v-cloak >
@ -70,7 +70,7 @@
</div>
<div id="right">
<div id="iconLib">
<canvas class='gameCanvas' id='edata' width='416' height='416' style='z-index:0'></canvas>
<canvas class='egameCanvas' id='edata' width='416' height='416' style='z-index:0'></canvas>
<div id="selectBox">
<div id='dataSelection' v-show="isSelected" v-cloak></div>
</div>
@ -87,7 +87,7 @@
</div>
<p id='startTopLoadTips'>资源即将开始加载</p>
</div>
<img id='startBackground' src='images/bg.png'>
<img id='startBackground' src='project/images/bg.png'>
<!-- 标题界面可以改style的color使标题改变颜色 -->
<p id='startLogo' style="color: black"></p>
<div id='startButtonGroup'>
@ -110,39 +110,39 @@
</div>
<div id='statusBar' class="clearfix">
<div class="status" id="floorCol">
<img src='images/floor.png' id="img-floor">
<img src='project/images/floor.png' id="img-floor">
<p class='statusLabel' id='floor'></p>
</div>
<div class="status" id="lvCol">
<img src='images/lv.png' id="img-lv">
<img src='project/images/lv.png' id="img-lv">
<p class='statusLabel' id='lv'></p>
</div>
<div class="status">
<img src='images/hp.png' id="img-hp">
<img src='project/images/hp.png' id="img-hp">
<p class='statusLabel' id='hp'></p>
</div>
<div class="status">
<img src='images/atk.png' id="img-atk">
<img src='project/images/atk.png' id="img-atk">
<p class='statusLabel' id='atk'></p>
</div>
<div class="status">
<img src='images/def.png' id="img-def">
<img src='project/images/def.png' id="img-def">
<p class='statusLabel' id='def'></p>
</div>
<div class="status" id="mdefCol">
<img src='images/mdef.png' id="img-mdef">
<img src='project/images/mdef.png' id="img-mdef">
<p class='statusLabel' id='mdef'></p>
</div>
<div class="status" id="moneyCol">
<img src='images/money.png' id="img-money">
<img src='project/images/money.png' id="img-money">
<p class='statusLabel' id='money'></p>
</div>
<div class="status" id="expCol">
<img src='images/experience.png' id="img-experience">
<img src='project/images/experience.png' id="img-experience">
<p class='statusLabel' id='experience'></p>
</div>
<div class="status" id="upCol">
<img src='images/up.png' id="img-up">
<img src='project/images/up.png' id="img-up">
<p class='statusLabel' id='up'></p>
</div>
<div class="status">
@ -157,13 +157,13 @@
</div>
</div>
<div id="toolBar" class="clearfix">
<img src="images/book.png" class="tools" id='img-book'>
<img src="images/fly.png" class="tools" id='img-fly'>
<img src="images/toolbox.png" class="tools" id='img-toolbox'>
<img src="images/shop.png" class="tools" id='img-shop'>
<img src="images/save.png" class="tools" id='img-save'>
<img src="images/load.png" class="tools" id='img-load'>
<img src="images/settings.png" class="tools" id='img-settings'>
<img src="project/images/book.png" class="tools" id='img-book'>
<img src="project/images/fly.png" class="tools" id='img-fly'>
<img src="project/images/toolbox.png" class="tools" id='img-toolbox'>
<img src="project/images/shop.png" class="tools" id='img-shop'>
<img src="project/images/save.png" class="tools" id='img-save'>
<img src="project/images/load.png" class="tools" id='img-load'>
<img src="project/images/settings.png" class="tools" id='img-settings'>
<p class="statusLabel tools" id="hard"></p>
</div>
<div id="curtain"></div>
@ -262,6 +262,7 @@ editor.prototype.idsInit = function(maps, icons){
}
}
}
editor.indexs[0]=[0];
}
editor.prototype.drawInitData = function (icons) {
var ratio=1;
@ -337,7 +338,7 @@ editor.prototype.mapInit = function(){
}
editor.prototype.drawMapBg = function(img){
var bgc = bg.getContext('2d');
if (editor.bgY == 0){
if (!core.isset(editor.bgY) || editor.bgY == 0){
editor.main.editor.drawMapBg();
return;
}
@ -684,14 +685,33 @@ editor.info
始终是最后一次点击的结果
注意editor.info可能因为点击其他地方而被清空
*/
editor = new editor();
main.init('editor');
editor.changeFloor = function(floorId,callback) {
core.changeFloor(floorId, null, core.firstData.hero.loc, null, function(){
editor.drawMapBg();
var mapArray = core.maps.getMapArray(core.status.maps, core.status.floorId);
editor.map = mapArray.map(function(v){return v.map(function(v){return editor.ids[[editor.indexs[v][0]]]})});
editor.updateMap();
if (core.isset(callback))callback();
});
}
//main.listen();
var afterMainInit = function(){
main.editor.disableGlobalAnimate=false;
//core.status.maps = core.clone(core.maps.initMaps(floorIds));
editor.init(editor.updateMap);
editor.init(function(){
//core.changeFloor('sample1')
//editor.drawMapBg()
var mapArray = core.maps.getMapArray(core.status.maps, core.status.floorId);
editor.map = mapArray.map(function(v){return v.map(function(v){return editor.ids[[editor.indexs[v][0]]]})});
editor.updateMap();
});
}
var startgame = function(){
var hard = 'Hard';

View File

@ -25,7 +25,7 @@
</div>
<p id='startTopLoadTips'>资源即将开始加载</p>
</div>
<img id='startBackground' src='images/bg.png'>
<img id='startBackground' src='project/images/bg.png'>
<!-- 标题界面可以改style的color使标题改变颜色 -->
<p id='startLogo' style="color: black"></p>
<div id='startButtonGroup'>
@ -48,39 +48,39 @@
</div>
<div id='statusBar' class="clearfix">
<div class="status" id="floorCol">
<img src='images/floor.png' id="img-floor">
<img src='project/images/floor.png' id="img-floor">
<p class='statusLabel' id='floor'></p>
</div>
<div class="status" id="lvCol">
<img src='images/lv.png' id="img-lv">
<img src='project/images/lv.png' id="img-lv">
<p class='statusLabel' id='lv'></p>
</div>
<div class="status">
<img src='images/hp.png' id="img-hp">
<img src='project/images/hp.png' id="img-hp">
<p class='statusLabel' id='hp'></p>
</div>
<div class="status">
<img src='images/atk.png' id="img-atk">
<img src='project/images/atk.png' id="img-atk">
<p class='statusLabel' id='atk'></p>
</div>
<div class="status">
<img src='images/def.png' id="img-def">
<img src='project/images/def.png' id="img-def">
<p class='statusLabel' id='def'></p>
</div>
<div class="status" id="mdefCol">
<img src='images/mdef.png' id="img-mdef">
<img src='project/images/mdef.png' id="img-mdef">
<p class='statusLabel' id='mdef'></p>
</div>
<div class="status" id="moneyCol">
<img src='images/money.png' id="img-money">
<img src='project/images/money.png' id="img-money">
<p class='statusLabel' id='money'></p>
</div>
<div class="status" id="expCol">
<img src='images/experience.png' id="img-experience">
<img src='project/images/experience.png' id="img-experience">
<p class='statusLabel' id='experience'></p>
</div>
<div class="status" id="upCol">
<img src='images/up.png' id="img-up">
<img src='project/images/up.png' id="img-up">
<p class='statusLabel' id='up'></p>
</div>
<div class="status">
@ -95,13 +95,13 @@
</div>
</div>
<div id="toolBar" class="clearfix">
<img src="images/book.png" class="tools" id='img-book'>
<img src="images/fly.png" class="tools" id='img-fly'>
<img src="images/toolbox.png" class="tools" id='img-toolbox'>
<img src="images/shop.png" class="tools" id='img-shop'>
<img src="images/save.png" class="tools" id='img-save'>
<img src="images/load.png" class="tools" id='img-load'>
<img src="images/settings.png" class="tools" id='img-settings'>
<img src="project/images/book.png" class="tools" id='img-book'>
<img src="project/images/fly.png" class="tools" id='img-fly'>
<img src="project/images/toolbox.png" class="tools" id='img-toolbox'>
<img src="project/images/shop.png" class="tools" id='img-shop'>
<img src="project/images/save.png" class="tools" id='img-save'>
<img src="project/images/load.png" class="tools" id='img-load'>
<img src="project/images/settings.png" class="tools" id='img-settings'>
<p class="statusLabel tools" id="hard"></p>
</div>
<div id="curtain"></div>

View File

@ -181,7 +181,7 @@ core.prototype.init = function (dom, statusBar, canvas, images, pngs, bgms, soun
core.flags.displayExtraDamage = core.getLocalStorage('extraDamage', core.flags.displayExtraDamage);
core.material.ground = new Image();
core.material.ground.src = "images/ground.png";
core.material.ground.src = "project/images/ground.png";
core.loader(function () {
console.log(core.material);
@ -298,7 +298,7 @@ core.prototype.loadImage = function (imgName, callback) {
if (name.indexOf(".png")<0) // 不包含"png"
name=name+".png";
var image = new Image();
image.src = 'images/' + name + "?v=" + main.version;
image.src = 'project/images/' + name + "?v=" + main.version;
if (image.complete) {
callback(imgName, image);
return;
@ -323,7 +323,7 @@ core.prototype.loadMusic = function (callback) {
if (core.musicStatus.audioContext!=null) {
core.material.bgms[t] = 'loading';
var xhr = new XMLHttpRequest();
xhr.open('GET', 'sounds/'+t, true);
xhr.open('GET', 'project/sounds/'+t, true);
xhr.overrideMimeType("text/plain; charset=x-user-defined");
xhr.onload = function(e) { //下载完成
try {
@ -360,7 +360,7 @@ core.prototype.loadMusic = function (callback) {
else {
var music = new Audio();
music.preload = core.musicStatus.startDirectly?'auto':'none';
music.src = 'sounds/'+t;
music.src = 'project/sounds/'+t;
music.loop = 'loop';
core.material.bgms[t] = music;
}
@ -370,7 +370,7 @@ core.prototype.loadMusic = function (callback) {
if (core.musicStatus.audioContext != null) {
var xhr = new XMLHttpRequest();
xhr.open('GET', 'sounds/'+t, true);
xhr.open('GET', 'project/sounds/'+t, true);
xhr.responseType = 'arraybuffer';
xhr.onload = function(e) { //下载完成
try {
@ -399,7 +399,7 @@ core.prototype.loadMusic = function (callback) {
}
else {
var music = new Audio();
music.src = 'sounds/'+t;
music.src = 'project/sounds/'+t;
core.material.sounds[t] = music;
}
@ -990,8 +990,8 @@ core.prototype.onmousewheel = function (direct) {
// 怪物手册
if (core.status.lockControl && core.status.event.id == 'book') {
if (direct==1) core.ui.drawBook(core.status.event.data - 1);
if (direct==-1) core.ui.drawBook(core.status.event.data + 1);
if (direct==1) core.ui.drawBook(core.status.event.data - 6);
if (direct==-1) core.ui.drawBook(core.status.event.data + 6);
return;
}
@ -3615,7 +3615,7 @@ core.prototype.isset = function (val) {
////// 播放背景音乐 //////
core.prototype.playBgm = function (bgm) {
if (main.mode!='play')return;
// 如果不允许播放
if (!core.musicStatus.bgmStatus) return;
// 音频不存在
@ -3666,7 +3666,7 @@ core.prototype.pauseBgm = function () {
////// 恢复背景音乐的播放 //////
core.prototype.resumeBgm = function () {
if (main.mode!='play')return;
// 如果不允许播放
if (!core.musicStatus.bgmStatus) return;
@ -3691,7 +3691,7 @@ core.prototype.resumeBgm = function () {
////// 播放音频 //////
core.prototype.playSound = function (sound) {
if (main.mode!='play')return;
// 如果不允许播放
if (!core.musicStatus.soundStatus) return;
// 音频不存在
@ -3730,6 +3730,11 @@ core.prototype.show = function (obj, speed, callback) {
return;
}
obj.style.display = 'block';
if (main.mode!='play'){
obj.style.opacity = 1;
if (core.isset(callback)) {callback();}
return;
}
obj.style.opacity = 0;
var opacityVal = 0;
var showAnimate = window.setInterval(function () {
@ -3750,6 +3755,11 @@ core.prototype.hide = function (obj, speed, callback) {
obj.style.display = 'none';
return;
}
if (main.mode!='play'){
obj.style.display = 'none';
if (core.isset(callback)) {callback();}
return;
}
var opacityVal = 1;
var hideAnimate = window.setInterval(function () {
opacityVal -= 0.03;

View File

@ -154,7 +154,7 @@ main.prototype.loaderFloors = function (callback) {
main.setMainTipsText('正在加载楼层文件...')
if (this.useCompress) { // 读取压缩文件
var script = document.createElement('script');
script.src = 'libs/project/floors.min.js?v=' + this.version;
script.src = 'project/floors.min.js?v=' + this.version;
main.dom.body.appendChild(script);
script.onload = function () {
main.dom.mainTips.style.display = 'none';
@ -189,7 +189,7 @@ main.prototype.loadMod = function (modName, callback) {
////// 加载某一个楼层 //////
main.prototype.loadFloor = function(floorId, callback) {
var script = document.createElement('script');
script.src = 'libs/project/floors/' + floorId +'.js?v=' + this.version;
script.src = 'project/floors/' + floorId +'.js?v=' + this.version;
main.dom.body.appendChild(script);
script.onload = function () {
callback(floorId);
@ -200,7 +200,7 @@ main.prototype.loadPureData = function(callback) {
var loadedNum = 0;
main.pureData.forEach(function(name){
var script = document.createElement('script');
script.src = 'libs/project/' + name +'.js?v=' + this.version;
script.src = 'project/' + name +'.js?v=' + main.version;
main.dom.body.appendChild(script);
script.onload = function () {
loadedNum++;

View File

@ -65,7 +65,7 @@ main.floors.sample0 = {
],
"2,3": [ // 守着第三批怪物的老人
"\t[老人,magician]领域、夹击。\n请注意领域怪需要设置value为伤害数值可参见样板中初级巫师的写法。",
"\t[老人,magician]夹击和领域同时发生时先计算领域,再夹击。\n自动寻路同样会尽量绕过你设置的这些点。\n\n另本塔不支持阻击怪。",
"\t[老人,magician]夹击和领域同时发生时先计算领域,再夹击。\n自动寻路同样会尽量绕过你设置的这些点。",
{"type": "hide", "time": 500}
],
"12,10": { // 隐藏的仙子

View File

Before

Width:  |  Height:  |  Size: 20 KiB

After

Width:  |  Height:  |  Size: 20 KiB

View File

Before

Width:  |  Height:  |  Size: 207 B

After

Width:  |  Height:  |  Size: 207 B

View File

Before

Width:  |  Height:  |  Size: 3.4 KiB

After

Width:  |  Height:  |  Size: 3.4 KiB

View File

Before

Width:  |  Height:  |  Size: 2.8 KiB

After

Width:  |  Height:  |  Size: 2.8 KiB

View File

Before

Width:  |  Height:  |  Size: 7.3 KiB

After

Width:  |  Height:  |  Size: 7.3 KiB

View File

Before

Width:  |  Height:  |  Size: 3.7 KiB

After

Width:  |  Height:  |  Size: 3.7 KiB

View File

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 16 KiB

View File

Before

Width:  |  Height:  |  Size: 464 B

After

Width:  |  Height:  |  Size: 464 B

View File

Before

Width:  |  Height:  |  Size: 276 B

After

Width:  |  Height:  |  Size: 276 B

View File

Before

Width:  |  Height:  |  Size: 37 KiB

After

Width:  |  Height:  |  Size: 37 KiB

View File

Before

Width:  |  Height:  |  Size: 508 B

After

Width:  |  Height:  |  Size: 508 B

View File

Before

Width:  |  Height:  |  Size: 995 B

After

Width:  |  Height:  |  Size: 995 B

View File

Before

Width:  |  Height:  |  Size: 854 B

After

Width:  |  Height:  |  Size: 854 B

View File

Before

Width:  |  Height:  |  Size: 600 B

After

Width:  |  Height:  |  Size: 600 B

View File

Before

Width:  |  Height:  |  Size: 5.3 KiB

After

Width:  |  Height:  |  Size: 5.3 KiB

View File

Before

Width:  |  Height:  |  Size: 479 B

After

Width:  |  Height:  |  Size: 479 B

View File

Before

Width:  |  Height:  |  Size: 27 KiB

After

Width:  |  Height:  |  Size: 27 KiB

View File

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

Before

Width:  |  Height:  |  Size: 478 B

After

Width:  |  Height:  |  Size: 478 B

View File

Before

Width:  |  Height:  |  Size: 291 B

After

Width:  |  Height:  |  Size: 291 B

View File

Before

Width:  |  Height:  |  Size: 6.4 KiB

After

Width:  |  Height:  |  Size: 6.4 KiB

View File

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 1.6 KiB

View File

Before

Width:  |  Height:  |  Size: 2.3 KiB

After

Width:  |  Height:  |  Size: 2.3 KiB

View File

Before

Width:  |  Height:  |  Size: 27 KiB

After

Width:  |  Height:  |  Size: 27 KiB

View File

Before

Width:  |  Height:  |  Size: 3.0 KiB

After

Width:  |  Height:  |  Size: 3.0 KiB

View File

Before

Width:  |  Height:  |  Size: 863 B

After

Width:  |  Height:  |  Size: 863 B

View File

Before

Width:  |  Height:  |  Size: 39 KiB

After

Width:  |  Height:  |  Size: 39 KiB

View File

@ -169,7 +169,7 @@
box-sizing: border-box;
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
background: url(images/ground.png) round;
background: url(project/images/ground.png) round;
z-index: 7;
display: none;
}
@ -198,7 +198,7 @@
}
#toolBar {
position: absolute;
background: url(images/ground.png) round;
background: url(project/images/ground.png) round;
z-index: 6;
box-sizing: border-box;
-moz-box-sizing: border-box;