From 59ba343881a54bcc682f4ce7adde6b375457b040 Mon Sep 17 00:00:00 2001 From: oc Date: Fri, 11 May 2018 18:22:31 +0800 Subject: [PATCH 01/41] Update API --- docs/_api.md | 367 ++++++++++++++++++++ docs/api.md | 783 ++++++++++++++++++++++++------------------- docs/img/console.png | Bin 0 -> 160020 bytes docs/start.md | 29 +- libs/core.js | 5 + 更新说明.txt | 1 + 6 files changed, 836 insertions(+), 349 deletions(-) create mode 100644 docs/_api.md create mode 100644 docs/img/console.png diff --git a/docs/_api.md b/docs/_api.md new file mode 100644 index 00000000..1939aa2c --- /dev/null +++ b/docs/_api.md @@ -0,0 +1,367 @@ +# 附录:API列表 + +?> 目前版本**v2.2.1**,上次更新时间:* {docsify-updated} * + +所有系统支持的API都列在了这里。所有可能被用到的API都在前面用\*标记。 + +可以在chrome浏览器的控制台中(`ctrl+shift+I`,找到Console)中直接进行调用,以查看效果。 + +!> **`main.js`:游戏入口,所有其他JS文件都是被此文件加载。** + +``` js +main.init // 初始化 +main.loaderJs // 动态加载所有核心JS文件 +main,loaderFloors // 动态加载所有楼层(剧本) +main.loadMod // 加载某一个JS文件 +main.loadFloor // 加载某一个楼层 +main.setMainTipsText // 加载过程提示 +window.onresize // 窗口大小变化时 +main.dom.body.onkeydown // 在界面上按下某按键时 +main.dom.body.onkeydown // 在界面上放开某按键时 +main.dom.body.onselectstart // 开始选择时 +main.dom.data.onmousedown // 鼠标按下时 +main.dom.data.onmousemove // 鼠标移动时 +main.dom.data.onmouseup // 鼠标放开时 +main.dom.data.onmousewheel // 鼠标滑轮滚动时 +main.dom.data.ontouchstart // 手指在触摸屏开始触摸时 +main.dom.data.ontouchmove // 手指在触摸屏上移动时 +main.dom.data.ontouchend // 手指离开触摸屏时 +main.statusBar.image.book.onclick // 点击状态栏中的怪物手册时 +main.statusBar.image.fly.onclick // 点击状态栏中的楼层传送器时 +main.statusBar.image.toolbox.onclick // 点击状态栏中的工具箱时 +main.statusBar.image.shop.onclick // 点击状态栏中的快捷商店时 +main.statusBar.image.save.onclick // 点击状态栏中的存档按钮时 +main.statusBar.image.load.onclick // 点击状态栏中的读档按钮时 +main.statusBar.image.settings.onclick // 点击状态栏中的系统菜单时 +main.dom.playGame.onclick // 点击“开始游戏”时 +main.dom.loadGame.onclick // 点击“载入游戏”时 +main.dom.replayGame.onclick // 点击“录像回放”时 +main.dom.easyLevel.onclick // 点击“简单难度”时 +main.dom.normalLevel.onclick // 点击“普通难度”时 +main.dom.hardLevel.onclick // 点击“困难难度”时 +``` + +!> **`core.js`:系统核心文件。所有核心逻辑处理都在此文件完成。** + +``` js +* core.status.floorId // 获得当前层floorId +* core.status.thisMap // 获得当前层的地图信息 +* core.status.maps // 获得所有楼层的地图信息 +* core.floors // 获得所有楼层的剧本 + +// ------ 初始化部分 ------ +core.init // 初始化 +core.showStartAnimate // 显示游戏开始界面 +core.hideStartAnimate // 隐藏游戏开始界面 +core.setStartProgressVal // 设置加载进度条进度 +core.setStartLoadTipText // 设置加载进度条提示文字 +core.loader // 加载图片和音频 +core.loadAutotile // 加载Autotile +core.loadImage // 加载图片 +core.loadMusic // 加载音频 +core.isPlaying // 游戏是否已经开始 +core.clearStatus // 清除游戏状态和数据 +core.resetStatus // 重置游戏状态和初始数据 +core.startGame // 开始游戏 +* core.restart // 重新开始游戏;此函数将回到标题页面 + +// ------ 键盘、鼠标事件 ------ +core.onKeyDown // 按下某个键时 +core.onKeyUp // 放开某个键时 +core.pressKey // 按住某个键时 +core.keyDown // 根据按下键的code来执行一系列操作 +core.keyUp // 根据放开键的code来执行一系列操作 +core.ondown // 点击(触摸)事件按下时 +core.onmove // 当在触摸屏上滑动时 +core.onup // 当点击(触摸)事件放开时 +core.getClickLoc // 获得点击事件相对左上角的坐标(0到12之间) +core.onclick // 具体点击屏幕上(x,y)点时,执行的操作 +core.onmousewheel // 滑动鼠标滚轮时的操作 + +// ------ 自动寻路代码相关 ------ +core.clearAutomaticRouteNode // 清除自动寻路路线 +core.stopAutomaticRoute // 停止自动寻路操作 +core.continueAutomaticRoute // 继续剩下的自动寻路操作 +core.clearContinueAutomaticRoute // 清空剩下的自动寻路列表 +core.setAutomaticRoute // 设置自动寻路路线 +core.automaticRoute // 自动寻路算法,找寻最优路径 +core.fillPosWithPoint // 显示离散的寻路点 +core.clearStepPostfix // 清除已经寻路过的部分 + +// ------ 自动行走,行走控制 ------ +core.stopAutoHeroMove // 停止勇士的自动行走 +core.setAutoHeroMove // 设置勇士的自动行走路线 +core.autoHeroMove // 让勇士开始自动行走 +core.setHeroMoveInterval // 设置行走的效果动画 +core.setHeroMoveTriggerInterval // 设置勇士行走过程中对事件的触发检测 +core.moveAction // 实际每一步的行走过程 +* core.turnHero(direction) // 设置勇士的方向(转向) +core.canMoveHero // 勇士能否前往某方向 +core.moveHero // 让勇士开始移动 +core.eventMoveHero // 使用事件让勇士移动。这个函数将不会触发任何事件。 +core.moveOneStep // 每移动一格后执行的事件。中毒时在这里进行扣血判断。 +core.waitHeroToStop(callback) // 停止勇士的一切行动,等待勇士行动结束后,再执行callback回调函数。 +core.stopHero // 停止勇士的移动状态。 +core.drawHero // 绘制勇士。 +* core.setHeroLoc(name, value) // 设置勇士的位置。name为”direction”,”x”,”y” +* core.getHeroLoc(name) // 获得勇士的位置。 +* core.nextX // 获得勇士面对位置的x坐标 +* core.nextY // 获得勇士面对位置的y坐标 + +// ------ 地图和事件处理 ------ +* core.openDoor(id, x, y, needKey, callback) // 打开一扇位于 (x,y) 的门 +* core.battle(id, x, y, force, callback) // 进行战斗;force表示是否强制战斗 +core.afterBattle // 战斗完毕 +core.trigger(x,y) // 触发x,y点的事件 +* core.changeFloor(floorId, stair, heroLoc, time, callback) // 楼层切换。floorId为目标楼层Id,stair可指定为上/下楼梯,time动画时间 +core.mapChangeAnimate // 地图切换动画效果 +core.clearMap // 清除地图 +core.fillText // 在某个canvas上绘制一段文字 +core.fillRect // 在某个canvas上绘制一个矩形 +core.strokeRect // 在某个canvas上绘制一个矩形的边框 +core.drawLine // 在某个canvas上绘制一条线 +core.setFont // 设置某个canvas的文字字体 +core.setLineWidth // 设置某个canvas的线宽度 +core.saveCanvas // 保存某个canvas状态 +core.loadCanvas // 加载某个canvas状态 +core.setStrokeStyle // 设置某个canvas边框属性 +core.setAlpha // 设置某个canvas的alpha值 +core.setOpacity // 设置某个canvas的透明度 +core.setFillStyle // 设置某个canvas的绘制属性(如颜色等) +* core.drawMap(mapId, callback) // 绘制某张地图。mapId为地图Id,绘制完毕将执行callback回调函数。 +core.drawAutotile // 绘制Autotile +* core.noPassExists(x,y) // 某个点是否不可通行 +core.noPass // 某个点是否在区域内且不可通行 +* core.npcExists(x,y) // 某个点是否存在NPC +* core.terrainExists(x,y) // 某个点是否存在(指定的)地形 +* core.stairExists(x,y) // 某个点是否存在楼梯 +* core.nearStair // 当前位置是否在楼梯边 +* core.enemyExists(x,y) // 某个点是否存在(指定的)怪物 +* core.getBlock(x, y, floorId, needEnable) // 获得某个点的block。floorId指定目标楼层,needEnable如果为false则即使该点的事件处于禁用状态也将被返回(否则只有事件启用的点才被返回) +core.moveBlock // 显示移动某块的动画,达到{“type”:”move”}的效果 +core.animateBlock // 显示/隐藏某个块时的动画效果 +core.showBlock // 将某个块从禁用变成启用状态 +core.removeBlock // 将某个块从启用变成禁用状态 +core.removeBlockById // 根据block的索引删除该块 +core.removeBlockByIds // 一次性删除多个block +core.addGlobalAnimate // 添加一个全局动画 +core.removeGlobalAnimate // 删除一个或所有全局动画 +core.setGlobalAnimate // 设置全局动画的显示效果 +core.syncGlobalAnimate // 同步所有的全局动画效果 +core.drawBoxAnimate // 绘制UI层的box动画 +core.updateCheckBlock // 更新领域、夹击、阻击的伤害地图 +core.checkBlock // 检查并执行领域、夹击、阻击事件 +core.snipe // 阻击事件(动画效果) +core.setFg // 更改画面色调 +* core.updateFg // 更新全地图显伤 +* core.itemCount // 获得某个物品的个数 +* core.hasItem // 是否存在某个物品 +* core.setItem // 设置某个物品的个数 +* core.removeItem // 删除某个物品 +* core.useItem // 使用某个物品;直接调用items.js中的useItem函数。 +* core.canUseItem // 能否使用某个物品。直接调用items.js中的canUseItem函数。 +* core.addItem // 增加某个物品的个数 +core.getNextItem // 获得面前的物品(轻按) +* core.getItem // 获得某个物品 +* core.drawTip // 左上角绘制一段提示 +* core.drawText // 地图中间绘制一段文字 + +// ------ 系统机制 ------ +core.replaceText // 将文字中的${和}(表达式)进行替换 +core.calValue // 计算表达式的值 +core.doEffect // 执行一个表达式的effect操作 +core.splitLines // 字符串自动换行的分割 +core.unshift // 向某个数组前插入另一个数组或元素 +core.setLocalStorage // 设置本地存储 +core.getLocalStorage // 获得本地存储 +core.removeLocalStorage // 移除本地存储 +core.clone // 深拷贝一个对象 +core.formatDate // 格式化时间为字符串 +core.formatDate2 // 格式化时间为最简字符串 +core.setTwoDigits // 两位数显示 +core.debug // 进入Debug模式,攻防血和钥匙都调成很高的数值 +core.replay // 开始回放 +core.checkStatus // 判断当前能否进入某个事件 +core.openBook // 点击怪物手册时的打开操作 +core.useFly // 点击楼层传送器时的打开操作 +core.openToolbox // 点击工具栏时的打开操作 +core.openQuickShop // 点击快捷商店时的打开操作 +core.save // 点击保存按钮时的打开操作 +core.load // 点击读取按钮时的打开操作 +core.openSettings // 点击设置按钮时的打开操作 +core.autosave // 自动存档 +core.doSL // 实际进行存读档事件 +core.syncSave // 存档同步操作 +core.saveData // 存档到本地 +core.loadData // 从本地读档 +core.encodeRoute // 将路线压缩 +core.decodeRoute // 将路线解压缩 +* core.setStatus // 设置勇士属性 +* core.getStatus // 获得勇士属性 +core.getLvName // 获得某个等级的名称 +* core.setFlag // 设置某个自定义变量或flag +* core.getFlag // 获得某个自定义变量或flag +* core.hasFlag // 是否存在某个自定义变量或flag,且值为true +core.insertAction // 往当前事件列表之前插入一系列事件 +* core.lockControl // 锁定状态栏,常常用于事件处理 +* core.unlockControl // 解锁状态栏 +* core.isset // 判断某对象是否不为undefined也不会null +core.readFile // 读取一个本地文件内容 +core.download // 下载文件到本地 +core.copy // 复制一段文字到剪切板 +* core.playBgm // 播放背景音乐 +* core.pauseBgm // 暂停背景音乐的播放 +* core.resumeBgm // 恢复背景音乐的播放 +* core.playSound // 播放音频 +core.show // 动画显示某对象 +core.hide // 动画使某对象消失 +core.clearStatusBar // 清空状态栏 +core.updateStatusBar // 更新状态栏 +core.resize // 屏幕分辨率改变后重新自适应 +core.domRenderer // 渲染DOM + +// ------ core.js 结束 ------ +``` + +!> **`data.js` 定义了一些初始化的数据信息。** + +!> **`enemys.js` 定义了怪物信息。** + +``` js +core.enemys.init // 初始化 +* core.enemys.getEnemys // 获得一个或所有怪物数据 +* core.enemys.hasSpecial // 判断是否含有某特殊属性 +* core.enemys.getSpecialText // 获得所有特殊属性的名称 +* core.enemys.getSpecialHint // 获得每个特殊属性的说明 +* core.enemys.getDamage // 获得某个怪物的伤害 +* core.enemys.getExtraDamage // 获得某个怪物的额外伤害 +* core.enemys.getCritical // 临界值计算 +* core.enemys.getCriticalDamage // 临界减伤计算 +* core.enemys.getDefDamage // 1防减伤计算 +* core.enemys.calDamage // 具体的伤害计算公式 +core.enemys.getCurrentEnemys // 获得当前楼层的怪物列表 +``` + +!> **`events.js` 定义了各个事件的处理流程。** + +``` js +core.events.init // 初始化 +core.events.getEvents // 获得一个或所有系统事件类型 +core.events.startGame // 游戏开始事件 +* core.events.setInitData // 不同难度分别设置初始属性 +* core.events.win // 游戏获胜事件 +* core.events.lose // 游戏失败事件 +core.evens.gameOver // 游戏结束 +core.events.afterChangeFloor // 转换楼层结束的事件 +core.events.doEvents // 开始执行一系列自定义事件 +core.events.doAction // 执行当前自定义事件列表中的下一个事件 +core.events.insertAction // 往当前事件列表之前添加一个或多个事件 +core.events.openShop // 打开一个全局商店 +core.events.disableQuickShop // 禁用一个全局商店 +* core.events.canUseQuickShop // 当前能否使用快捷商店 +* core.events.checkLvUp // 检查升级事件 +* core.events.useItem // 尝试使用道具 +core.events.addPoint // 加点事件 +core.events.afterBattle // 战斗结束后触发的事件 +core.events.afterOpenDoor // 开一个门后触发的事件 +core.events.passNet // 经过一个路障 +core.events.changeLight // 改变亮灯(感叹号)的事件 +* core.events.afterChangeLight // 改变亮灯之后,可以触发的事件 +* core.events.afterUseBomb // 使用炸弹/圣锤后的事件 +* core.events.beforeSaveData // 即将存档前可以执行的操作 +* core.events.afterLoadData // 读档事件后,载入事件前,可以执行的操作 + +// ------ 点击事件和键盘事件的处理 ------ +core.events.longClick // 长按 +core.events.keyDownCtrl // 按下Ctrl键时(快捷跳过对话) +core.events.clickConfirmBox // 确认框界面时的点击操作 +core.events.keyUpConfirmBox // 确认框界面时,放开某个键的操作 +core.events.clickAction // 自定义事件时的点击操作 +core.events.keyDownAction // 自定义事件时,按下某个键的操作 +core.events.keyUpAction // 自定义事件时,放开某个键的操作 +core.events.clickBook // 怪物手册界面的点击操作 +core.events.keyDownBook // 怪物手册界面时,按下某个键的操作 +core.events.keyUpBook // 怪物手册界面时,放开某个键的操作 +core.events.clickBookDetail // 怪物手册属性显示界面时的点击操作 +core.events.clickFly // 楼层传送器界面时的点击操作 +core.events.keyDownFly // 楼层传送器界面时,按下某个键的操作 +core.events.keyUpFly // 楼层传送器界面时,放开某个键的操作 +core.events.clickViewMaps // 浏览地图界面时的点击操作 +core.events.keyDownViewMaps // 浏览地图界面时,按下某个键的操作 +core.events.keyUpViewMaps // 浏览地图界面时,放开某个键的操作 +core.events.clickShop // 商店界面时的点击操作 +core.events.keyDownShop // 商店界面时,按下某个键的操作 +core.events.keyUpShop // 商店界面时,放开某个键的操作 +core.events.clickQuickShop // 快捷商店界面时的点击操作 +core.events.keyDownQuickShop // 快捷商店界面时,按下某个键的操作 +core.events.keyUpQuickShop // 快捷商店界面时,放开某个键的操作 +core.events.clickToolbox // 工具栏界面时的点击操作 +core.events.clickToolboxIndex // 选择工具栏界面中某个Index后的操作 +core.events.keyDownToolbox // 工具栏界面时,按下某个键的操作 +core.events.keyUpToolbox // 工具栏界面时,放开某个键的操作 +core.events.clickSL // 存读档界面时的点击操作 +core.events.keyDownSL // 存读档界面时,按下某个键的操作 +core.events.keyUpSL // 存读档界面时,放开某个键的操作 +core.events.clickSwitchs // 系统设置界面时的点击操作 +core.events.keyDownSwitchs // 系统设置界面时,按下某个键的操作 +core.events.keyUpSwitchs // 系统设置界面时,放开某个键的操作 +core.events.clickSettings // 系统菜单栏界面时的点击事件 +core.events.keyDownSettings // 系统菜单栏界面时,按下某个键的操作 +core.events.keyUpSettings // 系统菜单栏界面时,放开某个键的操作 +core.events.clickSyncSave // 同步存档界面时的点击操作 +core.events.keyDownSyncSave // 同步存档界面时,按下某个键的操作 +core.events.keyUpSyncSave // 同步存档界面时,放开某个键的操作 +core.events.clickKeyBoard // 虚拟键盘界面时的点击操作 +core.events.clickAbout // “关于”界面时的点击操作 +``` + +!> `icons.js` 定义了素材ID和它在图片上的索引的对应关系。 + +!> `items.js` 定义了每个道具的名称,以及使用效果。 + +``` js +core.items.init // 初始化 +core.items.getItems // 获得所有道具 +core.items.getItemEffect // “即捡即用类”道具的使用效果 +core.items.getItemEffectTip // “即捡即用类”道具的文字提示 +* core.items.useItem // 使用道具 +* core.items.cauUseItem // 当前能否使用道具 +``` + +!> `maps.js` 定义了数字-ID的对应关系。 + +``` js +core.maps.loadFloor // 加载某个楼层(从剧本或存档中) +core.maps.getBlock // 数字和ID的对应关系 +core.maps.addEvent // 向该楼层添加剧本的自定义事件 +core.maps.addChangeFloor // 向该楼层添加剧本的楼层转换事件 +core.maps.initMaps // 初始化所有地图 +core.maps.save // 将当前地图重新变成数字,以便于存档 +core.maps.load // 将存档中的地图信息重新读取出来 +core.maps.getMapArray // 将当前地图重新变成二维数组形式 +``` + +!> `ui.js` 定义了各种界面的绘制。 + +``` js +core.ui.closePanel // 结束一切事件和绘制,关闭UI窗口,返回游戏进程 +core.ui.drawTextBox // 绘制一个对话框 +core.ui.drawChoices // 绘制一个选项界面 +core.ui.drawConfirmBox // 绘制一个确认/取消的警告页面 +core.ui.drawSwitchs // 绘制系统设置界面 +core.ui.drawSettings // 绘制系统菜单栏 +core.ui.drawQuickShop // 绘制快捷商店选择栏 +core.ui.drawBattleAnimate // 绘制战斗动画 +core.ui.drawWaiting // 绘制等待界面 +core.ui.drawSyncSave // 绘制存档同步界面 +core.ui.drawPagination // 绘制分页 +core.ui.drawEnemyBook // 绘制怪物手册 +core.ui.drawBookDetail // 绘制怪物属性的详细信息 +core.ui.drawFly // 绘制楼层传送器 +core.ui.drawMaps // 绘制浏览地图界面 +core.ui.drawToolbox // 绘制道具栏 +core.ui.drawSLPanel // 绘制存档/读档界面 +core.ui.drawThumbnail // 绘制一个缩略图 +core.ui.drawAbout // 绘制“关于”界面 +core.ui.drawHelp // 绘制帮助界面 +``` diff --git a/docs/api.md b/docs/api.md index 1939aa2c..85098a39 100644 --- a/docs/api.md +++ b/docs/api.md @@ -2,366 +2,453 @@ ?> 目前版本**v2.2.1**,上次更新时间:* {docsify-updated} * -所有系统支持的API都列在了这里。所有可能被用到的API都在前面用\*标记。 +**这里只列出所有可能会被造塔者用到的常用API,更多的有关内容请在代码内进行查询。** + +如有任何疑问,请联系小艾寻求帮助。 可以在chrome浏览器的控制台中(`ctrl+shift+I`,找到Console)中直接进行调用,以查看效果。 -!> **`main.js`:游戏入口,所有其他JS文件都是被此文件加载。** +!> 最常用的新手向命令,强烈建议每个人了解 + +``` text + +core.status.floorId +获得当前层的floorId。 + + +core.status.maps +获得所有楼层的地图信息。 + + +core.status.thisMap +获得当前楼层信息,其等价于core.status.maps[core.status.floorId]。 + + +core.floors +获得所有楼层的信息,常常用来获取事件坐标。 + + +core.status.hero +获得当前勇士状态信息。例如core.status.hero.atk就是当前勇士的攻击力数值。 + + +core.material.enemys +获得所有怪物信息。例如core.material.enemys.greenSlime就是获得绿色史莱姆的属性数据。 + + +core.material.items +获得所有道具的信息。 + + +core.debug() +将攻防设置为10000,近似于无敌模式。 + + +core.updateStatusBar() +立刻刷新状态栏和地图显伤。 + + +core.setStatus('atk', 1000) +将攻击力设置为1000;这里把atk可以改成hp, def, mdef, money, experience等等。 +本句等价于 core.status.hero.atk = 1000 + + +core.getStatus('atk') +返回当前攻击力数值。本句等价于 core.status.hero.atk + + +core.setHeroLoc('x', 5) +设置勇士位置。这句话的意思是将勇士当前位置的横坐标设置为5。 +同理可以设置勇士纵坐标 core.setHeroLoc('y', 3)。 +值得注意的是,这句话虽然会使勇士改变位置,但并不会使界面重新绘制;如需立刻重新绘制地图还需调用: +core.clearMap('hero'); core.drawHero(); +来对界面进行更新。 + + +core.setItem('pickaxe', 10) +将破墙镐个数设置为10个。这里可以写任何道具的ID。 + + +core.getItem('pickaxe', 4) +另勇士获得四个破墙镐。这里可以写任何道具的ID。 + + +core.itemCount('pickaxe') +返回当前破墙镐的个数。这里可以写任何道具的ID。 + + +core.hasItem('pickaxe') +返回当前是否存在某个道具。等价于 core.itemCount('pickaxe')>0 。 + + +core.setFlag('xyz', 2) +设置某个flag/变量的值为2。这里可以写任何的flag变量名。 + + +core.getFlag('xyz', 7) +获得某个flag/变量的值;如果该变量不存在,则返回第二个参数。 +比如 core.getFlag('point', 2) 则获得变量point的值;如果该变量从未定义过则返回2。 + + +core.hasFlag('xyz') +返回是否存在某个变量且不为0。等价于 core.getFlag('xyz', 0)!=0 。 + + +core.insertAction(list) +插入并执行一段自定义事件。在这里你可以写任意的自定义事件列表,有关详细写法请参见文档-事件。 +例如: core.insertAction(["楼层切换", {"type":"changeFloor", "floorId": "MT3"}]) +将依次显示剧情文本,并执行一个楼层切换的自定义事件。 + + +core.changeFloor(floorId, stair, heroLoc, time, callback) +立刻切换到指定楼层。 +floorId为目标楼层ID,stair为到达的目标楼梯,heroLoc为到达的指定点,time为动画时间,callback为切换完毕后的回调。 +例如: +core.changeFloor('MT2', 'upFloor', null, 600) 切换到MT2层的上楼点,动画事件600ms +core.changeFloor('MT5', null, {'x': 3, 'y': 6}, 0) 无动画切换到MT5层的(3,6)位置。 + + +core.resetMap() +重置当前楼层地图。 +当我们修改某一层地图后,进游戏读档,会发现修改的内容并没有被更新上去。 +这是因为,H5的存档是会存下来每一个楼层的地图的,读档会从档里面获得地图信息。 +此时,如果我们在某一层地图执行 core.resetMap() ,则可以立刻从剧本中读取并重置当前楼层地图。 +已经被修改过的内容也会相应出现。 + + +R +录像回放的快捷键;这不是一个控制台命令,但是也把它放在这里供使用。 +录像回放在修改地图或新增数据后会很有用。 + + +localStorage +获得所有的存档数据。可以用 core.getLocalStorage('save1') 来具体获得某个存档。 -``` js -main.init // 初始化 -main.loaderJs // 动态加载所有核心JS文件 -main,loaderFloors // 动态加载所有楼层(剧本) -main.loadMod // 加载某一个JS文件 -main.loadFloor // 加载某一个楼层 -main.setMainTipsText // 加载过程提示 -window.onresize // 窗口大小变化时 -main.dom.body.onkeydown // 在界面上按下某按键时 -main.dom.body.onkeydown // 在界面上放开某按键时 -main.dom.body.onselectstart // 开始选择时 -main.dom.data.onmousedown // 鼠标按下时 -main.dom.data.onmousemove // 鼠标移动时 -main.dom.data.onmouseup // 鼠标放开时 -main.dom.data.onmousewheel // 鼠标滑轮滚动时 -main.dom.data.ontouchstart // 手指在触摸屏开始触摸时 -main.dom.data.ontouchmove // 手指在触摸屏上移动时 -main.dom.data.ontouchend // 手指离开触摸屏时 -main.statusBar.image.book.onclick // 点击状态栏中的怪物手册时 -main.statusBar.image.fly.onclick // 点击状态栏中的楼层传送器时 -main.statusBar.image.toolbox.onclick // 点击状态栏中的工具箱时 -main.statusBar.image.shop.onclick // 点击状态栏中的快捷商店时 -main.statusBar.image.save.onclick // 点击状态栏中的存档按钮时 -main.statusBar.image.load.onclick // 点击状态栏中的读档按钮时 -main.statusBar.image.settings.onclick // 点击状态栏中的系统菜单时 -main.dom.playGame.onclick // 点击“开始游戏”时 -main.dom.loadGame.onclick // 点击“载入游戏”时 -main.dom.replayGame.onclick // 点击“录像回放”时 -main.dom.easyLevel.onclick // 点击“简单难度”时 -main.dom.normalLevel.onclick // 点击“普通难度”时 -main.dom.hardLevel.onclick // 点击“困难难度”时 ``` -!> **`core.js`:系统核心文件。所有核心逻辑处理都在此文件完成。** +!> 一些相对高级的命令,针对有一定脚本经验的人 -``` js -* core.status.floorId // 获得当前层floorId -* core.status.thisMap // 获得当前层的地图信息 -* core.status.maps // 获得所有楼层的地图信息 -* core.floors // 获得所有楼层的剧本 +``` text -// ------ 初始化部分 ------ -core.init // 初始化 -core.showStartAnimate // 显示游戏开始界面 -core.hideStartAnimate // 隐藏游戏开始界面 -core.setStartProgressVal // 设置加载进度条进度 -core.setStartLoadTipText // 设置加载进度条提示文字 -core.loader // 加载图片和音频 -core.loadAutotile // 加载Autotile -core.loadImage // 加载图片 -core.loadMusic // 加载音频 -core.isPlaying // 游戏是否已经开始 -core.clearStatus // 清除游戏状态和数据 -core.resetStatus // 重置游戏状态和初始数据 -core.startGame // 开始游戏 -* core.restart // 重新开始游戏;此函数将回到标题页面 +========== 可直接从core中调用的,最常被使用的函数 ========== +core.js实际上是所有API的入口(路由),核心API的实现在其他几个文件中,core.js主要进行转发操作。 -// ------ 键盘、鼠标事件 ------ -core.onKeyDown // 按下某个键时 -core.onKeyUp // 放开某个键时 -core.pressKey // 按住某个键时 -core.keyDown // 根据按下键的code来执行一系列操作 -core.keyUp // 根据放开键的code来执行一系列操作 -core.ondown // 点击(触摸)事件按下时 -core.onmove // 当在触摸屏上滑动时 -core.onup // 当点击(触摸)事件放开时 -core.getClickLoc // 获得点击事件相对左上角的坐标(0到12之间) -core.onclick // 具体点击屏幕上(x,y)点时,执行的操作 -core.onmousewheel // 滑动鼠标滚轮时的操作 -// ------ 自动寻路代码相关 ------ -core.clearAutomaticRouteNode // 清除自动寻路路线 -core.stopAutomaticRoute // 停止自动寻路操作 -core.continueAutomaticRoute // 继续剩下的自动寻路操作 -core.clearContinueAutomaticRoute // 清空剩下的自动寻路列表 -core.setAutomaticRoute // 设置自动寻路路线 -core.automaticRoute // 自动寻路算法,找寻最优路径 -core.fillPosWithPoint // 显示离散的寻路点 -core.clearStepPostfix // 清除已经寻路过的部分 +core.nextX() +获得勇士面向的下一个位置的x坐标 -// ------ 自动行走,行走控制 ------ -core.stopAutoHeroMove // 停止勇士的自动行走 -core.setAutoHeroMove // 设置勇士的自动行走路线 -core.autoHeroMove // 让勇士开始自动行走 -core.setHeroMoveInterval // 设置行走的效果动画 -core.setHeroMoveTriggerInterval // 设置勇士行走过程中对事件的触发检测 -core.moveAction // 实际每一步的行走过程 -* core.turnHero(direction) // 设置勇士的方向(转向) -core.canMoveHero // 勇士能否前往某方向 -core.moveHero // 让勇士开始移动 -core.eventMoveHero // 使用事件让勇士移动。这个函数将不会触发任何事件。 -core.moveOneStep // 每移动一格后执行的事件。中毒时在这里进行扣血判断。 -core.waitHeroToStop(callback) // 停止勇士的一切行动,等待勇士行动结束后,再执行callback回调函数。 -core.stopHero // 停止勇士的移动状态。 -core.drawHero // 绘制勇士。 -* core.setHeroLoc(name, value) // 设置勇士的位置。name为”direction”,”x”,”y” -* core.getHeroLoc(name) // 获得勇士的位置。 -* core.nextX // 获得勇士面对位置的x坐标 -* core.nextY // 获得勇士面对位置的y坐标 +core.nextY() +获得勇士面向的下一个位置的y坐标 -// ------ 地图和事件处理 ------ -* core.openDoor(id, x, y, needKey, callback) // 打开一扇位于 (x,y) 的门 -* core.battle(id, x, y, force, callback) // 进行战斗;force表示是否强制战斗 -core.afterBattle // 战斗完毕 -core.trigger(x,y) // 触发x,y点的事件 -* core.changeFloor(floorId, stair, heroLoc, time, callback) // 楼层切换。floorId为目标楼层Id,stair可指定为上/下楼梯,time动画时间 -core.mapChangeAnimate // 地图切换动画效果 -core.clearMap // 清除地图 -core.fillText // 在某个canvas上绘制一段文字 -core.fillRect // 在某个canvas上绘制一个矩形 -core.strokeRect // 在某个canvas上绘制一个矩形的边框 -core.drawLine // 在某个canvas上绘制一条线 -core.setFont // 设置某个canvas的文字字体 -core.setLineWidth // 设置某个canvas的线宽度 -core.saveCanvas // 保存某个canvas状态 -core.loadCanvas // 加载某个canvas状态 -core.setStrokeStyle // 设置某个canvas边框属性 -core.setAlpha // 设置某个canvas的alpha值 -core.setOpacity // 设置某个canvas的透明度 -core.setFillStyle // 设置某个canvas的绘制属性(如颜色等) -* core.drawMap(mapId, callback) // 绘制某张地图。mapId为地图Id,绘制完毕将执行callback回调函数。 -core.drawAutotile // 绘制Autotile -* core.noPassExists(x,y) // 某个点是否不可通行 -core.noPass // 某个点是否在区域内且不可通行 -* core.npcExists(x,y) // 某个点是否存在NPC -* core.terrainExists(x,y) // 某个点是否存在(指定的)地形 -* core.stairExists(x,y) // 某个点是否存在楼梯 -* core.nearStair // 当前位置是否在楼梯边 -* core.enemyExists(x,y) // 某个点是否存在(指定的)怪物 -* core.getBlock(x, y, floorId, needEnable) // 获得某个点的block。floorId指定目标楼层,needEnable如果为false则即使该点的事件处于禁用状态也将被返回(否则只有事件启用的点才被返回) -core.moveBlock // 显示移动某块的动画,达到{“type”:”move”}的效果 -core.animateBlock // 显示/隐藏某个块时的动画效果 -core.showBlock // 将某个块从禁用变成启用状态 -core.removeBlock // 将某个块从启用变成禁用状态 -core.removeBlockById // 根据block的索引删除该块 -core.removeBlockByIds // 一次性删除多个block -core.addGlobalAnimate // 添加一个全局动画 -core.removeGlobalAnimate // 删除一个或所有全局动画 -core.setGlobalAnimate // 设置全局动画的显示效果 -core.syncGlobalAnimate // 同步所有的全局动画效果 -core.drawBoxAnimate // 绘制UI层的box动画 -core.updateCheckBlock // 更新领域、夹击、阻击的伤害地图 -core.checkBlock // 检查并执行领域、夹击、阻击事件 -core.snipe // 阻击事件(动画效果) -core.setFg // 更改画面色调 -* core.updateFg // 更新全地图显伤 -* core.itemCount // 获得某个物品的个数 -* core.hasItem // 是否存在某个物品 -* core.setItem // 设置某个物品的个数 -* core.removeItem // 删除某个物品 -* core.useItem // 使用某个物品;直接调用items.js中的useItem函数。 -* core.canUseItem // 能否使用某个物品。直接调用items.js中的canUseItem函数。 -* core.addItem // 增加某个物品的个数 -core.getNextItem // 获得面前的物品(轻按) -* core.getItem // 获得某个物品 -* core.drawTip // 左上角绘制一段提示 -* core.drawText // 地图中间绘制一段文字 +core.openDoor(id, x, y, needKey, callback) +尝试开门操作。id为目标点的ID,x和y为坐标,needKey表示是否需要使用钥匙,callback为开门完毕后的回调函数。 +例如:core.openDoor('yellowDoor', 10, 3, false, function() {console.log("1")}) -// ------ 系统机制 ------ -core.replaceText // 将文字中的${和}(表达式)进行替换 -core.calValue // 计算表达式的值 -core.doEffect // 执行一个表达式的effect操作 -core.splitLines // 字符串自动换行的分割 -core.unshift // 向某个数组前插入另一个数组或元素 -core.setLocalStorage // 设置本地存储 -core.getLocalStorage // 获得本地存储 -core.removeLocalStorage // 移除本地存储 -core.clone // 深拷贝一个对象 -core.formatDate // 格式化时间为字符串 -core.formatDate2 // 格式化时间为最简字符串 -core.setTwoDigits // 两位数显示 -core.debug // 进入Debug模式,攻防血和钥匙都调成很高的数值 -core.replay // 开始回放 -core.checkStatus // 判断当前能否进入某个事件 -core.openBook // 点击怪物手册时的打开操作 -core.useFly // 点击楼层传送器时的打开操作 -core.openToolbox // 点击工具栏时的打开操作 -core.openQuickShop // 点击快捷商店时的打开操作 -core.save // 点击保存按钮时的打开操作 -core.load // 点击读取按钮时的打开操作 -core.openSettings // 点击设置按钮时的打开操作 -core.autosave // 自动存档 -core.doSL // 实际进行存读档事件 -core.syncSave // 存档同步操作 -core.saveData // 存档到本地 -core.loadData // 从本地读档 -core.encodeRoute // 将路线压缩 -core.decodeRoute // 将路线解压缩 -* core.setStatus // 设置勇士属性 -* core.getStatus // 获得勇士属性 -core.getLvName // 获得某个等级的名称 -* core.setFlag // 设置某个自定义变量或flag -* core.getFlag // 获得某个自定义变量或flag -* core.hasFlag // 是否存在某个自定义变量或flag,且值为true -core.insertAction // 往当前事件列表之前插入一系列事件 -* core.lockControl // 锁定状态栏,常常用于事件处理 -* core.unlockControl // 解锁状态栏 -* core.isset // 判断某对象是否不为undefined也不会null -core.readFile // 读取一个本地文件内容 -core.download // 下载文件到本地 -core.copy // 复制一段文字到剪切板 -* core.playBgm // 播放背景音乐 -* core.pauseBgm // 暂停背景音乐的播放 -* core.resumeBgm // 恢复背景音乐的播放 -* core.playSound // 播放音频 -core.show // 动画显示某对象 -core.hide // 动画使某对象消失 -core.clearStatusBar // 清空状态栏 -core.updateStatusBar // 更新状态栏 -core.resize // 屏幕分辨率改变后重新自适应 -core.domRenderer // 渲染DOM -// ------ core.js 结束 ------ -``` - -!> **`data.js` 定义了一些初始化的数据信息。** - -!> **`enemys.js` 定义了怪物信息。** - -``` js -core.enemys.init // 初始化 -* core.enemys.getEnemys // 获得一个或所有怪物数据 -* core.enemys.hasSpecial // 判断是否含有某特殊属性 -* core.enemys.getSpecialText // 获得所有特殊属性的名称 -* core.enemys.getSpecialHint // 获得每个特殊属性的说明 -* core.enemys.getDamage // 获得某个怪物的伤害 -* core.enemys.getExtraDamage // 获得某个怪物的额外伤害 -* core.enemys.getCritical // 临界值计算 -* core.enemys.getCriticalDamage // 临界减伤计算 -* core.enemys.getDefDamage // 1防减伤计算 -* core.enemys.calDamage // 具体的伤害计算公式 -core.enemys.getCurrentEnemys // 获得当前楼层的怪物列表 -``` - -!> **`events.js` 定义了各个事件的处理流程。** - -``` js -core.events.init // 初始化 -core.events.getEvents // 获得一个或所有系统事件类型 -core.events.startGame // 游戏开始事件 -* core.events.setInitData // 不同难度分别设置初始属性 -* core.events.win // 游戏获胜事件 -* core.events.lose // 游戏失败事件 -core.evens.gameOver // 游戏结束 -core.events.afterChangeFloor // 转换楼层结束的事件 -core.events.doEvents // 开始执行一系列自定义事件 -core.events.doAction // 执行当前自定义事件列表中的下一个事件 -core.events.insertAction // 往当前事件列表之前添加一个或多个事件 -core.events.openShop // 打开一个全局商店 -core.events.disableQuickShop // 禁用一个全局商店 -* core.events.canUseQuickShop // 当前能否使用快捷商店 -* core.events.checkLvUp // 检查升级事件 -* core.events.useItem // 尝试使用道具 -core.events.addPoint // 加点事件 -core.events.afterBattle // 战斗结束后触发的事件 -core.events.afterOpenDoor // 开一个门后触发的事件 -core.events.passNet // 经过一个路障 -core.events.changeLight // 改变亮灯(感叹号)的事件 -* core.events.afterChangeLight // 改变亮灯之后,可以触发的事件 -* core.events.afterUseBomb // 使用炸弹/圣锤后的事件 -* core.events.beforeSaveData // 即将存档前可以执行的操作 -* core.events.afterLoadData // 读档事件后,载入事件前,可以执行的操作 - -// ------ 点击事件和键盘事件的处理 ------ -core.events.longClick // 长按 -core.events.keyDownCtrl // 按下Ctrl键时(快捷跳过对话) -core.events.clickConfirmBox // 确认框界面时的点击操作 -core.events.keyUpConfirmBox // 确认框界面时,放开某个键的操作 -core.events.clickAction // 自定义事件时的点击操作 -core.events.keyDownAction // 自定义事件时,按下某个键的操作 -core.events.keyUpAction // 自定义事件时,放开某个键的操作 -core.events.clickBook // 怪物手册界面的点击操作 -core.events.keyDownBook // 怪物手册界面时,按下某个键的操作 -core.events.keyUpBook // 怪物手册界面时,放开某个键的操作 -core.events.clickBookDetail // 怪物手册属性显示界面时的点击操作 -core.events.clickFly // 楼层传送器界面时的点击操作 -core.events.keyDownFly // 楼层传送器界面时,按下某个键的操作 -core.events.keyUpFly // 楼层传送器界面时,放开某个键的操作 -core.events.clickViewMaps // 浏览地图界面时的点击操作 -core.events.keyDownViewMaps // 浏览地图界面时,按下某个键的操作 -core.events.keyUpViewMaps // 浏览地图界面时,放开某个键的操作 -core.events.clickShop // 商店界面时的点击操作 -core.events.keyDownShop // 商店界面时,按下某个键的操作 -core.events.keyUpShop // 商店界面时,放开某个键的操作 -core.events.clickQuickShop // 快捷商店界面时的点击操作 -core.events.keyDownQuickShop // 快捷商店界面时,按下某个键的操作 -core.events.keyUpQuickShop // 快捷商店界面时,放开某个键的操作 -core.events.clickToolbox // 工具栏界面时的点击操作 -core.events.clickToolboxIndex // 选择工具栏界面中某个Index后的操作 -core.events.keyDownToolbox // 工具栏界面时,按下某个键的操作 -core.events.keyUpToolbox // 工具栏界面时,放开某个键的操作 -core.events.clickSL // 存读档界面时的点击操作 -core.events.keyDownSL // 存读档界面时,按下某个键的操作 -core.events.keyUpSL // 存读档界面时,放开某个键的操作 -core.events.clickSwitchs // 系统设置界面时的点击操作 -core.events.keyDownSwitchs // 系统设置界面时,按下某个键的操作 -core.events.keyUpSwitchs // 系统设置界面时,放开某个键的操作 -core.events.clickSettings // 系统菜单栏界面时的点击事件 -core.events.keyDownSettings // 系统菜单栏界面时,按下某个键的操作 -core.events.keyUpSettings // 系统菜单栏界面时,放开某个键的操作 -core.events.clickSyncSave // 同步存档界面时的点击操作 -core.events.keyDownSyncSave // 同步存档界面时,按下某个键的操作 -core.events.keyUpSyncSave // 同步存档界面时,放开某个键的操作 -core.events.clickKeyBoard // 虚拟键盘界面时的点击操作 -core.events.clickAbout // “关于”界面时的点击操作 -``` - -!> `icons.js` 定义了素材ID和它在图片上的索引的对应关系。 - -!> `items.js` 定义了每个道具的名称,以及使用效果。 - -``` js -core.items.init // 初始化 -core.items.getItems // 获得所有道具 -core.items.getItemEffect // “即捡即用类”道具的使用效果 -core.items.getItemEffectTip // “即捡即用类”道具的文字提示 -* core.items.useItem // 使用道具 -* core.items.cauUseItem // 当前能否使用道具 -``` - -!> `maps.js` 定义了数字-ID的对应关系。 - -``` js -core.maps.loadFloor // 加载某个楼层(从剧本或存档中) -core.maps.getBlock // 数字和ID的对应关系 -core.maps.addEvent // 向该楼层添加剧本的自定义事件 -core.maps.addChangeFloor // 向该楼层添加剧本的楼层转换事件 -core.maps.initMaps // 初始化所有地图 -core.maps.save // 将当前地图重新变成数字,以便于存档 -core.maps.load // 将存档中的地图信息重新读取出来 -core.maps.getMapArray // 将当前地图重新变成二维数组形式 -``` - -!> `ui.js` 定义了各种界面的绘制。 - -``` js -core.ui.closePanel // 结束一切事件和绘制,关闭UI窗口,返回游戏进程 -core.ui.drawTextBox // 绘制一个对话框 -core.ui.drawChoices // 绘制一个选项界面 -core.ui.drawConfirmBox // 绘制一个确认/取消的警告页面 -core.ui.drawSwitchs // 绘制系统设置界面 -core.ui.drawSettings // 绘制系统菜单栏 -core.ui.drawQuickShop // 绘制快捷商店选择栏 -core.ui.drawBattleAnimate // 绘制战斗动画 -core.ui.drawWaiting // 绘制等待界面 -core.ui.drawSyncSave // 绘制存档同步界面 -core.ui.drawPagination // 绘制分页 -core.ui.drawEnemyBook // 绘制怪物手册 -core.ui.drawBookDetail // 绘制怪物属性的详细信息 -core.ui.drawFly // 绘制楼层传送器 -core.ui.drawMaps // 绘制浏览地图界面 -core.ui.drawToolbox // 绘制道具栏 -core.ui.drawSLPanel // 绘制存档/读档界面 -core.ui.drawThumbnail // 绘制一个缩略图 -core.ui.drawAbout // 绘制“关于”界面 -core.ui.drawHelp // 绘制帮助界面 +core.battle(id, x, y, force, callback) +执行战斗事件。id为怪物的id,x和y为坐标,force为bool值表示打不过是否强制战斗,callback为战斗完毕后的回调函数。 +例如:core.battle('greenSlime', null, null, true) + + +core.trigger(x, y) +触发某个地点的事件。 + + +core.clearMap(mapName) +清空某个画布。mapName可为'bg', 'event', 'fg', 'event2', 'hero', 'animate', 'weather', 'ui', 'data', 'all'之一。 +如果mapName为'all',则为清空所有画布;否则只清空对应的画布。 + + +core.drawBlock(block) +重绘某个图块。block应为core.status.thisMap.blocks中的一项。 + + +core.drawMap(floorId, callback) +重绘某一层的地图数据。floorId为要绘制那一层的floorId,callback为绘制完毕后的回调函数。 + + +core.terrainExists(x, y, id, floorId) +检测某个点是否存在(指定的)地形。 +x和y为坐标;id为地形ID,可为null表示任意地形;floorId为楼层ID,可忽略表示当前楼层。 + + +core.enemyExists(x, y, id, floorId) +检测某个点是否存在(指定的)怪物。 +x和y为坐标;id为怪物ID,可为null表示任意怪物;floorId为楼层ID,可忽略表示当前楼层。 + + +core.getBlock(x, y, floorId, needEnable) +获得某个点的当前图块信息。 +x和y为坐标;floorId为楼层ID,可忽略或null表示当前楼层。 +needEnable表示该点是否启用时才返回,其值不设置则默认为true。 +该函数返回值如下: {"index": xxx, "block": xxx} +其中index为该点在该楼层blocks数组中的索引,block为该图块实际内容。 + + +core.showBlock(x, y, floorId) +将某个点从禁用变成启用状态 + + +core.removeBlock(x, y, floorId) +将某个点删除或从禁用变成启用状态。 +如果该点不存在自定义事件(比如普通的怪物),则将直接从地图中删除。 +否则将该点设置为禁用,以供以后可能的启用事件。 + + +core.useItem(itemId, callback) +尝试使用某个道具。itemId为道具ID,callback为成功或失败后的回调。 + + +core.canUseItem(itemId) +返回当前能否使用某个道具。 + + +core.getNextItem() +轻按。 + + +core.drawTip(text, itemIcon) +在左上角绘制一段提示信息,2秒后消失。itemIcon为道具图标的索引。 + + +core.drawText(contents, callback) +绘制一段文字。 + + +core.closePanel() +结束一切事件和绘制,关闭UI窗口,返回游戏进程。 + + +core.replaceText(text) +将一段文字中的${}进行计算并替换。 + + +core.calValue(value) +计算表达式的实际值。这个函数可以传入status:atk等这样的参数。 + + +core.getLocalStorage(key, defaultValue) +从localStorage中获得某个数据(已被parse);如果对应的key不存在则返回defaultValue。 + + +core.clone(data) +深拷贝某个对象。 + + +core.isset(x) +测试x是否不为null,不为undefined也不为NaN。 + + +core.rand(num) +使用伪种子生成伪随机数。该随机函数能被录像支持。 +num如果设置大于0,则生成一个[0, num-1]之间的数;否则生成一个0到1之间的浮点数。 +此函数为伪随机算法,SL大法无效。(即多次SL后调用的该函数返回的值都是相同的。) + + +core.rand2(num) +使用系统的随机数算法得到的随机数。该随机函数能被录像支持。 +num如果设置大于0,则生成一个[0, num-1]之间的数;否则生成一个0到2147483647之间的整数。 +此函数使用了系统的Math.random()函数,支持SL大法。 +但是,此函数会将生成的随机数值存入录像,因此如果调用次数太多则会导致录像文件过大。 + + +core.restart() +返回标题界面。 + + +core.updateFg() +更新全地图显伤。包括怪物显伤、临界显示和领域显伤等。 + + +========== core.actions.XXX 和游戏控制相关的函数 ========== +actions.js主要用来进行用户交互行为的处理。 +所有用户行为,比如按键、点击、滑动等等,都会被此文件接收并进行操作。 + + +========== core.control.XXX 和游戏控制相关的函数 ========== +control.js主要用来进行游戏控制,比如行走控制、自动寻路、存读档等等游戏核心内容。 + + +========== core.enemys.XXX 和怪物相关的函数 ========== +enemys.js主要用来进行怪物相关的内容,比如怪物的特殊属性,伤害和临界计算等。 + + +core.enemys.hasSpecial(special, test) +测试怪物是否含有某个特殊属性。 +常见用法: core.enemys.hasSpecial(monster.special, 3) ## 测试是否拥有坚固 + + +core.enemys.getSpecialText(enemyId) +返回一个列表,包含该怪物ID对应的所有特殊属性。 + + +core.enemys.getSpecialHint(enemy, special) +获得怪物某个(或全部)特殊属性的文字说明。 + + +core.enemys.canBattle(enemyId) +返回当前能否战胜某个怪物。 + + +core.enemys.getDamage(enemyId) +返回当前对某个怪物的战斗伤害。如果无法战斗,返回null。 + + +core.enemys.getExtraDamage(enemyId) +返回某个怪物会对勇士造成的额外伤害(不可被魔防抵消),例如仇恨、固伤等等。 + + +core.enemys.nextCriticals(enemyId, number) +返回接下来number个该怪物的临界。列表每一项类似 "x:y" 表示临界值为x,该临界减伤为y。 + + +core.enemys.getCritical(enemyId) +返回怪物的下一个临界值。无临界(如坚固、魔防等)返回'???'。 + + +core.enemys.getCriticalDamage(enemyId) +获得怪物的下一个临界减伤。 + + +core.enemys.getDefDamage(enemyId) +获得一防减伤值。 + + +core.enemys.getDamageInfo(enemyId, hero_hp, hero_atk, hero_def, hero_mdef) +获得实际战斗信息,比如伤害,回合数,每回合伤害等等。 +此函数是实际战斗过程的计算。 + + +core.enemys.calDamage(enemyId, hero_hp, hero_atk, hero_def, hero_mdef) +计算战斗伤害;实际返回的是上面getDamageInfo中伤害的数值。 + + +core.enemys.getCurrentEnemys(floorId) +获得某一层楼剩余所有怪物的信息(供怪物手册使用) + + +========== core.events.XXX 和事件相关的函数 ========== +events.js主要用来进行事件处理,比如自定义事件,以及某些条件下可能会被触发的事件。 +大多数事件API都在脚本编辑中存在,这里只列出部分比较重要的脚本编辑中不存在的API。 + + +core.events.gameOver(ending, fromReplay) +游戏结束并上传的事件。 +该函数将提问是否上传和是否下载录像,并返回标题界面。 + + +core.events.doEvents(list, x, y, callback) +开始执行某个事件。 + + +core.events.doAction() +执行下一个事件。此函数中将对所有自定义事件类型分别处理。 + + +core.events.openShop(shopId, needVisited) +打开一个全局商店。needVisited表示是否需要该商店已被打开过。 + + +core.events.disableQuickShop(shopId) +禁用一个全局商店 + + +core.events.canUseQuickShop(shopId) +当前能否使用某个快捷商店 + + +========== core.items.XXX 和道具相关的函数 ========== +items.js将处理和道具相关的内容,比如道具的使用,获取和删除等等。 + + +========== core.loader.XXX 和游戏加载相关的函数 ========== +loader.js将主要用来进行资源的加载,比如加载音乐、图片、动画等等。 + + +========== core.maps.XXX 和地图处理相关的函数 ========== +maps.js主要用来进行地图相关的的操作。包括绘制地图,获取地图上的点等等。 + + +core.maps.canMoveHero(x,y,direction,floorId) +判断能否前往某个方向。x,y为坐标,可忽略为当前点;direction为方向,可忽略为当前方向。 +floorId为楼层ID,可忽略为当前楼层。 + + +core.maps.canMoveDirectly(destX, destY) +判断当前能否瞬间移动到某个点。 + + +core.maps.removeBlockById(index, floorId) +根据索引删除或禁用某块。 + + +core.maps.removeBlockByIds(floorId, ids) +根据索引删除或禁用若干块。 + + +========== core.ui.XXX 和地图处理相关的函数 ========== +ui.js主要用来进行UI窗口的绘制,比如对话框、怪物手册、楼传器、存读档界面等等。 + + +core.ui.drawThumbnail(floorId, canvas, blocks, x, y, size, heroLoc, heroIcon) +绘制一个缩略图,比如楼传器界面,存读档界面等情况。 +floorId为目标楼层ID,canvas为要绘制到的图层,blocks为要绘制的所有图块。 +x,y为该图层开始绘制的起始点坐标,size为每一格的像素,heroLoc为勇士坐标,heroIcon为勇士图标。 + + +========== core.utils.XXX 和地图处理相关的函数 ========== +utils.js主要用来进行一些辅助函数的计算。 + + +core.utils.splitLines(canvas, text, maxLength, font) +自动切分长文本的换行。 +canvas为图层,text为要自动换行的内容,maxLength为每行最长像素,font为文本的字体。 + + +core.utils.cropImage(image, size) +纵向对图片进行切分(裁剪)。 + + +core.utils.unshift(a, b) +向某个数组前插入另一个数组或元素 + + +core.utils.formatBigNumber(x) +大数据的格式化 + + +core.utils.arrayToRGB(color) +将形如[255,0,0]之类的数组转成#FF0000这样的RGB形式。 + + +core.utils.encodeRoute(list) +压缩加密路线。可以使用core.encodeRoute(core.status.route)来压缩当前路线。 + + +core.utils.decodeRoute(route) +解压缩(解密)路线。 + + +core.utils.readFile(success, error, readType) +尝试请求读取一个本地文件内容。 +success和error为成功/失败后的回调,readType不设置则以文本读取,否则以DataUrl形式读取。 + + +core.utils.readFileContent(content) +文件读取完毕后的内容处理。 + + +core.utils.download(filename, content) +尝试生成并下载一个文件。 + + +core.utils.copy(data) +尝试复制一段文本到剪切板。 + + +core.http(type, url, formData, success, error, mimeType) +发送一个异步HTTP请求。 +type为'GET'或者'POST';url为目标地址;formData如果是POST请求则为表单数据。 +success为成功后的回调,error会失败后的回调,mimeType如果设置则覆盖。 + ``` diff --git a/docs/img/console.png b/docs/img/console.png new file mode 100644 index 0000000000000000000000000000000000000000..68f550191293fc3bb959078c66d87eee7915a7ea GIT binary patch literal 160020 zcmZsCcRbZ!{J+MnT&qDuXrahT$et0hU3<@rYhUYH8Og4E>`k&a7uV`i6xm$d>k=}r zOENC5@q0_($M^fk&tKQ&-t#{5^;{=XLrswi%m^kUBcoD!A+JS71|laTJ3n~k67Y_| ztKAGTvO8o-@-jL;8EZIl|Nq8XPd3duIKQ!gbpCsOxAC6C^XIuWjgVY4$f#5wuN4i4 zwCJJ?OLg(et?P!>;U)ERGv!yg(?O-@D}ukxJ-_&Ljr8G{)Qo^g0!PB+hac9me|%@g zr&4{xwA$;^GM%{tGR6>Dy>m3+d;rK z7=>P<8XmiO_8rzKfB$s#M)KM3WIMP2_hI={?)-iCGmk@W68E}q1J0|o+GBn17~Y%7 z--$^6PyhQT)m)HR*+&}{M_NNY_aFS|M!CzqL-@h_9HE4Vj~+?UyQrzz_IsfW><$E0 zAAcHI{Pl(hPV&N*Kc~PpLDT8z>5YcsGSMqPS-g5u3nzESXKGp!`l~|YMNnz_iA$6f znpDEhQ?Hsg+M3}479AIvo>;%YsONdK93S8jKAVM;;{nWp0X)}uR4q;4rpf2u&a&%8pf$fi6O2F{B0CE}9O(;fTbq)=c* zoNcU_*AE|!lwyslyqZ!CzGD1Ti+#e5_@66|7)#;wqm31GuA?3Hw@EIyQPsq;071&j zmW0r43CJv;(0N4?bkUO|lx0m}otyg>f23NS>~%}6l{ZW)lgMrR(rm^}yfcs5PlzYR zCFQ*3EPmxS<7Ppv0eiC%iQ=nZCMnONShH)6zHy`vVXP>qEe0oof}y%`x%F=SPXk{m zW50@a4@ObNz~gip1k>&272|1+PNKkt@zq25ipi3B4MTzX7x4KFN{F_pRHuWKAt75o zi&qVsxrDBXZ3nfeUl>VSWC7f{;3cy#cIodblzyF9lkxJG2wgv&-`d`~m?M1L1mST2 z*Y%h7<_i3yg!P?|MeNt8K=JqEC;9~j>UKa0k2ivxtD!3G-(N@2fSWztEY4ZK9`Xu!&CAPnW%;7IMP2;7pCpoHi=;oy~q! zIxRv(IQNP#JuX7#UlD|;eWmkm>QEedr1k-?V^1c($iqdKfW+oHFRIrF%cJw z*tGhDeS0l{o3{p%MRl9M<6zO?_IGr0nw~i*d|&7#Q2a1P~2IT8U~#8bv&=Yh2C=7w! z0Nq;b;~7-BOz(x1>=MzvF50jlRHagZ#OPL(~;7TE(QKfvSV z^@1vG)s^W&RktXTF^^i+l~u$nQ=iyG!L!7D-Rt3(msos$zFv8y4Z@?#YdNz0hml?c zhlXiC#|L)~CkFx-S@LWQ3!!xcOugd`mJ!H~>beVCZ?{2N?>gTa1P;@W_)O|{ntDer z6zHD8*_t{q>3d_n=6xrpLLm5emY7QjPSDEwf%KYyxaTzaJU4n)H>Mry%<`n4WvhFY z?}x&)jn~$%XY~=_YaZ-ICm$Aag}R#Op73nfS_t{+moYeI(b3Wx9#_@8;|lsI-OH6> zwe>^;E#%VQGDz+hK9I=jFtSV=^8D|C@lN*!hnlBc(@O4mY93D)R7YlSpI-MP=)S_l zVlQt)rb;qrQ|;W8F_%I6Gy*#9#Ds9J&$I1w!Udf;mRA7py-IiZV?}e5j;<-#m9$G( zuLh2Hq6XjI{!(@`Tti=fxkHYdV%>dv*X-(M#_Fcf;{ zn$LcI!DfD3H8iWiV=FZ;%S8zt<6;j_LA)Fh?$UJ1~@ z1qol`WL(;=xptwwntwjPYKu!}r3oKh#$tQlGNW-y$k&E=uSMMF$1u;t{-&(XOn(%C zJWCE&-nsO>!Ply5BEz(^Y&>IAS7SL{1oLJ=wSnIXtlUgnsP7BZdonU3x8os2hwQ?hP;7&NDT#V_-a-nt<>EYW{>ZySY`4@R`BQ_$xe}I_JvnA_9M#^_l=uBB;7rJDyh zS!awblvl9{$g#d`lCQo*7dS85(elv(QUm?Kn(ylOx=;IEQjwXn#p~GAe6UcLRP|)W`rxtR5#CeTqJ1z z7DmbfIAa(G{-F?tUP^qEohuaMb#8vSCfM!JvzK?gfa!E@g0~G@{pxYPOPL7w1!ZEJ zQUW`=#zv)gV8C0h;n9P1QCP_lY32kW=!ljtS^lqK%DtBxU174r-ak=swMym!*JSm5 z&x(7!=O(N^jIWC@B^dRc;_yDfMj8Jamx% zd2aFf!LC@QW}XHxg`h}9_QIsMpqh$#%8d&4sWz*^9g#mTux$a_%R^rn!}_ZqZBJ<4 zb{N3Gc2{b??siRq5Kdzb=|`&%jEFc+EYjCwXTVI3(bhq{W1%-0dpF{?mPONs!)@l9 z4v6`>q^=UN$}XN3$2X8Q)r^l(RX1H{A)++PAzyy~dSIamas7^t5U%m{0CQLB1%A+Y zJoD!H`DTBnXM6($z2&%7u4@+(!}mL#^xHT&RAxy0G#8XU;w2?))n0A*6N5yLmp4H| zl`g#L+UB_kcJS);dX6C*${6Dy)0x*vW_;6NIl|l9k33nO4u!wR|HYfYe)vVgZ3Nl{ z?RBzF9a3MoMEUj?R~Gvn$k*AK<6U9+R-Z8Ls>{ii)QJ^B3V7>*oMg?Cgq#DsI^#HlPiYX$30KzSXg$@uFP(CnFPN#m~J^#$?yY z8XJV5XCOqiKV5hra66y1NkgZ1j$l+SL`!clzsOxS_D0s|&zEeclTzneA#NkA;t7MJ zFK)MCLzeh6D}trE6S?MylY{Qr4vnLI8gONr^9o~<-uFsaATHC|Y9a*~y6{`24@QIE zC$137N5xD82E#aRr~W+O@j<`#O<9W5JO^d9MKvcSo>SP%e9}nomauIMlVXmGDHxCI z@D(cL8}M7;i2U+rHzb)Vu-e+qrYOucL&qRKc)oZ+ec zFm(xGgR($D`MV=yZnk2Pw^une%;h) z5mTkPcl~G)w}jGxaPyfjrgTeLi#yD=7nWikG1c;g?`(m=Wqd*UeK9C{hETqhPy8L? zr@NkPl`%ZY3WsH43SnS!x(v>z zs(SosmcvtnM^gx!TEUIFc4l`UmvkwjfMc4K*I>Aw(f1@l-DiOt+BdtHguK^{jjGIL>S>nkbH43wEh!%Ka^ykl zpc~Vzr7$(fRTht}t4s~zfzm}4T?yUlRd+iNj5^9|(Im*+~l!oU2R)=`38kXib&31&Z&z7##iI<gO1H(F3_{=q%)vHy!AyYNq( z{@Te_QuEb8A8XV2gd2cbG%*Nk%97kMF{=KfKD``b}@FWq;}PGD4`}Xsa;*s zvD%?rFz`gqXuLW!T=Hr!)y3k}oK+brwv@QS_0Zx03cfGc7 z^Y>9RKbHDy$-QG^Zks`(MdUj1Vw6nw-m1?AveFH_%9`o)sW)!SPkgu6iW#!{WaKcZ zxAF`QvcX1_9$&hI1k)#p>CSF%I#0E~4h*%%t2C4A3E!t2KpMXS&G%v$CG~#0U&4GY zg32<1Y*n(B*jc`h>;?Mr_k^zocfB)ov`jhI~gn9E5oM##aMO1H9F zm*cj}ZYS%fa^_Xr7MtFi-fFQDMdTg>5=3MCXmJ9(GDZnHBm}-TV$*p5bGG~dF!V|I z4T`nm?vwGGLCxQ6{h#5wPPQs_HGcE z1ZP{~k~~aDJMPW{G^w+LE+8?bzOl1P58CzNHh!6g!6inH!}G_&ywj`h+Z1-cN?!R3 zx|ydc_y#CWRJkZ%Q-(mZAV#aIsn0>+0q}Vlb91lRk9Z2G-)q^XYr41?jSJviX8sPR zA1UroW_}HUtCt&Y+0MkUm?2{Eff=mMy(ycslQAk6UP@uze0JwKpMDSjU{z-R;}zH2 zjLWC%KNzEUF6E8Wh#W`{AWFzy*mNKXN}p9+T8`Mny&K7Oi=fu^Ara8)i|J5Y^M;|4 z%xk)AkGO?5{hC^g{en0Tb)(}UMcwTgV);%SGrB~b)rdGKhcGHs8%ro})fc+g585w@G$Fi36pU^nPrg1ED~B`- zq3eoXGdBi#b8&vJ?xb0<@jyVU6$luEfeZ!oD>$-S@iA}ajpSd({+nOfq>fh9aXw** z1qvBA4zwQpnT=q@+)x*vy%ewGZFzEcrS}k^efj`9BMhtX*58j8ui+#ps%p^9q==wP zJDj>t2ZAhzy)RXud%cxtdWxXF8Ze87l_n(dnyqtEwC~MPG_QP0pPC4ZY}uQO=FwM9 zzOo@;CTQkQywo&WVlPJ!=hFWB znYaC1H?z*eBIVY+;mvDw7diRH@_|u7=RKzww-Pe(Z23dQ4__HehVGXnB8;{^d07*u z5!|B{=)QEUw-{nFzjme}du_ardb&2h9zTKda>P7^LLH9>m1#gC|omCyAll;>3p%u{G*zqt6f@74-3GOv3z z<0KE3Q}6)F51`MZV&J&D4+Ju0N5yf?|9l*zej$EDR~2Da{0N-aL<X%VMz#K^@pbJCIMqOKZxl0`h=}KF$_OmS^3BKNAa7mzfVV2BvEqxdX((P zzSUK6SP5aGaY)D+=kQfT1YPIr0h|%li5adTf>;+RdP-Z)J1?IS!$0OnyS?*69dHfh z9_9eW(DjoBqKbQ`aSFaZbUM& zTX~d<|Nfzt$pwq(17_3?m`L}^e~KGi(0=#}C=5_-Tr1C28vc)x7;M7&|J4`&uNbjtTzm+X;llk74hwo_4}P z1QZ6~N@aT^DDc2J6-FnsB*fzE<-Q~y3f|?qhWe&eMn~UYLz7VbN1)Rs*I+;L$>za> z!$qLD=j42TL&apPnl8lM;0#DFLV<@qOwU|%2(<%}k605XW6z#WMOTKQ4wyqq#K+wf z0lPR8uSuKt-Gqjj^(0<{nlCKywd%(W6}J2EYA*r?jQ5nPQyYNcSWos8@iXo1@E8XE zysm-DE%XDB{B$&LoBn!$NyA|-$*G&Fy?&QV$bh6!-WfmW$UTD8-`=`*nE8GsJ90iw ztltoTTivWd{t9uG18`IbX!o>uY7CB?{%21hN6~}7+xpp1LgHTaB`z_3CDmI`U%ktO zp$#UT6+jzpqzbs?=9e3e+b!UWc^lmktbzLZ&~G=xLkhF}N^m~&vFk@2;S_{W8p*2s zI8n}C?%vy=&^(7~1QeSDH%o?Q2w>A%gubT%8}?th+C6%AkiN?>wO6>Vzza@9 z(}-lO3%bl;cW*wvc^rJ@b)`|AXUlzfK5xC?5h*El9u%&`$c^J{Ngk*y4PmOhYYEz(4$@CF`CVS z$TZG2G#EuUZ&YR6uH6yF8R|mxk*eYcJgas>2@aNX*I8)~Ts2Askn{{zL!a z&UQWXl=Z6nsmZG&;{=eI)>eK9JW>0wa8V4^h#VVTyHh1=(jW~ zh2~40noM?kw%>*v59@h{%((Jk9tNJ(`nbY7L*5=gJ_6Nw7!)8`HR3ylHh+<_?5EYl z;a48a=R*k!m2}!Z3>1BHV!Um_3^)}E6(%z$`oJoi?+|7E6WP%YAQ%jUDT>pEZtl?p z{O9Y-#>+(D0zqt=D@BH0G!6xs3MRGMNgj`~AAlt<*!%d;}3V8x#p|}+4NpBqf1}R+f z-rbEB*w~}Q)XjzAg zht;8@Fp#}L9$sl7Yk2~>f!au3@63B1eQ${t#@U!fTF}{`d?EcMqlzP^6X2VatG=aY_r1M)TH1U%sOaflS^$I;uF6TKx zs~V(0sbAHTZmpD*l^)aq!&T*I6`mTxcwAi>Hl0$jnK4|busK5xS&KJGL(jXEVl6pZOU^!x{?oSuM0|; z1e6kk+x(tP9O;$#NyvzPiesgu8zYDw7^4WVJ}`KUS@edQ)R8CsqP>vSz<_g^!#BGu z-!2HF9|oNqwcXx-7ID*CUJD~MIjpJax6YSRk6?C{mjzG=Ck`j$`*+sp-GQ&@>wUYfXFz&*O-aXN>%RGxp+Ya6t<&;_lUqC^8K)j)x3t^KUCss zGWtmdwb|KLs>pRFkL*M)J>6vo)(lS$+!G16$df}sltz`|;N@`e6)q;mr7#vYrG~#A z*vGMnYAfjSVD2NRnA@EEc&7WQa^Fgm`IJ4kGENgTE4I-xA0it|u9uj@CpxH%5Fgta zdiusFo<)KaCuyylZ+6sEW+1?|g6>oHn!!cUi2YE;GzjAda}B%4ytQ&|_+souUupc> zK^M8*zs5@B-WuK^DV@B^jZ`tLcc3FLa}?wJha{N9eX8K{BaLAw{wpJzGDV+hcC_6Z zoYBi>Cr?Pf5`KqNTiwS;QA>=1B6y@n^8?^qO4Yp;$ou1?&s?RUnm2AFe`NZ1{^gB+ z6+ouj!9qGNP(S;8^RfO_50kv#8YGKxJ@;>SZNcPLuYQJho*WiV{jm%W&yA=QeY`S= zifZ<(&Pd`m0p*^Tg{@p%O@FCw{DC~|3|86g{hk$cXF)QKt9^}NFP$ zIqd%cpho>IK|dDzprim|fwEssJ%-vkW8#~*_UyCgoP^Kq(4GyQ_4mX5tyQ`Y0t zA1+T{*j;C)zCbqRca#O;#l1%sw|<@kNA7x6#HP zui$^UIjbxa9x`@YjIUw)S?Zu`S4`b)4uhZKLC5}hz!Ep?hcMR{FiYP%TZk6gVPOf6!%9tiI+xQG>`vi_*t8|QUvv^ zGHN(Vri=VyiQ>6a9!7C4A3EJKnI`CH+bbtEfT=KR4>WjX(RcT3!RzD%{{~V9?v?Rk z>(B5bh4H1gjq4o}PlE+Q05JV_kf1IplCD}VIJFm|U5GS@91(2GVbU8^7s@ku%Oz4_ z4n4)dSb8)6YaY1QmswsVn|K*eH9RCaBUjkzJKzVY%}ZHuEsUO2@~Q96d@3mS36AR= zOwma0Po2F}LOsVtYSB1<*Us#(v&2ic;ymsq@tw(?!2FR{EH> zY_Tz;BLjiEweG!hzAFXES{NR>)GOyl9%asCGK+al07RpQTie`cqm_sx+f39m ztvwgv^4(%Moj_DFkR3wDHGt32w*Hf?MyI+Y6SV00%di!Cy|Q) zXrTjN4M$ZLox_+n7|thcIW(6>_}X%iR~3;o=S3{x$JQp_2S~>h|1tBbMhX#e8nI;tufa zKoUUVy!1?~&)P)w`ySM6XGAlpgm7I`(7FuVYMpHa?f87{wER~^53?4mc73X7AEFZ+ z%T-dA&y5U`IT|Vl+)-r|__5TRi*?x=! zbQxqxho{D!Txa;IY?&Phz!Q39`mt>D6;#RI`40+IhRSj+fnqdQYkpz zYXunbJ>2`Hfo#_OPy>9N$YKg74B|CU(YE=fl;Nd{uqEs+n(|8tZCR(uTdv;AVyDTW zDbn)K!cSlDmSvo>CmGqdZ$A2oh#HP)vqTOoNyEZW%0BuBGRl#}gc$DtqVJ(FGcwa*OIFfKf zY029ThlK5J1f5`y?!T2ZTNy4;DF`aOWGA(I^6l;r?(>md{!bpCa*SfG2`8>ad*7t6 znkfM$qsOo|@UMzAR{??qGE(jmCBr*}mBW+_%w+Tdn_s!K2Fjf8p^j^#>ukrjT|t>8 z?Y*mqp~Mgh9#`D?Bi3#d_|q~hveEfVtzAU(waXF%J29(plaEUfsj zLJXj~xQ%sr$QWk){y$Ro-|?LvUsA#{MPcr=wpv;l7t@}`8J-S)oB)w#*B%SZHd_HZNYvMQBh?`h9a^*_tPe2j& zj5m2*(xSt?%(@zq@d(_j6R^b9t8?q7NhEzd4Vw0eA6Q{bbu8NZF-VQE<4&qPL38J) z+3_Fx231b1qBdI=XGCawsAciGccIPl62z(^Dx|J?9of4J=%Mb|R{^~bq{hLQci{YE z)fz`jH*Vk1vZ&}#7}_uhB7ijmAVtY*-X`x{v}-omivP{t;AS^#cC{6r#wPr_OY2Tj z>Dx96#I+Hx*HhIF3ekizdTfi`N7vE}D={%g8#jFoW1GK&R zuhI0~IE8Z-RcQh&0lI;fH+lWuhAk8Fo2f|3@-PWBLs=f_>JeNBy@7m%;#m^)ssZa9 znLbu>{~II?e##`~RhAiayieYsncNV;;`eZ!q(dwP_a%t~j7a!xU|DJc1fU}pzki|< z*B6O^r!;x()|JV_FI3L{DEpBzA9R`fJcVu&^6FBFp@zxZogCRJw9>AL*1I{b+LqID z3t~sDccB1M%)!48BtF(lY>&RM9k&+poZy15w-NGl=Cf_e47BlG3Tk5gt8*-;;iyB;9O~O|+S9ClH_s6N&Wm2~# zEw6vsMA8?+JFbsXf`aPV4ts@U&)O>}F``PL2A_|hVoD;|e)+fwik|W5gitQ}?<5`> zQ)p)d-^=>elM4^Hx8?I+B%_W(V8 zx7IwGBXeOq^J#jbrD!|m+(#95BqPNcUdTa5#qbv0dV8VvY9S+~gRu<#6;6iHy^t6# z{mLSE3%m0}PR<@fCfchd%+jaA@!xTQ7z@u$)|T(>jGGA0DRX5yh4FkDd^zPu_9E^K zc)x@FAN>4CkD`RaZN>V2)2$T2TV$&j&Uz~y8|`^t_nH3pP0)Rlw<@QrmXd7jUlRs3 z=BN-S;amklAph$q*P%k$>Y?$H~KN zRAr4W`>&hca~@oRuL?mO9|_>($)sujJ#4*v7yUNM96V2v^wh;!bvhdss zdP~S@+39MOCdg{_6r@@k%aA=X1aizr z>)!3Pr4>ldZO4y#i1bi~e-;Ca)}3XpOE+S9i+H}gU+*MGUad5!?c!tu;Vd z?>Fx~H+orJa{r@h#I|)9}wSq*#ij! z_n7+3f=B>2F?p-Y4B+f6D!|4z^;=;R!*Tgazz|@_+?8 z$A-WFYv1rF)F3NCEM5Z5k|jEZq-1eg$_hX*Z;t7Cby5jWv|hgbZnz2H2Ue9~{TFh) z$aRaqmYP!V=t&FO^w45kd}~YJV&NOD1R%5Apj&R3SQWMxjTH0iEE=}hvm$HK-uj|@pB7c=&RPj2I-aur#2`mojcr-E0Pdm8p%Fn_) z!m9T=w=h_JNpr_IFW3c$3iDLa*2^r7wqfix=e{N-C)3*x0OZNQc}CyF`_$`p1T^&y zA;l5jj{r@C011J@3X7q<=kJBORu#(e2M72{=wOb_qil|U@_{*h;U-8BVIJ8y%-q%|u!b;(J{s64`;z9)999*FTjPa*(Vsv_^j-PvE? z69{dj^;)s@#!gV^fz?SDlZ)r;92!vl)CfbkRaZ#(~Hw|jwa-fPzUlehb{p2s}DyB9fJ?pW0TZ$u`+LyMPskbgm9;s;t;Dag7IfZh9JA$3_&WkA#KE&}6345C0GUa-D2*7J6;6liP z?AJRG5GP=BiOt6dOx2d$pflEBzOrUGEK>ZYLjb~g@LiHt>r$tz)EkSZkV(~SNgQk` zF-roDT(V9KGd%g-Nz?4{0Dq4Fva?nbY>cjtKd)Iou6Jei5OA!rOFz&C(a;9#dVfe- z{U4(v7_T4>N6-O846k5p(TcoE#4m-&%!KQsf23UVE$6%$?g7|$^;1)Sw)7E>%G>B-jr}U%JaDvHzsrACLBE}6y`J>gj3vtxKnDQq6m9hj zx4WbJaH19N#b`+W^4a-OmVCu{FOyfbN&@upjDnnhXeirC`cJIR&1sKY#TM%){Hv>P zn9*ga67bEhUcb`>7rIVy#u-MFawMoEc7aCpEd$-Jcip)dZ1V30*J!W+rmlKKEvY`Sv6BSt=R!~v#EDKnL6`NU0N~zHtU+}LDAdnK>I(D% zkOGuBLwfe^ve7raVBK*%l!r&cGmT62&!4+Bm^Cm>M#SFWYSi_pCZckfSMyM95vbM zeRiJHSV6Gg1BQ3p#*KU{i0_CmOP%8F0d@MMLiaTv(s@{-ttP9W!+)nW z+izzzvEJ)3kT(byG3S5d(5ZLen&LATo+fw3QJoe#+-+!Zf27eP3S^qM5vYF*MBT&Ej z4Bjz_n{ESRz#-CoG&7Ydr>V z4FQR-Q1Pjx-3tI3TW|3@n(`QcaJG!t{TbC(p9HwNh6OA0#;LXoO%d~U{#B33-&JDo z_+@<-p9mJ^6qSyqUbPH&+eCL$Oyni&Aq@F4i>}Kz9=qe!vWAD?%nQr1Ypm&(o5R}&G4V6SGDwv-JW;+=3!`L2JQnP0Im=Q zy;(ohP^*&6gKi5Tx#P#YO!QiQYGelhF}HG{Y}271`Tywc^%x&V!W@mNEyKCZ+NMOk z)|Suz0BR$fJ?Y8oGwQPXUVhAT6G`m4QR>HMnrL38{B^ZXFmYGM_VD?g%)>o6cv9Zt z0}bj!DsZ7d;`iqZ>pQ>%;^PYLtOGZ1yy;-VGyWb;gdIs!w%iVW3EEN6qcv@Y9l%MK z50PP>iEydLMM5* zT70T0u-l@@(#ne$)HZ-4vgqm*d;Zpovd_F}G?D>t8O7siUWU$qa4G?Mqs)H5tEf@4ON$gH^a%(@-)z^Qul;NRfh$&PS0>w#w{xb#>wQCW2WfbnXDw*E1=l^~0 zGXaRL#@>nnh3aOiFOAFP=E#a=nh|%4^5fjG_#+kG*8hHI9EhJ`h44TJyD~DNG_#5$ z+ByfRAgClCM2r@E;I$WNqXS9l`)=~@u#8h?Ba5N`!e(^S8_W$Y4U74N01`jzJbbz~^FT_0wkcjTx$EI5Y;1e)LzAGN(BD%lR_W=8 zYYPz-5E{R1gCe3lKz1x@p8h$KBw%CX8iT;OfXu$|5lbp*27nIl3cq%)lKAM@xE{4y z+S6h!6IZ$x`zbldgG-OZTNcwCjTfv+{Plf)@OS@5F-p7oRWzxif!hc%0Yqm^8cb$v z&6F7Y_ksuYE_C60m`ZVeM?XVpy2@9z8vu{Eg#VH-6hlic5UN97ya|SJA3WA!Ta}9b z=@Tv(`%kD)oP*I+#4UfFNX%s}?2wlykSf zQHR5T3koTJYw-<_JN*AV>$oU7@TXyr2qe;0X?LLbw%GLJFV!6#%Q<{Qf?W=*R=4xm z0ld$=`<)}(y7`ttVQO^fSVYMeZE2s~NjtkHoBC{|vg6CIY4T^818W&o2mnamfzRp; zFz>4(NT$yM>V!g=RWdrA1WH~&!XW=e~;!4)08T5>2`a=1H zHC)JnaC%eMFj=!yH8Vy(}6x_BH~r1THcQIwN>;ua3u z&pS@P67Gez+gUf6I;NuS)58!>{LR0v*P_dNS$JDCb`g~%%fg2j9~jwdAU)$Bvuu} zwns`Lz!lEMpeVd8Xw}{kmlH_=GLqUUg62w5R=FgZ27s>G9~R#6Od$M z%T{X9B22f#@W)7;|IV2GD+s~4Gh;xip+UA?&jtBMnTa$PeM>^`$v?br&wi<+;sd(IW-?eG4&e6nXsMSMA70e9$qia= z6~BcPMme{Xe1b1Wa!k2}kmS90c1(h;%Euksjj^wcd}kMu35mkfZ{a`mONQUbL$}6@ zqGW<-lO^&1AnEr0$l1jyDilz<_(i$UOt)v6$(_>{+Hde=GXS1-Pxf;n(*}kINFy$?*E0~LAPxZmY(z$2AD<&gY-^_TgT6?V& zKpe|D=)zSGLdEqVg~88rqdF3Myu9N88N>Ao;Muy5YR(30Lx1;jj;vELb#z}PR9fM0 zgRjsXXTXvshYMzR6j^Qs9{;>hE71RtVo0lCpyM(%M$aVY22N~cn9W#qe@t(ovre9v zTLZlcGN`Ulnn_q0>4aovwQqlDWSCi|}WYUSt` zhs}&0>*Jmr8QTQ*@OCEAH|M2rytwAVY-*_%^UoCn!!zTa)1`*LJ`4sR?|9O%0(b45 zzC9|`U;4b1zuGhd++jdi%qtKBH>jDXJh~-1t;%^$*2Rd1uXA@*<%Ouyhwo=VD z6M(pQf^RK+UdQ!@zbmA?y^OB6AL~gIcGO*Pj2*vZrc}HY)nBk%WYR{eU+)z_ZMbpE z{Y#z65_sAM5yB2@9n#?;Vv@(B68_RfFwCc(r%4twZ8l?$p_lb4QIav+5F@{bFDD_7 zK5Esc%5s^tej0pq<2p{vtgk4T6G`E$Is_w?NJ;3tPOBIcPJq7f+@PHUZ8UTYTi^BA zn4Yx@PZF?83NO!d82-7r`ieo{0Nmfz`X?$AcChkZxnmc;Hj92FkEcI~(UB?2sWQPL z7CN4fivOc5;c2XceT>J4c8FG`ksAIh+~NwkrwQKTn=m&zSdb2VZ;4i;``)bWd>6zR zP_Nd7O3a_fYvyx$J3)Sc9zE7t$gE5m5izPO@~6vnY1oC>W@1@pRb{5P%x)>66x(Oe;A1$4ymE$|hmoObfSG@gt^HpQjpyO`VZgMk7n6rTa>fz`FJfzmf$O>BhM!<#d7KZ! zjY_J9eH>8AvQm+6vY*M{5Pzt#nIQ2hMh;dEq!G$2l}(-sDj02lp$~j442#tzF6yxF zza3Ku5(i0wV?3R?$3-B7)14LsMVT^8eWS%BZ-OE?5WzcMrimXmDq6*Wex) zEVx6k3GNO7f?KfQKEM#%9fCs$?(Q(W$-Vbm>#et5|D7LmPM_}GwfC;7<|2#R*E6W9 z$`=ZMMcr|OUt%MPNlEe$#nmV=7uE^&IG86;YWHRALRE2JpAg|*X_CIB_Fg9-`~CsG zY;)h|*@C8v5Ajq(h+$oQucYc*z>iU_@{@nV*Y12wV^^(EaPl|00&#VqJu~Z7;19?q zm;!XlEWDvc{{6S|s^6*KZ+L#yjRRggn$(c#a`&XW%NQY9yoz52O@2!ks2E@H&CMBNYCOL^>r0rwo$ZR1EUXWm~8NALj@Dzw(HGVat~XmHI8)rWMvPrYHl&bz}&BsocM~ zA8xTE@8scdY-gf+B_IRKRW_avR@=T9nU!tSb{PL&-T<5{ccv=ewV%F6#^SMCT{=pT z`tY)Ht#6n6+qwYu<-^6QwQdw-msK;&Z<2FUoSe??Y9ViHi@?TbD^Q=S$Iv z-8&UXD@)gjUCZ41RQJ0!==LWE=uD!1Mm5@a>Uw!yr)rwTyHj(O@t5_+>DZK9rs%W# z-P-GAO5@0#YUAD0Ut>qbY26cD!)+gBtlYJ&+fSt|m&pBJIv<9AD5Y%;oX>uLJmGG8 zu&wX7WjBO&AzN8z;bKiS#7c^2!yS0E`zK}aPaOS3U_nZ&GzjfPM-wQ#x0MmSTHISH z^9yHYxm!evCp6Y3eG+-OD!J=KXvhs4Vr_P@~&pK**zMG7wB7;GQd(lacDC`gJ&u{tCx3@FMy^M}F@3zbLd^TgF z2#wKro_Vj2-wF#veHR~JpILU|X!DBfePH$5-h4dGH1>0WO%;G~-4k^B7nuB*^VOca ze@s)not9n?*CWu1C3^$u-ZxyVj z>FOnd&8s!NOWly#ydSHEpl*{BfsoE2h*abrR60CvYTbX;bamHab?n;sWv|fr@hV%x zviKy8qIu2s=3-=Hvn;lB{=dAJUGt;s+UJdVG)4k;UOOTzUaipGiaRaiop~CgcIXd^IA9^DNH))NN+FDlXb-)NuNG>MsWom@w&GQ74tJ?Tlkq zqwB^?o6)r+x&+J%O0eBl%lQ1Ucdx4au>0anAhHH%zB6+>8n*+>9_+SX8#2c4=J9QEN#roL+7m) z=k1{>W2a6iHQFad#cs0?nS7Siai_0-oHRflJ)DzbKfbNt-VX_)_c)&IxbMR52JRNq zOj+ZKe9ujgJaj+x*LBcVL+UYjoqAAJ34}SF&5;`!w>K)U{tV8QDd6iZ@c8!T?qX!* z=6>~*Yo=0rK2G(_^`{5SiA{q}!*nf;e%`RBdS=9O~Rw$>RV7}NXV`N?VxJQ=p+lgq7= zykrFOzcW!Rc+69fc=|C6XN&nC+&d&#i6Q&M=hvd&<~h`?tM`@Zy(X1Aj7MK-n2AZI z_wuS%+8yMP>(S}|@vCy(qcM3`&3JhJK6J%B3znC)T}{_ze8FEuRzag##0Z1e68|q2 zXIt5<`kvM~Gh}G0ay}kZ+)>ZBxWH0dt0vD%eF+KME}#fnYK|XQTe5Uf8zy)Hyx!^a!EJgJ;onG4HCw znR}K(cp0&&f!GyuE+?vfK%iyhhyWXv2HE%_ulj)g{ z$GGK4cb6;c`AIMYh(-jsqiSq|9~Ag+CP$#BFWnQ5Cx)%h1SjnmiucZP)E@@otkeJw zo>x=bJ#^ZM{tus8z|Qv<&hLw;lr|D2=_o&rWfE7hYswcXaytO5l>07OFfzI5{a76e z(FC-+WjIdfCysJ_hi`oEE$fGpd*)nC{Sw$Pb zoLV|Cwr$#YvTXtyRpEcoi16LjvR(DXMx3PNYk6W*dl-jd^60e-{KLlUyx8=wQtL(2Nk}17v^||X+v&+5D=j?;E zZl3s82_U;ukFQyH3M*bAWAh!Z3O^aZ=h9UiMavxP=<%CNFYew>D{VKU##xu0N|YPV z!&cYp2sXp-YpQT>{tMv|m1?rH6q&d<5~JT@Vmj4VEap}`s+g$ z&ygyOP_NrnVk{gMO+r0Fv_rqML&`Fwz)0BphK5?P8E9dc!CSokx2rX43CVQ%agqah z;8z55a-XDDjr?_W0a!U; z&Wg-BFa(KlSf>yxf_hHdak#)+>-`Bp)< zW*&w*Ugn~Yb`L{p-SZoa?5L_CNfD>2Cj(M3M5khV3*S}+?)>2rv<36!6q?@tEuq3) zkHO?a$4@hA)fvg}5WxrK&fZ#!>_up90oN=rt^i7WM)(#1SNW^+jqpP`-6ik!MCn_J zxeBzn=k%{|bya3fZ@-K(y`z474F}h#sj8~llnFNrK(jf4EZc7lI^Rxub5HdbIGFlz zx;a$X5v0E(nR%|lhR@#HD5!xoq?Ir( zBNb}@Ka57$qy8_>!yW3BTqA$Yu>yh>&w}F@QUoSaM7rMZn>-)cUk6VXC zi38@_yITVUKj!mSt$DHWa<*7Wh(S z?9j<>XC$Meu%{;&C@K}+P)*$AT20Ju@~3>HEvyN2G^AuVwmWgp4T72)-)LFf!xW2> zxi9qk9Z>!?zryZXxDdZbhyQBFn?lSBtKPlZwA~<--n(G&7h02-9^+HdP7@Fnt4ZBL zth=e2$^A}U|4z!OfbVqd^pDWv- z$w;eY4;)UBO6Pv>I*)qcl6Wi#(wU(AvG)5>{r=Kvy;c+t$K;nso^ODkMj$%c zVb8Vo#ZyX=i?GcFirRt^yMzO8r!ucdz-9I{#I7pIy^(bQ67t~Hcbfr9aLq7$L_0jwM^ogZbYOZK4Vqq_1^zPmL04)!7s9TvOsgm@;u zHtR@*JF!uWNemUK4cjf1(mD((0-!;2n_UTKt=84b_fL#hZB5MS13q#Hw>z2 zlw@~GKmguGQ$xZ~|5=t^BXDM9pxx4<^4mlIY_?dbc@na*{u~gGln*3)4fTC*xrESo za*0g=I#?;QI`H5xj@{-%_exu9ma(=oZkgM;%KpTNA&|dv&*+$`w_$?Z(_8Kb&Ay=^ zT{QhmU_wVjTe4YYkLw3+4=BU)@>j#^g!ck#dCaeatNmrn&N{#}ECgDEOkz|kkISb?Ih|bd8^Hyz zo+Zx-v=+wN$3I!5)O{SNKr?D+(e`d*U;Uxf+~~sms^>fx(BBc?@4eT9D*MQG}WEe zRy_7wUg7~zZ;Q|F;-zi_!j3g#FjA~{P@vh5!x%?OYHFOnh`&@NeYJ(+-6L(?k>C_1 zUDt8YYDKRTVN!KQVgXj}I^Ayz*+%D?*uRvJcoIFQhORb}%0viOMi zv$Wjp#fgC~MAXa_kt>-h`fbpc-?9n?L6r~9lfQm7*$~>Viknt=*55Q%7gVa!yg`C|x=QI)Mb*hPvsM}xd%a|IHQst$i$ui%QIY!W;ST^)NBf}%tMe?_18>t;T z^<5B3*ZZ4~_&&Thz-hKeoBZCd-ik7N3ggm=xn*MbV@|3wqHlFAwy&fXA&S9}jN}%s zhjyRY`#nzM)Qo5DC10Bo-T;gYAi1kwPibLY24*YgWjvnPgb*NGg<^$)HUM5HWJEj4`z%GJStS*5Zi>0 zB-`W^Vmsf>7h!NSy4k*1nY}OfZ_TG)14R;qc%JGW>FW<|QFS8q$Hm?-%Ky~=p6R<7 zR7cWC-T8GnvuGn0(ZiB!-c(Aea61uWzkdkkHOJrFXCmgv`mKTz6Ek*HQd^tw`8*y} z1d}Iym5ry!KH0EY5Kj&{MpQ+|XfzVrZGx*aoNQr>X?VU`nrJw;_~y@IS6dg6O&KXQ zSRJ@H{27j5$geQ|c5t0xcYWz5|L$!-KZC>#bsQBV3%tNi9!7?M-^nJl08?I)P#K3o z(rp}|T`G+#-;Naj=CQD-s3fJmS1C0RrV>ra;E^7q=~Tmsd<`YFL6!OZxiy1YkPI!k zbJE&U%`pNe*2WY!f>|s%qw^@Je4Nrl+x5LZSE*pNH83y9&ohK6x0&{MtLZ`z=B)yt za(ZFL4yN~ClKYl?#0-}i@0c3?jLiiW$Zm4+%> z0=^Jz17FANUp3Ub0yDGOgOO;8U^Inz7)e4JW|qrxy*E{uA^Qe9 z#uui%a);>+r(xoUZ?p3!t8M#V4IT4g92CuF$JM>t&KFUbqisu5;x0POaV*dEG0uy*Pq}G^*j)7tWpjrmV79?;a~yB5Utgzx0{?V zGuk}Av+Fw~H~f`}nIj~vjMw_Yp_-R*Yb4)zd9XJ}YbDZi09Gvb^<|lg#eF4c zl3**W!|ys1$E1}Tt@Y?MersBen7>kOd?cMprA%Zqa07H0qbfz^<>6T(vcQWUf=F)_ zkfZL)G7Bwg#`9{F<|pd!E!5Jk`dy9%Is2YKCNIrPU&|B&t}lTM9q2d3kh)pCMA{h zTJ_LXrX=ZsNtoD7xQ8N|_SFq-lWNF+s%!+m-p}cHv{?^)4(jMf$cAYHk1c0s(^;yX zazytx)c}QwJ@Lgbdl*4>iz6cGG90Y3tCHik`LsmT%^}3cFUmMvf=r!Xfw*fe_7Ls< zkKN8DpR`N`)P@6CIi|QBp!;T*qWTFiB4Y-+^#zV%Gs7psC#i>Se|^0w30g5K@VUe`@E{ac4oX;!cR1oFvH{R?mGtq@ zmhJXqjom|&@juYhpk$*cYRi-c5eBJa4Ld72(%cT&c7Hbk!FDU_yCm=baRGjXDx;N$ z!|rSos@^uh&t!iYH0oaRQ`+uM>Z1B${7tgzCd zX-ksV#T`s|ECVy((C&5t#)zn*ls&*I?QRsnf%YxVw#F{eZ!mTGp+MKj(Ryd@#l;0) zTs3{3LboSk+iPU4K$!R2l%S^45Wrnt`KdyEP`NUaruFG8k+$K-k;lW<=53i>+IZ9R z60Vl&^=#;OLl8!5Y*TKQKjA)w8u)lQUtMV8Ks>>p3M~W0q7ElvNW!k24`9#j0{v7E zO0dxk>3s`&a7-+vD{aAYGsn}{7>w!(&lQqjLbl{BAWvvV6jzoUcV9`r=MSaQ$`=Ev zKWe`Q>o>)ca=M_56){L`YTIwgv=AAd9o3l=pdkaXZ?|~^QZTd!2bi*Us+m!&MD;QZ&p0WV;J-MZgpta?X2)&nvw3}MRq!2DHNdCBm@ z5RkF#8|pAaD3X0hqD8{~#(c*rW?MVE{h#nNzIzQbs`!_(h7Db(+c19RKw>F|@cin8 z*kg>4*U3>ijg}ddopHF2vh3{?(mbx)PbXT6LS@LX;~E|1OpA#*SZjLTQe7Mi*t7q%H-XI1P;NzPUoz#tPhD}U1<+nB_%(BrZ20uuS0v*j-~;vd_78$On>fQ3`4|}_TYM2}dm+l{ zAfe-6DhoX9yFX(<*0c@&L9O@b+P|qTMJmv;sSc9L*rfpr7R{Ue6nU{#?CqRT^Jn7DNvCx2+q~cJZZnqSH=-a zl(030t5_hte4>}E%XNu7SXwnr%>t&QNhVWmH91O~6+ki{pl-A%iG2&>--X0V+_H)g z6C%5wUf1UO^41rCSZgb)^I_3gKE*}g4PmY!nMCSQy(X1yx0)2~=Py6M@qGF~_6e!L z9_I6+BdBEyS3M+g5cnG*Z%_$Iy*1DsL0l2$WaUAW@w$;5jt0};X|b+&an&@#IaAoH z${|KPLm>D82iS%50jJZ0GpBhyzz`=7E>6N53@=Sn@sjkqAHI>c{~dlb)m;|BSKGG< z-$=Lz6=HA)U}Bf>mhp7{HgoQGBhSrzJPHe{zZ=eehL4VC3%_G*L-22hvVgs|byJep z;}7g0`F5%R@xu7G3NJo~Kp&u;sO7e2{?QVf`-~UEhj1*DC5XSU$1!Q_tz{We405Ns z!Py`>-W(*kPWnW%vSj?-IHd0P^iB41)BGWBR!)+))vU?8 zxhK1c#^DkN)Srh!8MUH;Eksg+C^FR6y!{mAQVjUnFeGR*{FI5m=k|-0`vwNNa1b%| zOdvB4fgx^GFTVqhP&0SOZp0)A{)8jprQZ3sp&CaB$!0ncW?I-;<_SBXX!Ys2=YTd* zB=1c|c3W6e4?8`34IWre?GKDz9Kgcw8Yh_mAp&S9%(|=}wxKVB{YJ2bZ42 zFl#_;QqL!_BVe*&SQ+7wfM3?*s43l=a(x2T(ZAv{tzND^vuWmWf(;3_ZWwOwiP1|~ z`>9Z#?Y(l!K1jcbkZk@jaG_`MN(+WkuQ!O4CWo&1HCQE5dE7NghpRJ%(d)v(WS5Z! z1T4%k*ne{A?-BIWG&H2>R2hB3Emn?W_<;B42}T}fv8T&)mKh(+`T?G(!bH)CAqFCU zr1ZlWG`;@zC1snAp%POCuL+@rZ4iq>#AZ&)sNzJ1@k5$~OasU*w081Guy;aT+jY@X zdsn|$E@==YiHzBW)vmhZF1vePRa`eF=4^#7$9dXoxb28f0_MFD@;@qj(OvJ`eU7B% zOQTiVJTJP7I+oLxt-8Ir`k=me8iR0V5wXT`$4OrYKL+6fK*Y#Pzn*5yC_(cWA506r zVRdh(4@tuHQlW@1&ZPqhB`qV|Osh`c04XiiX3TvVMM%-3Rk${LMH*M`@*98MX*2^Y=6pHV zrF5-D6=zfTK%E9O!@uH~3lFaQy@==fV&iYs1&8$`vLimWl12SJTmCrI0{GbT@!=WL zMqFOu8{cZ7N;W!`+%I>?6>dh4nUf(aD172K6+Ensk=`nTeaM~sR+M&WRAqzdrZ8DU zq!pjUqgQBvj6um5Fy>o6J;x?zMx-PUkcti}N)nnaKNG2ha~DO5m;6H_#&6Z9{gT}8 zDfh5>Ye-e#F0r77DS&W{`eAZq4z1)LCvKW}b#)W(Dr#3-IKAiy;1{jEj*raogc@tx zs#fDc!zzurVt(@!+XP%SI>koM_KRyb}&C( zY+hzMkRcax&(kQBokkrXCteP(m4Eh`A@X^w^ss90`SGLZxB?xurGkcX@}5L^oJ!gm=L#$=(&c?<@*;}8$w|q9HJqfiF{MstaFj(PrRXnF<1rL z3yX6kzGPA!C|?A&?n2%B8KOlHH3t8#fR~*J8I&O0=Z_ON!GRP(vk2rQ-QnyDB5Hch zUreg`>zFRowezM)bU7+G)D~FEqXa?&{p=j|DQ0EXhsi`Vh=H@0G_4AjlOE6mu?%lF z=2^S!gKN{N7r0_#X zNi%}K(j9)FzrpLHvsca~C6z-LXO(#VEBuHCs_wv>qdE@Se&%wy7MGS-L`qUtHTn~B z>VN9%KEl?lhbn_Zi@o`(Hq=$8)r=J;(^E*NUqG!B=KKQDBiut;=oY~d#w{|X`Qk0b z2gE7veA?!ybQKJYB8O>GK@qLP2ffk?Mk`Cs->o23HSv$-CgIYXwh9sSiUzE94NL`9 zb_4^;Bj^M*r_TIP*fkA`#$eCFi(4_;gO9A>_}Q5h&O#gUPRP|s$>FEx@5lXUe9^9= zm|8+mx`*A%mmos$UeIMMs4yN^Ub0uP*A)Ith>zJPBKs*cgJ|Iu$LC_lZGN+neGqoY@~w+wDJ=r9rc&HkR#dAjHoxtIFkBI zZIo_A7Ads{XNj(tkeYAmI(Xl?UUn39Xew|%V-y$jM@?9B->^U<@D6=2Dybwf_(Fgq z=5`sDm>-hxTeHXxq}U+#`mBpRm*E8}45*2{-H~+4(s#c_QbJ-sLx~_w2|2#?G3AF| zlbX5d?(0#Exr{VBM%q4pQOzEUgNIGEp!-bw#O zR%@rX*Cy%mX#d5^_9@Nv;@qT7wfEEczc+JT5+ljrn9+Rdz@&Pf@!%$QMLRJdqg^8^4bD*ZpjW(dbO%6N1YLxfaX`!*9 zSmE}I7v&g;&81VN?o@rf%-^uKnr3x#i0;u@*y_twy*chUA5d>J_r+PcADBwD5Gz~v=W4{#w?;`;Klm-@^*y1+6#lXBIU$e0I${$E&v_wrIm_~08W2DN z-W#FB)1om}uepdv4y49cgn_cQYj2KmBZ^V9KiNsb>Od%}=md0>=icoN4g;z_yO(G* z)#rL4ag*<8qe^urL>_2r0?Q$b3Kp~bHa~RK-gvO0;+EI`UTN}2_E)bBWE!!VaSoBi zW~o7uMBGre3bd&37Puxg@V>m~(Nj_XHk0Z@6jQR_*`AGbb%!8&lc=8+6GTJ*$akGh zpzF{FNnUl2Wz;+#*~$~h@ekE#9`s?u59N{=Jdo6Iyb?8}Ay}GzGMot*pr)#i)3c;P zlEABbTbpfw^Lt*IU^rx>bq10L>J(i#iWiDr2oG+uSMq_5VP;VA9A|*V6MUuod1=Bv zzMnKktM)u>cN=? z1wS#6IU`M3xb3EFL7B%2Gq&)}U+I0HX9GOvgBIPev21n3FkOWg9>&w`b;H6L}hyCEQXtoghnmBwH2n%|z202m9ILI8| zivczq?U`#b;C^t8UsCEJ4iN`NNRVLkgUOW6k^1sW!jv%!25z3?%GGJZn4pkh=Qf6+ z?$|unHYf{)KGRKWZp`dL)XH^cOmysc3F#0N3@j z!+P1vjgRQj(oijmz6#TgI@UM@mT`My>NyU6Ad?h;-V-*bH*vw@+NnUVGS{mh=c7sE zpew0Ac>1D)&YHME7Kn=|t_cdVf(-e~e%d@ zF?GMw)0%UFo_apRdKSO!f8W2_(a{9f!m~ z=qyBdt4@%U^|mieC0`GOs!LYV(4_TOdzlL~(%r9?OUj#uef&>8B)|Uw-o-EIbf@-N zi*b6h@GSx-p8opF4ny76LQJ`Tn-3X_1_RnQ7`^E3%h)-zxebX+9Bw?5IQKfeo@6AX z08L+_3{?^{7V+-s(mh^W>Ywpnof}mL?^Oh!_eUjq-r4!7eDcg8?vG#2m>mUb(r)Jc z%vhJe8oxXXvwRGnBlt2Atln;Bd3k$jjQ0X*9?#Ju_T8ZiIXWE(UD!7I?Bf}nYhY`o zZ1*GS=h)Q|R08I*#drYrZ;$ffSmnBZP8Xg>X7L-dcaCMRX}74T7`e@8rf3M~0+t4! zX3Ssg3OFKvDEGltz{6*dAf^*E&|=8&Ss(~EdEmZH%KO43-7bX_I<)e#Lxa-Fkr3?a z36u?$`7M2zsR&4BCD4x_a>u`UM2me$P1!#G;NmhNAHbxksrS2@UWbeZiCSI?vX)b$ zKM>=)&{Mi>oDyEFS9@^%{#0`YMKbzGdE?&jZcwryvEQqo=bVwU{8DEoHQRa`+2gS6 zq>Q;9&wCR>hnJ=<&17)B=;QPKLgwLM8Q#FR2d(}rS0*LXE#$zpIl70?O;=!Cm%RDO z{&L@e)eENBu_W4JV!ay3Vej`(&iIdtInRH2Jqsxqa2KMTQo=Z|2yynl8K z^>3A1I35G!3&}8I5;zn|93OcBu5MFtz}r+gz)`*KQTW>dayQpKL)!33wJ;y)do?u* z`RB(QK7^z2ZXWx+j}Kjwtl+#E{(cAo;hO;gWO_5Mn@s{NYm5SFeLwdv5a?h`-Gs*t z*;k>}=42u;Qx>V^dcKi~c=>bF>wgh^DK`| z1W_7J1?tq4tMBjVJ9;S)snsn~!bMG(S(XVGJtr^fvbA&|Gi1KfTqx5x7KQi4jzSEy zzFgK|Vucc#>f@8n19LksC5?Pc?(k=QCI&)Rhq%e)LYM5l;fk3<2$jI z*pk-u7uAfk%vU8pMo9lRGB7LY?B&#n-}qrjVn+`=J^2X%{~%K91g`aNUPpx%uj`6K z@})*E1|>CFd1L)eOt6JKR^I7Q`6F(wHyyv7;y@Y9%E}6XwVy7nF{vwLdWe=t@R2?V zVJ3*=9N6*oHm1d|63MFG%w4J~##+R2k3kFp$LBtS1B14s7J1)VLU1;1?q^Yz*J_d_!vG%FTE$FG2xmRO4`dz$8NfmTn zbx)qIOZ|Xyi#`3=6t4-dwacT~Tq5qZV7vM7`Ce7ij3m(6G%g`*MUBZ7Yrqrn{m<=k zMHTw;EUIL4)!o@cHi8h`(fbJ_p?N!I)YF@)65H~EU9l%h8r7p)T5QY*SE_8cb3vU< z88!BT0pV4-D_ewZF@Qlz_5nxUl7ro+XE)40EmhN{x*ZYYS<0^M~K+V?j z^pwe;UtH?&AjtN@5712N{sX?Se#pxh=W+$AQ+q94|8|SLgo@DzLT#D!K}gttL)Pja zaOKG^kBm)G1XH{lc(m((kHH@9rj;B0QAmYUALHuOt6iC&-?dbzs-uG}!Nk`u7EFwT za6!kvEhT5uywbI>xks|^em!3;aFZFa=Ui9)tNu{RVMgc3dI?s72vF9i`<{2eXOGOA z5&45@Yl~hTf1LL5wd?m$0Qt=Zn#fa(O3*C&jR=9;_;{sWm?8yDa;?(}G+k&fcM~@! zaXIx>!R?0{Vkcc*HEm0KLBp`7nGYlmgZrH}$z1 z1D!c;?rmvMRV8&m5q5(LYLg^UJxO@UB8Y-E*~wJvlnH8{()oTzh_F`84zzj!9JE)x za|i`6q`lD`Sc(?nBns%_u;2EK{lBpJZ%atK6u1W_1ce`gB@F_)G4Elbxd9UPCqO-(2!) z8^>D~)CjJ>xGE2SmyG=<>|p*gVw(_Pg&|r2+*iy8hll(3pbqI%&|RWBhUf6H{BACP ztg6U{cRm54BqlYpAtdM*h%j$cE;jGeZVq`NX$U$uL6mBhn(7VmAWdGjgaJdW|5bH# zkxj&$*116=?UY%wxI#Zf6Qs%<(_~>P10G05y@7`To<(iE1U*k?7V_i_xFIXS@f28X z0QwzP`rmCi)>-CQ6Orx3L0qHKETc2Wz~Y)%rsp>E0^)?g-8c*DXopatWbaJajO&Gb z`PLw0b8`uF;{V)EZD3+G-Z4z#6*!fHpR1*VB=dF4 za=WdxrJ>~f$Mze`R3d6U{Y9zvezU6_UH#3N4z(@s>@8mwDM*|nV!i>S#+-Vp(%5E4 zrW1b`jVa!7`4;DSK$kyalXmlPRCR!4xnzg3C_wK@b9wi)ZiJ&S6q~)MG5eHg0J8+M z@OZIdOexm?WeAZPzd^ZSNZM?6 z9OE!&=wuakgsT-XAmWvwtRBG#06Y}Drx2O-6%a=#pCi%0T32xC`rP~n=)(CYij2QI zs(%VGUswK?isu_8nJ*d>8(XX(BL{&v$}5;IpDLD=SFwGq-WvP){HATML#^}uTOP9f zT+;_y@ZOUXx(qczNIa`w3Wfi{n}b>2c-cFo>1wBRsa3ECzGvstg%VK0tY14RQcC!d zxyrOwmFE^w{tPJE#Ab|1>Q{u+P>Zy!?g+MC77O}(BQMXeaoDbOixcjrLCu&& z=n7v5`RPV^OS~8d@5%CYHNmnQXE$+`WLScMRGTp0)|A534L<~oe$e9jVk&9QW#8%ud7=I#<`Hg{z62Dp*)Mg%CYt+>!ed1cWo&Y?TImB zbE)oH>v5Z+fP;qC)N-^iIt}b~pjxO#mVI{b3tW9mu;kR#aTZVjrW`E_TG8w~51Mc) zoP4bdrtHJ!I#hPv#N~CY*hvdfWAT*0 zUN8MI&IPuo1wYa(<>BAzT~=Icf4FoN)kEE%l}J(9Z2N=sZH23wgS1KE1L^2T>`f|saUVHR^KY(6jgFy6H7qkJ*6MLF1Ifg;IkV$Suq$A$;I z4W~@lHMI<)y1F^EOWouhcE<9+GlSx*P4X`{x9Liv&^&F>a7?VI3Iy&&N7(%SEkOg+ zaLVR>aI?P+2c&N=xV>@OL+}?I^O~S|7!kdV=pYxj`dHu7)1NMOccpnN$oEQ>@3=pT zbF}5@qUAwAR+erWv7^(-gdt9Z^um$FUG>fjlY ztwY*eVfVd+mVOvTFEx2ZAV;86;qyHD0OQ$I^Gc-m@_`|0|P@(t;5Q_ZgR zj01*eF8=-(SfLkpR))~T%@b%Cf*-A%ZToXB9aWzH5q6=;L9tg^HyZ!1RN1T-LxURt zzh>FG(UYb>Z%3zv*y?>%8+x+wXRaIkY_(sZ%=pI@^0(exT>+ITMIj1+)b|avSe7lg zp({G2=-ke*COmdACH`kBGzn6%4<=0J1h3RFBsEY9aE2ww5WF$3^CB#5j;6k%N+QM8 z=7a31(6amI@LW)~A=h+a@x z=DG(hoRL}zgbPKUEvA`HJ79~5PqaUAkvmiGqk#OnowAn3Kw>QkQ8i^idZ{L(_2U~P*1h~1A%~Tg7PpGE zfJ{{(sP_R*Mce!TaRH_}+GOZrgzqhcd@r_I#Q2<671c=QUlL)29kuytVrhh>)#nnx z)E_wt+_&SH+*P1}c#0~Zd0ogd>*tNo5DVn-LW+aJ?3H-KOyL;LiH-|J(uL|=JL9lr z4|$$2B@V~}m`K;iHBx(R(c9#tWt-?QEBiqiLY#rrY|W(kzOp6V5pn`1A*8P2uHrvY zax3_F_R+xmc2%JQ<(&0*N3h+3Rsqh$(CDBW-?Q*~K4Y%Gj!3=ZU3-C~h@s78W~u68!+{^lX9;A|qNO$o87!jz(km`51aD<4UivmWH^Xm(}7iauS zxZc97)rFyem2R_TyodXh>#JSU=M-7YJyqjH!}~M%B~tHP9g#~CHa|A8?@4~Fx4AY@ z$6@r6&{W%MwuRQx8@IJQz788cqB_p80vOz3H-`Y-FP4~V4W2H zUHBY#3FpYN6(5}+=#nB65gX|f;gY_6KBaD2dG~ZfvMXiM%RO4Z1h)@)q51lo8+|M| zr+=`b9pLk@g-g5nGg^V+&6`f!u@J^9wHc2${bhot)H`J58KlWa1dU8_!%h-+=a4*xL z;kLQ?L-R6J^GSN$ZSzz*!-x?#A^j}2(QZE*8&FiX{y>y17SK-Uv_eG1YvSFt2dZy{ zT_>r(R*|NFMicTgol_+vn-<#W{!aAepkj7RPxA?i#O=stL~wh;-GNBKOLX8@^-Is_ z1r|P}@23e_dIQv7pzep&0W!R8UNd#`rX}S4KD!<9fTrQkU2&oJY|ZPc)-a;KbR-(% zMPy{IsgX~a08;C#q}Se$&$qyX0=8t6Qm>T=+$J~Gu)S9qXWEwZ#_v7K1^Sz&saSDhgVRzJE8MN`TkXs zEyCNOQ>o@%>@Qq##|VB7@G*p^pFZ1PJi-CNcLmYCPgrkmYy7qqB}&g5`=0~OrsVp# zf8Rh8tG7#m@r0+v(mzQ)XNdvho*%9v1>IzT<`3VAw@bEaNb{{amd1dCi`Uog*FNf}@aZEa~gSs>X@hZGw>dZyR$bDg7!1q|j z?3=N=((?W|40jr=IUz2MLI1#z(JdH!7c+ki(XUryde)-PJ8~UWkCaRZqG?6d$Qt2l zBa8Ory|(h)47pv8WpWi;PrtuB{FoO`XsR9~Y~OESv4bOBu-+LiIV-N+_0)2%=YqzT zPG=}XC7&u0uZJSrBR|_aW|$4M1Ax-}Z|nB_!Wc?Ilq@KJ25fu_ovNq<(8>4qi@jtC zNIQ;HAJ^S6JVP^yDSO_}ti5n)puE=~959k22WfW3^YHMPZwz&tjusBPo-d2o>oR^8 zS3r^3Py|x@ZV2v1gqE|#T!y4?V`56{J$c3j4173UlTK_z7|T+CIdn*uWJz9K%`ikR zApT?nH%}p_@acUC-s<`D=72UsJuwhWMVKDvuECPgdfp+|I-i_`e9Y?Mu zsVeKdDa+Zfm1;-D%}3&(G$F)NWke4?Qn!vly~Vbb!r@itRZ$4CK*$fW>)Be&z-OH9 zAIsDv_0>$Y!Jvw?xJW}K8of=UDvq>|WNq^e^c~%zubN?jb*AwPl+9mxQ-}+o)-jM2 z=>wpg9adzNKPvDMSHB+EN?-(vw;#rX2>2!`QQpNMFmng!9RI$-ScLa*dN3Nqm!-QYiu@eni=I@bcqgGcC9nOB-4o?uD^iq92K5C2Y+IK5x{JTnD zmGp5$h*)q!pDACGg?25_yQ{nIHZI5Y4>FN4pVZ4aF$WOu9kE~)9 zd|ERn4?@F>CMsRk-3`#0_`%F=!r`u^CDGY7YmOy*zn|wcb3+jDdkx|(SOV$V=5tU` zCAzGecyex0_k7DFMvv! zV!Dad%U#1^R#+0&dbRMUk7#2$-8Y|kX(3xjgt33g8+KnUnky0_7MwYXV%JD@JOj!r zeblWtn?3$t{tsJk8CFHuwSSWWg0Sh7?hXNIHYp_yf`pVH-664&?v{`a=`LxM?nWA< zyK}Q)^A7j@JpbeQ@XiOmFu=jgwP)6KuJd;;+Nt-!yH{AvCe{k!duU5)`G$5Oy?Q-O z+)SWfwPe*bpStW$P9Y9u?~=4Ls{7|&oDwgS&xcwQqA>q1C?-FPs=4RV`$R!qvr9H! z>65)}NgStL3yFPDC$ZL?PpbMpO|mS`q>l+0gVEF=Im7+h+S;xc3QSY?Tpc+8sVY1E zi6;LVgi=W^)FIn#Qp(pT?)x>e8xZ?04a{FHszJiYq8`@+(Mrrh*@exodQULzZ;pvT zZD(qS3!@4gzsjnPMOup+<__aaAN4Q#ujyh(PnIX&JSEq15d<4csas_sH={`!4mhDB zGGgTNq6js0zm3HjG#CTseo$O;zw_nskNN?5BS$SxCta8W>Y?;1=1sL+(xoWD53&i6 zrx*OT2(p`$<_5Jk#liki+3}jdIqV?LtLB$INq06AA7DrKHlbQO<3XFI;jXUEdiF;T zD@R4%a6rT?$)6kdQ*3p(K}>^fS!Pq&p};YT^@aA*W-^EqxJW4U*~ohCJyR zAmR>kJ0v1E2AR_s?E1l7_|^x{)}zy$Bc*icn*T)mSYw@c+m}!aXc5wDNtdmCjpS67 zS{Vp>8OFl+Q!)>mjQe-P>#;xsfZ9fp<(XqtHzW6XId2-ehfA>rluRi4&oS_F zTgMBM+Oz`8RtGpoQGw)j!m1NeFCbfKD`r2Shwj^(_>F7~z(-xnUYHclID z4!`_p6iXS;5$oK#rE!|o-ut)VBk|DTYPWE#3sbCEnjEE|#?|*F9^I>P_m!hdFI(pR z^TO!#p1$pQH3<>6kG8MYLz-OnY>FMMl+zj=7FD*r26_(FKfIN;1xyHiwszNkd(d=m zdct!mZ<)9N>c{FD7!NP;C1We4w3z2uQ#7p~%}{&~%E{nS0@j9_yU7c^RE5h}TA6Yr ztWeRX!=1cV?Al+7z_<~TVCHV28HE?rDC45n zTK6j%LZ+u=v1%{SrRh0LJY+z`zm`qQr<67i14M02OuJR|ntm>diPNDovd?>+kEO|J z*P``isDGG0titE@(IS1obc2gj9?!rWvYMfAbF^~U;tHnw`L;O|b?TN4CK8^n*@K!h z1JXO@CchSjQ1FwZ{EGwHaPH--+~YoPlxrE@6v*RnqiVf;l#KC9bJsjS{B{Wq)GSN) z;bg=MwXwZ)tW@?4&mk6`0|k(^yYG5Sml%1ez9{|!MNNX*>YZ=DwPX=Vg!^Wn4f97Z zXc0Hp6Fw_If|I!5NxA<1m9}dhPm}Nadd7Odmi}ogEdC05Kb{YxH8VD$oFjE$7k?q+ zwKcE%FaMKvoU_Q*l)u@FiN7izD=wXdj3PTE!mqpv-q(+gjuJkaRUH@2`F-@G9AjzL zYio3gCD(AI@in|QNN=V33g2n2Xk9Vec9Oy~7w>3m(g4;7avJbVK%rrK2_~T}!RXdq z>m~Cp95G&Q%^{7AOZhDA+l0*+ulp%6oW#ES&!;SE7%SbM=yTB^QRZ>tf*g5g5jo$m zwosC7?QcF8GBM{P^$oY3jS$y`xrqrYiuY>_~AsVZ(g_@Se z&L~LeWIa@_8deNF{Bt1RCzy<`u^naSRYC~`3QgFB$7=ZB-ew{VTv{U1jfK%?X=2_@ zjR<@kh}x8qy52o5p08BdqSzLa$4nZGy+NI2F`~*)UHx0a@t^-s{e;|>nt+1!9#(@f z@0bcSDJDHan!rQ{$2_#+CcKh#N52myCW>=l6*%JUlzGC(w}xoHcn0ju$qz`jWGLU? zA{~DU-6TPJD9_;xlZ!$eN5@N|M@ll99+!|Pl%NdFa10#QBi*^eS{L>w2!ZkT<@6nFp>H&bpK-L{PU#ArW;zf`P|&shP~Z&RB6nx z^3-S(KAK2k!F({ieKYKOPJhO)%7szmswg21)W^o@m>l+WH}>#kvjA0fH@;eF-;0iV z5N~@U1a=pIw$K3Z5=rF`a5Bz`d<^%sSndi_gm}S&pvk6KXi?~-Ig~H`#+$ZNqzf{ zd{_=NoV|h65S7=S1;Ar`4vOnl&Cb)AIx|riA&e7^V^V?)Q3R%>K5ZaQ-bGKK&gk;cQ_s~!hBBTW-vbi&l7k`4{;|kRv}95Bh26ei{Vg<*8u<4Pz|4s8KS?;d)j+j2 zHCUi9=3N(el-%N!Y-zyFO8BvGl&UAYKhXl0z8nh+c~(Y6eOdk~FQu;rHfXexC4$8}to1rv#=*(v|cJ4p>~ z(j<*onVo!QY!y>(86ucvy|jTi^fK#z=uzHq+W{PoCf;qRv^si19PZ2DePH_b&m-N| z0@0^F0|@g=Fy7Fd1@yxC$FHMVof;fjns;3vU{#Z)FiN{jsIdvqVi_75LIKZ{-6Zah zM^m$ZRQvpTcuiJcp*Yt>itU+uzSs1v^H7s)2oUqO7`G&=`wrm^q|Dh6o~&^@xE zxCRE0(DnqurnAF@-4t)F^r?W@q7%)5sd4~8Njod_Mj)#|)+VJ+S(;V){O!-<0t-(4 z<4A4xmrauZEN}PRI&!qRZd!r@5;|OPpIx(q_LrjF><;KIg$LHPkbSG?t2~^va4ykY z{U%bE46q=#&;SY@+Y8dSjheWNqr;WUl}0XOYo}bbC!_*uhSc|pieJ+=V?jX#);Us7 zloy025v1fd(mvkkmA!fx}v)~rN&jLnu|D|v?TR~ZGukO#E^-p07| zu0#GodHDGRS#~I6u(cfhn_0`%cX~Dp{bINmBVmuA8hp9Kc@Mc3K=1(<=S~Xv+vY)< zcPZoPKaDv+*lIfkn2b2Nh(ES0ikQx_=C!pke?#>j5m`s6dx&5Q!=_YTX2f+rp}$`_ z4U2O{MWKnwMR@9_%5ys-^JPLhDzqkV*xP&2Ldo3oPY=C?=YHMrcs2iwGR6;bpl^A)NPXFlCQ|Q1AsyO+Heb`=TYQD@ zXG$Q`Q<=UTio;JFaKcc3fl4D_UkAX8M5F^XuX5j+BjKT#pbEV$F%h zah%#AhUL0rXp^5PE}AL*S#hakZK7x$MD@dwbUeH?Ak1ZtFrqskY_xC07W zSjxT1KK90<;1c%E{q=hp5M%96z-(FjUnq3NjkepWQ`~n-EaNZYK$-Um&Hci->9FJu zhn|$yN2Q>s+{>NjUkWd7SL9vcP?_#f`Qfi*ow@=JF$q>27}+@XbUPWT~{afqNn1u3DA-0F<@ z=B!8eYIcl#Tw+hj=}$apE+~I){|*7(|4kVN-c*XMkv;@dA}ObV9_j%}TgQ)$$O$Q* zyzA_Z`#PvFAG|^86Q#(tI13R%>Iylv4t2xl zgQziu*s7zncB+s7zH+RS8I{^Y1hQdXu+*in8^$=N)Z5 zP9~YMm95YYdPB2415Wg+CF`4Q$0$k{n)x_53_@BU#kRq3`M%!<8zuIUEDOOEk@fy|1W+Pet=|jlvzetz~W15c65bek*o-ae1?XZ`(K7_!yFn%*(zo|bn=(QI#UNuAHhgocfp!K!$Qp7ynTq6kKlHcg zaBjM~OKNgwk*zZ4xz`kz^!wsF+n2GUg}m`sa!<{L)Nqr0a3y(`iV>ePEiA`|?_JjfNQcXc|}KKjq?2*S_lqxml;B8{c4@H07%y6BT;ees4QospO9Q7=iWwELiBMXIxu3b`nS?_)#!GoileijN_t^v& zH==}GMF+{Vq|Jv3!0$io`gD-3|1S#nQtO8d?K|mChhOgs*LnDCCVoYzm^ScEWD1~^ znz9dF8XI5bdbVdpwV${8$@D6mUkVP9f8w{j!HY--*N?Z<-D>E}EB6J&@30^5e0?l} zg(?u+k#J!65IU?G)3eJ};g-uA`dPp_S%p3}eM#qBploSBTC2Q)sftV=;nX0iXBt&@YP==>WV)}%YsAG8%WxvIVhX!$JbtJO z8x4rU8W@E>wDwY?fSKpCVUt0*08@pCvhocX&1$BmKfm+ufwo!{HY0Xs1RcW40x(7cpp4sUS)O$_J!9 zJECVj^WA4Kb+&G7CQ;9UX?JC&qNx>ZzmDsd%C6@Y&s*^8d??xZ%-aw{jz6z8D>vT= zG^mO_T}i|SMqN-}1CX*u&Uw*ketwRm@AmZ3HVW zXBX}pj}R|Vz-K~7;$}159}Ssxm2y-b@sYd_?_tQT-UnRZbp=9a58^Bjabp?W@lr;K zQnuXgHeH9z)g$nGRe3z(?Cda4dl}+jvb}}U`9so}0!0jYUjESTc+cpF$J2YvLCdTC z@Hnrgm`-+XACwH@f@_z|o zK$!Vaa#e+mljvm^8kKMT!hO|3d-@HPqb__Y`ip#?r-#}NhoQASZ=4o#M1LeFEil55 z&z_3Fx$o`XFjwZ%vbV!@m~>no&>FwHv3phicLq>l>Yjb>;5<~sPx9vU8YJ^TU8zC+ zd?%lM&kCP?mK$rGYn*JU0&#Z3KKIP1zOfX08cFT^4-iLK10+7zEJp;Fom1BlpyXC9 z`JI#f|1ojA$B!gfSD*sQz2Be#`uME3>~AF_U37>4*9%ZJXR|!5h{W=Nu=vfQEFof6 zwXPO0>=kS4qpzix8nG{%3j#iA%x8ofS{)OM8DFn<8PKZudes$$m{~8GL3+cO213BQ zjJGBM%)6I|e=Bk^5*a5H^`$dYuDK5hJ5=$RR0^Er49iwa8(dq|9U3fOqbBzmL70K< z-<3-C`>R#7WRX)>hvc6KDDiudO?>Cj9G+~c{G-sW z7zDveW=GQC0hIOIm#R4)Qr;Ert6wOU5Shbd)+R_`-#+>K1pB>Iy`K7kHuCkcFv}$A zj~}=`%ZbZ3SZ=9|i~rvHO<#xd-nSm_J+8X)%W0NUgnBwSyT(Le)=J%=Os=i5AE)IC zQNyTt_Wd#=EqeNeZvjy8ic6-=HM>~mVg*Iu$o!j{Gs;g(fSvsg`|3Em(#mb%A@rU~%g1qj`<|k%+T|)X zV>GX46aFa$V^VPKO}GZa7PD6HZ;oFe(p%o2a8Rduw8DTH7l+;b9k6eidI11`rc!1m=g^x`rRKbEhx-+CUc}SZ5%8tXae?wPX@{I<>jV?hV}1l%f*VsO+Esz zjq&`iwtY;ZwC}{tSweW@Fr*pLE&hpGf?wna_b{?yO)`abDSJ!2h*zVhh$)^566fkG zbTq#P@dt_NV1XSBD#+AB#6OJp34Aan{+O-omdT_@_LbKDv`95WM)O2GvMU!f+V01x z!X492!&QM*l{dcU`{RvMUa{aLv*o|*AHZ(rN&){%g=MDtskE?f*Oxc;8zo(ELyuL4 z149u@?DhtG6@xRgc^sI^oB(8+L(|PBd;mDB5UK zpwBa!5jWBe=;2_e9-rlteNqG6%Vx%zbc&jG1|j`NL#SjJsO7>}?GTNB*G48W50`E9;|SNhMk`%apo-!Uj40oFxwCNDY9 zeL^Rj^=b~z?MH8hC>hoD_~Av^J5WxzK?1PGc*&&t<4(XFgr{~Q1oeWbW&ZlsQ+j)f+lO+q84wUxG^EDQF zf>TI-TQ%j_K zj@mVINpjYCXIUUk(2^2UdpAP8)OpM3$HZ@G`l*#)?8(DNH1Pib*YoWe z_O9*ED>x-uLl*rG7d>jzE6C(O;%R|`=lbG|Wi zSK2WnO?v~OZ$}U!!cI5G!}r(j^I}WREFdG~K@a@%A;pYkHRtWsOc?#^z0nhZ1=I_u zjvT{Wh?=X=Q<)pfl)hc|{lzT**=)>R)TB$MtX&bi6d|0sZ~a<70(=$QF(*3{;y(9^ z2Tv&?GI$C{^7+K0#7aBbUQ#x0^;p6{gnMi);nrkbvYQAc#i0K=gPo03vt~R3jNq%g zXl~QELxtW`j1gaL-m(?KF3pIuz`uZ9PC{^*vK);s)=7=YkyqWr%*A(*go>hG?3XgY z*~hBk+X)C%_1NaM9GOkfmct(L@8^!n-O6c!bUD;O`938UaYd7M7yVo-BUu+yN9Pj^ zvWFqEI|GLmFqZF)X%BjhyxJy^9i?t!lKY|jv!!LEa9i$b$SZOKn9ARd6|Yt^()ZW( zzPER-X^vv%w;x(NO#9<3VT)h=-@86{v`u7O4bW4!e#sFp*WC<&;T_Wm`_2gK+6qft$bQ1aGL2(KZ$&7;ki zSWl+-vdb10^|6wvaW#ohfTf4^ivcx?Zk3)Tu0LSqa5vS#Wu$#!;kbf<-#7Vfs-0*u z%z6GFJ@dt~B>Ibh??i}bw`S%{pPe}gb+sxF+0Mdk`;_10Q3$-nh_Iy!`ovxR#~SlL zXAqj09TDG!Ocj)IHiXF~b-!Q&ho?cjY1Vv`4hnlGtl9ef((^h!O zULspS-!$4%j-s;@RW)P#3y(fN*F^t409I2GaOqs5wX7K5)#M1-P0{1xmwK#q%;W|_ zJt>4;!`x37WpSQvA=5yJ@O~(aNzP2y= z8*@i133IW74+w_PB92myINz8)n#*K%sRIN=#LK52drGuynmp7@Eb8G>jHt)UG5^c^ zr5BAO0#fgw60ZfEkmwtpof+$+a;=)V7~`}GiGm0#(*I-pfKV^Z4>?WQy5T(ng<`7n zNcZ_J?Wj0DLWZ5#hNC*09cV8>YFp2G>t!_E>GDr*4dOI~LSd9+opY{6wh ze*c+vWEywV+qJZW7E7>69MZ&9`$J8P3qR<wJ~N;D-FGzoOpog(OxqwOrZyYwmH&E zzocJEEg-*8%Z5Mh3j)K`iiw3i;|@CRBVufqfy@8h3SuM}kTuDR{g$I|U zJNFNE_`K)v&`)h*@u`2@N($QVpd6IcE}v)lfY&fy@VxYMViLWl0CfLl-f43z4FA;% z!;C+xP%)BT?6x^0HEFISO3pi!w~Qu?V^lE5`Ka%=ZrX(W{&;Uqc4-KV6 z%vlG-ng71-?t}dN*}D;|{pXW^);H71Kk!Cf-9(QcP`=`VJ6l#R?~1`2@K$nimf8H% zP_?n_Y*o2yJ=bz1odv7vRk$hRufD=7L?ECbe`UPdGM*f~Z@iA!|Bm_}$oyM* zl7fH&%m2svyq#b8m|*|I6Yr@&?v)uH=<&BmnpU`JeFl+_wb|WCQyw`}8 zYfYiI7dn-C5#-IW9N(?;cdNLSxv%rnpYKj)QaYQ!K2Hr9j5_}o7;3dmeLryXdGg2i zGTG!!bN}+b;I7$4`gi2{^e7{?{WKSzB5J|sWO^})h_z&}mybQHqkYU6h1Y@eyY;f)*b8k`V!=R* z3cF2Nciel`nr`kk>(2N78b|e~--?Ll`{ad2KM#KGw)WI4!v~D^%EeQWtU?HcOhwck z!EM_BBNS(%ax{CQ)na@);g?6xsL9zcKRF4p-MhEs>Ee*+le-nEmqH+Hm9$Qu_jYD; z4!oF6Knm;15FVh`j8dVj0`5W#4K5OOMBbz22#ew^8m+(%Cz#p6z&ZN(z_B7?1QW(I zKScA6nAX^Y1C{L(9Z3|NOg&sVHO&jzx zJD3DK&%9*8u5shALM9F3#h#s+fRBrJTgTtu9NS!V>F3GwvWNw!M+PcK0?xbsI+draPiN^;!q zC+AHZ6zSgTY2ml|?PC(VO=iX8PD>Sy#%*3vYELwk)LH>*XwFe!|L=ha_+f39zf6xT z2x*W}On}C(3>6axSR=u4K#4p6@uk*wVhPF-%|N#riMdJG(6EY|g?3L!+8uptGDjKi z)=ce%VSs^*-cPluwBqt3njx7B>`2K{=L`wFG>S?=3D`Pg271Qihu_tw*FUJj(4tRq zufC65axKZzCep3HIBcO0C{LDWmp0cC=y#h}j!4M!rRT+*tXGou@AcdEzN0c=+A6|`pCjSF2|yAv&`_WLm_q0N z>D==+o`lrmM@AcC9iFhuHI6*E6H4wkTdZFGy5lXxwbUkJ4| zQ6JZaUM^bBo+v!V3c|9#&SH_R&}kSLgR7n%o$j~7vP+F&nC%?r1wzPj(^m6B*MhDV z`ykUl>y-_ddo7{KnwF4vHIso~acn}MA{n|cH%&=~NZ=Va8*IjUZ4s=*`?wGN_3&^g zu_Ci1aV+gnafF+=K!R`%(43A;eTfnMH)t(E!&JoN4rva*W0~u{J^D%x(OCD=a|${rcP^ zL%Ei3Kfsfr#Mzc1%7_N{(@3+YaA_;VCHW>0;g3Hg*r$r6D=I;h%SwN~Z$#Y}`;r@T zBhh41Tkv*Sk&4U6!X}$J^ddCRRv=TNu}J$X^&KL|LgBon>)8ZJzU@O4&zt$LzifZH zK_CpmaHD38K-+_vcG8_wM)6efc5R4U^p@)Nu1RS|zemWg2d$%vqtP zfCxu~e3l*VfLoCYZT$1o2h;5hffJ&msV1K6c$A&g;F%Wt}m^OguCrz4zKfP~q(P&+O(bRnnJI2IGnWpQPic}2D#VrZ zsdTtSh8Q0Q^}2M@O13bkUt0|S7zKv4RN<@OhrFZock5)6}_PO|{GOLKRqCfsXReN>5yL4{yvYgZFKQ<5a+$$h-mnv&&rz+$#e z{65@!x&Olb##rm#Pnj$ z;Uj1E#o3wkg=jv&FDOj1XVObdu!)^sLzEVd6u)eZ!zSun|*i{e{$z0EsdNBqL^kMhft_9hNnwJt6wDLC*pm{I z3aqnZ)2K)O3zP!sf7cV;b;8pPk=PUbeeO%WnN}Oz?Mc(mpBO8nJ%?m>B*BDlx2h74 zZ&b3yGrwl|HimJ1xIC)Ug8cKBj%CcDK7u~Msocb&=8KRsY7Th6L=>u>C^$9BmlL_E z?J0`J{L39#gzLO&85!(8rQa z*OvQ3UFLtCA?6XLPaVHZ`yd853KpI@$*W&k{J=BwP?1^9;p2m5j)5sLN+y^)N}4Uz z!CU{s5;x@$?t?L#Bww+ozv)k;azM%{geq}<$==pMX69P}0tLbAbVFOIVo+#y&0s0c zcCN#+ADEfejF*XPa0WVjHsst;EpI)&(j3hc*%e@p)teM(9u!$Ucj)H&UBv>PiL4$> z{p9rXXBI>R<}qLIpaT1bHf8g4LzF6!jW$Eiuz&X-_Xg#ox91o5w&7k&KlTLV;S{mO z?JEuK6!p z+-An-&2CYbzYD7bCm%w0r^~Yq!I`12^5Jua@~yy***cl?C*5@+FH@0+!@=d_spjta zW;B0ginaUf1l?1+zkseoE)A-*)nQ>pp3zFY@X&EwdV;Uni-XCATTkY!9f|X<6 z*W?`Z7`YdrnNMKi`|s7)jeLqBmLxlK&3?{>8IZtn_M2ZawKbs~o*v(YDnF-5==nN9 z7W5YW+FVoImzI^)wZo%*DfO*I-`{kuUS)jg3~YUz(_OY$WG4G^J?ics$27wXd)}Zw zRUqFdK7F9yeQVnMif)zKf222xFEan6Rt*QxZ#~R=xPrWS34)mWZ!EHrYtmwV?V67~ zpOr&P#J@})ta2VdQ$%}}w;UsN=lOGey z8mKL$9i}|+#5tS+%O-*u>#7xTW->Q%NCNrpa(_k<$;4~I1Z*qwa-~Bws!fsIP7;;Y z@3~)*awmyDIX^yGo~r!YDlL6D*ZiJ|z3*yC^NrnbHdDo&R$YcD5j#lMH7V*0|Met~ zI-2a6Aj;?SY$w-@J%=r1+8@lqd{O!D9d)q^6A_W#At44yHddCtmzttc^1z!iKQ4WO zt=^86Y5rO*D?M>7inxLvY_@y+ayj*_D!uo+6uX`H=hrR)KlQm4@fxQ{74qI;;eUD= zywOwb0$FS#@2ruKemc!BDrv2e%2i|jN-?=1OW@#-`po=7l6(BHNMv|zxH0T)4Hzon4C20x0)^0cAXw| z`O^QlqTVmFHC0l?tUsFn__CSp2I_aDeVS*hoM3i!-`B4!9%rqPb~(Shnxi8zu!Qh~ z`;pIef3N$hGWLmYh0i5G0u9ahj#R9zx8VuM(^?oT$yC1V;7-Sm?MM#=(n|?^`Fl4E<{Z?_bu;4 zud$gea&kX0U5KAO3iS(YQ7}zqJCBDhRz>X^W6gVm&}gZUm9YXqL8Tx74GmJprad?} z8@G^1tjX7Qy=$l-a<4U_mn24seW zF{-30lf&EM4?_CCOe>{-ky43@ITDtu`SI56NJQqf17+U%COn|>hZl~aU+?RkPq3yA z>%U@e{5H@=Cs)oPyGv`i--mU{0vs=Ys7}{rkMQ@aQf3@ySWX8Tr<+`;nm@$C*VSFL zh91}mB2JLMDT%jlaafC_<~l&6Fr_T;I`Ulb*U z@K53dY7C8!sUO5=oT~Yz-r_gr<_fh)nf#(%G?{ySSOT%*kd=$h<1d?=xH(?h^OpFK zP&bgXx%F$%`d3$C%y4^Cg!lv(-DLw5K(Rd+*NZlQtacVE=_W@=-6Sv*6-z3!-N0?0@fe#%`xG zq_v3Am4+}_*SKx8;^{M?p`T7G%?m_EOeY+TxZ!W~GGfK(HB9Rxr9UFlpN6aM@)V?9 z|0xUq62q_g;Ny|L*JVT&V@sXj<7l)9Rfr9Om&)%CGIeNA-4*foSUKAT!FMzTp$#xM zih|CLr(ZkwZIifPkAhztQcC0(?L5V>^+9iqjVF(mIxTeqv;9u-t2~Cq2Y&a--M+TA z9(o0*oz6CJa!BdN*{~n|p{l8pPOei}k!d(_tIpfJCbU@$Xk?$rE55kRdO|K2ItR%m z7ULyJm&D5ms@iuJDYGGgoT3ouN3A_y9p-yHkmwmO9EPRj2vR95b(%JlP1a{+ZuZ|> zoPR-TZ zsWMXy5UA3V?KHR%6|-1URV{?HJ(^vOh4a5jYA=YPET}ltova&%s75}e9#e5QJ;}6O zRqamqlW`TCch}l$hu*Zm=Yp>@UCozr)c<1Ya~OsEg@5Wad_Nr1dG{dU_=L=KC9YNR z6i5@c;WYQ2H;q>Y_g&t}RnhWg?hV@^v?%ZOXDX@U7l;6+k`&N(N-h6(#~Tz}&W$3; zSzA_1kHKaKugdT$3RlMJF@vp~T5sA={3KNIRu&#e)T@(}YW61jJbvOKQiis2$bL=` zIV<9}a_Uz(IsT>Bigw z!OKZ8Dk_{#ucYF_rJG|Z@q-O(AhU$GB)pFISNl7DleBYv0jQjM9qz~a(s*#E-Z>>d zcr^~{`i@0*VGzxWTlLne z(tM4+W4<18TM6OJw-dKic{MnA4Z^bUolA)3-&-n(2zL^_7PEnCFz}V&WpLiFT>5pE zmkM}efVZIDfMpU5m!S^w1cy^yWoBjq1E|nx$+%EN#nsIWm7dEqp6QznL6M117mPDR&8MV!K>L#e=I_A>n zKEFj-F%nvqVwtGV^TNo&Np+_@wb~l_?6tOSmo%Lt2V4z zz=9XKeo8>E%|b+x!rzE4%xuGxyv1kyys{+#-PZ-=j|WnZ0JI2HnpPque@PkPT~yql zLW5DsMZX;@7p=vIz`ID9dngJ98*-vTEcK8~F+*C8mT8khcUG{%sUwDjt~$y3Cx!s4 zLA)TVUwpCDSmd!{e*boEjip+R{lfRGm?qD$v)NI$_{|&(1BupL_*QN`Aa*B!WON@Y zrrLYtVF3rj5vjW*{b|M-(OYdgOTNT=*b5d=OXCGGPtT68rJVW<3H_b)UHe*91#Cy7 zz!c&Zm0&VjR45LWf2))H*c}5n?0f@3Xg+zMA=X)9a3sfM;nTVhRQbY*{2~qtzBE=` z(SXDPOYr#$5`0HoId6>pZG?d23^wN)2^bpY?H#&Y;H0 z(%v;(8md*yz-cgE-F09?2ZP>c&wu_OB<9aaAHskP3UJH&bc7hO%(n1C$`)~^EC}B` zh0i$hD$|gN?ozmorM>&1pCPo(@em1FgL#mq= zBmS%Ar1QFjvj&+6jrW~>QB+CI_r21Nikxs@S^R*v*9uKvS01t zzS}=sMp0-8Y~H2VDF%R`;PEm77&W4vx>cY;Po*eCN0jz0#w_UZZfPHcQuH@p&zR14L}7O0mi@>g!@PC--QyfZCdYRVu3Jed^v3SW zdi;#Y+sXQu41_`8m+vWeU3n8vZxx;|CU8yF7t|7}W2tSw*%S?niik07+VMF zEGrN%;qAjLo0;o&ZYdc~Hn>&t@$~w*-grdu_CYndW2AH95pSc2oji&5{3eK-{o1EP)#9>x;%m zPoGK;6*wvVrS9A%px|icQ=qc@JywGmLKr*6ta|fZecp0AUnN)xPId>>UzV3_><)E z%#j@D^1Uq|#+P#%`<<%)vuqG!FX3gb-TRc=U3A3?E_ktSd3g|`;tN6o*635fP`~pF3FZJdZ52BHAdQ} zBw!V{QXtQ#pVj_>dhdOAfp0pYd{*3@L7NmTb3!>c3Jeie_7J}G{9TNt8NQeyz|?c2 zNx<5r95kgq5fY#AP&_S@sVS(ES!nk>6fN}zrsnhD(9s-%)TJDFAk67}N$uG?HsZ%N>a`kydI1q_{c zm1%7&=U!MpZ7rstm!i=!F~9A7fMyr=Ms_+>1}2#gc-UFcl?PBOdNxAIjywN9#@_m` z>Hqux2LVahC}}ntq(h{~0HqaB0hOA7beGgdjFRq@l2VjTDd|$WQ|U%(1IOSypYP}E z_4&RppI<(I!FIXd?~fC=b3NxMy_jkK8_|oboLY+x&^JqKfd;;DvCJ_b*~cj&w*xsD zj^LijW^w5Is#%g>yVirif}U5f?e~|?rxTSc;6e7^>f$od)qZ5fI^7m)g4vOqbu>{y z(eDEF3sc|hKi|Gb^b4MS&?V{)ifi2wpllYuZvEo8$si`R$J90q_?*B^fgc}c!PCn( zl`U?`{yUSNou0~B&OUC`*%1Bxs>Urok}tzB0xXESvZA%%@E(C?jCAJ*n3Tff1I%G% za?Xy+dJFhztCXMa8=DhDFAM{I2J$DllqWr&kFK(~b4*POt#-k2@RCefw@FlA^z)tnF|T9~t=M0-M65mw`ttUd zq>r#cELCxK)zHvG$zcc&!Z-#)aIZI)n$SIUVPuC542Ndad|~~D>&_^k>`c^!(j+somsLtoRRMu z_$8eng^Q+S;$5+V%sM^Z%xZD5l>6ga%To?hFinGh)La&BW(EzCx~I3!ZV3O+DO#Ay*#zzh9O4}jUvGN z!x(1*KdS0MV0xCZU2Nr*s5-_4(EB)8+MkI^xCfWo1-IWzle}`Z7YOj#r+q2yAc*zd zH~Mqj@bZq{TkLy_(|NTlFlFxLiUFkaI3teA{03 zGZrd;>UHpZG3})&W2y3KP&)6S(F$h#v{V(tdwLntND$QL)CazU^Y`QNXeQ)6U?CX% zJapw|rwRT7ZzCpHx0XOO12-}W7edjo-V9{k{Q1+A{J6yZR-*b(v%_)K*Up{Bay+1S z9jb$TL>8W|?O%*OFIAu~1_RzelnE%4U;nvK*H~Ne{`PTYle!XX*Ozg6$$2|nVlf>5 zqd3yOy1Tf3-x)XO;?+s7E5~VED@hQT-hu}h0(=9q%zbvt?dAt_9R3b(xD7YH7la~!P3E#J+uYnMlL?GB>M)ZZ+S%p-;$>Ha2r1??qFm`f@T z-c&hALtjeFdZueYc!++zq}Tw{hO$gCSeH^}5K@pCQ-^70-uRp@wi0u5v6C>l^t@|* zW@xyz6?7GXaphXuY{ms;e8@8KTPe6yfK(@4{PBDA4>!`!s%{L98ujZ&f>u`qe>}%` z>ntO1j^FIJe35-`dkCcmOCD~!vN#%ir^sHs+}1KW))OUgiIqU6R066+Y_7=D1h1wYT?|DdksQ8AxJ7vx5P!ChfgK2E(OSM#14kGUcgeYcEMfaS|o zAvx~jPI9N(FQ?}<>z+TC?Bcw=k?pe3(;H{bL2{2{3Jz6$K!cPoi5W2VKKgmtPmLUJ z`zNHr1^3nYnw?K+^);k%UHtCCwO~sRE2x7=J=sPX_GI3y&A%zva6jPNwQJ(O23H8Z z7mCeO+$fZgq(CzZ_u*e}wPU}JZOX5;Vz4BAIJd;G-b%Wm(9G>Tue*1o(m&g1XKV_R zana!ZaWg}YEmK2T!BpWpk2%)-S&C8w(7N&lPv#WJf+UYA*_|#aiuCWp7v`$7a(|pxeu9P3T2{w*ShAm3gw!C}T_!n6LpIgst)H8Z zX5(vL(Q%R#MY$TT+~^yJ;d|XTefipl(pdkyB5j}x_oHWPc1)XB^r|q_RnT-y@5bAk zIIqz?0M&c!WQK>Dy+BnGy!z9-c{y2aLd!^SfoT7=2ibMB1dbT)xRuNIaH*K%T)LpD zRs<3COrun{QJ4GQ*!~mOJ|~|iRFIw;wsGL`iq(aK+^ud!4&_L@7e^saRm^2UNTn*C z>Bv2d^E@}F-qaL&5v`;q&n~(0TtSLMIz&(sLkm3X#hNm)2$kjbcwxV#_;5Vq7~IJf z{XpD%;b^2d8f1Gq;z7lEGgKH^FviCXX8k}?$3^qFl?pDGpgl?31Hmgw#2p`&gDIe$wzTNuAU^PKhV$cqg>vZYJ$#y$!uK!loExY(b+1V` zz3Y_Az6x!~(Xggz2F0BdM=9VY_JU^(W@}t?#_?rk3E2zm}rvL@coi70Nsc%n(yrYOOjAK2Q64VWS z7Jq#0o+1mfgUntJz^^~^bYJ846gdbGW`Mil$Z@REy*o1B1^@<=Sv8As@hQlnXtRQb zO$2J6XcNPz#&xU6M7B@3HW+B+`NnO+O{>ZFeQ}JsscdMn8twYV&?$O=oC%VQv>@L1 zHVIc?`MnqwH2I5N2FZ?B#ICNKy&{2;t)YkIZ;f!l7&Q1JmGT4#VTQ{$jScPQqdCFi zxdV{4`qQr6@HyiA`Z<}IVHZVv`v|*KDurARH1}t8@j7B!_9)tY$xFg#9Y!aVEgmf; zzo>cSyJBSMvW>s1{0TS3DN*n4pmHgxR=`b(pWhwL>QoH>QcMC{tw_Fx_n;=dh2PaD zTvCoZw0{J-XSm5M@(=YQxCD_o*Yr2#^(833J~(@#?yU}iU{s1lfjYG+%aYge>Ji53 zK#2~9-LbpzBeQFF@#Do@hHw!=NnDa&<7BKAaM^7cbKLwJN-`J4lT-!So+oKgEloy5 z)pZWvC|h&js+_OA))$a5p&$95AkAHiHZoC~0o`^A4)&u5Xj`{PCv z>OZM9sBhz2-FJypP5^L|()~??G$QVb6i7b@)&rBs>+&AH(3Qb#Klb|@Py%X(;tBOy z6rCvXY{8)p!F+7aqQprLjc0f=?s?*J@ylF<|B34duq7RP+3gqH5fTC<-0^Q{!j0by z*D+(Ipi0#*tK2qMuyaIB55%S)S2b#V>Umw|;8%qW+m=w<*U1GFeuszI#%VjuItORw zQIgOfilD&S#h=`VU+FiEg-6BQ{LRO4>CZ`=7SFRRl3r*Pb`M6jUUichkm zL`04|rEbLm>vO^qA0Sdm=sBZXrDLoXQ2fPPzr9DkGn4$1=ilXiFcRXRG8P+|v~fW! zwxMG~yY@Ai0Wej+efB8fKMq7Zj|&FEzX@^@DYTSb2`?gUD#V9vbdFD54>UM)eunT= zDBfg77WgmxXgZkQnlGFDn?5407kKwiO`@v$z_iE+Qwlm*{7YTsO%=y};eLPT4~d(Q zBxqn_Z3R>G+t?1F$BF`F6it0M~Tj-aRJB?GdH1|Qqi{*wj{1|=c` z2vMNzo@nzfd zr&^3e*#Mx~?`J@T8}HensYHp}fm6u~)BT;Oyasu3+TNqeRet^f&=tUNnRj8N)9>jT zh$p$h!I*i!IhBd|y~Q+%ov8a^s#>ej`x)mK!z`R1&3cP~uRg=))|yvCjwA?w6cI5uM8Mr~`A}p8YN%Z;{1l zbhD=N2kI+QD^h423zA&?2lSoRANF@*ha#qH#Z$5a=gW+QoW?0SPh@4?_UV|~qn*A7 zsgVWnB7cNXxCL7m{>K^gEC4jAQB<>tyoH-i&@Ao$*>=Dp4yM3&~3~U7&XN!C#UckaE zmk|+(q)__O$o>2v`TW*bRStOj{&B!w&a3yAx#>x4_7P+8_#xPk4$J&6;*!Yx5^)M< zNJ$M-{MPqeIl|W8vEYLETzs5@`~If#ctI7$U%3DauC&B7$Q&KsHq;<#cumNgFH`PU zH9+7R(P9NAS{iv&&RnHMw(39_@tLDL6gYX8shx{N#)LXFvGND2y%XC^f}>V}?!V&A zF)HxybEtzSqX->VF*|0i4XLI9`kcJM3R4x&9dl@BJt3?DDMM+VmG z#R4cj^alP43^!N5oczyw7NUcJWJ-)pjli5m(;J4EVX-=YI#cN+uJCW5vzYq$xWGvTrIx{uq8Z)8YxgJO~v1T!Bb(L*0u$lR)$Q zR_CxYcK&#ES^~-u%Y}?AR9j62XVWPd{-#Y`0O&re88re)Ir^Nu$-QB_ijO zK`3&s{aObPo5Z-VAYYHPPj2@Vb$Z`#`ys>TvJ^w=)N8uF`iGHC<3f0ApP#gfJ)fOs zKxiUtyAN`d=hes|SK*&^N>zG3d@#(&l^^ZEay!=MJC-anu8#KVdMJP*grqZ1z3-$! z{R6WAt+3?Rf9lEiNO94!3W-}#HNBY^T$kC4wXJP4(|#Mb_7d-(Cupx>T0DEy<5v#}P6?`>x7GCjWcvc4ljz238kaI_6BOmnl)7CCSzNw5-$NOsk z5t}WNjsO!Xk({)J;zn+zHU-3oNDDK|*Z#bCg1Tz%Y?tiWHR%+gKJQQTDDjKivq2i) zH=k6M|$Kie_pinR`aus->ex652(mA>JrPj$XY+4a3sL<*ND3ZF*{CZUF z<{p#hG7)W-Z){U4VZI*y^n-K>8ssLE)4;F-NvFko?5#eKWH_}VzBB@^;rY0Ct3ns@ z)eh7>_hxI+tIBU=YyM>%_>49z3~YJ-7fYIYH(O| zuBDZ-`@TwIgf{r(vTCarWBrlCQWR>Waq1kQ_(aL7fV$*EEzwx`D?52^^ZP~AUHk{M zgR0{^nPQ`>b1nqA6eSx&3wQ7v{U2tr(4NqlyZ72_@?3rTN71$u#bceJ7fh z^9@G~b@lb*7I6V1FG>|>Hc-uWX44kg>X?!Otf;retB0G@IvY*dZ}v7*g>Khw%mcjT z4x|2kkXniH8VdUYxGe84`aCc8?XY|NPDX_fpiW5U@qbtV6+Y5@mUVM(@lRq&$P~$& zm>BO2iCZa!{HrE4I1GW(MeC8moVgS0$GhJvGUAGho!1vCpJS34`2(-=)W z5AHZ0bzS)&-{XFLNJc+N9~8IgthCn#G4(4XjPG;dW#4_{7|v9-E?L*hR02VMA zt{(0fJc{Ly-JFfi0(1AB&MV8J_@jH~KMF59(MB2*t8$)L923mBn>5d)Eu^|7WYpa3At0Phk;km-8fvYQ`d^r>}5302NNYYC~sb%RigZ6h9PL>8g zTOJ$ICJZ&x6gWYTqPieH@?q?o=(&V@o%($uq@8)kX(!hbwgQ~&;dB4n6oei)v7Chm zR1xXqUolF&8BJ?D#U6yCtmORrM=YCN|yn3<`^;Q1bzM?7hx_0x)q^r3|ofG_rw^poyY*37OBzm;|GX|>bv4mL83x6Wdu?IU^x~Ry zgi8*4$sQ{H{qFykY>_ria(R4!bvUDT=-sgUD;%pStgHW|XYx ziGhsLrI|rLcByRlwc8YM?wNgOCu#n3-F3h~j7|W=2TFI2H_P2DG2+yX?L(DxEuhzo zVlv!aQSH%lb%1QH+*YlB?A|?!`}w5Mr&-)2(7QbH`lHG1b3)|7K--^`MZuMm$EW`D ze#EKb5ZKxlDmW+UzhUbC=wm@z`w#Dx5DA%w&{8$_^&XgEcMU({7z`eDQWO{&bxbaD zm6LS^}22i+9wh4j{|tB8-eE?XPZm z#>Nq+(O=`W|EctH>l-(}#_!t0R3xCd!G$Hc{CqtaWFAZ@rYy#jp^}T3UH(Cs$?yZat!@M7IwI;nm&9Gi4D`SgZ$p56~S zMu%~}BbW5XG(g~oW44k?Ywfi4bjK5$;IJ-HpS~WK~+3O={ycDTjo3=Wp>RsSAE7-Ks#j@6BT_LxVIra_UzW z*8ajL{o#qozw$#VmyO4oV&LX8i92kfv)Ls&?;q_w_*`O}lysKBlzpT=ZbRF3QyJz}463hX^05Mpiu~NKyMs zMMI`+cpRv>152Fd0E(FE(f;%E8li%|L8&}j8DaZ@Z@18rD=YCHz7lxqe8UuQvQ)SJ z4qwiuO9WJixOS2-2{>xlUbAlY%X}}j(RxO|1$j&k-$=)FOb+YK&+JQx9%ji0RC(qKlYv_Vn0Que7_7BD_Mq)-Zy4sN9hk~?WEfAPL z?V_04#O(BYIocRLm$^6bK_UEg_n}AWQZYEgvwh`WGPareL-Hdm z(E`EwUdj?!^nNEpI$yX?k%UK;;ravuZ(2Y-UC@_2JIgLh>v!Gno(SBvfKUmqk<(N$-=VTQKm9_De;i2lIUBM@B6rv-JT)nWp{VZHxY zl6Qk)hZ?iQ=GR8(Ynun;!D0Ksc!=&bw#%dvQyuGQA6^r$9id6Y?;T06MWdwUQ5UKJ z-(~upvxz4qsdozw76226OU<_DyJn+%a@Wa@emH#ho5C(f%t+B}A8gzep%UG@Nrj}O zVze4wTZ4D*aIbzqIKTufvVCQ(jP*H#mM15r86h%dC@v4|yoY|<#ECf+gvtKMJh zyBrnULcbY*=4-WN|IB-u%hz?OOcHLaaIk>B+taI45E2d;d!+{0n7zS%Xh-*C=d?MmDYH#K%|iFqKlrWyUzwj@*iM--&F4Sn_voWr z``)qEcdk&w^wk0J{ly02X3){>|DZkIYfov%moC2ASKtP|tSR7d12X);n?|+esThPB z4Ue{{u##N8bN+hjithR7n8$&q_vqxulCg3VRSX(bg4icT9CQCUQe#(rMh03K{pzZ5^47)QQP>INW!Akaia7KG);K zi`}`w+zU9D8MzM4Exx%tyX>y*8n$-&@Fc*KN9cMf+$LKs!Mo)Oxbz!wv(SL(QUHuT z7knn$7M! z{I0je{NZFj1X;s*v)V?T)2?S=A~qh6#9NGD{4l)i*h|=7+J_qhuhBmi=Ncm>s?jfu z!;60&}e_;oY5N=whW|DRR7iHIdJ6`Lv9ZJ3HdtTRPdmhy; z?)X9H>Q|hE2za!(wUMvq8YY{)cVc-WlE1sVZ?ru7r?KLV%fc0&4x13_=X^$iSpykH zBAldYpWQCNN1>w%8V; zu{UGOg5=IQDMy^01d6eeG?*Aw#C%WZ2P?s!IK}hn)4k_~C+QEe3*$HwtP(JkOlRF**KWx>?v|sSyGkO(T-0oMrZ5+c5eRnPH zsy-|i4A=6u)BqZEZdJ9lEhG8ySF5nX{5JkEA8HG1=wrZj%LXU;2Kv5%}f7>Z)DT5G%!XR~^1zM+2ERY0H33`EKBa8_x# z6H^QblJj?V2MzDzLTJeCvE^33ow}KvJnNk646|#aEwKs8dCFTSNm)tU3u)Mg@LE^u z7{<;otcBBtxgSbv(lR-nk|<=3Ln?!!Frwp4|3s&Xmb%@-8Rsa zlgocCuUs|CN!A*0!OVa(H&V8-l=pVuiesFCu!_qrNTV`cV{#j$tqFVB;!yueJ16pL~AZB0Yc zQ70TxIfcikO}zVBzn7iBX6gO-j9r6@@w)xE4sz8y0yRc+;n?NjKSNNs0y8*2U9_`f zMjG(7dV02_k^&SJ zP(4nd4n2FGSOlH@3o(}?M>vsi@Sk)pODl76nMI-GNL?*)=*MoCq%Z~Yq~%}KaADYA zh`G~BLJL^1G%O!1>LBlS<^KK^5H|(i75rtiW24cu>X^O;By}Tx@38%PuYGgVaR zP`p?*=ymZ^ycPDBTh8r06)#!HcFxWvv9Vu#4npfdwc$@cqO2~PizB`fVU`Q0 z>an{)FP?*03mYiaF*D;to^y*I1|VbPkN?OJRO^g)P`(u0H*@hMuo5~fe82aEoaJ zjQTmAIww#GTr&R%Kqf?7xf&hG0aV}rB>Q{c)#Gex23!4b%VMmc1-0RB?lyYonOnP` z;8n1hL1M^B+cQkhGBNODIy2A1WB<2Lprw~@6^*RIW#HdApKV-Cyl{FUFCwS!(v;g? zJMt5boXd6Z5|%KXJb#{K-Q;+D@fM_vN9gtmYcrfZwCCo}M)UEPWxBHH+hLjAY>5QP zIZq4(-LXT2m^qejA!c| z7c_A|en|qSn(T(6Qr3eC@4H4cx9Dj@?x1i_vE0{bZ_-D9HXc}Ml<=puI`y+@ zu(&dh3x^CS%%&33HAjh8brU917asPSFn?~XQsKtBJUdq{i?0K1Xx$ydF+FP}5S*sUpTM$P zsD|}*@v(b#d>_G z3-quT&Hk+$OoMP!++g#rE;p$dy*gElHSxJdF@)@*HjkjX?~`oXXEA2c;D6dsa9?3d zz+ct?It%(E1%2B?mn%;A3wK}JqxmMae(2N3!_Pf7GhA!bU>0kvZ&s9>N(HQ7`tPtU zZWG1h>MQ4Hh68QI9P7BmAGK=}^tvjLb&9;>3CKfR#(X6G+v8s1lF zubjKe2|RWfM($ijM{Q^Bv6b8zi7C1?yCO09hKj8l&&-7=``zk&EgDh!@fRBl;0tCY5GxbHebCGU3{^=7KF+Wee;l=pqnpgcu|c|2r4IC zA?qI>nqq~O@2vtA9k_kA-4Z};StU)R6N-O!Geq6g)La#CPD=MJhJQ!#lkKlXY zyeyxo81Pl2@BU=4ztGTKd(f%<*2sM`BG;OV*SZibcKMA{v(fF;h6Mqs>)&XRN&h)S zT=IWzSi0`-1uOBBg}}O2&xXB+r3ioJtAuZ-7_yZ-STWubEFGU5Kaqy1T-6NQ7-zi`ZUi8Z@M?danD0Z3O2>P5Cr1fWrAw z^ET|4ow0+wg4DHBz2WB;TXAmVS_?(fn7q4er^HC}4ylLcy)#o+KJBF}W`YEp%) ztEBaWovyiNth~mRi|X33a(?gSHt%jQMQ4yAR7d)7^xNtwRYB>AMrSC;0Ozd?!DL&n zIb{+*_^ikiR5B?}AWkPa#_3Hly)nPfDd9)vk82#wJYC`!w)C4fRIb5rH z5YPiNLO9M6!e$o}aRlYGOGwZ}iXT!QpYY4Ka>*7Fc3Xix($=M^ZVjdI0M3R`*0m=NA`?`(I8B!HK!EBd5m|j{e zAXa#HI3JkmNbK6#@)^qb#@Dyizk_43&SPKKI@U;;p2o$ttNSh0iA=HOUR# zr#O=6``KTue@Uc%vWu&O{K)vQatmyieui($n*!5D4Jd3k3Z|tcye(qV37#mTju~K& zSEAncWswBk&q<6&KPJDUt9)tK;cz?m5HQSpl7fUC5s)b7AYS1nQChUPJ(dm(_g9p% zB}d8+5j(x9bbTTPyIx*+22nRY`+nbf8#eNWPA5Ajv-s)G4{U;2PhOkq}$jMY1 zA#Na6$^o3En2VxDgtYZ_cPanY0aQKa7qT>)xSks=jDwZE7Gh$^ue=yrcwtTOxOY@Y z7;3{gVbS?%{`Sz@i(lb8f15+SAN*5!7S&DsO&h91eG7`X@b;i66ezzSyaO_|*lqdU zNmJ{*;-0K7xmCv)gYv%nUX12`lAbmznErlGGB1=oRr%l}cKl!{bne^?6CvZy^$Hho zn4hR^&UMp$D}SHe=SQJ=KaDGL-PBXtqoWt6i#B3LK-$#9W~+%IF){7;RoR=#&2Fw<+Bv(0a8BNA0PhivKoI=c!}sNKToEcxNegMH zpqX%%B0cM);S6S;+l(lMZ$YN}P1RE#Mc*MK)=fDG?|sBg$=0U4Mc@&4VZb4C5>ly2 zG4A}_UFUbSXfWYdXd{s|n&*3+#YsMcb|D3np)3mH*z@`T-r8q)D1o73BH<9r@aHP2 zVENq5Jv zg4H|0uR@pG-}*a&HPW?(f7q^BV%g|8NYVr|%tqUABJM-Qzb%=xWDmKae}VVlWCA&_ z{d^hs>uDgeFP8O#=Uz?`3N=MUM;c0^>=(pG#|;}K@*C5)$)}d$sWV$_LxPUaS6g@j zP9o7g7Bjkv5{%vE)KODr;`720Tnj{#^&$go8rNbwp#g_Rp*$h)m1N!s5aZYO*@^G- z+7e5UW@%{v#hK_EqvpDAXqOEI6upBMAo+IUj`stCGUZd)=ZW?Ba_>AtelDtwRLUU$ z+UWTsvm(Z>^YMv~SmB$pmf*PkqedD---)+{|Sy1Bt^eu<-+E zsw)E}f4-yhi+LsZzgc@psPwJ{ZQKE`By3RHbNRs#w1vW>_hE)@fDl}RWKujDv>wqne%?5Hg+rW0xAf~pV0N8v$L*avZsF=~$@Xr8FDim` zq{X2|+h{yO^LoY0ZnMLdbscxMMx9bhZcEEwITs4|YKd{5SJ&qM5!U{~qHmiy9iXDP zm2)bTY|<`)QqHC-erUysBBCnoh6=~$n(+b6OXb4-Q}CI63B`a3fwQ@|VhYBPu6Wmq z=mGZk>D#akhGB4llA?n#(SKNgTS2uJtFfm_y@W(}@m;ylsWk@#+82Qr1pGV$%Co=V zl{#KRR>6AIG27w$pp)AsFR~;+EIkb9p_?gB;(Ai$K>BZBd~()m2cS8D+UO}>WLOjN zWzT8HI=FY>ovh5v$@iZ&xRG2x5V#=Edtc&rO9q&NBRZgZmh&D|JEzXVa1IhjqWYS^ zk9-wmu0&h>o>QfKys`}r>3GgClb|j8N_G_|n6-Uo{pFM$sj478MiiVoDYKzVXj#C5 z_~>HtDogn&ihUbHvd&h%kwNtcxXMOc{^GgKiu(c{i4aeHXIoq|@}UW!TW=e!bdRv6 zZ&4T>w~*#E;1B*%0*}+Yqp!b>{ckx|>Y2u@8n70;y)UnfqXBGBR($QPbKLT1L!qO} z#p$<7W|dzZpj!e+4Q$1fTGSg%Urq6RpdJd?X_QyTWvB6gP66(I7GYxb6bA4BtH#}1 z;B*R~&8APc^fP)lpoRH>tOz%Cu5Y~WlxP)m-UAGjH{`=Z=d=X<*N*oaleFkJ6eJ`@ z-09aRNy+>>M{a%k@^HXm9@RyR70b`vw__&sny~5=qA+=n$jcsSmqR_E-rys-eA&jV zzUH&x1}0(LxRNhUoC=$a3MP|ehO0(j0a(l>nTk|zjYumC4IrO7t9of?l=9o5_|GC3 zYv)9Qt8EsTRAQrC6AMV364f`N5x#iNT^0nS5hEJua;~#ENND9&sD?a-f|_joDFd|M zoGAYbU$UJFPwjff!q01D6Z2LK0a-hq_gdcA$?0Y_&s)-s8#Ym>&7iayWz)^D=!_xW zpj&-Ro*VRtCqg-^yJlr!C#N8hQ-9&eQ7pK!`Tqy12LB}sVdP68#0{G%0=1%)uYhUQ zx|H|mCvlC*rzpqurr3AtjrE#BB#CFF9B`>}rY(W1pSQ{TBbpsRekVcS6W)oI_fa|K zixZIcU{emeTaH*9%oNL(c)v8VBpJpLHMUk~S+R@4@Wp|u`KtW)lx?-{RhZL1O(-1W zNfcRxl^CPGLY#5{zz_ybni6rBD2jbp*@fnN1PHg4YpF^E4NA7tKQ)yO=OTBFk>7vF zr=5I$ny&d3s=0{AjqUeR2x|eos`GrqF)TN+S+bF8_rTUBdy-ea$ zDT+kC+KG$#VSz&0nuC;+j2&T3Te;|dvO$Y(W)pgg5Dr|;)hqbGYDnZ|vgg|7pM9zC zXk1a{R{X^N)?E~4Ku;qD9)~)$tN2Tyd7^x)2$`*TPX=usSGFTMVnf|{D{)yN z5;lVn*Glq*P+F-63HE72>Yf})A==b*9O7K2es?w!W$ctcGSvnV)x0VZ-QU9ZTu5Mz za9hmfV6HCASbRlgUZDH+wfk>i4npbc>ko>=6tDuik#g$Xn-zuU2M|Q@+Y81x+HO$! zrDQ+(Wz!(=MScC`pN@x>4SB8)q&8mv5AP2tQ8!tPxpim8at52u zmr#0lS4D%*>I0*Mv|aV@T_F-ojsAAc)7`CiTQs{61N?bwycylw%9njU{s5P6)N+B5 zpFxxLSotcmpTWHj?Jh3yRC6mtrt#FvA)>;&3r6vDMq%~5M;W6QMY*i1JPvS2x2y`8 z-KsJ+he39-uH~&A*Fn9oU_Nc%4RR`^8=zBv1@Yh3MHO5}D6$eU2EfqYRANMXbPN}s zVt8j1L#BMeQ|Y=v1#!>4p-{>6*{Vp;Voj7t1T$a%>lvr-0-OslB1RI9_z;QZ=G@J< zh13i9$AqhD)aFog4k5vK(taqOrLmXdq5^4+W@!zBB=qM)clO};0phkd zvmxRMky)>6LEXVf6H@UmW-@Cyi|-U|2u8J+epqT8}rO9J(6W)W3@_f zAp9y~lqeH>Tj9BR3#@(bd3GdoqL{t)+v%lQxqrs(AJXf=LJisPXDe9un2&(exZb>u z8{xC22{~aS;UF1fL#xye9E2)Bc*yV>EeoF!Wh;0wQWVJ@Xf!xAJIc9e8^MhrxIPm6 zXqYb*5lk1fC|-2K#{VCDko+%dO(Al6nG>aH^|Rc07Ozox&*5)d17G8KfWe_FabiS@?GW4h*T&KKhc(Z}HG*RX@`r8% zeq;eu8FK>A7+dICz_PzD*DvM4IW6GDl3dBe`3NyhXp7DD(ory}YVW?4^;i118Q}C{ z(8!XEK^>@&p-Gj#zs5+%Nsd9H*G`RMQ^vf(5nkN5WzIf6Wmq7B8=Hh+qsrq7Rv?im zw-BWX6nYHr_9kXKY_P_)O%%DA#NslaO{ww6<+sJCuK)y(^-8HGlI6D0Fa779?Yop34>4ITEmI0Ks;I!!1v~hUB4tiEpu~<`WXTB{)sj57lXJ z1u*$MQ8JkQl}V}+aJ_+*chZ<*kQFg#A8`qA0d1Zf8wvImtIqSwm$@QAO^w_#i-qhA zq|YL7zw(@NuqQ>QnM!1i+$HfKEx(DtSlIEmB{F#{drEsDuhHMl=ZO*6=V;h|-CA+Bv>(air;Zaf_^=vRI6{ z7HJagw~JQ)PigYSKkYVjKvcMYy1w$J)|5&WZR`B^U10D)4s z=v>YIgAYGC$b{n``2Xee zOT4?|*dSs8OE5{NKzZ{tgbQYb>mq6o{zJOKtoAEqP@1jgPLney!H6JVBk_1hazw!K zW!mZK?0$lcKx#wAH!gv!`IvE$|J5J>TNC8DUd%m^-Iv?`NLoeA{@(_HK`thWY9r5p~>|F*xw-=KKF-L2nXWd88(W^OC7(?f+ zA-vFt73DRv-8%@=mINk+4O_nn|B>Ya8u-nB<;pvM<;wNW@Dw)x_Z2SvPtwQ7v$%seg^2y)ZbbPaGy3waWV7rel~s1t%}NrH;Ie7l`& zp?y~jhV&Yvrzz~_oc~(=JDgcO*5}mpKAL=o+{bG8Jv;%S?((8Mt|qR}eo-Ya8Qqa% zK{?-1$aZ2ipIP!rN2bsMZq(5?bMoTse9LTjg!9m%%J;)HK^5_)$m?54lX6Et)HDBI zx&y=*$C4yW&1r!#{z4c6{Roq&4P!iQNjh1sjviYZa!1Y3m;9%I{-2!UF_FrQg~&aP z2bRX@Gqfwi<1;ik!j7CN`Fvw=--7A4#z#!h>WT&dkprGp8q!WjEEP|D672eXFrahsOp<@k`YKBP~N&I@{@6!4&MBc+>^s6n_FX^60x%AE}H`S&xA;r zJUlS^w2J*i7K^d`G%w?+A7arg%xmYGZ18zjtL9B)=`7=n5aUm;aZ|QKE$(mYMjJUk zQVzkQpT8)d-kMcSWIbTGbbF%QM4WGeQa$ia8I>Jd39+ocP((`c(?1$_Wy8saX&cvmOl>qjBBK5B$18y+#)jZj16CVRiij`R> z4}9J8qtlo1BDx*0ed%yQJo+XHghNy_ZQvLp_5a@<9A4d?GXyL8epy|{{(-|I(vBENGgva&U{@q0W>P!g?YxIxS@y0|9G#BO+pq3G@R z81-m5LP^;Dyo$Tu-RPAa@l*8@JDGGKDaUPe5QbjW{L+1O?pD=w%4PgUs-PaP%&dM8TGKT!z;!r#cRG?p*>M(a1C zo*~_YtI~2wl{wVg+ODsL&^|1OG)NN3V7|Ur`lUzb9Z|-{^b1cCZ07f0kkm?_?`8jC zx!_7r&)^#vGOQi@JXe>jP2oLG4M(o47R+;!aR*H%PFT;0Fm`j<;I_*;eOw3*PQeLQ zpMeyaBRx?y9TJu3yl0e}Juqi~&{L{{GF~`9X%|P4yPpKBYyE$0y>(EVUDq|oV=Vxc(2-J!SzhXe>oe(8Nb&-cFHZ@w8O ze`GSuT-P~gpS{*zd+nBhU#PbW>_|MG&BEA2}cn43y}w!Wm7&DNd93FmC5lu8tLnF5-=zKm8^ zew3WxAfT(#Jh5<8QN~ic_{~i6h5H+OnLAt-MlRj1mFH9tQF%gzlW0Tqmm^dqCTlKS z@NJ8)=gl4ysXUv>0eQ%sV~2+yOyRXtw};lz@cy5$xvkqnW8beTnjo`^t=nt1?82eR zolL_cD=;G+-SJavyvOSL-7OrePv+Wjm*Vv@96@gD zM?!iZSec@!1+&X_FWjYWPrBR&pEM@6(EW2lAO78S3g};qd9mDypx3J^*&)e)GmOs< z-ahTeCFJ_iXV&;yeZ*>jIk`&0<>U!1?31h!*=7t|v7Y8I1`fnb@tERmc+t311BQ>?;5vT%3zltaMo2;^*By ztU1yRV%mw(WxHg-sL^3rXD5nQnZI)RkTQhnemWy9VkPeGV+DUSC+0l-qo---(o?3J z*JYpW1fEbC9JND!q8Kt1sa-&Fz?q~XFCJlZzEnF<;ddxo)Djpma;xD&z7{Z{|l+g*ZplMkeb_v zWZ^qi-@Y&o51N<;dmrv3%}=eyYLgndx*2f1|9&#?>7)O-?ud+Yn7&eQXftwrjn?YH zth{)l^^5RV=JZK4O7Sn_)t`PD;N}P#lTG_HO3?BR-tDJ`tpVdPCj^?ywPRURy@!wt zKac>xkJSHMOK4RS$O5vC4W`2gjB%3O^@aZWd-ATm>xdK(h0jtfg&czt=^IH>++g|- zBkT2zTbH>gen!)!S%G@i32JtlJu08Hq<3x*kVAr5_d*%CSaTmDW^P9_Govbah&osN z&?L0Ad{B?KGP(tvhlAmLqSd|b&y2S>Xt65xLmF1XdB)Ff;E|`!>N@EE$?9?c&FXcD zQEQCfocMJ+sd*b*zwiDfV zQ}MLgw)@umdFd{58&&LY4~2K}zD5>LM}@xBN9tpBgP@~@j!Cpx%&>Q>=*U>1JxLZuY4?Du0U z!1asjt>*e>J3*ipQ--q|yP@i$Acl4?E#}OK=CJCw!?6BzyTsQ47VTiI_M`G^n;5a} zx-MVBrvn5C3*hI~R)movAxn-R9JGmxP*aupoh^ks{*`CXKXz0x6El#BF~aHB(qJ$3 z@8nM^88~7+7$7ya;D2tr?{-$2ZV91Tn`3wXS8^^sJ8a@))VR5A_2qTNlImdcv4~zY z`4!{LY>VgBfZ@b{$AdVbY3{!I&YA!Cl`~b<|F}7 z2nSz^QXK$mB&7^i6;wRdf>9^tyzZ*y$EH-ohuD92zB&y9ghY zMq{_O@1hI=UtFxbCJc>jDQ~%}q05=RXu$TrmD`mgSZ1+SL-1I(AE60sU+$HC)B4UM zHh!g{GEjr+i=WLOiobaMU)KU=nlN3ne%al?EZNO1f8C!J-sV*_RDXRRk}G^}WT+Yf z%n)?#k%DRp(I#L2u*K8ky$x?86u+r1>tZwageCjl+Ce=JM^h2fzmLcX1p^k`rM0co zS_s)+bm1=kX1%XZgmtQ@{*K^FqB`3*_};bCcd9~%#fGuOflsso zObWsGE_01r46zDy-DV-hT$QNo?d>OSn`(vPy-}%Zx2`^qze1PbN&grx{MXHocDV_V zB|fbgOh78SW2;{{esll8c7bhYsdWXaDg!Ky{BiLMwTukJy?1j+F9ZI5?}F}+>7uvI z!O2?J)QwMRW~c|&Kj09$yc*{D;oT5QIWaOCtnaggc5PYBx=f7#BU)Uw1SqgN794qC z&6n8GzZ=iowDX|SGosUt&3OD+QT$N$s*S)kV=dL!*nMq}RlAT0vgPDcpDC^*(;~F9 z(mN-JblEp`zkKzcA%OZVz8MEYwoNyRMsh4vl$nr8ZD7Xg{(I8#WTsm>(_nqR1Y6Jj zW<2w5B^8f8l7FPk+?2UWB|W!Ydc4%ReJLrn{T9MtTe<*z`shKILrCwSeJX)c*i zm;dR)!*ab|Ulbk_IUze8j<7s7-u-#}yXf#f5Vi`FT6~Ii%CzG(MOGJ7B5wS!t&E@;eU={=qhF)dXD^yiI~m>+b^gCv__Colx7L0+z}TbSG&E=x zo$*QkUT8GqtJA+PTjLdvbB%iEq7$^OYy;{8mp*C_{t*u4KIt~_{dH{OS6T2bl+vyV zFI$z(=WuR3QZEBHw~p;&8ta~Z{9*%U0Skf?i|foc?xnnwO%lx)9nT9@cf075|$J`g6UV&CDU?mS|aXtDpkKx4$u+At3@a?w4$uJ2kXi2QldJRis1WnGD{gwZbw1_sVw-6}D8Pby!4! zZ;LdDve$oX$;sjRRR+p6+98X)mS*y#JBL0fcC>%7#ZRU@QuDBSr`ozt6gre53ss1b z`8i<}Oj?%&VIm6r$e*b$G$K1&*{5Wl-wxQS!=$cadh;%Y#l5ba9Z|nBY_Ob&W7AP+ zO*H0=r`=|PMenIE!Sg00=?7?wJj;hxVfqlY2O}DivU_o3rk7mO*WHc3CBVIlztBHN z5IUBYte1ExDJi>2clCJ|&{q+lp;E*qC4xE)>(AT7S~&uG<0tKg#+Ek!c14i<*Zt#f zK~p&^UY9rHt43Tc;aW)N$-c&JtLv&(i|28{MqkWiEVJU-!V)w9Dvq`7+}Zl;#e9Qx zoW}-=ocnYpS;mr?{co2Z)E@KDq$!7_15WBSamNar`f!u=k#CWK&pY`p2$UEpA@X!b z!Ms+l%-`&6?DzU={^VqYiuIwV->f8@M+b5(y@7TZ1wX`2P#-r&_HLaFaJnw67xn5= z;DB0tUg!SwizLW$FdydiS1U&7f83#2kfZ^|8)?Yh7VTZ(YXr z(_T6iWv^}Q=#fEwSq-cJ(pMYV1Eb-YUG}kC9R_@HTuSn=9yN*0Wg)F0$%zeSq53FW zXe=-BJBzq0K}$uD(Bede6BT#!({0u`DltuV)yS2WQ1K7`7taH4Cf$Kb^vU;1pprm* z^rmJen^BDw5o%{NK!sH`>MS_f`KNS?=VYJkEqRKVQ-%)3>z+5;iO4@9Z+4U=$vVR( z-~2cq%?*&sMyz#i--D*V=mpJaJGI3`wm0+}WpasMoh_Il*0HI+;7*A+K5}+(qpyXc zfEerPvg~1TNmaT^lS6nBlKciD3_-4%07!mo?*CkX#& zEPnp`%au&oCmD=%agO0)$T5L!Ci1hWb{*jGwD(Kh>ReNYkcjK?Q<3)Pd1QFN)R%oS}`7UVbf^G`i7f9Eh%#f}i{_v-R z_vb?@5kZ(y5p>6IJN4q4WVt9^brvILj0geYH-My%SuZ>>JIijpRg*SZea!UB(1ess z!{<j#}?C`n_$tOLs4Q98^~U<-MFhL?cYWvm8y6{${cDD^S%P& znT)3|gRA;tv8GFhgMJ-kDido-cTWjk5GXN)cP8pmEZ{MBk-5Bhj*){Yr(^Q9{zOpv zg80}PpTtIst{Ds*Zw#pX>~#u$YFS&FTH`}Ph2@@SR5XBdA~Q7-0QL#uEWu8834 z{Pn!svwA62AYo4_J7@#b0|2Xyu3iz9K+PVrn=Hu5F0=$um;0qLdXmM4vt5#_(~0f8xaL0uvpQA&qT2z7wtF8>7L>6O52GR4kD6$)0Hz3`8Sk>d^C6R{Gc**M zr8O)&`Xd17ugBloGqG8dwj&~T_;_88w|#CbO{j5+`gd8r)`Lr#8ildfq!~p)vE&6z zn}3r`CA%h_d+Yyk-i_zZB-PaKPON_rR{XNt{nZEWEPbrv4%IM@zj6?Z5KCmU4Bj0D z1e_=?IB#$cVLca0$RFM8`$Cl(qrC>OfUKAoR(zamaW0!4FI|#Da^S=bXP2LS)fqqS z+sonZblc`2%a}=LKy%c^H*+sO*l%>}kDWa(agUXY?f5F|f9pzHf1O5ys_-+?$vXV6 zIs$Rg(r`LhqdUW}t?NK+vMHlxI_1c~d}EbCRYJv_=lO?80H`IdSM~7Q!fr?OXv42#x*o$Dx1ddyNtjgzK>0t<;L>)xwmZdf3*O6wHPrC zAmidCi~n)vQI3f9vLa$dIzgrLsDns&WB=oxtSMMHE8rJ#YzAF`m+x|Q01GP43_DVG zlZ#OL&BluxfE@Sk_UI)Q#4)pG59^I0I+C&V%7r@pbf=AM^eN(L_&|gdV8!x;-6>Ok z|2E?s#kln*3Ker^b+2P$zRp}5=5>9dEag;%d zN!|z7D4(=;ShdqV3d00C8O`BgsPKDv7HZmnpR0WdQ7+M|9M4Z)O+NaBZ8)tPqNibt2?7&)6}iGOhD(koSr^PtovfV4W?du_?cKQ zLRi$;$R+;^6#nFHDe7Q%hWtq=?`==$PE^fFLI7%j@sVsy{-4`O@qMBP43zJet4Ht1 z&rToDDR?JYt-dB-m(b9hfjlM(RE|t>S%`B8`N{o%{4;3&LS@L4C75p!p5eQ9E)yeO zA3580hTVm?Rm9HBx5Wl`e~7K-P1#zW?PGgSp-ZiVWe-2}zm0?<4p+F$OC3rVTt3Rf<21|E-YA#8l^e-&#K&SB5Qj#Xl&epPe|_2T^vOG;gpB3(eh&L1w!Megm(JcZ3$(~e9o<)_D|!4*|OZY zxBc%wD&yi621~Xjx=4ZbyHpwH0!uiQeHl+UMgJ|68b(`*Xqm)R$*W95vvsb z{)#M6gDuD?^|^^N|FzWeIK+i@Zv%57(wunRFI|2SG`*r_+Wdlx%y2I$U&s2;R4s9f zmf!`3@Wzd%?U>;$VyiK}bT7{MEwU>QdX~kEH%a&9E2oVSr!boDuP(GZf(sn9Am$)? zB&5Vb>7Rd*iD0)nk>;UDmgw2ZiI^9B&ZpxQx>QuG?i8T8IewPMy|}y+*uky|Z>xdh zW7&+D39)1MgIf$NoyhFfbUort5R)YnP=$z1j4OdvzNG$DcNU9-!z&Yi)AAXzvGx*w zhs>Nqq{-gwtX*Bgv~@^>M^&)Hl$|Mqz};~>2BtrF;T&S-x;S{9KmpAGPYiO&{YVCR zORvt2Ay`S3zJ2ys@)aRy*=y zQGceg5bJnxbBwuhqWv_AdvX3LcyAyKtbE+QT6VT(KKJ%mv4FL8cfnGYVbOkYyKPST zkaKo6L}pn?KoD>Kl&LO>WIut4FbMlMh9ZxvA}~h^tT~Vw1)1A^cXGbi9k+WX*owP) zJQ=p~4w^c0ySH32WXKtvU$73)8~-ji#rZ94t>3WG@p35rJ!Mf4ES1qV!X_%W zeA1=SxNzi$@F%N`*G$iK9A{yGgVOZC4-!?fua9#%$BUMf77D~3OT!V2Go`S+2Z^_V z3BO$nHlkN$lJz;@T0=esHg8_!%ulk=E#7p!XQGmLi3cZWVB$Ix6+q;UpItRav(!em z^{ylPg+^7?2c&dXDgF5xO#nmcgn_YPq_t+@{z}53bBF}r^P)d z7KMJFpYW!bImArPr3$1Y^Z3D&j}_$M;KiH_X$Frhk&r?0?gG_ zlA9CCg`M{s<}6TmXIctu_%r$wX!oHmCR}hI}!M_uE?6=$pM0;6&JcMLc?O7dD6CbVULacSxwT(DqpWTGuPa zV2Ppwd(Kgv@4wqkde46`aAz?)R&9P*Xmh9>-{z$idund|26cW>0>5jjYakcV#5O!- zz>u#qq(Q1xkbD1PhGH2l{Fw2Z&9UyJN(@t0z~=YP&+SK58;#-QKjr}YF?6=4xoz?jVE z`;Mb&V&obtCvl8{W8GB5kMxzQvW>l>87qN3GNhcL*tW?|6G|U)aa!^6 zm9}?>wTLV&`l$i-%JP>8)^1s;QPEGa+hZ-5K93;&;>&X~k6F*p|E{B%s!}Io&}tZe zz~{@o4X#gDTv+5TdpKXK>aY<^$r#cV1}IEoP0LoX?rRXYA(BziqjtZ6Yk3`d%PO#N zAG(6H_%j~SDD^W;EiEXe)*n;8s<1ckYnKlTF27`y)F=385;}Z;YK$s-T(ORpASSDd z?pp9EVo+Eq(xbK3wtO*TReU;TUMd>S7%&!F=LSPghdB3kuDqJ8a5-mI$S0W%@Ve}B zOvM)BK1CyOPk|l|ILx^uA>sC{#Tq$QQ^<7ufqp-k7e)m<$+?rU!_dV zFBPntPRE+UHjhFS6Fsx|$QDMTRz#&J#T8t}P=vn#RfOM(6D_lWT`|UsGKkzv0%l)y z`qOE;!|(m4Qn1BYeW^O^SA6?c=iXQt{liyRl?JOQ=QC_b`10k;l2mxWLvY&U_NL@z zWRh;UYm6Lw+`2S`X6^0`P56!R8H9V7e)#52~Ie=kLnZ^x0 zS)UoLR!oxE_r;%XTPk>{)yD5}xR;WZEc19bl`_6O5KkTmIf@L2NPiXpbuTtTu>@^Q z&h4$ANTV4BjY=Y5#?=!L6PsP0v9+^%F&?Y>^!|_TRN1}D~u;lP@_b5CPxrTai^YIz?`D@hEP>LP+0VjK)X7f+35&p(xTQ=b8?I#{yqL)ZEg*DaW9 zTiEop88nvoB17Ra$%d5#c%6M2@19%se$DO!V`2>%Gd{CJF;DJ~fO5L!K8s^dx`LF_ zODkSj#8v0Sdq?9s#DI9RL5PBoS%fd621|y6%u09c8YC=Ri%IxE(C1D<7V`8rPr4}c z?cqxL2`|G_wzoEu=Wn^Xf$uX4#|~q9Sou?}klsp6@oAz?{zFgH9DvfUmWEfE8@Asc za->lXIhH*$(aepe?lH-Carc6^S6zR#*Wx)qC7D`=^Nq}d zt9iBXkn=>fLK4VLL*_G^BcTSj<TH0AK0$3Cm3ey$>iwhQG_gv|6o?*Ur5krgK8 z-Ev-J7X7CmMVw0gM>t(@zWHs&N4|VC^tLEdXOawnneLIM_D z;VmFRC{xCDdW*-z{N$*|pk>o}Rd&RuDS)rGz?`*(*4-U5A_PegSPs#OlanU*Z5ll**7*0WhU!s zJ9S$nIs0vN!=8&rNx@jL^0UyiZlGo2pt5tqf`rJB*ETz6soR6$tB~0#(V%bk(A(!R zG|XUTsRmCPkr}X@u#9*IQLr~Dt1@}L(m`&8uFXA>Q%Oud)gh2y;z1c}FrqpW<)&PI zWF@=qgG?e=Xv`*fEMG=}$E}y>yIM*@Bk@a5Ks7s)CYuoQ@6z{Cvrxc+FZ_3d9`In5 z7bvJ!@V)ylRv;&&OEvFF9#B17@spw_3w$nzrG*)uIm;y}{|F7e=L4V5ya96+);MkJ z@4ZcY_{cAuHisu(wm-R5`TiTt9HQr-T`fx;jIgo)NT%&{(ddL2KmAU_q7jPo2L9rG z;EL0N#>af7Y5_mwC5}QEJyfUV$6Vw5 z+8;(yY#v5%?riR=R^#yODM_S{cSSIBzeL7b_dD9Eh~POmC0g@VNzGq!ueGOP?XoXW z{dg1%7g+?R|}89PNAZk$$N@%KO>7>9PM2fN!-pwR`X|HqIxbGldZ?aMqEGe z!StU+wx6`k=97S>cDBB56bOLpNLaB36ph**E@nXZy zHvo0xq@jbnQcQHJ^jC@a0K7XGk55sN8yUiTyN8o42`RS=SM5IkI13vUF3Fk}jtNz2 z3o?^%_MV)1Ro!kHQa5+A*1_B#f$oR|-c|iRz)6XcZfHN?1m5ZM+HX59;QT$0lLcvG zl&|WrPW2RE2*P@UvrL7N2Pg5E=GSunz;-_imrpsx7GY2}6MBr0f*qzV*GD(g$NM{{ zIafx3z$?*dKz{CNfL|aD$Hco=KP_fSs-6@^`P4I0)KD5fR7_Y~zOVXgVc}N_BKv47 zl^znF%Mm~)>7QoC+T8DXnRUMV{-RN4pPZQa9!m$&ej>knP+DCbw&jasd$JNCZowSY z64dT|NV9uOGVT1cj%Zr^wVz|85+gq-<;G9Jf-I5CXgsSb7))Qj(*-ef=a| zd6NHaMJpjQhehVOfkEpU6s><>tXD==MB823?bj&(E+If9I&rBCewoEiKi0!RzyHhR zPt^AaGjI63P-0_NgceiXeet6T#*lemMh2){t5_e6Sg|fMsIvK5Belk=_M?lhh_KR3o1IrV*0g&hGM8?FW90#xPnuDsnee?gC%_FWWN{c%s0>6AhcOZ>NL-YODI>m1D^&MIctwfv8?J`g~YDN=5ciPF4b8bW@%+w^pCe_{UZi5*ckXY!h;#Zn(*jy+rfiZy4?=!xF*Mp~X+Z`M} zDJB{C3bn?|88Wg=EDsdt427~oAG>6}w&lH3vx`tW63RfkdY4_+WchSTmb7MAFVr!} z67b;g;+-dsy*B08*ND|*0f)QN<82&q0SK{!49;b!(qM}b_$@plG)5| z=+I&660qO}c6+5FB=`N(h`?}nZIHm{cC5XDvE6Dbe-}MeocCGW(J}M)64C`&#VGV& z?E5DM3w-d-349E6Y8fOmuqj|hVX`UOw7$#~llCrWeCuMxH`;4s$9s|-UcKF1Ec2%a zykC?AMww@ir5VPy;RNF;O!pc5pvd&byhz6qNKKL!05cqZ1>RyaJ@P*D)Y;fD-rB22 zaGxqqrdE9N?|IEin0O<*VZb?F4qiB42>MJJtW`vx>)Fr8s z_tfN|!m~{e1LwMV>;eQuoh0Ji=>+kM#zq$tR)xljVB0B^z*wdb(hORYxA7t0?+6~- zRwe`}@SZSToU`DaFio`)y8F)iF@9WMU#~1RhqSlGGq^J!2t6a9reO@Xn#v!=UD&>zD7R%ejI9`B13g=}u%4TG%H z`KjWSWVstwYl5s3nt9mCw9UP#)~hx<7$`6s+;(HIBs8c9!{vRL@k)rf7@bs3Q+j6f zng;uR?YpR#=cK?LjDhB#1qcImGb05OkkzFF+vnk^^>qsO5hj@Y^`Ks$`t!uu)v_9M zI|gnKNE=c0MMIhqJC}q8>yyd_^;d%)%@!=5ZFa+>I)2WCXAJ4>F$uZX@oEcKn2VqJs#8YkX#vZ= z@n=3Nk8Pwu9~IZnm^~~-rt@a5aoNcn%{bpm6bw-?X3`wtK^(^Xhs|pXG?YL4deJGU zlPYRD2b&+rFenB$ElS;yI16i^JAQ{uN{V1^*;@htXWeuZYQJVU`Y;y+g-E?;of%p0 ziMYm1mnn?)vftjb$U2(;UShg^dc0h%h0kohQs%L3vB})?Sy`SCLfT3!Zl(?dUU?nK z5e60?5hOO6lPPMynyqYg#B8TJd9X4dvq^$mLupuA$@TS43pcZ262;q0R=2H$I{cR- z^8G8pOGo)MrYSEAc{2MJ2ak0#z~eRO?p5B@sStQ{XyB0p*VeQzz>zI#cUL z?;7k2>7LBnepD;-D?gL4cg^M4Y4I4tuxqr_d)@MUtIT38SGBqMik%E}^Qm_4o3Q-*Tite*wBNeCH1pBx58PAfq;Gtw$kq*Ed&rY3I}vrHfCibq5+rMJI zI;DWTDd5>L;lL!Lt!}PO8|G`}Yn1sNX`#Aj(RwNu8ND@LV`ZtR@G z=EFS<7oMkr7kv)HvabN_)RORNHxHq&LB`TmAP+Fe^w_YV6~Foe(>;r#r%sAYctHHZ zbn)ShavNM6W}yJ|ZQd<5E?_Gvgu8ZYXQ7;y&9keOAW z%o&!U2=`4pH)8OgSMG*6EL-ZXiVeEZEu*e!{=H>kShgd0EDVk3|7wU74{!1wkBXr5p?RFUUh9zC1-s1<^n@OdId zf43pN#}T>xX)niO4oQAaY%z|n*r6CV?|Q-?a2@$hcV-kkc6yMP5{#9;uqaVkV#78z zV0)7(IL@Zw3L1{)QrxVQy?hqqQ2w*7n$M$hW~Wd3E`h%BAr-IGG?{LPn@8OA!_b7NW zY+UbT6b3*~SNF<Ebr}RA2*)lqrYLLN$a@ z@mqGj<5AI`RH2l)Y0q1B9P3T$-Ke!>=53FI7j&NPn!DaQS>jl*e%ZGxwsUJ}>GF!zn$aQPoKkN#u~E0Galy{k`rlzz!6nC+kPke2=Vc zJ3b3mIPZiV-YkYP)XEh_{*>?fiW-5Eicv$XteUE^fp{z(sDnlD=wM?E4cHiVIw&S< z6C~x_4Mx;~3S>q3J9RxaRv_ks$OupREJzrMtGNGFm5B<#EM7Yx@H+5oe~;z!HoY5yi0iK^05qf_mN;0|4LsGl@{zqV&P2qi^0f9`Zqv}|WS z=Nd}`&uZhRaPDLQ-prI^bkbSJtS zbk0(4+K}JY2N+cd|BOxJiv9LJJQ#jxrmcX-B@Zsyux7fI$Fmd!uA4m$tg2n@6BR7y z!7#ezp&S-X@&Gb(N#9W2B07v7_CCG~c%9K#zHI-&vowG4?6xYtFYvpq{Pi}F1)6Qw z;8vY!jN|~L)ZZ`(hb_!QIt6yR?u8Ots&Bn5B8iYN;)h+{QJzF=_H?P}Esxw=n5;AO zrl>iwZU}bU%%%UG%ebFfw*$UE}}ou%;}F`%N2R55x0s=ZEdc6nKYyb<~h(TwbbulETz2 z$^F|}xdF!D-@XE9Mxi#s$$9`lLC7W|(;xnD>M+#=awv{2H%xwe=z5)X;6zD$*~0;3 z)c9{EYNq=4;C%0jasW{mgU1NAgp9OT5j>pmTI*GMN7yWgny@m(Bk8wcn{Ry~{iu3> z(KUKKXuXbk@})Pza*^v`RwqMf%tw7} zX1;pB?0v%?7S`~0Md33)dgRE9-3xAdnI(5Y_x3gky!m#w^u5W#u^}8$TWCoP zDc;8=3~2y#WubQ!BfPJweh|#@0CAWBBE1Bn)GM3gkfAep^ zl^-!0lA(`*ccq!$A&(7_gR{8pzw`=y2patFvd79v5yj}+2Wkw(ywtAs?^uw+nRsFi zcEd?P+z^<|hek;8X+^*J(M%7x#GMI^2=)Vu~|ILY4+Q#xcKL%`>NeOF44*@N+f zLs`_&q*d1_CI})=YIukc}cUNBXqFG}5(iP`hmNt*K&_dCZ zZ;7d?A0Oajf1=Zd=>~foMsj8|v9V_SrHmCk6_h$Rs8Acuzk=}9G4W1F=E~#6-}%4K zyKb|9NMomf)AgPsa0&946Izz~)*f|Ad2xF)xpE$77u_i^{?+#k6|04urzWBS`lPTr%)~&h*rr*1rZRJC! zV9ejEnkG&c7*CG>ko`*?z` zvzm$w^3U6&OF*T4i-wK%m)kuHcDCwytWk$wu>a2#KJ>H^Hr|k%;i2`Zx0`>J%6jPM z#zUz1X3cxdx(46Ku8-996nln;^)Of}_u#aV6a8&^1F(obwUeDZaEjkM_gYwMEJq2q zRou3AT%caAg!()x6HIh}udO$;s%inlB1E4@ppqWl63d`^SbcdMoQDubT%eY5^1sCqb8TsGyF>)zRasiB&xrFmVCfus#>!y(7=z~` zLoCuHH4(}AfYaZ~+1s(}2|v8n&J?j?rqdY>|6^x+I&)0tDYNEczIbep%>0fdD)ghB z#bwE+AfV}?dkeu}zVfBkPR;9V_+W?a=}2Sd8!`tjkNbDXGa#Z)^0I4y4%{(nd~DOg zxf0|4r$=S0Flp}Gjm(KTH5%{%^S&!G*~WHJ=4OF4rl{s*2v&kv!wP-N&!F(>%J+Wg zt~rq5vl&F%zWsb_zCJ8d!orIS>Ey6F&JCB`M?(?Th!WVo-OdVfxYCJAM?t;{`@sKf z=5>g@r`)dJ7fu`5l~p(yw+m)k7M|N4@-9AXoi;SM)jv*e@o__xCiA z5KZ_q{t?_ICzQAM9nVR%8P^}FvIO4v5WZzUIPUUXg@=2zYKs)oK@?eEu-FgLMT1Ka$kccd)VuB$Qb+eqL_b8t&AXZ=Yxv+GqMt=*e6 ztWBp^cXxEv=(^dp6L_P##j@v1Ui+=UYZV&GH}17i)n>W=ex%MnEPplvV#f8O4d}{-YxESQ@RvgXPr+Ao^(^% zOwE0|(2kO}%h6U>huD2Yod@Ue-y?4@nY-OsZkKs`d(=C$9WEr@v{KYCdUy5}qt%ZE z=*7B*?I$DQw`M=WSEVXny#nb_6a7$*R%PbmL9Xh~=H4Q=W;QIN5$Bl>$R;${t>^qZ zsNALT5mfwM*W7&yfWylK=>5e{evbpbt1<}(>Rxpp`CkmxSWlsc-U{hAWJdd|;I~FZ zLWGM~Tp1+K{9%3A+28)>Ob?$PR?8mdCHS4AH(WE%hmqOLkN3;K$8BSO7kdXP#tUR| z7>LJLm#^zi&;`=}{rDRt`qLoNgs$zSpF%cv(=X|4u=6&2{HN)rs%&{g?CrA{jt{ez zqkL^PPvYDZKJpApTH`GH?NOz?ex~$fE<-9SU9`c;E%l7JI?czru?yD7SdkZ%|e~ix-g>>__|3_r&jO-UJq&bUM z3aI{rFLUi%y@|_k-;@ty0{kP%>UJiNNRJZQe*nm%;t@toBhn z;~0BTfKDTzdGfqyBNL>=9%SsUKrIfF^8dkguLsVw~47h~bNUCF6qZ0h0wO7l=1QL|Jn-EN_kcNmR*BTPC0Mu z_rYGWn17FX0R@m6w!J)@mkI3wSNSvF4Sjh2S?n9}CoF>hLA#o|PmZxy$TD4EaoDu( z*i~X4{9EB~Ka%cO40Uj~w}>)*tDjiYxW#|vh1cmckKY+3w6GgA_-!KS3hk<6qQE2C zyWpTU6eH&OhbcvJ$3=wnM^EQy!0CAg7$S{PH-UUT<0vZ(K%PP0ANrHZ3#f6yNRdF& zyOAM4ylS-1h#BqWN6xB2h2exMp%~Lq1SR2rp4E~Bn*#gLore z_l!R9y{A<_B3T51Dw|ZwTT5mXc+>d&?p}CXw`naLfPS}%#=8X2SMJCz!sR`^7`sN; zZ5r@Dk-IN$Bt3Aut&p>MWMNddYy0@=1k*zkpdn^^$A8Z(7(v@v8#|Jo-@r@_-b{CWm9 zEDw7}7C_>Kn?f0uy5#|4xlvs^+7CqzWTwc8a-zEM%nhyNp+onCWhdLgN?of zXlbvG6CONBLNs+PfQO%~+?zt7z=Sm~PkAdE4iA@5==&rk9kW;WVB4QcxEqTGKkxim ztQ0Oiq$Kgs{iI$^K^)l^QvjN_e`Nw0(g(pj8?DnNBgyI+&gR;V(a0B`elPrgvlK6k zD|bh?qVuU<9aHQE7DGBms+{gg*m|{u?%q^hH%yPiTPL~-HerPA{wyXR2;cK~4({th{D499!9!r(6W)37l^Ve$b{n@O-y zZ(7V)C|G*))_SpBu_2?c=%9y|?EEbmZ3;b}FVhV}GVu!v0RraFa?jAy^t729Mz#4- z)tJP&K?Npz>AC$Q)|+ba&4=sh6j$~u*vTHjt%O~P=`SfEYbaUfZVuLZC#CV_-8=9KF@9*zV z!Fv*jcWY`nCyurOHcE$%KJX}|pUffN)#c>v4mgC6^AYioP*Rv`*lWkEBAvI3VRe~d zxXD6`)$<4*es~B|nm1wLi?{Qb5;Jxwqbti&?2NJBKi-sWn!bqqY&KnTzI!~WF)a#F ztovydL3t;?OtV76lVx$#l4G=3TgOikZvZLJ?1p`$@fr^Nw|7g-sVdf!+Q`U z!h$y-=3kO2TKezfUZGCuvR(OPR^jS z^Y+tHKpLRqL^@I7Ozm`u5Uh{3imSC|&fVaZLTJTT4u31W`|dT~f+uLsBR`0v6pv0m zL$r*#SfZ>W%8bADgv9MqS>NWiDzJLPc>*9NHqpY5i8$hpc~NSMNh{qe(J@uo(W2Kv z`S#ICOlh{Pn5qt9ya2BpVVP4p=V|-!;f>v*4Qv6PK^DLVZCaov+)sA+)x zBJF?=?y!r)tluz3=A(fe>XGwr&M74pir**|u8 zr+TU%VAnSzo0?@=3xa@eyI@?(Y=$brXnvVeU#F5Z8OLoBVhD4i`)fTavpD zTad{w3SY5jEhV&xbXsLUDRoC<6^Iq4K+F9lXXP%7q&ZOXGUtSF1euiS%_Sq;hT=uSZZoep z)N*ey-}e<2Xjxua>444So&ogFT27osR@LTQZjrRd*Q2LG@Nzo{C&@v_0M(qKQpMsm zHfuYt!Gki9pf~>RY{p0*)?;qL1`_&#_;TiTmEdffW~vBUEd0#=9KC7v%*;PqAw58} z(wf-V{V-K@{?b@2Iu>s+Z~;JX*&I=D)fm^m^ilaL z&+`3SQMQUO!$J&d&G*G+z>(4>%;$}b0(1oZ$=gIG2Z+q#nK4pW#1{zUUNOZhqujgC zR{GtOpYZmMzDwxC2m1*376e=pjbTyjG=h^_O^@d@uJ*g{~_lkguj z7zxB|R0b%p#*_Az!=#4d0r6eUzckqtfDx523%}M2(7EDo*Kl?*Mq#)}=He03CYE!)MolH}K6vcpU00iw2xkYlo<#GB? zS;+||DWw!9;ye(tqCBC!YoP;OdT`}hrm3&Y(vJpg98n8nu3Xr`x9r(>+`zwZ5Lkng zf=W4d{r}DTHh=edkf4g2v6($|?TtS>qgbABJo=EK7)m`zz~gMXV%TgUJsJBP){g!1 zQnltc?#TM++H*u60_d(51C9%LPvv@|2C#iD8$rw6WKmjHLo8p_wHJdddm}|x6|;>& zEe(z`Pbj(}S;U2z@J21gK8NK@(b8W968no4)$uPOwjvAX%$K$^+`=tJQFA02TsYasagBt<9#MraW`K~ozA4DR_v&-i6Lq2ua$ z{cj|?=t)I@+vx+4)GlCKr)HkGB{)n&$Yy zF}vlTSrlW7U3GeQBUOJV3(D+>G_@Y+(df_a zXsDAp1CxeQG3QP(%49$yZ@aNKJjOjkW+eSs&XyR?W0mjbJ@2><8v4@W70^*sIgtPFDQcm$1$}SRbEHi*DC4Gl4ZaO|LQ`Lz?UfzR zeNNloC;7`p#YG*=Kaj0qOjGMGK~`^L3~Hz$9oo?nW&@=bUN@!O1IxU({)xW$VkB$d z6;657-A$f>iE|>@Cx3C-GGBC*tAnG-YLwR`|0Bw_n(`&4TY$d19_yYa{HU9gB{y%i1yi{BMCLQ{jB6d6u=nOB=od3&fmE9 zbl}WvP_RoU<`B3XCI%W>Q9JVD=_-cC4Knnus(xB`;F`)!mD|46!=dnVv)ei{Ar7`a zru^a?;$96TY}Dr4JYeKuK_?LDUXi2rgeaxbHQ|SD<|fTg!+qHct0|?E>Z5^~zZePI z*G7U*-TD-WhIB!GA{N`zeGs=rLWVjxQT?Y%UpQ5g0dn{A7-+|00F7aKsRQk{tWu@R zFstKPYh-}EE56fYR!%uPWGLMPn{GFUZaiaKD858TiWWk~t#fBE*xO@P1Epr+4Gm?{ zGx}BMBE=B3>$E>d#%MCprdmpfhXqyPvoEtSrgGVbwA*)J(<{D&iztp!siH+tetHxh z+G}09^|QTlJg7&I+`f8?qkC`55Lgx1vlEq$F3{*;Kj`HmCBPcuVbz6GROVT&*B0h3 zchn`4@NUyOZ9VhSUX80=}# zN!_D?e33|;djG|9TKzamE8myCf138KAkW~egolHc0^8Ug@5tH8B}}8@4f>hl2lT^5 z$}A40zit430aL{GrtRGB#f;}A;*JD_O-mtDM9?gEcTxA6S>Yz==nD7xlqMHAx6*$v zgXi7jL>z;Hncl4sX8nA;^p2`*+XNapv8w#fnai)4{KcC|59Kequ}cRAn)iD}QVxGD z?|I{%;dg$4GN8C>0xK^cbX-$NU@g{!@TEBiq%qxa%%)kl8p-&jOQtl%cAWN>Q9-Z> ztaKPN3oHQpq;<pZ_^a9gAL!1#WQUE@^*76~mE?)kdb+S^V!O zZEvSAN{aoA3Uw!2)$fBTK_Vu$IsV5b(Zluk;l883n8pv+8 zan78S-NkRRqHdD=+231{Sa)8Po;-9Oaqrwcma&aSu!%8-e0WW`sIpDJ zp+KCK(YW^4Ub3p^y`L3XxB!4Dx0weWYEdt<(UC87VGr|t3--n7jpv6?>|Z}^4hazI zikKCY<#&|(V~T{*9X!)DQnE^Q{(K4-D3Gi}ZyX z(O-I}-*zgGs3oc5&3W2oKljWDu$pnj%@{g@5ydRvg?8tlxG>9$$W3^jk~|mnZC9{I zE`l^zPfvXVq6npPsTBa{T9^`8$^JPh7T+))Gmye%rUM~H;_>p;fgcsISt%zkH*r-d z)%XjAdrqMQ)?D??%g;uzmx{ao>%CsUu2s>6KumuAfk!uf$#cy#FWMtQOkaOs+<$k( zce}w@G*1W?=Dn2Uwh($LrzrqYp>Sx3@3-^~t$8+jIsG`&@+6+LVs2*?V|?zJ9e|4#h_?YwQq<&u*~YQf<9s=V*1yuTn@#o;LvlD1ekQ z;AN5W`!=<^^S1?(WG5SKMw}mdTz_!iYV+G7|4JCj_k?G~Ba%+pdda%e(;hQsuYo_$ zr=hqSft1jbDMSkQa`9M`tw1kMmmw#lD1OMpoz%^_7n;K!623$V7;oq6A5L%Ff6NmW zuKB|2UQ3ElFD~(hf-Dt400>$814EX(J!Sm#q@hof=nZM{r{hi9X8`#^IR(;*+IEe% zAPufnF|#7b()>pd{_QgahFqD1F$ThPDMD_6+m#gz>k43%i0$Z~k%S}63*8vqItlfk zxgYP9gxl{JDZ5G}?9X(~eB@wuS$BVa5{OBYE|;fD>Dk5vO=4lDh_ z0)2eJ#KS*X_t@(cDmdJwf2@)(DUdK&T?!>9!y`x$b`zot;+E?6Uc;%o_ z8SpL_Io=AwpXNokLeB$4J+>^T%D=w&Do@w;1@&%~!>vsz@8UE6EH>)XVLCr<(uY-D zO%<)HL{@0kZ=ZiXQ|l(=hW~F_5ZIi>F*+hxs@AJ3E#yjT_zS4zyu39z3Oank*4BjE zDLG*vS0qQtV{hi<#DBaYr~}>l-b6zBEU+Tw3ADEjb}a!Vc?tC7yU5XXg=p=>FrTM3 zlK?65zu^_uF<|borAKoM7i?!1(frg&3VJsq4<~Xr*+v+1kS91%qt^fRaEvAmy({S^IF4lUsNeWW8B}pWFWi=v{ zIFAebAmT`!CyWejPkOWo@MGj}Y1dY7nR>?-*J7Va6fLyhIa*FpvmVWTem*1kd3eW6 z+NP`D%xyd2&0VuSLY=M6hKBOg%ffG8=UHeCYzwSkm~6ESL}M5sUy*&nN~n?`JTl zdWzq1>BR`Vqqc^IMi|FU)M7db#4o1!=Ss4jr{dqFhmPh)4v9JP>A@7X>}>f^EuZt* zQ)Ol4CthuV_Bm{VUDxwCwo=aC)S1H(IBu}E-8CwuTYT9n+s`SkYdB^US zX@>!%6S1-+!#9yX8d?3?j(Q(lPhOMPa>G=MdeNK9zoOyen169vgpo}PdW^XDWa5#M zg)tOZTpa1v?_cOK>6t z;Ek64i~qWdmj44oqJ1!6s4K4MYSRb{HvAuTrWr( z^?0jipjf~{dxPDqgaj=?Ish+jr;2rH@QL445&6oHi?e= z#4RT(J23zgfmeEr*;nNCll6D9E(0r=A&h00o6d4ag9dg_@msi5o@L>D67InerkYiR zHFd+N{ZzH|Ho^!QUDDTI4&ekRV`HPdN&Ec%FOpoaxdJLIJBYPBd|I*zjUqjc-pL5} zJsF}%!G5cc7L^z-tbO#dwz&B)(-!y2x&+bWQ!87RKGg^aAX8U_)Lnn@__`+@<3l_h z>=|hak@}M)8!|77K_TS6ATGX>K-A?d9|#_&Jy378q){YicS|OL|ytBKFN7a z{q7(5<015()+BUr|6m)@W(Dl=GT)gnxNhQ z3bj?wD-^);3Rnm)sdLPY7P|}Cfg1|{Jz%Kn{KrK)!+9D)tb>o}8hl<7y>b@gAbA+1 zuw{k*J766YcYH^}ZI?kd926nj;AQe7>HxaQhhzECvg_l7T6`J+bS|t+qVv+dr*zU* z*-;G8`l}4^BR<4gz2wnWdXxIxB_6aEJ9jDnY16-*VOolW760j_sdt~%8fM%tLg3=) zWSzi}o^?atbglaE&-+xjPO4R&JO0&Z|LX0$T0$yb##}&V239iZJD~Y=(EgMHrsvQ& z$y(C$tsXlpS**DXI-J05m_qW-(wne}z7VV%4$vwcK{<`hOs^%7DmsY|d}^DRtla+{b5}ej9S8FE5LBhv2xh+%{!Oois745LfCyS&MU*xDW?dLWMmX zz-!nunRJyHj@-1{H9wFkM8Erf5*w_DP2Bvwt5}vUivy4gg$IAR3n=LfSrX9X(bCaZ zMEIWQZT=r65@)fQe7plYkayNDd$Q{rSTUF938_i_%)viWr|;;A=~Xo3=jX3!{G$Yp`ItS1;xB5DVnz11*MeAepr48_URJUaFDu z0cs)@BC)G+)UwK#&OJKYQkV55*&9|)_}x2VQfFSG$=6)t4u4vu_zm^>h#78_`{370 z5&g~3fC0@mVOjE6R?+lKDT2cuj0Pt=-uNHT9V-d6!#6r>qoMC0`x7cK`cJHL5Lu7P zm)GqUNq_?|Mx>_fRO82d^!?s5jxP_5c$GU4~k2(LmxPp@I-~E0VfPDew z3#ap@f9J=SijWmZJUh-={#cHgLcrO|0nQ>a#CK9u~I>v~>0CnK>^Q^H`_}ev1 zm3H1V;kT>Qg^wKAqPsi9C#s>)HlYr0G^+UkM(7JADBoZXIDxE*l-0bqq?}j(VS)3Q zYLwKDX3{oz+N$y)qXO;8p5}aj(CH{KRTZSJC;4L@sDEO6KIoGfUw4%MV-ua!c zOOX{PIh9eD=YrE}U%&pg*VmWcygYAml|DxB0#C0gd)FWD7z^;EL?r*gb4r{t8iUF$ z%nr59o~oI+5`uH|m5Y3d!vM*rvGOT9DoQK@dHzO!dAh&sOs+ee(%>?lhV%u|NR2&? z(Pw&a)#7}?hYMUz>gA$+v%%1`OX#gvAGLCJnyR$Psqi_rt$I`DWHY*L zGYMfli|Ss@-~u1J@Yw5RLD(5vb-*nUBE?y&ivzZM)s3<*!=qU0iRActkC3QN&Uaz% zdPinec&DX%`d%&0B4$ySDg5C$30k)jxiF;Jrqd*ZYAa=Q)j0#bhsT1KB=aL8z|1N9 z=CyPCb7u{&%PyY}f8~;;MXXZ_=+naIid9@HgbLyJhmu5`=&Ggm}s^>a6t^J*%2cO9> zp);}N)OD;}T!-;;`6P%1d!p;+rBs=v<>fNEI4a3>Z48(MP1yS<@h0=x9Cy%TeK&zD zSm1wYh$mO)$H&~iom|S>wcLNly^w}^AvSEGV}kXsSKd5w{D!)men}YVCd)N@ks%|pUp$rGylgH$L>9B=cWlsWlVo8QT|41I~-qJ zLh+x_PRWGi>XwpYGTpq&A~`@ z;h1(9JXT0mX2}QHY5weH)d{+!DN5@`VdUp8!lgB{wwEfQQ9h9O`2HG5cyC4Zph;oj z$IAt!EM|)T_aX>)m{u%Bh!P_bC%QLZKl>yB&uItft`wr<&_C`59}MeH87f~jCrsm2 zEdx_lLW|(wF?s1Db)b4EC@KwZbUD_2Ddtg5bNcYg@AIbOY)`6`uKPdF6~--`&VLx4pDDh* zYvpP>I$K+HE)$}`)I>hRYwo% zLcW^A>wx{wAR;MaFcDvuS$Z%mB=jP81B6~b3Bvfx&DCxjHm`D2kKK@O08KP)k72$e zRNVvAXb;e%|0t+`kf7aGwi%H5D<3J;nb1w((}z^U4@VsMNe;f#|z52isDG0 z83v=z25{gNpI;(i*L`L7y11!dFC8^c*eP9QA8P$Jq;ee4TP)U7fM~S_!)5fsgA>)9 zmf^n_?{=-VKx;@qO8twKHMi5aUOLy3TPnnZfiEu4mpa!~aJ`edS?GgSmkBDDvFniP zeA$x-FngkuPRN*~Z&MzzkG>MOv+rwG)qV3@?H?euka~snh;}k}`mQ z&2P>91?AJpP_I<)B1HUvHLJu4TkrAwPts#Q!z;AEuCa{+&-~$m5K#+|N#>*E>8}9u z5&7GJ$#QFoFGxceqk1WT;^r?$T}&~+Iy3;=%J|MfcMgG5pj5|kQQjopWKV`muA&s0 z01*J;jO^W)gmAg8YuWa^A}7K?S9k8CfV}-#RqF5kybVRGe~8tIag3_FNCc$-haK(f*dtQ(HRz1gOfo1I_HhGw?CUy&HJFCFZ-XM1{b@~AxlKCE=8yk zc{9FBO-cEd1!gxd@8byWS>KGRbgbsU4%h6CLrA^9#-ey$nI}4zSD zvGoHRwLnyr>v``&p|KKt%%GYF4_f+17g}` zcWUlqM~}Ypa)ErGyV7?Y@S4LR@hM&nNwaZ$D>E(;i^lELA?H68nRIwZ29*_!S&nG$ zEF^_(L+&{?i>wz(&uN*@p5Eo5E#lY^Tf6o00z96))vuYD=r6?PvoB=9n)~5FSE$^? zTdnv)iWtN%UN%$m-!wuAu=zjqO_5c(&Hpb{zV({p$N+ulzEODtMC$g6o-}R+PTRog$RnufR-dATE$-vzmlo*_Nq0a!#H)&Gf=))Y(bg2>`#A z(N6854KVB#W%lDge#Je>4G>v{xTx!KIW(j{S;kg;xx?O5M#IC3z5ZU{<>}L(BZmqP zlxj|$M?JhjWzcVtxKICzE*Q?}t3 z_7I|^Da~awHf-zU_`*VCmtfTzSuU@2zjT+)`P7|amLd+Zi-(_0)NkrP4NS~E3B_eZ zsilMt$e7MrB>%aaoz7Ey9m?23adUl?wxjlJOR`|xv_a|*hV>Olo}T1o`G9odE7{Fe-k;{U%+Y9c(QdD={>00w@--mYt^uaf@$D2vVey3P5~ z`g7)Q&x^8Vd{fp-2D3M~@7<$b6^`jfCV~ouASOUx1|}N6`Y~w!#sa1MqwY7RN;2pS zTeXyIElAXtwQmyEWaB|X4@*!+u`zI`KHnHzrOW6Ou_eZ@y?KHcx6HEz}}o0dkDtnw4RjmC{t1G20f%7Op!&(-VTw$Bdaygq6s& zzqkX#=iqed0ZMW6`wUBut?L?>^?tWLv+s1I%`5!&jbGN8SWECld4}TOBYX>h3;a*- zKBzN6fyovR>k9o*cPp9{-RlOegF71uHKeY0C<5h<=7T^(V&g_}+YbLEP=7@)@z7YI zFdcSf(epL&WYKzv`j>~=RTYkNu(y-)LBs`+GiGtSj2cfrIYE2EJL)Q*o}5kjfk9Rh z^En$dH_bJ#PBt&Hw#N4_U1}s5!}}s)gs&%*3Uz5mzTmVJ9+H6>*DLPPEPWbp+IDai z`j`=|Z!EV|4kp$UqGQ+RT!JO8N~rQ4(Ov>=R2QTiw9?o#MeB6=aAlyj!M*y;_ou(_ z=i*HLp4e|*TR`13(GJ+QQsZokSu_Me^f0vp2~i9gOwAAVYQyi+5Dzk;Es&M>+?z!) zZRW({``O9QOkI)U+gb670AQw_tLt6$b>nT~;azN9f1^6*$Q*@{3B=($#oykxs)638 z)6kp4BF~f*4;TyGGh=d}b>h0XN-5Eim7SN#((P)j1Eq9@qpoIU92`CU>+6Wi z%~)M!vcB&Am-w!Q0PYC(?#BlP6A=S+4tDOn$nz?j+{u9(_eizt6QQPpK|GgH()Td` zt0o;=mI1#6cz}=|K8k+&Ukue1fGO~{cNN7G~(?*~*Y z4`W`wd^v(dA{$?pMv5+FQew49+y(iWVnm4qzawT()J_h04*{tkUUtvmM^H>>R@(OU zs9=Sel$aC1>#&}bppEC}WC8 z;7(|%980e*bct}qctA~mdXuyqFEbSqaBiF;G>+a9w4m0fK7?K4g9*#C+P^XR=VE%h zo#JlqB-tz91x)5=N~#HNZ8(*GQ&K-pr^le?ivS1QLR!MG!gXRwt!vQw>z-Q^@>Nw; z_Z*kHV()>r=9@AB}Rb4H8s z!|=Iag710WdVq9)W~?{9KvR(Cav+Vk@Wl)H=;vU2ag5{LEJI{@SbxgHmK!xopc4uv0a_4QW&!p*Q$SxLF1g3yO4_3f()oNU`|DFu(Ne4oIFfKr#h4 zl<(a7iS&oNPD?Ru8)qyCN)Njnz}T+2{0>f!tZMi~oe9@vgRBt)RS`ao3?N1l`VYU5 zH!XtTAQKm+u$Km{DUqQKxwyYgjxvzlNs(#eoJdxJ*yitlpTfd~9PnBy421HGxdInt zZ<0tsW~O|fGHC!eK`Mg)`dW~`XLe4AzF!cF zfe0tC{@A9~otXPB6ca++7UiWn53`x$V0S89$#4WBKVW%YIVG$-#8Twnf z`fVE(T5F*Kx69=KXOmr;Yni(IX+<*BH@k8Iw^oC2zXDkyAoZ{T<(h{8rPO$OUBa>d zcuT$}VC=hUZ}XTIgZ4GH{IHdd^MTu&ty~Te`hJfUBhhVXgu(XIC>lb6nrJ%gpFa#J zujOGwyL+vsYCy^y$-}{2aY}3mk1I+~r`f_i!~pt&4ER7c%s+%n*1XbskzzmNtL4}OgpW=VsOYlbi))@1 z?*$Cx&R+h^Jv+Qh37D}?BK7oWn`4XXr+o#wyASSCZdbt_SOVRv+6mMvZPm2P;`T2` zxv+VVWY&t=N0Nfxt6PSnd5hZ|rKAKK)utMeTSrH}Bi@geAiV!V=VE{PokYkFpY!!t zVNnlD>g}1j1Y!{DQxXts4!>dbfaL0zY*cgA+wnrPj@_oq#zK)dfDN9w`-bjv!`?xU zppLe7Y+-~r`=UnH_?VK-0At;1pv~NhI&EZsF3D#T<=~$yv0GWG%(vq<7>vr^6?@)j zxn8*wTel8EvwUTe@DCD5pU;1X=jqSs;n5$eNe`Q3biFlm3?U2H+rx?-?FsJY@vINK zjkmlIB{vB}bPRq_6Ud%x*w4Y0-C7E;+`)M}prny?tJ=9(b?EeV;mZsn7^zQ&g4j*H z!Kl&C!kU>(zbAm|m(z_%#X;Zu_RDjs1%biP$$i*Tp^IxY41#eDwEQAAe6uN}LvXCP zk7NX^oSvFr-JF~_^HU|;4c$?eJWqZ>-u@p8FmZcV(V;gj7yMDb>s#T}*RhFJwoX1U zu{U~cJ!*AcrlwH}Xm`y=GgUVgE~R3EmsqoRVl3gYwPq1yAub-Ba1y> zRwdql-EzeLDV+&1t9T%2=f%N~*lg|Wbgw=Z>der1`}W%bt0izBr2@q8H#zRjv7+p_ zh>oEN&$(=|j?QoCh?LN$mV|5#ji~PZn$pvuoqkFvPT0*Wnc1b( zL{x29xDBF2e(zUxX9wKS=tIw5l(?ATQKSU+Y ze6t1-#bFK4H|kylotAcwAj>1o|C&d$d=CTs|K*#`Nc!sEck_NyxSwydLM)@buI&ro zMp)~meGpBv9{Efgui>>e4byeuMC&;I$|vmj__tow7piw|e`A{=Y&+qSW2x{RB(@Km zaNw?s>AYr^#O+o3YLT^$jX0C9jfwvDqWrs=GivXyGHPGKK1&ezx_dzM4f%|E;(~!& z;8gsQi;@4>7bXX$>P1hu+X_kj-CuXfJ3ZeQx&0nHOk@dUPbwX6E%}muk|+S^Yy71W z#h+Mg>nC_e|3lSosbrs7rhV+M+zksNd!lx!F*<7Oc@gz6@s&?6p^$P5=S>^pEip0G zDXt<$jr$iEm0x51>sGSI92l<>ndY)b$|B+LHi;|K8*>OJLWuuoY~zdIi)*#my1Bf=N9`gfJ9(pEyGkj2e^+kxwe~8B!E+w* z)1wR!70Y|9Vgy`r;?eEft|Y_RJ!5_2LsQ(Ht3MdUOSLV*G9i zs`FKSBlp@};qPtIAiyVycv&8-#0;j?IVNfKS9^PZ5ur-z!)r=6x$8v+J0bmKv}aRT zgs->{7~*%W;goq+hiM1NqKw_6TozY*Fa6dO(!7yejkMMZ08-aiEvN54A_^$SDsv2Q4T(uOR5x%J5 zks&qiugY;xL^%3r8N-_gkG!aSFaMiO|6`$O)^L6Prh&m)7!?|RS^qMcQCLA)gt)J- z?};4H3E^^hkqSs0vN{^Z7S!aiad0Dnyum3^-AF^)0HrSn34?91$q6r7-}t!Hjr9x7 z+%Hd}-irR}f5drv_x*do9g#WQEGEC^q}1d!Pf^BvbXEpv1`F{&h^c(Kost-shVd{G zavL9%dT{*{=Sf{6aF1>1<~YN6KZ1|KxbrW~^PLHggLS<;0;c91Z<6cz1c{6ooZRb$ z+d%seC*D5nF32ai+?Y;RVwYbu7|EJcHN+ZEf<>lK7eNH=mn4vj`=mu$7H$1XVI)HK z+5O9(X@pgHqnaWGIq!MDwA;+3??}~IuVB-oSRIYbPX8%Yk>b;+CyEW)tCI2>UZf9( zY;AXrWG{2Ix)AoD70Ey;CPwgOQe&oPWMw@R-*fI>a`~N&+ICQ13)68KjW1UWJ1zOTe=d2*mh87wX7}-EG98 zzT4qt{l*xiYERy$^ur98c`euwu9i~b`-R}{GL74^rjqqr*XLbWb-OilczP|F4h^d$ zM2nu}n&PmdTN1SArw_W&ZOGTJ6-d?H;d@_DNLO&}@gLSOpP%GK*14;TDz9+`OJ8n^ z&IkH)Ozowh7`>W5**2V=fNHP(S@{%ci&WsE)3{*S_TPaOBD|%ke%SKPc&|QYnv`e; zo3noYj^?*k8VP zUlP zXFhD{>-*;^ZfT+i2!+(8ru20oW}8!6dqNgX;zv!&l9IE(_yPxXya6%Ldh*-i-yRbG zWG`mv`Dzb~%kTgQlD(kC1CwV>d!GOQ!eUPFb686fMZa2J_&E9f6kg`MxtMe3Cn zkqgcT{^W~?R8m`x$kE}QFL5-k{o1bAi;B26W>lDqefCJVN466*zOuc<_UBfm5rU7s z$fQcvS(=jOZeoFW#ePlYK49P<=wAvZEiD-mN`GaZx}C;A&v6-v&u3E z!ZD`-p2)%De&U}ADqLU%J|$T9RV=rWuP;Bp$wh4CHl~DE1#rC{x|vVX?j(H;Y=6ezPONNa$-V&G&7@2GiT^^qLcx(`^M za^!}*EBqGt)-hKY(AWs-Pk|Ug{y-x_a;@ko!oK9HNRHW)e0{yNUgc!g&AtxvUl(#T z*^o-LNnewGQ8hQ#jAc7WGC|2x)HJiA*8i_p#_$&l?Tvnkg`PqkS&Dq#2EBiIG3&cq zK-zu<1IER`ybmnVfq$z|xjS|ockCN#ZAy->PraFYI$VRkZ4zUhQ4pIZ94d52Mj`xa zJBfAlaH?0G#6XfVVtTrjih0y8eUU)fqz63@*SI*rP} zXDR-dih3p`mls8F_uv-5_9BGEm1s$N_xqFgT3_5)r@Sw~$2&N@;967T!Szn05tOeB zt=|I0dN&j9a&g^j;+!Sk$ZQm#&b5GGa(^TUAdl-@@-uhbt$o=4dhw5JPRut>hES$p zy)cemW$C=@o)>DL`LtLA?gl&z`#QbPVj8S~1D8KoefJoImGJ^K6E#hRixUF4QoN(_s(^(Nt9Nk`g_ERmlQ|n0JOlPF5W^wI!S4O6PjqjnIiR!@% z@iGqyvNN8^wyophlbL$vFLobi_)^+5y130;Z;O{+r8HoPk`)dl;X^b8SCyycgK>fUe9e++=2a_6b z9YBMK)=!1~%dap*$9r3qdJb0v1;4)+KN*p*_}N=qr@UnUR{ew-%u#Kwv?M{T5x>Gv zXL+Q4j9DLLm&y!(FZC$X;dV%nH%jMW&gP(SAtt#jag2^j)j0a@vr>Gje-%6BZ@wId zPJ}+5Sj>{19LDsdj%>G)CT(dk3;mqBa84bkjE`lCI(D(WW6AO)CrP#9c8@^k@5;;E z``-p9Cc?@OUVN5Uoi6v2)bMaKShiBm)%<+MzEO&(VB`?Jh0eA;nsitGoPRUyH!Ql~ zQMAH{x~ivF%jbH$rww$!;VP1z%xUW@0J_39r#SU5xrQMLjQcb!%us1Y`spnFJbHXTRw%OJ8jZUb73|1?4dL-cxI4_ z$ik!4Bim2Iv9zDHL^H|VC8A_ub}VD}9+^EDzuwt5GyXb0W9vDe*Q#mo3su?_R3{rH zbBGS#@SgCXEYlC(bzG*yw+^bWbFP|V)eezGLG%wOUym>T*hcrX=G@g8#K7Olfvri6 zTa#5sUU{z_lDxLlwjtfns{O!icls*bKr`(&5*w6>E)xVZ4juBU|I&p;7uqCjyoiV^ z5S&R@;o;{w6f#Nkd$gUlpfsiV=oVYw1L^!}CqGCz(!jq$<@_Gq-NgPTm4D7#=!558 z8y5p_Zn)Y~w6AQI9N}I1mUJ*zMTcPpqrRRVo1owp$8Zk!JyA(A`8RA#D55@}iwzQ< zJzI;q{a|QXW7lQ_Lp0v5U}$+<4pVo!k&dL=RgOx>7dX!MjK@#X?@r?%Htx^A{8B0U zd65KOOCmyUN4@s8y)OEaq!DZCh)K`GmOI`{(8U>#qE zM7{AwCD)QCVjf{OIxL$fmx+TcrOujn;koY!IWov{1Z)pEz4#7QPwc zfGJt|df=S{oZQp)g0!*;DwjVrB~y;d8_zpEB*mHh?iGd@Gf8HK{}zhh6gw_EH}Qj% zA+Z~WZCsQhjA=hmW{e@fIVU*l<+RmXYHMo~AxEh7P#Iaugb(P>I}wG!WU3;JIueT! z0=1;v)|3hx=1*^;EZJdIKgpyuk3c>dTkPN?zh={mE6lrT3lri9VvCGxYL|Z~emG7p zCrXLig5A@sfBB+IIzz^>peWMbIwJqWc3i2K57VRHisw?!d-(Cv^+}%n?ttdiyXeso zVjdb>f0jtgADuxm}XK)HWo&DXWIwqAKTiP+tVWfhGV6|fE@`Q#d{=-;rTI5FI zJz>LrLW8e!&(POI1A{QKOf)1Z=(@7<8i?PL{`?#lJ2xEkWxy&L8-0TPrh_E7kR*(n|=jLjfR&Ovnu=LmGvP2ty4gqRx|8muL!*$*CTZg6L5 zuDh5jv%oEitN7i&*J~MncO3KI54QGPP)ZMVGmU22CD4ynbdpuq(_E|GL-hG%-eqqE+F*GCI4vPN zng>91NK%R#=lMkm|I=C9M{yM&mWSxh3m(FCzgbM6!h4;6lGyJyG*r^fv^i^q)VzP7 z`&J)Xd6Y!5#Ut%+|zbx+s|qB#Ttq2AiwXaF745 zFE3ml6yr@Yq5{_3amPDNg@abzaTq!_>-X1mVwcs=hUAWF@!!*D&i@w_pT230MKSQ& zaxU1{%yN$%bo#m~R)m3}K!`jmxro=WVTXgdAdJ6Iaw&S_NflPD%mD+!%fn@e-NwWO zN)*qd>W!FVo^OJiaR$f1L*G_(seFE$Au1YgHweeCvZanMX3I*W&Q26Ll2uwC2`;ixn+7GNnB|cKim{XDm$AFDE+#OLKEt`NzYo=CBXLb7 z$_*BbD{+YfCU_giy#L6`q5Bx_f}eYsEJ4(81#Ws7nKL!FOFSgmS&@H*r-8Z~)$Jr z(5rSURyhmTiZD(iyg9LPqWr%ma1>wSh@$sJ4W9-s>Ekw?HQlp)E_ES z7p|};MW(tsN;<+WzxyLM)Hs}aKCe}r4qu)J4)`zO2Ahn?`^%e@c z;jIqtFK^&(E!)lxhcAGITn)(7?B1|nlTegYx{(wH5F{j|yQEt>rCSD6 zN?Jl`hHgO`1{hwDMw+2RKx&3&h8P$)4{!XxbI!Mxi{%nrYuL};cU;%+-jC*oPZPy_ zWrg>#3UR-6f+d&sw>!SA^^T=M;;CJl+eo0CPsiB6U4y|0pQ`=xB^#}|56S@ok5h1wEdng6)U!1dLrlcW?ijam(*Y0=C{(a+2La8Avp85-iV zBw}Hs(Z}1L?l>d1{-SPfKFg^fz?F}aT`tk0py0dHR#<4y1M1xyP;MpWyf}#@-5MAS zk*ovnOmb)u!cTJt?7Ds6ztU{MyO(|UjP&hXiJ)!QI=Jxl6MvRk4bxS|*bZv~=_epa zFxIc7vdhu5sJoQgr}x=J5EL><=9$o-JK@&UPS_7zC}Jx3D8g9M&zG{&#OzK@I$Y)E6SnHcPsJ3Ud~JPrap~&T4$`f>Eb9;vzvmGtD0n+ z>qz!^^E6igPp#;iz=H_wWnT@BN<+OUL->oXD?y>;XmfS_1s%?#aAR|-P;J($wwaWh z|6|*^%q(bRDul;@m>Bx6fAG^VyJY$m_F)?r7I@qHSo&?s{z+jnx(z;3cRY67KbfQz z^5|8kYbvO%?zTA=5u!&q;N<84y#IPQ*CUf%!@DoQUTyJ9DPYLYfzCFBvQFPsM&R@B zINFXpwIW^$Q~?EDCed4sG+$_G)5fZb(iwtU5u9~d!XLv4C0-jV)V*J88h?|VoMJVQ zDZ$6`qS)g7_Ksg-}nMs`J$`F>Vk=%zV6m*$iWXSvhtS9q*|r>X7F-pQav zhDq;lk%)B5yD@PXA@UzQUGpy6 zKU{HWcOg>F3tyR*xi$wu>E558_HlgD+VJX6$^uN;{p}!=AaOqY2)$%?)wED)V)^gdIskQ`TP!1M!WjzeLNg|3i z*3IN*ez!^4)Ss-ENW2A?ND%NpP)g~c(J3vxO+`Izyj>wxvrpDgOI*BZX zTE#iI^mtOAtgP$ztTyd)ThJKUobEk>XtTeYt1zUP9{ZR`%2sh%bL0`j$t7d={#8Re zTCYj1HgD`RnYiC`;ipMl=8v-G3AXx>Aho}29?LHcq#t0-r<=z3FZ(XFC*T*LNISBD z&r*v7$!m}1){8%>o{2$eRWz%jf60mJwJ$~fF2b^gXa=jZYY0Aw)B)3{6G$7^@>`M> zy@B*FwEFm`DN?__e=Ic!z*8Rp< z%R7sdV$Bt}?mJ7u$;GF%*}6xov2HD7Em9g;26`lhrr|JG)9CWjozM4urH6EJG$J*c z#v^r;KDhVeZC;sck)cBrVR!nd#Y2`m0g?3zj;K?PQJh5;59h z8T25&TEUe#Jmaw5rWhyfG2*=c<>>PsAI!IQm0>07+4+e>%s;4jCx#HF?U1TWVHj4%Z&h7DDM*{`%{) zh-^^;R5LwuWy+c;9idVvWh)&o;YGDPT0UZxXB!#toLk*ADQlEXq59Q`QMa((e1XK> zx_3}LuCjT#8_>7IcIP7^y+qBW+VN&ZwW41g) zC&AOpHuX`{kgv2~yijH;1&2|pC&vUxklS^m4e4x*`MjpV@vD@fkyqlDf3K$n|J?vj zf&egyDk7JhM#67GD3D6TK=7e(dV26K1#nb=`(#H9iQ% zT+K?FFn)d3tIv(q9W0lgf1%mvlmGcZTTOg1G~r#oOBW}fgHfV_I$n*i%FUTT*a=WG6#)pI7R7=F39j z*XlScQ11}CPx?rm>!O;B_&HIh@Q6EL%vd4pF+`Zmb|6@x;vS^u>Vo?@8 zHb`mGr7Iv?JH4#10b=$AS9!nd{j2Oc0%^2gdWrR3;fhZTCwKQqCE-Ycazl5CBIQ7_ zhd@H4n4N_{1EY>>dCBs$1?;N+adx63<_o@Jcuv%UKAX6Eh;T2*gvnQ0_0~(VDaUhl zbn381)rh*}`AP4FAx^I4o=%k^Gn8if6~&MYR$?;VFju`Jb_S|ly8Iz7RgC|tkKnSn zj6SDw4|IT~zq-|4a^A2NacIlFpT52pUWm2EE3^Hb9EnvnYZ|O}Bq}mm-aGfD3egnA z+eQ5ov{QeDw@};Nb}_@73FzlOzgQs0urf?NX6;F zFRe&PC9yUZw;qHXM7;`gXD6R4_Oc)fADCri6HAb1+?HIbV`nYX==L&KeV6Fea>Q96 zm+pA6?#;+NVofw2`fMV(UlC7y=e;944XqDt!l_8 zMD5Ge)4>@QNP-Q<$+mGj9d7@Qh05OpOYyaK1Yca~I$uZwNlvcw9LKjuQTHN$?ePg$ z>2>nA6E;VpGU812|I;J0T73Jx5!R)~@-cf)N2B#K#gqmF7PlQ(VHm@V!%!V~?or)E z5ta~`rciQ@2xU{B4q><(Z_84|(~+nGYSWRudxc%Tu2p2a`{n8EGehYM{`dhcfAOd< z%vLa) zLb=$+rG)0|bgVQwP<14PHS7^19VN&VjVlB)QGuV5O!c!w3=wq zQBg{(;LDy5rqGPzTrmH>eSd#HG3ycrjr<JEFdsnN`Wa-JlXl3PKE3Yf71pt_tt1XU`Tqx11I~ zw35afzhIb13_ik7P(QDEPOH!hYJUD3zKbdM5JL>3|J=V5G zE{?V&eO!HA6{>C&Stl8OkDwE%dCFKUi5|->r;y@R$y|?}g;-y5w{Npvs`BAE@RN2{ z#b8x_;@)Gr_&IhZOVBBcE)*$oDL*HaqzO(;%)R_yTEV4D;(b{CK9^;+O;ecGRoPdY z9$Bn!&SrL1rdw`_Q>H(WH7vPw4v>w@$|*S6>GBJvf_LqgBKBc*9VeG11l$?|LI&Qd z5Q#;D;xf?CE5RWFk;rX1eb)>?mDcGgD4edhSLdO7-+1R;F)+oX@P%>4$cN;KHmCzV z6GZAxN9YZ1Jfo#^24dg!p4;L6oXVUV4DXOG}}x z7Zl~&bu4el6ZS^(1x^=!7gc0QS&0_+8470?PZ)fS{IYYJi_C#qj1%%CTLt4JkRNoA z6IlN2**skS=o&d2qig?w<^f%@SuT}QYQX&%oMz-j=Y`oIk$ar+Ca?nC`DjUnHxa>%SRXjO&7hsWMgmR2x#<;5*ckX>|8hdr#MD!m6?>AwBhx+8lPUm&sVAawam4`( zCfC-yv9D6`-k1wvNFwhPSgFeAm_ljIg6PzG%hnyVdRb$9V}i1Myb%tSN(@nMCCd@4 zB#}(2VOOttovkNkLh9sjazP5`&B>&ZEV7dfEbNJH!gCNsG7EkTKb7WCzF|=ofwTyY zMcEY{-#^DE?KWWke7gKtdHqFyVjX4*g;rVW5A$T9C#tHfd?lt-OuF!r2Xk)m%fPnp zd$CVjtqdKz9T)`r;j9tS>b|fV7?Y5?SpYT<$-XY;HTCqs!@Y=Ys&vixVrZdy>&f*A zJnalSm=SiaZ+`9Id^wBuJ5=xt+de(wvXUcX{F*Pgt1Y^&EyAhMJ9em}!8CF=maoKR zP;N-Og`5HfVD}r!(O7J^HKv0NXjf}wNi>|q0AuQ38VD_UAE9NB04=Dn&%Xf_TXK?ehLxb%RNLUd1(z zW~?hfYS~Ns;$MVW1!t3Xlwuuyt+d+?>%yn#jcy!4=iyeynVnv1%a@&F` zia$A-bk8M|R9U-)no!q#*TtFtZWcjjZUf|(WE6vrngss?cuh^TJLmQPc7e=|>|B6b zOs+AZl0xV3nuSW_FHBm#YuR!E8`3knlot4njUn^TVkFbMQ@bHHf|>m`Al z=-oN${kg|-5L-oBieSRH713&mJ!*O@qB0C{II!!!(MNSI1&XkH5L}0y?}XnQWHSNI zZQ7V1?hwODF_@0%7ihf_D}y{~R_seoh&DCEQkWX^II^U=yqT-lkW_H8b;63(<2#c$ z1T$gyHKrR|%uB~zV^Zg*7YyR2g&Ojk{exqsGSIY5j{cNOez}Xv4{_cUgNFV>Rt^8; zawYf-hBFihq@@g;WH3Egmso$)yUhG|S4hF?`4-3>qvn;W;c-Ul8v5o0sDNE2Tmwl@ zl=sfC-ELXEJZ;OGx45W;?zENiu7Sm60;S@^-SX-D_PU{ge2-*FlT#VTbl`f9Bsg2h z58D&xzxDGR3R9z~q}|<~kf|&K zp$87;i0{7NP-K9`TQ*yg9^iQT)_Yk;UOa;0Sp5a14Q0}yy<@v>d}f@?`UZRY`QK)b#-0=QcHzx0 ze+5lSHB+B4oygOliySq~Pksaipy9KTi(-V{PKcOujFB8wO#heC(-2z@y&=3OXgLGO zqOc*D|Nh|MfF;3Cr6ji5hU=}B{HBd?hRD&i}uwp17%3SMQMxxMo-o{ zg_1zFt->rqEG{mWA6ca8`Q9)*>}$kh0%euWWBuqNiX=H9diY)z24ah_f#gOkZR5Sh z$PZTjHD1b47c`(NxwZ=gPOiZ}^Q9?7JBpP;0}3pdMq_#riH@y7SE^{1PgzR&>91U} z9kegDVIqq!w85BT{^SwJ(mFgACOW^TiT0d=M9Kr`HkILR2)(YZE}uh(i2;rUC#rvE zqJ_9zaZOW>Dimn-adNvR(M`~Rum(u_e>SzM?O&`GPjeMMrD-0knYN?AZLJdz?;zio zSFN1{_OY{&YF4f{P>J|Sn8o{H9LaKNkM1`Y*~$%|!2>LK>bqGxx9J7j`YxRIw8epuZ z6TD-%pKkQ{1ddJ;C8=AHMcooM7dA4NCBHh+89*0mm1yW# zMltC;>a<1yt7oRI91TcLN0EpZ|K>V;Um@6QcZ5qt`vGF>{E49FL0CNZU+ZfM`3#m^ zr`}o8P7^+ttHCF~3$wS}Esos!FC7Nmh99xrzua9kdC z8#B=w5*MM%Ev<0*Q_>R~6-2*QuK}PXadPaZyHJW^#QAi~U+KRpRwhpuwWG>io|9e| zD2M;9PuRVE?_jt`8*k2wPyH)w4sD>W$D{>32J|k0H1^V3#8AJra?uB~u$XFr^K&uw zAH#+jzm^DV^QKY_ltF)S2FPS~DQ^$EN~9FY$Wq=S3RMoKA??J`@PUT|hhZAeJIE_D zsRZ#NGfiTs%)<&HXTn!C&oPN~8j>%Ad7dsGsRbULAo=Q990AQMpNlUSk>3=s6nLm< z3}Uz1`)l_UjIXl6j>DK>9-651@W-FZh#zlbjKSOw`h=b?V-L`0ojXw_QtacNypB68 z&rJiLz@B6|$^2-tl(@1TkbTa>71x%{EN_KCou3VSQeyWlkMF>F-ReaeDMt9yT_UXj zl#jbe73v5RQ%{fS-zu)fj@Q+ew^vq=@qbV?RkD#~TI<)Ja~$yy7l(=k z%#QtGm}ZsqO{4LwD}0V2$rc6MQ#P%)-yMa zRw)pf0h3V^zRYzAewhB}BGZ+H2O^?Yr)x6O9DV3}%=$JNFPq}8{uAc2!O@4;`R~NX zjzJl*7s`uU8OLhtJBq+@K%ZNu!8(+%!$u-9Vx;-Y#tZk~=h3>hjWS-H z{5kXN+Uc<-DpFatCQFnOCIhqGNdEIH7e6F6QdKW5{|zrPA!?n^J5ZliQ9s+D82$x! zf4MG(dzg6O1x(kYaj($=mzd4>Zlj!rAM!rwRl`lS!<>5h70Pg3tAa_KsIh--+qMSR zfQ-&(NEV3n%?C#eKQ+Ti8Ldc1_AV*219xpy%XxZ@jZYZoEc~8Fsr>APqERHeG^qL`o%8M+ zoJeY9`=ii)vsM5UeJ(&H@EXz$lN13iDb;cPnj%6l0Dv!>=k zyWa1`NyH(llhb2EPm`ji>Nfug%y|j;Kf*0xUbuIzJg0=+-ih zRp9?^-G6GdNGCTPwGPYja%XxfU)oM3WK&IQjTNg24d&XT!bprG-Or0HTh#8D#6
15WV=ZWwN0Ll5gjHZFnnMrCV{mPb`K#XKnL0#?Y!_61HaS&Q8P)4^kIlX&>d6 z*+p4R*sVOAV3Q?%-*QNA`Vu7Vf1ju-soSQh3$eElV%p-9(^rJee<0sACZyn!YBsa5 z+H*iPeB6Hz+tY*QE6T~*x0^hHd=|+% z+2gSTubb>LiLA=GuwcXrFoFEKH_zs*U^ZooDPGci9>N1=dXn^|NpAWGiiM`FdYKg+ z`|y)I3-GcK%W@95sxdX+m|$XKP-^_2n|iR*L(Y!a>GAgV?x9DKU~vPz(M*BcS7E8z zWJG79gD|V~u!1ux${K9RYR;60U z79#SY>T2-VZ$!^ra^$^R@4)((h*KJj;LBa{x3ozuZh}{VS~e`FEDhJI`)+Pyjcyk^ ziYykt@m^xju4UqN_XAbiF;9Peu59#NR#lECVm{_!8`UZVS}Ybfwebf-^j8L*fiu ze7@I1&W?#T16bT8Dj;nb7h54ZbwJui*J0}gWPZFX{Vag;(w1x2cMWxmeQ72tcCB!gI4H;4SZ`8-vZ4@XXK&w*x1?*p|9=ndI>cgNt{cVK2@8woB% zNy$nKui~8*Mt;rW%^>!l_7WFF*SsO)sy{uY50l&?+zczBGp8F8^QGbj-)E=)?j^PN zPQk9kxz_nQcdW@sWU=9{hLJZV+D0(p1Vojqp0p6JeRrkd&0<@dNNRyBrH^-Z_r%cR z*-RbB*h!<1g-;3g2t$5yFL`hH?o3O|?Fi3Z^m;=!`P9DL;L1}j?m#Sc&XHz2Jwtxc zGQFBkEOlBH5O2B%Ykyi{M_4ZX@gxaHT+S5PZL)Po#@98Tc}vz{G4It@mm`LkaXsdD zv4mio8FfWVJEFNX;edMlKsdjh{%>*UmalyZG$B_9yd=M!YG<`dX}pZgp{8<-4vBzR$=)GxxQgyvQY` zr#;`g*CM^iM~*DrQ`uO7Rm+VvocOM6gSqYHiD1!r>9C22yj@9g5>KZJ((aY31V4#5 z3GN!~luGs};k43)PLZ<7^%ffafZyI;Rk-=Y2w1ke;`Fth8@~~5O9;62(;$sxrL!QN zf>Sw>iOTkAO#i~QP7qxNW@zk_PY)!@h{ufFxi-Iavlps*BZVLL+Y1!P@T!UzCHJ&XeeW zn%2t8G2Om6*mDj3r0{-qyLaPm<4PRvo~#WE)kyHAjo1|mG$wvHVc>pTPw_-)-^u@} z>)tGL90%k=WK#WGQkIv+a!+vA*e5QcOdrxp2%XZtWQ@@CH7Ta3Ya*had&;KvaJA4Q zwCmR6-T4@La@Ee(YEn0SC8>h%cV`;Vk1p*^bhp+y2_ZDbkzCf0)sO0zf6zh)n7;lq z?n2~#l6 zKvj0tsPKdp<)8Ce3eHex@W_JfO`}z0#>L^+B{PDsW8lz#hiqZvFTh`ZZ@N#y9?7)b z3vr90(dm^esO$qcG0Lfv;PddU(FaFj*O+hWxzFb;xFDrh^f;g3k6wtn3QKDrv5p5E^dp zN{4Q5^<0cdgn?iIQ(s}~=epODSAWJm<}dfK@oS~zFFVV`PxTfq`(N?G8*X#YT>TPq z57dz(sRcb<%bcsb;n-r|q_JkDFk)NWI^VddJNqgfX$psY8)%1Gt z*sgcdIpXbMDKGvD4*us_dUT>6>WQ@rhk1$GgG`Y~NynG?k#LLrF9r=er-y zB{!IPa20y{YCd7dxgs)U205d4C6LbI{xPj6ccITsEvCMjj_IiV^El-|1-o=s7zs3evItt?>{A((4t(Q(OBKw%s{x zwjA1f+L-V8+QDfw{$xsC?0tzGMQCV6BYH+X@VHM&Aahry-SXavcfHj}B(vWEx&tS- zEvU|H;(2o9u&|PCG_*^G>P2Y`fl9FiWhgwCT=%fE%zIgYGE`oVxrc#;G+}_%Q?h0k zV;2>~v>Xx8oEt=kUPI5usm=WZtrfOli##fVSGJM>Cq+sTumK4XIJy6WE>wjR5AMjt zv*?)L!b97@9dOiIQWC5OYhgkdpM+4KB2_3;SL-O@#%9k#gdjzrX`u*3b_t8)J!O=D zV7lh_UN6Zhj@nyxYv@xW2oruA;N@DniSDvd5trmcTKZX-*vq)T?wYrF{OBm1Qi+Z! zppM)B`IT#0T4CDN(MZx6BJlck)gOwGkwG)r&U!7fsj|a7Qjy{scij5b79!Y~xx*?+v0o@nCfOd>j zO=J6SCHLeeN!VUiaE4u(A?-Rh$KL(PF(Xfl_Ns8C zV^!vycNJagXHYGM0bf#JSyHJy;8!8MPcSu3eBTSD>=Bl~aBcw1pS-`$aRLA3H9xVd zk7>pZLZwa&aO##rlg|0cta^5L!Y}u7|6>7a&94;<^FR}8%9cCH~LbqYWSRKEW^p3Ai3eMt#J(6?lAhx_k)p+ZEp{yZp!tI0(I962A znsEyD{CE-C5LTl9^F8$c=Ue7+a$D9!H;m!G^1Qp>YT`pO@6|*oRJ7VBpj!7d%glOB z?gc<^f%j3s$i(BlDs_{@Sg}k<^tht$8q|9QU)jEsIK4vFha3hze(E(@MQYf4$qR8_UZ5C@Q6<8??YDfbkp4 zk#t47v+#N?;EhoWxzruih$sHQv~O6!Yl0i0<~+gnOAH}jnD8U#=H{e&Grr*D#;_!7 z%C7W8{7g#e<4Hx%u%MCwVgGZzKBV`Ftt+p5MBWv^MS0vIH7dtZZ4D+fsG?A>k?>b{ ziB<9Du7~sVL)q-x7rXh%or0<>?p4Jb1RB8TfAXrbb|e7)=RCP3 zTCTIQbvq1RN;h?C7A!p4`<}Ye&@Dm+;9vPpExf&IOG^ckr->KM+j}loTP$^d@fAgC z=y=+zJ#g(m55%@jNt#Q`^^sW!O1lSw%zpkw#*{CcXYbQDwIHMT=5 za&ochuu=S5sSE&(G_e?00Tp;nOEq=)+HvYYq>6P`nFB>Ux3UgREXdwYT_iXCwL0ln zfZS}$7J&WML}#&bMiy(Za-;!%MsG$5OSVL;lp?D|4d#%Q(|ue&9}n;z!hXGuba-l2 ztfahy@&^tlC4sMy?cenX;FrqHv>l`~S*WhVJw$!hGZ9udglI|lgLf0FQzg}0DHUUD zVG_iGx*L?o{iyQFB_`F^uktnJiF+tQsrXlwTqe4J_fSaAqwxWTt^Q@Nd_FQS;hm2a zDWZ2Pz{i`!m`ScsD)l+A3r;Q+sX}GOfa7Wib|7Mn7Qjool8B=S?Pq$_nR_Mv;{~3Y zf55%mieUEtaX%f4v9-W8z)-5@+;%_F!dGoXfF@U18-zi7_h}{+MM1N8S|^JQ!yRf! z_}^NZ8R--9aIrD*d2=+da{14RjJutCCUvSPYA?kD87nPkA25}NLj_hgjw>Klviln@ zoI+&zF6_$@6%a~{k66t{M1#L0`I`0rNUShGtiPvyFDirFRParAWow2<#r}7RwM2MG zQXhN4Y#jWvbjxf^+VNe$#PnGv<{#04Ol*pb;c;u3m5=BswC;b&1=CXvbHrlm>5%yi z1KMB_VthH=GUAXj5yg3(lUGjdl=+PD>;HLAA;T=o1DSEJh4^P)cTHoE#u4v!CjkOzq*^p+{ISsyU91R@0q|9!Ze+_$g2 z6LYIy#}7KK34jmBp*F?X=%DpT;>Oh#dj8BB)h{Ow5*&&Z*|ud$)(NCn)(IJ{lUx9X zE$rv$U4W`ZV3)8_;&2^WMF|O3WKW+&C zTt+afa!e%orxi#!UJ|(5L2pZnirMa_N0E*Jdo}2q|3_>9m$_md@INOE*c&nSp$e3h5PVL zt?4|EBA!l{`5X{Qy}I_I6T)f``GOI70p+2s+8aD+#!8e`nUm&g0LgCa0xCf(NrpwM zh4eDSI7seDmU}G(tP?9DF8sj9Ied7!DDV?^ldUtx?fHXq-Czs3$K&ZIYXAZo{}0ET zijr!VULy?rndy5kWNaQ9cz%>Bh7HqaGlNaIC+1F$U`nT#o80s37cc*^Tb+9LC~bqb zCHCUykQ<^(%<8ytUs1?Hk z+R**Vi5)r$d8f=7H!8~Zl~_8E;Thwn+32;9a5e!xxjTsT0D;^xJ5jr4H5@}uSUk#J zx)GzMhSbihQXqwn6(6ApA99>aOy%J(ZfTz*xM7UQq-F(H^P16WkMKYLCoY8omWy<7 z=_s?7b-Ff;ZryTPcO-cjvxF#qD2Pyrzt_Tm*6#%+4qqgAPfIF+L6Y$ZKGr|YX;6A( zfX94gc}*4vhhTwLiEr^#eA0Y?(0pzXy>kBOcc7IkolKF>b$ptRvPt7sJX{X>tW}a8 z#tJqJ2S~kb6?T42dEBxKpY767yMJ~8KWR3A5An7!2xHwE2ldTWZD6pf6f5vPdLowY z{CTQ^Bg>IxUN96I6>XNb)%&J128Yy$;67zmsz zKJ)ETVA}uI0J}_!m*@%bN}qrErltrWh?8M)+vWp{`);?8-(isPN_9&R-q%~ z5GBmg(<*U{>}s&SIIQJsI+a?=SBr#I^N?MPDDV(P9kjAx!t4EVyJi*iYYkZIdx?}q zJjtw&I#;eF2o#=F#v8J$QHB2euCe>5y2Z^Z~0@10Vv>YC5hxXb{uxuxA`HH$Vd z?Ymdd%_IJG_rHb1&2IX0r(3{1@-m@PfviOGw@o(35yO}V=HVmc`{F7M6X}hZm>!N($rK#^2zWKj1ff3=qj}7-X)zD) zBa6+0cjxM-U>UQqAnO|i9~IP;wwOvO(F(h^CP5@cm4s(Imd&K`sh7N9DBom{m5Ith zV=g|UYxQr2>?jE`{;e>rNNjIE8hXV33q*!&_S~>M&0b7>^`g#Y=H0HggqC2Nasl~9 z*y+QghZO+OLZDf$I!gOF#AHgxJZu;4BjLYstVP^A zlIrwMWzlalzfycc;~*#yx#Ie0oGs{R4Z;#Ad4{q30E>VqpfY-Cy!i2URcXZYzKmz} zykJqzKxk3(I2XdpFgiGDd>3QvifZPijSX|oWZSI3l`o~&>Yjg1TtIfG|Hn+;41U<2 z5rep1g8raLWPpk7XvO#)ef3H*r%w&r_alxXH?Tu`P~Fqv#VHlxLhW>uo9^IJjHUSc zFFU#)1fBcW2N!1u8S`$*ORVJQcb|?Nnl%B5z8XXE!NAP#Dy#slJ0WYDF>cS@$RRyS zcE5;eFyqMEiq9C`7If9>0z{F2QUfq0yci48oZRbaTnxxC7)(jo2)89>lZ~G3>?AU}l*8?+9?>x(%(K|J13@b($Td8u5FR@mH{F+Vd%MVXv7I(2x}W{Vde= zIr92>L-5fABvXIa4%>wSN%)fpUG7$C9mI~Tp8qxsJd9+Moz0N&(3Zxeob2<-Kb)fk z-IIH}ZJPW{edFQ!n0rl(gpbKf#C{)yxq-C#+E;b^#nkm=t|E$IId~dF=;~Z|)C{;f zp(}em|L=Vlbk#93@3UQ-N5@1=jCzxQGqx*rGq&5Ma5J|1{@=0P&XJJ3>vd1;nYxPv zU7Exbwbg4pwy*!CT6>qcYSeU;T!u^!(uT-qHTe->Q6KEnWGwZGo} zC)C{x7^~J&XZ)Z(<)m|o_skf<{4B3}{1mb~^0RCd%Jat7>W|SEErVj3cH1GU1lW&; zmm6p63FJ$$bAu;S+{Rt$te^W)e}5j|uW>JKYNQ7c5$~s<*0WDD?Lph?KwZIj2uf=^LR%qpG ziWzZq5-jM-$5aIFDaft}j?HFPDWj7Ls#I_`hOlJVAx&`z?mPw*5- z(-E5&|JJgZAUEH&hh*BmR#=4=I{0tYo$qv30hDf>APYcGQ3HC6^ML0BZKKn2Od(Sg zC?o>W^->NGI;K$&$O_ojS?Dk+dr~RCx9&vKi>j*o^PaAiKgr`M=Gz}5qm*W{A z{Ms+J9jvi)pMkd|at#lOAg4KqC!saE<~~9`(CeCVK5k@kFoECMN<=p%H-fHaT(8oE zBd$^BGUxqM;+3j;*3G?$MoF6CRm!vS)YEBnhO-Z7@T;~~ zLK`;)>TlLg`Bj}^ve_hO|0#_sm@;c-{4^$)Rv`RaIszfZ3Xx3@fhX{f3$y%r`F-8` z85EXz8G7{MJGR1=XLGVUl|cFv6Yl9{wYGCSyX42RbWRI0J+<<#MrtEB;1#o4O}WK` zb7leXH>mp;H1iqkk&`y3;4iTlmuyLqDF$ygAO0?TXX!Ev73-rs+4lH|&T~KPe}glu zy-3ox;}LZ3%oCH|tsW$T%cZRt5@2)&f%F4Qm?2gA2w0foRmJ(Q?6u-`A4xkrKosRV z5|j~tu2E%efS|1gBbAhC0QI_$A@ig`BSuPbusJEDg+ir|fgtmt!G*v@bh=1A7l z;>uk0zP-ZP%Bm@9L6lzTk$$8gcc={}0e|a9iH!}d$2-T6>0Lm3{ue8C_EQDs^u1N3 z9jt}h49YLmLHs^r#6DY~^@{yiSd1<6ng1>2^iB|zOo^S1`b!U8HShS7a~(AQAdvv$ zu{GG3*)#>2^GV!pvG}FjT4lMNs$@i`n;9J(uPLB`hPok_@pG}bZR(n*`gG^!nJK9C+l*z7T zps$#kih&Qox5!7@DCQeod&lw>CMx%V+d2YUW@Bs70ey-c>53vET&1$GzQHt2^lY^E znx+uGjcHBh^9+ugRQX6cih>1a$a!HV=GuXsK;uo`f$FAV>p|cQ151HY6O%efO%xOb zjj|ihbaoU43gwY6MR6c zfaJ@qpeHx=(lSD4WKi)r^?1=pjDG&q`quuo?NDYMb3{6?vEk+>j^($Xxn80?AT~Vu zPfEyn+Tz4vBp+FbeG^JU4odTKu60J)Q&XNs`GsbjNJ)`W$fyqCS1mj7;bb7Ed3z-$ z-h)yMx^z2TA5vA1-eVQu$#o%m!vfseB(&&5T2@x(wwQ=CaVpVq8u<#-n=dXd{`626 zPzoIV=e|Wp#gGZ)Zl(d3B^~~fA|*$l|Eq|}Z(4~jpuR|$<|{dpFH*w1jwFGP=EtZw zjkWlIJ$jzn`1ZD0;03MwWz&)S&mvd-y&h^;+4)GxJ0G25zGloK*MpMIsM#5MoTe&nHWr@1-zdOduKHdoNw{1vSzL>YCG{dDt*s1or2^}*dX z)9wSpI;LJBoZk6>(M3{Oe@;A*=I;JSVV6+JY!u_~UJwefrlfW;{m5#@w~Mx)>kTbOC(Q0Ss@a zub3AxR7*?b?vTPA;i-+E)mFW4D$T|CaebFl;|WIyEm5Cu6A;`ZqByX~0g+=jKUr=g zkMrA?<3C8&-TRdLi~(x6{%3A^MUSk6Y@`Iw1qw2>rk@V><&Ot@!!O znLN?;MF3G7Hqw-EmQLGuO*T&BN#vAJCdM&k4UL08kV5>4fAwHVaHTS&-LSq>RBvNY zNkz4U`_ z(bz}&swG62c^x6GR23;bFAf=~4!xd#KOxJKx7(_XpLCF1pcAW02~$B+pwRtN>%t!o zf#^(xm6)fT{3^psw)8qi%-tSxW=qlp?Qv2?+;tJ3B0_f$*lUEaSmG6#-Q}1<0`rnT z11M*Dd8r;fL8B7!C)jCjUdOvlHGi~qeV2!%M@Nh@jZ*%+jwfz(u@jAV{{(>o7nzy? z3w5g{l72_((=esWkk*-oUnM4S!#us`BI2P%7Y&mgV-+3xw;Ab4zs@FmJ$H`$tsd5q z0hOW>b|w8hE-Q-(lHmyogkkn5_G6PPz`~j+%=VW~K7=n%kw_bC3C(Q$9ddl0J-yTI z<|2Zmn!K?4u2X1RbN^9kytu@c-dl58hXwaJ3KS=p&das0Uk(3fT2=FR5fQanR#EgB zwX$0G65F0vZlvAyjie3Hdp@OurFgGH2T5jp>F@*PDgs-J`$&wru9kCg19FxbU}#eO?y?5Xq-T`UEWU-qT$+! ze4DRddifBa<3ZLh$ic6--pvH|4G$}-^SbUZ(h8@d;jWQa<#u}5~+ne+ZvUce)1&cypeU6@mmScXfVCTn1G4cI{ z?*~qxT@%|XS|+*)gS;*HRBx~E3&J_(>zzN(WsIil7;o0~f=$~OhV@=#4Bz@79jo6L z7Q#|%4d_~K`#Gj2r|Rg&`x6`@KfnybAO06fzf;!WdQA)Ih#z z2gN?3>m{$@s&q!+BxDI;MtHCDU*=1MpW9TS)J25d=M&;K+1b9j`?tS(^~%BBU3U6X zyOs{g!o~K%05gx#1G6Z}y@#BknMBd3d3=68OBXSHE=aIm>iBqyrwOgwc5@x?iF9~) z^w>!v+>%ubzk;w2Uf-i0Q=7f%TJc3v$PzKIrO zq@YE!5jtY8Fx1rCre1iJwIDu)ST8hT+pUQ6p`$1@eZKU>P(3HX#=dvwt@hd{!eM>g zKh~4ti)RZFPuG{1oK$h?WJ&WgFSi42wGlOj=KTIMCTGi2o`q=7Gt$?l_H-0#G-WWE zdrE<*{r`w6wvzXn;wFfVIEH3Qzn}6nUqxJFtz>e|;>%qc1(g zl8tR^XZ?LsMr?+6JWoQA25AVbh=)`Hr-=JXtMsj65^bmN>=Vr4if|_zOznBFIw#l0QmgYgkm9siW^0ts^dlTF^=^c^1jZM zX3qpt*j^F;VMH;!Z1H|=uLi&<-_Xs5>~cxeY|_3CQjA3w*uP~~gZ40g5X+jocbP_+ zJMxgNK0QaowTr**`51eI)o?^{aKz$Het?mF;h4)r%hl2)cE9}bG_#cZn80EvldqBM zQZ@Djsub$(8piEH1Uv)V5)F9k&T`$(xvAT#x$3iju7qq1_=Qe-vTcMW_lN_{0{_=X z6n2tkn0(1(G~jZgh7<9y}g@>Ian{50HZ;kD`8ue0rMYKD{_yEH4g3~Lu#R{Q4ic76mIB?R-^G@4uLQN{$+S^#cima!utj zCvR*bfzJYLR+I&j*(g%C6@8YhoCy}rR*tQFvghCCJ67(qekJBi>{4|Muir<#sF5uZ z@lBYg`||tV%kjlY$g~DL{>V0CxU>6$tNRMkVpPiSWQ44jv_h$E4!(K%x}w6oV7FXpZYtk9Pi!kN zORyN?jY`>nr64hXk!JkmLHzeFETpuTG#zcAiPF>-r08O#4IGF`P3_&=?IcLx>PIcn zx%S=-c$SH%n|h*Yu_Utz;uI(46#{1UruBX{jX@e8M2w~lJl{+utSR&_9U z8S>@&S20y^A3sHzS74fFy|cvC(c%tOgxsDt`!!#)2W})`?o7x1R>a&NtrqpN`#18iWQj`Gr@C_n=k`hbL|D-707f z2eQi3ogUe?0J8$W$FcXaC(s|5_42CCrm(U8?;=b?U4)RaMB$=XxDVPu0JnuD1?5(GFhJ0AHDdo;>SLJ>dOe-BO9BG4(>Ai;cqKl_?;Q+59asmNi zsN_yMm5;=-Wp#MTpOgnx?RuoJgZ0vPf%O{l+KRd460y(L#WKFrxffL2+bGFU0pqMr z?xAOOV%8FfBrw2a%A)~$scA+1B>90)SF@L6{8lsQM~Cthpa4g&=B3U8wCuLyz~L8E z?Z;!k!=LHm@EC2g&MJTeV}gt$1qt;2@To{hqYf47s1*EdEVwr4<48O?GIn91~yI&!12-?BZC%H@8I0y z3zuYEh0EC4i+JeFsTMbBp65djTie@IEI6=?*7|x<>{}J$ugRKj0oAFM;=47fY!;3I&q-9F(=R9!K@*Hb?GUy zoLJ)CwI|Y2`~qoY|G7N~r7cjr(hz_j_NO=rRzGU~|1aMLJ*;U_9o}puU64es8-@07 z3oTFLb44MmmCH(L#Z4k@$uiTX%#`p6E^#Jd4Juz7B0soaK}(&uj|ra<0^u^MA*m7m z66AA-W5MY2rfE|~MbwC}4FkPJc5k_-Pf9Ys5@w(>Cn9l;nF7Mu1u@xy6vAHJ-J1vs z9oJ3k!<~Dc6shOR_BV!H|L)~r_n}|s?Ikmr^J0GcuAnA0LzuciG52?ETnyj$0FMSI zW*@3%quUf?2B|Q6;stv@i=h~ZW=e*&JTYcJ>mh>_;~YgZR*{TiVyq}bi&AL-AUuvL zPJQ;**MmQ(qFKL0p43mF9)5_MEPMUae1#pQ{)GQITCI!fYgVFjQGNVw=Sf8uA%j0$y*&hna7S1YE$6dF{{to*s&|Iw+4$*GA4e2lMjH3b<))y<} zh24kzTj;5>{|CWJzPC0jcP!}x{QQ|&DXr9Z++F(-g6q3XCwzv!kd)XPK{)VRhBQ-^ z<1?Eb-jM@$Khki`T5KV+%)!T)XcD)kz_kjUf!(7Tk4NOSY$NZnYel=pDh+s zzZ2^c!OzB}Gf#*gD3MxWO`w$|M=5}KRwOT-?4L31m@qs+?sRRE+{&sjw&LUC|6E;- zD@4Y4oFB^3Izp4-a1BL&c$3Goa37p8swl;lwctOr=YH4Yi(_$75A)!65A(^7zkePW z7b z7HsZbOUnB%><{*p$>ld}o!M;lVZT_$PRC4A)p<&n=2yQj{_R`W82@x99Q6HPdV>&( zXhD3dQb&&?RYNt}a`omK7)uQ%6D>}b74aL9BO3@|p*TdU<>EReOAW6&M$$?zb~LJsmx443hHPGx@0>8}AvB$=kzK=(C_d$<+fZ zfCUKS_6~LRUzuHAUW)9KdOf%Zr(`T9SwIC(Zr_eggqKquN#ecC4-ldlc9Jn3RKUN+ z^7!sdy|8d0m-VFs)QV#NPERCe+avo{A(}ao4k7O1VsNMwoMB``)tHh|t^2-x?2jn^ z<&||87^i-x2wFsXmKzfQmz`C<4B=NZXKo>#%#5;m@}5&^u_LflS?=k?74!vX&-=kY zhJkALY(tH&-mW6|^`rL1%@;;*$6ZA^;|Q`My~b11vN9{3Gtx?wAti%_D`riuvu%?$ zxVA0r-}!WxsLVqi(oQCZ{vlOT3Zb|%lX%r`MD&C&TKqc_O_6O1Q7PC(ip}TmX2|$< z-Jkk%h848waOzv8v-DAwW|9f*qF8{hNODFrw9U+t+7J#BUBnKO)z)K~Q6Jld0#S0- zE|PcjT)dy+MvfVqTUt!_1~1!zAoZMK`7a==HTirT#0V@OU=Wx69-#?bCmH&&FSQ=~ z$m=}bv(Op+4z0~{6A(a3F@$vFJNbU;X(-RQ1>%!Hk6@5bXv0pL<1GpQ9fwm&f(*5{=BKw_!G}LP*3ChD zG~CB+16&$`sA3hR5fS~qy=2D}VF(iHI0}d$rz`g36Jok3k)UJuoJh9c_(5ze7KCu1 zbH5XIyzSd9cbOGl4zE)WT|AahwOx`3H)}u*!~d0M_}fvBn-|A^7F)cmz)|DB*%un-P{$ebs7DqlBIG#SA*sgkV0*^5Ync+XN z$*?xBWGGYg>&y@)z}N&qIK4Z-dwSmMgts2m_QXkbi4m)-kn)daTM`+N$k3);ZTzmg zYUZ_fBnd4gL6?{^;TX?9Q7ZD_ysZ!?(1GGb|1OO%lZ5(ru|OQx zNfh5?05wM47NTQMlwl7os(&pjZ<>9sikT3Wpv>|a=G*mdHON_9Xt{N6T6VXF`U3e6 zwm3rhx5YbTroYU<;6FJ(KYv*kL@hSr6I(2U5}*!T@9XkJ%A*#Hqf)LQ1VZ^GUqq@I z5{bUT5WPn7mkf#WA}D*dt(|S_sbVdw<<<^Es=&hCr$`Ky+{F#~i%;ot zaXL9tVOr$(fZ&rSREoZ;DaCa5Lz*EMx4HurFJm- zqBbGa^zfwZshW0UTgu9!V1Ve&Na z5NZ}@O_xUO!mB8K zg1P_*HZz%t-j!!X?m>q;0|f-?oTs`KbvQ1A*3VmB()Lxih3^NJX8cT*AdE}uRYIi2 zU&ReT3bEJSjrz$BCF{ub(g-%X>L91f;fRk)9kB2)x=ioXIr?yKsjnzS-Qaa(M-K$S z&*BpDz8rcKGwHBjNp|mmTeYuNtj<~J6R6(1PqrO!rN<}mrsMDyHHt|!Xlps_;mSE$ ztSiHfE|~XeNtQQZS$%Lo{4=H6?;1~>d~|>pzYOsSR^eWV!PEq{(bjo8@kvM|3}mIt zWM15a7HV>YUTpc;EGRK%A4(?be8>wRIUcW%kLPEiir;IM#%4-FZ(R=dw>IjFUJmx# ze7~I`2OBMidhd+LTbePf6<~LNb2$0>3PVHD#5rFlc~QgZ2>fn*WhVZ7!lc%pp?hrX zYvz^S>jCGNB2#g1-KpG!*9Q6?(KQN~qDT<2d9oUt$i&aY9{LvR)c`9aWzL}B=5 zgnPomyw)NHpudp1Af2N5sH2VAXYg2je`Z)Ho88FJTL`*LywhP(q698l*Jlrr5061! z!|jF$+gbC2K||(IS!VdJ@?kkd+Uu)e=Qjn#RrI6rUll%Np!C(%%hL<12tTw5c>M%Oi+wGB+lnt-%`f0d z5;jCgu-VAXAtzrk3pp;QKXi0f4D9yV`m+`9(2;el>I3(K@H3nssZ_Y^tbWBTdUU7j zV+3(JL40zkJAO>$0ioy50{!gmErSbc039uJW8zA2)LuS zvE4Nb$+f_|m0(()1pLDAXOtE9W1;eL+}!PozF0QUoX#`##`6nXir9Z19+h7*>5=~p zL+=GWzL4))K_Ox4kyqZAd@9)tTdP|mO1lw{$7EA-E%ll&zv4wlFh;h&J>{UK?Nh`K z#0KAKg%$+wodt}|EZ7x}`;LX`8+L>tGlAw%!8hfGju(NA1k#%qW7lr%PR_?a^Cu>+ zZxaWlt2Jl3!=Jf*vEdyH6k$F(5WXk&qeVRGj-HKk?3X^eSn~l*gx;kkB9XHlggBzp znT&iXg@od9k$yM%?S6whfK2z`hlZOUm59VQ7XsW+Q1vQQfB{iwZ|@JenjiTt8?NAc zo!$3cz!h>^hc{&H*y|G9>DzUGO!2GzI{1tF*0(w&`aLiK4o|Ihybt|C$9@~Sq}N2! z;fkMMens%&sS)+dz-`z3p=V;{6Yy_!KRLq#G`5>hYdMN$(u4bXtu(nrgrzB6T+3mC}M=liDUV6jWb9931c5nTXyO8yMzo2NSS>8t8s? zS{fsKQ~?3nN+J_JWN1-L=t!V9DREL1kcoBz2;h#*niTMKbS3@de{YUY2vzWt$5`>O zU0WL`-8~ddoXHQnG~bb#_hlNA7{$=nbXQ!C3~Ra>8=rqs0Py1}DaKs29IjRLAT#DNz^lBjfKJTVKUv%0_84fO}P7oq1@H`m8;p-}v3n=gkhx5Fwtpc0-zEtUO+IrzfZ*9@J zo{?lrb9HO8{8Y4=@X7@UrH1=YNyy9Viub&QbZCwgH`@K+>Fg@w70Td1M>g#=1!Zu6 zu+k?w`UT`MY(=-f9gV%qRu+|d)RmU0>Pnsw$gr_YM05aEIz&Ry3@K$ ztIM%Tq%AP?vi|BUTL(w+#DRU9v5C`KqQ`lkNsv6B&Fro+h-55npNif7$uC{QCc4bL z={k7XKpm*_abs9`HK7`iii`%twv;<{o`2_U^!7^0%7{py6*kG@ZCv6#>zsHfnw&o9 zUc~yIB7X40LEMw1O+zxO8!eQ|ppFW!9GE2f{HSkiKU%4QaF5~jy7DewCx{jt{_^cw zB_%8v@AU52sPPG}?yR07g!bM8v~55FXuEqqPnn^zXF%>9uUH8 zzf8qRe`HK$9pJUYf+)*d?LHZTW<<+0l$b3m^T>tE#5S)3eX60m@VwtH8Y&F^@W+c9 zxyba{5S3Uz=ZDfh7yCg#kZ+6ArmlXCGBANVp;}iR7d-rQ*kMJR%uulmuPxi=*Jx0* z;`*Q2hvy};qv4c%s)8C4XXwYR7b7+6Wh+ON9TKR(fe7kvn2#1ZrX%tay3ZZ7@|%erd-np2|=TUEec6l;ARr|V_pZR!eh z?JT*N0RrVe>N(El!+w-Hi8}o8QBi>q2^g!_=6m^x8YNvh%znUe_ru`g=4`_-)2F}; z67%fV)3=!XqgEIyL;u-vp|Upna`XLbP$W<|GE2JAK}}|WF-JoSNBMTJAK%jGhNl(= zRp5A;@NM;$`?8_I(yQO+(muN;gU4j$OoX;X8Um~l^3krRl+&~eIq`b5shy1#c=@ppUZ zf(aAX_us7ys@ieB4|U?SdiMqO$)3;4JzYlmKs`HrsVCM&C$h}@2y7Mv&;rq41CR$Q zdwbV>d;@N-Ytv$;g~6mkQ;Dv>3g=}TsqTF+Z&+wI^KRp1eKY+gj`h375$kQR#Zu2d z92R9q1E3Nb!7&K?eFXu%&{a>}|!tMf#EYx>TJz~19x~Zsoy)+;-{xB#>mnp}V%uhPj25fL7ZzI1+3IR#&2^{PZ z;PC2pDdX4bxyn|HfYzIP!pv7KxJ4~3DQU(L0CvC2zFhnE zf@6m3a33$eyeXeNaqT6TEjx`ZJ;w$S=db`WIje#H4 z;}drk0rrcl*zR4ovdueqIN&XWKsinlPDsY)rnYx4{0JOWb7Xh+BvnG4?kij(Lj!wgDlVXVsDu zt7z7t|Lh;AI{k7cDI|9KpxM*_VOuCi_7%M-XhkooZGafcntg!f@)gmMvJwqQ%JcAM zy@`~EP~_P-;n)pjGMzu^d_APil268yqhvGR2x0YpO2%E4PZ?Y?44tHHHVoN;j3-Rf1-DZKbw%|Wr${BbQaH2_ zI8a=%MJGaSBk825{>`WP0kyEVnBIT@#?Jy5HJ&2q_h3b;tIwHIMjALa=(Y6po=@1) zo%`w~AEC?4zjGjsJ>|dT=6J^k(SbAD?K|!@x~YZJ;B|ta z)Ev=-$bMOo?ZKaCx!J|-bFkTCd0vXGPI=={r1hUOIsWmhoMVLX$u6L($gh6$od!T^ zbR4Vlw#Hn_VV&#l`t)sIfiE_WSdkA(qgyw3zvPHD2sGh(m*%>@{lz4qmL5Alp zWn`Q(L-V0`i&KdPC*s_o9Hg|p#W!8#_m!@xAuK#$7M^DsSPvDu8s6)oi3i7gIVBmI zl9wboE0tmTz}d6!W8G4R-Tf&V80#KKjuA5eJ=Czr zdgB6bw5waztkyjcO9#+_E-5KlD5Vs9Qb~zwlTnlMxKaUou#`xd&4S^4gB2`56aH9V zw0f){of=o)gYrw0FE$1ShPB;8Un&d7i=60(kRo!7W6Pm3n3XpDn%BW%e+1_)FM+Ua@VaL%=Hsd{LwMTtu57_u4iS~KJ8#6Rxn@NSWM)5rY)Oh zVtlX?w_I=(4S+5yI=2&lYFgC%!68*gBJI_(PyW%OWO9^va^8L`ZV3D&EUIF;orIx5 z2+|6nnBK@&r0+^QrgK&mwqGsa>c4j zx<%;U;?v^g2Rc>e`Rdr$vX~4h>035#z!~kbR!q*4VUj)|{{Cd$U>>DWD_623s5eJB zG@I+PNj~rj=hrR z_9sDdz4v7z6WPhG40dZ#$u*VE{%lvrg9^WL?Oc}6pU9Ns54B%QgX1eO7giM}kB{qefh&46mVwR-b6DTnZ!pS>-zfoVgr$?R&$B^qx{Gt#KYZo+x4EiFrNF*dFNxY z4Mrvm=_Z0aiK72j+SB@r*4l(cql30L^q20)s5uAIP78QNN@yOX>EtJm?>lA1i4&Yq zlrFhp#zGt{FuV9f79~r0g~9*i3`&l3rV$$ywv3l@f0fV3Lc)n1#A6oy{^>;2m_dPN z5Ib((IBMPVwaLHQTJI~BGBFJvqCpf@1O0-ZB2{%#r(faq*QCtcvJlFMcF*m=6Ct4o z5J-@E*RqELW{MVTJ}*lRdh{g4dK-L&Mh8)gxp8-Mp{1(}&cZAIz1VBN5q1A+&co_? zF35{~#c{Cv;Q<2O>@Y)Oe@-%wQZ)PCJ?d|o7=A1J;{GU#`!o$+@pE*gywlx0h!S+Y zPI!uVx_COY=zY2s<6YTy;&gYN7#MIi$JM&x`!op*#2|wv=dMi3uqOB-)sbo+s!lh= zK9}T^TCVN|-qq~5_s+WCv3xk{r;GZR3$W~wNOZg60$ooLn7C z?M&~)N#^{cuM8^&*2x}~u%1t36Kq0V5PtCR+soGyccY-rS@&j~hieGKI>W;;x6JNA zR&ZTkMP_L3rh+C)nEAgiYPFEGoK&2l+FAYFBaPP3X>QHxE+X9R+BL30>gYnag`H2R zR*yS2n0mr_>{3qfNrBR0e|y+JNNyb}qbF7(IxFrE!kM>OKWND0?HdMo9K2bVZY*k( zlwqU=Ak=g5Y+AOjIe(_dIDQk5llya4tt)uGBR&Xf%elocGsuxGjqb zsFBn3M%k1(XA~oYkDC+^r>n%ngP&8_ky*}ntBl{SKW<%j?p54&CraNm)x6*{DVJHn5b`%IC&g;WlT zh$^;#{qU%62qmQ6eukIg$+|3|WF$?y#}5OjW*9@!z<>KP!@33>0O*st>H$_fb`S2K zg~%Vl!zEq(k$h_0Y-3wOTcjsWWviquc_V0s`q&NP=ze2PFHsaVl zc5?jLT4?@)b}SaDr?lN%B;Oz2SKOZ_?-;HN`YL_YPqi&Qnxm^h#?_4i>@1b~w0hsQ zBHMlTaG3~laf85>4YoH7ntz&!P~KMhRnD`Inb2RKX)t%okr4G;A7*siJr|QkG(fb8w1~M7? zxCkpFKBn2Hy6B*D)(@!c`y1Fj_>#GzX&yf;zn%rYWy#@6?-amRGTY&~sZgWZ{9yX~ zB?-lUZ1i*^{{l;KtwhB)Gu|jyxL3{AMF(jHwWL)$d5 zBWM1}@81<+C3H@sBkJEn7%GulbMWHH=ms*J$H~7zzAQ@UtY^u;rT6$aX6aamBwPV) z#M45b5{vt7WYt~S{%>ySPcR3IQpUn%qzoRqLBxb;2N1BSxC_duBui=PY!S^hyWTnO zq%q%Rz?Z9#P+Y#JJ$>=K&vH$CR9Xs;ZSqds13-_-E=ADh%9{)!=lRO@2a z(n<145IHXJ)yZp$ztKRo<9k=3A4aZhf2P)bbnJYibeCopEtf+)BzG(?XtS9;P~KL- zWf%PY$R_#UJFB^p-SU$KTz0i2dlK(0Z0QsIkI;Ik2||^1=8TyM6_bTN?u6DS^7rk@ zr=4dCOP6IP#FaKX_aWW|-mm{&vYL`cSUUB+Pb{6R+8#*6+Ak-5fXCR2C?|u!tmrer zxMwFV;zNleoTlaaN+{@Sy5Zt$ye(+CJ$YgoSf+*y#K%bu zg94x5yd^GW{hsru5Bbg<+(wl4zkX@I%b6s%pxBwD+^~jiJ;)jv754S03VBvFdLR{@ zYG$UM(#KLn^nkjY#`J=ICOD{Wtfl76XVy&7qzWDB=A5#!R;5S~u7*FTE!OXaCHSwA zunDQdp+HKXlf9MHYk!o${MlK1GN~IpGMaL&?kT{+t=FxF4i=oLlzxI%50yZWHG;n| zvd}ldW7_WIYOVHO7*yazfK7@tgNO%USn^qQ3eR5TETkUEAJy?2n*|G^fSH3$epSKN z|EhYuKK0oY?ApWXnAFWP(5WpINrz0+FG3AaA&*NSRAV4`ql;~sa(!VXoODe8b6_Ln zZb^yd)4~d05xe;OIwIA`-~|j@8&8diV5m>dhl*HU&w}9=Hc1DRUs(_ z&LnyZ!{tng%#4>G0;6WfYJHDnDwk8nFdT>*Q@wud(@EY;+aCG&(jLomSC>Z2PNVzX zyPV>ZM7JH6L-Dp0o^12D>Y-$h=?$XSUT}-s9jx_pH#8GB^gFlgGxg5)8N2LELx|)N z`RR2{&s4k4P1CgZx+MM2?2SMV=)lkXJC$`jJI1fb{&T{gP%Ix>=U>s=lVg;Jbl!+N zD?5$S9nXtD`pg5sS_h#&=@j{;i(hj{$(4BORZxYsxSyeF>&b6jxD zhbLzRpv=sIoF6>zf|fht9Di%`lp0Z)rBw#5T2`@pYAT5KL~`PU()S_|DMv-+p*T2x z^vbP32wxUShdMc6|af*E$3D? zXZMy1<*r|BaDHN%1Vw{VHjU$BP!O(IRe?VZrpKSs!yntb0X&5?po<~mCBMaNt!X;E zo`LpkH|m4HuWw1Y_03{N$uN8(PPyTaa$?5MCJq`Ay$ow-?mUX~PiG%J_Z~kxfXQ%# z)Csf5Fn%yN>2)ZgfpY(?HR6`S^Gix_+=B|^t($;(blQxqTn#kS)6;grBrT)X%vaMA zb#z63NBfn?sT$CaeW9vc#yGHEy#JT@Y#E*c3Q|@oZ84k(-DGfQZ0n2ll72RA1HqY> ztW2JRe-zV#kP;~2?)>$=|Lm@Ebw;R6pdSzh9(0^8rWak_OnaZrcF(ReAb?RSw|0z0 zFIh}DiXmn);DXg#w~Y2@Hkc-jjkeV7iykl9f!B_nKy5^=zWMQ%r(YpMgGnpe!|KjG z4fNAw?8cBqV>KDZ^YWAxP!#h~NypWlTZr?G^ECsM?&q1cqJoRLyjn$B7KD>s#RE3w zthLYGyG6UrLJ?2q-i`NuLCqgC9;?vWwg=W&y30lDDj{ZtIIK#gIs+22UWPVW0?zlH z!H+mZs?m%e>PaVG7sg8Fkp6X}Yu%T2aLrJrLw%C0e5qhiBv@*}p{=vSz=Z9JKk1?+=QsekCJGl?#p!%JbLDyZMh9Ipz*&6q_nIKv69;OkgsGPkd z!pEo`hUU%l=?af05}6!pepRBH8bmcva5;0P8TSs_BFyu@Z$)Tjiel(fly!YbU|tq~ zS)7H3PW+_`dpDG*`OD&SbeYf!c=|caOIj;=Ke!rmT-y(QMO8!QYC0^rj-4scv)?am zT}|lYRavf$Iy6Rk^!oIhioV>IHCKWT zL527%pGG_oU#Yy*Bp$$E9{)Z;0_=c$=JBYr{xKLcWIW#@;X<>6u=DD%7Ib0Hn{YFH zx*ZL^@jmnFNP=iL0V|*w)bv<5@|Pj@&GNgo!q~_+sbhTwUb?{D{wI-c z*shj22fvErZG*4T0poLFwB` zkMhPt6*fZ|lK&IiawIu7gJ9A9cb)jMCroO@Y`d+7;$}?pGA}fygyj@CS>s>f3j88Y z+NK6~(Rf14%yZnbOAi>qd%8* zM7Ah~SY#|w6YBq4$W+HGg|EZlFiyr?h+gc@5&zKDzxG5>-qEg~h`z}g@R|+dGVF$* zXm^wxK@8{Sew)xwU&S7O5gD*`@w7OTpVmA6gDI3!51O1lIm6tW!##rh^%(yu0Bpae z)IT)x`)j_5YlXRv8wZwv`jB)zpm)4I$b1@UASHwEDoC&WCDoC%GhiVZ9w-umpb_!d zv}1ZSakY4Jpyf9ROjQgP%LvpxzKZe6U(kaWteepP1(^LGeq6w<`&%_WZx`8_v5xrH zb#Pw!@aB1Qxx4BwCr`B-xv{P)x`67A6jhP0W|##rWLT(h0`IkeaS^&b)*lK&%SqP2 zL{=7s$G+GFPtS!|r8PII=G6aBj|Krdg2l-D_F{rfhb5NA10TOOx!I5i@FI$kmAw71 zKK_1Bp=ZgeQN*t+zsrLGQig>3YuS@tqPM)lToXFqMs0h41mTktX#1hR9R#Zp*b3B z>vNA#rknAi0&=n2>f?CRxSZ_miGm|RE69hN;FxjLax=Qr0+;joZ&B&L;q_79R`hxx zy#e~&0)1|QR)`XJb6h_!YQDI@4;1S-v3(A|HNo|ef1P!5?_eh&$EWMt5<<3+3P*8x0wXfLmN zrRu3pk^b}H7zg|=vT;A)DZvY@`W!Kfc1=z5QshO>JfsdPmdB31jD5A8=-MH;6fKMG zL;mP7<;M(KY58@NTG;knkWt^gT0d9UVgD;DHCZEBk1xSvJOUSyxI-q|c@?jUP2p9^ z>R&e3I88zjB#rz_w^m>Bh=8}tZXagVdK0?Idp^bU)}9kv zHy+m)(D?J-?I)$+;Gg?pc@D92dk(QnJ+h+?8XdpYXwJnGxtUir3Nvv$!u@_#Mq4V1rKNMTj56WWniU9P@D@v{<8TV8~9 z-*zCOwtBg9Q-Vbj?F>-bjpcBe01|2%rb5aLbK7z~hhc_(q{i>C)(}|8f0zxTS85tk z@`vJUj6_1h!iupG#Lgtt!MLjV%!?uxrCP;7v_`Y6s(=1>P;r7u3UT}ZO2h!(JRTmP z4yMiHJOMM}{<&|e0)DnF>z~Mwjax_$jN9YY*t=x)m;#!Xbcf#B8?*%qim@dD+%>T& zmM3{8^P*_(H%S&E+*IS`hpYL`Sq6eTbg2~Q_KaKok%Qz-D^TuW>ZO_v>a0T7q7m>* z*R?osZ(q)id>=OWykws4`ljWn5y**UpfAj}rACXIi_$Sj&I<5SJ(b!Uw|ZSP=W&Pd z+Y8NjwVn^wEhQE+ltMkZC{Bn~Zz>^Tlp4}93R=`~MNE9I_+J0|FuKoP?v z{R`bI?=GH0DyfvLEX#>2!C*-ejP4Z?_ATn@@2Ij8KR!se9oS5to-V^GE#ysiZzwXq z`7d*Z;7~b}Z4RlVAAY?G^e)L#Hv?NML){F@WogBJLA&Tl+uLFU z6Efwcou7|YUf^&+!u+yncZp<5GIL9h7O#BPy2HZ_<&6Ct!#~04yKTr6uY^H(XgwsU zfl;?)_UxmH0e}$IyV0njwEQp2B09M|ijIkirXe686Kl}JHx37Xb56kdy+3=%18JQ* z66nKauV#-Zaek2cHCg<qC)t4fxf!f{!e1c$VQeGpGtt0w30e={K(Vi41O zjzteWZah;Hd?na5d`yJ{2?)w4m@$24(Lva*|LM1&rT0K(J@nE)gBk7)sH&T8IT5)l zlH_Pw0#^QPhke$(v4R504IO6@+AK0rVYHuxzzE6?`f-MS;fi1aUx8cV^OkjYD08j> z-}2lyJeTtK+aBp=&jgJiFOI|G0+Kw`pVo~F zH9ev$wEv=LD4+?W(7n)09W|OAksT{3H%6ol9sE_;3(P)7@of^e;@ES4=J+Rhym0+H ze|W||m-h0hgM*Wl+ne$^K(X;#B-WL6r-|!o<*Eb#VEPmt2E$ey@EB$E3Vw2iXXK$a zLcwgQ1xU&HhPcwx*Mo#@+x>~ZcwZ9qlK5KSaFL@pI`|mLQm=L>=|Kj;U5RrO5O}M} zNZKvBY}E06*e7{4suX|uGoQV~dxMTtIT>*di~eu^W)8U>h-<&YAWOh8av8eY#cj15y@YfMyIY%8v4^A@B@UB~=Fa`7hC2bZD#FP=QytIjZ!-rtS^z=_@oz}O7g!`F4W3qNzG{Xh8F#C zP+Xq3IrJ>DKu(a}or4NDb!Qd>4@Ew7g5AFvDwX=E;a`Pq$U;p6ey5(W5H>bxwF>a> z+lAg+DQcSUVkF-x+64HH^HWv&|0d6UJK*Q_MUpEA7)rKGRo-`*Bye=)YPY+YE^U@H ztY+6S6x?Fp!FjJK_N~9|HS=iHB+`RAIrWM?7rFf|Wy=P7Ua`;^xOA8%MKuWAc5k=1 z`{!}=)?ub`o;~8_$IyY*(Cr-s6nM&%8jViPnLE}bN3OeNMqgo6H$di4x`8k4`npQd zRfjn`$EN{$c+z2G9$tO)zwr$!{XbTFs&~RwH%dd)>>&5Qgs~|35 z!LN6w6!$Ckm!B)|2EIl9??-97B9iJumy4b2H0a-fZs5?3U>f1gsG%jkhUDl4znVAx zV=KTws{6|ks8!7syZ`FkBD5UY6g<8hP`2X)oyVc1L>l>6xy78x zEBM*~WTC&gE=}$@1ndTFW6%44Y<+c9Ti@1gOG~j*yf_q1DNrcx0g5}ty;yN~O|eoO zN-4z&#ogVCOK}fYic4?;B#^xH-tTwcci(tp@JGhU4&$7&*Is+CwdS1b((viCNELOW zLq65@dMIK-~}BuGXY!_5QnoFmE2`)r#QJTPH8hz=xJqS!LU3BmguOc~g|Pg5+oK zzx9drXMP-fPi+>nm(xyPR$rST;5=|`>PP8fKgdK$PB zKBI)ob(!^>PbYaq$j`atPrQn<4>F;vMXyp<0srkc2pKWFz?6oX*{Hu(I)^s^=FG?5q8?!Mb_@+o{Sfo!?~0g- z>zXlh<_J+P9P7Z3Ak+Koz6O51W#xN>ur3EJuB8(ADCk`lbJeQXUt8ZK(dK($Kux%t z?su3RZ?+xePKl_v1eNd#H+P%v0V0uVX;O-~wHIe+F^KB@62YFI>h+!9$iB%puq^;D zo1a8r%Wukt(p*IySI~Z4_Z2$t=SbQOfz2b(I0oE1ZsIK}*V)daggK;o{T+Xqp2LC; z)A-4pV>$0Z(np2t2p5N2XPGsEC=og?O0ASGn=Q?bI0)YBh7+qC+$!X_{TYw)?)4p< zt{fHZY=-@r-1fGOxDIvR6vuy^z2Ku=g$%gL3j!brIQ_8+Y{WSr;0wSmFp7)z?n|*c z#vcx-`r-6^_z{r%=0P=qZ{P`!mjCB}umGEk2?yd^Gs`};^v#D-#y8!okgG$Oi@`N_ zcE|2=UMC@8gVS&Z7mF3>uou{?%gK4My&ff2dc9$p5CdZaKA#Ztc-*x5f&PIVYZmUSsI9nuyE0M9sq?4^cNj78G!P?-LNWOo}xZY~Yk^VxV>?E4@BA+=M4=Svj|mBeKO1icJq`AG{;9~ueEiV@ z>ujn<7df}%<#_cqH{rd5=!-n+Hl9!mJj@^BXn6QwgaQRFT+_J4*wGsqbP1QXHa=E) zde!iPYq0PsI@|@A7d6cuVS!;aP!($X3p_M}J%-cj44L5;Ec{vm6g5wfO87G2#CdSI zH%lKD(f{dViO=39`LzYS{T+vaZzmzvK8O}eeM9@L%@#i#V+S5tG)1!Ukob-1w}>4} zKWFAzjgFKg-0<3XQrs-~;VeknpKQ&6jcfFCpfWcu@#6}pG8m0QE6_6^qYOZN?V?M9 z75py#mMRUdxDOkLp$md%R%6MHFxk#o=2&r@P<}!AMy~Llfk-DPh+-3dzW|crT5nxP z_w@ogd|iELLNkduI0RFC+4smNEb6(XZAX)8hCrH@SOrF0mV)(|-bq&GA3Htuj>vu6 z^^*9Nb$e}wDfN9%6~vdAdXd`vnd=(kCN6`8oLB!@s;uZ4!O{I0ssWm9nh+tNn4MWA zyT#_aW|?*FU#OJaD>|__rxY9y_+1;0AaSJTPFNqajV5N@x{VU{f-ET}?Vu%&_y{YG zB5X~1{>Ta~X%P6FP@|h=N!cDZIK8`7+M2kDCB*S?%4B_;&2e#4asTu4**gTq%S$`d z%uL-y-J3wxY4#fTrP$AV16`;o`j5SYc08?bRNt&!&K~Nwo(3A9_q%#->LEAzU+}zm z)Bb3qcxLrjZSd?JCRdN*QOvd2VgsnL*ooD`EJ6&gV&AiU;FS35t=fW56{(=SU5*$Y z^eA~x{!h*?pIY_Xo+one&D`V|C(spGW_Z#K;3Dftt8*$O9D2e%t;qM{zpq);5L92P%ssFiBzl>##dy0wj{Gn&&VKw|0*oI*Pj527nG8NN%7cJ?@e`P zDy&KFCDa!FQ>-KZSFw&fP$_vIAx%qxdz%#Vw7CoyUBio_G(*e|iTvm=dz^3p4dA`o zYY{RN#SQpV!lmDq;5S7*B$KpEu#j)wEywIhc}VE#$YsoInc-d+oO*DNV1)z?&1)Q;lj z#4KwUxjgAGd3&?Zz5?hxH-?UOh%56ZI>W+9k4DM)JuWTA*jQR5XEe3+Y(2$}oyvYi zm>n0yaBeV-9$fMFOR+<7^o-+ zWn%R?@Jhhly94>KL0#{KdY=u+%^eE@o^1CIdfG%Ejd9B~UD>{^9!>CxB(Siamu^PK z=-HYdCx@$>=rJkJ2>gji5EOLSaHf>T-)F($Pc9qMyvOz<1xHO^FpG6M9tppTQ=brj zs`o*|m!yZ}cCl5>Nph2oZ90MxzTwXHD$_l%cArf9n*m(-Yh0pP&UkxUfW)UqFnWTe zuK6{R@5w;*a%F|J@U@?dhZS+(Hjw6z1K|`|k^ri7YDUv}Ii_EI0d(cN?p!>L-dr4C*vm8@AG}59l6JIvM)GuQg$?eOkM+1vkxk+ep zPZH#G4=m^U=r@;K-}%%wH7!B0-|y6~hbY>}CtGqb&AS7Xo;8q=krX-1m^(Zy6$JNu znNQ%1KqmX%rdCOj3z^ui%oUrI(S44XXP`NvB_6b?2gapEI-V4*1~pvVXdr;Z3^sfY zL`vm{L?TP6rXlkVt_MX=9eL8vs@VY@7$gl`k1}FYf;PxL14tVG{rMcX+~C?(o3;ps z21@p~z0^e1P~dTO)}1}c#75M!X6Yy-^~8~R#R;|DC4H`Tf5kSZ=!2-q)?y=^hVA`G zh~{}mn!M)YsdiiDB$id6zjt|8g!qT~`i|PCRzjrH0o#I${XYGKoT+v?`fm3z8k8mic*J6MnmY!g3=8+BD%byQ{zp5)}68M zRc^mFPWh&(TZxr#+uGNVBDdCtJJV2sixLG%lR}0Fz6O0livGJ8*DGdaV)c_ z?X-ce`B*>WrKX%c)VPBEHr;4M{FzIE-dxVY1`qG{I!%gS(~_!lU{c_~c5$aPt_W3T zlP5WfwzWhV-$!{vW`%KpE1gfUsMDPW=inBe_4^c+8Av};>vx{piQnDDJRwY>$)8^g zT%K<~$J*d)8dXW%-MDjwXjEaXG33}@t5lP_*f`7Sj2&Sk&f4p&KnoQ{f~C75LPkj% zSIqU%+SDm*F78fJX&+1+5;aDXC4GCQo4mg5Prj20Tt0nJ3jt`VGcG*;YB%5T1gAj^ zC;U3IMn&o_+FGQMfw6MU+9gLuJj&QeqtIZ1ih1^&nef9p4P}r#8M!rOo|j!&MbJ6j z*LAX{N{~!`(qvI~8Eg(cW^J|=*h3c;dEk>kN|f4u`^64aURW-gRPKdO(tujDOo-}O ztyf{2T`X8GC~@fOCvj3((Og#4L*V24Yrkwe0U9Q2_+t?hNZh;+w*k)?X*f@BYC!zv zHyqLqk^$yCRluc9R1*l%qzR*7UG@9_=lMCe(t;$%M8FP#Psk4R}Y5eKDFYZ zO411E`xopq%R8VN$vf5)!~M-BxuI(YZ{oL0B?w2$qunqWq8uam=%*A@;;^lZG(MVb zqYWT6)%0|@d=@HGR3!=u{|2XC5nTVM zXe8?7sHzBRsPf)?*?z>qxS^08Swo7WlMw|ex-V)V|8>$WF>+=*V3`j)Or3osxGXQ6 zjg8>-8Sh(-Ic|(|7bAlCn0P(H5L~gK-uBIhk(l5?jU!~F%eti%7zXwc>Xmp!@w>JQ zAY~iGU$HV@B$s<^3vJX@TEaB}A2IRMxn0m$I=`Jb@_HQv3RnGPuKzFb*mro(aV9ip z>5nhpN%s*yX5N`)^ug)OLimv)Y6)>4_mghCUw$EdzeW@l4(63WTR$3p9{IS(tV-yU zk3X!RjOqw(Al!fjs@c&|89Uoocb<&P1t>qJp^Q@a7kaD6TPy_Y{)&pZ!Sp&2XhkRyg~XLz9iHTpr3FfZXp zHC?}x1Zk3cLx(m_zN5}!p3-2EvlWkteo|fA%q>#ALv%`N>#WgkhPB+dFy zz#I;mtoecg{Ijx)bG83wzO~~$>$jW+yZm;4 z%fQ)8gnrYeyW{c<(L$$*2o%fMrW$Z!Ir}UpA+(#B;YPF1k{F@z^63)`nT)5OzPdve zDSuk1MXLSyaZd59@hHIoI4=ZA8oJi6w11HWhi>GKH|t z2Wdxqml5w8w?@=W_bG@?PW+pJU4-k>-Tg~XO30(AV0V|#5e$@mEPK&IMdv}tr|k8nLk4q9z@8c)k>j|;SaJ(UjyA29L6>_V8S*vY`HM7V~09t z@G7zZ=HL#kg@X6)plMo(v$@0{I09i`TjY`z|5a0ezx<~ zslmc4mA=k$t`2PUq1MD>9jsJL zD?dya^j+>c?ZF!he2$N{Nb&!H$;$S4eAQ<(=Qw)Innx4S%+~x^53@9Bdtz2rx`s0J zJ@{XC1EbF_bSoku~3nMjqJpzq&(r4y-EX6=kySt{(v`5?G+%x-AW=nSbF{7qrZb zEr-ce^PUWi3(t4gMbyu~kUGSNNQLI|Q$&%Ko$k)Erqn@-(0df>%Ivd!s_E}x4-MZ3 z1HbdIP<($@N>pC~9?!TvGyZa*FUwf=@rT-k%3~@mNWQJ56IZt6S7+F^&xV4mbjxsH zOPmaIJ`azpVr}L6h|KaXKe{O-)&GJS6RBb7i>bfJqYd(HfC&Z9-AK%TGy5!juch%u z<73`WM=MOMh!wHSqzJ9FqA3%azP8@T$qsHTta$#|s2~U76ml3>Pb>V1F;5YevQ5@N z=*R`z#Irlug-RqrDuPC5{<^mD?Z2oqeA^fA25MlIO-a zVJQNRk0P}mB2nHM?wEnN5({S^G?zYPd%1eBYVE|ndX(^-4LAPz5{MYb?;mjh?FckL z;O9P8C;#ekM0e|YMDim4cD|*k1uzGO?`Fm=XSp7oZ5ks8H(j#j+nR}jeb1F8n6@8kSMW}hU z{rgH?1D7S8*vgHo_J1y@=Vce$_`*w|UjSe)&Yrr4i9JhZrhX+&+3e+%luesB1$H;8 zb)7O@b2L$Tr=>m#jgj_aruZr&y%x%o80DY&(jJADXZQ#8@b{q@h(g9I+Yi`&YfB`# zI|5r^S&$~4d31ykq5+#34$j-$s22c__^uHYHQ)e7I`<8H3FD{Y2WL8sGZJ;@w8Wpu z+k^PT{s(<|gE<&gQ-9*Aj@=TUk(rmax4YzgP{^-}uYkUjk~>+ZK$-=?`HUcq1QJ=! zod4}vz5db@UHy|10AeNC1X0+AH4sZQso2F@3{!gPc~sazdU(wdK!om^Du}s8!=J*C zasnaM^Fqo3e94`ufM9+~%=}!5pf{>soi5^WRK#?zD<5ozR!63x)^4T{J81{al>4(% zSuP`&Ucgh9!Y?xSg48=yqZP7{z!c%=uwK5RRR_7G3-r7amwu_OSWnB(Wit4m=vv5i zSUB3`H?fZEJ2(HD8f0;*pBkNly?9x7KP=f{{k3aUy856c8!@pO26)wXvNarixAseM zhHF$TwZ$_2WQL;&JHem5a8mej=3ob1dM;0Bqnagp%O(wj`CxV?(q5|44IPnz1Zh(8 z+WC6mhCAD%nScM20D1{n^JgVTbXb?JKRQ?kOfNaw>IW<wvw@=7Ahsp}EiC`P{Ml3umq5ase527XRcY93o01~k%O9$hXsA8eKqn{Ae}ZcpjNfw$o3ekLb(}vi$>Ab%kk>|AYNV~-_8*nvG9b|xr`5NP8|MJ zE}x2>EAI1#m55@dC%p;RpQfN)VVK&TdPcm9 zU5oe~=5V_AgLV3Fb_6F zo&6DFASS=4QA6cXbPV9Qi1Jt6}#8@uZozcFCId1r+@-Xwt;?GZ~3>a<-p}+H~b+ zF5keG>A~e_f_H;>+sWpC7rp-C;gTf_{xDk!`(X*EGzCamAch-G`g~P*zd;R)XcFeo z4}(uaNpSwI-6!_Q2>rQ6-87otW?-OmZkd}1VRjybqdqSt%nGv;?@5B7PCps_QW#;1 z2yd}^@|sc^p?ktktb@+jsh+W9>;Le#neumYZdz{4PF~P$T~1vTFH*x`kjl%wWUfc& zbD!Zv#-)$CS3fQgSz{zCA7D}06WgG*+$Ly7U$8c(q@C5 zT&T4ob<`#Qh$;mcoCGNOHJFsGQu09!&RD;0Gs*zdMcNDhtxN{87@&3l6w1fen*Pw#_(HnkWqUYs-I2uwF;B>!~Oe`fZah*^5}UXbskeB^pox6(+32Y&0c@?TWU)6uu_emFZSQ7t3$H zlBE}hX=hJw`Mb^Az1B>9ge{jtI>YV^^(c1u-=u|=>!RTQDyYAqolciG+zrZF#XvPbe?8gd}&8^Ij%iF@*ikvZXo1Wg|rs20pf%yVQUl|apB z8!!J|>)71*4l6+eDA41MxMhICK|+D|NifC7q)^~ZktU3-8ON$KEXejsrUi8KK|7d{ zc{Ikg96EDTJY|WaBU9sVHPynV&Aw*9+*5oVk~i`$SVt#C2p|Wi`mWL#$A3H&-!uhHd>g-+VdnrC20 zqgQDSE+)G$*q5gi18gNW7#5l``5_zSZvoY+CWbIG6RPD0;p)04^V|zczsP)m*njG$ zr^v<5?j9$!ziKTT&$K<`slF6X>RRqFt_ap6vz=b;bhHu6R%|O7ng8!h$w5zcxLs)0 zd$Pm+Rkrm5B6A;S&OunR%X($durFT37yV6h0AXqD^?fx7Hek9lOHxP^_CpLC&>h_R z){=<5x^Ezkn)XnsM%F)nszv8xk`#0P;CFv|g6+8LG=hsSr4jc{yB3Ewh17U>^0W-*60|LMt zGJ;?w>mB;2B5Ap?WgzRfl_nd|(m#^CY;Rqm%J!fH1AjRoAy$JUX+22Is9hj48}(oA z01xdBLX&SScQ+*U%}(de)vo3|ioBPC-H(=+Bo+q3LcjObbq)9?(Gnm?`uhw$K;I&3%@Ya2 zsW131ZxlPm#FYSa0Y`5(yjY4XiQQGuYGSd(?1Kh!u?=}o@)GGx>@(c6gwwvE3q`aY zR>7zWG?A)e5QRjXBoq&FKRxXuQU5(IdZOYj__x`hTsPx}a5VgF@LWS#Vn!Ms8gPQ? zg;$O04(2GHgW)5_JVpSeWu>yMVtPbZ4gTlN6%Cv`>JFouI7M3N^`q!>0BFWx19LC= zUaZ{s0$SY2`X$xu)_eK{Ygye4p;y%`@~V}?oXj?}eNv%WQ(R0(;XxfPSM5`%V!m+T zR<%&q4_tU@A5tiQVvtH*@DL$t&lv`u4+#=g7nIR0DeHJd=aj=fFi;p@K>Nxkcf+p3 zd5#wTz4X40j@{0Fb!X?p1-#(icgX!54m3;A7bi1VAmcfnaQd;=%`3+Q;){Mp;q?fT zVYC}%`R$Bjm#Nw0M)3|U4D zFlC|+DCGv-$Art8sH4K)ZIzXlhE+-uwT#p#y-v>{kO3eX;0-kgqaHsxfgE3PLMGJ_ zua+Ge-9LtlcY$N9KgssDmOefdydS6$pQ2Ix!_?LV;>I(8-1VQ$}mQ}>x74};M%RK9jBdl9-jQ_7Wr zM9*(aF`8}7B7itj4B0@;FF96x<`6L|xJR+(L`D^ktkN6~Xna_aXUp^HGPGT?^2J4&A6 z(E+Q|xj^a_KZomTznOeyZxkJKewWv6?#8L}shc%iVoII3;c3E~F0i!Sb~^PlNiul8 zPqu*>Zk+Z4*YyUh{Azu){q0eKq`oYI!Za354z~D9MEBCSfmB8B=d+U-% zLlCy`~I0C=wEE|(;jjN zHr082P3!?F&KFLt}2Mcg;uClH7d#PX8_bntREkvGv{WAtrz#gy9 zX5H}*ODo`AXjSJ501DqNM+-gYMCPb`4?-L^`4iKvfLwdXzW_okkSn*v*$5Ub=61J3 zc@hgm#As?7BY0o&dmrKr6=F;3rVK4p)d{o6DzFYho{wsp>Sq7R!D@7A0G8S7hCiUd zGhn57D)KE=E3sm7H||{9ElG@+%bivrLfquVWo}Cg?NqQkofh_N(cY&B3AXZm3=@6q z`bM-oOy$-g^r(+ETGD_8lC1TyLgAqX87@wl;m(G*X1rOR37f3_2|6n_FIPdE)-v8Ub{8k-kEuf2{uT;MDT(XxH+Xl z60=b`cSbiSjQ=|~IfN!3-{!v!O*BGyoL1Kejt^&)Hx}w<&Y1cKl-xQqJ!lmB7O?+t z6YoZbs-a>t!lrvV1m@#vxl!Qz#%j^UHfHD<4KNgbP6!FzcE6dC&lgemVlq6C-I^vNa_oLX zZ#g4WgI5_LZjoA6de6V+Lwz!+9?u^vm)n3xXfCTJ`z`$(GGg$*b9PHTK*3(y6o3}3w5$nT^{DE;s#A8Ymi}Ydv3kt z%kY`2)+GZV%VqwL(NCd9Dgjgb8D2z@qHlW%k-jnj8aHSHQMt_nuc ziUpd<__cX)lQ2yAd#|JZsU-bGM@UISJvVCGI1RC4@$tBR4_a=g8tVvXyMdgYv><;& z2bcNF&tlh?21L+1%?X?ph&RnPK{IsjC;QrCg?y8GL$r*APgxp?C z0nzBSgH+goj}Xr}`pncN;=0Vb=;~sz>d~XbjDtct*Z%J+6CX%#zlA?!63W`16uRF8aCOxWY zLxvJEmpjEm@cH$I>l&n9`y~7YBd5?W7f8_X@MYK0boM9bRRAmGCtM@FXOm zrdGWXN9S|q-l00|X0VoP(1v+aUDLF};)Ne#>Z`@Rxh?rD^YgR3X}L)mi=<;td5n$d zIfuBX)}_^i@cKJWBboS9Y|YIHJ!HkFNbdihw8!gWdXRYrw3KfaEKBLF$tJ@Gg%$uC#vcLtg$1! zX%jIvY>v}yM6J_APD|&XENLuoFwffTK<2JD8{jACH-5c(!F%U;AJjO}^{WmMXmE($ zhW{lg@_jb^ZB57*5lT|u-98$C~gG4;D&-O{B8*u;!gdUJgC7WhC_W? zv6IzY$#C9}Zprz*zUmRX<|l~q^NljCmDa4)4Mt1=wOjx2v->^}o&UGl+$Xd|V=BQY zmX+ywI<-CL?s8|Y&MB`4+p0?bAkhy&6g{g3etWZ!pOPd<essj!1eeE8=Pa)Ds;`)=MfZ;zTfC5|#c2XkJ)} z7qutd1^rLkY39@@e3ubs{5EpqHqSJh)Z?%8Rqez3z4|qES{&q6624oC3dTMM)r^E{ z@}rzS8z(0%c+^17h2?|pa+AojFiNWv{rtf-MOi{)W1O}`3QV+%aOZgUf^T2asaS(% zb^1nA|3xMb7X96@xPF~KfAB53LD_yeLE{EHZ&nqMWdNwQF2_Vjyd_LA8o*5!CQfo6f%kdtBekz(Pi zOKY9R#DC%_d=ev&-&QTZ6p$w)_OgX^D14qOe~bw_R6Agb9XtLeub*4pd2 z8sRJ`o8qpbZiu`r={2Bl4->`RU9K1ToC4+Cm|+<`TbXtAw2z$NY=1Di<}8g<5MZQn zwefH^(Ehnt+Z^0l$omYVyv_BQQYdAfDe26P#prJ3&*fgM(~6?CK4#t^N{O2lmK(PV ztec-$qMD4DKeKruqoz37MuByWlncT64?&(cOm{B=D0EIrV)}i+t~mm9$`uP$yl$I7 zcd#oT26zQD-6s{*vDl(^w>1%=7!3?X+|z{#xlz9#vmMQo5-mS9rf_!5_coNN=hVZ)Bf>XIG7!~W_!Dg` zM=Gln7&Q^JVgf@>{7Mt{*!dO2F&t#uNssQkJD!=w>v8>h7;%BhoVgSd%@-2Xd;d^8 zQkMeq+XVrG4vU2|sP6K5mObKq>$$4q*8$}(lBxLPRM#65wqeO1qyi~SeWy>c8yV7& z_eo8(OBJ1)#qHn9y!|*+DVK>a;K7Moxn$>{=O?i6-pB?K^BgdYjLl;hYOvC;?&_Mt zY<6lJ!yRn6x%IqTOrmr?>IABO*Hdn4TM3dt30+@TO}RaI@IZeN8%H@;lk9tyX4|Aj zM_>R*<(ODl_);n<8N~326(Gju5^yY?yNg#l!1knFD9BXK%JOdYm9P%*s`ZBVY{cHI z^NZ`4;q9{7l6}ulE#;#tx`|8I+tibkbztGb62PBLQK9)(;CA|55=jc3aHG<6qN_io zoUyDonw|>L;)pnlsXZ_6dZp~{y$_*i1tm3jz~Pb0Z7T$xU)n*8SO z(#C+`pWUhAENa5}O4F24^4CM26|7k)(ZBWrYOA#i_8l={rS=lhLQN-jDiAN%)i+op|KI zf&eh}?+6Tu>o=qntsC!)rQb-n%n74>d5o77m+jRKbSZr*`w4DvnZ}Mf)2S&w7@;4= zTTMENZ%B(|JSOSb=hZ_zPf@Rak~DH&&_g5wb=-FHEewm`$%F$;eEq#yU?wVnSj0xN z82`b8j}Z}x)iTobzW1+k<)FqDdc+4}CWl+=>wb}e`z_@C<)ZGw^!c|T*(SgGU?)}I z%RNxmuW;5oWwWOa&nlZn?RYK*%Fb3IfjFH4!XKuR9{TOss1FBWIffc^g@wR{o$0^2 zWZl)=9g~~CMG)ORmvWMYg59Gqx+%y3L6$b7MxxO(}BII zrlF#)lH=LJOoItDNxT5{kqD37ypOIQmA!R)#tab~cx(y!Zj|3!yL>Zi7eN8ko7x zb%XXSV55-5BS@QhPx9~Yv9Gv;du=zl^(ksFLmgXwYz~jtxwb4Hu?7P^1_gm$C{vZn3lC~i%p8( zFKuE|F*YohgE>6g8(1N4ShG$JEfSL2?Qv1n z$>te@t7ZdKW9Z~TF-ot^Fj*%^yw>6hx9;QcI|In2SH&EP`o1l78;IHg;dYwF9Rn{B z@56)zU(OD;H9C(y4nG!N4PM?iL&L2v$ftp>860*SE(80DNhE`&f)h6OOG-e&mrtjV z(b7_65N8aDNYTejYg$ZHuhTD<6RU`eDQ3wMBCqAKW~X%`pk1VVlDrJxwG@lNYo{~& zc`Q?J*0{H<7Hh3A+B8_eZ4VTAnsRw}e}Be*XbCAirKtMCE%sQT&Ej*Voa6posIx|i z2mZ5B1uFmfgeiemT=yLc8_lnKi<7523L=8$q@)MYgWtxv_DnyH^WRMK>Ww8@h=%Jg zf7eOOvSe-dkS_xi-CcJfxPBVvl4B!?$KB$3WYMmggDyOrMUzy9OlMv{?$cJpqvTQ3 zNpDuWfSYe!fRh$qrN;Iz!oRffotJ8jkq2>1R|)UW#(xZMO*LH&=>@l#tzCuXD80*R zx>FMlJanH??`)l{l7lM>JXJZ~1*GA=-Cx#U5B3N`Cfv<+ADsuBGcXwT6v3)hpn+ZfG(qzt8wUL}A zjK7*AUkt+U%l190`6ax5-TmlYiFSTjo6$GjGS-(z`-jN|S585P^NL=#?k%pcaytYd z2d;gbeuu!jqQ}LqvftK}Z}QY>v)WEix$1hEj?w`?+(=p&*dhngD2_wB;{RF!yvhe@}q?6Zvlc=!=nHSB0HMF(N>>GAU}W^bc$S zbokysmNuS7&s^?4=X02pPczIHmd?JkF>;(4z8@Gmg}L{K<@je<#@aE>52wOE4E_8| z?RJv!^tAjx-`4||$EWROeVS_#NWtEy&4qr{{YB){wl1y@W>O#bPDUfX{N2K<|8C(a z1Y5_!C`6uQAFA5vR%-b+e=O_#p~TN`?X_!C_lsOC&-przu`IO&6q-WWi##zh(f=U(wjYIe1L<4WDWs+thHOcd_Sx_+xEX-j|AwcRmV&@{b# z$=~pBBW40=tVTboi`V3j0xzu7|0$E&fMjPIOYUV?Wg)IX38tb!D%qg3C3xL+BPr?Y zlZv5{Gt(&yaU+FAB5d4MBp>rrP7aHvr3l4zoojp1ir2H|eN@js9j|5!YJr6cb!_Ga zJc!d>UEdO)%f9vfk*FLdwF(sQMu%B65w=v%ReC0Fkei5KD@Mkuw#TT&&p3n#EP?MH*2h4>6(JED^zR(f`jtHw&t$|7 z_lBn4DrQu;75pBW(o^}^>^AdJIMvB=f=IlJ>Y7N8Jbo8-$L@bWh8V)p_vk7b?_5EF z-?`E-Fg$qB-P4rsN77Elhmfo^EXhA_iX5M@ZLWAGiX7moz%$+4=#}3#qW4vh08P-k zTl^qV;W$Yd^|^a=JH|g_=>%gQ<_gjTA+uV)vTj~3-0j-qzG4`K~J%>+EW;Z0|6~HZ^er zz_oL+RBF#o=*RKjG$LR?@yuURizj*{jp6`s{@dc@-ySNk*yB`xuKkXFXrzN>t&1aw zSdI1Ch1~PaLL%+RimjS7S%nG>X86I-l;-VtcIwt1ufS2APUyRJ0haY8pT&BjU5bGC zy<5)}d2h9zUkHi%y%>epl8%?xO2^m5{hR2OS$(RZ_;>f-gFaD-du7lARU0CwUra$s z{;p5HMivHce|z$?TfFNvs3gHhX88;9n@trujGgt(+k&{Yn7i(KDbMVXviv1FyXj(*b#IUHF>#Rc6jqa^2#(w~0; z`rjq|`tc+JcI)_S_2jKv^`a6AYFh-t$3`n~Em)T#bDnX+9!akTAI0fy-|b&a*EPz2 zyW&WmTP+K_&lUkG$(aewx=Y$NMOI!I8Xq2>Oy{1u$eSfvkFK#h%wH)C^?Q)G?~nKi z2O#S&ugX*6GF-llr#VuOJ>pMA94}<2B7onXi97ebR>@n)p9@9e4#K8Px@DFjvT7?A z%l&FAw*(XE4c|&bgmLQdd~FMIpM<>4S!3!2RWFCTeb}o}XubDn+e|E{(xKbYRiIO+ zH_A+&oW8IZx)JT-Wd@zMm{U%f_n*;3!B~~mJ4Awh~I!%_J#)&YPJAbeFZ1qXd=9Zmg89YRVv=h3S?ecvmahW2& zy{DyTJrgOSl9D^Fd@~Cyb3y(2p^0vD{Z>(7&s4JYrIP#yHRA$=5GxRR~_4ea$J6K5T)EO9Bk(q$pZA5A09B;_i|>A(FiN}ItIAEI2UqMD_%<>U z?dW5l`lDP%wI<-XET+*U9-#zTu~R>Bvo?ckw#>AMSh z^gA4n50u-+p!owd*#^CEFK$vyOi^fUEi?S;;+e=?$nhWM zFz+|XzWkfN|FG6&C391{uedyCuJQT$+V&m)L^70kV$}B0Kr}UNYj3v+HgBxoN&_b-k?}`lSNr z7fx&W=HPd~jDvm16|JITnq=t2<6lvDG0JfJ5Db;iSx$-OyqDlJL*reL(L=|FM-qmu z#ZjUFu&~6l)^oHS{Y-lXXq4KRgn?BgDWcxiLq(?}-VUfK2n3S22-Ve#0XDw#hWidq zYOr$DdoDi>ES&u}&n2)z6 zDxSBp{#nTTl9fDJ!R*QP0%FShHqHz6yKs!B{=&OXKMEfk+QUrs3^_1f@gc&p055HE zv!eb>b)B!8G}q+l9TM{s>9RNeE)R$P?3N+w4hy~C#>u1OE+lX=<{MoMlXT$ImuZ zKXox6-IL;L_;<#w!1{^x51l@dSmgNEapbIuJJc$=@Cp$RLKuLZz6dWvVfwWwz`VUI z_e(WZdNQ}Li+ATwA|LPTRROrHY}BLcV?VqF-rTdgZQHz`{7m z*Oo6Pl^^S}HA1N>qgP(~K1RRb(1FZwmJQUS4ugJ!;`4%(2L)5NdmtoSem)Q-27#K{ zN&0U0U<%)?c+_51wr$NXJL4fAN@O6NG;WF}Kudw^M$ifQv)Vke?(Fo=dF5gKD%=#bMmX45EnC&2t-(Fir9HZK>I@#zc{blAW z)?U!MF@W*0saLy}o4QQG#6=Twb;;~)_Zr=r?D+HO={`LdtvS*0N+4OZ-erz`iVsz2 zBp@Itx*$*zc`8h+OC1p{a0z(W#mpyqczjcG_AqU6xG6dlO!WP%yy>y>(}^%k=L}* zJ1ntjDY03bfIm(m%uCrWeUBp{XWH%$hkIDuywm*F8#EPd$?jLb(5SQgJ;~?ED(EvJ zvDW0~IO34zCrw=NPEApG4gyJz(NS0tHnuz#v2-Vvo>eq;T^9swez>vad&!21(=$uS zp%r?c?Vz!0-MaJO0l~GRjFk4G60qX(|MJi&9;*e{RA%srDIfId87-o`~$z>*Ch8Z*av(-QG{h{^K z^V)mu{d!*S*R$4oulKWG`-yUG4wJ8P8^7jw798b&N^)`>4hD(gywahpEdov|YwBd&B0yw2m6w%y$cIRu9~p{VWMypO zvC!^o$xvtHz78`*x~s6kynhp5Z+{KXIkPcp8A#K1zCE(xeT_DCh`)<{J4HFL`$}TF zWP98(hF((`iz6|04rTA6Dws6lkSY3a6n1~iIhEATqMuW$kkPjRP;D=GyOedC7m?E` zC<}@X4`)!?`x=DnZH|?I1HYXg$7@Mqp#&5Ede>sCRK5ity~35dD4KeO5!xu3zq6_l zIfC#?z^_5HNNA4MOx) z?AoNi*O8|?pi@$G3_noXhAJJJn-9$}dLLNx=59ZsND(!Fz2aAkqH<>3V*FB-*Zn^( zjg+-oWaJgGKXAK8plK5ABo`aNe~deurNW-gA2?;I;_`8YRnmA zp5p+`3g`bmig&aaFUi;Ioo%lV}r_WQ5re{-9>TEQ>PrU*3PI00t}P z;{wJl7b*PlamETINp>?0Cl4i!A%xf};Nf zDi{2Z;gG_1u+2?UAidsd+c=)x*PBS9$z1~gPBbWOLz?^wRi>hlC@c8orn-PBHqo}& z8WNOc3Bnj?YXZ(_VIzV<$^a95z;ax*J2)y}V^_T%X#hJ#AzOcsk|Gu+eT!N~kD>zv zBmKa>{c=7QVhn0q^Wv6gukb^J#BhcjbTk0IvaP4(ZsH&_lNQ=$i&}Brul2O6aFF(-YqRvc z*}L%#@6EEUz4l7Tq{>@vd&3)>GP3A4f5JX6+*)yj(yq)wc&*PTmn#duy@J)=hZ_b} zGR7m z#AH5R3oA~E=gyW^s?Ww*Tt6r6AZBh)e@+?mZR_oG%BNyEas=X0JJO@z42HryJr~7% zoRxTjp;K2fNXhBLZk=HTp|Cnb$;{d*tt%aOsX2Z;k)Oo&ip-^miCh}(leQm~=fp2# z->BHqI+Pg%>9);vvN7DwodYy)K>y!qHSd0(>}(C_p0u(#ccjH5oHx2NTEgIti7ZCk zfiqkQ&st0vYZov06}7Oo2@C|?5dv)Ph{F0741~j>HR4}HNOi+bXKYNMry6 zkwJX~@8U>9;DgBPmpwT2k|6E^y!U#X2A5SXihGd9+!rffA>5)IE- zZ`a!f^EIXpu5Jo5zEY*XG_u&lrWv3#g*c6A$ri^HRreFMW$-LQm#q;7B@l$tquT!dTm7O#mRhQR+fsHGgp6?b)Y%nq}A{-rDk z1`I!OJTCN{RonJ|CGgxO#VzS4*lVLs<0c365dFE;d7fc=FGw?#E7MWs`XTVmX}&660y#vvKGko2w#CT`1@Npcb8=q50!~6;YDvsqvv*6s*;hefBT?!82sk#`1`n>aHkF={blXC*ahivoLbb==%b*BH6 zV>y+&iEzK-+`@3tY3Eecz<4!R{pnPV$CJk1l}^)m#!+`8sEoK99qhU%O(kPoJnCA{ z*ojl8vQBk&E;NC*%AXyE)lB2O4ashm>R^oqX&BO{LV0+kTR?XOD?8KQ%d7D8H%JLm z{(kLN8Ad%dU#a#aqgkyup-AIJu z%-udM2yiaABe$UDAUYI2~g+CTV|bf+W%=c0M`+vrrBMin7t!Kis_Is(>U zkO=82@&DL@t|NZW0{0x|zIGFgM-)ZAM5~I^)dfj4A}#)T#wuEVy?uzl+?^Bow9T!g zg0|M*m_dv01z;pUeh#bz0-ros71!pAu(;{tI+~u>1pp`(uq#AM(H1Y8bmc=u-Fpus z2XmYuL5wGx5)637e9!oPqy4RImh}SrGpax6nBM&Bq2w16=Lbj#m_wU}+FOKzWx*f% zW4Bw%(-2QzmfWbdRUroMQP_IqaC>m#KXM`x28E0k@8}5VK6*e>FD7P%4rdQ1WI z+1{g=RtfE9g9ImX43+X=6;(SIxJf;0o>i-IO?7(1z7Q{)N%Wn+*|QLC3;ou_ec&Tm z7Pm&$tWh@633t%u>g}57i@W zI~-I@m#`6H?CO`hJ%UAX94+UDb?brp5GJ6pAL=hve66*E6#;s0?ca6xH9PaWjL&H}UbsX95FJXCGxo%laNy4#xo literal 0 HcmV?d00001 diff --git a/docs/start.md b/docs/start.md index 195767ae..d6d80fd6 100644 --- a/docs/start.md +++ b/docs/start.md @@ -168,9 +168,36 @@ 素材注册完毕后,即可在游戏中正常使用,也可以被地图生成器所识别(需要重开地图生成器)。 +## 控制台调试 + +HTML5的塔都是可以进行控制台调试的。 + +当我们使用Chrome进入游戏后,可以按 `Ctrl+Shift+I` ,并找到 `Console` 控制台。 + +![控制台](./img/console.png) + +在控制台中,我们可以输入一些命令对游戏进行调试,常见的命令有: + +- `core.debug()` 无敌模式;使用此命令将会把攻防都置为10000,方便进行乱撞。 +- `core.setStatus('atk', 100)` 直接设置勇士的属性;这里可以把`atk`换成`hp`, `def`, `mdef`, `money`, `experience`等之一。 +- `core.getStatus('atk')` 获得勇士的属性数据。 +- `core.setItem('pickaxe', 10)` 直接设置勇士某个道具的个数。这里可以需要写道具的ID。 +- `core.itemCount('pickaxe')` 获得勇士某个道具的个数。请注意不是getItem,那个函数是用来游戏中获取道具的。 +- `core.setFlag('xxx', 1)` 设置某个flag/自定义变量的值 +- `core.getFlag('xxx', 10)` 获得某个flag/自定义变量的值;如果该项不存在(未被定义),则返回第二个参数的值。 +- `core.insertAction(list)` 执行一段自定义事件。比如 `core.insertAction(["你好"])` 将执行一个剧情文本显示事件。 +- `core.status.floorId` 获得当前层的floorId +- `core.changeFloor('MT2')` 立刻执行楼层切换到MT2层。 +- `core.getBlock(3, 5, 'MT1')` 获得当前地图上某一个块的信息。第三个参数为floorId,可省略表示当前楼层。 +- `core.resetMap()` 重置当前层地图。当修改地图后,再读档时修改的地图不会立刻生效,此时可以使用resetMap来重置当前楼层的地图。 +…… + +更多API和详细参数介绍可参见[API列表](api)。 + + ## 报错处理 -有时候刷新后可能页面变成空白,即无法正确加载,游戏也无法正常进入。 +有时候刷新后可能地图编辑器页面变成空白,即无法正确加载,游戏也无法正常进入。 出现这种问题的原因往往是如下几种: - 手动直接打开并错误编辑了文件 diff --git a/libs/core.js b/libs/core.js index 525d3685..0af085d3 100644 --- a/libs/core.js +++ b/libs/core.js @@ -893,6 +893,11 @@ core.prototype.startReplay = function (list) { core.control.startReplay(list); } +////// 关闭UI窗口 ////// +core.prototype.closePanel = function () { + core.ui.closePanel(); +} + ////// 更改播放状态 ////// core.prototype.triggerReplay = function () { core.control.triggerReplay(); diff --git a/更新说明.txt b/更新说明.txt index d9e15cda..fbdb7e9e 100644 --- a/更新说明.txt +++ b/更新说明.txt @@ -6,6 +6,7 @@ while循环事件 √ 最大存档个数提到main处理 √ 新建地图可以保留楼层属性 √ 自定义装备的教程(个性化 - 自定义装备) √ +重写教程的快速上手 √ 部分Bug修复 √ ----------------------------------------------------------------------- From ae149c56d3e7c823165d34cbdf27ad28904a9229 Mon Sep 17 00:00:00 2001 From: oc Date: Fri, 11 May 2018 18:32:46 +0800 Subject: [PATCH 02/41] Update API --- docs/start.md | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/docs/start.md b/docs/start.md index d6d80fd6..5027077e 100644 --- a/docs/start.md +++ b/docs/start.md @@ -178,19 +178,28 @@ HTML5的塔都是可以进行控制台调试的。 在控制台中,我们可以输入一些命令对游戏进行调试,常见的命令有: +- `core.status.floorId` 获得当前层的floorId。 +- `core.status.thisMap` 获得当前地图信息。 +- `core.status.hero` 获得当前勇士状态信息。例如core.status.hero.atk就是当前勇士的攻击力数值。 +- `core.material.enemys` 获得所有怪物信息。例如core.material.enemys.greenSlime就是获得绿色史莱姆的属性数据。 +- `core.material.items` 获得所有道具的信息。 - `core.debug()` 无敌模式;使用此命令将会把攻防都置为10000,方便进行乱撞。 -- `core.setStatus('atk', 100)` 直接设置勇士的属性;这里可以把`atk`换成`hp`, `def`, `mdef`, `money`, `experience`等之一。 -- `core.getStatus('atk')` 获得勇士的属性数据。 +- `core.updateStatusBar()` 立刻更新状态栏和地图显伤。 +- `core.setStatus('atk', 100)` 直接设置勇士的属性。本句等价于 `core.status.hero.atk = 1000` +- `core.getStatus('atk')` 返回当前属性数值。本句等价于 `core.status.hero.atk` - `core.setItem('pickaxe', 10)` 直接设置勇士某个道具的个数。这里可以需要写道具的ID。 +- `core.hasItem('pickaxe')` 返回勇士是否拥有某个道具。 - `core.itemCount('pickaxe')` 获得勇士某个道具的个数。请注意不是getItem,那个函数是用来游戏中获取道具的。 - `core.setFlag('xxx', 1)` 设置某个flag/自定义变量的值 - `core.getFlag('xxx', 10)` 获得某个flag/自定义变量的值;如果该项不存在(未被定义),则返回第二个参数的值。 +- `core.hasFlag('xxx')` 返回是否存在某个变量且不为0。 - `core.insertAction(list)` 执行一段自定义事件。比如 `core.insertAction(["你好"])` 将执行一个剧情文本显示事件。 - `core.status.floorId` 获得当前层的floorId -- `core.changeFloor('MT2')` 立刻执行楼层切换到MT2层。 +- `core.changeFloor('MT2', 'downFloor')` 立刻执行楼层切换到MT2层的下楼点位置。 - `core.getBlock(3, 5, 'MT1')` 获得当前地图上某一个块的信息。第三个参数为floorId,可省略表示当前楼层。 - `core.resetMap()` 重置当前层地图。当修改地图后,再读档时修改的地图不会立刻生效,此时可以使用resetMap来重置当前楼层的地图。 -…… +- `localStorage` 获得所有的存档数据。可以用 `core.getLocalStorage('save1')` 来具体获得某个存档。 +- …… 更多API和详细参数介绍可参见[API列表](api)。 From 6dea0e17526a8c67b51a54ea63770fcdda148575 Mon Sep 17 00:00:00 2001 From: oc Date: Fri, 11 May 2018 20:19:37 +0800 Subject: [PATCH 03/41] no cache --- docs/index.html | 9 ++++-- docs/serviceWorker.js | 75 ------------------------------------------- docs/start.md | 2 ++ 更新说明.txt | 5 +-- 4 files changed, 12 insertions(+), 79 deletions(-) delete mode 100644 docs/serviceWorker.js diff --git a/docs/index.html b/docs/index.html index f29c2402..cb5df153 100644 --- a/docs/index.html +++ b/docs/index.html @@ -44,8 +44,13 @@ mergeNavbar: true, formatUpdated: '{YYYY}-{MM}-{DD} {HH}:{mm}:{ss}', } - if (typeof navigator.serviceWorker !== 'undefined') { - navigator.serviceWorker.register('serviceWorker.js') + if (navigator.serviceWorker) { + navigator.serviceWorker.getRegistrations() + .then(function(registrations) { + for(let registration of registrations) { + registration.unregister(); + } + }); } diff --git a/docs/serviceWorker.js b/docs/serviceWorker.js deleted file mode 100644 index 34634e1e..00000000 --- a/docs/serviceWorker.js +++ /dev/null @@ -1,75 +0,0 @@ -const RUNTIME = 'docsify' -const HOSTNAME_WHITELIST = [ - self.location.hostname, - 'fonts.gstatic.com', - 'fonts.googleapis.com', - 'cdn.bootcss.com' -] - -// The Util Function to hack URLs of intercepted requests -const getFixedUrl = (req) => { - var now = Date.now() - var url = new URL(req.url) - - // 1. fixed http URL - // Just keep syncing with location.protocol - // fetch(httpURL) belongs to active mixed content. - // And fetch(httpRequest) is not supported yet. - url.protocol = self.location.protocol - - // 2. add query for caching-busting. - // Github Pages served with Cache-Control: max-age=600 - // max-age on mutable content is error-prone, with SW life of bugs can even extend. - // Until cache mode of Fetch API landed, we have to workaround cache-busting with query string. - // Cache-Control-Bug: https://bugs.chromium.org/p/chromium/issues/detail?id=453190 - if (url.hostname === self.location.hostname) { - url.search += (url.search ? '&' : '?') + 'cache-bust=' + now - } - return url.href -} - -/** - * @Lifecycle Activate - * New one activated when old isnt being used. - * - * waitUntil(): activating ====> activated - */ -self.addEventListener('activate', event => { - event.waitUntil(self.clients.claim()) -}) - -/** - * @Functional Fetch - * All network requests are being intercepted here. - * - * void respondWith(Promise r) - */ -self.addEventListener('fetch', event => { - // Skip some of cross-origin requests, like those for Google Analytics. - if (HOSTNAME_WHITELIST.indexOf(new URL(event.request.url).hostname) > -1) { - // Stale-while-revalidate - // similar to HTTP's stale-while-revalidate: https://www.mnot.net/blog/2007/12/12/stale - // Upgrade from Jake's to Surma's: https://gist.github.com/surma/eb441223daaedf880801ad80006389f1 - const cached = caches.match(event.request) - const fixedUrl = getFixedUrl(event.request) - const fetched = fetch(fixedUrl, { cache: 'no-store' }) - const fetchedCopy = fetched.then(resp => resp.clone()) - - // Call respondWith() with whatever we get first. - // If the fetch fails (e.g disconnected), wait for the cache. - // If there’s nothing in cache, wait for the fetch. - // If neither yields a response, return offline pages. - event.respondWith( - Promise.race([fetched.catch(_ => cached), cached]) -.then(resp => resp || fetched) -.catch(_ => { /* eat any errors */ }) -) - - // Update the cache with the version we fetched (only for ok status) - event.waitUntil( - Promise.all([fetchedCopy, caches.open(RUNTIME)]) - .then(([response, cache]) => response.ok && cache.put(event.request, response)) - .catch(_ => { /* eat any errors */ }) -) -} -}) \ No newline at end of file diff --git a/docs/start.md b/docs/start.md index 5027077e..160417f9 100644 --- a/docs/start.md +++ b/docs/start.md @@ -44,6 +44,8 @@ 如果提示“该素材未被定义”或有红色问号框,请参见[素材注册](#素材注册)。 +绘制地图时可以右键弹出菜单,移动图块和事件。 + ### 从RMXP导入已有的地图 如果我们想复刻一个现有的,已经被RMXP所制作的塔,也有很便捷的方式,那就是用到我们的“地图生成器”。 diff --git a/更新说明.txt b/更新说明.txt index fbdb7e9e..7fd97858 100644 --- a/更新说明.txt +++ b/更新说明.txt @@ -1,11 +1,12 @@ HTML5魔塔样板V2.2.1 +地图编辑器可以右键复制或移动图块 √ +事件:while循环处理 √ 衰弱减少攻防的比例 √ -while循环事件 √ 地图数据统计 最大存档个数提到main处理 √ 新建地图可以保留楼层属性 √ -自定义装备的教程(个性化 - 自定义装备) √ +增添自定义装备的教程(个性化-自定义装备) √ 重写教程的快速上手 √ 部分Bug修复 √ From d8f79d1d86d827842cef676f6a456f74ccbc0537 Mon Sep 17 00:00:00 2001 From: oc Date: Fri, 11 May 2018 20:29:32 +0800 Subject: [PATCH 04/41] Update Docs --- docs/start.md | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/docs/start.md b/docs/start.md index 160417f9..4fe8ecc9 100644 --- a/docs/start.md +++ b/docs/start.md @@ -181,25 +181,27 @@ HTML5的塔都是可以进行控制台调试的。 在控制台中,我们可以输入一些命令对游戏进行调试,常见的命令有: - `core.status.floorId` 获得当前层的floorId。 -- `core.status.thisMap` 获得当前地图信息。 -- `core.status.hero` 获得当前勇士状态信息。例如core.status.hero.atk就是当前勇士的攻击力数值。 -- `core.material.enemys` 获得所有怪物信息。例如core.material.enemys.greenSlime就是获得绿色史莱姆的属性数据。 -- `core.material.items` 获得所有道具的信息。 +- `core.status.thisMap` 获得当前地图信息。例如`core.status.thisMap.blocks`可以获得当前层所有图块。 +- `core.floors` 获得所有剧本的信息。例如`core.floors[core.status.floorId].events`可以获得当前层所有事件。 +- `core.status.hero` 获得当前勇士状态信息。例如`core.status.hero.atk`就是当前勇士的攻击力数值。 +- `core.material.enemys` 获得所有怪物信息。例如`core.material.enemys.greenSlime`就是获得绿色史莱姆的属性数据。 +- `core.material.items` 获得所有道具的信息。例如`core.material.items.pickaxe`就是获得破墙镐的信息。 - `core.debug()` 无敌模式;使用此命令将会把攻防都置为10000,方便进行乱撞。 - `core.updateStatusBar()` 立刻更新状态栏和地图显伤。 -- `core.setStatus('atk', 100)` 直接设置勇士的属性。本句等价于 `core.status.hero.atk = 1000` -- `core.getStatus('atk')` 返回当前属性数值。本句等价于 `core.status.hero.atk` +- `core.setStatus('atk', 1000)` 直接设置勇士的某项属性。本句等价于 `core.status.hero.atk = 1000`。 +- `core.getStatus('atk')` 返回勇士当前某项属性数值。本句等价于 `core.status.hero.atk`。 - `core.setItem('pickaxe', 10)` 直接设置勇士某个道具的个数。这里可以需要写道具的ID。 -- `core.hasItem('pickaxe')` 返回勇士是否拥有某个道具。 -- `core.itemCount('pickaxe')` 获得勇士某个道具的个数。请注意不是getItem,那个函数是用来游戏中获取道具的。 -- `core.setFlag('xxx', 1)` 设置某个flag/自定义变量的值 +- `core.getItem('pickaxe', 2)` 令勇士获得两个破墙镐。 +- `core.itemCount('pickaxe')` 返回勇士某个道具的个数。 +- `core.hasItem('pickaxe')` 返回勇士是否拥有某个道具。等价于`core.itemCount('pickaxe')!=0`。 +- `core.setFlag('xxx', 1)` 设置某个flag/自定义变量的值。 - `core.getFlag('xxx', 10)` 获得某个flag/自定义变量的值;如果该项不存在(未被定义),则返回第二个参数的值。 -- `core.hasFlag('xxx')` 返回是否存在某个变量且不为0。 -- `core.insertAction(list)` 执行一段自定义事件。比如 `core.insertAction(["你好"])` 将执行一个剧情文本显示事件。 -- `core.status.floorId` 获得当前层的floorId +- `core.hasFlag('xxx')` 返回是否存在某个变量且不为0。等价于`core.getFlag('xxx', 0)!=0`。 +- `core.insertAction(list)` 执行一段自定义事件。比如 `core.insertAction(["剧情文本"])` 将执行一个剧情文本显示事件。 - `core.changeFloor('MT2', 'downFloor')` 立刻执行楼层切换到MT2层的下楼点位置。 +- `core.changeFloor('MT5', null, {'x': 4, 'y': 7})` 立刻切换楼层到MT5层的(4,7)点。 - `core.getBlock(3, 5, 'MT1')` 获得当前地图上某一个块的信息。第三个参数为floorId,可省略表示当前楼层。 -- `core.resetMap()` 重置当前层地图。当修改地图后,再读档时修改的地图不会立刻生效,此时可以使用resetMap来重置当前楼层的地图。 +- `core.resetMap()` 重置当前层地图。**当修改地图后再读档,修改的地图不会立刻生效,此时可以使用resetMap来重置当前楼层的地图。** - `localStorage` 获得所有的存档数据。可以用 `core.getLocalStorage('save1')` 来具体获得某个存档。 - …… From 17d99d17a226caf158e1d360f1fa484d319ace5f Mon Sep 17 00:00:00 2001 From: oc Date: Fri, 11 May 2018 20:34:19 +0800 Subject: [PATCH 05/41] update readme --- README.md | 10 ++-------- docs/img/sample0.png | Bin 149678 -> 141061 bytes 2 files changed, 2 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index 54f5ff23..1882e388 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ HTML5 canvas制作的魔塔样板,支持全平台游戏! **即使完全不会编程的用户,按照模板和说明文档也能很快做出一个魔塔游戏!** -* [List / HTML5魔塔游戏列表](http://mota.pw/) +* [List / HTML5魔塔游戏列表](https://h5mota.com/) * [Demo / 样板效果](https://ckcz123.com/games/template/) * [Docs / 使用文档说明](https://ckcz123.github.io/mota-js/) * [Video / 视频教程](http://www.bilibili.com/video/av17608025/) @@ -35,18 +35,12 @@ HTML5 canvas制作的魔塔样板,支持全平台游戏! │ ├─ /animates/ # 动画目录 │ ├─ /floors/ # 剧本文件,记录了每个地图的数据和事件 │ ├─ /images/ # 所有图片素材目录 -│ │ ├─ /常用素材/ # 可以被直接替换的素材 -│ │ └─ *.png # 对应的某个具体的图片素材 │ ├─ /sounds/ # 音效目录 -│ ├─ comments.js # 对怪物、道具、楼层等的注释 -│ ├─ data.comment.js # 对全局变量的注释 │ ├─ data.js # 全局变量信息 │ ├─ enemys.js # 怪物属性数据 -│ ├─ functions.comment.js # 脚本编辑的注释 │ ├─ functions.js # 可能会被修改的脚本代码 │ ├─ icons.js # 素材和ID的对应关系定义 │ ├─ items.js # 道具的定义,获得道具的效果 -│ ├─ maps.commment.js # 地图信息的注释 │ └─ maps.js # 地图和数字的对应关系 ├── /常用工具/ # 一些常用工具,可以辅助造塔 │ ├─ RM动画导出器.exe # 能从RMXP中导出动画,以供H5使用。 http://github.com/ckcz123/animate_export/ @@ -224,4 +218,4 @@ HTML5 canvas制作的魔塔样板,支持全平台游戏! HTML5魔塔交流群群号: `539113091` -如有其它意见或建议,也可以通过发[issues](https://github.com/ckcz123/mota-js/issues)、或邮件至[ckcz123.com](mailto:ckcz123.com)联系我。 +如有其它意见或建议,也可以通过发[issues](https://github.com/ckcz123/mota-js/issues)、或邮件至[ckcz123@126.com](mailto:ckcz123@126.com)联系我。 diff --git a/docs/img/sample0.png b/docs/img/sample0.png index a218190bab0398c7bda57a9ce74fea08c138ad7e..6598e611c61e89cb4a29c9f25b4bdfd9761ed42b 100644 GIT binary patch literal 141061 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

1ALIx6)qm@>9n;I+H)I^pzU@~*HGL> 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 literal 149678 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

Lm5g-)YM&Is3QOvRM&T#>{SRzr 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 z
lbt8Mj1@UU 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

8Z<<$5-r?TZn)K=h0e{6v{o&oH*?>vR*$}`NO9) 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�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 Date: Fri, 11 May 2018 22:55:38 +0800 Subject: [PATCH 06/41] Fix Direction Bug --- libs/control.js | 3 +++ 更新说明.txt | 3 ++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/libs/control.js b/libs/control.js index a7047e7a..eb45c7e5 100644 --- a/libs/control.js +++ b/libs/control.js @@ -783,6 +783,7 @@ control.prototype.moveOneStep = function() { ////// 停止勇士的一切行动,等待勇士行动结束后,再执行callback ////// control.prototype.waitHeroToStop = function(callback) { + var lastDirection = core.status.automaticRoute.lastDirection; core.stopAutomaticRoute(); core.clearContinueAutomaticRoute(); if (core.isset(callback)) { @@ -791,6 +792,8 @@ control.prototype.waitHeroToStop = function(callback) { core.status.automaticRoute.moveDirectly = false; setTimeout(function(){ core.status.replay.animate=false; + if (core.isset(lastDirection)) + core.setHeroLoc('direction', lastDirection); core.drawHero(); callback(); }, 30); diff --git a/更新说明.txt b/更新说明.txt index 7fd97858..484824b9 100644 --- a/更新说明.txt +++ b/更新说明.txt @@ -8,7 +8,8 @@ 新建地图可以保留楼层属性 √ 增添自定义装备的教程(个性化-自定义装备) √ 重写教程的快速上手 √ -部分Bug修复 √ +修复转向触发事件的朝向Bug √ +部分细节优化 √ ----------------------------------------------------------------------- From 985d3d8294d0fd7d8cf7c502989dcd0f82fc294a Mon Sep 17 00:00:00 2001 From: oc Date: Sat, 12 May 2018 12:50:00 +0800 Subject: [PATCH 07/41] status:x --- libs/control.js | 8 +++++++- libs/core.js | 4 ++-- libs/loader.js | 19 +++++-------------- libs/utils.js | 4 +++- 4 files changed, 17 insertions(+), 18 deletions(-) diff --git a/libs/control.js b/libs/control.js index eb45c7e5..b6653234 100644 --- a/libs/control.js +++ b/libs/control.js @@ -2064,11 +2064,17 @@ control.prototype.loadData = function (data, callback) { ////// 设置勇士属性 ////// control.prototype.setStatus = function (statusName, statusVal) { - core.status.hero[statusName] = statusVal; + if (core.isset(core.status.hero.loc[statusName])) + core.status.hero.loc[statusName] = statusVal; + else + core.status.hero[statusName] = statusVal; } ////// 获得勇士属性 ////// control.prototype.getStatus = function (statusName) { + // support status:x + if (core.isset(core.status.hero.loc[statusName])) + return core.status.hero.loc[statusName]; return core.status.hero[statusName]; } diff --git a/libs/core.js b/libs/core.js index 0af085d3..34e06f1a 100644 --- a/libs/core.js +++ b/libs/core.js @@ -1028,8 +1028,8 @@ core.prototype.decodeRoute = function (route) { } ////// 发送HTTP ////// -core.prototype.http = function (type, url, formData, success, error, header) { - core.utils.http(type, url, formData, success, error, header) +core.prototype.http = function (type, url, formData, success, error, mimeType, responseType) { + core.utils.http(type, url, formData, success, error, mimeType, responseType) } ////// 设置勇士属性 ////// diff --git a/libs/loader.js b/libs/loader.js index 969f4f54..c74f36b0 100644 --- a/libs/loader.js +++ b/libs/loader.js @@ -204,12 +204,10 @@ loader.prototype.loadMusic = function () { core.sounds.forEach(function (t) { if (core.musicStatus.audioContext != null) { - var xhr = new XMLHttpRequest(); - xhr.open('GET', 'project/sounds/'+t, true); - xhr.responseType = 'arraybuffer'; - xhr.onload = function(e) { //下载完成 + + core.http('GET', 'project/sounds/'+t, null, function (data) { try { - core.musicStatus.audioContext.decodeAudioData(this.response, function (buffer) { + core.musicStatus.audioContext.decodeAudioData(data, function (buffer) { core.material.sounds[t] = buffer; }, function (e) { console.log(e); @@ -220,17 +218,10 @@ loader.prototype.loadMusic = function () { console.log(ee); core.material.sounds[t] = null; } - }; - - xhr.ontimeout = function(e) { + }, function () { console.log(e); core.material.sounds[t] = null; - } - xhr.onerror = function(e) { - console.log(e); - core.material.sounds[t] = null; - } - xhr.send(); + }, null, 'arraybuffer'); } else { var music = new Audio(); diff --git a/libs/utils.js b/libs/utils.js index 8ad8e03b..b650904b 100644 --- a/libs/utils.js +++ b/libs/utils.js @@ -590,11 +590,13 @@ utils.prototype.hide = function (obj, speed, callback) { }, speed); } -utils.prototype.http = function (type, url, formData, success, error, mimeType) { +utils.prototype.http = function (type, url, formData, success, error, mimeType, responseType) { var xhr = new XMLHttpRequest(); xhr.open(type, url, true); if (core.isset(mimeType)) xhr.overrideMimeType(mimeType); + if (core.isset(responseType)) + xhr.responseType = responseType; xhr.onload = function(e) { if (xhr.status==200) { if (core.isset(success)) { From a9301f7cd9d917de8dabb4c0592e275581029953 Mon Sep 17 00:00:00 2001 From: oc Date: Sat, 12 May 2018 23:20:26 +0800 Subject: [PATCH 08/41] wait: get info --- _server/blockly/MotaAction.g4 | 6 ++--- docs/api.md | 2 +- docs/event.md | 48 ++++++++++++++++++++++++++++++----- libs/actions.js | 24 +++++++++++++++--- libs/events.js | 23 +++++++++++++++-- 更新说明.txt | 2 ++ 6 files changed, 89 insertions(+), 16 deletions(-) diff --git a/_server/blockly/MotaAction.g4 b/_server/blockly/MotaAction.g4 index c80796fc..5c6e5f82 100644 --- a/_server/blockly/MotaAction.g4 +++ b/_server/blockly/MotaAction.g4 @@ -500,12 +500,12 @@ return code; */; wait_s - : '等待用户操作' + : '等待用户操作并获得按键或点击信息' /* wait_s -tooltip : wait: 等待用户操作 -helpUrl : https://ckcz123.github.io/mota-js/#/event?id=wait-%e7%ad%89%e5%be%85%e7%94%a8%e6%88%b7%e6%93%8d%e4%bd%9c +tooltip : wait: 等待用户操作并获得按键或点击信息(具体用法看文档) +helpUrl : https://ckcz123.github.io/mota-js/#/event?id=https://ckcz123.github.io/mota-js/#/event?id=wait%EF%BC%9A%E7%AD%89%E5%BE%85%E7%94%A8%E6%88%B7%E6%93%8D%E4%BD%9C colour : this.soundColor var code = '{"type": "wait"},\n'; return code; diff --git a/docs/api.md b/docs/api.md index 85098a39..b074575b 100644 --- a/docs/api.md +++ b/docs/api.md @@ -54,7 +54,7 @@ core.setStatus('atk', 1000) core.getStatus('atk') -返回当前攻击力数值。本句等价于 core.status.hero.atk +返回当前攻击力数值。本句等价于 core.status.hero.atk。 core.setHeroLoc('x', 5) diff --git a/docs/event.md b/docs/event.md index 1aeaaeb4..51f84109 100644 --- a/docs/event.md +++ b/docs/event.md @@ -252,14 +252,14 @@ ``` js "x,y": [ // 实际执行的事件列表 - "你当前的攻击力是${status:atk}, 防御是${status:def}", + "你当前的攻击力是${status:atk}, 防御是${status:def},坐标是(${status:x},${status:y})", "你的攻防和的十倍是${10*(status:atk+status:def)}", "你的红黄蓝钥匙总数为${item:yellowKey+item:blueKey+item:redKey}", "你访问某个老人的次数为${flag:man_times}", ] ``` -- `status:xxx` 获取勇士属性时只能使用如下几个:hp(生命值),atk(攻击力),def(防御力),mdef(魔防值),money(金币),experience(经验)。 +- `status:xxx` 获取勇士属性时只能使用如下几个:hp(生命值),atk(攻击力),def(防御力),mdef(魔防值),money(金币),experience(经验),x(勇士的横坐标),y(勇士的纵坐标),direction(勇士的方向)。 - `item:xxx` 中的xxx为道具ID。所有道具的ID定义在items.js中,请自行查看。例如,`item:centerFly` 代表中心对称飞行器的个数。 - `flag:xxx` 中的xxx为一个自定义的变量/Flag;如果没有对其进行赋值则默认值为false。 @@ -521,10 +521,6 @@ name是可选的,代表目标行走图的文件名。 ] ``` -### wait:等待用户操作 - -使用 `{"type": "wait"}` 可以等待用户进行操作(如点击、回车等)。 - ### battle: 强制战斗 调用battle可强制与某怪物进行战斗(而无需去触碰到它)。 @@ -1118,6 +1114,46 @@ choices为一个数组,其中每一项都是一个选项列表。 !> 如果continue事件不在任何循环中被执行,则和exit等价,即会立刻结束当前事件! +### wait:等待用户操作 + +使用 `{"type": "wait"}` 可以等待用户进行操作(如点击、按键等)。 + +当用户执行操作后: +- 如果是键盘的按键操作,则会将flag:type置为0,并且把flag:keycode置为刚刚按键的keycode。 +- 如果是屏幕的点击操作,则会将flag:type置为1,并且设置flag:x和flag:y为刚刚的点击坐标。 + +下面是一个while事件和wait合并使用的例子,这个例子将不断接收用户的点击或按键行为,并输出该信息。 +如果用户按下了ESC或者点击了屏幕正中心,则退出循环。 + + +``` js +"x,y": [ // 实际执行的事件列表 + {"type": "while", "condition": "true", // 永久循环 + "data": [ + {"type": "wait"}, // 等待用户操作 + {"type": "if", "condition": "flag:type==0", // flag:type==0,键盘按键 + "true": [ + "你当前按键了,keycode是${flag:keycode}", + {"type": "if", "condition": "flag:keycode==27", // ESC的keycode是27 + "true": [{"type": "break"}], // 跳出循环 + "false": [] + } + ], + "false": [ // flag:type==1,鼠标点击 + "你当前点击屏幕了,坐标是[${flag:x},${flag:y}]", + {"type": "if", "condition": "flag:x==6 && flag:y==6", // 点击(6,6) + "true": [{"type": "break"}], // 跳出循环 + "false": [] + } + ] + } + ] + } +] + +``` + + ### function: 自定义JS脚本 上述给出了这么多事件,但有时候往往不能满足需求,这时候就需要执行自定义脚本了。 diff --git a/libs/actions.js b/libs/actions.js index 0bf91aa6..f9148392 100644 --- a/libs/actions.js +++ b/libs/actions.js @@ -715,7 +715,7 @@ actions.prototype.longClick = function () { core.drawText(); return true; } - if (core.status.event.id=='action' && (core.status.event.data.type=='text' || core.status.event.data.type=='wait')) { + if (core.status.event.id=='action' && core.status.event.data.type=='text') { core.doAction(); return true; } @@ -728,7 +728,7 @@ actions.prototype.keyDownCtrl = function () { core.drawText(); return; } - if (core.status.event.id=='action' && (core.status.event.data.type=='text' || core.status.event.data.type=='wait')) { + if (core.status.event.id=='action' && core.status.event.data.type=='text') { core.doAction(); return; } @@ -769,11 +769,20 @@ actions.prototype.keyUpConfirmBox = function (keycode) { ////// 自定义事件时的点击操作 ////// actions.prototype.clickAction = function (x,y) { - if (core.status.event.data.type=='text' || core.status.event.data.type=='wait') { + if (core.status.event.data.type=='text') { // 文字 core.doAction(); return; } + if (core.status.event.data.type=='wait') { + core.setFlag('type', 1); + core.setFlag('x', x); + core.setFlag('y', y); + core.status.route.push("input:"+(10000+100*x+y)); + core.doAction(); + return; + } + if (core.status.event.data.type=='choices') { // 选项 var data = core.status.event.data.current; @@ -811,7 +820,14 @@ actions.prototype.keyDownAction = function (keycode) { ////// 自定义事件时,放开某个键的操作 ////// actions.prototype.keyUpAction = function (keycode) { - if ((core.status.event.data.type=='text' || core.status.event.data.type=='wait') && (keycode==13 || keycode==32 || keycode==67)) { + if (core.status.event.data.type=='text' && (keycode==13 || keycode==32 || keycode==67)) { + core.doAction(); + return; + } + if (core.status.event.data.type=='wait') { + core.setFlag('type', 0); + core.setFlag('keycode', keycode); + core.status.route.push("input:"+keycode); core.doAction(); return; } diff --git a/libs/events.js b/libs/events.js index 3158b818..35d8d70c 100644 --- a/libs/events.js +++ b/libs/events.js @@ -761,8 +761,27 @@ events.prototype.doAction = function() { } break; case "wait": - if (core.status.replay.replaying) - core.events.doAction(); + if (core.status.replay.replaying) { + var code = core.status.replay.toReplay.shift(); + if (code.indexOf("input:")==0) { + var value = parseInt(code.substring(6)); + core.status.route.push("input:"+value); + if (value>=10000) { + core.setFlag('type', 1); + core.setFlag('x', parseInt((value-10000)/100)); + core.setFlag('y', value%100); + } + else { + core.setFlag('type', 0); + core.setFlag('keycode', value); + } + core.events.doAction(); + } + else { + core.stopReplay(); + core.drawTip("录像文件出错"); + } + } break; case "revisit": // 立刻重新执行该事件 { diff --git a/更新说明.txt b/更新说明.txt index 484824b9..a5c4c77a 100644 --- a/更新说明.txt +++ b/更新说明.txt @@ -2,8 +2,10 @@ 地图编辑器可以右键复制或移动图块 √ 事件:while循环处理 √ +事件:等待用户操作并获得按键或点击信息 √ 衰弱减少攻防的比例 √ 地图数据统计 +支持 status:x 获得当前坐标 √ 最大存档个数提到main处理 √ 新建地图可以保留楼层属性 √ 增添自定义装备的教程(个性化-自定义装备) √ From 25ac0e13cbd38e43c031744fb5f1182e83d871a2 Mon Sep 17 00:00:00 2001 From: ckcz123 Date: Sun, 13 May 2018 12:30:36 +0800 Subject: [PATCH 09/41] bgm autoreplay --- _server/fs.js | 36 +++++++++++------------------------- libs/control.js | 3 +-- main.js | 13 +++++++++++++ 3 files changed, 25 insertions(+), 27 deletions(-) diff --git a/_server/fs.js b/_server/fs.js index 751b7f30..31b24811 100644 --- a/_server/fs.js +++ b/_server/fs.js @@ -1,32 +1,18 @@ (function () { fs = {}; var postsomething = function (data, _ip, callback) { - //callback:function(err, data) - //data:字符串 - var xhr = new XMLHttpRequest(); - xhr.onreadystatechange = function () { - switch (xhr.readyState) { - case 4 : - if ((xhr.status >= 200 && xhr.status < 300) || xhr.status == 304) { - if (Boolean(callback)) { - if (xhr.responseText.slice(0, 6) == 'error:') { - callback(xhr.responseText, null); - } else { - callback(null, xhr.responseText); - } - } - //printf(xhr.responseText) - } else { - if (Boolean(callback)) callback(xhr.status, null); - //printf('error:' + xhr.status+'
'+(xhr.responseText||'')); - } - break; - } - } - xhr.open('post', _ip); - xhr.setRequestHeader('Content-Type', 'text/plain'); if (typeof(data) == typeof([][0]) || data == null) data = JSON.stringify({1: 2}); - xhr.send(data); + core.http("POST", _ip, data, function (data) { + if (data.slice(0, 6) == 'error:') { + callback(data, null); + } + else { + callback(null, data); + } + }, function (e) { + console.log(e); + callback(e+":请检查启动服务是否处于正常运行状态。"); + }, "text/plain; charset=x-user-defined"); } fs.readFile = function (filename, encoding, callback) { diff --git a/libs/control.js b/libs/control.js index b6653234..c4e956f3 100644 --- a/libs/control.js +++ b/libs/control.js @@ -2138,11 +2138,10 @@ control.prototype.playBgm = function (bgm) { core.material.bgms[core.musicStatus.playingBgm].pause(); } // 播放当前BGM - core.musicStatus.playingBgm = bgm; core.material.bgms[bgm].volume = core.musicStatus.volume; core.material.bgms[bgm].play(); + core.musicStatus.playingBgm = bgm; core.musicStatus.isPlaying = true; - } catch (e) { console.log("无法播放BGM "+bgm); diff --git a/main.js b/main.js index 3dddfd0d..7cbb42fd 100644 --- a/main.js +++ b/main.js @@ -457,6 +457,10 @@ main.statusBar.image.settings.onclick = function () { main.dom.playGame.onclick = function () { main.dom.startButtons.style.display='none'; + if (main.core.isset(main.core.musicStatus) && main.core.musicStatus.startDirectly + && main.core.musicStatus.bgmStatus && main.core.musicStatus.playingBgm==null) + main.core.playBgm(main.core.bgms[0]); + if (main.core.isset(main.core.flags.startDirectly) && main.core.flags.startDirectly) { core.events.startGame(""); } @@ -467,12 +471,21 @@ main.dom.playGame.onclick = function () { ////// 点击“载入游戏”时 ////// main.dom.loadGame.onclick = function() { + + if (main.core.isset(main.core.musicStatus) && main.core.musicStatus.startDirectly + && main.core.musicStatus.bgmStatus && main.core.musicStatus.playingBgm==null) + main.core.playBgm(main.core.bgms[0]); + main.core.load(); } ////// 点击“录像回放”时 ////// main.dom.replayGame.onclick = function () { + if (main.core.isset(main.core.musicStatus) && main.core.musicStatus.startDirectly + && main.core.musicStatus.bgmStatus && main.core.musicStatus.playingBgm==null) + main.core.playBgm(main.core.bgms[0]); + core.readFile(function (obj) { if (obj.name!=core.firstData.name) { alert("存档和游戏不一致!"); From 7af4e6d45636a05963d1b7a13fe0f61e014ea702 Mon Sep 17 00:00:00 2001 From: ckcz123 Date: Sun, 13 May 2018 16:10:13 +0800 Subject: [PATCH 10/41] Update Docs --- _server/blockly/MotaAction.g4 | 213 +++++++++++++++--------------- docs/api.md | 10 +- docs/element.md | 33 ++--- docs/event.md | 95 ++++++------- docs/img/plugin.png | Bin 0 -> 35281 bytes docs/personalization.md | 242 +++++++++++++++++++++++++++++++++- libs/core.js | 5 + libs/events.js | 2 + libs/maps.js | 8 ++ 9 files changed, 422 insertions(+), 186 deletions(-) create mode 100644 docs/img/plugin.png diff --git a/_server/blockly/MotaAction.g4 b/_server/blockly/MotaAction.g4 index 5c6e5f82..2483aaef 100644 --- a/_server/blockly/MotaAction.g4 +++ b/_server/blockly/MotaAction.g4 @@ -236,7 +236,7 @@ text_0_s /* text_0_s tooltip : text:显示一段文字(剧情) -helpUrl : https://ckcz123.github.io/mota-js/#/event?id=text%ef%bc%9a%e6%98%be%e7%a4%ba%e4%b8%80%e6%ae%b5%e6%96%87%e5%ad%97%ef%bc%88%e5%89%a7%e6%83%85%ef%bc%89 +helpUrl : https://ckcz123.github.io/mota-js/#/event?id=text%EF%BC%9A%E6%98%BE%E7%A4%BA%E4%B8%80%E6%AE%B5%E6%96%87%E5%AD%97%EF%BC%88%E5%89%A7%E6%83%85%EF%BC%89 default : ["欢迎使用事件编辑器(双击方块进入多行编辑)"] var code = '"'+EvalString_0+'",\n'; return code; @@ -248,7 +248,7 @@ text_1_s /* text_1_s tooltip : text:显示一段文字(剧情),选项较多请右键点击帮助 -helpUrl : https://ckcz123.github.io/mota-js/#/event?id=text%ef%bc%9a%e6%98%be%e7%a4%ba%e4%b8%80%e6%ae%b5%e6%96%87%e5%ad%97%ef%bc%88%e5%89%a7%e6%83%85%ef%bc%89 +helpUrl : https://ckcz123.github.io/mota-js/#/event?id=text%EF%BC%9A%E6%98%BE%E7%A4%BA%E4%B8%80%E6%AE%B5%E6%96%87%E5%AD%97%EF%BC%88%E5%89%A7%E6%83%85%EF%BC%89 default : ["小妖精","fairy","","欢迎使用事件编辑器(双击方块进入多行编辑)"] var title=''; if (EvalString_0==''){ @@ -272,7 +272,7 @@ autoText_s /* autoText_s tooltip : autoText:自动剧情文本,用户无法跳过自动剧情文本,大段剧情文本请添加“是否跳过剧情”的提示 -helpUrl : https://ckcz123.github.io/mota-js/#/event?id=autotext%ef%bc%9a%e8%87%aa%e5%8a%a8%e5%89%a7%e6%83%85%e6%96%87%e6%9c%ac +helpUrl : https://ckcz123.github.io/mota-js/#/event?id=autotext%EF%BC%9A%E8%87%AA%E5%8A%A8%E5%89%A7%E6%83%85%E6%96%87%E6%9C%AC default : ["小妖精","fairy","",3000,"双击方块进入多行编辑\\n自动剧情文本\\n自动剧情文本\\n自动剧情文本"] var title=''; if (EvalString_0==''){ @@ -296,7 +296,7 @@ setText_s /* setText_s tooltip : setText:设置剧情文本的属性,颜色为RGB三元组或RGBA四元组,打字间隔为剧情文字添加的时间间隔,为整数或不填 -helpUrl : https://ckcz123.github.io/mota-js/#/event?id=settext%ef%bc%9a%e8%ae%be%e7%bd%ae%e5%89%a7%e6%83%85%e6%96%87%e6%9c%ac%e7%9a%84%e5%b1%9e%e6%80%a7 +helpUrl : https://ckcz123.github.io/mota-js/#/event?id=settext%EF%BC%9A%E8%AE%BE%E7%BD%AE%E5%89%A7%E6%83%85%E6%96%87%E6%9C%AC%E7%9A%84%E5%B1%9E%E6%80%A7 default : [null,"","","",null,''] SetTextPosition_List_0 =SetTextPosition_List_0==='null'?'': ', "position": "'+SetTextPosition_List_0+'"'; var colorRe = /^(25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d),(25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d),(25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(,0(\.\d+)?|,1)?$/; @@ -327,7 +327,7 @@ tip_s /* tip_s tooltip : tip:显示一段提示文字 -helpUrl : https://ckcz123.github.io/mota-js/#/event?id=tip%ef%bc%9a%e6%98%be%e7%a4%ba%e4%b8%80%e6%ae%b5%e6%8f%90%e7%a4%ba%e6%96%87%e5%ad%97 +helpUrl : https://ckcz123.github.io/mota-js/#/event?id=tip%EF%BC%9A%E6%98%BE%E7%A4%BA%E4%B8%80%E6%AE%B5%E6%8F%90%E7%A4%BA%E6%96%87%E5%AD%97 default : ["这段话将在左上角以气泡形式显示"] var code = '{"type": "tip", "text": "'+EvalString_0+'"},\n'; return code; @@ -339,37 +339,41 @@ setValue_s /* setValue_s tooltip : setValue:设置勇士的某个属性、道具个数, 或某个变量/Flag的值 -helpUrl : https://ckcz123.github.io/mota-js/#/event?id=text%ef%bc%9a%e6%98%be%e7%a4%ba%e4%b8%80%e6%ae%b5%e6%96%87%e5%ad%97%ef%bc%88%e5%89%a7%e6%83%85%ef%bc%89 +helpUrl : https://ckcz123.github.io/mota-js/#/event?id=setvalue%EF%BC%9A%E8%AE%BE%E7%BD%AE%E5%8B%87%E5%A3%AB%E7%9A%84%E6%9F%90%E4%B8%AA%E5%B1%9E%E6%80%A7%E3%80%81%E9%81%93%E5%85%B7%E4%B8%AA%E6%95%B0%EF%BC%8C%E6%88%96%E6%9F%90%E4%B8%AA%E5%8F%98%E9%87%8Fflag%E7%9A%84%E5%80%BC colour : this.dataColor var code = '{"type": "setValue", "name": "'+idString_e_0+'", "value": "'+expression_0+'"},\n'; return code; */; show_s - : '显示事件' 'x' EvalString ',' 'y' EvalString '楼层' IdString? '动画时间' Int? Newline + : '显示事件' 'x' EvalString? ',' 'y' EvalString? '楼层' IdString? '动画时间' Int? Newline /* show_s tooltip : show: 将禁用事件启用,楼层和动画时间可不填,xy可用逗号分隔表示多个点 -helpUrl : https://ckcz123.github.io/mota-js/#/event?id=show-%e5%b0%86%e4%b8%80%e4%b8%aa%e7%a6%81%e7%94%a8%e4%ba%8b%e4%bb%b6%e5%90%af%e7%94%a8 -default : ["0","0","",500] +helpUrl : https://ckcz123.github.io/mota-js/#/event?id=show%EF%BC%9A%E5%B0%86%E4%B8%80%E4%B8%AA%E7%A6%81%E7%94%A8%E4%BA%8B%E4%BB%B6%E5%90%AF%E7%94%A8 +default : ["","","",500] colour : this.eventColor -IdString_0 = IdString_0 && (', "floorId": "'+IdString_0+'"'); -var pattern1 = /^flag:[0-9a-zA-Z_][0-9a-zA-Z_\-:]*$/; -if(pattern1.test(EvalString_0) || pattern1.test(EvalString_1)){ - EvalString_0=MotaActionFunctions.PosString_pre(EvalString_0); - EvalString_1=MotaActionFunctions.PosString_pre(EvalString_1); - EvalString_0=[EvalString_0,EvalString_1] -} else { - var pattern2 = /^([+-]?\d+)(,[+-]?\d+)*$/; - if(!pattern2.test(EvalString_0) || !pattern2.test(EvalString_1))throw new Error('坐标格式错误,请右键点击帮助查看格式'); - EvalString_0=EvalString_0.split(','); - EvalString_1=EvalString_1.split(','); - if(EvalString_0.length!==EvalString_1.length)throw new Error('坐标格式错误,请右键点击帮助查看格式'); - for(var ii=0;ii10) throw new Error('天气的强度等级, 在1-10之间'); @@ -777,7 +769,7 @@ move_s /* move_s tooltip : move: 让某个NPC/怪物移动,位置可不填代表当前事件 -helpUrl : https://ckcz123.github.io/mota-js/#/event?id=move-%e8%ae%a9%e6%9f%90%e4%b8%aanpc%e6%80%aa%e7%89%a9%e7%a7%bb%e5%8a%a8 +helpUrl : https://ckcz123.github.io/mota-js/#/event?id=move%EF%BC%9A%E8%AE%A9%E6%9F%90%E4%B8%AAnpc%E6%80%AA%E7%89%A9%E7%A7%BB%E5%8A%A8 default : ["","",500,null,"上右3下2左上左2"] colour : this.eventColor var floorstr = ''; @@ -795,7 +787,7 @@ moveHero_s /* moveHero_s tooltip : moveHero:移动勇士,用这种方式移动勇士的过程中将无视一切地形, 无视一切事件, 中毒状态也不会扣血 -helpUrl : https://ckcz123.github.io/mota-js/#/event?id=movehero%ef%bc%9a%e7%a7%bb%e5%8a%a8%e5%8b%87%e5%a3%ab +helpUrl : https://ckcz123.github.io/mota-js/#/event?id=movehero%EF%BC%9A%E7%A7%BB%E5%8A%A8%E5%8B%87%E5%A3%AB default : [500,"上右3下2左上左2"] colour : this.dataColor Int_0 = Int_0 ?(', "time": '+Int_0):''; @@ -809,7 +801,7 @@ playBgm_s /* playBgm_s tooltip : playBgm: 播放背景音乐 -helpUrl : https://ckcz123.github.io/mota-js/#/event?id=playbgm-%e6%92%ad%e6%94%be%e8%83%8c%e6%99%af%e9%9f%b3%e4%b9%90 +helpUrl : https://ckcz123.github.io/mota-js/#/event?id=playbgm%EF%BC%9A%E6%92%AD%E6%94%BE%E8%83%8C%E6%99%AF%E9%9F%B3%E4%B9%90 default : ["bgm.mp3"] colour : this.soundColor var code = '{"type": "playBgm", "name": "'+EvalString_0+'"},\n'; @@ -822,7 +814,7 @@ pauseBgm_s /* pauseBgm_s tooltip : pauseBgm: 暂停背景音乐 -helpUrl : https://ckcz123.github.io/mota-js/#/event?id=pausebgm-%e6%9a%82%e5%81%9c%e8%83%8c%e6%99%af%e9%9f%b3%e4%b9%90 +helpUrl : https://ckcz123.github.io/mota-js/#/event?id=pausebgm%EF%BC%9A%E6%9A%82%E5%81%9C%E8%83%8C%E6%99%AF%E9%9F%B3%E4%B9%90 colour : this.soundColor var code = '{"type": "pauseBgm"},\n'; return code; @@ -834,7 +826,7 @@ resumeBgm_s /* resumeBgm_s tooltip : resumeBgm: 恢复背景音乐 -helpUrl : https://ckcz123.github.io/mota-js/#/event?id=resumebgm-%e6%81%a2%e5%a4%8d%e8%83%8c%e6%99%af%e9%9f%b3%e4%b9%90 +helpUrl : https://ckcz123.github.io/mota-js/#/event?id=resumebgm%EF%BC%9A%E6%81%A2%E5%A4%8D%E8%83%8C%E6%99%AF%E9%9F%B3%E4%B9%90 colour : this.soundColor var code = '{"type": "resumeBgm"},\n'; return code; @@ -846,7 +838,7 @@ playSound_s /* playSound_s tooltip : playSound: 播放音效 -helpUrl : https://ckcz123.github.io/mota-js/#/event?id=playsound-%e6%92%ad%e6%94%be%e9%9f%b3%e6%95%88 +helpUrl : https://ckcz123.github.io/mota-js/#/event?id=playsound%EF%BC%9A%E6%92%AD%E6%94%BE%E9%9F%B3%E6%95%88 default : ["item.ogg"] colour : this.soundColor var code = '{"type": "playSound", "name": "'+EvalString_0+'"},\n'; @@ -859,7 +851,7 @@ setVolume_s /* setVolume_s tooltip : setVolume: 设置音量 -helpUrl : https://ckcz123.github.io/mota-js/#/event?id=setVolume-%e8%ae%be%e7%bd%ae%e9%9f%b3%e9%87%8f +helpUrl : https://ckcz123.github.io/mota-js/#/event?id=setvolume%EF%BC%9A%E8%AE%BE%E7%BD%AE%E9%9F%B3%E9%87%8F default : [90] colour : this.soundColor var code = '{"type": "setVolume", "value": '+Int_0+'},\n'; @@ -872,7 +864,7 @@ win_s /* win_s tooltip : win: 获得胜利, 该事件会显示获胜页面, 并重新游戏 -helpUrl : https://ckcz123.github.io/mota-js/#/event?id=win-%e8%8e%b7%e5%be%97%e8%83%9c%e5%88%a9 +helpUrl : https://ckcz123.github.io/mota-js/#/event?id=win%EF%BC%9A%E8%8E%B7%E5%BE%97%E8%83%9C%E5%88%A9 default : [""] var code = '{"type": "win", "reason": "'+EvalString_0+'"},\n'; return code; @@ -884,7 +876,7 @@ lose_s /* lose_s tooltip : lose: 游戏失败, 该事件会显示失败页面, 并重新开始游戏 -helpUrl : https://ckcz123.github.io/mota-js/#/event?id=lose-%e6%b8%b8%e6%88%8f%e5%a4%b1%e8%b4%a5 +helpUrl : https://ckcz123.github.io/mota-js/#/event?id=lose%EF%BC%9A%E6%B8%B8%E6%88%8F%E5%A4%B1%E8%B4%A5 default : [""] var code = '{"type": "lose", "reason": "'+EvalString_0+'"},\n'; return code; @@ -896,7 +888,7 @@ input_s /* input_s tooltip : input:接受用户输入, 事件只能接受非负整数输入, 所有非法的输入将全部变成0 -helpUrl : https://ckcz123.github.io/mota-js/#/event?id=input%ef%bc%9a%e6%8e%a5%e5%8f%97%e7%94%a8%e6%88%b7%e8%be%93%e5%85%a5 +helpUrl : https://ckcz123.github.io/mota-js/#/event?id=input%EF%BC%9A%E6%8E%A5%E5%8F%97%E7%94%A8%E6%88%B7%E8%BE%93%E5%85%A5 default : ["请输入一个数"] colour : this.dataColor var code = '{"type": "input", "text": "'+EvalString_0+'"},\n'; @@ -909,7 +901,7 @@ if_s /* if_s tooltip : if: 条件判断 -helpUrl : https://ckcz123.github.io/mota-js/#/event?id=if-%e6%9d%a1%e4%bb%b6%e5%88%a4%e6%96%ad +helpUrl : https://ckcz123.github.io/mota-js/#/event?id=if%EF%BC%9A%E6%9D%A1%E4%BB%B6%E5%88%A4%E6%96%AD colour : this.eventColor var code = ['{"type": "if", "condition": "',expression_0,'",\n', '"true": [\n',action_0,'],\n', @@ -918,6 +910,43 @@ var code = ['{"type": "if", "condition": "',expression_0,'",\n', return code; */; +choices_s + : '选项' ':' EvalString? BGNL? '标题' EvalString? '图像' IdString? BGNL? Newline choicesContext+ BEND Newline + + +/* choices_s +tooltip : choices: 给用户提供选项 +helpUrl : https://ckcz123.github.io/mota-js/#/event?id=choices%EF%BC%9A%E7%BB%99%E7%94%A8%E6%88%B7%E6%8F%90%E4%BE%9B%E9%80%89%E9%A1%B9 +default : ["","流浪者","woman"] +var title=''; +if (EvalString_1==''){ + if (IdString_0=='')title=''; + else title='\\t['+IdString_0+']'; +} else { + if (IdString_0=='')title='\\t['+EvalString_1+']'; + else title='\\t['+EvalString_1+','+IdString_0+']'; +} +EvalString_0 = title+EvalString_0; +EvalString_0 = EvalString_0 ?(', "text": "'+EvalString_0+'"'):''; +var code = ['{"type": "choices"',EvalString_0,', "choices": [\n', + choicesContext_0, +']},\n'].join(''); +return code; +*/; + +choicesContext + : '子选项' EvalString BGNL? Newline action+ + + +/* choicesContext +tooltip : 选项的选择 +helpUrl : https://ckcz123.github.io/mota-js/#/event?id=choices%EF%BC%9A%E7%BB%99%E7%94%A8%E6%88%B7%E6%8F%90%E4%BE%9B%E9%80%89%E9%A1%B9 +default : ["提示文字:红钥匙"] +colour : this.subColor +var code = '{"text": "'+EvalString_0+'", "action": [\n'+action_0+']},\n'; +return code; +*/; + while_s : '循环处理' ':' '当' expression '时' BGNL? Newline action+ BEND Newline @@ -953,40 +982,16 @@ var code = '{"type": "continue"},\n'; return code; */; -choices_s - : '选项' ':' EvalString? BGNL? '标题' EvalString? '图像' IdString? BGNL? Newline choicesContext+ BEND Newline - -/* choices_s -tooltip : choices: 给用户提供选项 -helpUrl : https://ckcz123.github.io/mota-js/#/event?id=choices-%e7%bb%99%e7%94%a8%e6%88%b7%e6%8f%90%e4%be%9b%e9%80%89%e9%a1%b9 -default : ["","流浪者","woman"] -var title=''; -if (EvalString_1==''){ - if (IdString_0=='')title=''; - else title='\\t['+IdString_0+']'; -} else { - if (IdString_0=='')title='\\t['+EvalString_1+']'; - else title='\\t['+EvalString_1+','+IdString_0+']'; -} -EvalString_0 = title+EvalString_0; -EvalString_0 = EvalString_0 ?(', "text": "'+EvalString_0+'"'):''; -var code = ['{"type": "choices"',EvalString_0,', "choices": [\n', - choicesContext_0, -']},\n'].join(''); -return code; -*/; +wait_s + : '等待用户操作并获得按键或点击信息' -choicesContext - : '子选项' EvalString BGNL? Newline action+ - -/* choicesContext -tooltip : 选项的选择 -helpUrl : https://ckcz123.github.io/mota-js/#/event?id=choices-%e7%bb%99%e7%94%a8%e6%88%b7%e6%8f%90%e4%be%9b%e9%80%89%e9%a1%b9 -default : ["提示文字:红钥匙"] -colour : this.subColor -var code = '{"text": "'+EvalString_0+'", "action": [\n'+action_0+']},\n'; +/* wait_s +tooltip : wait: 等待用户操作并获得按键或点击信息(具体用法看文档) +helpUrl : https://ckcz123.github.io/mota-js/#/event?id=wait%EF%BC%9A%E7%AD%89%E5%BE%85%E7%94%A8%E6%88%B7%E6%93%8D%E4%BD%9C +colour : this.soundColor +var code = '{"type": "wait"},\n'; return code; */; @@ -996,7 +1001,7 @@ function_s /* function_s tooltip : function: 自定义JS脚本 -helpUrl : https://ckcz123.github.io/mota-js/#/event?id=function-%e8%87%aa%e5%ae%9a%e4%b9%89js%e8%84%9a%e6%9c%ac +helpUrl : https://ckcz123.github.io/mota-js/#/event?id=function%EF%BC%9A%E8%87%AA%E5%AE%9A%E4%B9%89js%E8%84%9A%E6%9C%AC default : ["alert(core.getStatus(\"atk\"));"] colour : this.dataColor var code = '{"type": "function", "function": "function(){\\n'+JSON.stringify(RawEvalString_0).slice(1,-1).split('\\\\n').join('\\n')+'\\n}"},\n'; diff --git a/docs/api.md b/docs/api.md index b074575b..37580c0d 100644 --- a/docs/api.md +++ b/docs/api.md @@ -181,10 +181,18 @@ core.getBlock(x, y, floorId, needEnable) 获得某个点的当前图块信息。 x和y为坐标;floorId为楼层ID,可忽略或null表示当前楼层。 needEnable表示该点是否启用时才返回,其值不设置则默认为true。 -该函数返回值如下: {"index": xxx, "block": xxx} +如果该点不存在图块,则返回null。 +否则,返回值如下: {"index": xxx, "block": xxx} 其中index为该点在该楼层blocks数组中的索引,block为该图块实际内容。 +core.getBlockId(x, y, floorId, needEnable) +获得某个点的图块ID +x和y为坐标;floorId为楼层ID,可忽略或null表示当前楼层。 +needEnable表示是否需要该点处于启用状态才返回,其值不设置则默认为true。 +如果该点不存在图块,则返回null,否则返回该点的图块ID。 + + core.showBlock(x, y, floorId) 将某个点从禁用变成启用状态 diff --git a/docs/element.md b/docs/element.md index 44e3bd97..3e915cdb 100644 --- a/docs/element.md +++ b/docs/element.md @@ -36,7 +36,8 @@ ## 怪物 -本塔支持的怪物列表参见`enemys.js`。其与images目录下的`enemys.png`素材按顺序一一对应。如不知道怪物素材长啥样的请打开`enemys.png`对比查看。 +本塔支持的怪物列表参见`project/enemys.js`。其与images目录下的`enemys.png`素材按顺序一一对应。 + 如有自己的怪物素材需求请参见[自定义素材](personalization#自定义素材)的内容。 怪物可以有特殊属性,每个怪物可以有多个自定义属性。 @@ -89,27 +90,23 @@ enemys.prototype.getSpecialText = function (enemyId) { 下面的`getSpecialHint`函数则给定了每个特殊属性的详细描述。这个描述将在怪物手册中看到。 -**打败怪物后可以进行加点操作。有关加点塔的制作可参见[加点事件](event#加点事件)。** +打败怪物后可以进行加点操作。有关加点塔的制作可参见[加点事件](event#加点事件)。 如果`data.js`中的enableExperience为false,即不启用经验的话,怪物手册里将不显示怪物的经验值,打败怪物也不获得任何经验。 拿到幸运金币后,打怪获得的金币将翻倍。 +如果怪物有`"notBomb": true`,则该系列诖怪物均不可被炸。 + N连击怪物的special是6,且我们可以为它定义n代表实际连击数。参见样板中剑王的写法。 -![N连击](./img/nattack.png) - -吸血怪需要在怪物后添加value,代表吸血的比例。 +吸血怪需要给怪物设置value,代表吸血的比例。 可以给吸血怪添加`'add': true`来将吸血的数值加到自身上。 -![怪物吸血](./img/blood.png) - 中毒怪让勇士中毒后,每步扣减的生命值由`data.js`中的values定义。 -衰弱怪让勇士衰弱后,攻防会暂时下降一定的数值(直到衰弱状态解除恢复);这个下降的数值同在`data.js`中的values定义。 - -![debuff](./img/debuff.png) +衰弱怪让勇士衰弱后,攻防会下降一定比例或固定数值(直到衰弱状态解除恢复);其在`data.js`中的values定义。 诅咒怪将让勇士陷入诅咒状态,诅咒状态下杀怪不获得金币和经验值。 @@ -117,21 +114,17 @@ N连击怪物的special是6,且我们可以为它定义n代表实际连击数 领域是十字伤害还是九宫格伤害由`zoneSquare`设定,如设置为true则为九宫格伤害,不指定或为false则为十字伤害。 -`range`选项可选,代表该领域怪的范围,不写则默认为1。 +领域怪还可以设置`range`选项代表该领域怪的范围,不写则默认为1。 -![怪物领域](./img/zone.png) - -阻击怪同样需要在怪物后添加value,代表领域伤害的数值。如果勇士生命值扣减到0,则直接死亡触发lose事件。 +阻击怪同样需要设置value,代表领域伤害的数值。如果勇士生命值扣减到0,则直接死亡触发lose事件。 !> 阻击怪后退的地点不能有任何事件存在,即使是已经被禁用的自定义事件! 请注意如果吸血、领域、阻击中任何两个同时存在,则value会冲突。**因此请勿将吸血、领域或阻击放置在同一个怪物身上。** -退化怪需要在后面增加'atkValue'和'defValue'表示退化的数值。 +退化怪需要设置'atkValue'和'defValue'表示退化的数值;也可以不设置默认为0。 -![怪物退化](./img/tuihua.png) - -固伤怪则需要在后面增加`damage`选项,代表战前扣血数值。 +固伤怪则需要设置`damage`选项,代表战前扣血数值。 如有额外需求,可参见[自定义怪物属性](personalization#自定义自定义怪物属性),里面讲了如何设置一个新的怪物属性。 @@ -197,12 +190,12 @@ floorId指定的是目标楼层的唯一标识符(ID)。 本塔支持BGM和SE的播放。 -要播放音乐和音效,你需要将对应的文件放在sounds目录下,然后在main.js中进行定义 +要播放音乐和音效,你需要将对应的文件放在sounds目录下,然后在全塔属性中进行定义 ``` js "bgms": [ // 在此存放所有的bgm,和文件名一致。第一项为默认播放项 // 音频名不能使用中文,不能带空格或特殊字符;可以直接改名拼音就好 - 'bgm.mp3', 'qianjin.mid', 'star.mid', + 'bgm.mp3' ]; "sounds": [ // 在此存放所有的SE,和文件名一致 // 音频名不能使用中文,不能带空格或特殊字符;可以直接改名拼音就好 diff --git a/docs/event.md b/docs/event.md index 51f84109..d8d50530 100644 --- a/docs/event.md +++ b/docs/event.md @@ -26,7 +26,7 @@ 它能通过拖动、复制粘贴等方式帮助你快速生成事件列表,而不用手动打大量字符。 -但是,仍然强烈建议要对每个事件的写法进行了解。 +但是,仍然强烈建议要对每个事件的写法进行了解,因为在脚本编辑,`insertAction`等地方需要插入自定义事件时,还是很有必要的。 ## 自定义事件 @@ -264,6 +264,7 @@ - `flag:xxx` 中的xxx为一个自定义的变量/Flag;如果没有对其进行赋值则默认值为false。 另外,有个小`trick`。是否想立刻知道显示效果? + 你可以用Chrome浏览器打开游戏,按Ctrl+Shift+I打开开发者工具,找到Console(控制台),并中输入`core.drawText("...")` 即可立刻看到文字显示的效果。适当调整文字,使得显示效果满意后,再复制粘贴到你的剧情文本中。 ![调试](./img/eventdebug.png) @@ -322,7 +323,7 @@ time为可选项,表示文字添加的速度。若此项设置为0将直接全 ] ``` -值得注意的是,提示的text内容是可以使用`${ }`来计算表达式的值的。 +值得注意的是,提示的text内容也是可以使用`${ }`来计算表达式的值的。 ### setValue:设置勇士的某个属性、道具个数,或某个变量/Flag的值 @@ -356,7 +357,7 @@ value是一个表达式,将通过这个表达式计算出的结果赋值给nam 另外注意一点的是,如果hp被设置成了0或以下,将触发lose事件,直接死亡。 -### show: 将一个禁用事件启用 +### show:将一个禁用事件启用 我们上面提到了,所有事件都必须靠其他事件驱动来完成,不存在当某个flag为true时自动执行的说法。那么,我们自然要有启用事件的写法。 @@ -381,7 +382,7 @@ time为动画效果时间,如果指定了某个大于0的数,则会以动画 !> **要注意的是,调用show事件后只是让该事件从禁用状态变成启用,从不可见不可交互变成可见可交互,但本身不会去执行该点的事件。** -### hide: 将一个启用事件禁用 +### hide:将一个启用事件禁用 `{"type":"hide"}`和show刚好相反,它会让一个已经启用的事件被禁用。 @@ -407,7 +408,7 @@ NPC对话事件结束后如果需要NPC消失也需要调用 `{"type": "hide"}` ] ``` -### trigger: 立即触发另一个地点的事件 +### trigger:立即触发另一个地点的事件 `{"type":"trigger"}` 会立刻触发当层另一个地点的自定义事件。 @@ -428,7 +429,7 @@ NPC对话事件结束后如果需要NPC消失也需要调用 `{"type": "hide"}` 例如上面这个例子,下面的文字将不会再被显示,而是直接跳转到`"3,6"`对应的事件列表从头执行。 -### revisit: 立即重启当前事件 +### revisit:立即重启当前事件 revisit和trigger完全相同,只不过是立刻触发的还是本地点的事件 @@ -443,7 +444,7 @@ revisit其实是trigger的简写,只不过是loc固定为当前点。 revisit常常使用在一些商人之类的地方,当用户购买物品后不是离开,而是立刻重新访问重新进入购买页面。 -### exit: 立刻结束当前事件 +### exit:立刻结束当前事件 上面说到像商人一类,购买物品后可以立刻revisit重新访问,但是这样就相当于陷入了死循环导致无法离开。 @@ -504,11 +505,11 @@ name是可选的,代表目标行走图的文件名。 如果你需要同时修改勇士的名称,可以使用`setValue`事件来修改`status:name`,但请注意value必须加单引号,不然会报错。 -### update: 立刻更新状态栏和地图显伤 +### update:立刻更新状态栏和地图显伤 如果你需要刷新状态栏和地图显伤,只需要简单地调用 `{"type": "update"}` 即可。 -### sleep: 等待多少毫秒 +### sleep:等待多少毫秒 等价于RMXP中的"等待x帧",不过是以毫秒来计算。 @@ -521,7 +522,7 @@ name是可选的,代表目标行走图的文件名。 ] ``` -### battle: 强制战斗 +### battle:强制战斗 调用battle可强制与某怪物进行战斗(而无需去触碰到它)。 @@ -552,7 +553,7 @@ name是可选的,代表目标行走图的文件名。 强制战斗没有指定loc的选项,因此战斗后需要调用hide使怪物消失(如果有必要)。 -### openDoor: 开门 +### openDoor:开门 调用`{"type":"openDoor"}`可以打开一扇门。 @@ -569,7 +570,7 @@ loc指定门的坐标,floorId指定门所在的楼层ID。如果是当前层 如果loc所在的点既不是门也不是墙壁,则忽略本事件。 -### changeFloor: 楼层切换 +### changeFloor:楼层切换 在事件中也可以对楼层进行切换。一个比较典型的例子就是TSW中,勇士在三楼的陷阱被扔到了二楼,就是一个楼层切换事件。 @@ -594,7 +595,7 @@ time为可选的,指定的话将作为楼层切换动画的时间。 !> **changeFloor到达一个新的楼层,将不会执行firstArrive事件!如有需求请在到达点设置自定义事件,然后使用type: trigger立刻调用之。** -### changePos: 当前位置切换/勇士转向 +### changePos:当前位置切换/勇士转向 有时候我们不想要楼层切换的动画效果,而是直接让勇士从A点到B点。 @@ -608,11 +609,11 @@ time为可选的,指定的话将作为楼层切换动画的时间。 ] ``` -### openShop: 打开一个全局商店 +### openShop:打开一个全局商店 使用openShop可以打开一个全局商店。有关全局商店的说明可参见[全局商店](#全局商店)。 -### disableShop: 禁用一个全局商店 +### disableShop:禁用一个全局商店 使用disableShop可以永久禁用全局商店直到再次被openShop打开为止。有关全局商店的说明可参见[全局商店](#全局商店)。 @@ -722,7 +723,7 @@ time为总移动的时间。 !> 移动图片只是会在顶层绘制“移动”效果,动画结束即消失,并不会实际对图片的显示造成影响。请与showImage事件合用。 -### setFg: 更改画面色调 +### setFg:更改画面色调 我们可以使用 `{"type": "setFg"}` 来更改画面色调。 @@ -762,7 +763,7 @@ level为天气的强度等级,在1-10之间。1级为最弱,10级为最强 !> 使用setWeather更改的天气在切换地图后会被目标地图的默认天气覆盖。 -### move: 让某个NPC/怪物移动 +### move:让某个NPC/怪物移动 如果我们需要移动某个NPC或怪物,可以使用`{"type": "move"}`。 @@ -832,7 +833,7 @@ move完毕后移动的NPC/怪物一定会消失,只不过可以通过immediate 不过值得注意的是,用这种方式移动勇士的过程中将无视一切地形,无视一切事件,中毒状态也不会扣血。 -### playBgm: 播放背景音乐 +### playBgm:播放背景音乐 使用playBgm可以播放一个背景音乐。 @@ -844,15 +845,15 @@ move完毕后移动的NPC/怪物一定会消失,只不过可以通过immediate 有关BGM播放的详细说明参见[背景音乐](element#背景音乐) -### pauseBgm: 暂停背景音乐 +### pauseBgm:暂停背景音乐 使用`{"type": "pauseBgm"}`可以暂停背景音乐的播放。 -### resumeBgm: 恢复背景音乐 +### resumeBgm:恢复背景音乐 使用`{"type": "resumeBgm"}`可以恢复背景音乐的播放。 -### playSound: 播放音效 +### playSound:播放音效 使用playSound可以立刻播放一个音效。 @@ -868,7 +869,7 @@ move完毕后移动的NPC/怪物一定会消失,只不过可以通过immediate value为音量大小,在0到100之间,默认为100。设置后,BGM和SE都将使用该音量进行播放。 -### win: 获得胜利 +### win:获得胜利 `{"type": "win", "reason": "xxx"}` 将会直接调用events.js中的win函数,并将reason作为结局传入。 @@ -876,7 +877,7 @@ value为音量大小,在0到100之间,默认为100。设置后,BGM和SE都 !> 如果`reason`不为空,则会以reason作为获胜的结局! -### lose: 游戏失败 +### lose:游戏失败 `{"type": "lose", "reason": "xxx"}` 将会直接调用`events.js`中的lose函数,并将reason作为参数传入。 @@ -901,7 +902,7 @@ text为提示文字,可以在这里给输入提示文字。这里同样可以 输入得到的结果将被赋值给flag:input,可以供后续if来进行判断。 -### if: 条件判断 +### if:条件判断 使用`{"type": "if"}`可以对条件进行判断,根据判断结果将会选择不同的分支执行。 @@ -952,7 +953,7 @@ text为提示文字,可以在这里给输入提示文字。这里同样可以 - if可以不断进行嵌套,一层套一层;如成立的场合再进行另一个if判断等。 - if语句内的内容执行完毕后将接着其后面的语句继续执行。 -### choices: 给用户提供选项 +### choices:给用户提供选项 choices是一个很麻烦的事件,它将弹出一个列表供用户进行选择。 @@ -1153,7 +1154,6 @@ choices为一个数组,其中每一项都是一个选项列表。 ``` - ### function: 自定义JS脚本 上述给出了这么多事件,但有时候往往不能满足需求,这时候就需要执行自定义脚本了。 @@ -1169,23 +1169,7 @@ choices为一个数组,其中每一项都是一个选项列表。 `{"type":"function"}`需要有一个`"function"`参数,它是一个JS函数,里面可以写任何自定义的JS脚本;系统将会执行它。 -系统所有支持的API都在[附录](api)中给出。 - -这里只简单列出给一些最常见的API: - -``` js -core.getStatus(name) //获得勇士的某个属性(hp/atk/def/…) -core.setStatus(name, value) //设置勇士某个属性值为value -core.itemCount(name) //获得某个道具的个数 -core.getItem(name, count) //获得某个道具count个 -core.setItem(name, value) //设置某个道具为value个 -core.getFlag(name, defaultValue) //获得某个自定义变量flag;如果未定义则返回defaultValue -core.setFlag(name, value) //将某个自定义变量/flag设置为value -core.hasFlag(name) //判断某个自定义flag是否成立。只有被被赋值过,且不为0或false时才会返回true。 -core.updateStatusBar() //立刻更新状态栏和地图显伤。(上面各种get和set均不会对状态栏和地图显伤更新,需要手动调用这个函数。) -core.insertAction(list) //往当前事件列表中插入一系列事件。使用这个函数插入的事件将在这段自定义JS脚本执行完毕后立刻执行。 -// …… -``` +系统所有支持的API都在[附录](api)中给出,请进行参照。 ## 同一个点的多事件处理 @@ -1197,7 +1181,7 @@ core.insertAction(list) //往当前事件列表中插入一系列事件。使用 下面以几个具体例子来进行详细说明。 -### 打怪掉宝(怪物->道具) +### 打怪掉宝 我们注意到怪物和道具都是系统默认事件,因此无需写events,而是直接在afterBattle中setBlock即可。 @@ -1209,22 +1193,24 @@ core.insertAction(list) //往当前事件列表中插入一系列事件。使用 } ``` -### 打怪变成可对话的NPC(怪物->NPC) +### 打怪变成楼梯 -由于NPC是自定义事件,因此我们需要写events。注意到events中不覆盖trigger,则还是怪物时,存在系统trigger因此会战斗;变成NPC后没有系统trigger因此会触发自定义事件。 +因为涉及到多事件处理,因此我们不能写changeFloor那一项,而是使用events(自定义事件里写楼层转换)。 + +注意到events中不覆盖trigger,则还是怪物时,存在系统trigger因此会战斗并触发afterBattle;变成NPC后没有系统trigger因此会触发自定义事件(楼层转换)。 请注意打死怪物时默认会禁用该点,因此替换后需要手动进行show来启用。 ``` js "events": { "x,y": [ - "可对话的NPC" + {"type": "changeFloor", "loc": [0,0], "floorId": "MT1"} ] }, "afterBattle": { "x,y": [ - {"type": "setBlock", "number": 121}, // 变成老人 - {"type": "show", "loc": [x,y]} // 启用该点 + {"type": "setBlock", "number": 87}, // 变成上楼梯 + {"type": "show"} // 启用该点 ] } ``` @@ -1264,6 +1250,7 @@ core.insertAction(list) //往当前事件列表中插入一系列事件。使用 - 触发器(trigger)亦采用覆盖原则,即**首先取该图块的默认触发器(例如怪物是battle,道具是getItem,门是openDoor),如果剧本的events中定义了该点的trigger则覆盖**。 - 可以通过if语句和flag来控制自定义事件具体走向哪个分支。 - 如果弄不清楚系统trigger和自定义事件等的区别,也可以全部覆盖为自定义事件,然后通过type:battle,type:openDoor等来具体进行控制。 + - 多事件处理时请不要使用`changeFloor`那一项,而是使用`events`或者`afterXXX`来处理。 ## 加点事件 @@ -1273,13 +1260,7 @@ core.insertAction(list) //往当前事件列表中插入一系列事件。使用 如果要对某个怪物进行加点操作,则首先需要修改该怪物的`point`数值,代表怪物本身的加点数值。 -``` js -... 'def': 0, 'money': 1, 'experience': 1, 'point': 1, 'special': 0}, // 在怪物后面添加point代表怪物的加点数 -``` - -然后在`functions.js`文件中找到`addPoint`函数。它将返回一个choices事件。修改此函数为我们需要的加点项即可。 - -!> V2.0版本可以直接在“脚本编辑 - 加点事件”中双击进行修改! +然后在脚本编辑中找到加点事件,双击进行修改。它将返回一个choices事件。修改此函数为我们需要的加点项即可。 ``` js ////// 加点事件 ////// @@ -1315,6 +1296,8 @@ core.insertAction(list) //往当前事件列表中插入一系列事件。使用 全局商店定义在`data.js`中,找到shops一项。 +从V2.2以后,全局商店也可以使用图块进行编辑,但仍需知道每一项的使用。 + ``` js "shops": [ // 定义全局商店(即快捷商店) { diff --git a/docs/img/plugin.png b/docs/img/plugin.png new file mode 100644 index 0000000000000000000000000000000000000000..4e87fa840c009bbdd881597ad710fd60dcbb7ec3 GIT binary patch literal 35281 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 dN6Fj5Gs<9>L{{Vfu%me@c literal 0 HcmV?d00001 diff --git a/docs/personalization.md b/docs/personalization.md index c287e4e7..36191624 100644 --- a/docs/personalization.md +++ b/docs/personalization.md @@ -75,7 +75,7 @@ images为一个数组,代表当前层所有作为背景素材的图片信息 如果第四项为true,则会在前景层(event2)上绘制,能覆盖勇士,常常用来作为柱子的上半部分等情况。 -**如果你需要让某些点不可通行(比如你建了个房子,墙壁和家具等位置不让通行),则需在`events`中指定`{"noPass": false}`,参见[自定义事件](event#自定义事件)的写法。 +**如果你需要让某些点不可通行(比如你建了个房子,墙壁和家具等位置不让通行),则需在`events`中指定`{"noPass": false}`,参见[自定义事件](event#自定义事件)的写法。** ``` js "events": { @@ -114,8 +114,35 @@ images为一个数组,代表当前层所有作为背景素材的图片信息 **`ID-数字` 对应关系定义在maps.js文件中。该文件将唯一确定一个ID对应的数字是多少。** -如果需要添加一个素材到游戏,则必须为其分配一个唯一标识符,并同时修改`icons.js`和`maps.js`两个文件。 +在V2.0中,我们可以在地图编辑器中很方便查看每个图块的三个属性信息。 +#### 注册素材 + +在V2.0的地图编辑器中,要注册新素材,我们只需要在图块属性一栏输入新素材的ID和数字。 + +![素材注册](./img/register.png) + +ID必须由数字字母下划线组成,数字在1000以内,且均不能和已有的进行重复。 + +之后刷新编辑器即可。 + +对于怪物和道具,我们也可以进行自动注册,只需要点击“自动注册”按钮,将对该栏下所有未注册的素材进行自动注册(自动分配ID和数字)。 + +素材注册完毕后,即可在游戏中正常使用,也可以被地图生成器所识别(需要重开地图生成器)。 + +#### Autotile的注册 + +但是,通过上面这种方式,我们是没办法新增并注册Autotile的。 + +除了替换样板现有的几个外,如果我们还需要新添加Autotile,则: + +1. 将新的Autotile图片复制到images目录下。文件名必须是字母数字和下划线组成。 +2. 进入icons.js,在autotile分类下进行添加该文件的名称,索引简单的写0。 +3. 指定一个数字,在maps.js中类似进行添加。 + +!> Autotile的ID和文件名应确保完全相同! + + + ### 地图生成器使用自定义素材 地图生成器是直接从js文件中读取数字-图标对应关系的。 @@ -196,7 +225,7 @@ images为一个数组,代表当前层所有作为背景素材的图片信息 如果你想要同种宝石在不同层效果不同的话,可以进行如下操作: 1. 在楼层的item_ratio中定义宝石的比率(比如1-10的写1,11-20层写2等) -2. 修改获得道具的itemEffect函数(在items.js中的itemEffect中编辑,V2.0中也可以使用编辑器) +2. 修改获得道具的itemEffect函数(编辑器中双击进行编辑) ``` js // ratio为楼层的item_ratio值,可以进行翻倍宝石属性 @@ -278,7 +307,7 @@ control.prototype.checkBlock = function () { } // ... 下略 ``` -4. 如果有更高的需求,例如想让吸血效果变成一半(如异空间),则还是在上面这些地方进行对应的修改即可。 +4. 如果有更高的需求,例如想让吸血效果变成一半,则还是在上面这些地方进行对应的修改即可。 ## 自定义装备 @@ -359,7 +388,7 @@ this.useEquipment = function (itemId) { // 使用装备 你需自己指定一个special数字,修改getSpecialText函数(属性名)和getSpecialHint函数(属性提示文字)。 -如果要修改伤害计算公式,请修改下面的calDamage函数。请注意,如果无法战斗,该函数必须返回`null`。 +如果要修改伤害计算公式,请修改下面的getDamageInfo函数。请注意,如果无法战斗,该函数必须返回`null`。 对于毒衰弱怪物的战斗后结算在`functions.js`中的afterBattle函数中。 @@ -367,6 +396,209 @@ this.useEquipment = function (itemId) { // 使用装备 `getCritical`, `getCriticalDamage`和`getDefDamage`三个函数依次计算的是该怪物的临界值、临界减伤和1防减伤。也可以适当进行修改。 +## 公共事件 + +在RM中,存在公共事件的说法;也就是通过某个指令来调用一系列事件的触发。 + +在H5中,我们可以使用“插件”的形式来达成这个效果。具体参见“脚本编辑 - 插件编写”。 + +![插件编写](./img/plugin.png) + +当我们在这上面定义了自己需要的函数(插件后),就可以通过任何方式进行调用。 + +在这个插件编写的过程中,我们可以使用任何[常见API](api)里面的代码调用;也可以通过`core.insertAction`来插入自定义事件执行。 + +下面是一个很简单的例子,我编写一个公共事件(插件),其效果是让勇士生命值变成原来的x倍,并令面前的图块消失。 + +``` js +this.myfunc = function(x) { + core.status.hero.hp *= x; // 勇士生命翻若干倍 + core.insertAction([ // 自定义事件:令面前的图块消失。 + {"type": "setValue", "name": "flag:x", "value": "core.nextX()"}, + {"type": "setValue", "name": "flag:y", "value": "core.nextY()"}, + {"type": "hide", "loc": ["flag:x", "flag:y"]} + ]); +} +``` + +然后比如我们在某个道具的使用效果 `useItemEffect` 中写 `core.plugin.myfunc(2)` 即可调用此公共事件(插件)。也可以在战后事件或自定义脚本等位置来写。 + +通过这种,将脚本和自定义事件混用的方式,可以达到和RM中公共事件类似的效果,即一个调用触发一系列事件。 + +## 自定义状态栏(新增显示项) + +在V2.2以后,我们可以自定义状态栏背景图(全塔属性 - statusLeftBackground)等等。 + +但是,如果我们还想新增其他项目的显示,比如技能塔所需要的魔力值(气息),该怎么办? + +需要进行如下几个操作: + +1. 定义图标ID;比如魔力我就定义mana,气息可以简单的定义qixi;你也可以定义其他的ID,但是不能和已有的重复。这里以mana为例。 +2. 在index.html的statusBar中(44行起),进行该状态栏项的定义。仿照其他几项,插在其应当显示的位置,注意替换掉相应的ID。 +``` html +
+ +

+
+``` +3. 在editor.html中的statusBar(305行起),仿照第二点同样添加;这一项如果不进行则会地图编辑器报错。 +4. 使用便捷PS工具,打开icons.png,新增一行并将魔力的图标P上去;记下其索引比如23(减速播放图标的下方)。 +5. 在main.js的this.statusBar中增加图片、图标和内容的定义。 +``` js +this.statusBar = { + 'images': { + // ...其他略 + 'mana': document.getElementById("img-mana"), // 图片的定义 + }, + 'icons': { + // ...其他略 + 'mana': 23, // 图标的定义,这里对应的是icons.png中的索引 + }, + // ...其他略 + 'mana': document.getElementById('mana'), // 显示内容(数据)的定义 +} +``` +6. 显示内容的设置。在control.js的updateStatusBar函数,可以对该状态栏显示内容进行设置,下面是几个例子。 +``` js +core.statusBar.mana.innerHTML = core.getFlag('mana', 0); // 设置其显示内容为flag:mana值。 +core.statusBar.mana.innerHTML = core.getFlag('mana', 0) + '/' + core.getFlag('manaMax', 0); // 显示内容将类似 "32/60" 这样。 +core.statusBar.mana.style.fontStyle = 'normal'; // 这一行会取消斜体。如果是汉字(比如技能名)的话,斜体起来会非常难看,可以通过这一句取消。 +``` +7. 在control.js的clearStatusBar函数,`statusList`里面也要增加mana项,这样清空状态栏时也会对其清空。 + +## 技能塔的支持 + +其实,在HTML5上制作技能塔是完全可行的。 + +要支持技能塔,可能需要如下几个方面: + +- 魔力(和上限)的定义添加 +- 状态栏的显示 +- 技能的触发(按键与录像问题) +- 技能的效果 + +下面依次进行描述。 + +### 魔力的定义添加 + +当我们定义了魔力的ID,比如`mana`后,要使用它,一般有两种方式:属性获取`status:mana`或者flag标记`flag:mana`。 + +如果要属性获取,则需要打开`data.js`文件,并在`hero`中添加定义。 + +通过这种方式定义的,可以通过`core.setStatus('mana', 0)`以及`core.getStatus('mana')`来设置或获取。 + +``` js +'hero': { + // ... 上略 + 'mana': 0, // 增添mana定义,可以放在experience之后。同理可定义manaMax表示当前最大魔力值。 +} +``` + +如果要flag标记,则无需额外在任何地方进行定义。只需要在设置或取用的时候使用 `core.setFlag('mana', 0)` 或 `core.getFlag('mana', 0)` 即可。 + +下面我都使用属性获取的方式来进行说明。 + +### 状态栏的显示 + +首先我们需要额外新增一个状态栏;参见上面的自定义状态栏的做法来新增一栏。 + +我们可以在魔力那一行显示当前值和最大值: + +``` js +core.setStatus('mana', Math.min(core.getStatus('mana'), core.getStatus('manaMax')); // 如果魔力存在上限,则不能超过其上限值 +core.statusBar.mana.innerHTML = core.getStatus('mana') + '/' + core.getStatus('manaMax', 0); // 显示比如 6/30 这样 +``` + +如果我们还需要显示当前使用的技能名,也是可以的;定义一个ID为skill,然后按照上面的做法新增一行。 + +请注意,如果是中文字符,需要取消斜体(不然会非常难看的)! + +``` js +core.statusBar.skill.style.fontStyle = 'normal'; // 取消斜体显示 +core.statusBar.skill.innerHTML = core.getFlag('skillName', '无'); // 使用flag:skillName表示当前激活的技能名。 +``` + +### 技能的触发 + +我们可以按键触发技能。 + +要修改按键,我们可以在`actions.js`的`keyUp`进行处理: + +我们设置一个快捷键进行绑定,比如`W`,其keycode是87。(有关每个键的keycode搜一下就能得到) + +!> H5不支持组合快捷键,所以不存在`W+1`这种组合快捷键的说法! + +然后在`actions.js`的`keyUp`函数的`switch`中进行处理。 + +``` js +case 87: // W + if (core.status.heroStop) { // 当前停止状态;这个if需要加,不能在行走过程中触发不然容易出错。 + if (core.getFlag('skill', 0)==0) { // 判断当前是否已经开了技能 + if (能开技能) { // 这里要写当前能否开技能的条件判断 + core.setFlag('skill', 1); // 开技能1 + core.setFlag('skillName', '二倍斩'); // 设置技能名 + } + else { + core.drawTip("当前不能开技能!"); + } + } + else { // 关闭技能 + core.setFlag('skill', 0); // 关闭技能状态 + core.setFlag('skillName', '无'); + } + core.updateStatusBar(); // 立刻更新状态栏和地图显伤 + core.status.route.push("key:"+keyCode); // 录像的支持!这句话必须要加,不然录像回放会出错! + } + break; +``` + +简单的说,用flag:skill判断当前开启的技能,flag:skillName表示该技能名。(可在状态栏显示) + +在勇士处于停止的条件下,按下W键时,判断当前是否开启了技能,如果开启则关闭,没开则再判断是否允许开启(魔力值够不够等)。 + +`core.status.route.push("key:"+keyCode);` 这句话是对录像的支持,一定要加(这样录像播放时也会模拟该按键)。 + +!> 1,2,3这三个键被默认绑定到了破炸飞;如果想用的话也是一样,只不过是把已有的实现进行替换。 + +!> 手机端可以通过长按任何位置调出虚拟键盘,再进行按键,和键盘按键是等价的效果! + +### 技能的效果 + +最后一点就是技能的效果;其实到了这里就和RM差不多了。 + +技能的效果要分的话有地图类技能,战斗效果类技能,后续影响类技能什么的,这里只介绍最简单的战斗效果类技能。 +其他的几类技能根据需求可能更为麻烦,有兴趣可自行进行研究。 + +战斗效果内技能要改两个地方:战斗伤害计算,战后扣除魔力值。 + +战斗伤害计算在`enenmys.js`的`getDamageInfo`函数,有需求直接修改这个函数即可。 + +战后扣除魔力值则在脚本编辑的`afterBattle`中进行编辑即可。 + +举个例子,我设置一个勇士的技能:二倍斩,开启技能消耗5点魔力,下一场战斗攻击力翻倍。 + +那么,直接在`getDamageInfo`中进行判断: + +``` js +if (core.getFlag('skill', 0)==1) { // 开启了技能1 + hero_atk *= 2; // 计算时攻击力翻倍 +} +``` + +然后在脚本编辑的战后事件中进行魔力值的扣除: + +``` js +if (core.getFlag('skill', 0)==1) { // 开启了技能1 + core.status.hero.mana -= 5; // 扣除5点魔力值 + core.setFlag('skill', 0); // 自动关闭技能 + core.setFlag('skillName', '无'); +} +``` + +  + +通过上述这几种方式,我们就能成功的让H5支持技能啦! + ## 根据难度分歧来自定义地图 遗憾的是,所有地图数据必须在剧本的map中指定,换句话说,我们无法在游戏进行中动态修改地图,比如为简单难度增加一个血瓶。 diff --git a/libs/core.js b/libs/core.js index 34e06f1a..78d0a7fa 100644 --- a/libs/core.js +++ b/libs/core.js @@ -651,6 +651,11 @@ core.prototype.getBlock = function (x, y, floorId, needEnable) { return core.maps.getBlock(x,y,floorId,needEnable); } +////// 获得某个点的blockId ////// +core.prototype.getBlockId = function (x, y, floorId, needEnable) { + return core.maps.getBlockId(x, y, floorId, needEnable); +} + ////// 显示移动某块的动画,达到{“type”:”move”}的效果 ////// core.prototype.moveBlock = function(x,y,steps,time,immediateHide,callback) { core.maps.moveBlock(x,y,steps,time,immediateHide,callback) diff --git a/libs/events.js b/libs/events.js index 35d8d70c..8cf62d64 100644 --- a/libs/events.js +++ b/libs/events.js @@ -349,6 +349,8 @@ events.prototype.doAction = function() { core.events.doAction(); break; case "show": // 显示 + if (!core.isset(data.loc)) + data.loc = [x,y]; if ((typeof data.loc[0] == 'number' || typeof data.loc[0] == 'string') && (typeof data.loc[1] == 'number' || typeof data.loc[1] == 'string')) data.loc = [[core.calValue(data.loc[0]), core.calValue(data.loc[1])]]; diff --git a/libs/maps.js b/libs/maps.js index fa80da9f..39a0e306 100644 --- a/libs/maps.js +++ b/libs/maps.js @@ -537,6 +537,14 @@ maps.prototype.getBlock = function (x, y, floorId, needEnable) { return null; } +////// 获得某个点的blockId ////// +maps.prototype.getBlockId = function (x, y, floorId, needEnable) { + var block = core.getBlock(x, y, floorId, needEnable); + if (block == null) return null; + if (core.isset(block.block.event)) return block.block.event.id; + return null; +} + ////// 显示移动某块的动画,达到{“type”:”move”}的效果 ////// maps.prototype.moveBlock = function(x,y,steps,time,immediateHide,callback) { time = time || 500; From 85958867b40baf6e3a9f34a968073fc0f1f29441 Mon Sep 17 00:00:00 2001 From: ckcz123 Date: Sun, 13 May 2018 16:48:39 +0800 Subject: [PATCH 11/41] Update --- docs/api.md | 19 ++++++++++--------- docs/personalization.md | 2 +- project/functions.js | 4 ++-- 3 files changed, 13 insertions(+), 12 deletions(-) diff --git a/docs/api.md b/docs/api.md index 37580c0d..23fdd3a7 100644 --- a/docs/api.md +++ b/docs/api.md @@ -25,7 +25,7 @@ core.status.thisMap core.floors -获得所有楼层的信息,常常用来获取事件坐标。 +获得所有楼层的信息。例如core.floors[core.status.floorId].events可获得本楼层的所有自定义事件。 core.status.hero @@ -146,7 +146,7 @@ core.openDoor(id, x, y, needKey, callback) core.battle(id, x, y, force, callback) -执行战斗事件。id为怪物的id,x和y为坐标,force为bool值表示打不过是否强制战斗,callback为战斗完毕后的回调函数。 +执行战斗事件。id为怪物的id,x和y为坐标,force为bool值表示是否是强制战斗,callback为战斗完毕后的回调函数。 例如:core.battle('greenSlime', null, null, true) @@ -155,7 +155,8 @@ core.trigger(x, y) core.clearMap(mapName) -清空某个画布。mapName可为'bg', 'event', 'fg', 'event2', 'hero', 'animate', 'weather', 'ui', 'data', 'all'之一。 +清空某个画布图层。 +mapName可为'bg', 'event', 'fg', 'event2', 'hero', 'animate', 'weather', 'ui', 'data', 'all'之一。 如果mapName为'all',则为清空所有画布;否则只清空对应的画布。 @@ -164,7 +165,7 @@ core.drawBlock(block) core.drawMap(floorId, callback) -重绘某一层的地图数据。floorId为要绘制那一层的floorId,callback为绘制完毕后的回调函数。 +重绘某一层的地图。floorId为要绘制楼层的floorId,callback为绘制完毕后的回调函数。 core.terrainExists(x, y, id, floorId) @@ -187,7 +188,7 @@ needEnable表示该点是否启用时才返回,其值不设置则默认为true core.getBlockId(x, y, floorId, needEnable) -获得某个点的图块ID +获得某个点的图块ID。 x和y为坐标;floorId为楼层ID,可忽略或null表示当前楼层。 needEnable表示是否需要该点处于启用状态才返回,其值不设置则默认为true。 如果该点不存在图块,则返回null,否则返回该点的图块ID。 @@ -394,7 +395,7 @@ core.maps.removeBlockByIds(floorId, ids) 根据索引删除或禁用若干块。 -========== core.ui.XXX 和地图处理相关的函数 ========== +========== core.ui.XXX 和对话框绘制相关的函数 ========== ui.js主要用来进行UI窗口的绘制,比如对话框、怪物手册、楼传器、存读档界面等等。 @@ -404,7 +405,7 @@ floorId为目标楼层ID,canvas为要绘制到的图层,blocks为要绘制 x,y为该图层开始绘制的起始点坐标,size为每一格的像素,heroLoc为勇士坐标,heroIcon为勇士图标。 -========== core.utils.XXX 和地图处理相关的函数 ========== +========== core.utils.XXX 工具类的辅助函数 ========== utils.js主要用来进行一些辅助函数的计算。 @@ -454,9 +455,9 @@ core.utils.copy(data) 尝试复制一段文本到剪切板。 -core.http(type, url, formData, success, error, mimeType) +core.utils.http(type, url, formData, success, error, mimeType, responseType) 发送一个异步HTTP请求。 type为'GET'或者'POST';url为目标地址;formData如果是POST请求则为表单数据。 -success为成功后的回调,error会失败后的回调,mimeType如果设置则覆盖。 +success为成功后的回调,error为失败后的回调,最后两个参数如果设置则覆盖。 ``` diff --git a/docs/personalization.md b/docs/personalization.md index 36191624..593716ae 100644 --- a/docs/personalization.md +++ b/docs/personalization.md @@ -334,7 +334,7 @@ control.prototype.checkBlock = function () { "shield1": {"atk": 0, "def": 10, "mdef": 10}, // 铁盾加10防和10魔防 ``` -通过这种方式,当穿上装备时,将会给你的三围分别加上对应项的数值。 +通过这种方式,当穿上装备时,将会给你的三围分别加上对应项的数值(支持负数,比如装剑减防御)。 ### 新增剑盾 diff --git a/project/functions.js b/project/functions.js index 975d9aab..0c7862d1 100644 --- a/project/functions.js +++ b/project/functions.js @@ -346,7 +346,7 @@ functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a = console.log("插件函数执行测试"); } - var _useEquipment = function (itemId, name, type) { + var _useEquipment = function (itemId, name, type) { // 具体的装备使用效果 if (itemId.indexOf(name)==0) { var now=core.getFlag(name, name+"0"); @@ -356,7 +356,7 @@ functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a = else { core.status.hero.atk -= core.values[now].atk || 0; core.status.hero.def -= core.values[now].def || 0; - core.status.hero.mdef -= core.values[now].mdef || 0; + core.status.hero.mdef -= core.values[now].mdef || 0; } if (typeof core.values[itemId] == 'number') { From 0517e0f1455959e05f8c67e5eba2d2550635e186 Mon Sep 17 00:00:00 2001 From: oc Date: Tue, 15 May 2018 00:02:35 +0800 Subject: [PATCH 12/41] Fix flyrange bug --- _server/fs.js | 41 ++++++++++++++++++++++++++++++++++++++++- libs/events.js | 8 ++++---- 更新说明.txt | 1 + 3 files changed, 45 insertions(+), 5 deletions(-) diff --git a/_server/fs.js b/_server/fs.js index 31b24811..59bd1441 100644 --- a/_server/fs.js +++ b/_server/fs.js @@ -1,8 +1,47 @@ (function () { fs = {}; + + + var _http = function (type, url, formData, success, error, mimeType, responseType) { + var xhr = new XMLHttpRequest(); + xhr.open(type, url, true); + if (core.isset(mimeType)) + xhr.overrideMimeType(mimeType); + if (core.isset(responseType)) + xhr.responseType = responseType; + xhr.onload = function(e) { + if (xhr.status==200) { + if (core.isset(success)) { + success(xhr.response); + } + } + else { + if (core.isset(error)) + error("HTTP "+xhr.status); + } + }; + xhr.onabort = function () { + if (core.isset(error)) + error("Abort"); + } + xhr.ontimeout = function() { + if (core.isset(error)) + error("Timeout"); + } + xhr.onerror = function() { + if (core.isset(error)) + error("Error on Connection"); + } + if (core.isset(formData)) + xhr.send(formData); + else xhr.send(); + } + + var postsomething = function (data, _ip, callback) { if (typeof(data) == typeof([][0]) || data == null) data = JSON.stringify({1: 2}); - core.http("POST", _ip, data, function (data) { + + _http("POST", _ip, data, function (data) { if (data.slice(0, 6) == 'error:') { callback(data, null); } diff --git a/libs/events.js b/libs/events.js index 8cf62d64..786499af 100644 --- a/libs/events.js +++ b/libs/events.js @@ -1033,10 +1033,10 @@ events.prototype.changeFloor = function (floorId, stair, heroLoc, time, callback } } if (core.status.maps[floorId].canFlyTo && core.status.hero.flyRange.indexOf(floorId)<0) { - if (core.floorIds.indexOf(floorId)>core.floorIds.indexOf(core.status.floorId)) - core.status.hero.flyRange.push(floorId); - else - core.status.hero.flyRange.unshift(floorId); + core.status.hero.flyRange.push(floorId); + core.status.hero.flyRange.sort(function (a, b) { + return core.floorIds.indexOf(a) - core.floorIds.indexOf(b); + }) } window.setTimeout(function () { diff --git a/更新说明.txt b/更新说明.txt index a5c4c77a..d38375a7 100644 --- a/更新说明.txt +++ b/更新说明.txt @@ -11,6 +11,7 @@ 增添自定义装备的教程(个性化-自定义装备) √ 重写教程的快速上手 √ 修复转向触发事件的朝向Bug √ +修复flyRange的顺序问题 √ 部分细节优化 √ ----------------------------------------------------------------------- From 4b17b25b15b5147a49eb59888a71f8a5d91f179f Mon Sep 17 00:00:00 2001 From: ckcz123 Date: Tue, 15 May 2018 20:38:58 +0800 Subject: [PATCH 13/41] use mp3 --- _server/blockly/MotaAction.g4 | 2 +- docs/element.md | 2 +- docs/event.md | 2 +- libs/control.js | 2 +- libs/events.js | 8 +- libs/ui.js | 2 +- project/data.js | 2 +- project/floors/sample1.js | 2 +- project/floors/sample2.js | 208 +++++++++++++++++----------------- project/sounds/attack.mp3 | Bin 0 -> 6000 bytes project/sounds/attack.ogg | Bin 9491 -> 0 bytes project/sounds/door.mp3 | Bin 0 -> 8508 bytes project/sounds/door.ogg | Bin 11974 -> 0 bytes project/sounds/item.mp3 | Bin 0 -> 8508 bytes project/sounds/item.ogg | Bin 11126 -> 0 bytes project/sounds/zone.mp3 | Bin 0 -> 11956 bytes project/sounds/zone.ogg | Bin 14679 -> 0 bytes 17 files changed, 115 insertions(+), 115 deletions(-) create mode 100644 project/sounds/attack.mp3 delete mode 100644 project/sounds/attack.ogg create mode 100644 project/sounds/door.mp3 delete mode 100644 project/sounds/door.ogg create mode 100644 project/sounds/item.mp3 delete mode 100644 project/sounds/item.ogg create mode 100644 project/sounds/zone.mp3 delete mode 100644 project/sounds/zone.ogg diff --git a/_server/blockly/MotaAction.g4 b/_server/blockly/MotaAction.g4 index 2483aaef..e6f97b4f 100644 --- a/_server/blockly/MotaAction.g4 +++ b/_server/blockly/MotaAction.g4 @@ -839,7 +839,7 @@ playSound_s /* playSound_s tooltip : playSound: 播放音效 helpUrl : https://ckcz123.github.io/mota-js/#/event?id=playsound%EF%BC%9A%E6%92%AD%E6%94%BE%E9%9F%B3%E6%95%88 -default : ["item.ogg"] +default : ["item.mp3"] colour : this.soundColor var code = '{"type": "playSound", "name": "'+EvalString_0+'"},\n'; return code; diff --git a/docs/element.md b/docs/element.md index 3e915cdb..11816adf 100644 --- a/docs/element.md +++ b/docs/element.md @@ -199,7 +199,7 @@ floorId指定的是目标楼层的唯一标识符(ID)。 ]; "sounds": [ // 在此存放所有的SE,和文件名一致 // 音频名不能使用中文,不能带空格或特殊字符;可以直接改名拼音就好 - 'floor.mp3', 'attack.ogg', 'door.ogg', 'item.ogg', 'zone.ogg' + 'floor.mp3', 'attack.mp3', 'door.mp3', 'item.mp3', 'zone.mp3' ] ``` diff --git a/docs/event.md b/docs/event.md index d8d50530..2e3eda7b 100644 --- a/docs/event.md +++ b/docs/event.md @@ -857,7 +857,7 @@ move完毕后移动的NPC/怪物一定会消失,只不过可以通过immediate 使用playSound可以立刻播放一个音效。 -使用方法:`{"type": "playSound", "name": "item.ogg"}` +使用方法:`{"type": "playSound", "name": "item.mp3"}` 值得注意的是,如果是额外添加进文件的音效,则需在main.js中this.sounds里加载它。 diff --git a/libs/control.js b/libs/control.js index c4e956f3..44fe2c87 100644 --- a/libs/control.js +++ b/libs/control.js @@ -1010,7 +1010,7 @@ control.prototype.checkBlock = function () { } if (damage>0) { - core.playSound('zone.ogg'); + core.playSound('zone.mp3'); core.drawAnimate("zone", x, y); } diff --git a/libs/events.js b/libs/events.js index 786499af..0027129c 100644 --- a/libs/events.js +++ b/libs/events.js @@ -838,7 +838,7 @@ events.prototype.getNextItem = function() { ////// 获得某个物品 ////// events.prototype.getItem = function (itemId, itemNum, itemX, itemY, callback) { // core.getItemAnimate(itemId, itemNum, itemX, itemY); - core.playSound('item.ogg'); + core.playSound('item.mp3'); var itemCls = core.material.items[itemId].cls; core.items.getItemEffect(itemId, itemNum); core.removeBlock(itemX, itemY); @@ -888,7 +888,7 @@ events.prototype.openDoor = function (id, x, y, needKey, callback) { } // open - core.playSound("door.ogg"); + core.playSound("door.mp3"); var state = 0; var doorId = id; if (!(doorId.substring(doorId.length-4)=="Door")) { @@ -942,11 +942,11 @@ events.prototype.battle = function (id, x, y, force, callback) { else { if (core.flags.equipment && core.getFlag('sword', 'sword0')!='sword0') { - core.playSound('zone.ogg'); + core.playSound('zone.mp3'); core.drawAnimate('sword', x, y); } else { - core.playSound('attack.ogg'); + core.playSound('attack.mp3'); core.drawAnimate('hand', x, y); } diff --git a/libs/ui.js b/libs/ui.js index b539d278..910a8a80 100644 --- a/libs/ui.js +++ b/libs/ui.js @@ -981,7 +981,7 @@ ui.prototype.drawBattleAnimate = function(monsterId, callback) { core.fillText("ui", "S", right_start-8, 208+15, "#FFFFFF", "italic bold 40px Verdana"); var battleInterval = setInterval(function() { - core.playSound("attack.ogg"); + core.playSound("attack.mp3"); if (turn==0) { // 勇士攻击 diff --git a/project/data.js b/project/data.js index 257d7b4f..63a4c455 100644 --- a/project/data.js +++ b/project/data.js @@ -14,7 +14,7 @@ data_a1e2fb4a_e986_4524_b0da_9b7ba7c0874d = 'bgm.mp3' ], "sounds" : [ - 'floor.mp3', 'attack.ogg', 'door.ogg', 'item.ogg', 'zone.ogg' + 'floor.mp3', 'attack.mp3', 'door.mp3', 'item.mp3', 'zone.mp3' ], "startBackground" : "bg.jpg", "startLogoStyle" : "color: black", diff --git a/project/floors/sample1.js b/project/floors/sample1.js index 54098420..87bbb9b2 100644 --- a/project/floors/sample1.js +++ b/project/floors/sample1.js @@ -56,7 +56,7 @@ main.floors.sample1 = "\t[redKing]欢迎来到魔塔,你是第一百位挑战者。\n若你能打败我所有的手下,我就与你一对一的决斗。\n现在你必须接受我的安排。", {"type": "show", "loc": [[1,6],[0,7],[1,8],[2,7]], "time": 500}, // 显示四个白衣武士,每个动画效果500ms "\t[hero]什么?", - {"type": "playSound", "name": "attack.ogg"}, // 播放战斗音频 + {"type": "playSound", "name": "attack.mp3"}, // 播放战斗音频 {"type": "setValue", "name": "status:atk", "value": "status:atk/10"}, // 勇士的攻防变成原来的十分之一 {"type": "setValue", "name": "status:def", "value": "status:def/10"}, {"type": "hide", "loc": [[1,6],[0,7],[2,7],[1,8]]}, // 直接隐藏四个白衣武士,没有动画效果 diff --git a/project/floors/sample2.js b/project/floors/sample2.js index 666e5f64..5db5310c 100644 --- a/project/floors/sample2.js +++ b/project/floors/sample2.js @@ -36,22 +36,22 @@ main.floors.sample2 = "6,11": {"enable": false}, // 下楼梯口的机关门,初始处于关闭状态 "6,10": [ // 进入陷阱后关门 - {"type": "playSound", "name": "door.ogg"}, + {"type": "playSound", "name": "door.mp3"}, {"type": "show", "loc": [6,11]}, // 显示机关门 {"type": "hide"}, // 隐藏该事件 {"type": "trigger", "loc": [6,7]}, // 直接引发"6,7"处的事件,即下面的杰克 // 请再次注意"trigger"会立刻结束当前事件,因此"type":"hide"需要在trigger前调用 ], "6,7": [ // 杰克事件 - {"type": "playSound", "name": "item.ogg"}, + {"type": "playSound", "name": "item.mp3"}, "\t[hero]杰克,你究竟是什么人?", - {"type": "playSound", "name": "item.ogg"}, + {"type": "playSound", "name": "item.mp3"}, "\t[杰克,thief]……", - {"type": "playSound", "name": "item.ogg"}, + {"type": "playSound", "name": "item.mp3"}, "\t[hero]我们……是朋友对吧?\n是朋友就应该相互信任对吧?", - {"type": "playSound", "name": "item.ogg"}, + {"type": "playSound", "name": "item.mp3"}, "\t[杰克,thief]……事到如今也没有什么好隐瞒的了。", - {"type": "playSound", "name": "item.ogg"}, + {"type": "playSound", "name": "item.mp3"}, "\t[杰克,thief]没错,我就是这一切的背后主谋。", {"type": "move", "steps": [ // 移动到黑暗大法师的位置;使用move会自动调用hide进行隐藏,无需再手动调用 {"direction": "up", "value": 3} @@ -59,105 +59,105 @@ main.floors.sample2 = {"type": "show", "loc": [6,4], "time": 1000}, // 显示黑暗大法师 {"type": "sleep", "time": 500}, // 等待500毫秒 // 下面是黑暗大法师的事件 - {"type": "playSound", "name": "item.ogg"}, + {"type": "playSound", "name": "item.mp3"}, "\t[blackMagician]我的真名为——黑暗大法师,第四区域的头目。", - {"type": "playSound", "name": "item.ogg"}, + {"type": "playSound", "name": "item.mp3"}, "\t[hero]呵呵,不知道为什么,我竟然对事情走到现在这一步毫不感觉意外。", - {"type": "playSound", "name": "item.ogg"}, + {"type": "playSound", "name": "item.mp3"}, "\t[blackMagician]以杰克的名义利用了你这么久,真是抱歉啊。", - {"type": "playSound", "name": "item.ogg"}, + {"type": "playSound", "name": "item.mp3"}, "\t[hero]真正的杰克现在在哪里?", - {"type": "playSound", "name": "item.ogg"}, + {"type": "playSound", "name": "item.mp3"}, "\t[blackMagician]盗贼杰克这个人类从未存在过,他只是我用来接近你的一副皮囊而已。", - {"type": "playSound", "name": "item.ogg"}, + {"type": "playSound", "name": "item.mp3"}, "\t[hero]……这样啊,呵呵。", - {"type": "playSound", "name": "item.ogg"}, + {"type": "playSound", "name": "item.mp3"}, "\t[blackMagician]为什么你看上去丝毫不生气?", - {"type": "playSound", "name": "item.ogg"}, + {"type": "playSound", "name": "item.mp3"}, "\t[hero]多亏了鬼帝,我现在的脾气好得连我自己都害怕。", - {"type": "playSound", "name": "item.ogg"}, + {"type": "playSound", "name": "item.mp3"}, "\t[hero]说起来我还得好好感谢你呢,如果没有杰克……你的帮助,我早就死在第一区域了。", - {"type": "playSound", "name": "item.ogg"}, + {"type": "playSound", "name": "item.mp3"}, "\t[hero]不论你的目的如何,你的所作所为都是对我有利的。不是吗?", - {"type": "playSound", "name": "item.ogg"}, + {"type": "playSound", "name": "item.mp3"}, "\t[blackMagician]能够如此淡定的面对背叛,看来跟五年前相比,你确实成长了很多啊。", - {"type": "playSound", "name": "item.ogg"}, + {"type": "playSound", "name": "item.mp3"}, "\t[hero]五年前?……黑暗大法师,在这之前,我们好像素未谋面吧?", - {"type": "playSound", "name": "item.ogg"}, + {"type": "playSound", "name": "item.mp3"}, "\t[blackMagician]五年前那场屠城你应该这一生都不会忘记吧。", - {"type": "playSound", "name": "item.ogg"}, + {"type": "playSound", "name": "item.mp3"}, "\t[blackMagician]很不巧,那场屠城的主谋,也是我。", - {"type": "playSound", "name": "item.ogg"}, + {"type": "playSound", "name": "item.mp3"}, "\t[hero]……", - {"type": "playSound", "name": "item.ogg"}, + {"type": "playSound", "name": "item.mp3"}, "\t[hero]这么说,击中我双亲的那道紫色闪电,也就是你释放的吧……", - {"type": "playSound", "name": "item.ogg"}, + {"type": "playSound", "name": "item.mp3"}, "\t[blackMagician]你的双亲?这种事情我怎么可能会记得?\n你难道在踩死蚂蚁的时候还会一只只记下他们的样子吗?", - {"type": "playSound", "name": "item.ogg"}, + {"type": "playSound", "name": "item.mp3"}, "\t[hero]老 子 要 你 的 命", - {"type": "playSound", "name": "item.ogg"}, + {"type": "playSound", "name": "item.mp3"}, "\t[blackMagician]你应该对我心怀感激才对,如果不是那时的我看出了你隐藏的稀有勇者体质,你绝对不可能活到今天。", - {"type": "playSound", "name": "item.ogg"}, + {"type": "playSound", "name": "item.mp3"}, "\t[blackMagician]在暗中动手脚让你通过勇者选拔的人也是我,我一直一直在暗中引导你走到今天这一步。", - {"type": "playSound", "name": "item.ogg"}, + {"type": "playSound", "name": "item.mp3"}, "\t[blackMagician]是我救赎了一无是处的你。", - {"type": "playSound", "name": "item.ogg"}, + {"type": "playSound", "name": "item.mp3"}, "\t[hero]为什么只有我一个人活了下来!!!!", - {"type": "playSound", "name": "item.ogg"}, + {"type": "playSound", "name": "item.mp3"}, "\t[hero]为什么偏偏是我!!!!", - {"type": "playSound", "name": "item.ogg"}, + {"type": "playSound", "name": "item.mp3"}, "\t[blackMagician]我刚才不是说过了吗?因为我看出了你有稀有勇者体质啊。", - {"type": "playSound", "name": "item.ogg"}, + {"type": "playSound", "name": "item.mp3"}, "\t[blackMagician]你刚刚跟鬼帝交过手,应该已经很清楚这稀有勇者体质意味着什么了吧?", - {"type": "playSound", "name": "item.ogg"}, + {"type": "playSound", "name": "item.mp3"}, "\t[hero]……就因为我有这种体质,就不得不背负如此残酷的宿命吗?", - {"type": "playSound", "name": "item.ogg"}, + {"type": "playSound", "name": "item.mp3"}, "\t[blackMagician]愚蠢!这意味着只要我对你加以引导跟培养,你就能成为这世间实力最强的存在!", - {"type": "playSound", "name": "item.ogg"}, + {"type": "playSound", "name": "item.mp3"}, "\t[hero]……所以,你究竟想利用我干什么?", - {"type": "playSound", "name": "item.ogg"}, + {"type": "playSound", "name": "item.mp3"}, "\t[blackMagician]我利用你干的事情,你不是已经完成了吗?", - {"type": "playSound", "name": "item.ogg"}, + {"type": "playSound", "name": "item.mp3"}, "\t[hero]……你说什么?", - {"type": "playSound", "name": "item.ogg"}, + {"type": "playSound", "name": "item.mp3"}, "\t[blackMagician]不知不觉间,你已经在我的指引下跟鬼帝正面交手并且杀掉了他啊。", - {"type": "playSound", "name": "item.ogg"}, + {"type": "playSound", "name": "item.mp3"}, "\t[hero]就连我跟鬼帝的对决……也是被你安排好了的?", - {"type": "playSound", "name": "item.ogg"}, + {"type": "playSound", "name": "item.mp3"}, "\t[blackMagician]你们两个一个是人类勇者,一个是魔物勇者,迟早会有交手的一天。", - {"type": "playSound", "name": "item.ogg"}, + {"type": "playSound", "name": "item.mp3"}, "\t[blackMagician]我只不过是操纵了一系列的连锁事件让这一天提早了数十年到来而已。", - {"type": "playSound", "name": "item.ogg"}, + {"type": "playSound", "name": "item.mp3"}, "\t[hero]……你这样做对谁有好处?他可是你们魔物世界的救世主啊。", - {"type": "playSound", "name": "item.ogg"}, + {"type": "playSound", "name": "item.mp3"}, "\t[blackMagician]一个惧怕征战,爱好和平的懦夫,也配叫救世主?", - {"type": "playSound", "name": "item.ogg"}, + {"type": "playSound", "name": "item.mp3"}, "\t[blackMagician]获得了力量,却只会被动挨打而不主动向人类世界出击,龟缩在第二区域惶惶度日,他根本就不配拥有稀有勇者体质。", - {"type": "playSound", "name": "item.ogg"}, + {"type": "playSound", "name": "item.mp3"}, "\t[blackMagician]为了不让这种人霸占着积累多年的庞大灵魂能量无作为,我设计让你杀掉了他。", - {"type": "playSound", "name": "item.ogg"}, + {"type": "playSound", "name": "item.mp3"}, "\t[blackMagician]你没有辜负我的期待,成功战胜了那个废物,现在你体内累积的灵魂能量……也就是魔力,已经达到了能跟魔王匹敌的地步。", - {"type": "playSound", "name": "item.ogg"}, + {"type": "playSound", "name": "item.mp3"}, "\t[hero]……是吗?现在的我能与魔王匹敌?", - {"type": "playSound", "name": "item.ogg"}, + {"type": "playSound", "name": "item.mp3"}, "\t[blackMagician]不止如此,你现在的力量之强就算是统治世界也是绰绰有余!", - {"type": "playSound", "name": "item.ogg"}, + {"type": "playSound", "name": "item.mp3"}, "\t[blackMagician]怎么样?要不要加入我的麾下,跟随我去征战人类世界?", - {"type": "playSound", "name": "item.ogg"}, + {"type": "playSound", "name": "item.mp3"}, "\t[hero]能与魔王匹敌的话,也就是说。", - {"type": "playSound", "name": "item.ogg"}, + {"type": "playSound", "name": "item.mp3"}, "\t[hero]我 现 在 对 付 你 这 种 杂 碎 也 绰 绰 有 余 吧 ?", - {"type": "playSound", "name": "item.ogg"}, + {"type": "playSound", "name": "item.mp3"}, "\t[blackMagician]……什么?!", - {"type": "playSound", "name": "item.ogg"}, + {"type": "playSound", "name": "item.mp3"}, "\t[blackMagician]等一下!别冲动!你先等我把这利害关系理一理——", - {"type": "playSound", "name": "item.ogg"}, + {"type": "playSound", "name": "item.mp3"}, "\t[hero]你给老子闭嘴。", - {"type": "playSound", "name": "item.ogg"}, + {"type": "playSound", "name": "item.mp3"}, "\t[hero]老子什么都不想听。", - {"type": "playSound", "name": "item.ogg"}, + {"type": "playSound", "name": "item.mp3"}, "\t[hero]老子现在想做的事情只有一件——", - {"type": "playSound", "name": "item.ogg"}, + {"type": "playSound", "name": "item.mp3"}, "\t[hero]剁掉你的头,把它放回我双亲的墓前。", {"type": "update"} // 本事件剧情结束,更新地图显伤 ], @@ -175,7 +175,7 @@ main.floors.sample2 = "data": [ "\t[blackMagician]听不进去人话的蠢货,就要用疼痛来管教!", {"type": "changePos", "direction": "up"}, - {"type": "playSound", "name": "item.ogg"}, + {"type": "playSound", "name": "item.mp3"}, "\t[blackMagician]出来吧!禁忌——紫电凶杀阵!", {"type": "show", "loc": [[4,3],[4,6],[8,6],[8,3]], "time": 500}, // 依次显示四个角的法师 {"type": "sleep", "time": 500}, @@ -195,13 +195,13 @@ main.floors.sample2 = {"type": "animate", "name": "yongchang", "loc": [8,6]}, {"type": "animate", "name": "yongchang", "loc": [8,3]}, {"type": "sleep", "time": 200}, - {"type": "playSound", "name": "attack.ogg"}, // 播放攻击音效 + {"type": "playSound", "name": "attack.mp3"}, // 播放攻击音效 {"type": "animate", "name": "thunder", "loc": "hero"}, {"type": "sleep", "time": 200}, "\t[hero]唔……!!(吐血)", - {"type": "playSound", "name": "item.ogg"}, + {"type": "playSound", "name": "item.mp3"}, "\t[blackMagician]我的魔力可是充足的很啊!我会一直折磨到你屈服于我为止!", - {"type": "playSound", "name": "item.ogg"}, + {"type": "playSound", "name": "item.mp3"}, "\t[blackMagician]人类!好好感受吧!当初你们施加于我的痛苦!如今我要百倍奉还!", {"type": "show", "loc": [6,6], "time": 1000}, // 显示妖精 {"type": "sleep", "time": 700}, @@ -232,45 +232,45 @@ main.floors.sample2 = "6,6": { // 妖精 "enable":false, // 初始时禁用状态 "data": [ // 妖精事件 - {"type": "playSound", "name": "item.ogg"}, + {"type": "playSound", "name": "item.mp3"}, "\t[hero]…妖精…小姐……是你吗?", - {"type": "playSound", "name": "item.ogg"}, + {"type": "playSound", "name": "item.mp3"}, "\t[小妖精,fairy]不要绝望,也不要悲伤。", - {"type": "playSound", "name": "item.ogg"}, + {"type": "playSound", "name": "item.mp3"}, "\t[小妖精,fairy]你从来都不是独自一人在前进。", - {"type": "playSound", "name": "item.ogg"}, + {"type": "playSound", "name": "item.mp3"}, "\t[小妖精,fairy]咱一直,一直都在注视着你。", - {"type": "playSound", "name": "item.ogg"}, + {"type": "playSound", "name": "item.mp3"}, "\t[小妖精,fairy]耍小聪明的你、笨笨的你呆呆的你、胆小的你、勇敢的你帅气的你……全部全部都是你。", - {"type": "playSound", "name": "item.ogg"}, + {"type": "playSound", "name": "item.mp3"}, "\t[小妖精,fairy]所以放心吧,无论发生什么,咱都会陪伴在你身边的。", - {"type": "playSound", "name": "item.ogg"}, + {"type": "playSound", "name": "item.mp3"}, "\t[小妖精,fairy]因为你要是离开我的话,立刻就会死掉吧?", - {"type": "playSound", "name": "item.ogg"}, + {"type": "playSound", "name": "item.mp3"}, "\t[hero]…妖精…小姐……其实一直以来,我都非常感激你……", - {"type": "playSound", "name": "item.ogg"}, + {"type": "playSound", "name": "item.mp3"}, "\t[小妖精,fairy]笨蛋!都这种时候了就不要作出像是临终遗言的发言了啊!!", - {"type": "playSound", "name": "item.ogg"}, + {"type": "playSound", "name": "item.mp3"}, "\t[小妖精,fairy]喂!那边穿衣品味差到极点的黑暗大法师,别左顾右盼说的就是你!你应该知道咱的身份吧?\n还不速速退下!", - {"type": "playSound", "name": "item.ogg"}, + {"type": "playSound", "name": "item.mp3"}, "\t[blackMagician]可恶…多管闲事的妖精族…明明只要再让他承受一点疼痛来瓦解他的意志力,我的计划就成功了!", - {"type": "playSound", "name": "item.ogg"}, + {"type": "playSound", "name": "item.mp3"}, "\t[小妖精,fairy]哼哼哼~抱歉哦,这个笨蛋的意志力可不像你想象的那么薄弱哦!", - {"type": "playSound", "name": "item.ogg"}, + {"type": "playSound", "name": "item.mp3"}, "\t[blackMagician]不甘心!我不甘心!妖精公主又如何!\n只要是阻挡我的,不管是谁我都要铲除!", - {"type": "playSound", "name": "item.ogg"}, + {"type": "playSound", "name": "item.mp3"}, "\t[小妖精,fairy]终于露出狐狸尾巴了,其实咱早就看出你有谋反的念头。你的计划就是拉拢这家伙入伙然后推翻魔王对魔塔的统治对吧?", - {"type": "playSound", "name": "item.ogg"}, + {"type": "playSound", "name": "item.mp3"}, "\t[blackMagician]呵呵呵……那个昏庸的魔王,掌握着那么庞大的魔物军队却只知道固守魔塔,而不主动侵略人类世界扩张领土!", - {"type": "playSound", "name": "item.ogg"}, + {"type": "playSound", "name": "item.mp3"}, "\t[blackMagician]我实在是看不过眼,所以我才决定把这个具备稀有勇者体质的家伙培养成新一任魔王!\n来让这个世界的势力重新洗牌!", - {"type": "playSound", "name": "item.ogg"}, + {"type": "playSound", "name": "item.mp3"}, "\t[小妖精,fairy]你觉得一个满脑子想着回家种田的废柴勇者会成为改变世界的魔王?你晃晃脑袋试试,是不是能听到大海的声音?", - {"type": "playSound", "name": "item.ogg"}, + {"type": "playSound", "name": "item.mp3"}, "\t[blackMagician]恼人至极的妖精族!呵呵呵……我干脆一不做二不休,连你也一块收拾了吧!", - {"type": "playSound", "name": "item.ogg"}, + {"type": "playSound", "name": "item.mp3"}, "\t[小妖精,fairy]别小瞧咱!咱好歹也是妖精族里实力数一数二的存在!", - {"type": "playSound", "name": "item.ogg"}, + {"type": "playSound", "name": "item.mp3"}, "\t[blackMagician]只会耍嘴皮子的恼人苍蝇!我倒要看看一块焦炭会不会说话!\n——招雷弹!!", /* {"type": "hide", "loc": [4,3], "time": 150}, // 由于没有动画效果,暂时使用“闪一下”表示 @@ -286,7 +286,7 @@ main.floors.sample2 = {"type": "animate", "name": "yongchang", "loc": [4,6]}, {"type": "animate", "name": "yongchang", "loc": [8,6]}, {"type": "animate", "name": "yongchang", "loc": [8,3]}, - {"type": "playSound", "name": "attack.ogg"}, // 播放攻击音效 + {"type": "playSound", "name": "attack.mp3"}, // 播放攻击音效 /* {"type": "hide", "loc": [6,6], "time": 150}, // 妖精也闪一下表示收到了伤害 {"type": "show", "loc": [6,6], "time": 150}, // 妖精也闪一下表示收到了伤害 @@ -294,38 +294,38 @@ main.floors.sample2 = {"type": "animate", "name": "thunder", "loc": [6,6]}, {"type": "sleep", "time": 500}, // 等待500毫秒 "\t[小妖精,fairy]切,这点伤痛跟他刚才经历的身心地狱相比根本就不算什么。", - {"type": "playSound", "name": "item.ogg"}, + {"type": "playSound", "name": "item.mp3"}, "\t[blackMagician]哼!翅膀都被烧焦了还要嘴硬?你难不成真以为我不会对你动真格?", - {"type": "playSound", "name": "item.ogg"}, + {"type": "playSound", "name": "item.mp3"}, "\t[hero]……你这混蛋!给我离她远点!!", - {"type": "playSound", "name": "item.ogg"}, + {"type": "playSound", "name": "item.mp3"}, "\t[小妖精,fairy]!…你现在受了很严重的致命伤,乱动什么?\n乖。别怕,这里有咱顶着!", - {"type": "playSound", "name": "item.ogg"}, + {"type": "playSound", "name": "item.mp3"}, "\t[小妖精,fairy]对了,咱再问你一遍,你是很珍惜自己性命的对吧?", - {"type": "playSound", "name": "item.ogg"}, + {"type": "playSound", "name": "item.mp3"}, "\t[hero]!…等等…妖精小姐,你不会是……?", - {"type": "playSound", "name": "item.ogg"}, + {"type": "playSound", "name": "item.mp3"}, "\t[小妖精,fairy]喂,黑暗大法师,你作为魔塔里最博学多识的蠢货,应该对咱妖精族的特殊能力再清楚不过吧?", - {"type": "playSound", "name": "item.ogg"}, + {"type": "playSound", "name": "item.mp3"}, "\t[blackMagician]什么?!难不成你是想!!不可能……\n就为了一个渺小的人类,不可理喻!!", - {"type": "playSound", "name": "item.ogg"}, + {"type": "playSound", "name": "item.mp3"}, "\t[小妖精,fairy]哼哼哼!你害怕的表情可真美味!", - {"type": "playSound", "name": "item.ogg"}, + {"type": "playSound", "name": "item.mp3"}, "\t[小妖精,fairy]不过比起这个,咱更期待你吃到“妖精自灭冲击”之后的死状哦!~", - {"type": "playSound", "name": "item.ogg"}, + {"type": "playSound", "name": "item.mp3"}, "\t[blackMagician]不!!不应该是这样的!我完美的计划竟然会被一只小小的妖精破坏!", - {"type": "playSound", "name": "item.ogg"}, + {"type": "playSound", "name": "item.mp3"}, "\t[hero]不要!……千万不要!……为了我这种人……唔!", - {"type": "playSound", "name": "item.ogg"}, + {"type": "playSound", "name": "item.mp3"}, "\t[小妖精,fairy]笨蛋,动都动不了了就不要强撑着站起来了啊。", - {"type": "playSound", "name": "item.ogg"}, + {"type": "playSound", "name": "item.mp3"}, "\t[小妖精,fairy]真是的,都到最后一刻了,你这家伙好歹也让咱省点心吧。", - {"type": "playSound", "name": "item.ogg"}, + {"type": "playSound", "name": "item.mp3"}, "\t[小妖精,fairy]那么,再见了……我的勇者大人。", {"type": "move", "time": 700, "steps": [ // 向上移动三个,撞上黑暗大大法师;本事件的hide会自动被调用 {"direction": "up", "value": 3} ]}, - {"type": "playSound", "name": "attack.ogg"}, // 播放攻击音效 + {"type": "playSound", "name": "attack.mp3"}, // 播放攻击音效 {"type": "sleep", "time": 200}, "\t[blackMagician]不可能!!!!!", {"type": "hide", "loc": [6,3]}, // 法师消失 @@ -336,24 +336,24 @@ main.floors.sample2 = {"type": "changeFloor", "floorId": "sample2", "loc": [6,6], "direction": "up", "time": 1000}, // 更换勇士地点,合计1秒 {"type": "show", "loc": [6,5]}, // 显示黄宝石 {"type": "sleep", "time": 200}, // 等待200毫秒 - {"type": "playSound", "name": "item.ogg"}, + {"type": "playSound", "name": "item.mp3"}, {"type": "sleep", "time": 200}, // 等待200毫秒 "\t[hero]…妖精…小姐……", - {"type": "playSound", "name": "item.ogg"}, + {"type": "playSound", "name": "item.mp3"}, "\t[hero]……妖精小姐!", - {"type": "playSound", "name": "item.ogg"}, + {"type": "playSound", "name": "item.mp3"}, "\t[hero]是梦吗?……不对,为什么我在流泪?", - {"type": "playSound", "name": "item.ogg"}, + {"type": "playSound", "name": "item.mp3"}, "\t[hero]这颗漂亮的宝石是……?", - {"type": "playSound", "name": "item.ogg"}, + {"type": "playSound", "name": "item.mp3"}, "\t[hero]我全都想起来了……妖精小姐为了我……\n牺牲了自己的性命。", - {"type": "playSound", "name": "item.ogg"}, + {"type": "playSound", "name": "item.mp3"}, "\t[hero]在这颗宝石上,我能感受到你的温度……\n熟悉而又令人安心,这就是你最后留给我的东西吗……", - {"type": "playSound", "name": "item.ogg"}, + {"type": "playSound", "name": "item.mp3"}, "\t[hero]好温暖……", {"type": "setValue", "name": "item:yellowJewel", "value": "1"}, // 获得1个黄宝石 {"type": "hide", "loc": [6,5]}, // 隐藏黄宝石 - {"type": "playSound", "name": "item.ogg"}, + {"type": "playSound", "name": "item.mp3"}, "\t[hero]……", {"type": "openDoor", "loc": [6,2]}, // 开门 {"type": "openDoor", "loc": [6,11]} diff --git a/project/sounds/attack.mp3 b/project/sounds/attack.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..259b759e869bcfd8443931883d4ecaf29922508f GIT binary patch literal 6000 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 diff --git a/project/sounds/item.mp3 b/project/sounds/item.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..5d82178082a34de8d1be5848f5e5fefc857e9797 GIT binary patch literal 8508 zcmd^^hf@<@yMPl25FkJZ5JD9~hXA38^bm@afOKhUsM4h?DiV6{Ei|R~8al#HdKZxn zBBBT)*eQx4xp3!x^UXJN|A0GlpP8LK@9fU(*>|2j?>lGpwdE)Q7YJCGo9mpPna&TK zL$IrYqLjRhlnfeuaq)j39~AfhYYfo$alLaMT-?tI0Pr&bU@#c>IYQ@1pL69L>^X*p zhL-2tJjd-EzjGd(6BQMea!&3!CFj(h({@hZIb&mEv*)axvvtnrbB@m;lgSqkKcAe_ z#pJGB1ph+tUju%o$}BFme?|XS&gY36258o$0D#x}fv>FnI+RMC19{8#i@k7ib=`u3%iV9=vNC35@`}#!*lK+u~pJ&;cem5CE!gvDOcy zBUyp=ivDwaW$!2Fc#un~lKnbCG~qh}>=gmu2EPXF@=w+`$Skfy34viD?-;d}oI>9I z`BEbQmw1-?Udi#3H#v7b?CqZ*F;sx^eS>oh5f1uXoo1Pcf=;Gs^zk$H$&8Fq#O`gq_vCDZ9pKLA3WR#m-Ecn5=d5TF1|6cvCn3IvtDl5Y;J zU}oOnLl8tktZL0-_-Z`)pmbOW*ZMn0I=`PnKf`1<nhkamGiS1eGD9HM>wo8;oCRbV&3hS43B(pVbHOXc8w@6jDu!l2MnStO{^~Q z+~>f;9O5TV)gN-p+ zLP+DQmBNd^Kgq8qs@|E3<~7Ai?5hQw8}e&QOE}E!glYSF*S2E{A)9(_*}=HneI$0v zMB7ZkHiv^pph1W^f#&viMb``EE@9}Gn#We|QCh+$c}TxexDtb1D4!B0mN|j5ujlsO z3Z2mJ4#g+p*r>;HqtVQ)P10ZI+@cEnliO`y(;=gYp%Ru&?0Vb&J+8WgtU28J9o!_{ zM_sqIvcIy53rT)e6>@)Y)38X81OA*^4pGiz8la@_kR>?ANj3dXszup&R(o}VCCJ&f zZ(Z()wW-c4uKK=Cw-`5H2i7}Jxg?cBWjSqYDyPQ`*rm6Gc;hoI{aAF%(N6j!N&V~9 zscIj+VKK$vYQ1c+u4t*PYqWWz7M>r^9BkSL;ck^Nv3fIZ!@UsK*$J);%4brGV(cpu z?o*|V*0pHg%kN~XV9Mh_ft(x6YvaBS{Nd=7u=5K{p z@|`wUkXi&_ow92_@#^nVdY3PhGcf(rNCeDW+D**YX8HD}#v??`{XxGr7zj$JtjzoF z+eM8Z7)Hy(WeFI!Btc?K<_)0l1hGue4^u)c$vw60i~<2lbT=~w{}A!vhG;z`n}IC` zz%K-cj0wr417q@eDuafa9nd0J`mDQgn8VrJIm z`|Xpct}Vu^jX&xf0kv?)THdO0+AW)`%|V5}k8|x`w5FmtT9|Bm4;OgYvg$)=4<7P^ z^*EWeTKyPpl=-Y66l!Oru-8>kC^~O6^3B-A-ZMflkv+l6Aefj>fz$)Yzt+C3FPN=K zQ?&thp`d;4mpOD;uk*X)LOE%JSNVnKnY(ATIN4jU<2dEHn#9L3YPP(67?U1to}Wfp z&iK9;3%o8+eQQp*<;YvXWlMVRFrl>ecP1aPV*(n}52M0GRl8)@&Y92(y(rLL9yoB^ z%U{c+jvE}#;9=qN@`~Y!#}fIfvn1on#nMpl%Qj~3T0uf^8%&N&L}|HrGJ~}Q)1`Sa zYqN!1eU|4FE)D!rh3i&*SxIY)lN$ZtUCoL`6-RQQI;i))%r6G>Uf?0twaQVntdlwlyPpkAf z|7D3zDmE9{6y;aUakE+8gm=vbH;hCaT80JJ9V97ugP+t|Pen}K=HClODu;)$D20+n z1LJ3Fvi*NIF3*!n7iC@h)GSwXrLNalY<8P>GRdx(x#j8vm%a;PU&$KvHh2-G$CS-D zR<*Y8?ctZLyd-InGyM3+Y@Oi;rMpU&?iNR5;%lwNJ{1S+XD&wdUVrT$-6*WPx8=HJ znPO%abI0Yx+-gSDCHiU#?8K9k*SN-3Op?Vs9E#RO?Z-{Dr|V?>u;l%qJXS+Oy?f}@ z-XI42yp*n*-B$sn22%e(-rrTC2;XASv6OLa6#>u@BSDyPVG6p4N?vM!xx8bmU=@0^ z#fc9+5FbrL$u2(Njii$4WQcs-9b#nM}Idt3|6svWBG<$m^rBi-P zJjHF{J1*qju(IO*2>J&e)2?MPcwg<+u5EdvOf)?*A}J$)0MinC^2zigF8PU}j?2bV zE^+{yxT-Ih5~fSRa@E<1_>16PaS{QeMhX&nsNK@iV`5zqlo3E-;T!n_vRj8uB`0AH24XJ5uk0*k{p<@|4l`vSl^^a=IM(RjHHWuUt6 zXQKD}#|s{goQYkfXn-CyI*u28<-5A?57?z7ENB1|An8}K8Vo%Q`Ax7LynYo+;BMqe zw(DllAvM0|H@7tB69u$(eCbXXj?7WI`=cVpYwfkv0f`ZKLbko}dT#Pbjp5+$Th6)& ztx?k`I>pJ%9$|~bdex2=Yk;%z=%tvW^ z-Y3?bD*RK@r;_c%jc6!k^21ur*eHxrETE1%MdxEs-=tyf-f`pQ+M&-B%jC0$^|MFc zNAo4mTde@ig~{NTv`xhjHb7KA$OR&Zu^4!GISGXspTGzv@nWF^QAnHuR&R)p9Rld5 zy+NcT@Dsp1j4>@2$|)GK(#cc&biWh%BW8kbI+ zUvS%ls?Y#lnWl2tVjP;A%9@6kCe3{A*3*=hib{+a44c<3trBKC?kjvHL%f2#STOt4$;lNBN(@eo1 z_`1Llrz0)607{9^T9CCjYqHP@xm#={W-MoK`=ivzmb4uv+q?fk@e_QPtlNiwLx z4aAL3Z}6_$o)+;@0CU{%dmxxF+dtGc$>D#CBis_a#s6j=1n7bxqgwSWE!2B#b?OOk{hplyYkBvo!be}Wn*#T}RzA+kQ5ZJ!d8 zbcNED-Klvll=D?iY)tN0y2Lw__cnzkfNajY@>$5%&ED*msHgTw?)(QQ)o(kEKOuj* z+6{TJNcd3)6_S}>RoA9ZxbVTHH}?q#7B{Lt4F=62i^@-RXCL#>oM^*hjsnd#KD<3e zJA^~nl49P&6@NZ_8c;PfmWM9Y?rBv_t@=gge13HA&YNKn?axJ8Fs*%R@N4=o%U^JiYh8?7}U2ANXaZcvOY2q2^Lq!YGP`>vUq8{?9h0P5#Qst2@F0EppL ztmzs#<-t&pi0lZY*@;n*PSEXOFF8U##VHb-MQ3znp+!=YA*zFdo|0{JH%#s9P))i7F&kyyKp`nP|-hbz8Uw zirA`ik(6)b${jl1sG6wjs$24~LDhanFFlc7`rZ3RF`aj_B4eX%SLsX22$_s1s*^r- z*f%UcGF$kOu;xj0vI~}}iV=RB;K+6AYNW(hR4@|lmXdp!e9zAv)L zID0H@Z~(NZP1n9Q{ynKuddxu`QFT5;1Z12co^Z_W~b$y62b@ zU3f>dvc08C`b_0nqC!~6k5m^KAt<|Y&D_fwLk*s1rlNW%v8=TZ2VL$zelba;<@S>6 z9>1$)Ax@i=ocw-jvgqS#*r|*GXv)`@th=Mv*tIOuCyu*~7}bFzHv$`QZUJ!JgVD{n z(_`B>!`olqvP4XKIm`;}il_20?L zL2t(uPh8iUaKua_vr=(X;!)D~o=POPl>3@o+3)y^`ChfQz4z_U+?S@+m8qV+mv%;V ztVZ#Zs0-y%)XbHmL~Q#32V5>+*2RYOeo@e7UF&KQwm5CoH9nMg`F#1S`rj7*Se2^Z z_DgSb<`hGVMw~5{zYQ@MRCnK8`tqthx?u~_`^;lnvHbY@_o)aM-nrIjPqPzoY@;G&Qc4ZSB~i{X56!!igd}) z&D}UgS=bDp^Y``Hn73>evO=rb~$TB_axnw32ibbE#_#U5F_mfyX{e5KW}0|KD*dGVXK z8qthgArSJKg(Zn#mC^vOqTVWd_bONa?c`W_?IgYBzQh;(E!8rwI~MW^+Fn{wqyP4M z>pv8OqguF@;^x&zr&x`A+DH5iIz z$-Yp|)n;p>xGZlLSZ(2+hjn5`l)YVL*`y;v2%eN(I6;(>M#d($0TeFZ!r?!y7Zr;a zX1?d(9B}oUZyPnd#!f#ouSFL_SuD!PcpW=HpU^PPT-<#?u@m^nO|nN|NjGfv`6Z|YOoS#~Y5 zT%TL@o)}+`Z!*8aST8j#P96GY=_x#EQqnZoQf<=R(r&TF-M8_(xslOI&7+x z{Nuz(=&9n5dm{ik*dAv+DNDx~vkBHuvOAKpiqEytFKrez@t8z%%Zb;vuSI1mo70|U zT_`7^POqLtv)T_B!qqG}Jg4Izu-Xbm+av^owoTTH8qc(5=M9Lyah>w3^E({3CE!Cn z|CriX=l!Y9H~g$=L)TYnwPW8f@vyxDLYp~$>Em$#jij(QTTX)@vN(pckN5Er5AUDhvzd+PDdrmZ7R*Oq|G|(R? zcw9;_H!`@DXT)Y}d($$a^i|Hnizh|$wP$;_Gt={t978J19NtpWeQb8GM(dYC?r?S; zoOo-+O4U9jb&3Pj&1!2$Fae@^09t@yROA#eZUgTM^o>z%u4ir6jKz*p%~8i85FP+C zs*GOLwo|Q@B~7oC5ar;ES^L!@8zD(II!V~wn)jXg7Pk4CO1E^;QEDPd|)Z zB<`ka-C!W~tCv~)-eNZ{D^66X@2&w3e`{GtyY^ZQ29_GU&=ts|3#>IR9JhSp>N3fB zeDuxLb*4-z%V2vAcEgsMrGN$gt;$lcLisAaSzit^hYQ>3B}H}8p2ODKMN&_ZsEEmF z6!2M{VOt4xdjo%c_q%7<{lVm(PSG--^JaVh&*fU*R2?~)ehTYu)0)$!@rE!m`|L$9~-qOyv&D%47|}wm$59bpndxK4(-La znyZqit_|9M>A%f-@7cSDVV?TRSy?$Ofp%BvN6W?K`GU)q6Meh6MkdzHyTW)X#U8n| z`}|gL=w1T0zTB95R@)>&e(|?)%)ic;5C#jLQ;jplETNrjd@E zl#-H^!o{}w{|1nA(4PYh2DO5Iw8_=ODPbl&=x^L|ygW&`3^ca>rHsjzho~hQ=)4YL zkrdV}agxZQ!H(X6=B?j%lxvB?xx#?;X#@r#A!Q0Jf^1#Jm#f9_hU$HraEE^!4E=$z zT-DX!D^Q|THTOTSVkr5LD`*ZQ*8(O(?*KBnsm6rTy?48=!@a?2y42(_=x-?AUW_#Q z;_UkvZ-BXBOry7BN`0Mj^K>ci#&!SuVS*t#^&&MF%C#!)`HOP?RKD`y_K{srL(a3n zH{`n~r=PvLZ@$>umqg_a;`Qb%IUrJz29vukk75t2oc@@G{yQBPKO+7UFo3y8H{qMP zEASqjFr`~|j4H8r6o}x80iqd72p&Wj#y6GH!$BKBhmR)IFPIYvfHEM2avq3a40_B! zVbNa(9PekQ1ou|}y83wl{T9^Wo1De^C)%1@Va{{nyar7$0%KmgN|K+n^RKrI%_B5Y z;RHB9jDP{W4cDc&NqofX5RL=T5)eRaI0<-+V}H(aNClyfQ%Q*9xq4;;c`p(5^cDGv zSRj2h`;()kmPth+;AN&3GCFwxkA@7~lhwow$w&j0fnRa%wo$MEN9-L3 z@h45uRCR4_htTEab|XVWrE61}8jt+fm!;Oebf!G4DsNJVxqkNi^Kr%L337*J+0FCq z1G+^?f6oi$&J60=egVj;s;WX9E|NL(ABrY#_8m-3jga7Wcy_iUr+NbR@o5q@yaG%ziC=bqN{r z{kn;%sWjGTwS3Z|YrNR`fcmrDQuVG@Z#v9|oC4<%COPy>m z-+;x7P-WD&EWp@*pw{m$)_GaZyMvwQC8L$V<$vk}%nRyQM;w z7s}DXog#iYm5oNqMP^1j8k@Z1=gTo}2-g$S=Fnv?i^gu+WzewDP8w@xQKfGJ{nGfy zTfA9Jydr}T(9MOkOdXe_60yWgv+niTMG9{4coKEFmH{D|rA+*8+XFa+!a_=)L`S*< zt!Ve8^>$0~pBXIDvhmb)I#x}5|Gta#&OH0MT~p=}twv%dO7#0J8SXK&?)`bNpLDHV zvJeZsgz0pUk`E*`aE){;XLeyPNOd%@F>gYjR!R!WQDCXu@k-yIPWt9>(Z^Hc$8rjp z*-_ui+hx>LZHU%j8Glp5dyyZh-Fp3Z%XIi$E|Z?O`(#ZDoUC7;ST=Fs9=}lTj{%CU z7xiTW6d>o(;kpQs%le4pFlxo`#C6M>>K#P?XiG;)O%q94#2s~8%ZhgVoWDj|#ebK} z^CHPP=a-yUAaa!nRgjkAI@jNiLe2i*!OcO69UL>RrM1zP-!OeI6wY{+?&Cwm$ReGF z5i2H-Ud$Ssz3cy5ekY~KT11Dg;pLh$C@wgMwVJY6I9gIv=_=n0znr4%c&vs==QUS^ zpR~NUaf7)O@%8yues=Yq$hZxyTB^Vieon8I^fKS3uazpnnm+SeA8ieV7Hm$jzC}so z`r~V~4fCH?Z6B4VyEz;?R~1~>7Y_0aFTY>QQFduUevXGHdak=+tv!LOYDUjPf2#|! zJFgGRP%&V^v>=U{4+C;D)-$e?#IxHv4v%n8txXkbEv7w$CgnFwOT+~(l>4Qx%BBa| z;T6mZrEihAoORu*vEUWgCDLFl+p+sCI%Uqg0@Il%Bo%W`w>{&=+-0v6%jM(9f3I@? KSyca@ME?bSvfQQs literal 0 HcmV?d00001 diff --git a/project/sounds/item.ogg b/project/sounds/item.ogg deleted file mode 100644 index 469399d524ebefa6937776e0f6d05904e3253e4b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11126 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 PVt^U|Uu^-vO~U^L@XQvb diff --git a/project/sounds/zone.mp3 b/project/sounds/zone.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..eccf53c8401aee2856cd43f78bf4159591c00ad3 GIT binary patch literal 11956 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 Date: Wed, 16 May 2018 13:10:13 +0800 Subject: [PATCH 14/41] Line Wrap in item --- libs/ui.js | 15 +++++++++++++-- 更新说明.txt | 4 ++-- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/libs/ui.js b/libs/ui.js index 910a8a80..ef9adc03 100644 --- a/libs/ui.js +++ b/libs/ui.js @@ -1513,8 +1513,19 @@ ui.prototype.drawToolbox = function(index) { if (core.isset(selectId)) { var item=core.material.items[selectId]; core.fillText('ui', item.name, 10, 32, '#FFD700', "bold 20px Verdana") - core.fillText('ui', item.text||"该道具暂无描述。", 10, 62, '#FFFFFF', '17px Verdana'); - core.fillText('ui', '<继续点击该道具即可进行使用>', 10, 89, '#CCCCCC', '14px Verdana'); + + var text = item.text||"该道具暂无描述。"; + var lines = core.splitLines('ui', text, 406, '17px Verdana'); + + core.fillText('ui', lines[0], 10, 62, '#FFFFFF', '17px Verdana'); + + if (lines.length==1) { + core.fillText('ui', '<继续点击该道具即可进行使用>', 10, 89, '#CCCCCC', '14px Verdana'); + } + else { + var leftText = text.substring(lines[0].length); + core.fillText('ui', leftText, 10, 89, '#FFFFFF', '17px Verdana'); + } } core.canvas.ui.textAlign = 'right'; diff --git a/更新说明.txt b/更新说明.txt index d38375a7..db473dce 100644 --- a/更新说明.txt +++ b/更新说明.txt @@ -8,8 +8,8 @@ 支持 status:x 获得当前坐标 √ 最大存档个数提到main处理 √ 新建地图可以保留楼层属性 √ -增添自定义装备的教程(个性化-自定义装备) √ -重写教程的快速上手 √ +道具描述过长时可以自动换行 √ +重写大部分教程,新增大量拓展描述 √ 修复转向触发事件的朝向Bug √ 修复flyRange的顺序问题 √ 部分细节优化 √ From 7d4f8f41afde6ed74b7b2c8512cd051c61dff382 Mon Sep 17 00:00:00 2001 From: oc Date: Wed, 16 May 2018 13:33:29 +0800 Subject: [PATCH 15/41] autosave while events --- libs/control.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/libs/control.js b/libs/control.js index 44fe2c87..7c15fb88 100644 --- a/libs/control.js +++ b/libs/control.js @@ -1810,6 +1810,8 @@ control.prototype.openSettings = function (need) { ////// 自动存档 ////// control.prototype.autosave = function (removeLast) { + if (core.status.event.id!=null) + return; var x=null; if (removeLast) x=core.status.route.pop(); From b71442b0997a65a56808ff722369f2adaa608343 Mon Sep 17 00:00:00 2001 From: oc Date: Thu, 17 May 2018 23:37:52 +0800 Subject: [PATCH 16/41] drawmap --- libs/events.js | 42 +++++++++++++++++++----------------------- libs/maps.js | 11 +++++------ project/items.js | 14 +++++++------- 更新说明.txt | 2 ++ 4 files changed, 33 insertions(+), 36 deletions(-) diff --git a/libs/events.js b/libs/events.js index 0027129c..a0018f7b 100644 --- a/libs/events.js +++ b/libs/events.js @@ -407,8 +407,6 @@ events.prototype.doAction = function() { } if (floorId==core.status.floorId) { core.drawMap(floorId); - core.drawHero(); - core.updateStatusBar(); } } this.doAction(); @@ -1094,29 +1092,27 @@ events.prototype.changeFloor = function (floorId, stair, heroLoc, time, callback }) } core.drawMap(floorId, function () { - setTimeout(function() { - if (core.isset(heroLoc.direction)) - core.setHeroLoc('direction', heroLoc.direction); - core.setHeroLoc('x', heroLoc.x); - core.setHeroLoc('y', heroLoc.y); - core.drawHero(); - core.updateStatusBar(); + if (core.isset(heroLoc.direction)) + core.setHeroLoc('direction', heroLoc.direction); + core.setHeroLoc('x', heroLoc.x); + core.setHeroLoc('y', heroLoc.y); + core.clearMap('hero', 0, 0, 416, 416); + core.drawHero(); - var changed = function () { - core.unLockControl(); - core.status.replay.animate=false; - core.events.afterChangeFloor(floorId); - if (core.isset(callback)) callback(); - } - if (displayAnimate) { - core.hide(core.dom.floorMsgGroup, time/4, function () { - changed(); - }); - } - else { + var changed = function () { + core.unLockControl(); + core.status.replay.animate=false; + core.events.afterChangeFloor(floorId); + if (core.isset(callback)) callback(); + } + if (displayAnimate) { + core.hide(core.dom.floorMsgGroup, time/4, function () { changed(); - } - }, 25) + }); + } + else { + changed(); + } }); } core.playSound('floor.mp3'); diff --git a/libs/maps.js b/libs/maps.js index 39a0e306..00ca6627 100644 --- a/libs/maps.js +++ b/libs/maps.js @@ -389,8 +389,10 @@ maps.prototype.drawMap = function (mapName, callback) { } } else { drawEvent(); + core.setGlobalAnimate(core.values.animateSpeed); + core.drawHero(); + core.updateStatusBar(); } - core.setGlobalAnimate(core.values.animateSpeed); if (core.isset(callback)) callback(); } @@ -398,7 +400,7 @@ maps.prototype.drawMap = function (mapName, callback) { ////// 绘制Autotile ////// maps.prototype.drawAutotile = function(ctx, mapArr, block, size, left, top){ var indexArrs = [ //16种组合的图块索引数组; // 将autotile分割成48块16*16的小块; 数组索引即对应各个小块 - // +----+----+----+----+----+----+ + // +----+----+----+----+----+----+ [10, 9, 4, 3 ], //0 bin:0000 | 1 | 2 | 3 | 4 | 5 | 6 | [10, 9, 4, 13], //1 bin:0001 +----+----+----+----+----+----+ [10, 9, 18, 3 ], //2 bin:0010 | 7 | 8 | 9 | 10 | 11 | 12 | @@ -899,8 +901,5 @@ maps.prototype.drawAnimate = function (name, x, y, callback) { maps.prototype.resetMap = function() { var floorId = core.status.floorId; core.status.maps[floorId] = this.loadFloor(floorId); - this.drawMap(floorId, function() { - core.drawHero(); - core.updateStatusBar(); - }) + this.drawMap(floorId) } \ No newline at end of file diff --git a/project/items.js b/project/items.js index 475f59cb..94a57ff9 100644 --- a/project/items.js +++ b/project/items.js @@ -278,13 +278,13 @@ items_296f5d02_12fd_4166_a7c1_b5e830c9ee3a = "useItemEffect": { "book": "core.ui.drawBook(0);", "fly": "core.ui.drawFly(core.status.hero.flyRange.indexOf(core.status.floorId));", - "earthquake": "core.removeBlockByIds(core.status.floorId, core.status.event.data);\ncore.drawMap(core.status.floorId, function () {\n core.drawHero();\n core.updateFg();\n core.drawTip(core.material.items[itemId].name + '使用成功');\n});", - "pickaxe": "core.removeBlockByIds(core.status.floorId, core.status.event.data);\ncore.drawMap(core.status.floorId, function () {\n core.drawHero();\n core.updateFg();\n core.drawTip(core.material.items[itemId].name + '使用成功');\n});", - "icePickaxe": "core.removeBlockByIds(core.status.floorId, core.status.event.data);\ncore.drawMap(core.status.floorId, function () {\n core.drawHero(), 'stop');\n core.updateFg();\n core.drawTip(core.material.items[itemId].name + '使用成功');\n});", - "snow": "core.removeBlockByIds(core.status.floorId, core.status.event.data);\ncore.drawMap(core.status.floorId, function () {\n core.drawHero();\n core.updateFg();\n core.drawTip(core.material.items[itemId].name + '使用成功');\n});", - "bigKey": "core.removeBlockByIds(core.status.floorId, core.status.event.data);\ncore.drawMap(core.status.floorId, function () {\n core.drawHero();\n core.updateFg();\n core.drawTip(core.material.items[itemId].name + '使用成功');\n});", - "bomb": "core.removeBlockByIds(core.status.floorId, core.status.event.data);\ncore.drawMap(core.status.floorId, function () {\n core.drawHero();\n core.updateFg();\n core.drawTip(core.material.items[itemId].name + '使用成功');\n core.events.afterUseBomb();\n});", - "hammer": "core.removeBlockByIds(core.status.floorId, core.status.event.data);\ncore.drawMap(core.status.floorId, function () {\n core.drawHero();\n core.updateFg();\n core.drawTip(core.material.items[itemId].name + '使用成功');\n core.events.afterUseBomb();\n});", + "earthquake": "core.removeBlockByIds(core.status.floorId, core.status.event.data);\ncore.drawMap(core.status.floorId, function () {\n core.drawTip(core.material.items[itemId].name + '使用成功');\n});", + "pickaxe": "core.removeBlockByIds(core.status.floorId, core.status.event.data);\ncore.drawMap(core.status.floorId, function () {\n core.drawTip(core.material.items[itemId].name + '使用成功');\n});", + "icePickaxe": "core.removeBlockByIds(core.status.floorId, core.status.event.data);\ncore.drawMap(core.status.floorId, function () {\n core.drawTip(core.material.items[itemId].name + '使用成功');\n});", + "snow": "core.removeBlockByIds(core.status.floorId, core.status.event.data);\ncore.drawMap(core.status.floorId, function () {\n core.drawTip(core.material.items[itemId].name + '使用成功');\n});", + "bigKey": "core.removeBlockByIds(core.status.floorId, core.status.event.data);\ncore.drawMap(core.status.floorId, function () {\n core.drawTip(core.material.items[itemId].name + '使用成功');\n});", + "bomb": "core.removeBlockByIds(core.status.floorId, core.status.event.data);\ncore.drawMap(core.status.floorId, function () {\n core.drawTip(core.material.items[itemId].name + '使用成功');\n core.events.afterUseBomb();\n});", + "hammer": "core.removeBlockByIds(core.status.floorId, core.status.event.data);\ncore.drawMap(core.status.floorId, function () {\n core.drawTip(core.material.items[itemId].name + '使用成功');\n core.events.afterUseBomb();\n});", "centerFly": "core.clearMap('hero', 0, 0, 416, 416);\ncore.setHeroLoc('x', core.status.event.data.x);\ncore.setHeroLoc('y', core.status.event.data.y);\ncore.drawHero();\ncore.drawTip(core.material.items[itemId].name + '使用成功');", "upFly": "var loc = {'direction': core.status.hero.loc.direction, 'x': core.status.event.data.x, 'y': core.status.event.data.y};\ncore.changeFloor(core.status.event.data.id, null, loc, null, function (){\n core.drawTip(core.material.items[itemId].name + '使用成功');\n core.replay();\n});", "downFly": "var loc = {'direction': core.status.hero.loc.direction, 'x': core.status.event.data.x, 'y': core.status.event.data.y};\ncore.changeFloor(core.status.event.data.id, null, loc, null, function (){\n core.drawTip(core.material.items[itemId].name + '使用成功');\n core.replay();\n});", diff --git a/更新说明.txt b/更新说明.txt index db473dce..604ffcee 100644 --- a/更新说明.txt +++ b/更新说明.txt @@ -9,7 +9,9 @@ 最大存档个数提到main处理 √ 新建地图可以保留楼层属性 √ 道具描述过长时可以自动换行 √ +除Autotile外均可自动注册 重写大部分教程,新增大量拓展描述 √ +便捷PS工具修复宽大于高时的闪退问题 修复转向触发事件的朝向Bug √ 修复flyRange的顺序问题 √ 部分细节优化 √ From 1ec381bbdc86a4502cb236b428f1f608714bbfb1 Mon Sep 17 00:00:00 2001 From: oc Date: Fri, 18 May 2018 00:09:07 +0800 Subject: [PATCH 17/41] Auto register --- _server/editor_file.js | 41 ++++++++++++++++++++++++++++++------ libs/core.js | 4 ++-- libs/maps.js | 13 +++++++++--- project/icons.js | 8 +++---- project/images/animates.png | Bin 25215 -> 25462 bytes project/images/terrains.png | Bin 28884 -> 29309 bytes 6 files changed, 50 insertions(+), 16 deletions(-) diff --git a/_server/editor_file.js b/_server/editor_file.js index ae7dac9e..d87551a4 100644 --- a/_server/editor_file.js +++ b/_server/editor_file.js @@ -161,11 +161,25 @@ editor_file = function (editor, callback) { var image = info.images; + if (image=='autotile') { + callback('不能对自动元件进行自动注册!'); + return; + } + /* if (image!='items' && image.indexOf('enemy')!=0) { callback('只有怪物和道具才能自动注册!'); return; } - var c=image=='items'?'I':'M'; + */ + var c=image.toUpperCase().charAt(0); + + // terrains id + var terrainsId = []; + Object.keys(core.material.icons.terrains).forEach(function (id) { + terrainsId[core.material.icons.terrains[id]]=id; + }) + //console.log(terrainsId); + //return; var allIds = []; editor.ids.forEach(function (v) { @@ -180,17 +194,25 @@ editor_file = function (editor, callback) { for (var y=0; y0) + saveSetting('icons', iconActions, tempcallback); + else tempcallback(null); + saveSetting('maps', mapActions, tempcallback); + if (image=='items') saveSetting('items', templateActions, tempcallback); - else + else if (image.indexOf('enemy')==0) saveSetting('enemys', templateActions, tempcallback); + else tempcallback(null); } editor_file.changeIdAndIdnum = function (id, idnum, info, callback) { diff --git a/libs/core.js b/libs/core.js index 78d0a7fa..888725f0 100644 --- a/libs/core.js +++ b/libs/core.js @@ -889,8 +889,8 @@ core.prototype.debug = function() { } ////// 重置当前地图 ////// -core.prototype.resetMap = function() { - core.maps.resetMap(); +core.prototype.resetMap = function(floorId) { + core.maps.resetMap(floorId); } ////// 开始播放 ////// diff --git a/libs/maps.js b/libs/maps.js index 00ca6627..d631cf43 100644 --- a/libs/maps.js +++ b/libs/maps.js @@ -898,8 +898,15 @@ maps.prototype.drawAnimate = function (name, x, y, callback) { }, 50); } -maps.prototype.resetMap = function() { - var floorId = core.status.floorId; +maps.prototype.resetMap = function(floorId) { + var floorId = floorId||core.status.floorId; core.status.maps[floorId] = this.loadFloor(floorId); - this.drawMap(floorId) + if (floorId==core.status.floorId) { + this.drawMap(floorId, function () { + core.drawTip("地图重置成功"); + }) + } + else { + core.drawTip(floorId+"地图重置成功"); + } } \ No newline at end of file diff --git a/project/icons.js b/project/icons.js index 1b6208fe..b7461654 100644 --- a/project/icons.js +++ b/project/icons.js @@ -27,8 +27,8 @@ icons_4665ee12_3a1f_44a4_bea3_0fccba634dc1 = 'white': 17, 'ground6': 18, 'soil': 19, - 'star': 20, - 'lava': 21, + 'ground7': 20, + 'ground8': 21, 'ice': 22, 'downFloor': 23, 'upFloor': 24, @@ -70,9 +70,9 @@ icons_4665ee12_3a1f_44a4_bea3_0fccba634dc1 = 'lavaDoor': 13, 'starDoor': 14, 'starPortal': 15, - //'exclamation': 16, + 'fire': 16, 'portal': 17, - //'switch': 18, + 'switch': 18, 'lavaNet': 19, 'poisonNet': 20, 'weakNet': 21, diff --git a/project/images/animates.png b/project/images/animates.png index 0bfad0dfdf4115abfc413d69aead79f1f958b122..f62452858ecfc7111b8c21f8a655357a2dd1d5f9 100644 GIT binary patch delta 19796 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 Tl&sq5;T~}xojK8PoSXL_<>u87 delta 19556 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 diff --git a/project/images/terrains.png b/project/images/terrains.png index 246de0cb4b60ff0a674d02e7e4229d7702c2c311..55239f66d6997cf2a8d17956db36f449325c975a 100644 GIT binary patch delta 28237 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 z zmE-aG`!?SgC93ThwI`fH0|xPS-w%7oRN!CXx7c$Z(C1oZ0N}Wk(%*kFI=Jny=Axag z2T!j3G-Qb~?sZN!T&n8Af=pYTY6cgRqQDfQS55EtJ=eCoCTgFn3A)Agfq#=r%&IC# zTOf+vsNrUSJ|R5$m+(#8MA<)Qz@XHUiO1?pM#`BrIdY=1iEHxoaFP+%-H>M0Dxs8kHU z(1<3}yHLAQ8N772XRl(4uMZz)lBAUB(7uqOWAg~0kp}3?6KJ-VSEz)(7#BaJVe1x- zqA^^D$OsjIg-u113C8=IPA|@KXnJhvd8qlUwc$+ui6%5j#ZvOC|J+5&hg6f&3~{>P zvYCK=(cwiofqbV}7?a@_P8L2J>)OCo{>_IPhaC7!TNXL`9?tLYshA-Aud~Cp(%Wpp zZ&5y`#%>P6n7RK8K~b6;|*l*+}^fTyFqv)XTP12+`}*L*~& zR64Bbdk`PMJkI}v+#gD>U#+6gd;X25QfV@#apNzZ*3L#7@4uuJ(0KuIMRN_@5(BF( zGdR()QJyu)(g!95@%OGgi!l`jQ&oVm84sfP?HtrhIn(l;TrU_ig;)pFiwM0mo7L}W z7=StT-g2EaB~Ap3G<^>M5{=H3jP@5UB4xKd4Hw=#uRrgS=sXmq5;aV)`@z-6*~3)d zNpi(=V9KfWe0t&els67IZzGM&^P`(jT^IxN-)2&>8DP8cXZ1o9x5C+@&7*pDg$PBd6zBgj)2Q`&GSUQ;h?>H9 z=uEOLtvC|tr|f|!<^+orzJYa~T^ZaEeMqH?jQucUu`?zITO0~A&popkWF(C zyB*c1NKYfg7olse`D9(~j15zCn?{(P#Y)6IC4l9Yw%O4GCUf%+`v7q^N`@?!c$zD! zOTU&M6!Advh~|%IGk(ihhWyY8M^Rm)(PjI6%R=M9nN&?th-_*pQ<0?4bAKIU;mn}> zgXTPv(cuTe_hSy0%ev;ZSNpH9QEDd`j=f2UY9|t{rHrVAqM7;44&tp@eiRSM_^!U( zi+e677VXQG%V=?~Qf4h1FDjw?A6LS=tZcsjD0Q+1`S^jG#At2N>{vzms6@|SO_{<* ziK6y2lH$UOY0KZUU=(a>vXXjNHVk899~8L=Q)DLv$KM|F^I+ODiA$%XxtiGPd~1;J zw@g~1@O!!+a!-@{wv;$16YqXt_4pH|J1Z)p3zn&Ro_uh1bBKv0)}@kaLUAbGkfp^? z=xb8o=%0*QfZ9n`=Ml>n7av#QWKp^#?IA0l#DrRG)K$rhn0u+AeGfiKNO03Mesz7C z<8+NY;Lm+~5J@qfTXglPDV0ws5d0QwVefJ-#7ZgFQ3Re9;k;IwWk(ZFt!6@{xJv7< z?^vK|C@DWck!{|~Q_f?wGGvjg0$OuY^h*DFMG1^M00JJd@wo^k48+GKQuRqEbG&ql z|H@*fXTig-IF!Zo0`W;rSXg9LFX2he&th#>9>&fe52umER|0C$lZ z1;&>#_q$4Lc9f9U^Xs)gi_#V1`A!XlH(eCk>FQr`($d_PQ2E!J!00knp|ZZy`!qKa zO3~?*roaR7|Yh9JG&|LHsezk zk6?5wvHFSZVJ1cA1N|o{8LyO62dw#S_vP>jN9$fD2^Ppkh@9n8&pCoASt-=Gg%kwX zJ+fX1N&wO9rkU;kX34>#)E*~>Y3qR`nX={do*FrSYJRo|6csqi`%AE4c5DrU{_9|= zU&fM52eX`I8ckjv#mk08xDN3Rp4>irz8h8oXa$D`hr`^G*6S90gGxfQSjF!UTYn0z z49jbQeTD@EJ{P45>P4`J_pgAQJ93?B8jF~s3;`7OZ@ z`nZG?F;Ioj>FV;E`iR0fcE~ls*;`63MLmXziHeQ_EkX_qtPh79e8cN$Wv^%%_7K5o z+dwTf2ZsvvZz*kCdZB2q)uJMpcBUNdsZ`GPKMnW2hyDkoQ|icqBLr8 zpe;thQm!|T(w43H=*LC2^o7}zxbG;)8(m|gdU-K#Ai7%Rb0%NZ_*@}DN49{nIsEN6U#F;P z-z+!GmN`_^qZJe9Cf}EhPuBg-{ZH_GQ8X%+i@OT8&s^ohJutYPO6m3td6!L^JU1Q}De*Kr;eBtH>yACq?7L^XoyQ|kg@$bg|ZTo_*u5sRf z2#ffe1dAm9hgJf9;jC4r0}&d%urWcXjeVeOu3L-c7%T#G*DDSUM;3bUt{XQTGul5Q zq%fAvsr7#=n1cb`#8}YIIxrV~{m^UXQxnX2Z5S5N%ZG+J!5{=%n~nCR13fhM9(W~b zv;R!8U@dP0aq))59#?l_X35-XX_=00q+v^g3ejq=8KfGVU&b?pU)*U+9I(L)Kz`<3bumzQx(u_)N z)KFW$8Rpk@OjtbP#f|<@p3PHObi^b4+w%Fse(*=`nn}D)IZke!w|so_MP3dPmXd{U zczS5?tvIf*eUT~oA~iqq?-lj`_OGa`Zm9=$aR-C~2LXXxvZO+CAe3?Ao4lMt-nLX=b?Gw z_!*PNVdGJ9Wq!y$le$VD`^EO=Dl0Mswe|$*$F|V3gZ=Yk2K^G>;VF+)`6z<4b4w9H zECZ9f;Vwr3fdhbu0BoX$Fjx-h?6#U)-q@`VNcx8U z0ro2Ha)gY~!cecvCkav}5Ke$)c0T2^=&mDt^eoIi`TRA?TuaCo)hU#f$^qK2c z`~>Sovf|J$6hdGBJ`VJ#%_`{Pvc>Zk?FGP)aPKMw-;=w>1B`+JPGPOi|IW5^r_*=v zY$-+t2&&!KSIFH6t4!Ay{9D*ZCEpt7bM>{#?S61#Aw0w*5g~ zhnL)K_iPczc<=Phd!Qq<(FK>OIG&ZapIK;TKaiX&8y*X^e%OwezCuvo81Di zd+(tqPU?Idi<`dPSslj$^_}!ZWsEX{jXhjikri#k)5owETe3Ewb2oL(3vaa6nv%^v zHU+kwP!8$$n?Z9q@X+mL!-4atpx_n-@4AiWD~zb!dvJADF3jwz%;Ld6?0Xr#_m@Ty z{VdjNz0;b1MFraCKWGIuR2&kjPWFfB6l&h4**Z@e1X~gR))LNaa2*eW=C~XtP)}yi zu(E`fF8JQ^!}d`9RSzU08o1||Qp>|F81?O6 z$Y=~^#woxBB!Ig+Upygw-7I_kJ5v`BBqRJ{F_ccAZ3Lzf`Sw^NIHO{}u693R7?K0U zGvN=IBpOL`J8d3yq!!Xg%8z|ag})AC)WfwrNVNv?b@${QLRJ}U9tX89C5Mp**3X8x zHT*-=q7>3v`_{E0k{~v!{YoZb1A!)O_c)(vE<4%m1LIKUvX&CBm;HmH1b z%oTB?;9_K-g*{DmLhIsB`f zi}s1#_U{d52T01+i7hrkp>`im%6NRV`V zKmX9)Aa|EBZ@nn+jWVkFSr+6^R}PU=eRx{7;H3aJz=7cp0NMn2ci3MR_1Q^*R<1~D85ou2e4U7F4<_3-v9As=3zt;K=T&}ctA9PYm04IOKpa1d3VqX+EU&obMu zmo2!se`BhfadT|xUd)YXY5N;lHQLy1Y|QUXNBR@yHB=q@CJPGF0oc8(C!a!Vsmaf^ z)-lvj<3sq*cFMH#pw7XZ-TJ3~yLHs%4z+)(T3u4Q%fHRVk?$R~S?SNB4+X2??wAbC z`>7XnLtFdCOT9a|6mFv2x{GmhDl-Fi;3>K7_3wn374qy?9!I9F74nm=@-xy6vfGiZ zdpL0&+k(A^?>f%`3aV3BX4`{5x3zf0wy9m%hj}iN2z^H{$UJQ*!Z{>h#6dP(j{gKc z=L7g@FV(jXn)v{Ig?pTZ`&Hkv*rBy=$PIqs#h4q;`B6xduT=sPOJry;)78Cm&|Oks znEM3v^xZR7bfecdt#~((n*mANHyE`*zHx7aaFOSg(+;Fcjd>pC)@iO{XeC-ZCSs<1 z`a5ezIS)JUe<|7RAKpj@wD?Z=IM6F;FYIyd;o(ljTFS)hAs$0=gudY*bnylrzEHk# zKJ0<&hGDcgQcc>?u(LX#q}`BkUY=!fSW!KkmH$YFaMH>?2SQ=a$jKNGsy(o8(Xr}6 ziEjnC_UM=?WG4ivvlP{SseIb)Q9{i|_j#|tM|t+I6dd(ZOI-ov--ffp(^#5Bjx(7c zdbK2>kE;w8-CElAj2sjp3+ug1p%?_vpCJ^_^hEKfZqSKR?aZU>)*nTUW@cBXuQ+*lR0!>t^nxkR-QG!{QKMb9@+bH zs(IRh!)h)R@cXBCdh!)aI%P=wh*3@GBcWo=)^>W^Y`h zlU90b7co1VRxP%;=xWS5y8ivlkF=1t3hfw&Zh0&9ziVV%^*io~tANaT89GuSa-8{y z>2lz0k35D6AtM1=>d6@;1a%(uL-q%TiN|3Xa)%vyj{iia;@ zV@B9;6f!x>ZkZm)DPvON9$!hKWJFxZ6*^!`Nwy%r_Z4CDE!zv919z0Yh~3@48Ov*4 z^sy^>pW@Men6o$~av$LR^c{&YPl*U$*b2&88Br&XyJ3zEls0yus9#}-wfyFu5A!p! z_y0Z%Qi5c?Bf&-q%sEXb5yNhag-_i4JOrMAwz!}vE`Zy~>G!L56Gou*i!?pZ|+zl+#lXdz}|;OcP>&L*0n@X-Q7 z>*K@@+Rbh=&n@@kf4ZK2Vx80dO4|ps4pZQIbX~nHR}p5 zhYL~2%Rd{0-IK*?_A;iqG|da=i?c%V2;%h21XqUyyzq#VpAnZUC)j>1fHZ|5ZkH8o zND!XRTyFLYq9rN;{K8$BDTNxE0^x4FD4X+D?Eg@_w_6H^Kvw2X# zI#Ss5T!xMfZi)OD7IAn-q8gNPqWV#8$Dw9)hkI_QKvfACqp|rfC^IWJ=k@lgu}SNw zJ#ZYAui2!`Ip5;Mpp2}|{fnT5p^!=&PbeaEd}Ug^ zFiW5=V%P~?J4O$+c99|S`t}yzFb+B3IHn^z-yTJLmJDBE)tgz+$#dQ$cQq6L9%US(1mdm8ElYq5#=CvGy zvc0Y?|A1_`j@Z`isTmoRB``0hc-rs3g}_xO`>j{#w1P*O#@7QF*(smbzxYF(N`NnF zc*W&!6;#-J?f9axnvTbbs*5STFlZdRN?SJp4;*v})IqwP(3|_{dDx4$8~eRp#{>m} z!sb`TZ)mfer1eMpdh)ez=wRn|N@F**h!ZV@?JW?@?IZB+VuN6>;D0pk=1?Q3FHy5- zRqr=^P*3aFhF8a}eda^`n_Br7u>8+HT*dCUVb&I&;m~z16G;e*Nj7>*6ZiG8j~+?D z`eUD%;WlTRaK_Ia>WBvfrfO~1Ko1^^jZ8a6HNAj`-TK72Z#_TTwNAf|PAMOxr2XfkQy!joKax##k?*Krv+-+DH zf`d*Tv05%P#O$|1f%3fyfnSG*HGabkyvLiQX_e4m1C+8_M@2sgN&QwQ7}fuo+FOun z&gAG4V+gUH-rex#@0JIgbq##rb4+~?>Yl{SufMB@-*r}{4+N6d$M ztrpS;HNVipwk?yN)R6%2CS`|fHZvqLCaJBYftSeQeTe2TGejYr_OAi8a&Unexf3fa z!}Hx5I>Kvlx36+*(;{y7f<8ezA7}|OYX!I5gPpy!-%4n@WIlVdiG!yG)4{&Rji?3L z|82Jq4wgNB+UByDH2O!C-hbrf85?jLcf?d_eP`GTG48B<3abPj^IK!f3cRro2sg;F zwjW`BW63pyy@>9LjDlD89&H%4UzdU^-(@|#&zR* ztM$jm&3XzZ^#T&Lk!!Z?eoC{`#}6TSf|cEI@G{le7C%TR7=mdY;yR;Ts1B@oTzFKU z61hzowzQk~%Ll;YlxIh_oF|81-kbY>`J4n~K@!nX_!vP{jwX3~18~AzEI|Oq!u^(|C9Z#(_TtT2HHMZB z$1kxz$gEXOO&2`G|KM~_Cn$2IF(1$j7%vR8!DhFkL$aCLx1`m5oZ3mN?piSCep14w zLN17GirTt}=qWr7ix{yBByQSYx}A2APYnc7%#nKq0Q=`^D~Gjed~M$@zlPxlbOFC7 zas1cAG(-DQH0jCbrIm_E6}XSdMOMn0_esP~iby2)qdNTM5=4C!nK`ovsI0@*A_YF2 z$u$ljd$u`%^Hs!=5(rm{*(***?czV=laP8K!2 z-BWQjX^6|8`KmQD#(?S%IPv4;(!{654LYT7QAf`gHj%FYtgp?%>YJYFV{+oLdvEjm zB;v>0-I!c;uia!Hf`kLH2B0f2jtxBPPKGk>o|TY`LyxC4weDVE>B#wKl|Vq-wt{@e zPM!p|MkKGoXZ>jGs7BkD;qZ6S>9>H<7?vUt-szUe3*XCYKpxbS*z2FoocPiiTc>r_ z!Tfh@DpGA6JH-aPfYj++d@8gTY`gr_cDXoMKMp7H*J9vJXWuc)P@PMWHe`}h3#qLL z4I<{;~Awc(2 z_t^3@*6G7A>}>sXL!l>sS3c;B1Rnf$dS6vAmj_#lxO6FFZ`DgvQ$$GI+=|$hQ{9wV zi|F8H>s-4Tuk{x?s~p%0y{1zB@L+8{j0xxVY`E@fllR}bPuQeY&q*xdVz%@8 zs7;2TXe7nlO{RUW_9WOTlrh2t>ze?SxF@u?he_U6#$En?tAM)c04iUL>q&I=3qPJD zQ6GNQb!;l6w=cVE&j-os)7&aoNk;$@)>rdgc;Tu>2&t3vI63BmH*`di8RV6PB{cgF ze8M|R{m!@KpLXlewu(G1^sCEn?q5HLqO_o6qG7I`9QfZ!N`5Fmx zpw6&DJoRGc@H{jN^TB{LGtCP8f*#xW&2{CNO-!HkFitOJS3TF1Xo&1Jg92^NDaa5~ z<<`eFU3-`q8Px7L9eV`2J&Y&ih-*2o^l7X^`)%?E4$1sYQV~4|XAPD8@DcSMgDq)f z6UuL2Cegd{aO_~#VW$u>OnT3JljHfCUhtTL{oehv&))(r0{{Jma8UQ;o_mfTV7R3Ij7Ns)SSLusFfzY9l%9m>Zs? zkeaFfVZM~I4~4Za(Tnh$z(~g|<#x|3rB-JJuMmuQ3t!!Nc8dM}&y?qpD1AB2tiH51 z-;v$?wi)kFwWA2q(SxwSwH?^zfQeUUrxt9kMXUB>!N%Li__@_%0E#-j4hsamUqQA{{gCaS5DfJf1y*Jw~0vKns3d1}msHPIL6Ub%c9ij*HqY&|OMo4N@St1xb&swJGzi>tnRR)VW(0z-o5v zPnOFd^Ucb*#T@3@Nn@9u7?ISHz@7Sqz>9}rSi)8dwofV#r_Mf&K4w=&<1uyPR>UtU zepJYi&NwbUSeV;xU7k4PIED@j;|?nA3L2aDR1WJ0^wkDi+;(gJK82%G*p=p7O)Bd9 z%%K-6iy83B;QwjpxVa#ORPXY>OY$tegV2{_kYqY)Tev?rX^mYBWou zb4A8%qpu1Wo*gpa7KF!f2^i4|gsgoBVbK96*a$=vC=h*=Z@*Expy~`?IPX$wc`p~< z)eg|jmc()M|BEqXc%2{C|KW4>kH{$lDO9e=eTfAN}W|U zXmv_~YBu+rxa6ed0wdlbK5%ZeU6~@B0k&`+gdxY_TRko}3up;+X-BhggNlaXLOV}P zGf+bs+q)5nTN%a`&L7tT5i4JM1Gk=*hqo}Db)whkeBjspoMw{k-E%Z1oZ*ia-7xtL z7^7V{nkc)V5?EqKoMOBlt* zNGnE4;k>})K<8w6Itcf66dzV*5BKq0tT)PAJn%boYwj0}cnbnB-Z`30UHYdL>T}RT zpWPGUl@q(m&;wpPGGQXJ?A~sE&CH2QJ0=o}?s<$yC84#d>3K0V|323G3qw%>&eLZ) z+d5$`f3?G2uLrh-^#$^(VzSOvL&7I+wQr=IHK{H)cavpR+?bJCncki1_NcY6))6=S zxwhJP3DFWj0mz~0Y)3GN91uVEdzbp! z;B})QL9ezUou{45@0pwnOyLK+l~7h=A}6fSm3;D)GgGuWaeOa6GIY)-EU;IKca5KS ztrI8-?`01c-1?mqX)mNPK?;$@sD_z@dfO5`(zM=Tj%@tWv|^3L*fgxn=sx#&0BNO6 z^MB!-a7Jdv-5GUKWP2phO~P-!lCNP1y=|fkywy~})Wg!WvxDwWtayXGSaQ%RW$q2P+2yKYe8m9Yd#}$L_7CxJgnL_JdRlZo4KAi=yYn z2`dCnOv(@iFkU&Db$ylLZuxfW5@*dDN~mKpMRPy?xP{n6Zscxu}(`TL;x@>0E)&1+c@;A9}&Heg>&zbO-L=B?HgMX?T0b z_MNa}G_!m?h9EI1s5$MNll=T;`{g*>MRy$6oU)+(tIMV78wB+exq6ubJ7~@+<7%^y z4K~O?z6MyWxgyirm4^n|ZO!&nHCLelvG^R>0d55e|(&*P}K3qH6ZaW?P z6L|Lhdf-;wj#)m2Fxz((XqWpIiVl`J0NwT>p|`>umz&{N*1{Y!wW!4}7|T~qI{e6p z$RXxA_J^tGQd*x7bo%EnH^P=~0WJljCmjQNag&e-sbLO_n2WHb5C!u0_NLuJIFj-F z?_St@e010b-y;n5)?=k8Jf*h|f^L^^a``4wC}HjFb&FOJ3PA@H9MX-))6zY)fu6KP zbF-%{XUHSh!=kvdc9_~rPREM&7U~FJ@i8!b^b_))p&n7GW!QnIdhNwQGX7*PoOyod zj0c0`Z<^sYy#Vd4nq6WKibW?*I;^$g*@+0vJpBJD<~^gD+P-#i5;}M&p^B6kLJQqO z7XlKghaN$xCqYF8=^_YhLeY>w2mu5O5CH|L!cjT_JcQmvnu3D#DpI7E8_)ax|6}~d z{c^wD_vXXiW9^c)_ROO|ky=l}T|H*);W zN6HDCSM@l_}ZUReB)?V!xV)L>GlaKkEyYQOgUz?KaCba=+p6AuCmUo(@ORXm&XkT;> z1r7`6M?Rw?i`;)7C&bdztaiS90>hI@fTIzb0AJ+R|TG5~rFrkD8Zj{Ktq72OPUo z7?>Cw>&S4V%Kz4WxoBwHjGYNk>q5po3H8W zBO2LTbxzYjrIC>ldzbw34Vvz)*G(8Cxtq*UZ=^l854Npw2(mtwt zckokuS8;C1AM_={HYdBz~?=dZ$_b{by{`1=Y-&14OWo8r1>3cg( znn#+=Yhj743Ae{qj9~n`U5({#yH$;c1_yE35qpipop`Cpt*%&WgX0^zpj49`VB%Zo zau-YMEm9=LH~ZK>8eDD$$VFHxNntvYnV;j+SZvx0rl_S_9UvWuf|b6y3CsRyrUn>| z>&C8!qY3eucBjtmp#4{ToT1>*C_+r_6L2t`g6u4H@h=JshRPOm;kU)LL1Y0t$ywG0 z4!+pG#Ra2OR1t$hNg7C=Sy{P@QW1lV_$lF*4_r1zGCjn$4?yVp!WrUp+i7{unYbd# z`6PVh!l(2pY6-Kbe<$;%(X$kM#`x=ujF|e}n2a(;vQsPatlY~fQ%deXCiwF5>Hr0I zXZ9HzR#t_lgcvIp9ig`2VUYH$4IfCb6d}n;y$n$_;9F&K9bptH;*ybWE@p8~@>QG? zx@3_gd|aSAu;Jx`)@lt|L0Uq%EufsWb_qscxJQGcS(y|ni~+v*@h(nj83_jG{C zko8p&?T(RO2{9UAOFx*Jfj3tH;?%}e)Too*eph}X6RT~@RK!^u^o!7h65{d@u5hY6 zIF#}N+E1tx8i}?5zc7_a#afD{d`}TccTWRiF%MIeOyGbc`v$doN;IR4T!Z&W(%=hJ z6aK>C(amf|(3kA4fAE7F7GJLw+1`1cESH+g!LTN0E?|sazYf;o&+{}=dUl|2mJC!) zQ4^7_M$}jxuZ^OOGy^<6zT@Z%hYLq4OF%+cSg28{9MjC^--g%@icF>7_Yb8_Yc3x6 zrYKHt;LE!=>Gz-u=RrcoS6V!o4I4R5-S=md1I!m{nX)YTsc>^2!E9y&D;Lh=5CI%Q0p^Ih1h%-N7Ft~`3ewRh2eoOgm8s9)Xpj%W|$4y zp8)nW7y=L9zZqU)_i<&vGrdxrOvQmXIkku1#dY_V z{2%Tdtc@la9QaefVL{R1OqJ|XVt*0JHi+k1&&fU-eZ;12_M@0-5o0MSb(AW%w2{&J zjk#`2kdbVgp(HFPIhc$uziygf%@P3NY8RMkE*dUY;WT!Z%+>p7Ql4mKR?8Z5bj#{V z`9~9f^vrCMcM zz_G2D^^cQ~>Io%EFm(M;gK%slx6#S(vw@NY!|^-_!l0r= z&m%%fu1ukN6)IVwW4YA?W66YKgcuf^(7KTr*RbxXX>4cq{6{mA?HxwWcgrW0x>j|b%()FYn)=cDU&H5b#Gbun z00cf1vz82PP!h_o-kDHRNm?&)M)VuT z6iY013JqtWU)JlDxxw5y20hJ8=`dYK*d-goMOT+^UP^8frOL_qFLV?gF4(ijic-}n z;AhP59iZAedpY(X@9U=mJ-dgZ{_rsJ184|14jo3d^5b#(UN|phc|RGH@LvAqN|Y$f zfA~(Su`;Spyy2=WriGgjXQNd5Ac&#vb7)9DRcsp1$|}uZU98s$$t~Hi1kGNlw7e|} zwRx$sFIkGAYZFTeRpN(C35{WBPtY-wgDL zKaIYq;(=u9K22oO0Hch+`?0tQ`f-S(M~pI62k=?Xq|ChKU zDQignX_QLqn<#ksGsWzHJQH^AvwxbOsiyWB}pkHP%rr)PhnvKW^)^iq4xq64VYi zCQNOZP76W2KLgCjqQ+t^i}CyuR47k$Z_K?*tX`)$SIl$dZXECT9F?14n7g|!o01`> zh1}?ghcHn88)!wR6enJ~tk*n@PaVl`*3u$&_af6J+GtSZMqrB*Qm$pUwWR9XogF@=WquVivP? zkYsUKKf1)&Ebs_fYBT1H1NFqAJjkI`dlM z?rM8SOoOLp_}02fWzZ}o42(ue8&AHknouzuKp1B)Jm(;L4ldlXuQ)d4Z+E=1fp{9S zP*g^{1Hqdea2-nHoQlslY11vhUkP1VUG>apdQ>GYx_r0IU^j0Fgv*OaV*oVzWtq=^6jSo_+G{~MH4f}&z6h+^k_v~-?=#|y3psFd*(n(M+!~pK9D8-! zv63H8uQe=U$V|K|YieYKSTHCFyNvrb|F1D9OvP4?P@tjC94k>@98CJ1kQDl6=4^lGWrP)XU8k92duJjf|=9|12zw@s8ba ze*hMnX=mQ}@XS$&Rb2zt2Ylz0|M*$B_b5QV5qiS7mQWiNUfLwCu3_XKye^W3bVUOC zeawN4;xz#62H|9%pKpdNN1-9u+ErEM+f`1=q(DLimw%{kRlWWBixKWB!Prniib^y7 zoe#frw!qNs%&bB`u0WHzHX|cATd4SZaj*KOH|n1OM;wgSxGDu-K$&JXs-~MQ->IRh(3WsI(5;`?vZtgH z1gGwOHvitG+Ng9^LLaqv9~|7lhQO}t^OOCd60j|?MYOE?Nu33yvovD&KbHPIvTgYIEWM~gq$)K`6agy!KnOZ<8I*04cp4#OyZQ0)l@WJ`|rj}Jx4g^ULvug z#NyE=E@!6y*TtGENvC}#|G7a*iy({Xb~-KQUfTUNP~+eYBcCFAiZ(AsYUw#_vt>8SZNBel{UWL7lC!_xq zj_qx@&$bObeRW$#K|eSu{;H@Wn#6rg*5AFg;?=G(?WtZ8@tg|8^)o0n;rZ$v9fdd1 zIlfARjN-I3Y2uI*TySC-C+MQ3PO=Nzdm`a?A(&nm?d!~Aa!tC$@jg-qBKP{Keks+g z&{d>Et78kgOo8P zqWpI=&+i3mGxPsxbUT=S=V{f{nAEun6NA|&Ql8gCK&?&Ztf^p3_Lx0SJMi6J(Cg)q zxB|PU5&On@YRf&v6b%6dSz+saBfiVSdoc?B(%v7&-K_fr zBZ@7=ulliZ%}J7Nc4a0^snD^(_g9Om3+(UhVb=D=`w6);7hE4oxGqTjN@$*MXJ;LC z=~T=1#h6*e2t^tSvG+uK|10k5%R-MmbE)Z+Qe~6#lBa*kTuWN}1f;yZbbEn`g=?bV z?yOg9zWBnM+ zsg0yA_jYr!8%lz0q)MlkosC9_O8DEb*~gVF$ukvm)qmd9IqY;A!FlrPGbYHy^7tr1 zmi}Imz9FamcT7TQXBC%1CG?}sxzmk@OC#H}^CZNge98kC0KNWY)ac1NYdjl}+8mcV zryVAPL!$h90v(dQynZ1{h3G@Kfi5^tt64VPqHGs_nN;~8J6!?_vNBI4Ct}s%oYLia zL~TsCy5k>vl{%9=7*R*w3<1Fi2DKp{)R~OAOe#pCE%G4@gN)?J@=IMpyLzqZG;&Yi zu6Xvl3}A9>7<5`O=JLQfTwhU8xwDa3F?pe2Iv(MA?yJjj$j*zpIx#O&r%C2 zC)X{zH)`e01AZ6QT<=c;T?h$)#mX%drE`Xs&{nU6Nvdczz*knpf1A5wgUaMVwk15et5{gWL! z`c~5>m_yY~Wg5c&;hJ$?8aFu}Kt(j_^2J!VTazp^6~epnE^1FrVZvtvp$5$6*Y8`< z$5rKqlpp7XkLjBZN-lOz!fs!)M0vlbZktC-9VCrDy6eY^*P<|U>mDb!g0p0T1GoEF7w)0fk^2EQYPMv@I zuv=|x1$iHcITRclspg=|g6)nwuc5J+F_&Y6(zSW_-Zss7f*H&8=0Ee@%YM7=cCGt0 z-tXmZ@6$h&ObIw2|8PE?eRzF6QP4%rp8Dch{~gnBmU%Ul_Nv=`)6RSfJ@LK}j_#); zXJt51wTnemo$E+L>QicvspaKmE@OAky9d{6Z;}8}sn#sVi!;xAk>?HnW+M6fUcBn( zR%|Xep=Vu;Q?2dfxe!d-S@gc(Ec4JU0bZlBuklhGhGhRzNeyMoNdY^XIfn^-;>s;` zB>9cJtEA4Jsidksy4rS7`Myy0n&%~4J@abV-u;PaBUNMfc6Hyy>pnNSjb=oCQ3lX_ z_?72?mC-=xhg7Z6+kqA%u&b?twH1$2Qc90c33k8#!>Fd>!*D`6t)}9&FFDTLj1dz~ zpXP{vD=@00;@p*`V^1#Fu>Jnp`%B#m5T$jhggW3>Oj57Sus9wHG0g5m{%v}mYPwO? zXl0kF=s3S`S_)?}qu-S97(Y6d+VL#TA#e5*U^)2OT76v)k3_M*qYPwZ}yR={M}RoUfHY6Fv9TM#y#YtJ zubLM|48uIr-9l1o6(h{3gjmY^Tn?2VcYScR{VSf5W8MvUOY#~=T0?oBFZkM632gyN z;y1c9i9^%%q7H?$7T}-Y#pOp>^O^*!C1E%lrX;ly?g9 zrT9^idRhj#rwfj7Y1cU!4iBf?u!PyLblv_1T)Sa$($xu{u2y(Bu4)mjL`caM8nZt= z0UsdvUWj>aCL}Kh#hA(rxR}k1CAgz|1M#VI4C#yHQ1k0CHz`+>@9iTBNWwNj4DiqP z+v~vM7M^nnIrqQbteGOO0@GO)kHSBl_Q+urAvX*;HHVfXGQ&6Z%CBq$yWU_Y_cTbk zSDJ6vi<$+vZn1X09B;2w_JAasvLbE|rqc;Rm5X7sUSBURS#Bv;A&ap^(-Dew?XQIf z`N+QKP44oSh?TGgeU5(ZhNqFSDz0XQ?aluM{$DUY?hZ4g3Gm_O)RRmN3-++K3&AB~ zJ-7at=D9`fa2bPo-Ke-2@jR>~A+*kWKOXszT_+276}G|xyFuK(dFy&#(zr?7^NY{6 zNw=t{MWsHLP@gnh(^_;D3G8TGQt?_ta@^6mC{uegdTv|3qYOBzGAj%;Pu;?~5RvD3 z_uV9Z`b#lh`KJKa8+>?bf$K!AqG%Vx8z(XjH|+}YUDI6cnd*V9R>5gAw)Io*v_2Pn zEntLhc0V)3*FYflp5FTOHgnhU;^L*p} zV${LlH&!2xmFKjQs%s2)0-X?V;Mmm)W_qHGU5*1!i9U2Lf5y{NegE@P#T0Su?XP!O zz>Qt#gX2R}$YNK^H5X$^_j`s}d0aKFX7Bs1$F2-4-?IyOrON4$Y*T^1>bJh4T8VU} zri6M27W?=dE!lZ*w%u00txj6WEq$O8`@y#IuyDHb0S39Z?9@n3dwXUkf0WjW5-eXm ziNGBvgH9Hp450#vYa+yMTamHt36bzUAe**w{^v;JqlFM9b=LSf1B|~hd(c2S2WxIN zA^Z3+XiXG1ng9)rHeRX&=Fhzi${uPnWQH zxuBHqDSg|}SOb%G$~b#mIHD7Hrqaa&wT~vlWiM}=3tk<+xv8ZrKbM?vv1^_wo~iSK z3dI89Z!Sprix}wHnNH8IAJCq$zfV1bF(iwiH%xQR*s-@Lv2vNe=vkMxVYO(OH{Hj) zXnUV{*%H=-OtA|K$P409YC}caNp*O+EMRGF10Q#kIpVPErm#hBS2REpAG}w`otl@* zqfR%0W7ZumEJ^IPqRkP$#n-;ETH1k25KK~AyPN}xrRjg}!HjDQ;+1r5&@3L-9mYz# z_^7#$a#d;i_tGUl!zLlvpjKH7mnX^hwrXp8?4+t|w?e~|Gj9&eh7`K)P@RD#>MML} zONL{^Pj^YR%h9V#fK@)sV6}35-|XX3B{53dgT4F*hY`i1Jwl(BZ^Rm>N8i25Cm>%w zH7j>U2Qx7K(x2e}`98;TbgJMC=ai`PR+_}6ewVz{JIC^gbZ%#s?F=LqUb&#y&`uYt zNRu#q1ZI)BWd2OfKVR+A^CJF+E-jIS_P|o zXwRN%V>6|5TA+mi-42mFsr=9!8r6Q|o{h`ivevQDlLV~iJ(FQNEO3x6e4-lX9#gbr zK-Y4VH?MRTWt5I|ZCRfWq+0Llr3CMbeb$6zQnt{JXX}JduDfPBWpO)?#pT)*bS}G$ zhPi5$`vwE?@3P|x>)Gxs2QN-KXlHXfmswP~rUh0E!I#7wvCF}k=wvH@;Fb;&r*ms7 znC16{!Ip#Z<4iscrKET^^U}*MWy>ytW|hyX-5f`Zna_?i4=;;(<&b7{7+o;`IhgFi z?p$`48m~iH_E--7jwJl@3fG)i0fh(5M<}G=Fnz@YeM|Kag?Gp6Gs6;{H(iBu~GNa1L4`{jz3(`Z@EIJGIFi* z{cUT5XM54CMbHx`o63Teq!rZXZACz*t6Y@~xT%epLF`jkB4#-^FlhWS!ijxWsT1uU zATEz7N4P43wEvKG;Pc`kP)ZcpP6=4H;QULjKR;XQ#2ksE-s8ryzMZ)wo*~&lrUk?{h#IN^MjH?pEdzkKd}26^Ty89fNMWz z+;UCL)F<<4e4rIfc%b@+cBECQ6I?h69{D$e_xj2KWj_-EgVu%XEbcR7bRl>Wbm>(} z9}*e9dK$l9ZD+F?-kHg(4y_pSEE7?Ts4#xJBgE z^K@|xMu@YK5XdoDM|~cak&`JyIJ{yGEf@cozMJEDAY&r*=CY;i46AgG)H zTl$M4u3*GB#~`I%AqnY+LQ6d>t)&9!PBlbE6mn@L}HSoVRHa`~7{7oi31y zAShR3Io*A8FxS!*WY}lS#_{NHj)yIeZ$32o9&7FA-z|`lC3u6SfbCn<0-m zMOv6iJ@j55u`7$vYGL@XpazVMMl|$ys5sl^9K4EZHck#(Fdt#>NB7=iylRVq1Dd;6ZZ&Y|Q0X7;GvE%b<+! z8=*;fhF>cTAQT`5IMLcLLd92ARtKTQ*hrDWI)>y8LkCCAc=GOL532mYsl!6^FH(ZH zAC)%#<2XdyW=B24xueYvVqiT@sxpPOBf5Y6R?+#*I3NGuw?Rr25`zA>4gdnf3y2j# zc-SzBIo=0C5`~Z#e_(#(xcm~5D1!X)@0kA`{`S95;_G;-*nC{1MI80z*j3#SjkCg+ zqiS)k>bB^Yh?Wdk&u3TlztGK$;5nAJS4hB7i0xxO$C+_OVXZZKFx_arp}N#bEk`Xo zdpTNoB-oJ13%Fhu8DVYU#;k8zK~*E&I9qbo)m<_eY>S9N8A~A{Ta!VyOXH4nOurrx z3`5rgt)OfULQ)+2mXj`m>=7`(QbJ5AOYaT;{^X__6`nhsFOsGvmo1`}!^sP#QOhnV z3+9Y1WkCQ`8i>m2W2x?CjgRD?T)G1L!Z1|C1W+paz>vd_K8XOwjny<1n!a!ZyJ*L6 zT16>Rs-cX3N-a<+x0T1j{y~K6Pi9e07e0tKZqv#LH9fssPr&j0J4CnTD%n}dvs)qs5hAE4)0|J_1}Wb6POkR;sec?f@J(lIipDM$Z1Z7Uj~9z zID?dXgG)KK-e`@~K>O#XTw?yDy3=bgNI*@Vv9tNTV-G;{Yx&Y^0>Ja{wH)Do--vA9dlRB~~%RRBk zPppP#aE041EF2(we+MR>1;-d60W)QXy}|z5dBU0JxY5Alf9Oa=&k_pdU3%6 zJ#yPg@s1J3KiU3q=jDPY(N4zwgrV)!CgK~9Zhp=;erSI($6yKHWH%RW_xa7218#yM zATH}`5ilu6_L`nH=unKsJiks(9E#=i+9Z+S;S0k|1F^VoFHF=K_MfdbGGZ_!`sjgRO9aHVPh(h zjt$A-DPXQ~qxqyT`xt@7Qm*(|0wF*5OG+%1a%{5e6ooq&&ab8?#HO^~^o5DTUe+%m zf!4gEq3j{_Q@>kDoVM?95@!-%R z_t0;zVfn@V=$dQj2d$)n4T*P(vI!^{SK#wC?Ybobuj}QJ{$C**Q<5~YSH{ud6nAu) zChmjN?PXq_Sp{!*d+pVZthmOS1{np*>d)7EIn{i-ci6vPr#gP0D; z+)4wT8(!orths|-+L8cbYFTeO%1u~Rl3Gt{iLQ>C*`#e!>(tWBr;gV}xz;Aw>N`h; zK?*s+zc%6{GZRjPch$~cvY@?9d!L9=w}(>`_ilwW*-%`d=k8+`8pRc z!QMYYzcV>0u+Ca_G?^f^`l0t{bQbN6mzNesK03K%hU%;a%ncoYJ z$d`cE8D8Oy!@u0Dk^3HsWnPLa>zzKY5-Ks@euyWcb-)1)Q9Wgd2-Sbhwr#@8M(O(a z(dq6o(Q03XVY00q=J(sfCvHw_pXznK=!y}GQmo~kmy+})68$AtGq-F_NLoqAiI2Mz z-q&1uPls%jh=mN8tu0)(Tm414F}&*w07X4zTeoG4-VZHGL~tX_4u^e%t>g_%22C0Z zLbei-14lb2u6M^37CrczMCU)c$_*^*xIR&EfkRDO^w z8^7A=r8w6h=ri4Hlx5KEOlZDRH7>y^*lO+!^eb5Zb?^+LCAGWHSMBFDdcx~+hiz-z Srj5eH_?V%rj7yC?qW>5FzP%v; delta 27777 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 From e3c923d059522d939af6f44313fcca16d306ee86 Mon Sep 17 00:00:00 2001 From: oc Date: Fri, 18 May 2018 00:19:56 +0800 Subject: [PATCH 18/41] Auto register --- _server/editor_file.js | 8 -------- 更新说明.txt | 2 +- 2 files changed, 1 insertion(+), 9 deletions(-) diff --git a/_server/editor_file.js b/_server/editor_file.js index d87551a4..711a1bb1 100644 --- a/_server/editor_file.js +++ b/_server/editor_file.js @@ -165,12 +165,6 @@ editor_file = function (editor, callback) { callback('不能对自动元件进行自动注册!'); return; } - /* - if (image!='items' && image.indexOf('enemy')!=0) { - callback('只有怪物和道具才能自动注册!'); - return; - } - */ var c=image.toUpperCase().charAt(0); // terrains id @@ -178,8 +172,6 @@ editor_file = function (editor, callback) { Object.keys(core.material.icons.terrains).forEach(function (id) { terrainsId[core.material.icons.terrains[id]]=id; }) - //console.log(terrainsId); - //return; var allIds = []; editor.ids.forEach(function (v) { diff --git a/更新说明.txt b/更新说明.txt index 604ffcee..e2bcf947 100644 --- a/更新说明.txt +++ b/更新说明.txt @@ -9,7 +9,7 @@ 最大存档个数提到main处理 √ 新建地图可以保留楼层属性 √ 道具描述过长时可以自动换行 √ -除Autotile外均可自动注册 +除Autotile外均可自动注册 √ 重写大部分教程,新增大量拓展描述 √ 便捷PS工具修复宽大于高时的闪退问题 修复转向触发事件的朝向Bug √ From c0fb3621caf91482cc0cc5223e77e874b0b24dcd Mon Sep 17 00:00:00 2001 From: oc Date: Fri, 18 May 2018 00:50:47 +0800 Subject: [PATCH 19/41] new door & remove dragon --- _server/editor_blockly.js | 20 ++++++++++++++++++++ docs/personalization.md | 13 +++++++++++++ 更新说明.txt | 3 ++- 3 files changed, 35 insertions(+), 1 deletion(-) diff --git a/_server/editor_blockly.js b/_server/editor_blockly.js index bf550b8b..c973de71 100644 --- a/_server/editor_blockly.js +++ b/_server/editor_blockly.js @@ -191,6 +191,26 @@ editor_blockly = function () { "false": [] }, ],'afterBattle'), + '', + MotaActionFunctions.actionParser.parse([ + {"type": "setValue", "name": "flag:y", "value": "core.status.event.data.y-2"}, + {"type": "setValue", "name": "flag:x", "value": "core.status.event.data.x-1"}, + {"type": "hide", "loc": ["flag:x", "flag:y"]}, + {"type": "setValue", "name": "flag:x", "value": "core.status.event.data.x"}, + {"type": "hide", "loc": ["flag:x", "flag:y"]}, + {"type": "setValue", "name": "flag:x", "value": "core.status.event.data.x+1"}, + {"type": "hide", "loc": ["flag:x", "flag:y"]}, + {"type": "setValue", "name": "flag:y", "value": "core.status.event.data.y-1"}, + {"type": "hide", "loc": ["flag:x", "flag:y"]}, + {"type": "setValue", "name": "flag:x", "value": "core.status.event.data.x"}, + {"type": "hide", "loc": ["flag:x", "flag:y"]}, + {"type": "setValue", "name": "flag:x", "value": "core.status.event.data.x-1"}, + {"type": "hide", "loc": ["flag:x", "flag:y"]}, + {"type": "setValue", "name": "flag:y", "value": "core.status.event.data.y"}, + {"type": "hide", "loc": ["flag:x", "flag:y"]}, + {"type": "setValue", "name": "flag:x", "value": "core.status.event.data.x+1"}, + {"type": "hide", "loc": ["flag:x", "flag:y"]}, + ],'afterBattle'), '', MotaActionFunctions.actionParser.parse({ "trigger": "action", diff --git a/docs/personalization.md b/docs/personalization.md index 593716ae..d72a4e0b 100644 --- a/docs/personalization.md +++ b/docs/personalization.md @@ -309,6 +309,19 @@ control.prototype.checkBlock = function () { ``` 4. 如果有更高的需求,例如想让吸血效果变成一半,则还是在上面这些地方进行对应的修改即可。 +## 新增门和对应的钥匙 + +如果要新增一个门和对应的钥匙,需要进行如下几步: + +1. 在terrains.png中添加新的门的素材,并在地图编辑器中注册门的ID。该ID必须是以`Door`结尾,例如`abcDoor`。 +2. 在animates.png中添加开门的四格动画,然后直接打开icons.js文件,在animates下直接添加ID和索引信息,例如`'abcDoor': 34`。 +3. 在items.png中添加钥匙的素材,并在地图编辑器中注册钥匙的ID。该ID必须是和门对应且以`Key`结尾,例如`abcKey`。 +4. 该道具的cls应为`tools`,可以自行写道具描述,最下面几项均留`null`即可。 + +!> **请勿在animates中对门的动画素材进行注册!而是请直接打开icons.js文件并添加ID和索引信息!!!** + +!> terrains和animates的门ID必须完全一致,且以`Door`结尾;所对应的钥匙ID应当是把`Door`换成`Key`,这样才能对应的上! + ## 自定义装备 由于HTML5魔塔并不像RM那样存在一个装备界面可供我们对装备进行调整,但是我们也可以使用一个替代的方式实现这个目标。 diff --git a/更新说明.txt b/更新说明.txt index e2bcf947..da8897e6 100644 --- a/更新说明.txt +++ b/更新说明.txt @@ -11,7 +11,8 @@ 道具描述过长时可以自动换行 √ 除Autotile外均可自动注册 √ 重写大部分教程,新增大量拓展描述 √ -便捷PS工具修复宽大于高时的闪退问题 +部分素材进行了替换 √ +便捷PS工具偶尔的闪退问题 修复转向触发事件的朝向Bug √ 修复flyRange的顺序问题 √ 部分细节优化 √ From d6b217730bff25e826059eaa2dcb9bdf19ff389d Mon Sep 17 00:00:00 2001 From: oc Date: Fri, 18 May 2018 09:48:41 +0800 Subject: [PATCH 20/41] PGUP change floor --- _server/editor.js | 23 +++++++++++++++++++++++ 更新说明.txt | 8 +++----- 2 files changed, 26 insertions(+), 5 deletions(-) diff --git a/_server/editor.js b/_server/editor.js index 7f9d1fca..d2a6b517 100644 --- a/_server/editor.js +++ b/_server/editor.js @@ -542,6 +542,29 @@ editor.prototype.listen = function () { currDrawData = JSON.parse(JSON.stringify(reDo)); reDo = null; } + // PGUP和PGDOWN切换楼层 + if (e.keyCode==33) { + e.preventDefault(); + var index=editor.core.floorIds.indexOf(editor.currentFloorId); + if (index>0) { + var toId = editor.core.floorIds[index-1]; + editor_mode.onmode('nextChange'); + editor_mode.onmode('floor'); + document.getElementById('selectFloor').value = toId; + editor.changeFloor(toId); + } + } + if (e.keyCode==34) { + e.preventDefault(); + var index=editor.core.floorIds.indexOf(editor.currentFloorId); + if (index Date: Fri, 18 May 2018 15:14:21 +0800 Subject: [PATCH 21/41] Update Docs --- _server/blockly/MotaAction.g4 | 2 +- docs/api.md | 31 ++++---- docs/event.md | 19 ++++- docs/personalization.md | 141 +++++++++++++++++++++++++++++++--- 4 files changed, 168 insertions(+), 25 deletions(-) diff --git a/_server/blockly/MotaAction.g4 b/_server/blockly/MotaAction.g4 index e6f97b4f..4fc0c32f 100644 --- a/_server/blockly/MotaAction.g4 +++ b/_server/blockly/MotaAction.g4 @@ -1000,7 +1000,7 @@ function_s /* function_s -tooltip : function: 自定义JS脚本 +tooltip : function: 自定义JS脚本\n可以双击进行多行编辑,常见可能会被用到的系统API请参见文档的附录 helpUrl : https://ckcz123.github.io/mota-js/#/event?id=function%EF%BC%9A%E8%87%AA%E5%AE%9A%E4%B9%89js%E8%84%9A%E6%9C%AC default : ["alert(core.getStatus(\"atk\"));"] colour : this.dataColor diff --git a/docs/api.md b/docs/api.md index 23fdd3a7..fbd09055 100644 --- a/docs/api.md +++ b/docs/api.md @@ -1,4 +1,4 @@ -# 附录:API列表 +# 附录: API列表 ?> 目前版本**v2.2.1**,上次更新时间:* {docsify-updated} * @@ -8,6 +8,8 @@ 可以在chrome浏览器的控制台中(`ctrl+shift+I`,找到Console)中直接进行调用,以查看效果。 +**以下所有异步API都会加上[异步]的说明,存在此说明的请勿在事件处理的自定义脚本中使用。** + !> 最常用的新手向命令,强烈建议每个人了解 ``` text @@ -94,13 +96,14 @@ core.hasFlag('xyz') 返回是否存在某个变量且不为0。等价于 core.getFlag('xyz', 0)!=0 。 -core.insertAction(list) +core.insertAction(list, x, y, callback) 插入并执行一段自定义事件。在这里你可以写任意的自定义事件列表,有关详细写法请参见文档-事件。 +x和y如果设置则覆盖"当前事件点"的坐标,callback如果设置则覆盖事件执行完毕后的回调函数。 例如: core.insertAction(["楼层切换", {"type":"changeFloor", "floorId": "MT3"}]) 将依次显示剧情文本,并执行一个楼层切换的自定义事件。 -core.changeFloor(floorId, stair, heroLoc, time, callback) +core.changeFloor(floorId, stair, heroLoc, time, callback) [异步] 立刻切换到指定楼层。 floorId为目标楼层ID,stair为到达的目标楼梯,heroLoc为到达的指定点,time为动画时间,callback为切换完毕后的回调。 例如: @@ -140,12 +143,12 @@ core.nextX() core.nextY() 获得勇士面向的下一个位置的y坐标 -core.openDoor(id, x, y, needKey, callback) +core.openDoor(id, x, y, needKey, callback) [异步] 尝试开门操作。id为目标点的ID,x和y为坐标,needKey表示是否需要使用钥匙,callback为开门完毕后的回调函数。 例如:core.openDoor('yellowDoor', 10, 3, false, function() {console.log("1")}) -core.battle(id, x, y, force, callback) +core.battle(id, x, y, force, callback) [异步] 执行战斗事件。id为怪物的id,x和y为坐标,force为bool值表示是否是强制战斗,callback为战斗完毕后的回调函数。 例如:core.battle('greenSlime', null, null, true) @@ -220,8 +223,9 @@ core.drawTip(text, itemIcon) 在左上角绘制一段提示信息,2秒后消失。itemIcon为道具图标的索引。 -core.drawText(contents, callback) +core.drawText(contents, callback) [异步] 绘制一段文字。 +不推荐使用此函数,尽量使用core.insertAction(contents)来显示剧情文本。 core.closePanel() @@ -261,7 +265,7 @@ num如果设置大于0,则生成一个[0, num-1]之间的数;否则生成一 但是,此函数会将生成的随机数值存入录像,因此如果调用次数太多则会导致录像文件过大。 -core.restart() +core.restart() [异步] 返回标题界面。 @@ -346,15 +350,16 @@ core.events.gameOver(ending, fromReplay) 该函数将提问是否上传和是否下载录像,并返回标题界面。 -core.events.doEvents(list, x, y, callback) +core.events.doEvents(list, x, y, callback) [异步] 开始执行某个事件。 +请不要执行此函数,尽量使用 core.insertAction(list, x, y, callback) 来开始执行一段事件。 core.events.doAction() 执行下一个事件。此函数中将对所有自定义事件类型分别处理。 -core.events.openShop(shopId, needVisited) +core.events.openShop(shopId, needVisited) [异步] 打开一个全局商店。needVisited表示是否需要该商店已被打开过。 @@ -438,12 +443,12 @@ core.utils.decodeRoute(route) 解压缩(解密)路线。 -core.utils.readFile(success, error, readType) +core.utils.readFile(success, error, readType) [异步] 尝试请求读取一个本地文件内容。 success和error为成功/失败后的回调,readType不设置则以文本读取,否则以DataUrl形式读取。 -core.utils.readFileContent(content) +core.utils.readFileContent(content) [异步] 文件读取完毕后的内容处理。 @@ -455,9 +460,9 @@ core.utils.copy(data) 尝试复制一段文本到剪切板。 -core.utils.http(type, url, formData, success, error, mimeType, responseType) +core.utils.http(type, url, formData, success, error) [异步] 发送一个异步HTTP请求。 type为'GET'或者'POST';url为目标地址;formData如果是POST请求则为表单数据。 -success为成功后的回调,error为失败后的回调,最后两个参数如果设置则覆盖。 +success为成功后的回调,error为失败后的回调。 ``` diff --git a/docs/event.md b/docs/event.md index 2e3eda7b..7fe90b60 100644 --- a/docs/event.md +++ b/docs/event.md @@ -1169,7 +1169,24 @@ choices为一个数组,其中每一项都是一个选项列表。 `{"type":"function"}`需要有一个`"function"`参数,它是一个JS函数,里面可以写任何自定义的JS脚本;系统将会执行它。 -系统所有支持的API都在[附录](api)中给出,请进行参照。 +系统常见可能会被造塔所用到的的API都在[附录:API列表](api)中给出,请进行参照。 + +**警告:自定义脚本中只能执行同步代码,不可执行任何异步代码,比如直接调用core.changeFloor(...)之类都是不行的。** + +[附录:API列表](api)中的所有异步API都进行了标记;如果你不确定一个函数是同步的还是异步的,请向小艾咨询。 + +如果需要异步的代码都需要用事件(insertAction)来执行,这样事件处理过程和录像回放才不会出错。 + +举个例子,如果我们想随机切换到某个楼层的某个点,我们可以这么写自定义脚本: + +``` js +var toFloor = core.floorIds[core.rand(core.floorIds.length)]; // 随机一个楼层ID +var toX = core.rand(13), toY = core.rand(13); // 随机一个点 +core.insertAction([ + {"type": "changeFloor", "floorId": toFloor, "loc": [toX, toY]} // 插入一个changeFloor事件,并在该脚本结束后执行。 +]) +// 请勿直接调用 core.changeFloor(toFloor, ...),这个代码是异步的,会导致事件处理和录像出问题! +``` ## 同一个点的多事件处理 diff --git a/docs/personalization.md b/docs/personalization.md index d72a4e0b..f7a59f18 100644 --- a/docs/personalization.md +++ b/docs/personalization.md @@ -322,6 +322,39 @@ control.prototype.checkBlock = function () { !> terrains和animates的门ID必须完全一致,且以`Door`结尾;所对应的钥匙ID应当是把`Door`换成`Key`,这样才能对应的上! +## 覆盖楼传事件 + +对于特殊的塔,我们可以考虑修改楼传事件来完成一些特殊的要求,比如镜子可以按楼传来切换表里。 + +要修改楼传事件,需要进行如下几步: + +1. 截获楼传的点击事件。在control.js中找到useFly函数,并将其替换成如下内容: +``` js +////// 点击楼层传送器时的打开操作 ////// +control.prototype.useFly = function (need) { + if (!core.status.heroStop) { + core.drawTip("请先停止勇士行动"); + return; + } + if (core.canUseItem('fly')) core.useItem('fly'); + else core.drawTip("当前无法使用"+core.material.items.fly.name); +} +``` +2. 让录像记下楼传的使用。在items.js的useItem函数中找到记录路线的那几行,修改为: +``` js + // 记录路线 + if (itemId!='book') { // 把 `&& itemId!='fly'` 给删除 + core.status.route.push("item:"+itemId); + } +``` +3. 修改楼传的使用事件。和其他永久道具一样,在地图编辑器的图块属性中修改楼传的useItemEffect和canUseItemEffect两个内容。例如: +``` js +"useItemEffect": "core.insertAction([...])" // 执行某段自定义事件,或者其他脚本 +"canUseItemEffect": "true" // 任何时候可用 +``` +修改时,请先把`null`改成空字符串`""`,然后再双击进行编辑。 + + ## 自定义装备 由于HTML5魔塔并不像RM那样存在一个装备界面可供我们对装备进行调整,但是我们也可以使用一个替代的方式实现这个目标。 @@ -409,6 +442,37 @@ this.useEquipment = function (itemId) { // 使用装备 `getCritical`, `getCriticalDamage`和`getDefDamage`三个函数依次计算的是该怪物的临界值、临界减伤和1防减伤。也可以适当进行修改。 +## 自定义快捷键 + +如果需要绑定某个快捷键为处理一段事件,也是可行的。 + +要修改按键,我们可以在`actions.js`的`keyUp`进行处理: + +比如,我们设置一个快捷键进行绑定,比如`W`,其keycode是87。(有关每个键的keycode搜一下就能得到) + +然后在`actions.js`的`keyUp`函数的`switch`中进行处理。 + +``` js +case 87: // W + if (core.status.heroStop) { + // ... 在这里写你要执行脚本 + // 请使用同步脚本,请勿执行任何异步代码,否则可能导致游戏过程或录像出现问题。 + core.insertAction([...]) // 例如,插入一段自定义事件并执行。 + + core.status.route.push("key:"+keyCode); // 录像的支持!这句话必须要加,不然录像回放会出错! + } + break; +``` + + +在勇士处于停止的条件下,按下W键时,将执行你写的脚本代码。请只使用同步脚本而不要使用异步代码,不然可能导致游戏出现问题。 + +`core.status.route.push("key:"+keyCode);` 这句话是对录像的支持,一定要加(这样录像播放时也会模拟该按键)。 + +!> H5不支持组合快捷键,所以不存在`W+1`这种组合快捷键的说法! + +!> 手机端可以通过长按任何位置调出虚拟键盘,再进行按键,和键盘按键是等价的效果! + ## 公共事件 在RM中,存在公共事件的说法;也就是通过某个指令来调用一系列事件的触发。 @@ -533,26 +597,20 @@ core.statusBar.skill.innerHTML = core.getFlag('skillName', '无'); // 使用flag ### 技能的触发 -我们可以按键触发技能。 +我们可以按键触发技能。有关绑定按键请参见[自定义快捷键](#自定义快捷键)。 -要修改按键,我们可以在`actions.js`的`keyUp`进行处理: - -我们设置一个快捷键进行绑定,比如`W`,其keycode是87。(有关每个键的keycode搜一下就能得到) - -!> H5不支持组合快捷键,所以不存在`W+1`这种组合快捷键的说法! - -然后在`actions.js`的`keyUp`函数的`switch`中进行处理。 +下面是一个很简单的例子,当勇士按下W后,如果魔力不小于5点则允许开启技能"二倍斩",再次按W则关闭技能。 ``` js case 87: // W if (core.status.heroStop) { // 当前停止状态;这个if需要加,不能在行走过程中触发不然容易出错。 if (core.getFlag('skill', 0)==0) { // 判断当前是否已经开了技能 - if (能开技能) { // 这里要写当前能否开技能的条件判断 + if (core.getStatus('mana')>=5) { // 这里要写当前能否开技能的条件判断,比如魔力值至少要多少 core.setFlag('skill', 1); // 开技能1 core.setFlag('skillName', '二倍斩'); // 设置技能名 } else { - core.drawTip("当前不能开技能!"); + core.drawTip("魔力不足,无法开技能"); } } else { // 关闭技能 @@ -612,6 +670,69 @@ if (core.getFlag('skill', 0)==1) { // 开启了技能1 通过上述这几种方式,我们就能成功的让H5支持技能啦! +## 多角色的支持 + +其实,我们的样板还能支持多角色的制作。比如《黑·白·间》之类的塔也是完全可以刻的。 + +你只需要如下几步来达到多角色的效果。 + +1. 每个勇士弄一张行走图。相关信息参见[自定义事件:setHeroIcon](event#setHeroIcon:更改角色行走图) +2. [覆盖楼传事件](#覆盖楼传事件),这样可以通过点工具栏的楼层传送按钮来切换角色。 +当然你也完全可以自己写一个道具来实现,或[自定义快捷键](#自定义快捷键)来进行绑定。 +3. 在脚本编辑的setInitData中初始化新角色的属性值。 +``` js +// 所有需要保存的内容;这些保存的内容不会多角色共用,在切换时会进行恢复。 +// 你也可以自行新增或删除,比如不共用金币则可以加上"money"的初始化,不共用道具则可以加上"items"的初始化, +// 多勇士共用hp的话则删除hp,等等。 +var initData = { + "floorId": "MT0", // 该角色楼层ID + "icon": "hero2.png", // 角色的行走图名称 + "name": "2号角色", + "lv": 1, + "hp": 1000, + "atk": 10, + "def": 10, + "mdef": 0, + "loc": {"x": 0, "y": 0, "direction": "up"}, + // 不共用的数据都可以在这里加上定义 +} +core.setFlag("hero1", initData); // 将属性值存到变量中 +``` + +3. 道具(或快捷键)的脚本如下: +``` js +// 这个saveList和上面的初始化定义中的的key,除了不要icon(行走图名称)其他应完全相同。 +var saveList = ["floorId", "name", "lv", "hp", "atk", "def", "mdef", "loc"]; + +// 保存当前内容 +var toSave = {}; +saveList.forEach(function(name) { + if (name=='floorId') toSave[name] = core.status.floorId; // 楼层单独设置 + else toSave[name] = core.clone(core.status.hero[name]); // 使用core.clone()来创建新对象 +}) + +var currHeroId = core.getFlag("heroId", 0); // 获得当前角色ID +var toHeroId = (currHeroId+1)%2; // 获得要切换到的角色ID,比如 0->1,1->0 + +core.setFlag("hero"+currHeroId, toSave); // 将当前勇士信息进行保存 + +var data = core.getFlag("hero"+toHeroId); // 获得要切换的勇士保存内容 + +// 将勇士属性值设置回来 +saveList.forEach(function(name) { + if (core.isset(core.status.hero[name]) && core.isset(loadData[name])) + core.status.hero[name] = core.clone(loadData[name]); +}) + +// 插入事件:改变勇士行走图并进行楼层切换 +core.insertAction([ + {"type": "setHeroIcon", "name": loadData.icon||"hero.png"}, // 改变行走图 + {"type": "changeFloor", "floorId": loadData.floorId, "loc": [loadData.loc.x, loadData.loc.y], + "direction": loadData.loc.direction, "time": 0} +]) +core.setFlag("heroId", toHeroId); // 保存切换到的勇士ID +``` + ## 根据难度分歧来自定义地图 遗憾的是,所有地图数据必须在剧本的map中指定,换句话说,我们无法在游戏进行中动态修改地图,比如为简单难度增加一个血瓶。 From 05a77b50322285b55f27911e291dc32591cc5f45 Mon Sep 17 00:00:00 2001 From: ckcz123 Date: Fri, 18 May 2018 15:17:39 +0800 Subject: [PATCH 22/41] Update Docs --- docs/personalization.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/docs/personalization.md b/docs/personalization.md index f7a59f18..60df01c4 100644 --- a/docs/personalization.md +++ b/docs/personalization.md @@ -677,9 +677,9 @@ if (core.getFlag('skill', 0)==1) { // 开启了技能1 你只需要如下几步来达到多角色的效果。 1. 每个勇士弄一张行走图。相关信息参见[自定义事件:setHeroIcon](event#setHeroIcon:更改角色行走图) -2. [覆盖楼传事件](#覆盖楼传事件),这样可以通过点工具栏的楼层传送按钮来切换角色。 -当然你也完全可以自己写一个道具来实现,或[自定义快捷键](#自定义快捷键)来进行绑定。 +2. [覆盖楼传事件](#覆盖楼传事件),这样可以通过点工具栏的楼层传送按钮来切换角色。当然你也完全可以自己写一个道具,或[自定义快捷键](#自定义快捷键)来进行绑定。 3. 在脚本编辑的setInitData中初始化新角色的属性值。 + ``` js // 所有需要保存的内容;这些保存的内容不会多角色共用,在切换时会进行恢复。 // 你也可以自行新增或删除,比如不共用金币则可以加上"money"的初始化,不共用道具则可以加上"items"的初始化, @@ -699,7 +699,8 @@ var initData = { core.setFlag("hero1", initData); // 将属性值存到变量中 ``` -3. 道具(或快捷键)的脚本如下: +4. 道具(或快捷键)的脚本如下: + ``` js // 这个saveList和上面的初始化定义中的的key,除了不要icon(行走图名称)其他应完全相同。 var saveList = ["floorId", "name", "lv", "hp", "atk", "def", "mdef", "loc"]; From 2ef80ebbd78b2006107bdd70d338c98a6a9775a9 Mon Sep 17 00:00:00 2001 From: ckcz123 Date: Fri, 18 May 2018 15:22:57 +0800 Subject: [PATCH 23/41] Update Docs --- docs/personalization.md | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/docs/personalization.md b/docs/personalization.md index 60df01c4..1b3827ec 100644 --- a/docs/personalization.md +++ b/docs/personalization.md @@ -577,7 +577,7 @@ core.statusBar.mana.style.fontStyle = 'normal'; // 这一行会取消斜体。 ### 状态栏的显示 -首先我们需要额外新增一个状态栏;参见上面的自定义状态栏的做法来新增一栏。 +首先我们需要额外新增一个状态栏;请参见[自定义状态栏(新增显示项)](#自定义状态栏(新增显示项))。 我们可以在魔力那一行显示当前值和最大值: @@ -679,8 +679,7 @@ if (core.getFlag('skill', 0)==1) { // 开启了技能1 1. 每个勇士弄一张行走图。相关信息参见[自定义事件:setHeroIcon](event#setHeroIcon:更改角色行走图) 2. [覆盖楼传事件](#覆盖楼传事件),这样可以通过点工具栏的楼层传送按钮来切换角色。当然你也完全可以自己写一个道具,或[自定义快捷键](#自定义快捷键)来进行绑定。 3. 在脚本编辑的setInitData中初始化新角色的属性值。 - -``` js +```js // 所有需要保存的内容;这些保存的内容不会多角色共用,在切换时会进行恢复。 // 你也可以自行新增或删除,比如不共用金币则可以加上"money"的初始化,不共用道具则可以加上"items"的初始化, // 多勇士共用hp的话则删除hp,等等。 @@ -698,10 +697,8 @@ var initData = { } core.setFlag("hero1", initData); // 将属性值存到变量中 ``` - -4. 道具(或快捷键)的脚本如下: - -``` js +4. 道具(或快捷键)的脚本如下。 +```js // 这个saveList和上面的初始化定义中的的key,除了不要icon(行走图名称)其他应完全相同。 var saveList = ["floorId", "name", "lv", "hp", "atk", "def", "mdef", "loc"]; @@ -727,9 +724,9 @@ saveList.forEach(function(name) { // 插入事件:改变勇士行走图并进行楼层切换 core.insertAction([ - {"type": "setHeroIcon", "name": loadData.icon||"hero.png"}, // 改变行走图 - {"type": "changeFloor", "floorId": loadData.floorId, "loc": [loadData.loc.x, loadData.loc.y], - "direction": loadData.loc.direction, "time": 0} + {"type": "setHeroIcon", "name": data.icon||"hero.png"}, // 改变行走图 + {"type": "changeFloor", "floorId": data.floorId, "loc": [loadData.loc.x, loadData.loc.y], + "direction": data.loc.direction, "time": 0} // 楼层切换事件 ]) core.setFlag("heroId", toHeroId); // 保存切换到的勇士ID ``` From 66d89119b07048e7da31d541f754dbe3885779b4 Mon Sep 17 00:00:00 2001 From: ckcz123 Date: Fri, 18 May 2018 15:26:19 +0800 Subject: [PATCH 24/41] Update Docs --- docs/personalization.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/personalization.md b/docs/personalization.md index 1b3827ec..cadc07df 100644 --- a/docs/personalization.md +++ b/docs/personalization.md @@ -716,16 +716,16 @@ core.setFlag("hero"+currHeroId, toSave); // 将当前勇士信息进行保存 var data = core.getFlag("hero"+toHeroId); // 获得要切换的勇士保存内容 -// 将勇士属性值设置回来 +// 设置勇士属性值 saveList.forEach(function(name) { - if (core.isset(core.status.hero[name]) && core.isset(loadData[name])) - core.status.hero[name] = core.clone(loadData[name]); + if (core.isset(core.status.hero[name]) && core.isset(data[name])) + core.status.hero[name] = core.clone(data[name]); }) // 插入事件:改变勇士行走图并进行楼层切换 core.insertAction([ {"type": "setHeroIcon", "name": data.icon||"hero.png"}, // 改变行走图 - {"type": "changeFloor", "floorId": data.floorId, "loc": [loadData.loc.x, loadData.loc.y], + {"type": "changeFloor", "floorId": data.floorId, "loc": [data.loc.x, data.loc.y], "direction": data.loc.direction, "time": 0} // 楼层切换事件 ]) core.setFlag("heroId", toHeroId); // 保存切换到的勇士ID From 3880fe23cd00773bc253cd3769bb95b0acd429e5 Mon Sep 17 00:00:00 2001 From: ckcz123 Date: Fri, 18 May 2018 15:30:25 +0800 Subject: [PATCH 25/41] Update Docs --- docs/personalization.md | 102 ++++++++++++++++++++-------------------- 1 file changed, 51 insertions(+), 51 deletions(-) diff --git a/docs/personalization.md b/docs/personalization.md index cadc07df..a349317f 100644 --- a/docs/personalization.md +++ b/docs/personalization.md @@ -676,60 +676,60 @@ if (core.getFlag('skill', 0)==1) { // 开启了技能1 你只需要如下几步来达到多角色的效果。 -1. 每个勇士弄一张行走图。相关信息参见[自定义事件:setHeroIcon](event#setHeroIcon:更改角色行走图) +1. 每个勇士弄一张行走图。相关信息参见[自定义事件:setHeroIcon](event#setHeroIcon:更改角色行走图)。 2. [覆盖楼传事件](#覆盖楼传事件),这样可以通过点工具栏的楼层传送按钮来切换角色。当然你也完全可以自己写一个道具,或[自定义快捷键](#自定义快捷键)来进行绑定。 3. 在脚本编辑的setInitData中初始化新角色的属性值。 -```js -// 所有需要保存的内容;这些保存的内容不会多角色共用,在切换时会进行恢复。 -// 你也可以自行新增或删除,比如不共用金币则可以加上"money"的初始化,不共用道具则可以加上"items"的初始化, -// 多勇士共用hp的话则删除hp,等等。 -var initData = { - "floorId": "MT0", // 该角色楼层ID - "icon": "hero2.png", // 角色的行走图名称 - "name": "2号角色", - "lv": 1, - "hp": 1000, - "atk": 10, - "def": 10, - "mdef": 0, - "loc": {"x": 0, "y": 0, "direction": "up"}, - // 不共用的数据都可以在这里加上定义 -} -core.setFlag("hero1", initData); // 将属性值存到变量中 -``` + ``` js + // 所有需要保存的内容;这些保存的内容不会多角色共用,在切换时会进行恢复。 + // 你也可以自行新增或删除,比如不共用金币则可以加上"money"的初始化,不共用道具则可以加上"items"的初始化, + // 多勇士共用hp的话则删除hp,等等。 + var initData = { + "floorId": "MT0", // 该角色楼层ID + "icon": "hero2.png", // 角色的行走图名称 + "name": "2号角色", + "lv": 1, + "hp": 1000, + "atk": 10, + "def": 10, + "mdef": 0, + "loc": {"x": 0, "y": 0, "direction": "up"}, + // 不共用的数据都可以在这里加上定义 + } + core.setFlag("hero1", initData); // 将属性值存到变量中 + ``` 4. 道具(或快捷键)的脚本如下。 -```js -// 这个saveList和上面的初始化定义中的的key,除了不要icon(行走图名称)其他应完全相同。 -var saveList = ["floorId", "name", "lv", "hp", "atk", "def", "mdef", "loc"]; - -// 保存当前内容 -var toSave = {}; -saveList.forEach(function(name) { - if (name=='floorId') toSave[name] = core.status.floorId; // 楼层单独设置 - else toSave[name] = core.clone(core.status.hero[name]); // 使用core.clone()来创建新对象 -}) - -var currHeroId = core.getFlag("heroId", 0); // 获得当前角色ID -var toHeroId = (currHeroId+1)%2; // 获得要切换到的角色ID,比如 0->1,1->0 - -core.setFlag("hero"+currHeroId, toSave); // 将当前勇士信息进行保存 - -var data = core.getFlag("hero"+toHeroId); // 获得要切换的勇士保存内容 - -// 设置勇士属性值 -saveList.forEach(function(name) { - if (core.isset(core.status.hero[name]) && core.isset(data[name])) - core.status.hero[name] = core.clone(data[name]); -}) - -// 插入事件:改变勇士行走图并进行楼层切换 -core.insertAction([ - {"type": "setHeroIcon", "name": data.icon||"hero.png"}, // 改变行走图 - {"type": "changeFloor", "floorId": data.floorId, "loc": [data.loc.x, data.loc.y], - "direction": data.loc.direction, "time": 0} // 楼层切换事件 -]) -core.setFlag("heroId", toHeroId); // 保存切换到的勇士ID -``` + ``` js + // 这个saveList和上面的初始化定义中的的key,除了不要icon(行走图名称)其他应完全相同。 + var saveList = ["floorId", "name", "lv", "hp", "atk", "def", "mdef", "loc"]; + + // 保存当前内容 + var toSave = {}; + saveList.forEach(function(name) { + if (name=='floorId') toSave[name] = core.status.floorId; // 楼层单独设置 + else toSave[name] = core.clone(core.status.hero[name]); // 使用core.clone()来创建新对象 + }) + + var currHeroId = core.getFlag("heroId", 0); // 获得当前角色ID + var toHeroId = (currHeroId+1)%2; // 获得要切换到的角色ID,比如 0->1,1->0 + + core.setFlag("hero"+currHeroId, toSave); // 将当前勇士信息进行保存 + + var data = core.getFlag("hero"+toHeroId); // 获得要切换的勇士保存内容 + + // 设置勇士属性值 + saveList.forEach(function(name) { + if (core.isset(core.status.hero[name]) && core.isset(data[name])) + core.status.hero[name] = core.clone(data[name]); + }) + + // 插入事件:改变勇士行走图并进行楼层切换 + core.insertAction([ + {"type": "setHeroIcon", "name": data.icon||"hero.png"}, // 改变行走图 + {"type": "changeFloor", "floorId": data.floorId, "loc": [data.loc.x, data.loc.y], + "direction": data.loc.direction, "time": 0} // 楼层切换事件 + ]) + core.setFlag("heroId", toHeroId); // 保存切换到的勇士ID + ``` ## 根据难度分歧来自定义地图 From 79b116dc0c9a5d096c6fe66898f7e69d617701e8 Mon Sep 17 00:00:00 2001 From: ckcz123 Date: Fri, 18 May 2018 15:31:35 +0800 Subject: [PATCH 26/41] Update Docs --- docs/personalization.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/personalization.md b/docs/personalization.md index a349317f..030fd3c4 100644 --- a/docs/personalization.md +++ b/docs/personalization.md @@ -679,7 +679,7 @@ if (core.getFlag('skill', 0)==1) { // 开启了技能1 1. 每个勇士弄一张行走图。相关信息参见[自定义事件:setHeroIcon](event#setHeroIcon:更改角色行走图)。 2. [覆盖楼传事件](#覆盖楼传事件),这样可以通过点工具栏的楼层传送按钮来切换角色。当然你也完全可以自己写一个道具,或[自定义快捷键](#自定义快捷键)来进行绑定。 3. 在脚本编辑的setInitData中初始化新角色的属性值。 - ``` js + ```js // 所有需要保存的内容;这些保存的内容不会多角色共用,在切换时会进行恢复。 // 你也可以自行新增或删除,比如不共用金币则可以加上"money"的初始化,不共用道具则可以加上"items"的初始化, // 多勇士共用hp的话则删除hp,等等。 @@ -698,7 +698,7 @@ if (core.getFlag('skill', 0)==1) { // 开启了技能1 core.setFlag("hero1", initData); // 将属性值存到变量中 ``` 4. 道具(或快捷键)的脚本如下。 - ``` js + ```js // 这个saveList和上面的初始化定义中的的key,除了不要icon(行走图名称)其他应完全相同。 var saveList = ["floorId", "name", "lv", "hp", "atk", "def", "mdef", "loc"]; From 5ec3d146ca0a4a58447eba39b0b8b4527b6182d7 Mon Sep 17 00:00:00 2001 From: ckcz123 Date: Fri, 18 May 2018 15:32:22 +0800 Subject: [PATCH 27/41] Update Docs --- docs/personalization.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/personalization.md b/docs/personalization.md index 030fd3c4..3791e943 100644 --- a/docs/personalization.md +++ b/docs/personalization.md @@ -712,23 +712,23 @@ if (core.getFlag('skill', 0)==1) { // 开启了技能1 var currHeroId = core.getFlag("heroId", 0); // 获得当前角色ID var toHeroId = (currHeroId+1)%2; // 获得要切换到的角色ID,比如 0->1,1->0 - core.setFlag("hero"+currHeroId, toSave); // 将当前勇士信息进行保存 + core.setFlag("hero"+currHeroId, toSave); // 将当前角色信息进行保存 - var data = core.getFlag("hero"+toHeroId); // 获得要切换的勇士保存内容 + var data = core.getFlag("hero"+toHeroId); // 获得要切换的角色保存内容 - // 设置勇士属性值 + // 设置角色的属性值 saveList.forEach(function(name) { if (core.isset(core.status.hero[name]) && core.isset(data[name])) core.status.hero[name] = core.clone(data[name]); }) - // 插入事件:改变勇士行走图并进行楼层切换 + // 插入事件:改变角色行走图并进行楼层切换 core.insertAction([ {"type": "setHeroIcon", "name": data.icon||"hero.png"}, // 改变行走图 {"type": "changeFloor", "floorId": data.floorId, "loc": [data.loc.x, data.loc.y], "direction": data.loc.direction, "time": 0} // 楼层切换事件 ]) - core.setFlag("heroId", toHeroId); // 保存切换到的勇士ID + core.setFlag("heroId", toHeroId); // 保存切换到的角色ID ``` ## 根据难度分歧来自定义地图 From 19387b29d52c58828975cc0edfd0ee917601624a Mon Sep 17 00:00:00 2001 From: ckcz123 Date: Fri, 18 May 2018 15:35:52 +0800 Subject: [PATCH 28/41] Update Docs --- docs/personalization.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/personalization.md b/docs/personalization.md index 3791e943..0b979678 100644 --- a/docs/personalization.md +++ b/docs/personalization.md @@ -676,13 +676,13 @@ if (core.getFlag('skill', 0)==1) { // 开启了技能1 你只需要如下几步来达到多角色的效果。 -1. 每个勇士弄一张行走图。相关信息参见[自定义事件:setHeroIcon](event#setHeroIcon:更改角色行走图)。 +1. 每个角色弄一张行走图。相关信息参见[自定义事件:setHeroIcon](event#setHeroIcon:更改角色行走图)。 2. [覆盖楼传事件](#覆盖楼传事件),这样可以通过点工具栏的楼层传送按钮来切换角色。当然你也完全可以自己写一个道具,或[自定义快捷键](#自定义快捷键)来进行绑定。 3. 在脚本编辑的setInitData中初始化新角色的属性值。 ```js // 所有需要保存的内容;这些保存的内容不会多角色共用,在切换时会进行恢复。 // 你也可以自行新增或删除,比如不共用金币则可以加上"money"的初始化,不共用道具则可以加上"items"的初始化, - // 多勇士共用hp的话则删除hp,等等。 + // 多角色共用hp的话则删除hp,等等。总之,不共用的属性都在这里进行定义就好。 var initData = { "floorId": "MT0", // 该角色楼层ID "icon": "hero2.png", // 角色的行走图名称 From 467c25837ebc06bb59966425ad4429a1a8ff690c Mon Sep 17 00:00:00 2001 From: ckcz123 Date: Fri, 18 May 2018 15:36:25 +0800 Subject: [PATCH 29/41] Update Docs --- docs/personalization.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/personalization.md b/docs/personalization.md index 0b979678..91993245 100644 --- a/docs/personalization.md +++ b/docs/personalization.md @@ -582,7 +582,7 @@ core.statusBar.mana.style.fontStyle = 'normal'; // 这一行会取消斜体。 我们可以在魔力那一行显示当前值和最大值: ``` js -core.setStatus('mana', Math.min(core.getStatus('mana'), core.getStatus('manaMax')); // 如果魔力存在上限,则不能超过其上限值 +core.setStatus('mana', Math.min(core.getStatus('mana'), core.getStatus('manaMax'))); // 如果魔力存在上限,则不能超过其上限值 core.statusBar.mana.innerHTML = core.getStatus('mana') + '/' + core.getStatus('manaMax', 0); // 显示比如 6/30 这样 ``` From 303fb53dbfcd6c17f30f939c2625ac023f1f6ecd Mon Sep 17 00:00:00 2001 From: oc Date: Sat, 19 May 2018 00:36:13 +0800 Subject: [PATCH 30/41] debug mode --- _server/blockly/MotaAction.g4 | 2 +- docs/api.md | 3 ++- docs/start.md | 4 +++- libs/actions.js | 16 ++++++++++++++-- libs/control.js | 23 +++++++++++++++++++---- libs/core.js | 1 + libs/events.js | 5 +++++ libs/ui.js | 4 ++-- project/data.js | 6 +----- 常用工具/便捷PS工具.exe | Bin 24064 -> 24064 bytes 更新说明.txt | 2 +- 11 files changed, 49 insertions(+), 17 deletions(-) diff --git a/_server/blockly/MotaAction.g4 b/_server/blockly/MotaAction.g4 index 4fc0c32f..0ec2654b 100644 --- a/_server/blockly/MotaAction.g4 +++ b/_server/blockly/MotaAction.g4 @@ -1000,7 +1000,7 @@ function_s /* function_s -tooltip : function: 自定义JS脚本\n可以双击进行多行编辑,常见可能会被用到的系统API请参见文档的附录 +tooltip : 可双击多行编辑,请勿使用异步代码。常见API参见文档附录。 helpUrl : https://ckcz123.github.io/mota-js/#/event?id=function%EF%BC%9A%E8%87%AA%E5%AE%9A%E4%B9%89js%E8%84%9A%E6%9C%AC default : ["alert(core.getStatus(\"atk\"));"] colour : this.dataColor diff --git a/docs/api.md b/docs/api.md index fbd09055..179774bf 100644 --- a/docs/api.md +++ b/docs/api.md @@ -43,7 +43,8 @@ core.material.items core.debug() -将攻防设置为10000,近似于无敌模式。 +开启调试模式。此模式下可以按Ctrl键进行穿墙,并忽略一切事件。 +此模式下不可回放录像和上传成绩。 core.updateStatusBar() diff --git a/docs/start.md b/docs/start.md index 4fe8ecc9..180d2002 100644 --- a/docs/start.md +++ b/docs/start.md @@ -30,6 +30,8 @@ * “JS代码压缩工具”能对JS代码进行压缩,从而减少IO请求数和文件大小。 * “伤害和临界值计算器”是一个很便捷的小工具,能对怪物的伤害和临界值进行计算。 +!> **整个造塔过程中,启动服务必须全程处于开启状态!切不可手滑关闭,否则做的都是无用功!** + ## 绘制地图 有两种绘制地图的方式:从头绘制地图;从RMXP中导入已有的地图。 @@ -186,7 +188,7 @@ HTML5的塔都是可以进行控制台调试的。 - `core.status.hero` 获得当前勇士状态信息。例如`core.status.hero.atk`就是当前勇士的攻击力数值。 - `core.material.enemys` 获得所有怪物信息。例如`core.material.enemys.greenSlime`就是获得绿色史莱姆的属性数据。 - `core.material.items` 获得所有道具的信息。例如`core.material.items.pickaxe`就是获得破墙镐的信息。 -- `core.debug()` 无敌模式;使用此命令将会把攻防都置为10000,方便进行乱撞。 +- `core.debug()` 开启调试模式;此模式下可以按住Ctrl键进行穿墙。 - `core.updateStatusBar()` 立刻更新状态栏和地图显伤。 - `core.setStatus('atk', 1000)` 直接设置勇士的某项属性。本句等价于 `core.status.hero.atk = 1000`。 - `core.getStatus('atk')` 返回勇士当前某项属性数值。本句等价于 `core.status.hero.atk`。 diff --git a/libs/actions.js b/libs/actions.js index f9148392..65260f5b 100644 --- a/libs/actions.js +++ b/libs/actions.js @@ -25,6 +25,7 @@ actions.prototype.onkeyDown = function (e) { core.status.holdingKeys.push(e.keyCode); this.pressKey(e.keyCode); } else { + if (e.keyCode==17) core.status.ctrlDown = true; this.keyDown(e.keyCode); } } @@ -60,6 +61,7 @@ actions.prototype.onkeyUp = function(e) { } this.keyUp(e.keyCode); } else { + if (e.keyCode==17) core.status.ctrlDown = false; this.keyUp(e.keyCode); } } @@ -337,8 +339,14 @@ actions.prototype.keyUp = function(keyCode, fromReplay) { core.ui.drawHelp(); break; case 82: // R - if (core.status.heroStop) - core.ui.drawReplay(); + if (core.status.heroStop) { + if (core.hasFlag('debug')) { + core.drawText("\t[系统提示]调试模式下无法回放录像"); + } + else { + core.ui.drawReplay(); + } + } break; case 33: case 34: // PAGEUP/PAGEDOWN if (core.status.heroStop) { @@ -1703,6 +1711,10 @@ actions.prototype.clickSyncSave = function (x,y) { }); break; case 4: + if (core.hasFlag('debug')) { + core.drawText("\t[系统提示]调试模式下无法下载录像"); + break; + } core.download(core.firstData.name+"_"+core.formatDate2(new Date())+".h5route", JSON.stringify({ 'name': core.firstData.name, 'hard': core.status.hard, diff --git a/libs/control.js b/libs/control.js index 7c15fb88..48437c91 100644 --- a/libs/control.js +++ b/libs/control.js @@ -621,6 +621,7 @@ control.prototype.moveAction = function (callback) { if (core.status.event.id!='ski') core.status.route.push(direction); core.status.automaticRoute.moveStepBeforeStop = []; + core.status.automaticRoute.lastDirection = core.getHeroLoc('direction'); if (canMove) // 非箭头:触发 core.trigger(x + scan[direction].x, y + scan[direction].y); core.drawHero(direction, x, y); @@ -676,7 +677,7 @@ control.prototype.turnHero = function() { ////// 让勇士开始移动 ////// control.prototype.moveHero = function (direction, callback) { // 如果正在移动,直接return - if (core.status.heroMoving>0) return; + if (core.status.heroMoving!=0) return; if (core.isset(direction)) core.setHeroLoc('direction', direction); if (!core.isset(callback)) { // 如果不存在回调函数,则使用heroMoveTrigger @@ -685,8 +686,18 @@ control.prototype.moveHero = function (direction, callback) { var doAction = function () { if (!core.status.heroStop) { - core.moveAction(); - setTimeout(doAction, 50); + if (core.hasFlag('debug') && core.status.ctrlDown) { + if (core.status.heroMoving!=0) return; + core.status.heroMoving=-1; + core.eventMoveHero([core.getHeroLoc('direction')], 100, function () { + core.status.heroMoving=0; + doAction(); + }); + } + else { + core.moveAction(); + setTimeout(doAction, 50); + } } else { core.stopHero(); @@ -1371,8 +1382,11 @@ control.prototype.doEffect = function (expression) { } } -////// 作弊 ////// +////// 开启debug模式 ////// control.prototype.debug = function() { + core.setFlag('debug', true); + core.insertAction(["\t[调试模式开启]此模式下按住Ctrl键可以穿墙并忽略一切事件。\n同时,录像将失效,也无法上传成绩。"]); + /* core.setStatus('hp', 999999); core.setStatus('atk', 10000); core.setStatus('def', 10000); @@ -1389,6 +1403,7 @@ control.prototype.debug = function() { core.status.hero.flyRange.push(i); core.updateStatusBar(); core.drawTip("作弊成功"); + */ } ////// 开始播放 ////// diff --git a/libs/core.js b/libs/core.js index 888725f0..8eee43fd 100644 --- a/libs/core.js +++ b/libs/core.js @@ -107,6 +107,7 @@ function core() { // 按下键的时间:为了判定双击 'downTime': null, + 'ctrlDown': false, // 路线&回放 'route': [], diff --git a/libs/events.js b/libs/events.js index a0018f7b..09da3f66 100644 --- a/libs/events.js +++ b/libs/events.js @@ -228,6 +228,11 @@ events.prototype.gameOver = function (ending, fromReplay) { core.restart(); }); } + else if (core.hasFlag('debug')) { + core.drawText("\t[系统提示]调试模式下无法上传成绩", function () { + core.restart(); + }) + } else { confirmUpload(); } diff --git a/libs/ui.js b/libs/ui.js index ef9adc03..0d42b692 100644 --- a/libs/ui.js +++ b/libs/ui.js @@ -668,8 +668,8 @@ ui.prototype.drawChoices = function(content, choices) { if (choices.length>0) { if (!core.isset(core.status.event.selection)) core.status.event.selection=0; - if (core.status.event.selection<0) core.status.event.selection=0; - if (core.status.event.selection>=choices.length) core.status.event.selection=choices.length-1; + while (core.status.event.selection<0) core.status.event.selection+=choices.length; + while (core.status.event.selection>=choices.length) core.status.event.selection-=choices.length; var len = core.canvas.ui.measureText(core.replaceText(choices[core.status.event.selection].text || choices[core.status.event.selection])).width; core.strokeRect('ui', 208-len/2-5, choice_top + 32 * core.status.event.selection - 20, len+10, 28, "#FFD700", 2); } diff --git a/project/data.js b/project/data.js index 63a4c455..15d26b0a 100644 --- a/project/data.js +++ b/project/data.js @@ -49,11 +49,7 @@ data_a1e2fb4a_e986_4524_b0da_9b7ba7c0874d = }, "flyRange": [], "loc": {"direction": "up", "x": 6, "y": 10}, - "flags": { - "poison": false, - "weak": false, - "curse": false, - }, + "flags": {}, "steps": 0, }, "startText": [ diff --git a/常用工具/便捷PS工具.exe b/常用工具/便捷PS工具.exe index 78a9c25e870f6c7a44033daf916c754860371042..3f5deca032b4c7119ad12eadef31f613e8f9c436 100644 GIT binary patch delta 102 zcmV-s0Ga=Qya9l`0g#9T@Yw#bi@*c{6q8H^odFcH>IK?I5L>U|VLRxzPn_E#N1CvZ z%(K)@xCI07*#47`QyC!`R1{_gxT;EvXEf^`<~%zm0001GI$UFLa9nnCGB7bRlfqN? Iv%pk92~4CcAOHXW delta 98 zcmV-o0GIK?I5XYd>tX_GiMuMcRug(Et zcC*w?xCH}5uI`hMQyCiR6{+j{>d!`@Z4>7Ot+xOH0001GI$UFLaFfYX_mMCMv%pk9 E368ldng9R* diff --git a/更新说明.txt b/更新说明.txt index 0a123cf2..fb516de6 100644 --- a/更新说明.txt +++ b/更新说明.txt @@ -6,13 +6,13 @@ 衰弱可以减少攻防的比例 √ 地图数据统计 支持 status:x 获得当前坐标 √ +core.debug()改成调试模式,可以Ctrl穿墙 √ 最大存档个数提到main处理 √ 新建地图可以保留楼层属性 √ 地图编辑器可用PageUp和PageDown切换楼层 √ 道具描述过长时可以自动换行 √ 除Autotile外均可自动注册 √ 重写大部分教程,新增大量拓展描述 √ -便捷PS工具偶尔的闪退问题 大量细节进行优化,所有已知的bug进行了修复 √ ----------------------------------------------------------------------- From 1a1a4955cccd5e1158a2bfeff0d0d7b2e76ae698 Mon Sep 17 00:00:00 2001 From: oc Date: Sat, 19 May 2018 22:50:30 +0800 Subject: [PATCH 31/41] modify long click --- libs/actions.js | 29 +++++++++++++++++------------ 1 file changed, 17 insertions(+), 12 deletions(-) diff --git a/libs/actions.js b/libs/actions.js index 65260f5b..5e67dae5 100644 --- a/libs/actions.js +++ b/libs/actions.js @@ -417,7 +417,7 @@ actions.prototype.ondown = function (x ,y) { core.timeout.onDownTimeout = setTimeout(function () { if (core.interval.onDownInterval == null) { core.interval.onDownInterval = setInterval(function () { - if (!core.actions.longClick()) { + if (!core.actions.longClick(x, y, true)) { clearInterval(core.interval.onDownInterval); core.interval.onDownInterval = null; } @@ -488,10 +488,7 @@ actions.prototype.onup = function () { // 长按 if (!core.status.lockControl && stepPostfix.length==0 && core.status.downTime!=null && new Date()-core.status.downTime>=1000) { - core.waitHeroToStop(function () { - // 绘制快捷键 - core.ui.drawKeyBoard(); - }); + this.longClick(posx, posy); } else { //posx,posy是寻路的目标点,stepPostfix是后续的移动 @@ -717,15 +714,23 @@ actions.prototype.onmousewheel = function (direct) { /////////////////// 在某个界面时的按键点击效果 /////////////////// ////// 长按 ////// -actions.prototype.longClick = function () { +actions.prototype.longClick = function (x, y, fromEvent) { if (!core.isPlaying()) return false; - if (core.status.event.id=='text') { - core.drawText(); - return true; + if (core.status.lockControl) { + if (core.status.event.id=='text') { + core.drawText(); + return true; + } + if (core.status.event.id=='action' && core.status.event.data.type=='text') { + core.doAction(); + return true; + } } - if (core.status.event.id=='action' && core.status.event.data.type=='text') { - core.doAction(); - return true; + else if (!fromEvent) { + core.waitHeroToStop(function () { + // 绘制快捷键 + core.ui.drawKeyBoard(); + }); } return false; } From 609552e0139856560af7fdcf5e2b2d8f5f52e16e Mon Sep 17 00:00:00 2001 From: oc Date: Sun, 20 May 2018 19:19:29 +0800 Subject: [PATCH 32/41] fix bug --- main.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/main.js b/main.js index 7cbb42fd..bf79363d 100644 --- a/main.js +++ b/main.js @@ -503,9 +503,9 @@ main.dom.replayGame.onclick = function () { core.dom.startPanel.style.display = 'none'; core.resetStatus(core.firstData.hero, obj.hard, core.firstData.floorId, null, core.initStatus.maps); - core.events.setInitData(obj.hard); core.setFlag('seed', obj.seed); core.setFlag('rand', obj.seed); + core.events.setInitData(obj.hard); core.changeFloor(core.status.floorId, null, core.firstData.hero.loc, null, function() { core.startReplay(core.decodeRoute(obj.route)); }, true); From 98137082c445166a9b9195e7172c99004e597a50 Mon Sep 17 00:00:00 2001 From: oc Date: Tue, 22 May 2018 14:27:32 +0800 Subject: [PATCH 33/41] criticals --- docs/api.md | 24 +++++------ libs/control.js | 4 +- libs/enemys.js | 112 ++++++++++++++++++++---------------------------- libs/events.js | 18 +++++--- libs/ui.js | 6 ++- 5 files changed, 77 insertions(+), 87 deletions(-) diff --git a/docs/api.md b/docs/api.md index 179774bf..92bc289b 100644 --- a/docs/api.md +++ b/docs/api.md @@ -313,27 +313,21 @@ core.enemys.getExtraDamage(enemyId) core.enemys.nextCriticals(enemyId, number) -返回接下来number个该怪物的临界。列表每一项类似 "x:y" 表示临界值为x,该临界减伤为y。 +返回一个列表,为接下来number(可忽略,默认为1)个该怪物的临界值和临界减伤。 +列表每一项类似 [x,y] 表示临界值为x,且临界减伤为y。 +如果无临界值,则返回空列表。 -core.enemys.getCritical(enemyId) -返回怪物的下一个临界值。无临界(如坚固、魔防等)返回'???'。 +core.enemys.getDefDamage(enemyId, k) +获得k(可忽略,默认为1)防减伤值。 -core.enemys.getCriticalDamage(enemyId) -获得怪物的下一个临界减伤。 - - -core.enemys.getDefDamage(enemyId) -获得一防减伤值。 - - -core.enemys.getDamageInfo(enemyId, hero_hp, hero_atk, hero_def, hero_mdef) +core.enemys.getDamageInfo(enemy, hero_hp, hero_atk, hero_def, hero_mdef) 获得实际战斗信息,比如伤害,回合数,每回合伤害等等。 此函数是实际战斗过程的计算。 -core.enemys.calDamage(enemyId, hero_hp, hero_atk, hero_def, hero_mdef) +core.enemys.calDamage(enemy, hero_hp, hero_atk, hero_def, hero_mdef) 计算战斗伤害;实际返回的是上面getDamageInfo中伤害的数值。 @@ -372,6 +366,10 @@ core.events.canUseQuickShop(shopId) 当前能否使用某个快捷商店 +core.events.setHeroIcon(name) +设置勇士行走图 + + ========== core.items.XXX 和道具相关的函数 ========== items.js将处理和道具相关的内容,比如道具的使用,获取和删除等等。 diff --git a/libs/control.js b/libs/control.js index 48437c91..429b9af7 100644 --- a/libs/control.js +++ b/libs/control.js @@ -1331,7 +1331,9 @@ control.prototype.updateFg = function () { // 临界显伤 if (core.flags.displayCritical) { - var critical = core.formatBigNumber(core.enemys.getCritical(id)); + var critical = core.enemys.nextCriticals(id); + if (critical.length>0) critical=critical[0]; + critical = core.formatBigNumber(critical[0]); if (critical == '???') critical = '?'; core.setFillStyle('fg', '#000000'); core.canvas.fg.fillText(critical, 32 * x + 2, 32 * (y + 1) - 2 - 10); diff --git a/libs/enemys.js b/libs/enemys.js index 1b4158ff..bdc5e7a0 100644 --- a/libs/enemys.js +++ b/libs/enemys.js @@ -132,92 +132,63 @@ enemys.prototype.getExtraDamage = function (monster) { return extra_damage; } -////// 接下来若干个临界值计算 ///// +////// 接下来N个临界值和临界减伤计算 ////// enemys.prototype.nextCriticals = function (monsterId, number) { - number = number||1; + var useTurn = true; // 是否使用回合法计算临界值;如果要用循环法,则直接改为false。 + number = number||1; var monster = core.material.enemys[monsterId]; // 坚固、模仿怪物没有临界! if (this.hasSpecial(monster.special, 3) || this.hasSpecial(monster.special, 10)) return []; - var info = this.getDamageInfo(monster, core.status.hero.hp, core.status.hero.atk, core.status.hero.def, core.status.hero.mdef); if (info == null) { if (core.status.hero.atk<=monster.def) { - return [(monster.def+1-core.status.hero.atk)+":?"]; + return [[monster.def+1-core.status.hero.atk,'?']]; } return []; } - if (info.damage <= 0) return []; - - var mon_hp = info.mon_hp, hero_atk = core.status.hero.atk, mon_def = monster.def, turn = info.turn; - - if (turn<=1) return []; var list = [], pre = null; + var mon_hp = info.mon_hp, hero_atk = core.status.hero.atk, mon_def = monster.def, turn = info.turn; - for (var t = turn-1;t>=1;t--) { - var nextAtk = Math.ceil(mon_hp/t) + mon_def; - if (nextAtk<=hero_atk) break; - if (nextAtk!=pre) { - var nextInfo = this.getDamageInfo(monster, core.status.hero.hp, nextAtk, core.status.hero.def, core.status.hero.mdef); - if (nextInfo==null) break; - list.push((nextAtk-hero_atk)+":"+(info.damage-nextInfo.damage)); - if (nextInfo.damage<=0) break; - pre = nextAtk; + if (useTurn) { // 回合数计算法 + for (var t = turn-1;t>=1;t--) { + var nextAtk = Math.ceil(mon_hp/t) + mon_def; + if (nextAtk<=hero_atk) break; + if (nextAtk!=pre) { + var nextInfo = this.getDamageInfo(monster, core.status.hero.hp, nextAtk, core.status.hero.def, core.status.hero.mdef); + if (nextInfo==null) break; + list.push([nextAtk-hero_atk,info.damage-nextInfo.damage]); + pre = nextAtk; + } + if (list.length>=number) + break; } - if (list.length>=number) - break; } + else { // 暴力for循环法 + pre = info.damage; + for (var atk=hero_atk+1;atk<=mon_hp+mon_def;atk++) { + var nextInfo = this.getDamageInfo(monster, core.status.hero.hp, atk, core.status.hero.def, core.status.hero.mdef); + if (nextInfo==null) break; + if (pre>nextInfo.damage) { + pre = nextInfo.damage; + list.push([atk-hero_atk, info.damage-nextInfo.damage]); + if (list.length>=number) break; + } + } + } + if (list.length==0) list.push([0,0]); return list; } -////// 临界值计算 ////// -enemys.prototype.getCritical = function (monsterId) { - var monster = core.material.enemys[monsterId]; - // 坚固、模仿怪物没有临界! - if (this.hasSpecial(monster.special, 3) || this.hasSpecial(monster.special, 10)) return "???"; - - var info = this.getDamageInfo(monster, core.status.hero.hp, core.status.hero.atk, core.status.hero.def, core.status.hero.mdef); - - if (info == null) { - if (core.status.hero.atk<=monster.def) - return monster.def+1-core.status.hero.atk; - return '???'; - } - if (info.damage <= 0) return 0; - - var mon_hp = info.mon_hp, hero_atk = core.status.hero.atk, mon_def = monster.def, turn = info.turn; - - // turn 是勇士攻击次数 - if (turn<=1) return 0; // 攻杀 - - // 每回合最小伤害 = ⎡怪物生命/勇士攻击次数⎤ - var nextAtk = Math.ceil(mon_hp/(turn-1)) + mon_def; - - if (nextAtk <= hero_atk) return 0; - return nextAtk - hero_atk; - -} - -////// 临界减伤计算 ////// -enemys.prototype.getCriticalDamage = function (monsterId) { - var c = this.getCritical(monsterId); - if (c == '???') return '???'; - if (c <= 0) return 0; - var monster = core.material.enemys[monsterId]; - var last = this.calDamage(monster, core.status.hero.hp, core.status.hero.atk, core.status.hero.def, core.status.hero.mdef); - var now = this.calDamage(monster, core.status.hero.hp, core.status.hero.atk+c, core.status.hero.def, core.status.hero.mdef); - if (last == null || now==null) return '???'; - return last - now; -} - -////// 1防减伤计算 ////// -enemys.prototype.getDefDamage = function (monsterId) { +////// N防减伤计算 ////// +enemys.prototype.getDefDamage = function (monsterId, k) { + k = k || 1; var monster = core.material.enemys[monsterId]; var nowDamage = this.calDamage(monster, core.status.hero.hp, core.status.hero.atk, core.status.hero.def, core.status.hero.mdef); - var nextDamage = this.calDamage(monster, core.status.hero.hp, core.status.hero.atk, core.status.hero.def + 1, core.status.hero.mdef); + var nextDamage = this.calDamage(monster, core.status.hero.hp, core.status.hero.atk, core.status.hero.def + k, core.status.hero.mdef); if (nowDamage == null || nextDamage ==null) return "???"; return nowDamage - nextDamage; } @@ -225,6 +196,10 @@ enemys.prototype.getDefDamage = function (monsterId) { ////// 获得战斗伤害信息 ////// enemys.prototype.getDamageInfo = function(monster, hero_hp, hero_atk, hero_def, hero_mdef) { + if (typeof monster == 'string') { + monster = core.material.enemys[monster]; + } + var mon_hp = monster.hp, mon_atk = monster.atk, mon_def = monster.def, mon_special = monster.special; hero_hp=Math.max(0, hero_hp); hero_atk=Math.max(0, hero_atk); @@ -310,6 +285,10 @@ enemys.prototype.getDamageInfo = function(monster, hero_hp, hero_atk, hero_def, ////// 具体的伤害计算公式 ////// enemys.prototype.calDamage = function (monster, hero_hp, hero_atk, hero_def, hero_mdef) { + if (typeof monster == 'string') { + monster = core.material.enemys[monsterId]; + } + var info = this.getDamageInfo(monster, hero_hp, hero_atk, hero_def, hero_mdef); if (info == null) return null; return info.damage; @@ -341,6 +320,9 @@ enemys.prototype.getCurrentEnemys = function (floorId) { if (specialText.length>=3) specialText = "多属性..."; else specialText = specialText.join(" "); + var critical = this.nextCriticals(monsterId); + if (critical.length>0) critical=critical[0]; + enemys.push({ 'id': monsterId, 'name': monster.name, @@ -352,8 +334,8 @@ enemys.prototype.getCurrentEnemys = function (floorId) { 'point': monster.point||0, // 加点 'special': specialText, 'damage': this.getDamage(monsterId), - 'critical': this.getCritical(monsterId), - 'criticalDamage': this.getCriticalDamage(monsterId), + 'critical': critical[0], + 'criticalDamage': critical[1], 'defDamage': this.getDefDamage(monsterId) }); diff --git a/libs/events.js b/libs/events.js index 09da3f66..b8f2f1b4 100644 --- a/libs/events.js +++ b/libs/events.js @@ -643,13 +643,7 @@ events.prototype.doAction = function() { break; case "setHeroIcon": { - var name = "hero.png"; - if (core.isset(core.material.images.images[data.name]) && core.material.images.images[data.name].width==128) - name = data.name; - core.setFlag("heroIcon", name); - core.material.images.hero.src = core.material.images.images[name].src; - core.material.icons.hero.height = core.material.images.images[name].height/4; - core.drawHero(); + this.setHeroIcon(data.name); this.doAction(); break; } @@ -1256,6 +1250,16 @@ events.prototype.canUseQuickShop = function(shopId) { return null; } +////// 设置角色行走图 ////// +events.prototype.setHeroIcon = function (name) { + if (core.isset(core.material.images.images[name]) && core.material.images.images[name].width==128) { + core.setFlag("heroIcon", name); + core.material.images.hero.src = core.material.images.images[name].src; + core.material.icons.hero.height = core.material.images.images[name].height/4; + core.drawHero(); + } +} + ////// 检查升级事件 ////// events.prototype.checkLvUp = function () { if (!core.flags.enableLevelUp || core.status.hero.lv>=core.firstData.levelUp.length) return; diff --git a/libs/ui.js b/libs/ui.js index 0d42b692..1520a02c 100644 --- a/libs/ui.js +++ b/libs/ui.js @@ -1341,7 +1341,11 @@ ui.prototype.drawBookDetail = function (index) { hints.push("该怪物无特殊属性。"); hints.push(""); - hints.push("临界表:"+JSON.stringify(core.enemys.nextCriticals(enemyId,10))) + var criticals = core.enemys.nextCriticals(enemyId, 10).map(function (v) { + return v[0]+":"+v[1]; + }); + while (criticals[0]=='0:0') criticals.shift(); + hints.push("临界表:"+JSON.stringify(criticals)) var content=hints.join("\n"); From ba0f1af203650767614cf551fe95d97cc33aea76 Mon Sep 17 00:00:00 2001 From: oc Date: Tue, 22 May 2018 14:35:45 +0800 Subject: [PATCH 34/41] Fix Bug --- libs/events.js | 2 +- project/functions.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/libs/events.js b/libs/events.js index b8f2f1b4..0835161a 100644 --- a/libs/events.js +++ b/libs/events.js @@ -1351,7 +1351,7 @@ events.prototype.passNet = function (data) { if (data.event.id=='weakNet') { // 衰网 if (core.hasFlag('weak')) return; core.setFlag('weak', true); - var weakValue = core.status.weakValue; + var weakValue = core.values.weakValue; var weakAtk = weakValue>=1?weakValue:Math.floor(weakValue*core.status.hero.atk); var weakDef = weakValue>=1?weakValue:Math.floor(weakValue*core.status.hero.def); core.setFlag('weakAtk', weakAtk); diff --git a/project/functions.js b/project/functions.js index 0c7862d1..e6a5a7ba 100644 --- a/project/functions.js +++ b/project/functions.js @@ -155,7 +155,7 @@ functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a = // 衰弱 if (core.enemys.hasSpecial(special, 13) && !core.hasFlag('weak')) { core.setFlag('weak', true); - var weakValue = core.status.weakValue; + var weakValue = core.values.weakValue; var weakAtk = weakValue>=1?weakValue:Math.floor(weakValue*core.status.hero.atk); var weakDef = weakValue>=1?weakValue:Math.floor(weakValue*core.status.hero.def); core.setFlag('weakAtk', weakAtk); From 0c61b1aa45079eeaf0600f614eb7ac099c7e0ec7 Mon Sep 17 00:00:00 2001 From: oc Date: Tue, 22 May 2018 18:48:04 +0800 Subject: [PATCH 35/41] statistics --- _server/data.comment.js | 6 ++ docs/event.md | 2 +- index.html | 2 +- libs/actions.js | 3 + libs/control.js | 47 ++++++++++++- libs/items.js | 2 + libs/maps.js | 16 ++--- libs/ui.js | 144 ++++++++++++++++++++++++++++++++++++++++ main.js | 1 + project/data.js | 1 + project/functions.js | 4 ++ 更新说明.txt | 2 +- 12 files changed, 217 insertions(+), 13 deletions(-) diff --git a/_server/data.comment.js b/_server/data.comment.js index 65db31e4..d431715b 100644 --- a/_server/data.comment.js +++ b/_server/data.comment.js @@ -415,6 +415,12 @@ data_comment_c456ea59_6018_45ef_8bcc_211a24c627dc = "_bool": "bool", "_data": "是否允许等级提升(进阶);如果上面enableExperience为false,则此项恒视为false" }, + "enableKeys": { + "_leaf": true, + "_type": "checkbox", + "_bool": "bool", + "_data": "是否在状态栏显示三色钥匙数量" + }, "enableDebuff": { "_leaf": true, "_type": "checkbox", diff --git a/docs/event.md b/docs/event.md index 7fe90b60..ddcff95a 100644 --- a/docs/event.md +++ b/docs/event.md @@ -1576,7 +1576,7 @@ core.insertAction([ // effect也允许写一个function,代表本次升级将会执行的操作,比如可以显示一段提示文字,或者触发一个事件 {"need": 40, "effect": function () { - core.drawText("恭喜升级!"); + core.drawTip("恭喜升级!"); core.status.hero.hp *= 2; core.status.hero.atk += 100; core.status.hero.def += 100; diff --git a/index.html b/index.html index 32cb7037..e03830c3 100644 --- a/index.html +++ b/index.html @@ -82,7 +82,7 @@

-
+
diff --git a/libs/actions.js b/libs/actions.js index 5e67dae5..1fa43e52 100644 --- a/libs/actions.js +++ b/libs/actions.js @@ -1562,6 +1562,8 @@ actions.prototype.clickSettings = function (x,y) { }); break; case 5: + core.ui.drawStatistics(); + /* core.ui.drawWaiting("正在拉取统计信息,请稍后..."); var formData = new FormData(); @@ -1609,6 +1611,7 @@ actions.prototype.clickSettings = function (x,y) { core.drawText("出错啦!\n无法拉取统计信息。\n错误原因:XHR Error"); } xhr.send(formData); + */ break; case 6: core.ui.drawHelp(); diff --git a/libs/control.js b/libs/control.js index 429b9af7..444f4fe4 100644 --- a/libs/control.js +++ b/libs/control.js @@ -59,6 +59,13 @@ control.prototype.setRequestAnimationFrame = function () { core.animateFrame.moveTime = core.animateFrame.moveTime||timestamp; core.animateFrame.weather.time = core.animateFrame.weather.time||timestamp; + // move time + if (core.isPlaying() && core.isset(core.status) && core.isset(core.status.hero) + && core.isset(core.status.hero.statistics)) { + core.status.hero.statistics.totalTime += timestamp-(core.status.hero.statistics.start||timestamp); + core.status.hero.statistics.start=timestamp; + } + // Global Animate if (core.animateFrame.globalAnimate && core.isPlaying()) { @@ -237,6 +244,12 @@ control.prototype.clearStatus = function() { ////// 重置游戏状态和初始数据 ////// control.prototype.resetStatus = function(hero, hard, floorId, route, maps) { + var totalTime=0; + if (core.isset(core.status) && core.isset(core.status.hero) + && core.isset(core.status.hero.statistics) && core.isset(route)) { + totalTime=core.status.hero.statistics.totalTime; + } + this.clearStatus(); // 初始化status @@ -249,6 +262,20 @@ control.prototype.resetStatus = function(hero, hard, floorId, route, maps) { core.material.enemys = core.clone(core.enemys.getEnemys()); // 初始化人物属性 core.status.hero = core.clone(hero); + // 统计数据 + if (!core.isset(core.status.hero.statistics)) + core.status.hero.statistics = { + 'totalTime': totalTime, + 'hp': 0, + 'battleDamage': 0, + 'poisonDamage': 0, + 'extraDamage': 0, + 'moveDirectly': 0, + 'ignoreSteps': 0, + } + core.status.hero.statistics.totalTime = Math.max(core.status.hero.statistics.totalTime, totalTime); + core.status.hero.statistics.start = null; + core.status.hard = hard; // 初始化路线 if (core.isset(route)) @@ -349,12 +376,15 @@ control.prototype.setAutomaticRoute = function (destX, destY, stepPostfix) { core.status.automaticRoute.moveDirectly = true; setTimeout(function () { if (core.status.automaticRoute.moveDirectly && core.status.heroMoving==0) { - if (core.canMoveDirectly(destX, destY)) { + 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; } } core.status.automaticRoute.moveDirectly = false; @@ -781,6 +811,7 @@ control.prototype.moveOneStep = function() { core.status.hero.steps++; // 中毒状态 if (core.hasFlag('poison')) { + core.status.hero.statistics.poisonDamage += core.values.poisonDamage; core.status.hero.hp -= core.values.poisonDamage; if (core.status.hero.hp<=0) { core.status.hero.hp=0; @@ -1024,6 +1055,7 @@ control.prototype.checkBlock = function () { core.playSound('zone.mp3'); core.drawAnimate("zone", x, y); } + core.status.hero.statistics.extraDamage += damage; if (core.status.hero.hp<=0) { core.status.hero.hp=0; @@ -1680,12 +1712,16 @@ control.prototype.replay = function () { else if (action.indexOf('move:')==0) { var pos=action.substring(5).split(":"); var x=parseInt(pos[0]), y=parseInt(pos[1]); - if (core.canMoveDirectly(x,y)) { + + var ignoreSteps = core.canMoveDirectly(x, y); + if (ignoreSteps>0) { core.clearMap('hero', 0, 0, 416, 416); core.setHeroLoc('x', x); core.setHeroLoc('y', y); core.drawHero(); core.status.route.push("move:"+x+":"+y); + core.status.hero.statistics.moveDirectly++; + core.status.hero.statistics.ignoreSteps+=ignoreSteps; core.replay(); return; } @@ -2382,6 +2418,7 @@ control.prototype.resize = function(clientWidth, clientHeight) { if (!core.flags.enableExperience) count--; if (!core.flags.enableLevelUp) count--; if (!core.flags.enableDebuff) count--; + if (core.isset(core.flags.enableKeys) && !core.flags.enableKeys) count--; var statusLineHeight = BASE_LINEHEIGHT * 9 / count; var statusLineFontSize = DEFAULT_FONT_SIZE; @@ -2666,6 +2703,12 @@ control.prototype.resize = function(clientWidth, clientHeight) { display: core.flags.enableLevelUp ? 'block': 'none' } }, + { + id: 'keyCol', + rules: { + display: !core.isset(core.flags.enableKeys)||core.flags.enableKeys?'block':'none' + } + }, { 'id': 'debuffCol', rules: { diff --git a/libs/items.js b/libs/items.js index 437c7ff4..2b712d38 100644 --- a/libs/items.js +++ b/libs/items.js @@ -23,7 +23,9 @@ items.prototype.getItemEffect = function(itemId, itemNum) { // 消耗品 if (itemCls === 'items') { var ratio = parseInt(core.floors[core.status.floorId].item_ratio) || 1; + var curr_hp = core.status.hero.hp; if (itemId in this.itemEffect)eval(this.itemEffect[itemId]); + core.status.hero.statistics.hp += core.status.hero.hp - curr_hp; } else { core.addItem(itemId, itemNum); diff --git a/libs/maps.js b/libs/maps.js index d631cf43..31e7b6b4 100644 --- a/libs/maps.js +++ b/libs/maps.js @@ -255,20 +255,20 @@ maps.prototype.canMoveHero = function(x,y,direction,floorId) { ////// 能否瞬间移动 ////// maps.prototype.canMoveDirectly = function (destX,destY) { - if (!core.flags.enableMoveDirectly) return false; + if (!core.flags.enableMoveDirectly) return -1; // 中毒状态:不能 - if (core.hasFlag('poison')) return false; + if (core.hasFlag('poison')) return -1; var fromX = core.getHeroLoc('x'), fromY = core.getHeroLoc('y'); - if (fromX==destX&&fromY==destY) return false; + if (fromX==destX&&fromY==destY) return -1; if (core.getBlock(fromX,fromY)!=null||core.status.checkBlock.damage[13*fromX+fromY]>0) - return false; + return -1; // BFS var visited=[], queue=[]; - visited[13*fromX+fromY]=true; + visited[13*fromX+fromY]=0; queue.push(13*fromX+fromY); var directions = [[-1,0],[1,0],[0,1],[0,-1]]; @@ -278,12 +278,12 @@ maps.prototype.canMoveDirectly = function (destX,destY) { for (var dir in directions) { var nx=nowX+directions[dir][0], ny=nowY+directions[dir][1]; if (nx<0||nx>=13||ny<0||ny>=13||visited[13*nx+ny]||core.getBlock(nx,ny)!=null||core.status.checkBlock.damage[13*nx+ny]>0) continue; - if (nx==destX&&ny==destY) return true; - visited[13*nx+ny]=true; + visited[13*nx+ny]=visited[13*nowX+nowY]+1; + if (nx==destX&&ny==destY) return visited[13*nx+ny]; queue.push(13*nx+ny); } } - return false; + return -1; } maps.prototype.drawBlock = function (block, animate, dx, dy) { diff --git a/libs/ui.js b/libs/ui.js index 1520a02c..562232ac 100644 --- a/libs/ui.js +++ b/libs/ui.js @@ -1749,6 +1749,150 @@ ui.prototype.drawKeyBoard = function () { core.fillText("ui", "返回游戏", 416-80, offset-3, '#FFFFFF', 'bold 15px Verdana'); } +////// 绘制“数据统计”界面 ////// +ui.prototype.drawStatistics = function () { + + // 数据统计要统计如下方面: + // 1. 当前全塔剩余下的怪物数量,总金币数,总经验数,总加点数 + // 2. 当前全塔剩余的黄蓝红铁门数量,和对应的钥匙数量 + // 3. 当前全塔剩余的三种宝石数量,血瓶数量,装备数量;总共增加的攻防生命值 + // 4. 当前层的上述信息 + // 5. 当前已走的步数;瞬间移动的步数,瞬间移动的次数(和少走的步数);游戏时长 + // 6. 当前已恢复的生命值;当前总伤害、战斗伤害、阻激夹域血网伤害、中毒伤害。 + + + var total = { + 'monster': { + 'count': 0, 'money': 0, 'experience': 0, 'point': 0, + }, + 'count': { + 'yellowDoor': 0, 'blueDoor': 0, 'redDoor': 0, 'steelDoor': 0, + 'yellowKey': 0, 'blueKey': 0, 'redKey': 0, 'steelKey': 0, + 'redJewel': 0, 'blueJewel': 0, 'greenJewel': 0, 'yellowJewel': 0, + 'redPotion': 0, 'bluePotion': 0, 'greenPotion': 0, 'yellowPotion': 0, 'superPotion': 0, + 'pickaxe': 0, 'bomb': 0, 'centerFly': 0, + 'poisonWine': 0, 'weakWine': 0, 'curseWine': 0, 'superWine': 0, + 'sword1': 0, 'sword2': 0, 'sword3': 0, 'sword4': 0, 'sword5': 0, + 'shield1': 0, 'shield2': 0, 'shield3': 0, 'shield4': 0, 'shield5': 0, + }, + 'add': { + 'hp': 0, 'atk': 0, 'def': 0, 'mdef': 0 + } + }; + var current = core.clone(total); + + core.floorIds.forEach(function (floorId) { + var floor=core.floors[floorId]; + var blocks=core.status.maps[floorId].blocks; + // 隐藏层不给看 + if (floor.cannotViewMap && floorId!=core.status.floorId) return; + + blocks.forEach(function (block) { + if (!core.isset(block.event) || (core.isset(block.enable) && !block.enable)) + return; + var event = block.event; + if (event.cls.indexOf("enemy")==0) { + var enemyId = event.id, enemy = core.material.enemys[enemyId]; + total.monster.money+=enemy.money||0; + total.monster.experience+=enemy.experience||0; + total.monster.point+=enemy.point||0; + total.monster.count++; + if (floorId==core.status.floorId) { + current.monster.money+=enemy.money||0; + current.monster.experience+=enemy.experience||0; + current.monster.point+=enemy.point||0; + current.monster.count++; + } + } + else { + var id = event.id; + + var temp = core.clone(core.status.hero); + + if (core.isset(total.count[id])) { + var hp=0, atk=0, def=0, mdef=0; + + if (core.isset(core.material.items[id]) && core.material.items[id].cls=='items' && id!='superPotion') { + var ratio = floor.item_ratio||1; + if (core.isset(core.items.itemEffect[id])) { + eval(core.items.itemEffect[id]); + } + hp = core.status.hero.hp - temp.hp; + atk = core.status.hero.atk - temp.atk; + def = core.status.hero.def - temp.def; + mdef = core.status.hero.mdef - temp.mdef; + } + else { + if (id.indexOf('sword')==0 && core.isset(core.values[id])) { + var x = core.values[id]; + if (typeof x == 'number') x = {'atk': x}; + atk += x.atk||0; + def += x.def||0; + mdef += x.mdef||0; + } + if (id.indexOf('shield')==0 && core.isset(core.values[id])) { + var x = core.values[id]; + if (typeof x == 'number') x = {'def': x}; + atk += x.atk||0; + def += x.def||0; + mdef += x.mdef||0; + } + } + core.status.hero = core.clone(temp); + total.count[id]++; + total.add.hp+=hp; + total.add.atk+=atk; + total.add.def+=def; + total.add.mdef+=mdef; + if (floorId==core.status.floorId) { + current.count[id]++; + current.add.hp+=hp; + current.add.atk+=atk; + current.add.def+=def; + current.add.mdef+=mdef; + } + } + } + }) + }) + + var getText = function (type, data) { + var text = type+"地图中:\n"; + text += "共有怪物"+data.monster.count+"个"; + if (core.flags.enableMoney) text+=",总金币数"+data.monster.money; + if (core.flags.enableExperience) text+=",总经验数"+data.monster.experience; + if (core.flags.enableAddPoint) text+=",总加点数"+data.monster.point; + text+="。\n"; + Object.keys(data.count).forEach(function (key) { + var value=data.count[key]; + if (value>0) { + var name=""; + if (key=='yellowDoor') name="黄门"; + else if (key=='blueDoor') name="蓝门"; + else if (key=='redDoor') name="红门"; + else if (key=='steelDoor') name="铁门"; + else name=core.material.items[key].name; + if (core.isset(name)) { + text+=name+value+"个;"; + } + } + }) + text+="\n"; + text+="共加生命值"+core.formatBigNumber(data.add.hp)+"点,攻击" + +core.formatBigNumber(data.add.atk)+"点,防御" + +core.formatBigNumber(data.add.def)+"点,魔防" + +core.formatBigNumber(data.add.mdef)+"点。"; + return text; + } + + core.drawText([ + getText("全塔", total), + getText("当前", current), + "当前总步数为"+core.status.hero.steps+"," + ]) + +} + ////// 绘制“关于”界面 ////// ui.prototype.drawAbout = function () { return this.uidata.drawAbout(); diff --git a/main.js b/main.js index bf79363d..1bb53fce 100644 --- a/main.js +++ b/main.js @@ -57,6 +57,7 @@ function main() { 'moneyCol': document.getElementById('moneyCol'), 'expCol': document.getElementById('expCol'), 'upCol': document.getElementById('upCol'), + 'keyCol': document.getElementById('keyCol'), 'debuffCol': document.getElementById('debuffCol'), 'hard': document.getElementById('hard'), }; diff --git a/project/data.js b/project/data.js index 15d26b0a..e03c802b 100644 --- a/project/data.js +++ b/project/data.js @@ -140,6 +140,7 @@ data_a1e2fb4a_e986_4524_b0da_9b7ba7c0874d = "enableMoney": true, "enableExperience": false, "enableLevelUp": false, + "enableKeys": true, "enableDebuff": false, "flyNearStair": true, "pickaxeFourDirections": false, diff --git a/project/functions.js b/project/functions.js index e6a5a7ba..f8004acd 100644 --- a/project/functions.js +++ b/project/functions.js @@ -119,6 +119,10 @@ functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a = // 扣减体力值 core.status.hero.hp -= damage; + + // 记录 + core.status.hero.statistics.battleDamage += damage; + if (core.status.hero.hp<=0) { core.status.hero.hp=0; core.updateStatusBar(); diff --git a/更新说明.txt b/更新说明.txt index fb516de6..55da88f0 100644 --- a/更新说明.txt +++ b/更新说明.txt @@ -4,7 +4,7 @@ 事件:while循环处理 √ 事件:等待用户操作并获得按键或点击信息 √ 衰弱可以减少攻防的比例 √ -地图数据统计 +地图数据统计 √ 支持 status:x 获得当前坐标 √ core.debug()改成调试模式,可以Ctrl穿墙 √ 最大存档个数提到main处理 √ From 868e6c8b32e802d40fcb1f6e2a6305605d116fcb Mon Sep 17 00:00:00 2001 From: oc Date: Wed, 23 May 2018 08:33:20 +0800 Subject: [PATCH 36/41] statistics --- libs/control.js | 1 + libs/maps.js | 2 +- libs/ui.js | 15 ++++++++++++++- 3 files changed, 16 insertions(+), 2 deletions(-) diff --git a/libs/control.js b/libs/control.js index 444f4fe4..e345f6c4 100644 --- a/libs/control.js +++ b/libs/control.js @@ -1386,6 +1386,7 @@ control.prototype.updateFg = function () { for (var y=0;y<13;y++) { var damage = core.status.checkBlock.damage[13*x+y]; if (damage>0) { + damage = core.formatBigNumber(damage); core.setFillStyle('fg', '#000000'); core.canvas.fg.fillText(damage, 32 * x + 17, 32 * (y + 1) - 13); core.canvas.fg.fillText(damage, 32 * x + 15, 32 * (y + 1) - 15); diff --git a/libs/maps.js b/libs/maps.js index 31e7b6b4..2ab284db 100644 --- a/libs/maps.js +++ b/libs/maps.js @@ -739,7 +739,7 @@ maps.prototype.removeBlock = function (x, y, floorId) { // 删除Index core.removeBlockById(index, floorId); - core.updateFg(); + core.updateStatusBar(); } ////// 根据block的索引删除该块 ////// diff --git a/libs/ui.js b/libs/ui.js index 562232ac..7089c880 100644 --- a/libs/ui.js +++ b/libs/ui.js @@ -1885,10 +1885,23 @@ ui.prototype.drawStatistics = function () { return text; } + var formatTime = function (time) { + return core.setTwoDigits(parseInt(time/3600000)) + +":"+core.setTwoDigits(parseInt(time/60000)%60) + +":"+core.setTwoDigits(parseInt(time/1000)%60); + } + + var statistics = core.status.hero.statistics; core.drawText([ getText("全塔", total), getText("当前", current), - "当前总步数为"+core.status.hero.steps+"," + "当前总步数:"+core.status.hero.steps+",游戏时长:"+formatTime(statistics.totalTime) + +"。\n瞬间移动次数:"+statistics.moveDirectly+",共计少走"+statistics.ignoreSteps+"步。" + +"\n\n总计通过血瓶恢复生命值为"+core.formatBigNumber(statistics.hp)+"点。\n\n" + +"总计受到的伤害为"+core.formatBigNumber(statistics.battleDamage+statistics.poisonDamage+statistics.extraDamage) + +",其中战斗伤害"+core.formatBigNumber(statistics.battleDamage)+"点" + +(core.flags.enableDebuff?(",中毒伤害"+core.formatBigNumber(statistics.poisonDamage)+"点"):"") + +",领域/夹击/阻击/血网伤害"+core.formatBigNumber(statistics.extraDamage)+"点。" ]) } From b88071cec878fa5b11132933658d041755111192 Mon Sep 17 00:00:00 2001 From: oc Date: Wed, 23 May 2018 08:43:02 +0800 Subject: [PATCH 37/41] statistics --- libs/ui.js | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/libs/ui.js b/libs/ui.js index 7089c880..b5fe66fe 100644 --- a/libs/ui.js +++ b/libs/ui.js @@ -1862,7 +1862,7 @@ ui.prototype.drawStatistics = function () { if (core.flags.enableMoney) text+=",总金币数"+data.monster.money; if (core.flags.enableExperience) text+=",总经验数"+data.monster.experience; if (core.flags.enableAddPoint) text+=",总加点数"+data.monster.point; - text+="。\n"; + text+="。\n\n"; Object.keys(data.count).forEach(function (key) { var value=data.count[key]; if (value>0) { @@ -1877,7 +1877,7 @@ ui.prototype.drawStatistics = function () { } } }) - text+="\n"; + text+="\n\n"; text+="共加生命值"+core.formatBigNumber(data.add.hp)+"点,攻击" +core.formatBigNumber(data.add.atk)+"点,防御" +core.formatBigNumber(data.add.def)+"点,魔防" @@ -1901,7 +1901,11 @@ ui.prototype.drawStatistics = function () { +"总计受到的伤害为"+core.formatBigNumber(statistics.battleDamage+statistics.poisonDamage+statistics.extraDamage) +",其中战斗伤害"+core.formatBigNumber(statistics.battleDamage)+"点" +(core.flags.enableDebuff?(",中毒伤害"+core.formatBigNumber(statistics.poisonDamage)+"点"):"") - +",领域/夹击/阻击/血网伤害"+core.formatBigNumber(statistics.extraDamage)+"点。" + +",领域/夹击/阻击/血网伤害"+core.formatBigNumber(statistics.extraDamage)+"点。", + "\t[说明]1. 地图数据统计的效果仅模拟当前立刻获得该道具的效果。\n2. 无法获得“不可被浏览地图”层的数据统计。\n" + + "3. 不会计算通过任何事件得到或生成的道具(比如利用显示事件或改变图块)个数和效果。\n"+ + "4. 如自定义道具(比如其他宝石)后,需手动在ui.js的drawStatistics中参与统计,不然默认不会进行统计。\n"+ + "5. 以上所有统计信息仅供参考,如有错误,概不负责。" ]) } From 4a35ec6ebfafd5259b9cd0e8e5fc67b25441c951 Mon Sep 17 00:00:00 2001 From: oc Date: Wed, 23 May 2018 08:46:35 +0800 Subject: [PATCH 38/41] statistics --- libs/ui.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/libs/ui.js b/libs/ui.js index b5fe66fe..87118e65 100644 --- a/libs/ui.js +++ b/libs/ui.js @@ -1902,10 +1902,10 @@ ui.prototype.drawStatistics = function () { +",其中战斗伤害"+core.formatBigNumber(statistics.battleDamage)+"点" +(core.flags.enableDebuff?(",中毒伤害"+core.formatBigNumber(statistics.poisonDamage)+"点"):"") +",领域/夹击/阻击/血网伤害"+core.formatBigNumber(statistics.extraDamage)+"点。", - "\t[说明]1. 地图数据统计的效果仅模拟当前立刻获得该道具的效果。\n2. 无法获得“不可被浏览地图”层的数据统计。\n" + - "3. 不会计算通过任何事件得到或生成的道具(比如利用显示事件或改变图块)个数和效果。\n"+ - "4. 如自定义道具(比如其他宝石)后,需手动在ui.js的drawStatistics中参与统计,不然默认不会进行统计。\n"+ - "5. 以上所有统计信息仅供参考,如有错误,概不负责。" + "\t[说明]1. 地图数据统计的效果仅模拟当前立刻获得该道具的效果。\n2. 不会计算“不可被浏览地图”的隐藏层的数据。\n" + + "3. 不会计算任何通过事件得到的道具(显示事件、改变图块、或直接增加道具等)。\n"+ + "4. 在自定义道具(例如其他宝石)后,需在ui.js的drawStatistics中注册,不然不会进行统计。\n"+ + "5. 所有统计信息仅供参考,如有错误,概不负责。" ]) } From b71806b167267108b60ca14e388e969b5b37a80e Mon Sep 17 00:00:00 2001 From: oc Date: Wed, 23 May 2018 13:37:13 +0800 Subject: [PATCH 39/41] afterloaddata --- docs/event.md | 2 +- libs/core.js | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/docs/event.md b/docs/event.md index ddcff95a..b1559bcc 100644 --- a/docs/event.md +++ b/docs/event.md @@ -1513,7 +1513,7 @@ core.insertAction([ 而在我们的存档中,是不会对怪物数据进行存储的,只会存各个变量和Flag,因此我们需要在读档后根据变量或Flag来调整怪物数据。 -我们可以在functions.js中的`afterLoadData`进行处理。 +我们可以在脚本编辑中的`afterLoadData`进行处理。 ``` js ////// 读档事件后,载入事件前,可以执行的操作 ////// diff --git a/libs/core.js b/libs/core.js index 8eee43fd..769249b6 100644 --- a/libs/core.js +++ b/libs/core.js @@ -889,6 +889,16 @@ core.prototype.debug = function() { core.control.debug(); } +////// 存档前 ////// +core.prototype.beforeSaveData = function (data) { + return core.events.beforeSaveData(data); +} + +////// 读档后 ////// +core.prototype.afterLoadData = function (data) { + return core.events.afterLoadData(data); +} + ////// 重置当前地图 ////// core.prototype.resetMap = function(floorId) { core.maps.resetMap(floorId); From 7babb707291e079fd438cd641b5b8d0cdd423a47 Mon Sep 17 00:00:00 2001 From: oc Date: Wed, 23 May 2018 20:24:00 +0800 Subject: [PATCH 40/41] autoplay bug --- main.js | 27 +++++++++++++++++++++------ 1 file changed, 21 insertions(+), 6 deletions(-) diff --git a/main.js b/main.js index 1bb53fce..6a89dd6d 100644 --- a/main.js +++ b/main.js @@ -459,8 +459,13 @@ main.dom.playGame.onclick = function () { main.dom.startButtons.style.display='none'; if (main.core.isset(main.core.musicStatus) && main.core.musicStatus.startDirectly - && main.core.musicStatus.bgmStatus && main.core.musicStatus.playingBgm==null) - main.core.playBgm(main.core.bgms[0]); + && main.core.musicStatus.bgmStatus) { + if (main.core.musicStatus.playingBgm==null + || core.material.bgms[main.core.musicStatus.playingBgm].paused) { + main.core.musicStatus.playingBgm=null; + main.core.playBgm(main.core.bgms[0]); + } + } if (main.core.isset(main.core.flags.startDirectly) && main.core.flags.startDirectly) { core.events.startGame(""); @@ -474,8 +479,13 @@ main.dom.playGame.onclick = function () { main.dom.loadGame.onclick = function() { if (main.core.isset(main.core.musicStatus) && main.core.musicStatus.startDirectly - && main.core.musicStatus.bgmStatus && main.core.musicStatus.playingBgm==null) - main.core.playBgm(main.core.bgms[0]); + && main.core.musicStatus.bgmStatus) { + if (main.core.musicStatus.playingBgm==null + || core.material.bgms[main.core.musicStatus.playingBgm].paused) { + main.core.musicStatus.playingBgm=null; + main.core.playBgm(main.core.bgms[0]); + } + } main.core.load(); } @@ -484,8 +494,13 @@ main.dom.loadGame.onclick = function() { main.dom.replayGame.onclick = function () { if (main.core.isset(main.core.musicStatus) && main.core.musicStatus.startDirectly - && main.core.musicStatus.bgmStatus && main.core.musicStatus.playingBgm==null) - main.core.playBgm(main.core.bgms[0]); + && main.core.musicStatus.bgmStatus) { + if (main.core.musicStatus.playingBgm==null + || core.material.bgms[main.core.musicStatus.playingBgm].paused) { + main.core.musicStatus.playingBgm=null; + main.core.playBgm(main.core.bgms[0]); + } + } core.readFile(function (obj) { if (obj.name!=core.firstData.name) { From 10159547ea89eb8489f0e9117df85651037266e4 Mon Sep 17 00:00:00 2001 From: oc Date: Thu, 24 May 2018 01:38:34 +0800 Subject: [PATCH 41/41] Fix Bug --- _server/blockly/MotaAction.g4 | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/_server/blockly/MotaAction.g4 b/_server/blockly/MotaAction.g4 index 0ec2654b..48e10939 100644 --- a/_server/blockly/MotaAction.g4 +++ b/_server/blockly/MotaAction.g4 @@ -1385,8 +1385,7 @@ ActionParser.prototype.parseAction = function() { break; case "tip": this.next = MotaActionBlocks['tip_s'].xmlText([ - data.data,this.next]); - this.parseAction(); + data.text,this.next]); break; case "show": // 显示 if (!(data.loc[0] instanceof Array))